X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=nt%2Fxemacs.mak;h=13a88d9f780e09b3c40b25831186a8ce6ffbf313;hb=379da0c23aae6e8b48ab5f7ab99c73a81e9646e9;hp=e59b8956e4b47c739be1f9cad3145726d8d0ce59;hpb=d8654f7c5ad0c04060008c6fbbd90add1f4537e3;p=chise%2Fxemacs-chise.git.1 diff --git a/nt/xemacs.mak b/nt/xemacs.mak index e59b895..13a88d9 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 @@ -167,22 +183,18 @@ USE_UNION_TYPE=0 !if !defined(USE_MINITAR) USE_MINITAR=$(HAVE_ZLIB) !endif -!if !defined(USE_MINIMAL_TAGBITS) -USE_MINIMAL_TAGBITS=0 -!endif -!if !defined(USE_INDEXED_LRECORD_IMPLEMENTATION) -USE_INDEXED_LRECORD_IMPLEMENTATION=0 -!endif !if !defined(USE_PORTABLE_DUMPER) -USE_PORTABLE_DUMPER=0 -!endif -!if !defined(GUNG_HO) -GUNG_HO=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 @@ -305,20 +317,12 @@ CONFIG_ERROR=1 !endif # -# Handle GUNG_HO -# -!if defined(GUNG_HO) -USE_MINIMAL_TAGBITS=$(GUNG_HO) -USE_INDEXED_LRECORD_IMPLEMENTATION=$(GUNG_HO) -!endif - -# # Whether to use dependency information generated by make-src-depend # !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 @@ -380,7 +384,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 @@ -461,12 +466,6 @@ DEBUG_FLAGS=-debug:full QUICK_DEFINES=-DQUICK_BUILD !endif -!if $(USE_MINIMAL_TAGBITS) -TAGBITS_DEFINES=-DUSE_MINIMAL_TAGBITS -!endif -!if $(USE_INDEXED_LRECORD_IMPLEMENTATION) -LRECORD_DEFINES=-DUSE_INDEXED_LRECORD_IMPLEMENTATION -!endif !if $(USE_UNION_TYPE) UNION_DEFINES=-DUSE_UNION_TYPE !endif @@ -493,10 +492,9 @@ 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) \ - $(TAGBITS_DEFINES) $(LRECORD_DEFINES) $(UNION_DEFINES) \ +DEFINES=$(X_DEFINES) $(MSW_DEFINES) $(MULE_DEFINES) $(UNION_DEFINES) \ $(DUMPER_DEFINES) $(MALLOC_DEFINES) $(QUICK_DEFINES) \ -DWIN32_LEAN_AND_MEAN -DWIN32_NATIVE -Demacs \ -DHAVE_CONFIG_H $(PROGRAM_DEFINES) $(PATH_DEFINES) @@ -513,12 +511,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) #------------------------------------------------------------------------------ @@ -547,8 +548,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 @@ -565,13 +568,19 @@ $(LIB_SRC)/movemail.exe: $(LIB_SRC)/movemail.c $(LIB_SRC)/pop.c $(ETAGS_DEPS) $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) $(CFLAGS) -Fe$@ $** wsock32.lib -link -incremental:no cd $(NT) +$(LIB_SRC)/winclient.exe: $(LIB_SRC)/winclient.c + cd $(LIB_SRC) + $(CCV) -I. -I$(XEMACS)/src -I$(XEMACS)/nt/inc $(LIB_SRC_DEFINES) $(CFLAGS) -Fe$@ $** user32.lib -link -incremental:no + 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 \ $(LIB_SRC)/hexl.exe \ $(LIB_SRC)/i.exe \ + $(LIB_SRC)/winclient.exe \ $(LIB_SRC)/make-docfile.exe \ $(LIB_SRC)/mmencode.exe \ $(LIB_SRC)/movemail.exe \ @@ -875,8 +884,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=\ @@ -1180,7 +1191,7 @@ INFO_FILES= \ {$(MANDIR)}.texi{$(INFODIR)}.info: cd $(MANDIR) - $(MAKEINFO) $** + $(MAKEINFO) $(**F) XEMACS_SRCS = \ $(MANDIR)\xemacs\abbrevs.texi \ @@ -1363,7 +1374,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) @@ -1379,7 +1394,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 @@ -1393,7 +1412,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) @@ -1403,8 +1426,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 $@ @@ -1420,6 +1445,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)\" @@ -1432,6 +1458,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" @@ -1439,6 +1466,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: @@ -1515,14 +1543,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 @@ -1596,12 +1626,6 @@ XEmacs $(XEMACS_VERSION_STRING) $(xemacs_codename:"=\") configured for `$(EMACS_ WARNING: expense of an additional ~4KB of code. -------------------------------------------------------------------- !endif -!if $(USE_MINIMAL_TAGBITS) - Using minimal tagbits. -!endif -!if $(USE_INDEXED_LRECORD_IMPLEMENTATION) - Using indexed lrecord implementation. -!endif !if $(USE_UNION_TYPE) Using union type for Lisp object storage. !endif