X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=nt%2Fxemacs.mak;h=79ad8384d96b887b32d75da9e62dc19c64db4735;hb=114101be16931115ecd50099b6e6577629b5ef5e;hp=db8534bff81b33334800f7865322d439e4a76244;hpb=dbf2768f7b146e97e37a27316f70bb313f1acf15;p=chise%2Fxemacs-chise.git.1 diff --git a/nt/xemacs.mak b/nt/xemacs.mak index db8534b..79ad838 100644 --- a/nt/xemacs.mak +++ b/nt/xemacs.mak @@ -1,6 +1,6 @@ # Makefile for Microsoft NMAKE # Copyright (C) 1995 Board of Trustees, University of Illinois. -# Copyright (C) 1995, 1996, 2000 Ben Wing. +# Copyright (C) 1995, 1996, 2000, 2005 Ben Wing. # Copyright (C) 1995 Sun Microsystems, Inc. # Copyright (C) 1998 Free Software Foundation, Inc. # @@ -44,16 +44,25 @@ LWLIB_SRCDIR=$(XEMACS)\lwlib MAKEDIRSTRING=$(MAKEDIR:\=\\) XEMACSDIRSTRING=$(MAKEDIRSTRING:\\nt=) - -# Define a variable for the 'del' command to use -# N.B. Windows Millenium Edition's ERASE can only handle one target (file or -# wildcard) per invocation. Make sure each use has only one target! -DEL=-del - # Program name and version !include "$(XEMACS)\version.sh" +# Put these before including config.inc so they can be overridden there. +# Note that some versions of some commands are deficient. + +# Define a variable for the 'del' command to use. +# WinME's DEL command can only handle one argument and only has the /P flag. +# So only delete one glob at a time. Override flags in config.inc. +DEL=-del + +# Tell COPY, MOVE, and XCOPY to suppress confirmation for overwriting +# files. +COPYCMD=/y +# Define the 'copy' command to use. +COPY=xcopy /q +COPYDIR=xcopy /q /e + !include "config.inc" !if !defined(INFODOCK) @@ -99,17 +108,24 @@ INSTALL_DIR=c:\Program Files\XEmacs\XEmacs-$(XEMACS_VERSION_STRING) !if !defined(HAVE_MULE) HAVE_MULE=0 !endif + +# If PACKAGE_PATH was defined, use it. If PACKAGE_PATH was not defined, +# but PACKAGE_PREFIX was, use PACKAGE_PREFIX to generate a package path. +# If neither PACKAGE_PATH nor PACKAGE_PREFIX was defined, +# do not define a package path. !if !defined(PACKAGE_PATH) -! if !defined(PACKAGE_PREFIX) -PACKAGE_PREFIX=c:\Program Files\XEmacs -! endif -! if $(HAVE_MULE) +! if defined(PACKAGE_PREFIX) +! if $(HAVE_MULE) PACKAGE_PATH=~\.xemacs;;$(PACKAGE_PREFIX)\site-packages;$(PACKAGE_PREFIX)\mule-packages;$(PACKAGE_PREFIX)\xemacs-packages -! else +! else PACKAGE_PATH=~\.xemacs;;$(PACKAGE_PREFIX)\site-packages;$(PACKAGE_PREFIX)\xemacs-packages +! endif ! endif !endif +!if defined(PACKAGE_PATH) PATH_PACKAGEPATH="$(PACKAGE_PATH:\=\\)" +!endif + !if !defined(HAVE_MS_WINDOWS) HAVE_MS_WINDOWS=1 !endif @@ -168,12 +184,17 @@ USE_UNION_TYPE=0 USE_MINITAR=$(HAVE_ZLIB) !endif !if !defined(USE_PORTABLE_DUMPER) -USE_PORTABLE_DUMPER=0 +USE_PORTABLE_DUMPER=1 !endif # A little bit of adhockery. Default to use system malloc and # DLL version of the C runtime library when using portable # dumping. These are the optimal settings. +# +# NOTE: The various graphics libraries are generally compiled to use +# MSVCRT.DLL (the same that we use in USE_CRTDLL, more or less), so using +# this is a good thing. + !if !defined(USE_SYSTEM_MALLOC) USE_SYSTEM_MALLOC=$(USE_PORTABLE_DUMPER) !endif @@ -301,7 +322,7 @@ CONFIG_ERROR=1 !if !defined(DEPEND) DEPEND=0 !endif -!if $(DEPEND) +!if $(DEPEND) && exist("$(SRC)\depend") ! if [if not exist $(OUTDIR)\nul mkdir "$(OUTDIR)"] ! endif # generate an nmake-readable version of depend @@ -332,6 +353,16 @@ DEPEND=0 ! endif !endif +!if $(USE_INTEL_COMPILER) +CC=icl +# Use static library if possible +INTEL_LIBS=libircmt.lib libmmt.lib +# Debugging requires DLL version of libm +!if $(DEBUG_XEMACS) +INTEL_LIBS=libircmt.lib libmmd.lib +!endif +!endif + # # Compiler command echo control. Define VERBOSECC=1 to get verbose compilation. # @@ -363,7 +394,8 @@ C_LIBFLAG=-ML LIBC_LIB=libc.lib !endif -CFLAGS=-nologo -W3 $(OPT) $(C_LIBFLAG) +CFLAGS_NO_LIB=-nologo -W3 $(OPT) +CFLAGS=$(CFLAGS_NO_LIB) $(C_LIBFLAG) !if $(HAVE_X_WINDOWS) X_DEFINES=-DHAVE_X_WINDOWS @@ -470,7 +502,7 @@ PATH_DEFINES=-DPATH_PREFIX=\"$(PATH_PREFIX)\" # Generic variables -INCLUDES=$(X_INCLUDES) $(MSW_INCLUDES) -I$(NT)\inc -I$(SRC) -I$(LWLIB_SRCDIR) +INCLUDES=$(X_INCLUDES) -I$(NT)\inc -I$(SRC) $(MSW_INCLUDES) -I$(LWLIB_SRCDIR) DEFINES=$(X_DEFINES) $(MSW_DEFINES) $(MULE_DEFINES) $(UNION_DEFINES) \ $(DUMPER_DEFINES) $(MALLOC_DEFINES) $(QUICK_DEFINES) \ @@ -489,12 +521,15 @@ XEMACS_INCLUDES=\ # #### Copying is cheap, we should just force these $(SRC)\config.h: config.h + set COPYCMD=$(COPYCMD) copy config.h $(SRC) $(SRC)\Emacs.ad.h: Emacs.ad.h + set COPYCMD=$(COPYCMD) copy Emacs.ad.h $(SRC) $(SRC)\paths.h: paths.h + set COPYCMD=$(COPYCMD) copy paths.h $(SRC) #------------------------------------------------------------------------------ @@ -523,8 +558,10 @@ CONFIG_VALUES = $(LIB_SRC)\config.values !endif !if [echo LISPDIR>>$(CONFIG_VALUES) && echo "$(MAKEDIR:\=\\)\\$(LISP:\=\\)">>$(CONFIG_VALUES)] !endif +!if defined(PATH_PACKAGEPATH) # PATH_PACKAGEPATH is already a quoted string. -!if [echo PACKAGE_PATH>>$(CONFIG_VALUES) && echo $(PATH_PACKAGEPATH)>>$(CONFIG_VALUES)] +! if [echo PACKAGE_PATH>>$(CONFIG_VALUES) && echo $(PATH_PACKAGEPATH)>>$(CONFIG_VALUES)] +! endif !endif # Inferred rule @@ -547,7 +584,7 @@ $(LIB_SRC)/winclient.exe: $(LIB_SRC)/winclient.c cd $(NT) $(LIB_SRC)/minitar.exe : $(NT)/minitar.c - $(CCV) $(CFLAGS) -I$(ZLIB_DIR) -Fe$@ $** $(ZLIB_DIR)\zlib.lib -link -incremental:no + $(CCV) $(CFLAGS_NO_LIB) -I"$(ZLIB_DIR)" $(LIB_SRC_DEFINES) -MD -Fe$@ $** $(ZLIB_DIR)\zlib.lib -link -incremental:no LIB_SRC_TOOLS = \ $(LIB_SRC)/etags.exe \ @@ -845,7 +882,8 @@ TEMACS_BROWSE=$(TEMACS_DIR)\temacs.bsc TEMACS_SRC=$(SRC) TEMACS_LIBS=$(LASTFILE) $(LWLIB) $(X_LIBS) $(MSW_LIBS) \ oldnames.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib \ - shell32.lib wsock32.lib winmm.lib winspool.lib ole32.lib uuid.lib $(LIBC_LIB) + shell32.lib wsock32.lib winmm.lib winspool.lib ole32.lib uuid.lib \ + $(INTEL_LIBS) $(LIBC_LIB) TEMACS_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS) -base:0x1000000\ -stack:0x800000 $(TEMACS_ENTRYPOINT) -subsystem:windows\ -pdb:$(TEMACS_DIR)\temacs.pdb -map:$(TEMACS_DIR)\temacs.map \ @@ -857,8 +895,10 @@ TEMACS_CPP_FLAGS=-c \ $(EMACS_BETA_VERSION) \ $(EMACS_PATCH_LEVEL) \ -DXEMACS_CODENAME=\"$(xemacs_codename:&=and)\" \ - -DEMACS_CONFIGURATION=\"$(EMACS_CONFIGURATION)\" \ - -DPATH_PACKAGEPATH=\"$(PATH_PACKAGEPATH)\" +!if defined(PATH_PACKAGEPATH) + -DPATH_PACKAGEPATH=\"$(PATH_PACKAGEPATH)\" \ +!endif + -DEMACS_CONFIGURATION=\"$(EMACS_CONFIGURATION)\" !if $(HAVE_X_WINDOWS) TEMACS_X_OBJS=\ @@ -1162,7 +1202,7 @@ INFO_FILES= \ {$(MANDIR)}.texi{$(INFODIR)}.info: cd $(MANDIR) - $(MAKEINFO) $** + $(MAKEINFO) $(**F) XEMACS_SRCS = \ $(MANDIR)\xemacs\abbrevs.texi \ @@ -1345,7 +1385,11 @@ docfile :: $(DOC) $(DOC): $(LIB_SRC)\make-docfile.exe $(DOC_SRC1) $(DOC_SRC2) $(DOC_SRC3) $(DOC_SRC4) $(DOC_SRC5) $(DOC_SRC6) $(DOC_SRC7) $(DOC_SRC8) $(DOC_SRC9) $(DOC_SRC10) $(DOC_SRC11) if exist $(DOC) del $(DOC) +!if defined(PACKAGE_PATH) set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) +!else + set EMACSBOOTSTRAPLOADPATH=$(LISP) +!endif set EMACSBOOTSTRAPMODULEPATH=$(MODULES) $(TEMACS_BATCH) -l $(TEMACS_DIR)\..\lisp\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC1) @@ -1361,7 +1405,11 @@ $(DOC): $(LIB_SRC)\make-docfile.exe $(DOC_SRC1) $(DOC_SRC2) $(DOC_SRC3) $(DOC_SR $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC11) update-elc: +!if defined(PACKAGE_PATH) set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) +!else + set EMACSBOOTSTRAPLOADPATH=$(LISP) +!endif set EMACSBOOTSTRAPMODULEPATH=$(MODULES) $(TEMACS_BATCH) -l $(TEMACS_DIR)\..\lisp\update-elc.el @@ -1375,7 +1423,11 @@ $(TEMACS_DIR)\NEEDTODUMP : $(PROGNAME) : $(TEMACS) $(TEMACS_DIR)\NEEDTODUMP @echo >$(TEMACS_DIR)\SATISFIED cd $(TEMACS_DIR) +!if defined(PACKAGE_PATH) set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) +!else + set EMACSBOOTSTRAPLOADPATH=$(LISP) +!endif set EMACSBOOTSTRAPMODULEPATH=$(MODULES) $(TEMACS_BATCH) -l $(TEMACS_DIR)\..\lisp\loadup.el dump !if $(USE_PORTABLE_DUMPER) @@ -1385,8 +1437,10 @@ $(PROGNAME) : $(TEMACS) $(TEMACS_DIR)\NEEDTODUMP << # Make the resource section read/write since almost all of it is the dump # data which needs to be writable. This avoids having to copy it. - editbin -nologo -section:.rsrc,rw xemacs.exe + editbin -nologo -stack:0x800000 -section:.rsrc,rw xemacs.exe $(DEL) $(TEMACS_DIR)\xemacs.dmp +!else + editbin -nologo -stack:0x800000 xemacs.exe !endif cd $(NT) @if not exist $(TEMACS_DIR)\SATISFIED nmake -nologo -f xemacs.mak $@ @@ -1402,6 +1456,7 @@ temacs: $(LASTFILE) $(TEMACS) # use this rule to install the system install: all cd $(NT) + set COPYCMD=$(COPYCMD) @echo Installing in $(INSTALL_DIR) ... @echo PlaceHolder > PlaceHolder @xcopy /q PROBLEMS "$(INSTALL_DIR)\" @@ -1414,6 +1469,7 @@ install: all @xcopy /e /q $(XEMACS)\etc "$(INSTALL_DIR)\etc\" @xcopy /e /q $(XEMACS)\info "$(INSTALL_DIR)\info\" @xcopy /e /q $(XEMACS)\lisp "$(INSTALL_DIR)\lisp\" +!if defined(PACKAGE_PREFIX) @echo Making skeleton package tree in $(PACKAGE_PREFIX) ... @xcopy /q PlaceHolder "$(PACKAGE_PREFIX)\site-packages\" $(DEL) "$(PACKAGE_PREFIX)\site-packages\PlaceHolder" @@ -1421,6 +1477,7 @@ install: all $(DEL) "$(PACKAGE_PREFIX)\mule-packages\PlaceHolder" @xcopy /q PlaceHolder "$(PACKAGE_PREFIX)\xemacs-packages\" $(DEL) "$(PACKAGE_PREFIX)\xemacs-packages\PlaceHolder" +!endif $(DEL) PlaceHolder mostlyclean: @@ -1497,14 +1554,16 @@ installation:: OS: $(OS) !endif -XEmacs $(XEMACS_VERSION_STRING) $(xemacs_codename:"=\") configured for `$(EMACS_CONFIGURATION)'. +XEmacs $(XEMACS_VERSION_STRING) $(xemacs_codename) configured for `$(EMACS_CONFIGURATION)'. - Building XEmacs in \"$(MAKEDIR:\=\\)\". + Building XEmacs in "$(MAKEDIR:\=\\)". !if defined(CCV) - Using compiler \"$(CC) $(CFLAGS)\". + Using compiler "$(CC) $(CFLAGS)". +!endif + Installing XEmacs in "$(INSTALL_DIR:\=\\)". +!if defined(PATH_PACKAGEPATH) + Package path is $(PATH_PACKAGEPATH). !endif - Installing XEmacs in \"$(INSTALL_DIR:\=\\)\". - Package path is $(PATH_PACKAGEPATH:"=\"). !if $(INFODOCK) Building InfoDock. !endif