comparison w32/xemacs.mak @ 209:41ff10fd062f r20-4b3

Import from CVS: tag r20-4b3
author cvs
date Mon, 13 Aug 2007 10:04:58 +0200
parents
children 78478c60bfcd
comparison
equal deleted inserted replaced
208:f427b8ec4379 209:41ff10fd062f
1 XEMACS=..
2 LISP=$(XEMACS)\lisp
3 CC=cl
4
5 OPT=-Od -Zi
6 #OPT=-O2 -G5 -Zi
7
8 include ..\version.sh
9
10 #------------------------------------------------------------------------------
11
12 # Generic variables
13
14 INCLUDES=-I$(X11R6)\include -I.\inc -I$(XEMACS)\src\
15 -I$(XEMACS)\lwlib -I"$(MSVCDIR)\include"
16 LIBRARIES=
17
18 OUTDIR=obj
19
20 #------------------------------------------------------------------------------
21
22 default: $(OUTDIR)\nul all
23
24 $(OUTDIR)\nul:
25 -@mkdir $(OUTDIR)
26
27 XEMACS_INCLUDES=\
28 $(XEMACS)\src\config.h \
29 $(XEMACS)\src\Emacs.ad.h \
30 $(XEMACS)\src\paths.h
31
32 $(XEMACS_INCLUDES):
33 !"copy *.h $(XEMACS)\src"
34
35 #------------------------------------------------------------------------------
36
37 # LASTFILE Library
38
39 LASTFILE=$(OUTDIR)\lastfile.lib
40 LASTFILE_SRC=$(XEMACS)\src
41 LASTFILE_FLAGS=-nologo -w $(OPT) $(INCLUDES) -Fo$@ -c
42 LASTFILE_OBJS= \
43 $(OUTDIR)\lastfile.obj
44
45 $(LASTFILE): $(LASTFILE_OBJS)
46 link.exe -lib -nologo -out:$@ $(LASTFILE_OBJS)
47
48 $(OUTDIR)\lastfile.obj: $(LASTFILE_SRC)\lastfile.c
49 $(CC) $(LASTFILE_FLAGS) $**
50
51 #------------------------------------------------------------------------------
52
53 # LWLIB Library
54
55 LWLIB=$(OUTDIR)\lwlib.lib
56 LWLIB_SRC=$(XEMACS)\lwlib
57 LWLIB_FLAGS=-nologo -w $(OPT) $(INCLUDES) -D "WIN32" -D "_DEBUG" \
58 -D "_NTSDK" -D "_M_IX86" -D "_X86_" \
59 -D "NEED_ATHENA" -D "NEED_LUCID" \
60 -D "_WINDOWS" -D "MENUBARS_LUCID" -D "SCROLLBARS_LUCID" -D "DIALOGS_ATHENA" \
61 -D "WINDOWSNT" -Fo$@ -c
62 LWLIB_OBJS= \
63 $(OUTDIR)\lwlib-config.obj \
64 $(OUTDIR)\lwlib-utils.obj \
65 $(OUTDIR)\lwlib-Xaw.obj \
66 $(OUTDIR)\lwlib-Xlw.obj \
67 $(OUTDIR)\lwlib.obj \
68 $(OUTDIR)\xlwmenu.obj \
69 $(OUTDIR)\xlwscrollbar.obj
70
71 $(LWLIB): $(XEMACS_INCLUDES) $(LWLIB_OBJS)
72 link.exe -lib -nologo -debug -debugtype:both -out:$@ $(LWLIB_OBJS)
73
74 $(OUTDIR)\lwlib-config.obj: $(LWLIB_SRC)\lwlib-config.c
75 $(CC) $(LWLIB_FLAGS) $**
76
77 $(OUTDIR)\lwlib-utils.obj: $(LWLIB_SRC)\lwlib-utils.c
78 $(CC) $(LWLIB_FLAGS) $**
79
80 $(OUTDIR)\lwlib-Xaw.obj: $(LWLIB_SRC)\lwlib-Xaw.c
81 $(CC) $(LWLIB_FLAGS) $**
82
83 $(OUTDIR)\lwlib-Xlw.obj: $(LWLIB_SRC)\lwlib-Xlw.c
84 $(CC) $(LWLIB_FLAGS) $**
85
86 $(OUTDIR)\lwlib.obj: $(LWLIB_SRC)\lwlib.c
87 $(CC) $(LWLIB_FLAGS) $**
88
89 $(OUTDIR)\xlwmenu.obj: $(LWLIB_SRC)\xlwmenu.c
90 $(CC) $(LWLIB_FLAGS) $**
91
92 $(OUTDIR)\xlwscrollbar.obj: $(LWLIB_SRC)\xlwscrollbar.c
93 $(CC) $(LWLIB_FLAGS) $**
94
95 #------------------------------------------------------------------------------
96
97 # lib-src programs
98
99 LIB_SRC=$(XEMACS)\lib-src
100 LIB_SRC_FLAGS=$(INCLUDES) -D_DEBUG -DWIN32 -D_WIN32 -DWIN32_LEAN_AND_MEAN \
101 -D_NTSDK -D_M_IX86 -ML -D_X86_ -Demacs -DHAVE_CONFIG_H -D_MSC_VER=999
102 LIB_SRC_LIBS= kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib\
103 advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib libc.lib
104 LIB_SRC_LFLAGS=-nologo $(LIB_SRC_LIBS) -base:0x1000000\
105 -subsystem:console -pdb:none -debugtype:both -machine:I386\
106 -nodefaultlib -out:$@ -debug:full
107
108
109 DOC=$(LIB_SRC)\DOC
110 DOC_SRCS=\
111 $(XEMACS)\src\abbrev.c \
112 $(XEMACS)\src\alloc.c \
113 $(XEMACS)\src\alloca.c \
114 $(XEMACS)\src\blocktype.c \
115 $(XEMACS)\src\buffer.c \
116 $(XEMACS)\src\bytecode.c \
117 $(XEMACS)\src\callint.c \
118 $(XEMACS)\src\callproc.c \
119 $(XEMACS)\src\casefiddle.c \
120 $(XEMACS)\src\casetab.c \
121 $(XEMACS)\src\chartab.c \
122 $(XEMACS)\src\cmdloop.c \
123 $(XEMACS)\src\cmds.c \
124 $(XEMACS)\src\console-stream.c \
125 $(XEMACS)\src\console-w32.c \
126 $(XEMACS)\src\console.c \
127 $(XEMACS)\src\data.c \
128 $(XEMACS)\src\debug.c \
129 $(XEMACS)\src\device-w32.c
130 DOC_SRC2=\
131 $(XEMACS)\src\device.c \
132 $(XEMACS)\src\dgif_lib.c \
133 $(XEMACS)\src\dialog.c \
134 $(XEMACS)\src\dired.c \
135 $(XEMACS)\src\doc.c \
136 $(XEMACS)\src\doprnt.c \
137 $(XEMACS)\src\dynarr.c \
138 $(XEMACS)\src\editfns.c \
139 $(XEMACS)\src\elhash.c \
140 $(XEMACS)\src\emacs.c \
141 $(XEMACS)\src\eval.c \
142 $(XEMACS)\src\event-stream.c \
143 $(XEMACS)\src\event-unixoid.c \
144 $(XEMACS)\src\event-w32.c
145 DOC_SRC3=\
146 $(XEMACS)\src\events.c \
147 $(XEMACS)\src\extents.c \
148 $(XEMACS)\src\faces.c \
149 $(XEMACS)\src\fileio.c \
150 $(XEMACS)\src\filelock.c \
151 $(XEMACS)\src\filemode.c \
152 $(XEMACS)\src\floatfns.c \
153 $(XEMACS)\src\fns.c \
154 $(XEMACS)\src\font-lock.c \
155 $(XEMACS)\src\frame-w32.c \
156 $(XEMACS)\src\frame.c \
157 $(XEMACS)\src\free-hook.c \
158 $(XEMACS)\src\general.c \
159 $(XEMACS)\src\gif_err.c \
160 $(XEMACS)\src\gifalloc.c \
161 $(XEMACS)\src\glyphs.c \
162 $(XEMACS)\src\gmalloc.c \
163 $(XEMACS)\src\gui.c
164 DOC_SRC4=\
165 $(XEMACS)\src\hash.c \
166 $(XEMACS)\src\indent.c \
167 $(XEMACS)\src\inline.c \
168 $(XEMACS)\src\insdel.c \
169 $(XEMACS)\src\intl.c \
170 $(XEMACS)\src\keymap.c \
171 $(XEMACS)\src\lread.c \
172 $(XEMACS)\src\lstream.c \
173 $(XEMACS)\src\macros.c \
174 $(XEMACS)\src\marker.c \
175 $(XEMACS)\src\md5.c \
176 $(XEMACS)\src\minibuf.c \
177 $(XEMACS)\src\nt.c \
178 $(XEMACS)\src\ntheap.c \
179 $(XEMACS)\src\ntproc.c \
180 $(XEMACS)\src\objects.c \
181 $(XEMACS)\src\objects-w32.c \
182 $(XEMACS)\src\opaque.c
183 DOC_SRC5=\
184 $(XEMACS)\src\print.c \
185 $(XEMACS)\src\process.c \
186 $(XEMACS)\src\pure.c \
187 $(XEMACS)\src\rangetab.c \
188 $(XEMACS)\src\realpath.c \
189 $(XEMACS)\src\redisplay-output.c \
190 $(XEMACS)\src\redisplay-w32.c \
191 $(XEMACS)\src\redisplay.c \
192 $(XEMACS)\src\regex.c \
193 $(XEMACS)\src\search.c \
194 $(XEMACS)\src\signal.c \
195 $(XEMACS)\src\sound.c \
196 $(XEMACS)\src\specifier.c \
197 $(XEMACS)\src\strftime.c \
198 $(XEMACS)\src\symbols.c \
199 $(XEMACS)\src\syntax.c \
200 $(XEMACS)\src\sysdep.c
201 DOC_SRC6=\
202 $(XEMACS)\src\tparam.c \
203 $(XEMACS)\src\undo.c \
204 $(XEMACS)\src\unexnt.c \
205 $(XEMACS)\src\vm-limit.c \
206 $(XEMACS)\src\w32-proc.c \
207 $(XEMACS)\src\widget.c \
208 $(XEMACS)\src\window.c
209
210 MAKE_DOCFILE=$(LIB_SRC)\make-docfile.exe
211
212 $(MAKE_DOCFILE): $(OUTDIR)\make-docfile.obj
213 link.exe -out:$@ $(LIB_SRC_LFLAGS) $** $(LIB_SRC_LIBS)
214
215 $(OUTDIR)\make-docfile.obj: $(LIB_SRC)\make-docfile.c
216 $(CC) $(LIB_SRC_FLAGS) -c $** -Fo$@
217
218 RUNEMACS=$(XEMACS)\src\runemacs.exe
219
220 $(RUNEMACS): $(OUTDIR)\runemacs.obj
221 link.exe -out:$@ -subsystem:windows -entry:WinMainCRTStartup \
222 -pdb:none -release -incremental:no $** \
223 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib \
224 advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib libc.lib
225
226 $(OUTDIR)\runemacs.obj: .\runemacs.c
227 $(CC) -nologo -ML -w $(OPT) -c \
228 -D_DEBUG -DWIN32 -D_WIN32 -DWIN32_LEAN_AND_MEAN \
229 -D_NTSDK -D_M_IX86 -D_X86_ -Demacs -DHAVE_CONFIG_H -D_MSC_VER=999 \
230 $** -Fo$@
231
232 SUPPORT_PROGS=$(MAKE_DOCFILE) $(RUNEMACS)
233
234 #------------------------------------------------------------------------------
235
236 # TEMACS Executable
237
238 TEMACS_DIR=$(XEMACS)\src
239 TEMACS=$(TEMACS_DIR)\temacs.exe
240 TEMACS_SRC=$(XEMACS)\src
241 TEMACS_LIBS=$(LASTFILE) kernel32.lib user32.lib gdi32.lib \
242 winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
243 uuid.lib wsock32.lib libc.lib
244 TEMACS_LFLAGS=-nologo $(LIBRARIES) -base:0x1000000\
245 -stack:0x800000 -entry:_start -subsystem:console\
246 -pdb:$(TEMACS_DIR)\temacs.pdb -map:$(TEMACS_DIR)\temacs.map -debug:full\
247 -heap:0x00100000 -out:$@
248
249 TEMACS_CPP_FLAGS= $(INCLUDES) -D_DEBUG -DWIN32 -D_WIN32 -DWIN32_LEAN_AND_MEAN \
250 -D_NTSDK -D_M_IX86 -D_X86_ -Demacs -DHAVE_CONFIG_H -D_MSC_VER=999 \
251 -DEMACS_MAJOR_VERSION=$(emacs_major_version) \
252 -DEMACS_MINOR_VERSION=$(emacs_minor_version) \
253 -DXEMACS_CODENAME=\"$(xemacs_codename)\" \
254 -DPATH_PREFIX=\"$(XEMACS)\"
255 TEMACS_FLAGS=-nologo -ML $(OPT) -c $(TEMACS_CPP_FLAGS)
256
257 TEMACS_OBJS= \
258 $(OUTDIR)\abbrev.obj \
259 $(OUTDIR)\alloc.obj \
260 $(OUTDIR)\alloca.obj \
261 $(OUTDIR)\blocktype.obj \
262 $(OUTDIR)\buffer.obj \
263 $(OUTDIR)\bytecode.obj \
264 $(OUTDIR)\callint.obj \
265 $(OUTDIR)\callproc.obj \
266 $(OUTDIR)\casefiddle.obj \
267 $(OUTDIR)\casetab.obj \
268 $(OUTDIR)\chartab.obj \
269 $(OUTDIR)\cmdloop.obj \
270 $(OUTDIR)\cmds.obj \
271 $(OUTDIR)\console-stream.obj \
272 $(OUTDIR)\console-w32.obj \
273 $(OUTDIR)\console.obj \
274 $(OUTDIR)\data.obj \
275 $(OUTDIR)\debug.obj \
276 $(OUTDIR)\device-w32.obj \
277 $(OUTDIR)\device.obj \
278 $(OUTDIR)\dgif_lib.obj \
279 $(OUTDIR)\dialog.obj \
280 $(OUTDIR)\dired.obj \
281 $(OUTDIR)\doc.obj \
282 $(OUTDIR)\doprnt.obj \
283 $(OUTDIR)\dynarr.obj \
284 $(OUTDIR)\editfns.obj \
285 $(OUTDIR)\elhash.obj \
286 $(OUTDIR)\emacs.obj \
287 $(OUTDIR)\eval.obj \
288 $(OUTDIR)\event-stream.obj \
289 $(OUTDIR)\event-unixoid.obj \
290 $(OUTDIR)\event-w32.obj \
291 $(OUTDIR)\events.obj \
292 $(OUTDIR)\extents.obj \
293 $(OUTDIR)\faces.obj \
294 $(OUTDIR)\fileio.obj \
295 $(OUTDIR)\filelock.obj \
296 $(OUTDIR)\filemode.obj \
297 $(OUTDIR)\floatfns.obj \
298 $(OUTDIR)\fns.obj \
299 $(OUTDIR)\font-lock.obj \
300 $(OUTDIR)\frame-w32.obj \
301 $(OUTDIR)\frame.obj \
302 $(OUTDIR)\free-hook.obj \
303 $(OUTDIR)\general.obj \
304 $(OUTDIR)\gif_err.obj \
305 $(OUTDIR)\gifalloc.obj \
306 $(OUTDIR)\glyphs.obj \
307 $(OUTDIR)\gmalloc.obj \
308 $(OUTDIR)\gui.obj \
309 $(OUTDIR)\hash.obj \
310 $(OUTDIR)\indent.obj \
311 $(OUTDIR)\inline.obj \
312 $(OUTDIR)\insdel.obj \
313 $(OUTDIR)\intl.obj \
314 $(OUTDIR)\keymap.obj \
315 $(OUTDIR)\lread.obj \
316 $(OUTDIR)\lstream.obj \
317 $(OUTDIR)\macros.obj \
318 $(OUTDIR)\marker.obj \
319 $(OUTDIR)\md5.obj \
320 $(OUTDIR)\minibuf.obj \
321 $(OUTDIR)\nt.obj \
322 $(OUTDIR)\ntheap.obj \
323 $(OUTDIR)\ntproc.obj \
324 $(OUTDIR)\objects-w32.obj \
325 $(OUTDIR)\objects.obj \
326 $(OUTDIR)\opaque.obj \
327 $(OUTDIR)\print.obj \
328 $(OUTDIR)\process.obj \
329 $(OUTDIR)\pure.obj \
330 $(OUTDIR)\rangetab.obj \
331 $(OUTDIR)\realpath.obj \
332 $(OUTDIR)\redisplay-output.obj \
333 $(OUTDIR)\redisplay-w32.obj \
334 $(OUTDIR)\redisplay.obj \
335 $(OUTDIR)\regex.obj \
336 $(OUTDIR)\search.obj \
337 $(OUTDIR)\signal.obj \
338 $(OUTDIR)\sound.obj \
339 $(OUTDIR)\specifier.obj \
340 $(OUTDIR)\strftime.obj \
341 $(OUTDIR)\symbols.obj \
342 $(OUTDIR)\syntax.obj \
343 $(OUTDIR)\sysdep.obj \
344 $(OUTDIR)\tparam.obj \
345 $(OUTDIR)\undo.obj \
346 $(OUTDIR)\unexnt.obj \
347 $(OUTDIR)\vm-limit.obj \
348 $(OUTDIR)\w32-proc.obj \
349 $(OUTDIR)\widget.obj \
350 $(OUTDIR)\window.obj
351
352 #------------------------------------------------------------------------------
353
354 # Rules
355
356 .SUFFIXES:
357 .SUFFIXES: .c
358
359 # nmake rule
360 {$(TEMACS_SRC)}.c{$(OUTDIR)}.obj:
361 $(CC) $(TEMACS_FLAGS) $< -Fo$@ -Fr$*.sbr
362
363 # Specific builds
364
365 $(OUTDIR)\TopLevelEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c
366 $(CC) $(TEMACS_FLAGS) -DDEFINE_TOP_LEVEL_EMACS_SHELL $** -Fo$@
367
368 $(OUTDIR)\TransientEmacsShell.obj: $(TEMACS_SRC)\EmacsShell-sub.c
369 $(CC) $(TEMACS_FLAGS) -DDEFINE_TRANSIENT_EMACS_SHELL $** -Fo$@
370
371 #$(TEMACS_SRC)\Emacs.ad.h: $(XEMACS)\etc\Emacs.ad
372 # !"sed -f ad2c.sed < $(XEMACS)\etc\Emacs.ad > $(TEMACS_SRC)\Emacs.ad.h"
373
374 #$(TEMACS_SRC)\paths.h: $(TEMACS_SRC)\paths.h.in
375 # !"cd $(TEMACS_SRC); cp paths.h.in paths.h"
376
377 $(TEMACS): $(TEMACS_INCLUDES) $(TEMACS_OBJS) $(LASTFILE)
378 link.exe $(TEMACS_LFLAGS) @<<
379 $(TEMACS_OBJS) $(TEMACS_LIBS)
380 <<
381 dir /b/s obj\*.sbr > bscmake.tmp
382 bscmake -o$*.bsc @bscmake.tmp
383
384
385 #------------------------------------------------------------------------------
386
387 # LISP bits 'n bobs
388
389 $(DOC): $(MAKE_DOCFILE) $(DOC_SRCS) $(DOC_SRC1) $(DOC_SRC2) $(DOC_SRC3) $(DOC_SRC4) $(DOC_SRC5) $(DOC_SRC6)
390 cd $(TEMACS_DIR)
391 del $(DOC)
392 !$(TEMACS) -batch -l make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages
393 !$(MAKE_DOCFILE) -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRCS)
394 !$(MAKE_DOCFILE) -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC1)
395 !$(MAKE_DOCFILE) -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC2)
396 !$(MAKE_DOCFILE) -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC3)
397 !$(MAKE_DOCFILE) -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC4)
398 !$(MAKE_DOCFILE) -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC4)
399 !$(MAKE_DOCFILE) -a $(DOC) -d $(TEMACS_SRC) $(DOC_SRC5)
400
401 LOADPATH=$(LISP)\prim
402
403 dump-elcs: $(TEMACS)
404 cd $(TEMACS_DIR)
405 !$(TEMACS) -batch -l update-elc.el
406
407 dump-xemacs: $(TEMACS) $(SUPPORT_PROGS) $(DOC)
408 cd $(TEMACS_DIR)
409 !$(TEMACS) -batch -l loadup.el dump
410
411 #------------------------------------------------------------------------------
412
413 all: $(LASTFILE) $(TEMACS) $(SUPPORT_PROGS)
414
415 # use this rule to install the system
416 install:
417
418 # The last line demands that you have a semi-decent shell
419 distclean: $(OUTDIR)\nul
420 del *.bak
421 del *.orig
422 del *.rej
423 del *.pdb
424 del *.tmp
425 cd $(OUTDIR)
426 del *.obj
427 del *.sbr
428 del *.lib
429 cd ..\$(TEMACS_DIR)
430 del config.h
431 del paths.h
432 del puresize-adjust.h
433 del *.bak
434 del *.orig
435 del *.rej
436 del *.exe
437 del *.map
438 del *.bsc
439 del *.pdb
440 cd $(LIB_SRC)
441 del DOC
442 del *.bak
443 del *.orig
444 del *.exe
445 cd $(LISP)
446 -del /s /q *.bak *.elc *.orig *.rej
447
448 depend:
449 mkdepend -f xemacs.mak -p$(OUTDIR)\ -o.obj -w9999 -- $(TEMACS_CPP_FLAGS) -- $(DOC_SRCS) $(DOC_SRC1) $(DOC_SRC2) $(DOC_SRC3) $(DOC_SRC4) $(DOC_SRC5) $(DOC_SRC6) $(LASTFILE_SRC)\lastfile.c $(LIB_SRC)\make-docfile.c .\runemacs.c
450
451 # DO NOT DELETE THIS LINE -- make depend depends on it.