Mercurial > hg > xemacs-beta
diff nt/xemacs.mak @ 5118:e0db3c197671 ben-lisp-object
merge up to latest default branch, doesn't compile yet
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Sat, 26 Dec 2009 21:18:49 -0600 |
parents | c858892e4f2b |
children | 5274591ce707 |
line wrap: on
line diff
--- a/nt/xemacs.mak Sat Dec 26 00:20:27 2009 -0600 +++ b/nt/xemacs.mak Sat Dec 26 21:18:49 2009 -0600 @@ -74,6 +74,13 @@ !endif !endif +!if [copy $(SRCROOT)\version.sh.in $(SRCROOT)\version.sh] +!endif +!if exist($(SRCROOT)\.hg) +!if [hg identify >> $(SRCROOT)\version.sh] +!endif +!endif + # Program name and version !include "$(SRCROOT)\version.sh" @@ -135,7 +142,7 @@ HAVE_XFACE=0 !endif !if !defined(HAVE_GIF) -HAVE_GIF=1 +HAVE_GIF=0 !endif !if !defined(HAVE_GTK) HAVE_GTK=0 @@ -195,6 +202,15 @@ !if !defined(SUPPORT_EDIT_AND_CONTINUE) SUPPORT_EDIT_AND_CONTINUE=0 !endif +!if !defined(BUILD_FOR_SETUP_KIT) +BUILD_FOR_SETUP_KIT=0 +!endif + +!if !$(BUILD_FOR_SETUP_KIT) +OK_TO_USE_MSVCRTD=1 +!else +OK_TO_USE_MSVCRTD=0 +!endif !if !defined(ERROR_CHECK_ALL) !if "$(emacs_is_beta)" != "" @@ -215,8 +231,8 @@ !if !defined(USE_KKCC) USE_KKCC=0 !endif -!if !defined(MC_ALLOC) -MC_ALLOC=0 +!if !defined(NEW_GC) +NEW_GC=0 !endif !if !defined(USE_UNION_TYPE) USE_UNION_TYPE=0 @@ -411,6 +427,7 @@ -DPATH_VERSION=\"$(INFODOCK_VERSION_STRING)\" \ -DPATH_PROGNAME=\"infodock\" \ -DEMACS_PROGNAME=\"infodock\" \ + -DSHEBANG_PROGNAME=\"infodock-script\" \ -DEMACS_VERSION=\"$(INFODOCK_VERSION_STRING)\" \ -DINFODOCK_MAJOR_VERSION=$(infodock_major_version) \ -DINFODOCK_MINOR_VERSION=$(infodock_minor_version) \ @@ -428,7 +445,7 @@ -DPATH_VERSION=\"$(XEMACS_VERSION_STRING)\" \ -DPATH_PROGNAME=\"xemacs\" \ -DEMACS_VERSION=\"$(XEMACS_VERSION_STRING)\" \ - -DEMACS_PROGNAME=\"xemacs\" + -DEMACS_PROGNAME=\"xemacs\" -DSHEBANG_PROGNAME=\"xemacs-script\" !endif ########################### Set up installation and package directories. @@ -440,25 +457,19 @@ INSTALL_DIR=c:\Program Files\XEmacs\XEmacs-$(XEMACS_VERSION_STRING) ! endif !endif -!if !defined(PACKAGE_PATH) -! if !defined(PACKAGE_PREFIX) -PACKAGE_PREFIX=c:\Program Files\XEmacs -! endif -! if $(MULE) -PACKAGE_PATH=~\.xemacs;;$(PACKAGE_PREFIX)\site-packages;$(PACKAGE_PREFIX)\mule-packages;$(PACKAGE_PREFIX)\xemacs-packages -! else -PACKAGE_PATH=~\.xemacs;;$(PACKAGE_PREFIX)\site-packages;$(PACKAGE_PREFIX)\xemacs-packages -! endif + +# If PACKAGE_PREFIX was defined, use it to generate a package path. +!if defined(PACKAGE_PREFIX) +PATH_LATE_PACKAGE_DIRECTORIES="$(PACKAGE_PREFIX:\=\\)" !endif -PATH_PACKAGEPATH="$(PACKAGE_PATH:\=\\)" !if $(INFODOCK) PATH_PREFIX=../.. !else -PATH_PREFIX=.. +PATH_PREFIX="$(INSTALL_DIR)" !endif -PATH_DEFINES=-DPATH_PREFIX=\"$(PATH_PREFIX)\" +PATH_DEFINES=-DPATH_PREFIX=\"$(PATH_PREFIX:\=\\)\" !if $(SEPARATE_BUILD) PATH_DEFINES=$(PATH_DEFINES) -DPATH_LOADSEARCH=\"$(LISP:\=\\)\" -DPATH_DATA=\"$(ETC:\=\\)\" -DPATH_INFO=\"$(INFO:\=\\)\" @@ -537,7 +548,8 @@ !endif !if $(HAVE_GIF) OPT_DEFINES=$(OPT_DEFINES) -DHAVE_GIF -OPT_OBJS=$(OPT_OBJS) $(OUTDIR)\dgif_lib.obj $(OUTDIR)\gif_io.obj +OPT_INCLUDES=$(OPT_INCLUDES) -I"$(GIF_DIR)\include" +OPT_LIBS=$(OPT_LIBS) "$(GIF_DIR)\lib\giflib.lib" !endif !if $(HAVE_PNG) OPT_DEFINES=$(OPT_DEFINES) -DHAVE_PNG @@ -639,22 +651,34 @@ OPT_OBJS=$(OPT_OBJS) $(OUTDIR)\unexnt.obj !endif +!if $(NEW_GC) +OPT_DEFINES=$(OPT_DEFINES) -DNEW_GC +OPT_OBJS=$(OPT_OBJS) $(OUTDIR)\vdb.obj $(OUTDIR)\vdb-win32.obj \ + $(OUTDIR)\mc-alloc.obj +USE_KKCC=1 +!endif + !if $(USE_KKCC) OPT_DEFINES=$(OPT_DEFINES) -DUSE_KKCC !endif -!if $(MC_ALLOC) -OPT_DEFINES=$(OPT_DEFINES) -DMC_ALLOC -OPT_OBJS=$(OPT_OBJS) $(OUTDIR)\mc-alloc.obj -!endif !if $(USE_SYSTEM_MALLOC) OPT_DEFINES=$(OPT_DEFINES) -DSYSTEM_MALLOC !else -OPT_DEFINES=$(OPT_DEFINES) -DGNU_MALLOC OPT_OBJS=$(OPT_OBJS) $(OUTDIR)\free-hook.obj $(OUTDIR)\gmalloc.obj \ $(OUTDIR)\ntheap.obj $(OUTDIR)\vm-limit.obj !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 + ########################### Process options related to compilation. # @@ -675,8 +699,8 @@ # giving it. DEBUG_FLAG_LINK_DEBUG=-debug -opt:noref # This turns on additional run-time checking -# For some reason it causes spawning of make-docfile to crash in VC 7 -DEBUG_FLAG_COMPILE_DEBUG=-RTC1 +# For some reason it causes spawning of make-docfile to crash in VC 7 and VC 8 +# DEBUG_FLAG_COMPILE_DEBUG=-RTC1 ! else DEBUG_FLAG_LINK_DEBUG=-debug:full DEBUG_FLAG_COMPILE_DEBUG= @@ -714,13 +738,13 @@ !endif !if $(USE_CRTDLL) -! if $(DEBUG_XEMACS) +! if $(DEBUG_XEMACS) && "$(OK_TO_USE_MSVCRTD)" == "1" C_LIBFLAG=-MDd LIBC_LIB=msvcrtd.lib -! else +! else C_LIBFLAG=-MD LIBC_LIB=msvcrt.lib -! endif +! endif !else C_LIBFLAG=-ML LIBC_LIB=libc.lib @@ -800,10 +824,12 @@ $(EMACS_BETA_VERSION) $(EMACS_PATCH_LEVEL) \ -DXEMACS_CODENAME=\"$(xemacs_codename:&=and)\" \ !if defined(xemacs_extra_name) - -DXEMACS_EXTRA_NAME=\"$(xemacs_extra_name:"=)\" \ + -DXEMACS_EXTRA_NAME=\""$(xemacs_extra_name:"=)"\" \ !endif - -DEMACS_CONFIGURATION=\"$(EMACS_CONFIGURATION)\" \ - -DPATH_PACKAGEPATH=\"$(PATH_PACKAGEPATH)\" +!if defined(PATH_LATE_PACKAGE_DIRECTORIES) + -DPATH_LATE_PACKAGE_DIRECTORIES=\"$(PATH_LATE_PACKAGE_DIRECTORIES)\" \ +!endif + -DEMACS_CONFIGURATION=\"$(EMACS_CONFIGURATION)\" TEMACS_CPP_FLAGS=$(CFLAGS) $(TEMACS_CPP_FLAGS_NO_CFLAGS) TEMACS_CPP_CDECL_FLAGS=$(CFLAGS_CDECL) $(TEMACS_CPP_FLAGS_NO_CFLAGS) @@ -848,6 +874,7 @@ $(OUTDIR)\fns.obj \ $(OUTDIR)\font-lock.obj \ $(OUTDIR)\frame.obj \ + $(OUTDIR)\gc.obj \ $(OUTDIR)\general.obj \ $(OUTDIR)\getloadavg.obj \ $(OUTDIR)\glyphs.obj \ @@ -1063,8 +1090,10 @@ !endif !if [echo LISPDIR>>$(CONFIG_VALUES) && echo "\\$(LISP:\=\\)">>$(CONFIG_VALUES)] !endif -# PATH_PACKAGEPATH is already a quoted string. -!if [echo PACKAGE_PATH>>$(CONFIG_VALUES) && echo $(PATH_PACKAGEPATH)>>$(CONFIG_VALUES)] +!if defined(PATH_LATE_PACKAGE_DIRECTORIES) +# PATH_LATE_PACKAGE_DIRECTORIES is already a quoted string. +! if [echo PATH_LATE_PACKAGE_DIRECTORIES>>$(CONFIG_VALUES) && echo $(PATH_LATE_PACKAGE_DIRECTORIES)>>$(CONFIG_VALUES)] +! endif !endif LINK_DEPENDENCY_ARGS = -Fe$@ -Fd$* $** -link $(DEBUG_FLAGS_LINK) @@ -1075,17 +1104,32 @@ # Inferred rule {$(LIB_SRC)}.c{$(BLDLIB_SRC)}.exe : $(CCV) $(LIB_SRC_CFLAGS) $(LINK_DEPENDENCY_ARGS) $(LINK_STANDARD_LIBRARY_ARGS) +# If we're using Visual Studio 2005 or greater, +# embed the manifest into the executable. +!if $(MSC_VER) >= 1400 + mt -manifest $@.manifest -outputresource:$@;1 +!endif # Individual dependencies ETAGS_DEPS = $(LIB_SRC)/getopt.c $(LIB_SRC)/getopt1.c $(SRC)/regex.c $(BLDLIB_SRC)/etags.exe : $(LIB_SRC)/etags.c $(ETAGS_DEPS) $(CCV) $(LIB_SRC_CFLAGS) $(LINK_DEPENDENCY_ARGS) -stack:0x800000 $(LINK_STANDARD_LIBRARY_ARGS) +# If we're using Visual Studio 2005 or greater, +# embed the manifest into the executable. +!if $(MSC_VER) >= 1400 + mt -manifest $@.manifest -outputresource:$@;1 +!endif $(BLDLIB_SRC)/movemail.exe : $(LIB_SRC)/movemail.c $(LIB_SRC)/pop.c $(ETAGS_DEPS) # Minitar uses zlib so just use cdecl to simplify things $(BLDLIB_SRC)/minitar.exe : $(NT)/minitar.c $(CCV) -I$(SRC) -I"$(ZLIB_DIR)" $(LIB_SRC_DEFINES) $(CFLAGS_CDECL_NO_LIB) -MD $(LINK_DEPENDENCY_ARGS) "$(ZLIB_DIR)\zlib.lib" +# If we're using Visual Studio 2005 or greater, +# embed the manifest into the executable. +!if $(MSC_VER) >= 1400 + mt -manifest $@.manifest -outputresource:$@;1 +!endif LIB_SRC_TOOLS = \ $(BLDLIB_SRC)/etags.exe \ @@ -1095,8 +1139,7 @@ $(BLDLIB_SRC)/make-docfile.exe \ $(BLDLIB_SRC)/mmencode.exe \ $(BLDLIB_SRC)/movemail.exe \ - $(BLDLIB_SRC)/sorted-doc.exe \ - $(BLDLIB_SRC)/wakeup.exe + $(BLDLIB_SRC)/sorted-doc.exe !if $(USE_MINITAR) LIB_SRC_TOOLS = \ $(LIB_SRC_TOOLS) \ @@ -1137,7 +1180,9 @@ Compiling as C++. !endif Installing XEmacs in "$(INSTALL_DIR:\=\\)". - Package path is $(PATH_PACKAGEPATH). +!if defined(PATH_LATE_PACKAGE_DIRECTORIES) + Package path is $(PATH_LATE_PACKAGE_DIRECTORIES). +!endif !if $(INFODOCK) Building InfoDock. !endif @@ -1254,10 +1299,10 @@ Disabling non-essential build actions. Use with care! !endif !if $(USE_KKCC) - Using new experimental GC algorithms. + Using new experimental GC mark algorithms. !endif -!if $(MC_ALLOC) - Using new experimental allocator. +!if $(NEW_GC) + Using new experimental incremental garbage collector and new allocator. !endif <<NOKEEP @echo -------------------------------------------------------------------- @@ -1280,7 +1325,7 @@ TEMACS_LIBS=$(LASTFILE) $(OPT_LIBS) \ oldnames.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib \ shell32.lib wsock32.lib netapi32.lib winmm.lib winspool.lib ole32.lib \ - mpr.lib uuid.lib imm32.lib $(LIBC_LIB) + mpr.lib uuid.lib imm32.lib $(INTEL_LIBS) $(LIBC_LIB) TEMACS_COMMON_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS_LINK) \ -base:0x1000000 -stack:0x800000 $(TEMACS_ENTRYPOINT) -subsystem:windows \ -heap:0x00100000 -nodefaultlib $(PROFILE_FLAGS) setargv.obj @@ -1343,7 +1388,8 @@ !endif $(RAW_EXE): $(TEMACS_OBJS) $(LASTFILE) $(TEMACS_DUMP_DEP) - @echo link $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(TEMACS_DUMP_DEP) $(TEMACS_LIBS) +# Command line too long for some Windows installation: +# @echo link $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(TEMACS_DUMP_DEP) $(TEMACS_LIBS) link.exe @<< $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(TEMACS_DUMP_DEP) $(TEMACS_LIBS) << @@ -1405,6 +1451,12 @@ $(XEMACS_LFLAGS) -section:.rsrc,rw -out:$(BLDSRC)\xemacs.exe $(TEMACS_OBJS) $(OUTDIR)\xemacs.res $(TEMACS_LIBS) $(OUTDIR)\dump-id.obj << -$(DEL) $(BLDSRC)\xemacs.dmp +# If we're using Visual Studio 2005 or greater, +# embed the manifest into the executable. +!if $(MSC_VER) >= 1400 + mt -manifest $@.manifest -outputresource:$@;1 +!endif + !endif ## (6) Update the remaining .elc's, post-dumping @@ -1437,21 +1489,22 @@ MANDIR = $(SRCROOT)\man INFODIR = $(SRCROOT)\info INFO_FILES= \ + $(INFODIR)\beta.info \ $(INFODIR)\cl.info \ $(INFODIR)\custom.info \ $(INFODIR)\emodules.info \ $(INFODIR)\external-widget.info \ $(INFODIR)\info.info \ + $(INFODIR)\internals.info \ + $(INFODIR)\lispref.info \ + $(INFODIR)\new-users-guide.info \ $(INFODIR)\standards.info \ $(INFODIR)\term.info \ $(INFODIR)\termcap.info \ $(INFODIR)\texinfo.info \ $(INFODIR)\widget.info \ $(INFODIR)\xemacs-faq.info \ - $(INFODIR)\xemacs.info \ - $(INFODIR)\lispref.info \ - $(INFODIR)\new-users-guide.info \ - $(INFODIR)\internals.info + $(INFODIR)\xemacs.info {$(MANDIR)}.texi{$(INFODIR)}.info: cd $(MANDIR) @@ -1549,6 +1602,7 @@ $(MANDIR)\lispref\numbers.texi \ $(MANDIR)\lispref\objects.texi \ $(MANDIR)\lispref\os.texi \ + $(MANDIR)\lispref\packaging.texi \ $(MANDIR)\lispref\positions.texi \ $(MANDIR)\lispref\processes.texi \ $(MANDIR)\lispref\range-tables.texi \ @@ -1668,6 +1722,7 @@ @$(COPYDIR) $(SRCROOT)\etc "$(INSTALL_DIR)\etc\" @$(COPYDIR) $(SRCROOT)\info "$(INSTALL_DIR)\info\" @$(COPYDIR) $(SRCROOT)\lisp "$(INSTALL_DIR)\lisp\" +!if defined(PACKAGE_PREFIX) @echo Making skeleton package tree in $(PACKAGE_PREFIX) ... @$(COPY) PlaceHolder "$(PACKAGE_PREFIX)\site-packages\" -$(DEL) "$(PACKAGE_PREFIX)\site-packages\PlaceHolder" @@ -1675,6 +1730,7 @@ -$(DEL) "$(PACKAGE_PREFIX)\mule-packages\PlaceHolder" @$(COPY) PlaceHolder "$(PACKAGE_PREFIX)\xemacs-packages\" -$(DEL) "$(PACKAGE_PREFIX)\xemacs-packages\PlaceHolder" +!endif -$(DEL) PlaceHolder ########################### clean