comparison nt/xemacs.mak @ 2948:b5fe6b5627b1

[xemacs-hg @ 2005-09-25 19:13:43 by adrian] xemacs-21.5-clean: Fix variable initialization order in xemacs.mak -------------------- ChangeLog entries follow: -------------------- nt/ChangeLog addition: 2005-09-25 Adrian Aichner <adrian@xemacs.org> * xemacs.mak: Fix variable initialization order.
author adrian
date Sun, 25 Sep 2005 19:13:43 +0000
parents 6fa9919a9a0b
children b694dfd2f40e
comparison
equal deleted inserted replaced
2947:1d3c4ed33763 2948:b5fe6b5627b1
942 $(XEMACS_INCLUDES) \ 942 $(XEMACS_INCLUDES) \
943 $(BLDLIB_SRC)/make-dump-id.exe \ 943 $(BLDLIB_SRC)/make-dump-id.exe \
944 $(LIB_SRC_TOOLS) 944 $(LIB_SRC_TOOLS)
945 !endif 945 !endif
946 946
947 ########################### Create the Installation file
948
949 $(BLDROOT)\Installation:: installation
950
951 installation::
952 @echo OS version:>$(BLDROOT)\Installation
953 @ver >> $(BLDROOT)\Installation
954 @type >> $(BLDROOT)\Installation <<
955 !if defined(OS)
956 OS: $(OS)
957 !endif
958
959 XEmacs $(XEMACS_VERSION_STRING) $(xemacs_codename) $(xemacs_extra_name:"=) configured for `$(EMACS_CONFIGURATION)'.
960
961 Building XEmacs using "$(MAKE:\=\\)".
962 Building XEmacs using make flags "$(MAKEFLAGS)".
963 Building XEmacs in source tree "$(SRCROOT:\=\\)".
964 !if $(SEPARATE_BUILD)
965 Building XEmacs into compiled tree "$(BLDROOT:\=\\)".
966 !endif
967 !if defined(CCV)
968 For src, using compiler "$(CC) $(TEMACS_CPP_FLAGS)".
969 For lib-src, using compiler "$(CC) $(LIB_SRC_CFLAGS)".
970 !endif
971 !if $(CPLUSPLUS_COMPILE)
972 Compiling as C++.
973 !endif
974 Installing XEmacs in "$(INSTALL_DIR:\=\\)".
975 Package path is $(PATH_PACKAGEPATH).
976 !if $(INFODOCK)
977 Building InfoDock.
978 !endif
979 !if $(HAVE_MS_WINDOWS)
980 Compiling in support for Microsoft Windows native GUI.
981 !endif
982 !if $(MULE)
983 Compiling in international (MULE) support.
984 !endif
985 !if $(HAVE_GTK)
986 --------------------------------------------------------------------
987 NOTE: You specified HAVE_GTK=1, but we are compiling WITHOUT GTK support.
988 NOTE: gtk-xemacs is not currently supported on MS Windows (mingw or msvc).
989 NOTE: Yes, we know that gtk has been ported to native MS Windows, but
990 NOTE: XEmacs is not yet ready to use that port.
991 --------------------------------------------------------------------
992 !endif
993 !if $(HAVE_XPM)
994 Compiling in support for XPM images.
995 !else
996 --------------------------------------------------------------------
997 NOTE: Compiling without XPM support.
998 NOTE: You should strongly consider installing XPM.
999 NOTE: Otherwise toolbars and other graphics will look suboptimal.
1000 NOTE: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)
1001 --------------------------------------------------------------------
1002 !endif
1003 !if $(HAVE_GIF)
1004 Compiling in support for GIF images.
1005 !endif
1006 !if $(HAVE_PNG)
1007 Compiling in support for PNG images.
1008 !else
1009 --------------------------------------------------------------------
1010 NOTE: Compiling without PNG image support.
1011 NOTE: You should strongly consider installing the PNG libraries.
1012 NOTE: Otherwise certain images and glyphs may not display.
1013 NOTE: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux
1014 --------------------------------------------------------------------
1015 !endif
1016 !if $(HAVE_TIFF)
1017 Compiling in support for TIFF images.
1018 !endif
1019 !if $(HAVE_JPEG)
1020 Compiling in support for JPEG images.
1021 !endif
1022 !if $(HAVE_XFACE)
1023 Compiling in support for X-Face message headers.
1024 !endif
1025 !if $(HAVE_ZLIB)
1026 Compiling in support for GZIP compression/decompression.
1027 !endif
1028 !if $(HAVE_TOOLBARS)
1029 Compiling in support for toolbars.
1030 !endif
1031 !if $(HAVE_DIALOGS)
1032 Compiling in support for dialogs.
1033 !endif
1034 !if $(HAVE_WIDGETS)
1035 Compiling in support for widgets.
1036 !endif
1037 !if $(HAVE_NATIVE_SOUND)
1038 Compiling in support for native sounds.
1039 !endif
1040 !if $(USE_UNION_TYPE)
1041 Using union type for Lisp object storage.
1042 NOTE: ---------------------------------------------------------
1043 NOTE: This tends to trigger compiler bugs, especially when combined
1044 NOTE: with MULE and ERROR_CHECKING. Crashes in pdump have recently
1045 NOTE: been observed using Visual C++ in combination with union type,
1046 NOTE: MULE, and ERROR_CHECKING.
1047 NOTE: ---------------------------------------------------------
1048 !endif
1049 !if $(USE_PORTABLE_DUMPER)
1050 Using portable dumper.
1051 !endif
1052 !if $(USE_SYSTEM_MALLOC)
1053 Using system malloc.
1054 !endif
1055 !if $(USE_CRTDLL)
1056 Using DLL version of C runtime library.
1057 !endif
1058 !if $(ERROR_CHECK_ALL)
1059 Compiling in extra internal error-checking.
1060 NOTE: ---------------------------------------------------------
1061 NOTE: Compiling in support for runtime error-checking.
1062 NOTE: XEmacs will run noticeably more slowly as a result.
1063 NOTE: Error-checking is on by default for XEmacs beta releases.
1064 NOTE: ---------------------------------------------------------
1065 !endif
1066 !if $(DEBUG_XEMACS)
1067 Compiling in debugging support (no slowdown).
1068 !endif
1069 !if $(OPTIMIZED_BUILD)
1070 Compiling with optimization.
1071 !endif
1072 !if $(QUICK_BUILD)
1073 Disabling non-essential build actions. Use with care!
1074 !endif
1075 !if $(USE_KKCC)
1076 Using new experimental GC algorithms.
1077 !endif
1078 !if $(MC_ALLOC)
1079 Using new experimental allocator.
1080 !endif
1081 <<NOKEEP
1082 @echo --------------------------------------------------------------------
1083 @type $(BLDROOT)\Installation
1084 @echo --------------------------------------------------------------------
1085
1086 #########################################################################
1087 ## Primary rebuilding process ##
1088 #########################################################################
1089
1090 ########################### Definitions for linking temacs.exe
1091
1092 !if !$(USE_PORTABLE_DUMPER)
1093 TEMACS_ENTRYPOINT=-entry:_start
1094 !else
1095 TEMACS_ENTRYPOINT=-entry:mainCRTStartup
1096 !endif
1097
1098 TEMACS_BROWSE=$(BLDSRC)\temacs.bsc
1099 TEMACS_LIBS=$(LASTFILE) $(MSW_LIBS) \
1100 oldnames.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib \
1101 shell32.lib wsock32.lib netapi32.lib winmm.lib winspool.lib ole32.lib \
1102 mpr.lib uuid.lib imm32.lib $(LIBC_LIB)
1103 TEMACS_COMMON_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS_LINK) \
1104 -base:0x1000000 -stack:0x800000 $(TEMACS_ENTRYPOINT) -subsystem:windows \
1105 -heap:0x00100000 -nodefaultlib $(PROFILE_FLAGS) setargv.obj
1106 TEMACS_LFLAGS=$(TEMACS_COMMON_LFLAGS) \
1107 -pdb:$(BLDSRC)\temacs.pdb -map:$(BLDSRC)\temacs.map
1108 XEMACS_LFLAGS=$(TEMACS_COMMON_LFLAGS) \
1109 -pdb:$(BLDSRC)\xemacs.pdb -map:$(BLDSRC)\xemacs.map
1110
1111 ########################### Definitions for running temacs.exe/xemacs.exe
1112
1113 RAW_EXE=$(BLDSRC)\temacs.exe
1114 DUMP_TARGET = $(BLDSRC)\xemacs.exe
1115 DO_TEMACS = "$(BLDLIB_SRC)\i" "$(RAW_EXE)"
1116 DO_XEMACS = "$(BLDLIB_SRC)\i" "$(DUMP_TARGET)"
1117
1118 BATCH = -no-packages -batch
1119 BATCH_PACKAGES = -vanilla -batch
1120 TEMACS_BATCH = $(DO_TEMACS) -nd $(BATCH)
1121 XEMACS_BATCH = $(DO_XEMACS) $(BATCH)
1122 XEMACS_BATCH_PACKAGES = $(DO_XEMACS) $(BATCH_PACKAGES)
1123 temacs_loadup_args = -l $(LISP)/loadup.el
1124 dump_temacs_args = $(temacs_loadup_args) dump
1125 run_temacs_args = $(temacs_loadup_args) run-temacs
1126 dump_temacs = $(TEMACS_BATCH) $(dump_temacs_args)
1127
1128 ########################### Build rules
1129
1130 ## Use this rule to build the complete system. We need both update-elc
1131 ## and update-elc-2 due to the sideways dependency of NEEDTODUMP. See
1132 ## src/Makefile.in.in for a more detailed discussion of this.
1133
1134 all: installation $(OUTDIR)\nul $(LIB_SRC_TOOLS) \
1135 update-elc update-elc-2 \
1136 $(LISP)/finder-inf.el load-shadows info
1137
1138 $(TEMACS_BROWSE): $(TEMACS_OBJS)
1139 @dir /b/s $(OUTDIR)\*.sbr > $(OUTDIR)\bscmake.tmp
1140 bscmake -nologo -o$(TEMACS_BROWSE) @$(OUTDIR)\bscmake.tmp
1141 -$(DEL) $(OUTDIR)\bscmake.tmp
1142
1143 ## (1) Compile all dependencies of the XEmacs executable
1144
1145 $(OUTDIR)\dump-id.obj : $(BLDSRC)\dump-id.c
1146 $(CCV) $(TEMACS_CPP_FLAGS) $(BLDSRC)\$(@B).c -Fo$@ $(BROWSERFLAGS)
1147
1148 $(BLDSRC)\dump-id.c : $(BLDLIB_SRC)/make-dump-id.exe $(TEMACS_OBJS)
1149 cd $(BLDSRC)
1150 $(BLDLIB_SRC)\make-dump-id.exe
1151
1152 $(OUTDIR)\temacs.res: $(NT)\xemacs.rc
1153 cd $(NT)
1154 rc -Fo$@ xemacs.rc
1155
1156 ## (2) Link the XEmacs executable
1157
1158 !if $(USE_PORTABLE_DUMPER)
1159 TEMACS_DUMP_DEP = $(OUTDIR)\dump-id.obj
1160 !else
1161 TEMACS_DUMP_DEP = $(OUTDIR)\temacs.res
1162 !endif
1163
1164 $(RAW_EXE): $(TEMACS_OBJS) $(LASTFILE) $(TEMACS_DUMP_DEP)
1165 link.exe @<<
1166 $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(TEMACS_DUMP_DEP) $(TEMACS_LIBS)
1167 <<
1168
1169 !if $(DEBUG_XEMACS)
1170 $(RAW_EXE): $(TEMACS_BROWSE)
1171 !endif
1172
1173 ## (3) Update the .elc's needed for dumping
1174
1175 update-elc: $(RAW_EXE)
1176 $(TEMACS_BATCH) -l $(LISP)\update-elc.el
1177
1178 ## This file is touched by update-elc.el when redumping is necessary.
1179 $(BLDSRC)\NEEDTODUMP:
1180 @echo >$(BLDSRC)\NEEDTODUMP
1181
1182 ## (4) Build the DOC file
1183
1184 DOC=$(BLDLIB_SRC)\DOC
1185
1186 docfile ::
1187 if exist $(DOC) $(DEL) $(DOC)
1188 docfile :: $(DOC)
1189
1190 # We need to write the QUICK_BUILD stuff as-is (and not just have no
1191 # dependencies for DOC) because DOC needs TEMACS_OBJS as dependencies to
1192 # get $(**) right. The `touch' is needed because of the way nmake
1193 # calculates dependencies; see comments in src/Makefile.in.in.
1194 $(DOC): $(BLDLIB_SRC)\make-docfile.exe $(BLDSRC)\NEEDTODUMP $(TEMACS_OBJS)
1195 !if $(QUICK_BUILD)
1196 if not exist $(DOC) $(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(SRCROOT)\site-packages @<<
1197 $(**)
1198 <<
1199 -touch $(DOC)
1200 !else
1201 $(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(SRCROOT)\site-packages @<<
1202 $(**)
1203 <<
1204 !endif
1205
1206 ## (5) Dump
1207
1208 !if $(USE_PORTABLE_DUMPER)
1209 $(DUMP_TARGET): $(NT)\xemacs.rc
1210 !endif
1211
1212 # This rule dumps xemacs and then possibly spawns sub-make if PURESPACE
1213 # requirements have changed.
1214
1215 $(DUMP_TARGET): $(DOC) $(RAW_EXE) $(BLDSRC)\NEEDTODUMP
1216 $(TEMACS_BATCH) -l $(LISP)\loadup.el dump
1217 !if $(USE_PORTABLE_DUMPER)
1218 cd $(BLDSRC)
1219 rc -d INCLUDE_DUMP -Fo $(OUTDIR)\xemacs.res $(NT)\xemacs.rc
1220 # Make the resource section read/write since almost all of it is the dump
1221 # data which needs to be writable. This avoids having to copy it.
1222 link.exe @<<
1223 $(XEMACS_LFLAGS) -section:.rsrc,rw -out:$(BLDSRC)\xemacs.exe $(TEMACS_OBJS) $(OUTDIR)\xemacs.res $(TEMACS_LIBS) $(OUTDIR)\dump-id.obj
1224 <<
1225 -$(DEL) $(BLDSRC)\xemacs.dmp
1226 !endif
1227
1228 ## (6) Update the remaining .elc's, post-dumping
1229
1230 update-elc-2: $(DUMP_TARGET)
1231 $(XEMACS_BATCH) -no-autoloads -l update-elc-2.el -f batch-update-elc-2 $(LISP)
1232
1233 ## (7) Other random stuff
1234
1235 $(LISP)/finder-inf.el: update-elc-2
1236 !if !$(QUICK_BUILD)
1237 @echo Building finder database ...
1238 $(XEMACS_BATCH) -eval "(setq finder-compile-keywords-quiet t)" \
1239 -l finder -f finder-compile-keywords
1240 @echo Building finder database ...(done)
1241 !endif
1242
1243 load-shadows: update-elc-2
1244 !if !$(QUICK_BUILD)
1245 @echo Testing for Lisp shadows ...
1246 @$(XEMACS_BATCH) -f list-load-path-shadows
1247 !endif
1248
947 ###################### Building the info files 1249 ###################### Building the info files
948 1250
949 !if !defined(MAKEINFO) 1251 !if !defined(MAKEINFO)
950 MAKEINFO=$(XEMACS_BATCH_PACKAGES) -l texinfmt -f batch-texinfo-format 1252 MAKEINFO=$(XEMACS_BATCH_PACKAGES) -l texinfmt -f batch-texinfo-format
951 !endif 1253 !endif
1102 1404
1103 $(INFODIR)\xemacs.info: $(XEMACS_SRCS) 1405 $(INFODIR)\xemacs.info: $(XEMACS_SRCS)
1104 cd $(MANDIR)\xemacs 1406 cd $(MANDIR)\xemacs
1105 $(MAKEINFO) xemacs.texi 1407 $(MAKEINFO) xemacs.texi
1106 1408
1107
1108 $(INFODIR)\lispref.info: $(LISPREF_SRCS) 1409 $(INFODIR)\lispref.info: $(LISPREF_SRCS)
1109 cd $(MANDIR)\lispref 1410 cd $(MANDIR)\lispref
1110 $(MAKEINFO) lispref.texi 1411 $(MAKEINFO) lispref.texi
1111 1412
1112 $(INFODIR)\internals.info: $(INTERNALS_SRCS) 1413 $(INFODIR)\internals.info: $(INTERNALS_SRCS)
1117 cd $(MANDIR)\new-users-guide 1418 cd $(MANDIR)\new-users-guide
1118 $(MAKEINFO) new-users-guide.texi 1419 $(MAKEINFO) new-users-guide.texi
1119 1420
1120 info: makeinfo-test $(INFO_FILES) 1421 info: makeinfo-test $(INFO_FILES)
1121 1422
1122 ########################### Create the Installation file
1123
1124 $(BLDROOT)\Installation:: installation
1125
1126 installation::
1127 @echo OS version:>$(BLDROOT)\Installation
1128 @ver >> $(BLDROOT)\Installation
1129 @type >> $(BLDROOT)\Installation <<
1130 !if defined(OS)
1131 OS: $(OS)
1132 !endif
1133
1134 XEmacs $(XEMACS_VERSION_STRING) $(xemacs_codename) $(xemacs_extra_name:"=) configured for `$(EMACS_CONFIGURATION)'.
1135
1136 Building XEmacs using "$(MAKE:\=\\)".
1137 Building XEmacs using make flags "$(MAKEFLAGS)".
1138 Building XEmacs in source tree "$(SRCROOT:\=\\)".
1139 !if $(SEPARATE_BUILD)
1140 Building XEmacs into compiled tree "$(BLDROOT:\=\\)".
1141 !endif
1142 !if defined(CCV)
1143 For src, using compiler "$(CC) $(TEMACS_CPP_FLAGS)".
1144 For lib-src, using compiler "$(CC) $(LIB_SRC_CFLAGS)".
1145 !endif
1146 !if $(CPLUSPLUS_COMPILE)
1147 Compiling as C++.
1148 !endif
1149 Installing XEmacs in "$(INSTALL_DIR:\=\\)".
1150 Package path is $(PATH_PACKAGEPATH).
1151 !if $(INFODOCK)
1152 Building InfoDock.
1153 !endif
1154 !if $(HAVE_MS_WINDOWS)
1155 Compiling in support for Microsoft Windows native GUI.
1156 !endif
1157 !if $(MULE)
1158 Compiling in international (MULE) support.
1159 !endif
1160 !if $(HAVE_GTK)
1161 --------------------------------------------------------------------
1162 NOTE: You specified HAVE_GTK=1, but we are compiling WITHOUT GTK support.
1163 NOTE: gtk-xemacs is not currently supported on MS Windows (mingw or msvc).
1164 NOTE: Yes, we know that gtk has been ported to native MS Windows, but
1165 NOTE: XEmacs is not yet ready to use that port.
1166 --------------------------------------------------------------------
1167 !endif
1168 !if $(HAVE_XPM)
1169 Compiling in support for XPM images.
1170 !else
1171 --------------------------------------------------------------------
1172 NOTE: Compiling without XPM support.
1173 NOTE: You should strongly consider installing XPM.
1174 NOTE: Otherwise toolbars and other graphics will look suboptimal.
1175 NOTE: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux)
1176 --------------------------------------------------------------------
1177 !endif
1178 !if $(HAVE_GIF)
1179 Compiling in support for GIF images.
1180 !endif
1181 !if $(HAVE_PNG)
1182 Compiling in support for PNG images.
1183 !else
1184 --------------------------------------------------------------------
1185 NOTE: Compiling without PNG image support.
1186 NOTE: You should strongly consider installing the PNG libraries.
1187 NOTE: Otherwise certain images and glyphs may not display.
1188 NOTE: (a copy may be found in ftp://ftp.xemacs.org/pub/xemacs/aux
1189 --------------------------------------------------------------------
1190 !endif
1191 !if $(HAVE_TIFF)
1192 Compiling in support for TIFF images.
1193 !endif
1194 !if $(HAVE_JPEG)
1195 Compiling in support for JPEG images.
1196 !endif
1197 !if $(HAVE_XFACE)
1198 Compiling in support for X-Face message headers.
1199 !endif
1200 !if $(HAVE_ZLIB)
1201 Compiling in support for GZIP compression/decompression.
1202 !endif
1203 !if $(HAVE_TOOLBARS)
1204 Compiling in support for toolbars.
1205 !endif
1206 !if $(HAVE_DIALOGS)
1207 Compiling in support for dialogs.
1208 !endif
1209 !if $(HAVE_WIDGETS)
1210 Compiling in support for widgets.
1211 !endif
1212 !if $(HAVE_NATIVE_SOUND)
1213 Compiling in support for native sounds.
1214 !endif
1215 !if $(USE_UNION_TYPE)
1216 Using union type for Lisp object storage.
1217 NOTE: ---------------------------------------------------------
1218 NOTE: This tends to trigger compiler bugs, especially when combined
1219 NOTE: with MULE and ERROR_CHECKING. Crashes in pdump have recently
1220 NOTE: been observed using Visual C++ in combination with union type,
1221 NOTE: MULE, and ERROR_CHECKING.
1222 NOTE: ---------------------------------------------------------
1223 !endif
1224 !if $(USE_PORTABLE_DUMPER)
1225 Using portable dumper.
1226 !endif
1227 !if $(USE_SYSTEM_MALLOC)
1228 Using system malloc.
1229 !endif
1230 !if $(USE_CRTDLL)
1231 Using DLL version of C runtime library.
1232 !endif
1233 !if $(ERROR_CHECK_ALL)
1234 Compiling in extra internal error-checking.
1235 NOTE: ---------------------------------------------------------
1236 NOTE: Compiling in support for runtime error-checking.
1237 NOTE: XEmacs will run noticeably more slowly as a result.
1238 NOTE: Error-checking is on by default for XEmacs beta releases.
1239 NOTE: ---------------------------------------------------------
1240 !endif
1241 !if $(DEBUG_XEMACS)
1242 Compiling in debugging support (no slowdown).
1243 !endif
1244 !if $(OPTIMIZED_BUILD)
1245 Compiling with optimization.
1246 !endif
1247 !if $(QUICK_BUILD)
1248 Disabling non-essential build actions. Use with care!
1249 !endif
1250 !if $(USE_KKCC)
1251 Using new experimental GC algorithms.
1252 !endif
1253 !if $(MC_ALLOC)
1254 Using new experimental allocator.
1255 !endif
1256 <<NOKEEP
1257 @echo --------------------------------------------------------------------
1258 @type $(BLDROOT)\Installation
1259 @echo --------------------------------------------------------------------
1260
1261 ######################################################################### 1423 #########################################################################
1262 ## Primary rebuilding process ## 1424 ## Testing-related targets ##
1263 #########################################################################
1264
1265 ########################### Definitions for linking temacs.exe
1266
1267 !if !$(USE_PORTABLE_DUMPER)
1268 TEMACS_ENTRYPOINT=-entry:_start
1269 !else
1270 TEMACS_ENTRYPOINT=-entry:mainCRTStartup
1271 !endif
1272
1273 TEMACS_BROWSE=$(BLDSRC)\temacs.bsc
1274 TEMACS_LIBS=$(LASTFILE) $(MSW_LIBS) \
1275 oldnames.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib \
1276 shell32.lib wsock32.lib netapi32.lib winmm.lib winspool.lib ole32.lib \
1277 mpr.lib uuid.lib imm32.lib $(LIBC_LIB)
1278 TEMACS_COMMON_LFLAGS=-nologo $(LIBRARIES) $(DEBUG_FLAGS_LINK) \
1279 -base:0x1000000 -stack:0x800000 $(TEMACS_ENTRYPOINT) -subsystem:windows \
1280 -heap:0x00100000 -nodefaultlib $(PROFILE_FLAGS) setargv.obj
1281 TEMACS_LFLAGS=$(TEMACS_COMMON_LFLAGS) \
1282 -pdb:$(BLDSRC)\temacs.pdb -map:$(BLDSRC)\temacs.map
1283 XEMACS_LFLAGS=$(TEMACS_COMMON_LFLAGS) \
1284 -pdb:$(BLDSRC)\xemacs.pdb -map:$(BLDSRC)\xemacs.map
1285
1286 ########################### Definitions for running temacs.exe/xemacs.exe
1287
1288 RAW_EXE=$(BLDSRC)\temacs.exe
1289 DUMP_TARGET = $(BLDSRC)\xemacs.exe
1290 DO_TEMACS = "$(BLDLIB_SRC)\i" "$(RAW_EXE)"
1291 DO_XEMACS = "$(BLDLIB_SRC)\i" "$(DUMP_TARGET)"
1292
1293 BATCH = -no-packages -batch
1294 BATCH_PACKAGES = -vanilla -batch
1295 TEMACS_BATCH = $(DO_TEMACS) -nd $(BATCH)
1296 XEMACS_BATCH = $(DO_XEMACS) $(BATCH)
1297 XEMACS_BATCH_PACKAGES = $(DO_XEMACS) $(BATCH_PACKAGES)
1298 temacs_loadup_args = -l $(LISP)/loadup.el
1299 dump_temacs_args = $(temacs_loadup_args) dump
1300 run_temacs_args = $(temacs_loadup_args) run-temacs
1301 dump_temacs = $(TEMACS_BATCH) $(dump_temacs_args)
1302
1303 ########################### Build rules
1304
1305 ## Use this rule to build the complete system. We need both update-elc
1306 ## and update-elc-2 due to the sideways dependency of NEEDTODUMP. See
1307 ## src/Makefile.in.in for a more detailed discussion of this.
1308
1309 all: installation $(OUTDIR)\nul $(LIB_SRC_TOOLS) \
1310 update-elc update-elc-2 \
1311 $(LISP)/finder-inf.el load-shadows info
1312
1313 $(TEMACS_BROWSE): $(TEMACS_OBJS)
1314 @dir /b/s $(OUTDIR)\*.sbr > $(OUTDIR)\bscmake.tmp
1315 bscmake -nologo -o$(TEMACS_BROWSE) @$(OUTDIR)\bscmake.tmp
1316 -$(DEL) $(OUTDIR)\bscmake.tmp
1317
1318 ## (1) Compile all dependencies of the XEmacs executable
1319
1320 $(OUTDIR)\dump-id.obj : $(BLDSRC)\dump-id.c
1321 $(CCV) $(TEMACS_CPP_FLAGS) $(BLDSRC)\$(@B).c -Fo$@ $(BROWSERFLAGS)
1322
1323 $(BLDSRC)\dump-id.c : $(BLDLIB_SRC)/make-dump-id.exe $(TEMACS_OBJS)
1324 cd $(BLDSRC)
1325 $(BLDLIB_SRC)\make-dump-id.exe
1326
1327 $(OUTDIR)\temacs.res: $(NT)\xemacs.rc
1328 cd $(NT)
1329 rc -Fo$@ xemacs.rc
1330
1331 ## (2) Link the XEmacs executable
1332
1333 !if $(USE_PORTABLE_DUMPER)
1334 TEMACS_DUMP_DEP = $(OUTDIR)\dump-id.obj
1335 !else
1336 TEMACS_DUMP_DEP = $(OUTDIR)\temacs.res
1337 !endif
1338
1339 $(RAW_EXE): $(TEMACS_OBJS) $(LASTFILE) $(TEMACS_DUMP_DEP)
1340 link.exe @<<
1341 $(TEMACS_LFLAGS) -out:$@ $(TEMACS_OBJS) $(TEMACS_DUMP_DEP) $(TEMACS_LIBS)
1342 <<
1343
1344 !if $(DEBUG_XEMACS)
1345 $(RAW_EXE): $(TEMACS_BROWSE)
1346 !endif
1347
1348 ## (3) Update the .elc's needed for dumping
1349
1350 update-elc: $(RAW_EXE)
1351 $(TEMACS_BATCH) -l $(LISP)\update-elc.el
1352
1353 ## This file is touched by update-elc.el when redumping is necessary.
1354 $(BLDSRC)\NEEDTODUMP:
1355 @echo >$(BLDSRC)\NEEDTODUMP
1356
1357 ## (4) Build the DOC file
1358
1359 DOC=$(BLDLIB_SRC)\DOC
1360
1361 docfile ::
1362 if exist $(DOC) $(DEL) $(DOC)
1363 docfile :: $(DOC)
1364
1365 # We need to write the QUICK_BUILD stuff as-is (and not just have no
1366 # dependencies for DOC) because DOC needs TEMACS_OBJS as dependencies to
1367 # get $(**) right. The `touch' is needed because of the way nmake
1368 # calculates dependencies; see comments in src/Makefile.in.in.
1369 $(DOC): $(BLDLIB_SRC)\make-docfile.exe $(BLDSRC)\NEEDTODUMP $(TEMACS_OBJS)
1370 !if $(QUICK_BUILD)
1371 if not exist $(DOC) $(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(SRCROOT)\site-packages @<<
1372 $(**)
1373 <<
1374 -touch $(DOC)
1375 !else
1376 $(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(SRCROOT)\site-packages @<<
1377 $(**)
1378 <<
1379 !endif
1380
1381 ## (5) Dump
1382
1383 !if $(USE_PORTABLE_DUMPER)
1384 $(DUMP_TARGET): $(NT)\xemacs.rc
1385 !endif
1386
1387 # This rule dumps xemacs and then possibly spawns sub-make if PURESPACE
1388 # requirements have changed.
1389
1390 $(DUMP_TARGET): $(DOC) $(RAW_EXE) $(BLDSRC)\NEEDTODUMP
1391 $(TEMACS_BATCH) -l $(LISP)\loadup.el dump
1392 !if $(USE_PORTABLE_DUMPER)
1393 cd $(BLDSRC)
1394 rc -d INCLUDE_DUMP -Fo $(OUTDIR)\xemacs.res $(NT)\xemacs.rc
1395 # Make the resource section read/write since almost all of it is the dump
1396 # data which needs to be writable. This avoids having to copy it.
1397 link.exe @<<
1398 $(XEMACS_LFLAGS) -section:.rsrc,rw -out:$(BLDSRC)\xemacs.exe $(TEMACS_OBJS) $(OUTDIR)\xemacs.res $(TEMACS_LIBS) $(OUTDIR)\dump-id.obj
1399 <<
1400 -$(DEL) $(BLDSRC)\xemacs.dmp
1401 !endif
1402
1403 ## (6) Update the remaining .elc's, post-dumping
1404
1405 update-elc-2: $(DUMP_TARGET)
1406 $(XEMACS_BATCH) -no-autoloads -l update-elc-2.el -f batch-update-elc-2 $(LISP)
1407
1408 ## (7) Other random stuff
1409
1410 $(LISP)/finder-inf.el: update-elc-2
1411 !if !$(QUICK_BUILD)
1412 @echo Building finder database ...
1413 $(XEMACS_BATCH) -eval "(setq finder-compile-keywords-quiet t)" \
1414 -l finder -f finder-compile-keywords
1415 @echo Building finder database ...(done)
1416 !endif
1417
1418 load-shadows: update-elc-2
1419 !if !$(QUICK_BUILD)
1420 @echo Testing for Lisp shadows ...
1421 @$(XEMACS_BATCH) -f list-load-path-shadows
1422 !endif
1423
1424 #########################################################################
1425 ## Other random crap ##
1426 ######################################################################### 1425 #########################################################################
1427 1426
1428 ########################### Automated tests 1427 ########################### Automated tests
1429 1428
1430 testdir = ../tests/automated 1429 testdir = ../tests/automated