X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=nt%2Fxemacs.mak;h=35ddb919d6f4e9eeb361f741f063060298097471;hb=cdbab8b0015a8f1c771b6d6ad46ca0f668da4cfe;hp=745e063d63699637baf2450f84e49fc0a771bd8d;hpb=041e98cf4c48018877365e3bfb37cfc09b54cc6d;p=chise%2Fxemacs-chise.git.1 diff --git a/nt/xemacs.mak b/nt/xemacs.mak index 745e063..35ddb91 100644 --- a/nt/xemacs.mak +++ b/nt/xemacs.mak @@ -44,14 +44,25 @@ LWLIB_SRCDIR=$(XEMACS)\lwlib MAKEDIRSTRING=$(MAKEDIR:\=\\) XEMACSDIRSTRING=$(MAKEDIRSTRING:\\nt=) - -# Define a variable for the 'del' command to use -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) @@ -120,6 +131,9 @@ HAVE_XPM=0 !if !defined(HAVE_PNG) HAVE_PNG=0 !endif +!if !defined(HAVE_ZLIB) +HAVE_ZLIB=$(HAVE_PNG) +!endif !if !defined(HAVE_TIFF) HAVE_TIFF=0 !endif @@ -160,20 +174,11 @@ QUICK_BUILD=0 USE_UNION_TYPE=0 !endif !if !defined(USE_MINITAR) -USE_MINITAR=1 -!endif -!if !defined(USE_MINIMAL_TAGBITS) -USE_MINIMAL_TAGBITS=0 -!endif -!if !defined(USE_INDEXED_LRECORD_IMPLEMENTATION) -USE_INDEXED_LRECORD_IMPLEMENTATION=0 +USE_MINITAR=$(HAVE_ZLIB) !endif !if !defined(USE_PORTABLE_DUMPER) USE_PORTABLE_DUMPER=0 !endif -!if !defined(GUNG_HO) -GUNG_HO=0 -!endif # A little bit of adhockery. Default to use system malloc and # DLL version of the C runtime library when using portable @@ -202,6 +207,9 @@ EMACS_CONFIGURATION=ppc-pc-win32 !else ! error Unknown processor architecture type $(PROCESSOR_ARCHITECTURE) !endif +STACK_TRACE_EYE_CATCHER=$(XEMACS_VERSION_STRING:.=_) +STACK_TRACE_EYE_CATCHER=xemacs_$(STACK_TRACE_EYE_CATCHER:-=_)_$(EMACS_CONFIGURATION:-=_) +PROGRAM_DEFINES=$(PROGRAM_DEFINES) -DSTACK_TRACE_EYE_CATCHER=$(STACK_TRACE_EYE_CATCHER) # # Conf error checks @@ -297,20 +305,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 @@ -322,7 +322,7 @@ DEPEND=0 # much backslash quoting. This does not happen, of course, with a non- # Cygwin Perl, so in that circumstance, you'd be screwed and would have # to fix this Makefile to not have a special Cygwin case. -! if defined(_) +! if defined(_) || [perl -e "exit 1 if $$^O == 'cygwin';"]==1 ! if [perl -p -e "s/^\\x23if defined(.+)/!if defined$$1/; s/^\\x23e/!e/;" \ -e "s/([\\s=^])([\\w\\d\\.\\-^]+\\.[ch^])/$$1$(SRC:\=\\\\)\\\\$$2/g;" \ -e "s/^(.+)\\.o:(.+)/$(OUTDIR:\=\\\\)\\\\$$1.obj:$$2/;" \ @@ -372,7 +372,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 @@ -423,7 +424,6 @@ MSW_LIBS=$(MSW_LIBS) "$(COMPFACE_DIR)\libcompface.lib" MSW_DEFINES=$(MSW_DEFINES) -DHAVE_TOOLBARS MSW_TOOLBAR_SRC=$(SRC)\toolbar.c $(SRC)\toolbar-msw.c MSW_TOOLBAR_OBJ=$(OUTDIR)\toolbar.obj $(OUTDIR)\toolbar-msw.obj -MSW_LIBS=$(MSW_LIBS) comctl32.lib !endif !if $(HAVE_DIALOGS) MSW_DEFINES=$(MSW_DEFINES) -DHAVE_DIALOGS @@ -433,6 +433,9 @@ MSW_DIALOG_OBJ=$(OUTDIR)\dialog.obj $(OUTDIR)\dialog-msw.obj !if $(HAVE_WIDGETS) MSW_DEFINES=$(MSW_DEFINES) -DHAVE_WIDGETS !endif +!if $(HAVE_TOOLBARS) || $(HAVE_WIDGETS) +MSW_LIBS=$(MSW_LIBS) comctl32.lib +!endif !if $(HAVE_NATIVE_SOUND) MSW_DEFINES=$(MSW_DEFINES) -DHAVE_NATIVE_SOUND !endif @@ -451,12 +454,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 @@ -485,8 +482,7 @@ PATH_DEFINES=-DPATH_PREFIX=\"$(PATH_PREFIX)\" INCLUDES=$(X_INCLUDES) $(MSW_INCLUDES) -I$(NT)\inc -I$(SRC) -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) @@ -501,13 +497,17 @@ XEMACS_INCLUDES=\ $(SRC)\Emacs.ad.h \ $(SRC)\paths.h +# #### 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) #------------------------------------------------------------------------------ @@ -554,13 +554,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) -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 \ @@ -1392,8 +1398,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 $@ @@ -1409,6 +1417,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,34 +1441,56 @@ install: all mostlyclean: $(DEL) $(XEMACS)\Installation - $(DEL) $(OUTDIR)\*.lib $(OUTDIR)\*.obj $(OUTDIR)\*.pdb - $(DEL) $(OUTDIR)\*.res $(OUTDIR)\*.sbr - $(DEL) $(SRC)\*.exe $(SRC)\*.map $(SRC)\*.bsc $(SRC)\*.pdb - $(DEL) $(LIB_SRC)\*.exe $(LIB_SRC)\*.obj $(LIB_SRC)\*.pdb + $(DEL) $(OUTDIR)\*.lib + $(DEL) $(OUTDIR)\*.obj + $(DEL) $(OUTDIR)\*.pdb + $(DEL) $(OUTDIR)\*.res + $(DEL) $(OUTDIR)\*.sbr + $(DEL) $(SRC)\*.exe + $(DEL) $(SRC)\*.map + $(DEL) $(SRC)\*.bsc + $(DEL) $(SRC)\*.pdb + $(DEL) $(LIB_SRC)\*.exe + $(DEL) $(LIB_SRC)\*.obj + $(DEL) $(LIB_SRC)\*.pdb $(DEL) $(LIB_SRC)\*.res clean: mostlyclean versionclean $(DEL) $(XEMACS)\TAGS nicenclean: clean - $(DEL) $(NT)\*.bak $(NT)\*.orig $(NT)\*.rej $(NT)\*.tmp - $(DEL) $(LIB_SRC)\*.bak $(LIB_SRC)\*.orig $(LIB_SRC)\*.rej + $(DEL) $(NT)\*.bak + $(DEL) $(NT)\*.orig + $(DEL) $(NT)\*.rej + $(DEL) $(NT)\*.tmp + $(DEL) $(LIB_SRC)\*.bak + $(DEL) $(LIB_SRC)\*.orig + $(DEL) $(LIB_SRC)\*.rej $(DEL) $(LIB_SRC)\*.tmp - $(DEL) $(SRC)\*.bak $(SRC)\*.orig $(SRC)\*.rej $(SRC)\*.tmp - $(DEL) /s $(LISP)\*.bak $(LISP)\*.orig $(LISP)\*.rej $(LISP)\*.tmp + $(DEL) $(SRC)\*.bak + $(DEL) $(SRC)\*.orig + $(DEL) $(SRC)\*.rej + $(DEL) $(SRC)\*.tmp + $(DEL) $(LISP)\*.bak + $(DEL) $(LISP)\*.orig + $(DEL) $(LISP)\*.rej + $(DEL) $(LISP)\*.tmp ## This is used in making a distribution. ## Do not use it on development directories! distclean: nicenclean - $(DEL) $(SRC)\config.h $(SRC)\paths.h $(SRC)\Emacs.ad.h - $(DEL) $(LIB_SRC)\$(CONFIG_VALUES) + $(DEL) $(SRC)\config.h + $(DEL) $(SRC)\paths.h + $(DEL) $(SRC)\Emacs.ad.h + $(DEL) $(CONFIG_VALUES) $(DEL) $(INFODIR)\*.info* - $(DEL) /s /q $(LISP)\*.elc + $(DEL) $(LISP)\*.elc realclean: distclean versionclean: - $(DEL) $(SRC)\xemacs.exe $(LIB_SRC)\DOC + $(DEL) $(SRC)\xemacs.exe + $(DEL) $(LIB_SRC)\DOC #not sure about those wildcards. DOS wildcards are stupid compared to Unix, #and could end up deleting *everything* instead of just backup files or @@ -1475,19 +1506,21 @@ depend: $(XEMACS)\Installation:: installation installation:: - @type > $(XEMACS)\Installation << + @echo OS version:>$(XEMACS)\Installation + @ver >> $(XEMACS)\Installation + @type >> $(XEMACS)\Installation << !if defined(OS) 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:\=\\)\". - Package path is $(PATH_PACKAGEPATH:"=\"). + Installing XEmacs in "$(INSTALL_DIR:\=\\)". + Package path is $(PATH_PACKAGEPATH). !if $(INFODOCK) Building InfoDock. !endif @@ -1561,12 +1594,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