X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=nt%2Fxemacs.mak;fp=nt%2Fxemacs.mak;h=19bed41d498f5638a651d46d327224bfab76b25f;hp=e04f1c365cf31c49cf99ffe23346869ce50ba16f;hb=716cfba952c1dc0d2cf5c968971f3780ba728a89;hpb=d74da9234cc42e8018b1500105c3892a5c46d5e3 diff --git a/nt/xemacs.mak b/nt/xemacs.mak index e04f1c3..19bed41 100644 --- a/nt/xemacs.mak +++ b/nt/xemacs.mak @@ -145,6 +145,16 @@ USE_PORTABLE_DUMPER=0 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 +# dumping. These are the optimal settings. +!if !defined(USE_SYSTEM_MALLOC) +USE_SYSTEM_MALLOC=$(USE_PORTABLE_DUMPER) +!endif +!if !defined(USE_CRTDLL) +USE_CRTDLL=$(USE_PORTABLE_DUMPER) +!endif + # # System configuration # @@ -171,6 +181,19 @@ CONFIG_ERROR=0 !message Cannot build InfoDock without InfoDock sources CONFIG_ERROR=1 !endif +!if !$(USE_PORTABLE_DUMPER) && $(USE_SYSTEM_MALLOC) +!message Cannot use system allocator when dumping old way, use portable dumper. +CONFIG_ERROR=1 +!endif +!if !$(USE_PORTABLE_DUMPER) && $(USE_CRTDLL) +!message Cannot use C runtime DLL when dumping old way, use portable dumper. +CONFIG_ERROR=1 +!endif +!if !$(USE_SYSTEM_MALLOC) && $(USE_CRTDLL) +!message GNU malloc currently cannot be used with CRT DLL. +!message [[[Developer note: If you want to fix it, read Q112297 first]]] #### +CONFIG_ERROR=1 +!endif !if !$(HAVE_MSW) && !$(HAVE_X) !message Please specify at least one HAVE_MSW=1 and/or HAVE_X=1 CONFIG_ERROR=1 @@ -265,7 +288,20 @@ OPT=-Od -Zi OPT=-O2 -G5 !endif -CFLAGS=-nologo -W3 $(OPT) +!if $(USE_CRTDLL) +!if $(DEBUG_XEMACS) +C_LIBFLAG=-MDd +LIBC_LIB=msvcrtd.lib +!else +C_LIBFLAG=-MD +LIBC_LIB=msvcrt.lib +!endif +!else +C_LIBFLAG=-ML +LIBC_LIB=libc.lib +!endif + +CFLAGS=-nologo -W3 $(OPT) $(C_LIBFLAG) !if $(HAVE_X) X_DEFINES=-DHAVE_X_WINDOWS @@ -347,11 +383,17 @@ TAGBITS_DEFINES=-DUSE_MINIMAL_TAGBITS LRECORD_DEFINES=-DUSE_INDEXED_LRECORD_IMPLEMENTATION !endif !if $(USE_UNION_TYPE) +UNION_DEFINES=-DUSE_UNION_TYPE +!endif + !if $(USE_PORTABLE_DUMPER) DUMPER_DEFINES=-DPDUMP !endif -UNION_DEFINES=-DUSE_UNION_TYPE +!if $(USE_SYSTEM_MALLOC) +MALLOC_DEFINES=-DSYSTEM_MALLOC +!else +MALLOC_DEFINES=-DGNU_MALLOC !endif # Hard-coded paths @@ -369,7 +411,8 @@ PATH_DEFINES=-DPATH_PREFIX=\"$(PATH_PREFIX)\" INCLUDES=$(X_INCLUDES) $(MSW_INCLUDES) -I$(XEMACS)\nt\inc -I$(XEMACS)\src -I$(XEMACS)\lwlib DEFINES=$(X_DEFINES) $(MSW_DEFINES) $(MULE_DEFINES) \ - $(TAGBITS_DEFINES) $(LRECORD_DEFINES) $(UNION_DEFINES) $(DUMPER_DEFINES)\ + $(TAGBITS_DEFINES) $(LRECORD_DEFINES) $(UNION_DEFINES) \ + $(DUMPER_DEFINES) $(MALLOC_DEFINES) \ -DWIN32 -D_WIN32 -DWIN32_LEAN_AND_MEAN -DWINDOWSNT -Demacs \ -DHAVE_CONFIG_H $(PROGRAM_DEFINES) $(PATH_DEFINES) @@ -474,6 +517,8 @@ $(LIB_SRC)\run.res: $(LIB_SRC)\run.rc # LASTFILE Library +!if !$(USE_SYSTEM_MALLOC) || !$(USE_PORTABLE_DUMPER) + LASTFILE=$(OUTDIR)\lastfile.lib LASTFILE_SRC=$(XEMACS)\src LASTFILE_FLAGS=$(CFLAGS) $(INCLUDES) -Fo$@ -Fd$* -c @@ -486,6 +531,8 @@ $(LASTFILE): $(XEMACS_INCLUDES) $(LASTFILE_OBJS) $(OUTDIR)\lastfile.obj: $(LASTFILE_SRC)\lastfile.c $(CCV) $(LASTFILE_FLAGS) $** +!endif + #------------------------------------------------------------------------------ !if $(HAVE_X) @@ -575,12 +622,10 @@ DOC_SRC2=\ DOC_SRC3=\ $(XEMACS)\src\font-lock.c \ $(XEMACS)\src\frame.c \ - $(XEMACS)\src\free-hook.c \ $(XEMACS)\src\general.c \ $(XEMACS)\src\glyphs.c \ $(XEMACS)\src\glyphs-eimage.c \ $(XEMACS)\src\glyphs-widget.c \ - $(XEMACS)\src\gmalloc.c \ $(XEMACS)\src\gui.c \ $(XEMACS)\src\gutter.c \ $(XEMACS)\src\hash.c \ @@ -599,7 +644,6 @@ DOC_SRC4=\ $(XEMACS)\src\menubar.c \ $(XEMACS)\src\minibuf.c \ $(XEMACS)\src\nt.c \ - $(XEMACS)\src\ntheap.c \ $(XEMACS)\src\ntplay.c \ $(XEMACS)\src\ntproc.c \ $(XEMACS)\src\objects.c \ @@ -627,8 +671,6 @@ DOC_SRC5=\ $(XEMACS)\src\termcap.c \ $(XEMACS)\src\tparam.c \ $(XEMACS)\src\undo.c \ - $(XEMACS)\src\unexnt.c \ - $(XEMACS)\src\vm-limit.c \ $(XEMACS)\src\window.c \ $(XEMACS)\src\widget.c @@ -688,7 +730,21 @@ DOC_SRC8=\ !if $(DEBUG_XEMACS) DOC_SRC9=\ - $(XEMACS)\src\debug.c + $(XEMACS)\src\debug.c \ + $(XEMACS)\src\tests.c +!endif + +!if !$(USE_SYSTEM_MALLOC) +DOC_SRC10=\ + $(XEMACS)\src\free-hook.c \ + $(XEMACS)\src\gmalloc.c \ + $(XEMACS)\src\ntheap.c \ + $(XEMACS)\src\vm-limit.c +!endif + +!if !$(USE_PORTABLE_DUMPER) +DOC_SRC11=\ + $(XEMACS)\src\unexnt.c !endif #------------------------------------------------------------------------------ @@ -700,18 +756,22 @@ DOC_SRC9=\ EMACS_BETA_VERSION=-DEMACS_BETA_VERSION=$(emacs_beta_version) !ENDIF +!if !$(USE_PORTABLE_DUMPER) +TEMACS_ENTRYPOINT=-entry:_start +!endif + TEMACS_DIR=$(XEMACS)\src TEMACS=$(TEMACS_DIR)\temacs.exe TEMACS_BROWSE=$(TEMACS_DIR)\temacs.bsc TEMACS_SRC=$(XEMACS)\src TEMACS_LIBS=$(LASTFILE) $(LWLIB) $(X_LIBS) $(MSW_LIBS) \ - kernel32.lib user32.lib gdi32.lib advapi32.lib \ - shell32.lib wsock32.lib winmm.lib libc.lib + oldnames.lib kernel32.lib user32.lib gdi32.lib advapi32.lib \ + shell32.lib wsock32.lib winmm.lib winspool.lib $(LIBC_LIB) TEMACS_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS) -base:0x1000000\ - -stack:0x800000 -entry:_start -subsystem:console\ + -stack:0x800000 $(TEMACS_ENTRYPOINT) -subsystem:console\ -pdb:$(TEMACS_DIR)\temacs.pdb -map:$(TEMACS_DIR)\temacs.map \ - -heap:0x00100000 -out:$@ -TEMACS_CPP_FLAGS=-ML -c \ + -heap:0x00100000 -out:$@ -nodefaultlib +TEMACS_CPP_FLAGS=-c \ $(CFLAGS) $(INCLUDES) $(DEFINES) $(DEBUG_DEFINES) \ -DEMACS_MAJOR_VERSION=$(emacs_major_version) \ -DEMACS_MINOR_VERSION=$(emacs_minor_version) \ @@ -777,7 +837,21 @@ TEMACS_MULE_OBJS=\ !if $(DEBUG_XEMACS) TEMACS_DEBUG_OBJS=\ - $(OUTDIR)\debug.obj + $(OUTDIR)\debug.obj \ + $(OUTDIR)\tests.obj +!endif + +!if !$(USE_SYSTEM_MALLOC) +TEMACS_ALLOC_OBJS=\ + $(OUTDIR)\free-hook.obj \ + $(OUTDIR)\gmalloc.obj \ + $(OUTDIR)\ntheap.obj \ + $(OUTDIR)\vm-limit.obj +!endif + +!if !$(USE_PORTABLE_DUMPER) +TEMACS_DUMP_OBJS=\ + $(OUTDIR)\unexnt.obj !endif TEMACS_OBJS= \ @@ -786,6 +860,8 @@ TEMACS_OBJS= \ $(TEMACS_CODING_OBJS)\ $(TEMACS_MULE_OBJS)\ $(TEMACS_DEBUG_OBJS)\ + $(TEMACS_ALLOC_OBJS)\ + $(TEMACS_DUMP_OBJS)\ $(OUTDIR)\abbrev.obj \ $(OUTDIR)\alloc.obj \ $(OUTDIR)\alloca.obj \ @@ -823,12 +899,10 @@ TEMACS_OBJS= \ $(OUTDIR)\fns.obj \ $(OUTDIR)\font-lock.obj \ $(OUTDIR)\frame.obj \ - $(OUTDIR)\free-hook.obj \ $(OUTDIR)\general.obj \ $(OUTDIR)\glyphs.obj \ $(OUTDIR)\glyphs-eimage.obj \ $(OUTDIR)\glyphs-widget.obj \ - $(OUTDIR)\gmalloc.obj \ $(OUTDIR)\gui.obj \ $(OUTDIR)\gutter.obj \ $(OUTDIR)\hash.obj \ @@ -846,7 +920,6 @@ TEMACS_OBJS= \ $(OUTDIR)\md5.obj \ $(OUTDIR)\minibuf.obj \ $(OUTDIR)\nt.obj \ - $(OUTDIR)\ntheap.obj \ $(OUTDIR)\ntplay.obj \ $(OUTDIR)\ntproc.obj \ $(OUTDIR)\objects.obj \ @@ -872,8 +945,6 @@ TEMACS_OBJS= \ $(OUTDIR)\sysdep.obj \ $(OUTDIR)\tparam.obj \ $(OUTDIR)\undo.obj \ - $(OUTDIR)\unexnt.obj \ - $(OUTDIR)\vm-limit.obj \ $(OUTDIR)\widget.obj \ $(OUTDIR)\window.obj \ $(OUTDIR)\xemacs.res @@ -912,6 +983,9 @@ $(TEMACS): $(TEMACS_INCLUDES) $(TEMACS_OBJS) bscmake -nologo -o$(TEMACS_BROWSE) @bscmake.tmp @$(DEL) bscmake.tmp !endif +!if $(USE_PORTABLE_DUMPER) + @if exist $(TEMACS_DIR)\xemacs.dmp del $(TEMACS_DIR)\xemacs.dmp +!endif link.exe @<< $(TEMACS_LFLAGS) $(TEMACS_OBJS) $(TEMACS_LIBS) << @@ -1148,8 +1222,15 @@ if exist "$(MAKEINFO)" goto test_done LOADPATH=$(LISP) +# Rebuild docfile target +docfile :: + if exist $(DOC) del $(DOC) +docfile :: $(DOC) + $(DOC): $(LIB_SRC)\make-docfile.exe - $(DEL) $(DOC) + if exist $(DOC) del $(DOC) + set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) + 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) $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC2) @@ -1160,23 +1241,27 @@ $(DOC): $(LIB_SRC)\make-docfile.exe $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC7) $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC8) $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC9) + $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC10) + $(LIB_SRC)\make-docfile.exe -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC11) update-elc: - set EMACSBOOTSTRAPMODULEPATH=$(MODULES) set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) set EMACSBOOTSTRAPMODULEPATH=$(MODULES) $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\update-elc.el # This rule dumps xemacs and then possibly spawns sub-make if PURESPACE # requirements have changed. -dump-xemacs: $(TEMACS) +dump-xemacs: temacs @echo >$(TEMACS_DIR)\SATISFIED cd $(TEMACS_DIR) set EMACSBOOTSTRAPLOADPATH=$(LISP);$(PACKAGE_PATH) + set EMACSBOOTSTRAPMODULEPATH=$(MODULES) -1 $(TEMACS) -batch -l $(TEMACS_DIR)\..\lisp\loadup.el dump +!if $(USE_PORTABLE_DUMPER) + copy temacs.exe xemacs.exe +!endif cd $(NT) @if not exist $(TEMACS_DIR)\SATISFIED nmake -nologo -f xemacs.mak $@ - #------------------------------------------------------------------------------ # use this rule to build the complete system @@ -1254,6 +1339,11 @@ depend: perl ./make-src-depend > depend.tmp perl -MFile::Compare -e "compare('depend.tmp', 'depend') && rename('depend.tmp', 'depend') or unlink('depend.tmp')" +installation:: + @if exist $(XEMACS)\Installation del $(XEMACS)\Installation + +installation:: $(XEMACS)\Installation + $(XEMACS)\Installation: @type > $(XEMACS)\Installation << !if defined(OS) @@ -1345,6 +1435,12 @@ XEmacs $(XEMACS_VERSION_STRING) $(xemacs_codename:"=\") configured for `$(EMACS_ !if $(USE_PORTABLE_DUMPER) Using portable dumper. !endif +!if $(USE_SYSTEM_MALLOC) + Using system malloc. +!endif +!if $(USE_CRTDLL) + Using DLL version of C runtime library +!endif !if $(DEBUG_XEMACS) Compiling in extra debug checks. XEmacs will be slow! !endif