source: trunk/makefile@ 1268

Last change on this file since 1268 was 1259, checked in by Steven Levine, 17 years ago

Rework makefile dependencies to avoid target dependent build failures.
Drop support for DEBUG=0 - it does not match what our C code expects.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.3 KB
Line 
1# makefile - build all fm/2 components
2# $Id: makefile 1259 2008-10-26 02:03:41Z stevenhl $
3
4# Copyright (c) 1993-98 M. Kimes
5# Copyright (c) 2002, 2008 Steven H. Levine
6
7# 24 May 05 SHL Add clean and cleanobj target
8# 16 Jun 05 SHL Workaround makeflags wierdness
9# 18 Jul 05 SHL Add bitmap dependencies
10# 20 Jul 05 SHL Add makeres support
11# 16 Apr 06 SHL Add lxlite target
12# 31 Jul 06 SHL Tweak dependencies
13# 26 Aug 06 SHL Add rest of lxlite support
14# 14 Jun 07 SHL Convert to OpenWatcom
15# 22 Jun 07 JBS Moved some macro-handling code to this
16# file from warpin\makefile because of some
17# differences in how Watcom handles macros.
18# 04 Jul 07 SHL Pass DEBUG settings to sub-make
19# 21 Jan 08 SHL Add *.lrf to clean target
20# 22 Feb 08 JBS Suppress lxlite processing when DEBUG=1
21# 08 Jul 08 SHL Avoid extra work for wmake -a dist
22# 22 Jul 08 SHL Change from dll\dllsyms to dll\syms target for consistency
23# 22 Jul 08 SHL Pass FORTIFY options to subordinate makefiles
24# 25 Oct 08 SHL Sanitize DEBUG usage
25
26# Environment - see makefile_pre.mk and dll\makefile
27
28BASE = fm3
29
30# Pass values for FM2_VER, FM2UTILS_VER and BUILD_FM2UTILS which
31# have been set on the command line, if any, on to the
32# warpin\makefile using the WARPIN_OPTS macro.
33
34!ifdef FM2_VER # if defined on wmake command, pass it
35WARPIN_OPTS = FM2_VER=$(FM2_VER)
36!endif
37
38!ifdef FM2UTILS_VER # if defined on wmake command, pass it
39WARPIN_OPTS = $(WARPIN_OPTS) FM2UTILS_VER=$(FM2UTILS_VER)
40!endif
41
42!ifdef BUILD_FM2UTILS # if defined on wmake command, pass it
43WARPIN_OPTS = $(WARPIN_OPTS) BUILD_FM2UTILS=$(BUILD_FM2UTILS)
44!endif
45
46!include makefile_pre.mk
47
48all: dll $(BASE) allexe .symbolic
49
50syms: exesyms dllsyms .symbolic
51
52dist: lxlitedll $(BASE) lxliteexe syms wpi .symbolic
53
54# Only update resources
55res: .symbolic
56 @echo Updating resources only
57 $(MAKE) $(__MAKEOPTS__) $(DEBUG_OPT) MAKERES=1
58
59# make DLL components
60
61dll: .symbolic
62 cd dll
63 $(MAKE) $(__MAKEOPTS__) $(DEBUG_OPT) $(FORTIFY_OPT)
64 cd ..
65
66dllsyms: .symbolic
67 cd dll
68 $(MAKE) $(__MAKEOPTS__) $(DEBUG_OPT) $(FORTIFY_OPT) syms
69 cd ..
70
71$(BASE): $(BASE).exe $(BASE).res .symbolic
72
73$(BASE).res: $(BASE).rc icons\$(BASE).ico bitmaps\*.bmp .autodepend
74
75$(BASE).obj: $(BASE).c dll\version.h .autodepend
76
77# make EXE compenents
78
79allexe: *.mak .symbolic
80 @for %f in ($<) do $(MAKE) -f %f $(__MAKEOPTS__) $(DEBUG_OPT) $(FORTIFY_OPT)
81
82# make SYM files
83
84exesyms: *.mak .symbolic
85 @for %f in ($<) do $(MAKE) -f %f $(__MAKEOPTS__) $(DEBUG_OPT) $(FORTIFY_OPT) sym
86
87# make WPI files
88
89wpi: .symbolic
90 cd warpin
91 $(MAKE) $(__MAKEOPTS__) $(DEBUG_OPT) $(WARPIN_OPTS)
92 cd ..
93
94lxlite:: lxlitedll lxliteexe .symbolic
95
96# makefile_post.mk contains lxlite target for $(BASE).exe
97# Apply to each *.mak for other exes
98lxliteexe: *.mak .symbolic
99!ifndef DEBUG
100 @for %f in ($<) do $(MAKE) -f %f $(__MAKEOPTS__) $(DEBUG_OPT) $(FORTIFY_OPT) lxlite
101!endif
102
103# Apply to dlls
104lxlitedll: .symbolic
105!ifndef DEBUG
106 cd dll
107 $(MAKE) $(__MAKEOPTS__) $(DEBUG_OPT) $(FORTIFY_OPT) lxlite
108 cd ..
109!endif
110
111cleanobj: .symbolic
112 cd dll
113 $(MAKE) $(__MAKEOPTS__) $(DEBUG_OPT) cleanobj
114 cd ..
115 -del *.obj
116
117clean:: .symbolic
118 cd dll
119 $(MAKE) $(__MAKEOPTS__) $(DEBUG_OPT) clean
120 cd ..
121 -del *.exe
122 -del *.lrf
123 -del *.map
124 -del *.obj
125 -del *.res
126 -del *.sym
127 -del fm3res.str
128
129distclean: clean .symbolic
130 cd warpin
131 $(MAKE) $(__MAKEOPTS__) $(DEBUG_OPT) distclean
132 cd ..
133
134!include makefile_post.mk
135
136# The end
Note: See TracBrowser for help on using the repository browser.