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