source: trunk/src/libsrc/makefile.unix @ 7953

Revision 7953, 3.6 KB checked in by baker, 5 months ago (diff)

fix target prerequisites to be more accurate, elminates unnecessary rebuilds

Line 
1# The single-threaded libew is no longer used; everything uses the multi-threaded libew_mt now
2
3L = $(EW_HOME)/$(EW_VERSION)/lib
4
5COMMON_MODULES   = \
6        earlybird \
7        lib330 \
8        libcrypto \
9        libdali \
10        libgd \
11        qlib2_${EW_BITS} \
12        util \
13        uw
14
15SOLARIS_MODULES  = solaris
16LINUX_MODULES    = unix
17SPECIFIC_MODULES = $(COMMON_MODULES) $($(PLATFORM)_MODULES)
18
19SOLARIS_DIR  = solaris
20LINUX_DIR    = unix
21SPECIFIC_DIR = $($(PLATFORM)_DIR)
22
23LIBEW_COMMON_MODULES = \
24        util/chron3.o \
25        util/earthworm_defs.o \
26        util/getutil.o \
27        util/kom.o \
28        $(SPECIFIC_DIR)/sleep_ew.o \
29        $(SPECIFIC_DIR)/transport.o \
30        $(SPECIFIC_DIR)/time_ew.o
31
32#LIBEW_MODULES = \
33#       $(LIBEW_COMMON_MODULES) \
34#       util/logit.o
35
36LIBEW_MT_MODULES = \
37        $(LIBEW_COMMON_MODULES) \
38        util/logit_mt.o \
39        $(SPECIFIC_DIR)/sema_ew.o \
40        $(SPECIFIC_DIR)/threads_ew.o
41
42#all:   $(SPECIFIC_MODULES) \
43#       libew \
44#       libew_mt
45all:    $(SPECIFIC_MODULES) \
46        libew_mt
47
48earlybird \
49lib330 \
50libcrypto \
51libgd \
52solaris \
53unix \
54util \
55uw: PHONY
56        @cd $@ && \
57                echo ---------- ; \
58                echo Making $@ in: `pwd` ; \
59                $(MAKE) -f makefile.unix
60
61libdali: \
62        libdali/lib \
63        $L/libdali.a
64
65libdali/lib: PHONY
66        @cd libdali && \
67                echo ---------- ; \
68                echo Making libdali in: `pwd` ; \
69                $(MAKE)
70
71$L/libdali.a: libdali/libdali.a
72                cp libdali/libdali.a $L/
73
74#
75# Override the macro definitions in the qlib2 Makefile that we provide
76#
77
78QLIB_32_BITS =
79QLIB_64_BITS = 64
80QLIB_BITS    = $(QLIB_$(EW_BITS)_BITS)
81
82qlib2_32:: \
83        qlib2/lib32
84
85qlib2_64:: \
86        qlib2/lib64
87
88qlib2_32 \
89qlib2_64:: \
90        qlib2/lib_ew \
91        qlib2/lib_ew/libqlib2.a \
92        qlib2/lib_ew/libqlib2.debug.a \
93        qlib2/lib_ew/libqlib2nl.a \
94        qlib2/lib_ew/libqlib2nl.debug.a
95
96qlib2/lib32: PHONY
97        @cd qlib2 && \
98                echo ---------- ; \
99                echo Making qlib2 in: `pwd` ; \
100                $(MAKE) CC="$(CC)" CFLAGS_SITE="$(CFLAGS)" CDBG="" C32="" all32
101
102qlib2/lib64: PHONY
103        @cd qlib2 && \
104                echo ---------- ; \
105                echo Making qlib2 in: `pwd` ; \
106                $(MAKE) CC="$(CC)" CFLAGS_SITE="$(CFLAGS)" CDBG="" C64="" all64
107
108qlib2/lib_ew:
109                mkdir -p $@
110
111qlib2/lib_ew/libqlib2.a:        qlib2/lib${QLIB_BITS}/libqlib2.a
112                cp $< $@
113
114qlib2/lib_ew/libqlib2.debug.a:  qlib2/lib${QLIB_BITS}/libqlib2.debug.a
115                cp $< $@
116
117qlib2/lib_ew/libqlib2nl.a:      qlib2/lib${QLIB_BITS}/libqlib2nl.a
118                cp $< $@
119
120qlib2/lib_ew/libqlib2nl.debug.a: qlib2/lib${QLIB_BITS}/libqlib2nl.debug.a
121                cp $< $@
122
123#libew: LIBEW_MESSAGE $L/libew.a
124
125#LIBEW_MESSAGE: PHONY
126#       @echo ----------
127#       @echo Making libew in: `pwd`
128
129#$L/libew.a: $(LIBEW_MODULES)
130#       ar rvs $@ $(LIBEW_MODULES)
131#       ranlib $@
132
133libew_mt: LIBEW_MT_MESSAGE $L/libew_mt.a
134
135LIBEW_MT_MESSAGE: PHONY
136        @echo ----------
137        @echo Making libew_mt in: `pwd`
138
139$L/libew_mt.a: $(LIBEW_MT_MODULES)
140        ar rvs $@ $(LIBEW_MT_MODULES)
141        ranlib $@
142
143
144# Clean-up rules
145clean:  clean/here \
146        clean/lib \
147        clean/earlybird \
148        clean/lib330 \
149        clean/libcrypto \
150        clean/libdali \
151        clean/libgd \
152        clean/qlib2 \
153        clean/solaris \
154        clean/unix \
155        clean/util \
156        clean/uw \
157        clean/winnt
158
159clean/here: PHONY
160        -$(RM) libew*.a libew*.lib
161
162clean/lib: PHONY
163        -@cd $L && \
164                echo Cleaning in: `pwd` ; \
165                echo "$(RM) a.out core lib*.a lib*.lib *.o *.obj *% *~" ; \
166                $(RM) a.out core lib*.a lib*.lib *.o *.obj *% *~
167
168clean/earlybird \
169clean/lib330 \
170clean/libcrypto \
171clean/libgd \
172clean/solaris \
173clean/unix \
174clean/util \
175clean/uw \
176clean/winnt: PHONY
177        -@cd $(@F) && \
178                echo Cleaning in: `pwd` ; \
179                $(MAKE) -f makefile.unix clean
180
181clean/libdali: PHONY
182        -@cd libdali && \
183                echo Cleaning in: `pwd` ; \
184                $(MAKE) clean
185
186clean/qlib2: PHONY
187        -@cd qlib2 && \
188                echo Cleaning in: `pwd` ; \
189                $(MAKE) clean ; \
190                echo "$(RM) lib_ew/*" ; \
191                $(RM) lib_ew/*
192
193clean_bin: \
194        clean_bin/libgd
195
196clean_bin/libgd: PHONY
197        -@cd libgd && \
198                echo Cleaning binaries in: `pwd` ; \
199                $(MAKE) -f makefile.unix clean_bin
200
201PHONY:
Note: See TracBrowser for help on using the repository browser.