1 |
# Some Pre-Defined Rules For Building Stuff
|
2 |
#
|
3 |
.PHONY:bin lib
|
4 |
lib : dependencies.mk
|
5 |
#bin :: dependencies.mk
|
6 |
|
7 |
#------------------------------------------------
|
8 |
# Default Behaviours - interpreted from makefile
|
9 |
#------------------------------------------------
|
10 |
# -- Set the library vapths
|
11 |
vpath %.$(SharedSuffix) $(librarystore):$(RELEASETOP)/$(INTlib)
|
12 |
vpath %.$(ArchiveSuffix) $(librarystore):$(RELEASETOP)/$(INTlib)
|
13 |
# -- storage of binaries
|
14 |
INTbin:=$(SCRAMSTORENAME_bin)
|
15 |
binarystore:=$(LOCALTOP)/$(INTbin)
|
16 |
VPATH+=:$(LOCALTOP)/$(INTbin):$(RELEASETOP)/$(INTbin)
|
17 |
|
18 |
# -- library names
|
19 |
|
20 |
ifdef libname
|
21 |
ifndef arlibname
|
22 |
arlibname=$(libname)
|
23 |
endif
|
24 |
ifndef shlibname
|
25 |
shlibname=$(libname)
|
26 |
endif
|
27 |
endif
|
28 |
|
29 |
.PHONY: libmsg
|
30 |
libmsg::
|
31 |
@echo --------------- $(libname) --------------
|
32 |
# -- Libray type defaults
|
33 |
|
34 |
ifndef DefaultLibsOff
|
35 |
ifdef DefaultShared
|
36 |
LibShared=true
|
37 |
endif
|
38 |
ifdef DefaultDebugShared
|
39 |
LibDebugShared=true
|
40 |
endif
|
41 |
ifdef DefaultInsureShared
|
42 |
LibInsureShared=true
|
43 |
endif
|
44 |
ifdef DefaultArchive
|
45 |
LibArchive=true
|
46 |
endif
|
47 |
ifdef DefaultDebugArchive
|
48 |
LibDebugArchive=true
|
49 |
endif
|
50 |
ifdef DefaultInsureArchive
|
51 |
LibInsureArchive=true
|
52 |
endif
|
53 |
endif
|
54 |
|
55 |
# -- Library types
|
56 |
ifneq ($(strip $(files)),)
|
57 |
lib : libmsg
|
58 |
ifdef LibShared
|
59 |
lib : $(shlibname).$(SharedSuffix)
|
60 |
endif
|
61 |
ifdef LibDebugShared
|
62 |
lib : $(shlibname)_d.$(SharedSuffix)
|
63 |
endif
|
64 |
ifdef LibInsureShared
|
65 |
lib : $(shlibname)_Insure.$(SharedSuffix)
|
66 |
endif
|
67 |
ifdef LibArchive
|
68 |
lib : $(arlibname).$(ArchiveSuffix)
|
69 |
endif
|
70 |
ifdef LibDebugArchive
|
71 |
lib : $(arlibname)_d.$(ArchiveSuffix)
|
72 |
endif
|
73 |
ifdef LibInsureArchive
|
74 |
lib : $(arlibname)_Insure.$(ArchiveSuffix)
|
75 |
endif
|
76 |
endif
|
77 |
|
78 |
#------------------------------------------------
|
79 |
# Set up some system variables
|
80 |
# - all begin with S
|
81 |
#------------------------------------------------
|
82 |
|
83 |
Sarchivelibobjs:=$(addsuffix _o.o,$(archivefiles))
|
84 |
Sarchivelibdebugobjs:=$(addsuffix _d.o,$(archivefiles))
|
85 |
Ssharedlibobjs:=$(addsuffix _pic.o,$(sharedfiles))
|
86 |
Ssharedlibdebugobjs:=$(addsuffix _picd.o,$(sharedfiles))
|
87 |
SsharedlibInsureobjs:=$(addsuffix _picInsure.o,$(sharedfiles))
|
88 |
SarchivelibInsureobjs:=$(addsuffix _Insure.o,$(archivefiles))
|
89 |
|
90 |
include ${TOOL_HOME}/java.mk
|
91 |
|
92 |
#------------------------------------------------
|
93 |
# Rules Start Here
|
94 |
#------------------------------------------------
|
95 |
|
96 |
# Implicit Rules first
|
97 |
# -- Standard Shared Objects
|
98 |
%_pic.o : %.cpp
|
99 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXOptimised) $(SharedCCObjectFlags) $< -o $@
|
100 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
101 |
%_pic.o : %.cxx
|
102 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXOptimised) $(SharedCCObjectFlags) $< -o $@
|
103 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
104 |
%_pic.o : %.c
|
105 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXOptimised) $(SharedCCObjectFlags) $< -o $@
|
106 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
107 |
%_pic.o : %.C
|
108 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXOptimised) $(SharedCCObjectFlags) $< -o $@
|
109 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
110 |
%_pic.o : %.cc
|
111 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXOptimised) $(SharedCCObjectFlags) $< -o $@
|
112 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
113 |
%_pic.o : %.F
|
114 |
$(FC) -c $(CPPFLAGS) $(FFLAGS) $(FCOptimised) $(SharedFCObjectFlags) $< -o $@
|
115 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
116 |
%_pic.o : %.f
|
117 |
$(FC) -c $(CPPFLAGS) $(FFLAGS) $(FCOptimised) $(SharedFCObjectFlags) $< -o $@
|
118 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
119 |
|
120 |
# -- Debug Shared Objects
|
121 |
%_picd.o : %.cc
|
122 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $(SharedCCObjectFlags) $< -o $@
|
123 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
124 |
|
125 |
%_picd.o : %.C
|
126 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $(SharedCCObjectFlags) $< -o $@
|
127 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
128 |
|
129 |
%_picd.o : %.cpp
|
130 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $(SharedCCObjectFlags) $< -o $@
|
131 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
132 |
|
133 |
%_picd.o : %.cxx
|
134 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $(SharedCCObjectFlags) $< -o $@
|
135 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
136 |
%_picd.o : %.c
|
137 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $(SharedCCObjectFlags) $< -o $@
|
138 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
139 |
%_picd.o : %.F
|
140 |
$(FC) -c $(CPPFLAGS) $(FFLAGS) $(FCDebugFlag) $(SharedFCObjectFlags) $< -o $@
|
141 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
142 |
|
143 |
%_picd.o : %.f
|
144 |
$(FC) -c $(CPPFLAGS) $(FFLAGS) $(FCDebugFlag) $(SharedFCObjectFlags) $< -o $@
|
145 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
146 |
|
147 |
# -- Debug Shared Objects with Insure
|
148 |
%_picInsure.o : %.cc
|
149 |
$(Insure) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $(SharedCCObjectFlags) $< -o $@
|
150 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
151 |
|
152 |
%_picInsure.o : %.C
|
153 |
$(Insure) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $(SharedCCObjectFlags) $< -o $@
|
154 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
155 |
|
156 |
%_picInsure.o : %.cpp
|
157 |
$(Insure) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $(SharedCCObjectFlags) $< -o $@
|
158 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
159 |
|
160 |
%_picInsure.o : %.cxx
|
161 |
$(Insure) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $(SharedCCObjectFlags) $< -o $@
|
162 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
163 |
|
164 |
%_picInsure.o : %.c
|
165 |
$(Insure) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $(SharedCCObjectFlags) $< -o $@
|
166 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
167 |
|
168 |
# -- Debug Archive Libs
|
169 |
%_d.o : %.cpp
|
170 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $< -o $@
|
171 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
172 |
|
173 |
%_d.o : %.cxx
|
174 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $< -o $@
|
175 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
176 |
|
177 |
%_d.o : %.c
|
178 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $< -o $@
|
179 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
180 |
|
181 |
%_d.o : %.cc
|
182 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $< -o $@
|
183 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
184 |
|
185 |
%_d.o : %.C
|
186 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $< -o $@
|
187 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
188 |
|
189 |
%_d.o : %.F
|
190 |
$(FC) -c $(CPPFLAGS) $(FFLAGS) $(FCDebugFlag) $< -o $@
|
191 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
192 |
|
193 |
%_d.o : %.f
|
194 |
$(FC) -c $(CPPFLAGS) $(FFLAGS) $(FCDebugFlag) $< -o $@
|
195 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
196 |
|
197 |
# -- Debug Archive Libs with Insure
|
198 |
%_Insure.o : %.cpp
|
199 |
$(Insure) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $< -o $@
|
200 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
201 |
|
202 |
%_Insure.o : %.cxx
|
203 |
$(Insure) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $< -o $@
|
204 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
205 |
|
206 |
%_Insure.o : %.c
|
207 |
$(Insure) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $< -o $@
|
208 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
209 |
|
210 |
%_Insure.o : %.cc
|
211 |
$(Insure) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $< -o $@
|
212 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
213 |
|
214 |
%_Insure.o : %.C
|
215 |
$(Insure) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXDebugFlag) $< -o $@
|
216 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
217 |
|
218 |
# -- Standard Archive Libs
|
219 |
%_o.o : %.cpp
|
220 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXOptimised) $< -o $@
|
221 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
222 |
|
223 |
%_o.o : %.cxx
|
224 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXOptimised) $< -o $@
|
225 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
226 |
|
227 |
%_o.o : %.c
|
228 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXOptimised) $< -o $@
|
229 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
230 |
|
231 |
%_o.o : %.cc
|
232 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXOptimised) $< -o $@
|
233 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
234 |
|
235 |
%_o.o : %.C
|
236 |
$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $(CXXOptimised) $< -o $@
|
237 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
238 |
|
239 |
%_o.o : %.F
|
240 |
$(FC) -c $(CPPFLAGS) $(FFLAGS) $(FCOptimised) $< -o $@
|
241 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
242 |
|
243 |
%_o.o : %.f
|
244 |
$(FC) -c $(CPPFLAGS) $(FFLAGS) $(FCOptimised) $< -o $@
|
245 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
246 |
|
247 |
# Already built in
|
248 |
|
249 |
# -------------------------------------------------------------------------
|
250 |
# Executables
|
251 |
# -------------------------------------------------------------------------
|
252 |
|
253 |
# -- Debug Executables
|
254 |
|
255 |
lib_d=$(shell $(SCRAMPERL) $(TOOL_HOME)/LibTypeExpand "_d" $(lib))
|
256 |
lib_d_l=$(shell $(SCRAMPERL) $(TOOL_HOME)/LibTypeExpandLocal "_d" $(lib))
|
257 |
LDLIBS_D=$(addprefix -l,$(lib_d))
|
258 |
LDLIBS_D_L=$(addprefix -l,$(lib_d_l))
|
259 |
|
260 |
#%_d.exe :
|
261 |
# $(CXX) $(CXXFLAGS) $(CXXDebugFlag) $(LDFLAGS) $< -o $@ $(LDLIBS_D)
|
262 |
|
263 |
# -- Insure Executables
|
264 |
lib_Insure1=$(shell $(SCRAMPERL) $(TOOL_HOME)/LibTypeExpand "_Insure" $(lib))
|
265 |
lib_Insure=$(shell $(SCRAMPERL) $(TOOL_HOME)/LibTypeExpandLocal "_d" $(lib_Insure1))
|
266 |
lib_Insure_l1=$(shell $(SCRAMPERL) $(TOOL_HOME)/LibTypeExpandLocal "_Insure" $(lib))
|
267 |
lib_Insure_l=$(shell $(SCRAMPERL) $(TOOL_HOME)/LibTypeExpandLocal "_d" $(lib_Insure_l1))
|
268 |
LDLIBS_Insure=$(addprefix -l,$(lib_Insure))
|
269 |
#%_Insure.exe :
|
270 |
# $(Insure) $(CXXFLAGS) $(CXXDebugFlag) $(LDFLAGS) $< -o $@ $(LDLIBS_D)
|
271 |
|
272 |
# -- Executables
|
273 |
#%.exe :
|
274 |
# $(CXX) $(CXXFLAGS) $(CXXOptimised) $(LDFLAGS) $< -o $@ $(LDLIBS)
|
275 |
|
276 |
# -------------------------------------------------------------------------
|
277 |
|
278 |
realbins:=$(filter $(bintargets),$(notdir $(wildcard $(LOCALTOP)/$(INTbin)/*)))
|
279 |
frealbins=$(addprefix $(LOCALTOP)/$(INTbin)/,$(realbins))
|
280 |
clean ::
|
281 |
@if [ "$(realbins)" != "" ] ; then \
|
282 |
echo Removing executables : $(realbins); \
|
283 |
rm $(frealbins); \
|
284 |
fi;
|
285 |
|
286 |
# -------------------------------------------------------------------------
|
287 |
|
288 |
# Some nice generic target names for the user
|
289 |
|
290 |
shared : $(shlibname).$(SharedSuffix)
|
291 |
shared_debug : $(shlibname)_d.$(SharedSuffix)
|
292 |
archive : $(arlibname).$(ArchiveSuffix)
|
293 |
archive_debug : $(arlibname)_d.$(ArchiveSuffix)
|
294 |
archive_Insure : $(arlibname)_Insure.$(ArchiveSuffix)
|
295 |
shared_Insure : $(shlibname)_Insure.$(SharedSuffix)
|
296 |
|
297 |
# Now more specific rules
|
298 |
|
299 |
# -- Standard Shared Objects Libs
|
300 |
$(shlibname).$(SharedSuffix) : $(Ssharedlibobjs)
|
301 |
$(SharedCCTool)
|
302 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
303 |
@mv $@ $(librarystore)/$@
|
304 |
|
305 |
# -- Debug Shared Objects Libs
|
306 |
$(shlibname)_d.$(SharedSuffix) : $(Ssharedlibdebugobjs)
|
307 |
$(DebugSharedCCTool)
|
308 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
309 |
@mv $@ $(librarystore)/$@
|
310 |
|
311 |
# -- Insure Shared Objects Libs
|
312 |
$(shlibname)_Insure.$(SharedSuffix) : $(SsharedlibInsureobjs)
|
313 |
$(InsureSharedCCTool)
|
314 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
315 |
@mv $@ $(librarystore)/$@
|
316 |
|
317 |
# -- Standard Archive Libs
|
318 |
$(arlibname).$(ArchiveSuffix) : $(Sarchivelibobjs)
|
319 |
$(ArchiveCCTool)
|
320 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
321 |
@mv $@ $(librarystore)/$@
|
322 |
|
323 |
# -- Debug Archive Libs
|
324 |
$(arlibname)_d.$(ArchiveSuffix) : $(Sarchivelibdebugobjs)
|
325 |
$(DebugArchiveCCTool)
|
326 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
327 |
@mv $@ $(librarystore)/$@
|
328 |
|
329 |
# -- Insure Archive libs
|
330 |
$(arlibname)_Insure.$(ArchiveSuffix) : $(SarchivelibInsureobjs)
|
331 |
$(DebugArchiveCCTool)
|
332 |
@$(SCRAMPERL) $(SCRAM_HOME)/src/scramdatestamp $@.ds $@ $^
|
333 |
@mv $@ $(librarystore)/$@
|
334 |
|
335 |
# -- Dependencies
|
336 |
ifndef MAKETARGET_clean
|
337 |
dependencies.mk:: $(files)
|
338 |
@if [ "$<" != "" ]; then \
|
339 |
echo Generating Dependencies; \
|
340 |
$(DependencyCCTool); \
|
341 |
$(SCRAMPERL) $(TOOL_HOME)/DependencyMangler $@; \
|
342 |
fi
|
343 |
|
344 |
%.dep:
|
345 |
@$(DependencyCCTool)
|
346 |
@$(SCRAMPERL) $(TOOL_HOME)/DependencyMangler $@
|
347 |
endif
|