source: vendor/emx/current/src/lib/makefile

Last change on this file was 18, checked in by bird, 23 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 14.8 KB
Line 
1#
2# /emx/src/lib/makefile
3#
4# This makefile has been designed for dmake 3.8.
5#
6# Don't forget to SET SWITCHAR=-
7#
8# Targets:
9#
10# mkdir Create directories
11# c-st Single-thread common C library: st/c.a
12# c-st-p Ditto, for profiling: st/c_p.a
13# c-mt Multithread common C library: mt/c.a
14# c_alias Aliases c_alias.{a,lib}
15# c_static Static modules c_static.{a,lib}
16# c_app-st Single-thread application C library: st/c_app.a
17# c_app-st-p Ditto, for profiling: st/c_app_p.a
18# c_app-mt Multithread application C library: mt/c_app.a
19# c_dllrt-st Single-thread DLL C library: st/c_dllrt.a
20# c_dllrt-mt Multithread DLL C library: mt/c_dllrt.a
21# c_dllso-st Single-thread DLL C library (-Zso): st/c_dllso.lib
22# c_dllso-mt Multithread DLL C library (-Zso): mt/c_dllso.lib
23# c_import-st Single-thread import library: st/c_import.{a,lib}
24# c_import-mt Multithread import library: mt/c_import.{a,lib}
25# c_dllnrt DLL without runtime environment: c_dllnrt.lib
26# libgcc GCC helper functions: gcc.a
27# libgcc-p Ditto, with profiling: gcc_p.a
28# socket Socket library: socket.a
29# graph Graphics library: graph.a
30# video Video library: video.a
31# moddef moddef library: moddef.a
32# omflib omflib library: omflib.a
33# tmalloc tmalloc wrapper library: tmalloc.a
34# malloc1-st Old single-thread malloc library: st/malloc1.a
35# malloc1-mt Old multithread malloc library: mt/malloc1.a
36# end etext/edata/end library for LINK386: end.lib
37# os2 OS/2 API import library: os2.a
38# os2-p Ditto, for profiling: os2_p.a
39# dll-fwd Create forwarder DLL emxlibc.dll
40# dll-mt Create multithread C runtime DLL emxlibcm.dll
41# dll-st Create single-thread C runtime DLL emxlibcs.dll
42# sys System call emulation library: st/sys.lib mt/sys.lib
43# o-crt Startup modules (.o) crt0.o dll0.o ...
44# o-crt-bsd Ditto, BSD stuff gcrt0.o
45# o-opt Optional object files (.o) binmode.o sigbsd.o ...
46# obj-crt Startup modules (.obj) crt0.obj dll0.obj ...
47# obj-opt Optional object files (.obj) binmode.obj sigbsd.obj ...
48# emxwrap emxwrap.dll, wrap.a, and wrap.lib
49# all-dos All libraries and object files for DOS
50# all-os2 Ditto, plus libraries, object files, and DLLs for OS/2
51# all-dos-bsd Like all-dos, plus BSD stuff
52# all-os2-bsd Like all-os2, plus BSD stuff
53# omf Build .lib and .obj files from .a and .o files
54# trace Build .tdf and .tff files emxlibc?.tdf trc00??.tff
55# clean Remove files created in the build process
56# cleanall Remove target files and files created in the build process
57#
58##############################################################################
59
60.IF $(CPU)
61.ELSE
62CPU=386
63.ENDIF
64
65##############################################################################
66
67GCC=gcc -O2 -Wall -mprobe -fstack-check
68ASM=gcc -c -Wall -x assembler-with-cpp
69AR=ar
70I=/emx/include/
71S=$(I)sys/
72E=$(S)emx.h
73L=\emx\lib\ #
74DLL=\emx\dll\ #
75
76##############################################################################
77
78PASSDOWN=CPU=$(CPU) DELOPT=$(DELOPT)
79
80##############################################################################
81
82.SUFFIXES: .a .lib
83
84.a.lib:
85 emxomf -sl $<
86
87.PHONY: all-dos all-os2 all-bsd all-dos-bsd all-os2-bsd clean cleanall \
88 default emx_386 libgcc libgcc-p c_static c_alias \
89 c-st c-st-p c-mt c_app-st c_app-st-p c_app-mt c_dllrt-st c_dllrt-mt \
90 c_dllso-st c_dllso-mt c_import-st c_import-mt c_dllnrt \
91 socket tmalloc end graph os2_386 os2_386-p sys video moddef \
92 omflib emxwrap trace \
93 malloc1-st malloc1-mt mkdir mkdir-cpu \
94 omf dll-int o-crt o-crt-bsd o-opt obj-crt obj-opt recurse os2 os2-p \
95 rec-all rec-c rec-app rec-conv rec-ctype rec-emx_386 \
96 rec-emxload rec-gcc rec-graph rec-io rec-cdll rec-malloc rec-math \
97 rec-misc rec-moddef rec-nls rec-os2_386 rec-process rec-socket \
98 rec-startup rec-str rec-sys rec-termios rec-time rec-tmalloc \
99 rec-video rec-locale rec-mbyte rec-omflib rec-end rec-malloc1
100
101
102
103##############################################################################
104
105default .SEQUENTIAL: all-os2-bsd trace
106
107os2: os2_$(CPU)
108
109os2-p: os2_$(CPU)-p
110
111all-dos .SEQUENTIAL: o-crt o-opt c-st c_alias c_app-st libgcc os2_$(CPU) \
112 emx_$(CPU) graph video moddef omflib $(L)g.a $(L)m.a c-st-p \
113 c_app-st-p libgcc-p os2_$(CPU)-p malloc1-st
114
115all-os2 .SEQUENTIAL: all-dos c-mt c_app-mt c_dllrt-st c_dllrt-mt \
116 c_dllso-st c_dllso-mt c_import-st c_import-mt c_dllnrt \
117 sys end dll-int emxwrap socket tmalloc malloc1-mt omf
118
119all-dos-bsd .SEQUENTIAL: all-dos o-crt-bsd
120
121all-os2-bsd .SEQUENTIAL: all-os2 o-crt-bsd
122
123omf .SEQUENTIAL: obj-crt obj-opt \
124 $(L)gcc.lib $(L)g.lib $(L)m.lib $(L)c_alias.lib \
125 $(L)st\c.lib $(L)st\c_app.lib $(L)st\c_dllrt.lib $(L)st\emx.lib \
126 $(L)mt\c.lib $(L)mt\c_app.lib $(L)mt\c_dllrt.lib $(L)mt\emx.lib \
127 $(L)os2.lib $(L)emx2.lib $(L)emxio.lib $(L)graph.lib $(L)video.lib \
128 $(L)moddef.lib $(L)tmalloc.lib $(L)omflib.lib $(L)c_static.lib \
129 $(L)socket.lib $(L)st\malloc1.lib $(L)mt\malloc1.lib
130
131o-crt .SETDIR=startup:
132 $(MAKE) o-crt $(PASSDOWN)
133
134o-crt-bsd .SETDIR=startup:
135 $(MAKE) o-crt-bsd $(PASSDOWN)
136
137obj-crt .SETDIR=startup:
138 $(MAKE) obj-crt $(PASSDOWN)
139
140o-opt: $(L)binmode.o $(L)sigsysv.o $(L)sigbsd.o $(L)smallcnv.o
141
142obj-opt: $(L)binmode.obj $(L)sigsysv.obj $(L)sigbsd.obj $(L)smallcnv.obj
143
144clean:
145 $(MAKE) recurse RDIR=all RTARGET=clean $(PASSDOWN)
146
147cleanall .IGNORE: clean
148 del $(L)*.o $(DELOPT)
149 del $(L)*.obj $(DELOPT)
150 del $(L)*.lib $(DELOPT)
151 del $(L)*.a $(DELOPT)
152 del $(L)mt\*.a $(DELOPT)
153 del $(L)mt\*.lib $(DELOPT)
154 del $(L)st\*.a $(DELOPT)
155 del $(L)st\*.lib $(DELOPT)
156
157##############################################################################
158
159recurse: rec-$(RDIR)
160
161RECURSE=$(RTARGET) $(PASSDOWN)
162
163rec-all .SEQUENTIAL: rec-c rec-os2_$(CPU) rec-gcc rec-emx_$(CPU) rec-sys \
164 rec-alias rec-app rec-cdll rec-dllrt rec-dllso \
165 rec-dllnrt rec-moddef rec-omflib rec-graph rec-video \
166 rec-socket rec-static rec-tmalloc rec-end rec-malloc1
167
168rec-c .SEQUENTIAL: rec-conv rec-ctype rec-emxload rec-io \
169 rec-locale rec-malloc rec-math rec-mbyte rec-misc \
170 rec-nls rec-process rec-startup rec-str rec-termios \
171 rec-time
172
173rec-alias .SETDIR=alias:
174 $(MAKE) $(RECURSE)
175
176rec-app .SETDIR=app:
177 $(MAKE) $(RECURSE)
178
179rec-cdll .SETDIR=cdll:
180 $(MAKE) $(RECURSE)
181
182rec-conv .SETDIR=conv:
183 $(MAKE) $(RECURSE)
184
185rec-ctype .SETDIR=ctype:
186 $(MAKE) $(RECURSE)
187
188rec-dllnrt .SETDIR=dllnrt:
189 $(MAKE) $(RECURSE)
190
191rec-dllrt .SETDIR=dllrt:
192 $(MAKE) $(RECURSE)
193
194rec-dllso .SETDIR=dllso:
195 $(MAKE) $(RECURSE)
196
197rec-emx_$(CPU) .SETDIR=emx_$(CPU):
198 $(MAKE) $(RECURSE)
199
200rec-emxload .SETDIR=emxload:
201 $(MAKE) $(RECURSE)
202
203rec-end .SETDIR=end:
204 $(MAKE) $(RECURSE)
205
206rec-gcc .SETDIR=gcc:
207 $(MAKE) $(RECURSE)
208
209rec-graph .SETDIR=graph:
210 $(MAKE) $(RECURSE)
211
212rec-io .SETDIR=io:
213 $(MAKE) $(RECURSE)
214
215rec-locale .SETDIR=locale:
216 $(MAKE) $(RECURSE)
217
218rec-malloc .SETDIR=malloc:
219 $(MAKE) $(RECURSE)
220
221rec-malloc1 .SETDIR=malloc1:
222 $(MAKE) $(RECURSE)
223
224rec-math .SETDIR=math:
225 $(MAKE) $(RECURSE)
226
227rec-mbyte .SETDIR=mbyte:
228 $(MAKE) $(RECURSE)
229
230rec-moddef .SETDIR=moddef:
231 $(MAKE) $(RECURSE)
232
233rec-static .SETDIR=static:
234 $(MAKE) $(RECURSE)
235
236rec-tmalloc .SETDIR=tmalloc:
237 $(MAKE) $(RECURSE)
238
239rec-omflib .SETDIR=omflib:
240 $(MAKE) $(RECURSE)
241
242rec-misc .SETDIR=misc:
243 $(MAKE) $(RECURSE)
244
245rec-nls .SETDIR=nls:
246 $(MAKE) $(RECURSE)
247
248rec-os2_$(CPU) .SETDIR=os2_$(CPU):
249 $(MAKE) $(RECURSE)
250
251rec-process .SETDIR=process:
252 $(MAKE) $(RECURSE)
253
254rec-socket .SETDIR=socket:
255 $(MAKE) $(RECURSE)
256
257rec-startup .SETDIR=startup:
258 $(MAKE) $(RECURSE)
259
260rec-str .SETDIR=str:
261 $(MAKE) $(RECURSE)
262
263rec-sys .SETDIR=sys:
264 $(MAKE) $(RECURSE)
265
266rec-termios .SETDIR=termios:
267 $(MAKE) $(RECURSE)
268
269rec-time .SETDIR=time:
270 $(MAKE) $(RECURSE)
271
272rec-video .SETDIR=video:
273 $(MAKE) $(RECURSE)
274
275##############################################################################
276
277$(L)binmode.o: io/$(CPU)/binmode.s
278 $(ASM) -o $(L)binmode.o io/$(CPU)/binmode.s
279
280$(L)sigsysv.o: process/sigsysv.c $(S)uflags.h
281 $(GCC) -c -o $(L)sigsysv.o process/sigsysv.c
282
283$(L)sigbsd.o: process/sigbsd.c $(S)uflags.h
284 $(GCC) -c -o $(L)sigbsd.o process/sigbsd.c
285
286$(L)smallcnv.o: conv/$(CPU)/smallcnv.s
287 $(ASM) -o $(L)smallcnv.o conv/$(CPU)/smallcnv.s
288
289$(L)binmode.obj: $(L)binmode.o
290 emxomf -sl $(L)binmode.o
291
292$(L)sigbsd.obj: $(L)sigbsd.o
293 emxomf -sl $(L)sigbsd.o
294
295$(L)sigsysv.obj: $(L)sigsysv.o
296 emxomf -sl $(L)sigsysv.o
297
298$(L)smallcnv.obj: $(L)smallcnv.o
299 emxomf -sl $(L)smallcnv.o
300
301$(L)crt0.obj: obj-crt
302$(L)mcrt0.obj: obj-crt
303$(L)dll0.obj: obj-crt
304$(L)res0.obj: obj-crt
305
306##############################################################################
307
308c-st:
309 $(MAKE) recurse RDIR=c RTARGET=lib-st $(PASSDOWN)
310
311c-st-p:
312 $(MAKE) recurse RDIR=c RTARGET=lib-st-p $(PASSDOWN)
313
314c-mt:
315 $(MAKE) recurse RDIR=c RTARGET=lib-mt $(PASSDOWN)
316
317c_alias:
318 $(MAKE) recurse RDIR=alias RTARGET=alias $(PASSDOWN)
319
320c_app-st $(L)st\c_app.a:
321 $(MAKE) recurse RDIR=app RTARGET=lib-st $(PASSDOWN)
322
323c_app-st-p $(L)st\c_app_p.a:
324 $(MAKE) recurse RDIR=app RTARGET=lib-st-p $(PASSDOWN)
325
326c_app-mt $(L)mt\c_app.a:
327 $(MAKE) recurse RDIR=app RTARGET=lib-mt $(PASSDOWN)
328
329c_dllrt-st:
330 $(MAKE) recurse RDIR=dllrt RTARGET=lib-st $(PASSDOWN)
331
332c_dllrt-mt:
333 $(MAKE) recurse RDIR=dllrt RTARGET=lib-mt $(PASSDOWN)
334
335c_dllso-st:
336 $(MAKE) recurse RDIR=dllso RTARGET=lib-st $(PASSDOWN)
337
338c_dllso-mt:
339 $(MAKE) recurse RDIR=dllso RTARGET=lib-mt $(PASSDOWN)
340
341c_import-st: c_static
342 $(MAKE) recurse RDIR=cdll RTARGET=import-st $(PASSDOWN)
343
344c_import-mt: c_static
345 $(MAKE) recurse RDIR=cdll RTARGET=import-mt $(PASSDOWN)
346
347c_dllnrt:
348 $(MAKE) recurse RDIR=dllnrt RTARGET=dllnrt $(PASSDOWN)
349
350c_static:
351 $(MAKE) recurse RDIR=static RTARGET=static $(PASSDOWN)
352
353
354##############################################################################
355
356libgcc .SETDIR=gcc:
357 $(MAKE) libgcc $(PASSDOWN)
358
359libgcc-p .SETDIR=gcc:
360 $(MAKE) libgcc-p $(PASSDOWN)
361
362os2_$(CPU) .SETDIR=os2_$(CPU):
363 $(MAKE) os2 $(PASSDOWN)
364
365os2_$(CPU)-p .SETDIR=os2_$(CPU):
366 $(MAKE) os2-p $(PASSDOWN)
367
368emx_$(CPU) .SETDIR=emx_$(CPU):
369 $(MAKE) emx $(PASSDOWN)
370
371sys .SETDIR=sys:
372 $(MAKE) sys $(PASSDOWN)
373
374graph .SETDIR=graph:
375 $(MAKE) graph $(PASSDOWN)
376
377video .SETDIR=video:
378 $(MAKE) video $(PASSDOWN)
379
380moddef .SETDIR=moddef:
381 $(MAKE) moddef $(PASSDOWN)
382
383tmalloc .SETDIR=tmalloc:
384 $(MAKE) tmalloc $(PASSDOWN)
385
386omflib .SETDIR=omflib:
387 $(MAKE) omflib $(PASSDOWN)
388
389socket .SETDIR=socket:
390 $(MAKE) socket $(PASSDOWN)
391
392end .SETDIR=end:
393 $(MAKE) end $(PASSDOWN)
394
395malloc1-st $(L)st\malloc1.a:
396 $(MAKE) recurse RDIR=malloc1 RTARGET=lib-st $(PASSDOWN)
397
398malloc1-mt $(L)mt\malloc1.a:
399 $(MAKE) recurse RDIR=malloc1 RTARGET=lib-mt $(PASSDOWN)
400
401
402##############################################################################
403
404$(L)g.a:
405 $(AR) rs $(L)g.a
406
407$(L)m.a:
408 $(AR) rs $(L)m.a
409
410##############################################################################
411
412$(L)gcc.lib: $(L)gcc.a
413$(L)st\c.lib: $(L)st\c.a
414$(L)mt\c.lib: $(L)mt\c.a
415$(L)st\c_app.lib: $(L)st\c_app.a
416$(L)mt\c_app.lib: $(L)mt\c_app.a
417$(L)st\c_dllrt.lib: $(L)st\c_dllrt.a
418$(L)mt\c_dllrt.lib: $(L)mt\c_dllrt.a
419$(L)st\emx.lib: $(L)st\emx.a
420$(L)mt\emx.lib: $(L)mt\emx.a
421$(L)st\malloc1.lib: $(L)st\malloc1.a
422$(L)mt\malloc1.lib: $(L)mt\malloc1.a
423$(L)c_alias.lib: $(L)c_alias.a
424$(L)c_static.lib: $(L)c_static.a
425$(L)emx2.lib: $(L)emx2.a
426$(L)emxio.lib: $(L)emxio.a
427$(L)graph.lib: $(L)graph.a
428$(L)video.lib: $(L)video.a
429$(L)moddef.lib: $(L)moddef.a
430$(L)tmalloc.lib: $(L)tmalloc.a
431$(L)omflib.lib: $(L)omflib.a
432$(L)socket.lib: $(L)socket.a
433$(L)os2.lib: $(L)os2.a
434$(L)g.lib: $(L)g.a
435$(L)m.lib: $(L)m.a
436
437##############################################################################
438
439dll-int .SEQUENTIAL: $(L)gcc.lib $(L)os2.lib $(L)dll0.obj \
440 $(L)res0.obj $(L)emx2.lib $(L)c_static.lib $(L)end.lib \
441 $(L)st\c.lib $(L)st\c_dllrt.lib $(L)st\emx.lib \
442 $(L)mt\c.lib $(L)mt\c_dllrt.lib $(L)mt\emx.lib
443 $(MAKE) recurse RDIR=cdll RTARGET=dll-all $(PASSDOWN)
444
445dll-st .SEQUENTIAL: libgcc c-st c_dllrt-st emx_$(CPU) os2_$(CPU) dll-st-int
446
447dll-st-int .SEQUENTIAL: $(L)gcc.lib $(L)emx2.lib $(L)os2.lib $(L)dll0.obj \
448 $(L)st\c.lib $(L)st\c_dllrt.lib $(L)st\emx.lib
449 $(MAKE) recurse RDIR=cdll RTARGET=dll-st $(PASSDOWN)
450
451dll-mt .SEQUENTIAL: libgcc c-mt c_dllrt-mt emx_$(CPU) os2_$(CPU) dll-mt-int
452
453dll-mt-int .SEQUENTIAL: $(L)gcc.lib $(L)emx2.lib $(L)os2.lib $(L)dll0.obj \
454 $(L)mt\c.lib $(L)mt\c_dllrt.lib $(L)mt\emx.lib
455 $(MAKE) recurse RDIR=cdll RTARGET=dll-mt $(PASSDOWN)
456
457dll-fwd .SEQUENTIAL: c_import-mt emx_$(CPU) $(L)c_static.lib dll-fwd-int
458
459dll-fwd-int: $(L)dll0.obj $(L)emx2.lib
460 $(MAKE) recurse RDIR=cdll RTARGET=dll-fwd $(PASSDOWN)
461
462emxwrap .SEQUENTIAL: $(L)res0.obj emxwrap-int
463
464emxwrap-int .SETDIR=os2_$(CPU):
465 $(MAKE) emxwrap $(PASSDOWN)
466
467#
468# Requires trcust.exe of os2pdp.zip
469#
470trace:
471 $(MAKE) recurse RDIR=cdll RTARGET=trace $(PASSDOWN)
472
473##############################################################################
474
475mkdir .IGNORE:
476 mkdir alias\$(CPU)
477 mkdir app\mt_$(CPU)
478 mkdir app\st_$(CPU)
479 mkdir app\st_p_$(CPU)
480 mkdir cdll\$(CPU)
481 mkdir conv\mt_$(CPU)
482 mkdir conv\st_$(CPU)
483 mkdir conv\st_p_$(CPU)
484 mkdir ctype\mt_$(CPU)
485 mkdir ctype\st_$(CPU)
486 mkdir ctype\st_p_$(CPU)
487 mkdir dllnrt\$(CPU)
488 mkdir dllrt\mt_$(CPU)
489 mkdir dllrt\st_$(CPU)
490 mkdir dllso\mt_$(CPU)
491 mkdir dllso\st_$(CPU)
492 mkdir emx_$(CPU)\mt
493 mkdir emx_$(CPU)\st
494 mkdir emxload\mt_$(CPU)
495 mkdir emxload\st_$(CPU)
496 mkdir emxload\st_p_$(CPU)
497 mkdir gcc\st_$(CPU)
498 mkdir gcc\st_p_$(CPU)
499 mkdir graph\$(CPU)
500 mkdir io\mt_$(CPU)
501 mkdir io\st_$(CPU)
502 mkdir io\st_p_$(CPU)
503 mkdir locale\mt_$(CPU)
504 mkdir locale\st_$(CPU)
505 mkdir locale\st_p_$(CPU)
506 mkdir malloc\mt_$(CPU)
507 mkdir malloc\st_$(CPU)
508 mkdir malloc\st_p_$(CPU)
509 mkdir malloc1\mt_$(CPU)
510 mkdir malloc1\st_$(CPU)
511 mkdir math\mt_$(CPU)
512 mkdir math\st_$(CPU)
513 mkdir math\st_p_$(CPU)
514 mkdir mbyte\mt_$(CPU)
515 mkdir mbyte\st_$(CPU)
516 mkdir mbyte\st_p_$(CPU)
517 mkdir misc\mt_$(CPU)
518 mkdir misc\st_$(CPU)
519 mkdir misc\st_p_$(CPU)
520 mkdir moddef\$(CPU)
521 mkdir nls\mt_$(CPU)
522 mkdir nls\st_$(CPU)
523 mkdir nls\st_p_$(CPU)
524 mkdir omflib\$(CPU)
525 mkdir os2_$(CPU)\st
526 mkdir os2_$(CPU)\st_p
527 mkdir process\mt_$(CPU)
528 mkdir process\st_$(CPU)
529 mkdir process\st_p_$(CPU)
530 mkdir socket\$(CPU)
531 mkdir startup\mt_$(CPU)
532 mkdir startup\st_$(CPU)
533 mkdir startup\st_p_$(CPU)
534 mkdir static\$(CPU)
535 mkdir str\mt_$(CPU)
536 mkdir str\st_$(CPU)
537 mkdir str\st_p_$(CPU)
538 mkdir sys\mt_$(CPU)
539 mkdir sys\st_$(CPU)
540 mkdir termios\mt_$(CPU)
541 mkdir termios\st_$(CPU)
542 mkdir termios\st_p_$(CPU)
543 mkdir time\mt_$(CPU)
544 mkdir time\st_$(CPU)
545 mkdir time\st_p_$(CPU)
546 mkdir tmalloc\$(CPU)
547 mkdir video\$(CPU)
Note: See TracBrowser for help on using the repository browser.