xref: /AOO41X/main/solenv/inc/_tg_def.mk (revision 7d4f049e27ecc94453208bed851c54b21e713356)
1# *************************************************************
2#
3#  Licensed to the Apache Software Foundation (ASF) under one
4#  or more contributor license agreements.  See the NOTICE file
5#  distributed with this work for additional information
6#  regarding copyright ownership.  The ASF licenses this file
7#  to you under the Apache License, Version 2.0 (the
8#  "License"); you may not use this file except in compliance
9#  with the License.  You may obtain a copy of the License at
10#
11#    http://www.apache.org/licenses/LICENSE-2.0
12#
13#  Unless required by applicable law or agreed to in writing,
14#  software distributed under the License is distributed on an
15#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16#  KIND, either express or implied.  See the License for the
17#  specific language governing permissions and limitations
18#  under the License.
19#
20# *************************************************************
21# unroll begin
22
23.IF "$(DEF1TARGETN)"!=""
24
25#to make intuitiv naming work
26.IF "$(DEF1LIBNAME)"!=""
27DEFLIB1NAME*=$(DEF1LIBNAME)
28.ENDIF          # "$(DEF1LIBNAME)"!=""
29
30.IF "$(DEFLIB1NAME)"!=""
31DEF1DEPN+=$(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib)
32.ENDIF
33
34.IF "$(SHL1VERSIONMAP)"!=""
35.IF "$(DEF1EXPORTFILE)"==""
36.IF "$(GUI)"=="WNT"
37DEF1EXPORTFILE=$(MISC)/$(SHL1VERSIONMAP:b)_$(SHL1TARGET).dxp
38.IF "$(COM)"=="GCC"
39$(DEF1EXPORTFILE) : $(SHL1OBJS) $(SHL1LIBS)
40.ENDIF # .IF "$(COM)"=="GCC"
41
42$(DEF1EXPORTFILE) : $(SHL1VERSIONMAP)
43    $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
44.IF "$(COM)"=="GCC"
45    $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols
46    $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp
47# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
48# Extract RTTI symbols from all the objects that will be used to build a shared library
49    $(COMMAND_ECHO)nm -gP $(SHL1OBJS) \
50        `$(TYPE) /dev/null $(foreach,j,$(SHL1LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \
51        | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
52# overwrite the map file generate into the local output tree with the generated
53# exported symbols list
54    $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@
55.ENDIF # .IF "$(COM)"=="GCC"
56
57.ENDIF          # "$(GUI)"=="WNT"
58
59.IF "$(GUI)"=="OS2"
60DEF1EXPORTFILE=$(MISC)/$(SHL1VERSIONMAP:b)_$(SHL1TARGET).dxp
61$(DEF1EXPORTFILE) : $(SHL1VERSIONMAP)
62    $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
63.ENDIF          # "$(GUI)"=="OS2"
64
65.ENDIF          # "$(DEF1EXPORTFILE)"==""
66.ENDIF          # "$(SHL1VERSIONMAP)"!=""
67
68.IF "$(GUI)"=="WNT"
69
70DEF1FILTER=$(SOLARENV)/inc/dummy.flt
71
72RMHACK1:=$(RM)
73
74.IF "$(DEF1CEXP)"!=""
75EXPORT_ALL_SWITCH=-A $(DEF1CEXP)
76.ENDIF
77
78.IF "$(link_always)"==""
79$(DEF1TARGETN) : \
80        $(DEF1DEPN) \
81        $(DEF1EXPORTFILE)
82.ELSE           # "$(link_always)"==""
83$(DEF1TARGETN) .PHONY :
84.ENDIF          # "$(link_always)"==""
85    @-$(RM) $@.tmpfile
86    @echo "Making:    module definition file" $(@:f)
87    @echo LIBRARY     $(EMQ)"$(SHL1TARGETN:f)$(EMQ)"                                 >$@.tmpfile
88.IF "$(COM)"!="GCC"
89    @echo HEAPSIZE    0                                             >>$@.tmpfile
90.ENDIF
91    @echo EXPORTS                                                   >>$@.tmpfile
92.IF "$(VERSIONOBJ)"!=""
93#   getversioninfo fuer alle!!
94    @echo GetVersionInfo        >>$@.tmpfile
95.ENDIF
96.IF "$(DEFLIB1NAME)"!=""
97.IF "$(COM)"=="GCC"
98    @-$(RM) $(MISC)/$(SHL1TARGET).exp
99    $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL1TARGET).exp --export-all-symbols \
100        `$(TYPE) $(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g`
101    $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL1TARGET).exp | sed '/^;/d' >>$@.tmpfile
102    @-$(RM) $(MISC)/$(SHL1TARGET).exp
103.ELSE
104.IF "$(SHL1USE_EXPORTS)"==""
105    @-$(RMHACK1) $(MISC)/$(SHL1TARGET).exp
106    @$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL1TARGET).exp $(SLB)/$(DEFLIB1NAME).lib
107    @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL1TARGET).flt $(MISC)/$(SHL1TARGET).exp              >>$@.tmpfile
108    $(COMMAND_ECHO)$(RMHACK1) $(MISC)/$(SHL1TARGET).exp
109.ELSE           # "$(SHL1USE_EXPORTS)"==""
110    @$(DUMPBIN) -DIRECTIVES  $(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL1TARGET).direct
111    @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF1FILTER) $(MISC)/$(SHL1TARGET).direct >>$@.tmpfile
112.ENDIF          # "$(SHL1USE_EXPORTS)"==""
113.ENDIF
114.ENDIF              # "$(DEFLIB1NAME)"!=""
115.IF "$(DEF1EXPORT1)"!=""
116    @echo $(DEF1EXPORT1)                                        >>$@.tmpfile
117.ENDIF
118.IF "$(DEF1EXPORT2)"!=""
119    @echo $(DEF1EXPORT2)                                        >>$@.tmpfile
120.ENDIF
121.IF "$(DEF1EXPORT3)"!=""
122    @echo $(DEF1EXPORT3)                                        >>$@.tmpfile
123.ENDIF
124.IF "$(DEF1EXPORT4)"!=""
125    @echo $(DEF1EXPORT4)                                        >>$@.tmpfile
126.ENDIF
127.IF "$(DEF1EXPORT5)"!=""
128    @echo $(DEF1EXPORT5)                                        >>$@.tmpfile
129.ENDIF
130.IF "$(DEF1EXPORT6)"!=""
131    @echo $(DEF1EXPORT6)                                        >>$@.tmpfile
132.ENDIF
133.IF "$(DEF1EXPORT7)"!=""
134    @echo $(DEF1EXPORT7)                                        >>$@.tmpfile
135.ENDIF
136.IF "$(DEF1EXPORT8)"!=""
137    @echo $(DEF1EXPORT8)                                        >>$@.tmpfile
138.ENDIF
139.IF "$(DEF1EXPORT9)"!=""
140    @echo $(DEF1EXPORT9)                                        >>$@.tmpfile
141.ENDIF
142.IF "$(DEF1EXPORT10)"!=""
143    @echo $(DEF1EXPORT10)                                       >>$@.tmpfile
144.ENDIF
145.IF "$(DEF1EXPORT11)"!=""
146    @echo $(DEF1EXPORT11)                                       >>$@.tmpfile
147.ENDIF
148.IF "$(DEF1EXPORT12)"!=""
149    @echo $(DEF1EXPORT12)                                       >>$@.tmpfile
150.ENDIF
151.IF "$(DEF1EXPORT13)"!=""
152    @echo $(DEF1EXPORT13)                                       >>$@.tmpfile
153.ENDIF
154.IF "$(DEF1EXPORT14)"!=""
155    @echo $(DEF1EXPORT14)                                       >>$@.tmpfile
156.ENDIF
157.IF "$(DEF1EXPORT15)"!=""
158    @echo $(DEF1EXPORT15)                                       >>$@.tmpfile
159.ENDIF
160.IF "$(DEF1EXPORT16)"!=""
161    @echo $(DEF1EXPORT16)                                       >>$@.tmpfile
162.ENDIF
163.IF "$(DEF1EXPORT17)"!=""
164    @echo $(DEF1EXPORT17)                                       >>$@.tmpfile
165.ENDIF
166.IF "$(DEF1EXPORT18)"!=""
167    @echo $(DEF1EXPORT18)                                       >>$@.tmpfile
168.ENDIF
169.IF "$(DEF1EXPORT19)"!=""
170    @echo $(DEF1EXPORT19)                                       >>$@.tmpfile
171.ENDIF
172.IF "$(DEF1EXPORT20)"!=""
173    @echo $(DEF1EXPORT20)                                       >>$@.tmpfile
174.ENDIF
175.IF "$(DEF1EXPORTFILE)"!=""
176.IF "$(COM)"=="GCC"
177    $(COMMAND_ECHO)$(TYPE) $(DEF1EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile
178.ELSE
179    $(COMMAND_ECHO)$(TYPE) $(DEF1EXPORTFILE) >> $@.tmpfile
180.ENDIF
181.ENDIF
182    @-$(RM) $@
183    @$(RENAME) $@.tmpfile $@
184.ENDIF          # "$(GUI)"=="WNT"
185
186.IF "$(GUI)"=="OS2"
187
188#21/02/2006 YD dll names must be 8.3, invoke fix script
189#check osl/os2/module.c/osl_loadModule()
190SHL1TARGET8=$(shell @fix_shl.cmd $(SHL1TARGETN:f))
191
192DEF1FILTER=$(SOLARENV)/inc/dummy.flt
193DEF1NAMELIST=$(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib)
194
195.IF "$(link_always)"==""
196$(DEF1TARGETN) : \
197        $(DEF1DEPN) \
198        $(DEF1EXPORTFILE)
199.ELSE           # "$(link_always)"==""
200$(DEF1TARGETN) .PHONY :
201.ENDIF          # "$(link_always)"==""
202    @+-$(RM) $@.tmpfile
203    @echo "Making:    module definition file" $(@:f)
204    @echo LIBRARY     $(SHL1TARGET8) INITINSTANCE TERMINSTANCE   >$@.tmpfile
205    @echo DATA MULTIPLE  >>$@.tmpfile
206    @echo EXPORTS                                                   >>$@.tmpfile
207.IF "$(VERSIONOBJ)"!=""
208#   getversioninfo fuer alle!!
209    @echo _GetVersionInfo       >$@.tmp_ord
210.ENDIF
211
212.IF "$(DEFLIB1NAME)"!=""
213    @+echo $(SLB)/$(DEFLIB1NAME).lib
214    @+emxexpr $(DEF1NAMELIST) | fix_exp_file >> $@.tmp_ord
215.ENDIF              # "$(DEFLIB1NAME)"!=""
216
217.IF "$(DEF1EXPORT1)"!=""
218    @echo $(DEF1EXPORT1)                                        >>$@.tmpfile
219.ENDIF
220.IF "$(DEF1EXPORT2)"!=""
221    @echo $(DEF1EXPORT2)                                        >>$@.tmpfile
222.ENDIF
223.IF "$(DEF1EXPORT3)"!=""
224    @echo $(DEF1EXPORT3)                                        >>$@.tmpfile
225.ENDIF
226.IF "$(DEF1EXPORT4)"!=""
227    @echo $(DEF1EXPORT4)                                        >>$@.tmpfile
228.ENDIF
229.IF "$(DEF1EXPORT5)"!=""
230    @echo $(DEF1EXPORT5)                                        >>$@.tmpfile
231.ENDIF
232.IF "$(DEF1EXPORT6)"!=""
233    @echo $(DEF1EXPORT6)                                        >>$@.tmpfile
234.ENDIF
235.IF "$(DEF1EXPORT7)"!=""
236    @echo $(DEF1EXPORT7)                                        >>$@.tmpfile
237.ENDIF
238.IF "$(DEF1EXPORT8)"!=""
239    @echo $(DEF1EXPORT8)                                        >>$@.tmpfile
240.ENDIF
241.IF "$(DEF1EXPORT9)"!=""
242    @echo $(DEF1EXPORT9)                                        >>$@.tmpfile
243.ENDIF
244.IF "$(DEF1EXPORT10)"!=""
245    @echo $(DEF1EXPORT10)                                       >>$@.tmpfile
246.ENDIF
247.IF "$(DEF1EXPORT11)"!=""
248    @echo $(DEF1EXPORT11)                                       >>$@.tmpfile
249.ENDIF
250.IF "$(DEF1EXPORT12)"!=""
251    @echo $(DEF1EXPORT12)                                       >>$@.tmpfile
252.ENDIF
253.IF "$(DEF1EXPORT13)"!=""
254    @echo $(DEF1EXPORT13)                                       >>$@.tmpfile
255.ENDIF
256.IF "$(DEF1EXPORT14)"!=""
257    @echo $(DEF1EXPORT14)                                       >>$@.tmpfile
258.ENDIF
259.IF "$(DEF1EXPORT15)"!=""
260    @echo $(DEF1EXPORT15)                                       >>$@.tmpfile
261.ENDIF
262.IF "$(DEF1EXPORT16)"!=""
263    @echo $(DEF1EXPORT16)                                       >>$@.tmpfile
264.ENDIF
265.IF "$(DEF1EXPORT17)"!=""
266    @echo $(DEF1EXPORT17)                                       >>$@.tmpfile
267.ENDIF
268.IF "$(DEF1EXPORT18)"!=""
269    @echo $(DEF1EXPORT18)                                       >>$@.tmpfile
270.ENDIF
271.IF "$(DEF1EXPORT19)"!=""
272    @echo $(DEF1EXPORT19)                                       >>$@.tmpfile
273.ENDIF
274.IF "$(DEF1EXPORT20)"!=""
275    @echo $(DEF1EXPORT20)                                       >>$@.tmpfile
276.ENDIF
277.IF "$(DEF1EXPORTFILE)"!=""
278    @fix_def_file < $(DEF1EXPORTFILE) >> $@.tmp_ord
279.ENDIF
280    @sort < $@.tmp_ord | uniq > $@.exptmpfile
281    @fix_def_ord < $@.exptmpfile >> $@.tmpfile
282    @+-$(RM) $@
283    $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@
284    @+-$(RM) $@.tmp_ord
285    @+-$(RM) $@.exptmpfile
286    $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL1IMPLIBN:s/.lib/.a/) $@
287    $(COMMAND_ECHO)+emxomf -o $(SHL1IMPLIBN) $(SHL1IMPLIBN:s/.lib/.a/)
288
289.ENDIF          # "$(GUI)"=="OS2"
290
291.IF "$(GUI)"=="UNX"
292$(DEF1TARGETN): \
293        $(DEF1DEPN) \
294        $(DEF1EXPORTFILE)
295    @echo just a dummy for UNIX > $@
296.ENDIF
297.ENDIF          # "$(DEF1TARGETN)"!=""
298
299
300# Anweisungen fuer das Linken
301# unroll begin
302
303.IF "$(DEF2TARGETN)"!=""
304
305#to make intuitiv naming work
306.IF "$(DEF2LIBNAME)"!=""
307DEFLIB2NAME*=$(DEF2LIBNAME)
308.ENDIF          # "$(DEF2LIBNAME)"!=""
309
310.IF "$(DEFLIB2NAME)"!=""
311DEF2DEPN+=$(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib)
312.ENDIF
313
314.IF "$(SHL2VERSIONMAP)"!=""
315.IF "$(DEF2EXPORTFILE)"==""
316.IF "$(GUI)"=="WNT"
317DEF2EXPORTFILE=$(MISC)/$(SHL2VERSIONMAP:b)_$(SHL2TARGET).dxp
318.IF "$(COM)"=="GCC"
319$(DEF2EXPORTFILE) : $(SHL2OBJS) $(SHL2LIBS)
320.ENDIF # .IF "$(COM)"=="GCC"
321
322$(DEF2EXPORTFILE) : $(SHL2VERSIONMAP)
323    $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
324.IF "$(COM)"=="GCC"
325    $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols
326    $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp
327# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
328# Extract RTTI symbols from all the objects that will be used to build a shared library
329    $(COMMAND_ECHO)nm -gP $(SHL2OBJS) \
330        `$(TYPE) /dev/null $(foreach,j,$(SHL2LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \
331        | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
332# overwrite the map file generate into the local output tree with the generated
333# exported symbols list
334    $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@
335.ENDIF # .IF "$(COM)"=="GCC"
336
337.ENDIF          # "$(GUI)"=="WNT"
338
339.IF "$(GUI)"=="OS2"
340DEF2EXPORTFILE=$(MISC)/$(SHL2VERSIONMAP:b)_$(SHL2TARGET).dxp
341$(DEF2EXPORTFILE) : $(SHL2VERSIONMAP)
342    $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
343.ENDIF          # "$(GUI)"=="OS2"
344
345.ENDIF          # "$(DEF2EXPORTFILE)"==""
346.ENDIF          # "$(SHL2VERSIONMAP)"!=""
347
348.IF "$(GUI)"=="WNT"
349
350DEF2FILTER=$(SOLARENV)/inc/dummy.flt
351
352RMHACK2:=$(RM)
353
354.IF "$(DEF2CEXP)"!=""
355EXPORT_ALL_SWITCH=-A $(DEF2CEXP)
356.ENDIF
357
358.IF "$(link_always)"==""
359$(DEF2TARGETN) : \
360        $(DEF2DEPN) \
361        $(DEF2EXPORTFILE)
362.ELSE           # "$(link_always)"==""
363$(DEF2TARGETN) .PHONY :
364.ENDIF          # "$(link_always)"==""
365    @-$(RM) $@.tmpfile
366    @echo "Making:    module definition file" $(@:f)
367    @echo LIBRARY     $(EMQ)"$(SHL2TARGETN:f)$(EMQ)"                                 >$@.tmpfile
368.IF "$(COM)"!="GCC"
369    @echo HEAPSIZE    0                                             >>$@.tmpfile
370.ENDIF
371    @echo EXPORTS                                                   >>$@.tmpfile
372.IF "$(VERSIONOBJ)"!=""
373#   getversioninfo fuer alle!!
374    @echo GetVersionInfo        >>$@.tmpfile
375.ENDIF
376.IF "$(DEFLIB2NAME)"!=""
377.IF "$(COM)"=="GCC"
378    @-$(RM) $(MISC)/$(SHL2TARGET).exp
379    $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL2TARGET).exp --export-all-symbols \
380        `$(TYPE) $(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g`
381    $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL2TARGET).exp | sed '/^;/d' >>$@.tmpfile
382    @-$(RM) $(MISC)/$(SHL2TARGET).exp
383.ELSE
384.IF "$(SHL2USE_EXPORTS)"==""
385    @-$(RMHACK2) $(MISC)/$(SHL2TARGET).exp
386    @$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL2TARGET).exp $(SLB)/$(DEFLIB2NAME).lib
387    @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL2TARGET).flt $(MISC)/$(SHL2TARGET).exp              >>$@.tmpfile
388    $(COMMAND_ECHO)$(RMHACK2) $(MISC)/$(SHL2TARGET).exp
389.ELSE           # "$(SHL2USE_EXPORTS)"==""
390    @$(DUMPBIN) -DIRECTIVES  $(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL2TARGET).direct
391    @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF2FILTER) $(MISC)/$(SHL2TARGET).direct >>$@.tmpfile
392.ENDIF          # "$(SHL2USE_EXPORTS)"==""
393.ENDIF
394.ENDIF              # "$(DEFLIB2NAME)"!=""
395.IF "$(DEF2EXPORT1)"!=""
396    @echo $(DEF2EXPORT1)                                        >>$@.tmpfile
397.ENDIF
398.IF "$(DEF2EXPORT2)"!=""
399    @echo $(DEF2EXPORT2)                                        >>$@.tmpfile
400.ENDIF
401.IF "$(DEF2EXPORT3)"!=""
402    @echo $(DEF2EXPORT3)                                        >>$@.tmpfile
403.ENDIF
404.IF "$(DEF2EXPORT4)"!=""
405    @echo $(DEF2EXPORT4)                                        >>$@.tmpfile
406.ENDIF
407.IF "$(DEF2EXPORT5)"!=""
408    @echo $(DEF2EXPORT5)                                        >>$@.tmpfile
409.ENDIF
410.IF "$(DEF2EXPORT6)"!=""
411    @echo $(DEF2EXPORT6)                                        >>$@.tmpfile
412.ENDIF
413.IF "$(DEF2EXPORT7)"!=""
414    @echo $(DEF2EXPORT7)                                        >>$@.tmpfile
415.ENDIF
416.IF "$(DEF2EXPORT8)"!=""
417    @echo $(DEF2EXPORT8)                                        >>$@.tmpfile
418.ENDIF
419.IF "$(DEF2EXPORT9)"!=""
420    @echo $(DEF2EXPORT9)                                        >>$@.tmpfile
421.ENDIF
422.IF "$(DEF2EXPORT10)"!=""
423    @echo $(DEF2EXPORT10)                                       >>$@.tmpfile
424.ENDIF
425.IF "$(DEF2EXPORT11)"!=""
426    @echo $(DEF2EXPORT11)                                       >>$@.tmpfile
427.ENDIF
428.IF "$(DEF2EXPORT12)"!=""
429    @echo $(DEF2EXPORT12)                                       >>$@.tmpfile
430.ENDIF
431.IF "$(DEF2EXPORT13)"!=""
432    @echo $(DEF2EXPORT13)                                       >>$@.tmpfile
433.ENDIF
434.IF "$(DEF2EXPORT14)"!=""
435    @echo $(DEF2EXPORT14)                                       >>$@.tmpfile
436.ENDIF
437.IF "$(DEF2EXPORT15)"!=""
438    @echo $(DEF2EXPORT15)                                       >>$@.tmpfile
439.ENDIF
440.IF "$(DEF2EXPORT16)"!=""
441    @echo $(DEF2EXPORT16)                                       >>$@.tmpfile
442.ENDIF
443.IF "$(DEF2EXPORT17)"!=""
444    @echo $(DEF2EXPORT17)                                       >>$@.tmpfile
445.ENDIF
446.IF "$(DEF2EXPORT18)"!=""
447    @echo $(DEF2EXPORT18)                                       >>$@.tmpfile
448.ENDIF
449.IF "$(DEF2EXPORT19)"!=""
450    @echo $(DEF2EXPORT19)                                       >>$@.tmpfile
451.ENDIF
452.IF "$(DEF2EXPORT20)"!=""
453    @echo $(DEF2EXPORT20)                                       >>$@.tmpfile
454.ENDIF
455.IF "$(DEF2EXPORTFILE)"!=""
456.IF "$(COM)"=="GCC"
457    $(COMMAND_ECHO)$(TYPE) $(DEF2EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile
458.ELSE
459    $(COMMAND_ECHO)$(TYPE) $(DEF2EXPORTFILE) >> $@.tmpfile
460.ENDIF
461.ENDIF
462    @-$(RM) $@
463    @$(RENAME) $@.tmpfile $@
464.ENDIF          # "$(GUI)"=="WNT"
465
466.IF "$(GUI)"=="OS2"
467
468#21/02/2006 YD dll names must be 8.3, invoke fix script
469#check osl/os2/module.c/osl_loadModule()
470SHL2TARGET8=$(shell @fix_shl.cmd $(SHL2TARGETN:f))
471
472DEF2FILTER=$(SOLARENV)/inc/dummy.flt
473DEF2NAMELIST=$(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib)
474
475.IF "$(link_always)"==""
476$(DEF2TARGETN) : \
477        $(DEF2DEPN) \
478        $(DEF2EXPORTFILE)
479.ELSE           # "$(link_always)"==""
480$(DEF2TARGETN) .PHONY :
481.ENDIF          # "$(link_always)"==""
482    @+-$(RM) $@.tmpfile
483    @echo "Making:    module definition file" $(@:f)
484    @echo LIBRARY     $(SHL2TARGET8) INITINSTANCE TERMINSTANCE   >$@.tmpfile
485    @echo DATA MULTIPLE  >>$@.tmpfile
486    @echo EXPORTS                                                   >>$@.tmpfile
487.IF "$(VERSIONOBJ)"!=""
488#   getversioninfo fuer alle!!
489    @echo _GetVersionInfo       >$@.tmp_ord
490.ENDIF
491
492.IF "$(DEFLIB2NAME)"!=""
493    @+echo $(SLB)/$(DEFLIB2NAME).lib
494    @+emxexpr $(DEF2NAMELIST) | fix_exp_file >> $@.tmp_ord
495.ENDIF              # "$(DEFLIB2NAME)"!=""
496
497.IF "$(DEF2EXPORT1)"!=""
498    @echo $(DEF2EXPORT1)                                        >>$@.tmpfile
499.ENDIF
500.IF "$(DEF2EXPORT2)"!=""
501    @echo $(DEF2EXPORT2)                                        >>$@.tmpfile
502.ENDIF
503.IF "$(DEF2EXPORT3)"!=""
504    @echo $(DEF2EXPORT3)                                        >>$@.tmpfile
505.ENDIF
506.IF "$(DEF2EXPORT4)"!=""
507    @echo $(DEF2EXPORT4)                                        >>$@.tmpfile
508.ENDIF
509.IF "$(DEF2EXPORT5)"!=""
510    @echo $(DEF2EXPORT5)                                        >>$@.tmpfile
511.ENDIF
512.IF "$(DEF2EXPORT6)"!=""
513    @echo $(DEF2EXPORT6)                                        >>$@.tmpfile
514.ENDIF
515.IF "$(DEF2EXPORT7)"!=""
516    @echo $(DEF2EXPORT7)                                        >>$@.tmpfile
517.ENDIF
518.IF "$(DEF2EXPORT8)"!=""
519    @echo $(DEF2EXPORT8)                                        >>$@.tmpfile
520.ENDIF
521.IF "$(DEF2EXPORT9)"!=""
522    @echo $(DEF2EXPORT9)                                        >>$@.tmpfile
523.ENDIF
524.IF "$(DEF2EXPORT10)"!=""
525    @echo $(DEF2EXPORT10)                                       >>$@.tmpfile
526.ENDIF
527.IF "$(DEF2EXPORT11)"!=""
528    @echo $(DEF2EXPORT11)                                       >>$@.tmpfile
529.ENDIF
530.IF "$(DEF2EXPORT12)"!=""
531    @echo $(DEF2EXPORT12)                                       >>$@.tmpfile
532.ENDIF
533.IF "$(DEF2EXPORT13)"!=""
534    @echo $(DEF2EXPORT13)                                       >>$@.tmpfile
535.ENDIF
536.IF "$(DEF2EXPORT14)"!=""
537    @echo $(DEF2EXPORT14)                                       >>$@.tmpfile
538.ENDIF
539.IF "$(DEF2EXPORT15)"!=""
540    @echo $(DEF2EXPORT15)                                       >>$@.tmpfile
541.ENDIF
542.IF "$(DEF2EXPORT16)"!=""
543    @echo $(DEF2EXPORT16)                                       >>$@.tmpfile
544.ENDIF
545.IF "$(DEF2EXPORT17)"!=""
546    @echo $(DEF2EXPORT17)                                       >>$@.tmpfile
547.ENDIF
548.IF "$(DEF2EXPORT18)"!=""
549    @echo $(DEF2EXPORT18)                                       >>$@.tmpfile
550.ENDIF
551.IF "$(DEF2EXPORT19)"!=""
552    @echo $(DEF2EXPORT19)                                       >>$@.tmpfile
553.ENDIF
554.IF "$(DEF2EXPORT20)"!=""
555    @echo $(DEF2EXPORT20)                                       >>$@.tmpfile
556.ENDIF
557.IF "$(DEF2EXPORTFILE)"!=""
558    @fix_def_file < $(DEF2EXPORTFILE) >> $@.tmp_ord
559.ENDIF
560    @sort < $@.tmp_ord | uniq > $@.exptmpfile
561    @fix_def_ord < $@.exptmpfile >> $@.tmpfile
562    @+-$(RM) $@
563    $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@
564    @+-$(RM) $@.tmp_ord
565    @+-$(RM) $@.exptmpfile
566    $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL2IMPLIBN:s/.lib/.a/) $@
567    $(COMMAND_ECHO)+emxomf -o $(SHL2IMPLIBN) $(SHL2IMPLIBN:s/.lib/.a/)
568
569.ENDIF          # "$(GUI)"=="OS2"
570
571.IF "$(GUI)"=="UNX"
572$(DEF2TARGETN): \
573        $(DEF2DEPN) \
574        $(DEF2EXPORTFILE)
575    @echo just a dummy for UNIX > $@
576.ENDIF
577.ENDIF          # "$(DEF2TARGETN)"!=""
578
579
580# Anweisungen fuer das Linken
581# unroll begin
582
583.IF "$(DEF3TARGETN)"!=""
584
585#to make intuitiv naming work
586.IF "$(DEF3LIBNAME)"!=""
587DEFLIB3NAME*=$(DEF3LIBNAME)
588.ENDIF          # "$(DEF3LIBNAME)"!=""
589
590.IF "$(DEFLIB3NAME)"!=""
591DEF3DEPN+=$(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib)
592.ENDIF
593
594.IF "$(SHL3VERSIONMAP)"!=""
595.IF "$(DEF3EXPORTFILE)"==""
596.IF "$(GUI)"=="WNT"
597DEF3EXPORTFILE=$(MISC)/$(SHL3VERSIONMAP:b)_$(SHL3TARGET).dxp
598.IF "$(COM)"=="GCC"
599$(DEF3EXPORTFILE) : $(SHL3OBJS) $(SHL3LIBS)
600.ENDIF # .IF "$(COM)"=="GCC"
601
602$(DEF3EXPORTFILE) : $(SHL3VERSIONMAP)
603    $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
604.IF "$(COM)"=="GCC"
605    $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols
606    $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp
607# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
608# Extract RTTI symbols from all the objects that will be used to build a shared library
609    $(COMMAND_ECHO)nm -gP $(SHL3OBJS) \
610        `$(TYPE) /dev/null $(foreach,j,$(SHL3LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \
611        | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
612# overwrite the map file generate into the local output tree with the generated
613# exported symbols list
614    $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@
615.ENDIF # .IF "$(COM)"=="GCC"
616
617.ENDIF          # "$(GUI)"=="WNT"
618
619.IF "$(GUI)"=="OS2"
620DEF3EXPORTFILE=$(MISC)/$(SHL3VERSIONMAP:b)_$(SHL3TARGET).dxp
621$(DEF3EXPORTFILE) : $(SHL3VERSIONMAP)
622    $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
623.ENDIF          # "$(GUI)"=="OS2"
624
625.ENDIF          # "$(DEF3EXPORTFILE)"==""
626.ENDIF          # "$(SHL3VERSIONMAP)"!=""
627
628.IF "$(GUI)"=="WNT"
629
630DEF3FILTER=$(SOLARENV)/inc/dummy.flt
631
632RMHACK3:=$(RM)
633
634.IF "$(DEF3CEXP)"!=""
635EXPORT_ALL_SWITCH=-A $(DEF3CEXP)
636.ENDIF
637
638.IF "$(link_always)"==""
639$(DEF3TARGETN) : \
640        $(DEF3DEPN) \
641        $(DEF3EXPORTFILE)
642.ELSE           # "$(link_always)"==""
643$(DEF3TARGETN) .PHONY :
644.ENDIF          # "$(link_always)"==""
645    @-$(RM) $@.tmpfile
646    @echo "Making:    module definition file" $(@:f)
647    @echo LIBRARY     $(EMQ)"$(SHL3TARGETN:f)$(EMQ)"                                 >$@.tmpfile
648.IF "$(COM)"!="GCC"
649    @echo HEAPSIZE    0                                             >>$@.tmpfile
650.ENDIF
651    @echo EXPORTS                                                   >>$@.tmpfile
652.IF "$(VERSIONOBJ)"!=""
653#   getversioninfo fuer alle!!
654    @echo GetVersionInfo        >>$@.tmpfile
655.ENDIF
656.IF "$(DEFLIB3NAME)"!=""
657.IF "$(COM)"=="GCC"
658    @-$(RM) $(MISC)/$(SHL3TARGET).exp
659    $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL3TARGET).exp --export-all-symbols \
660        `$(TYPE) $(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g`
661    $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL3TARGET).exp | sed '/^;/d' >>$@.tmpfile
662    @-$(RM) $(MISC)/$(SHL3TARGET).exp
663.ELSE
664.IF "$(SHL3USE_EXPORTS)"==""
665    @-$(RMHACK3) $(MISC)/$(SHL3TARGET).exp
666    @$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL3TARGET).exp $(SLB)/$(DEFLIB3NAME).lib
667    @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL3TARGET).flt $(MISC)/$(SHL3TARGET).exp              >>$@.tmpfile
668    $(COMMAND_ECHO)$(RMHACK3) $(MISC)/$(SHL3TARGET).exp
669.ELSE           # "$(SHL3USE_EXPORTS)"==""
670    @$(DUMPBIN) -DIRECTIVES  $(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL3TARGET).direct
671    @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF3FILTER) $(MISC)/$(SHL3TARGET).direct >>$@.tmpfile
672.ENDIF          # "$(SHL3USE_EXPORTS)"==""
673.ENDIF
674.ENDIF              # "$(DEFLIB3NAME)"!=""
675.IF "$(DEF3EXPORT1)"!=""
676    @echo $(DEF3EXPORT1)                                        >>$@.tmpfile
677.ENDIF
678.IF "$(DEF3EXPORT2)"!=""
679    @echo $(DEF3EXPORT2)                                        >>$@.tmpfile
680.ENDIF
681.IF "$(DEF3EXPORT3)"!=""
682    @echo $(DEF3EXPORT3)                                        >>$@.tmpfile
683.ENDIF
684.IF "$(DEF3EXPORT4)"!=""
685    @echo $(DEF3EXPORT4)                                        >>$@.tmpfile
686.ENDIF
687.IF "$(DEF3EXPORT5)"!=""
688    @echo $(DEF3EXPORT5)                                        >>$@.tmpfile
689.ENDIF
690.IF "$(DEF3EXPORT6)"!=""
691    @echo $(DEF3EXPORT6)                                        >>$@.tmpfile
692.ENDIF
693.IF "$(DEF3EXPORT7)"!=""
694    @echo $(DEF3EXPORT7)                                        >>$@.tmpfile
695.ENDIF
696.IF "$(DEF3EXPORT8)"!=""
697    @echo $(DEF3EXPORT8)                                        >>$@.tmpfile
698.ENDIF
699.IF "$(DEF3EXPORT9)"!=""
700    @echo $(DEF3EXPORT9)                                        >>$@.tmpfile
701.ENDIF
702.IF "$(DEF3EXPORT10)"!=""
703    @echo $(DEF3EXPORT10)                                       >>$@.tmpfile
704.ENDIF
705.IF "$(DEF3EXPORT11)"!=""
706    @echo $(DEF3EXPORT11)                                       >>$@.tmpfile
707.ENDIF
708.IF "$(DEF3EXPORT12)"!=""
709    @echo $(DEF3EXPORT12)                                       >>$@.tmpfile
710.ENDIF
711.IF "$(DEF3EXPORT13)"!=""
712    @echo $(DEF3EXPORT13)                                       >>$@.tmpfile
713.ENDIF
714.IF "$(DEF3EXPORT14)"!=""
715    @echo $(DEF3EXPORT14)                                       >>$@.tmpfile
716.ENDIF
717.IF "$(DEF3EXPORT15)"!=""
718    @echo $(DEF3EXPORT15)                                       >>$@.tmpfile
719.ENDIF
720.IF "$(DEF3EXPORT16)"!=""
721    @echo $(DEF3EXPORT16)                                       >>$@.tmpfile
722.ENDIF
723.IF "$(DEF3EXPORT17)"!=""
724    @echo $(DEF3EXPORT17)                                       >>$@.tmpfile
725.ENDIF
726.IF "$(DEF3EXPORT18)"!=""
727    @echo $(DEF3EXPORT18)                                       >>$@.tmpfile
728.ENDIF
729.IF "$(DEF3EXPORT19)"!=""
730    @echo $(DEF3EXPORT19)                                       >>$@.tmpfile
731.ENDIF
732.IF "$(DEF3EXPORT20)"!=""
733    @echo $(DEF3EXPORT20)                                       >>$@.tmpfile
734.ENDIF
735.IF "$(DEF3EXPORTFILE)"!=""
736.IF "$(COM)"=="GCC"
737    $(COMMAND_ECHO)$(TYPE) $(DEF3EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile
738.ELSE
739    $(COMMAND_ECHO)$(TYPE) $(DEF3EXPORTFILE) >> $@.tmpfile
740.ENDIF
741.ENDIF
742    @-$(RM) $@
743    @$(RENAME) $@.tmpfile $@
744.ENDIF          # "$(GUI)"=="WNT"
745
746.IF "$(GUI)"=="OS2"
747
748#21/02/2006 YD dll names must be 8.3, invoke fix script
749#check osl/os2/module.c/osl_loadModule()
750SHL3TARGET8=$(shell @fix_shl.cmd $(SHL3TARGETN:f))
751
752DEF3FILTER=$(SOLARENV)/inc/dummy.flt
753DEF3NAMELIST=$(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib)
754
755.IF "$(link_always)"==""
756$(DEF3TARGETN) : \
757        $(DEF3DEPN) \
758        $(DEF3EXPORTFILE)
759.ELSE           # "$(link_always)"==""
760$(DEF3TARGETN) .PHONY :
761.ENDIF          # "$(link_always)"==""
762    @+-$(RM) $@.tmpfile
763    @echo "Making:    module definition file" $(@:f)
764    @echo LIBRARY     $(SHL3TARGET8) INITINSTANCE TERMINSTANCE   >$@.tmpfile
765    @echo DATA MULTIPLE  >>$@.tmpfile
766    @echo EXPORTS                                                   >>$@.tmpfile
767.IF "$(VERSIONOBJ)"!=""
768#   getversioninfo fuer alle!!
769    @echo _GetVersionInfo       >$@.tmp_ord
770.ENDIF
771
772.IF "$(DEFLIB3NAME)"!=""
773    @+echo $(SLB)/$(DEFLIB3NAME).lib
774    @+emxexpr $(DEF3NAMELIST) | fix_exp_file >> $@.tmp_ord
775.ENDIF              # "$(DEFLIB3NAME)"!=""
776
777.IF "$(DEF3EXPORT1)"!=""
778    @echo $(DEF3EXPORT1)                                        >>$@.tmpfile
779.ENDIF
780.IF "$(DEF3EXPORT2)"!=""
781    @echo $(DEF3EXPORT2)                                        >>$@.tmpfile
782.ENDIF
783.IF "$(DEF3EXPORT3)"!=""
784    @echo $(DEF3EXPORT3)                                        >>$@.tmpfile
785.ENDIF
786.IF "$(DEF3EXPORT4)"!=""
787    @echo $(DEF3EXPORT4)                                        >>$@.tmpfile
788.ENDIF
789.IF "$(DEF3EXPORT5)"!=""
790    @echo $(DEF3EXPORT5)                                        >>$@.tmpfile
791.ENDIF
792.IF "$(DEF3EXPORT6)"!=""
793    @echo $(DEF3EXPORT6)                                        >>$@.tmpfile
794.ENDIF
795.IF "$(DEF3EXPORT7)"!=""
796    @echo $(DEF3EXPORT7)                                        >>$@.tmpfile
797.ENDIF
798.IF "$(DEF3EXPORT8)"!=""
799    @echo $(DEF3EXPORT8)                                        >>$@.tmpfile
800.ENDIF
801.IF "$(DEF3EXPORT9)"!=""
802    @echo $(DEF3EXPORT9)                                        >>$@.tmpfile
803.ENDIF
804.IF "$(DEF3EXPORT10)"!=""
805    @echo $(DEF3EXPORT10)                                       >>$@.tmpfile
806.ENDIF
807.IF "$(DEF3EXPORT11)"!=""
808    @echo $(DEF3EXPORT11)                                       >>$@.tmpfile
809.ENDIF
810.IF "$(DEF3EXPORT12)"!=""
811    @echo $(DEF3EXPORT12)                                       >>$@.tmpfile
812.ENDIF
813.IF "$(DEF3EXPORT13)"!=""
814    @echo $(DEF3EXPORT13)                                       >>$@.tmpfile
815.ENDIF
816.IF "$(DEF3EXPORT14)"!=""
817    @echo $(DEF3EXPORT14)                                       >>$@.tmpfile
818.ENDIF
819.IF "$(DEF3EXPORT15)"!=""
820    @echo $(DEF3EXPORT15)                                       >>$@.tmpfile
821.ENDIF
822.IF "$(DEF3EXPORT16)"!=""
823    @echo $(DEF3EXPORT16)                                       >>$@.tmpfile
824.ENDIF
825.IF "$(DEF3EXPORT17)"!=""
826    @echo $(DEF3EXPORT17)                                       >>$@.tmpfile
827.ENDIF
828.IF "$(DEF3EXPORT18)"!=""
829    @echo $(DEF3EXPORT18)                                       >>$@.tmpfile
830.ENDIF
831.IF "$(DEF3EXPORT19)"!=""
832    @echo $(DEF3EXPORT19)                                       >>$@.tmpfile
833.ENDIF
834.IF "$(DEF3EXPORT20)"!=""
835    @echo $(DEF3EXPORT20)                                       >>$@.tmpfile
836.ENDIF
837.IF "$(DEF3EXPORTFILE)"!=""
838    @fix_def_file < $(DEF3EXPORTFILE) >> $@.tmp_ord
839.ENDIF
840    @sort < $@.tmp_ord | uniq > $@.exptmpfile
841    @fix_def_ord < $@.exptmpfile >> $@.tmpfile
842    @+-$(RM) $@
843    $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@
844    @+-$(RM) $@.tmp_ord
845    @+-$(RM) $@.exptmpfile
846    $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL3IMPLIBN:s/.lib/.a/) $@
847    $(COMMAND_ECHO)+emxomf -o $(SHL3IMPLIBN) $(SHL3IMPLIBN:s/.lib/.a/)
848
849.ENDIF          # "$(GUI)"=="OS2"
850
851.IF "$(GUI)"=="UNX"
852$(DEF3TARGETN): \
853        $(DEF3DEPN) \
854        $(DEF3EXPORTFILE)
855    @echo just a dummy for UNIX > $@
856.ENDIF
857.ENDIF          # "$(DEF3TARGETN)"!=""
858
859
860# Anweisungen fuer das Linken
861# unroll begin
862
863.IF "$(DEF4TARGETN)"!=""
864
865#to make intuitiv naming work
866.IF "$(DEF4LIBNAME)"!=""
867DEFLIB4NAME*=$(DEF4LIBNAME)
868.ENDIF          # "$(DEF4LIBNAME)"!=""
869
870.IF "$(DEFLIB4NAME)"!=""
871DEF4DEPN+=$(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib)
872.ENDIF
873
874.IF "$(SHL4VERSIONMAP)"!=""
875.IF "$(DEF4EXPORTFILE)"==""
876.IF "$(GUI)"=="WNT"
877DEF4EXPORTFILE=$(MISC)/$(SHL4VERSIONMAP:b)_$(SHL4TARGET).dxp
878.IF "$(COM)"=="GCC"
879$(DEF4EXPORTFILE) : $(SHL4OBJS) $(SHL4LIBS)
880.ENDIF # .IF "$(COM)"=="GCC"
881
882$(DEF4EXPORTFILE) : $(SHL4VERSIONMAP)
883    $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
884.IF "$(COM)"=="GCC"
885    $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols
886    $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp
887# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
888# Extract RTTI symbols from all the objects that will be used to build a shared library
889    $(COMMAND_ECHO)nm -gP $(SHL4OBJS) \
890        `$(TYPE) /dev/null $(foreach,j,$(SHL4LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \
891        | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
892# overwrite the map file generate into the local output tree with the generated
893# exported symbols list
894    $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@
895.ENDIF # .IF "$(COM)"=="GCC"
896
897.ENDIF          # "$(GUI)"=="WNT"
898
899.IF "$(GUI)"=="OS2"
900DEF4EXPORTFILE=$(MISC)/$(SHL4VERSIONMAP:b)_$(SHL4TARGET).dxp
901$(DEF4EXPORTFILE) : $(SHL4VERSIONMAP)
902    $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
903.ENDIF          # "$(GUI)"=="OS2"
904
905.ENDIF          # "$(DEF4EXPORTFILE)"==""
906.ENDIF          # "$(SHL4VERSIONMAP)"!=""
907
908.IF "$(GUI)"=="WNT"
909
910DEF4FILTER=$(SOLARENV)/inc/dummy.flt
911
912RMHACK4:=$(RM)
913
914.IF "$(DEF4CEXP)"!=""
915EXPORT_ALL_SWITCH=-A $(DEF4CEXP)
916.ENDIF
917
918.IF "$(link_always)"==""
919$(DEF4TARGETN) : \
920        $(DEF4DEPN) \
921        $(DEF4EXPORTFILE)
922.ELSE           # "$(link_always)"==""
923$(DEF4TARGETN) .PHONY :
924.ENDIF          # "$(link_always)"==""
925    @-$(RM) $@.tmpfile
926    @echo "Making:    module definition file" $(@:f)
927    @echo LIBRARY     $(EMQ)"$(SHL4TARGETN:f)$(EMQ)"                                 >$@.tmpfile
928.IF "$(COM)"!="GCC"
929    @echo HEAPSIZE    0                                             >>$@.tmpfile
930.ENDIF
931    @echo EXPORTS                                                   >>$@.tmpfile
932.IF "$(VERSIONOBJ)"!=""
933#   getversioninfo fuer alle!!
934    @echo GetVersionInfo        >>$@.tmpfile
935.ENDIF
936.IF "$(DEFLIB4NAME)"!=""
937.IF "$(COM)"=="GCC"
938    @-$(RM) $(MISC)/$(SHL4TARGET).exp
939    $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL4TARGET).exp --export-all-symbols \
940        `$(TYPE) $(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g`
941    $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL4TARGET).exp | sed '/^;/d' >>$@.tmpfile
942    @-$(RM) $(MISC)/$(SHL4TARGET).exp
943.ELSE
944.IF "$(SHL4USE_EXPORTS)"==""
945    @-$(RMHACK4) $(MISC)/$(SHL4TARGET).exp
946    @$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL4TARGET).exp $(SLB)/$(DEFLIB4NAME).lib
947    @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL4TARGET).flt $(MISC)/$(SHL4TARGET).exp              >>$@.tmpfile
948    $(COMMAND_ECHO)$(RMHACK4) $(MISC)/$(SHL4TARGET).exp
949.ELSE           # "$(SHL4USE_EXPORTS)"==""
950    @$(DUMPBIN) -DIRECTIVES  $(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL4TARGET).direct
951    @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF4FILTER) $(MISC)/$(SHL4TARGET).direct >>$@.tmpfile
952.ENDIF          # "$(SHL4USE_EXPORTS)"==""
953.ENDIF
954.ENDIF              # "$(DEFLIB4NAME)"!=""
955.IF "$(DEF4EXPORT1)"!=""
956    @echo $(DEF4EXPORT1)                                        >>$@.tmpfile
957.ENDIF
958.IF "$(DEF4EXPORT2)"!=""
959    @echo $(DEF4EXPORT2)                                        >>$@.tmpfile
960.ENDIF
961.IF "$(DEF4EXPORT3)"!=""
962    @echo $(DEF4EXPORT3)                                        >>$@.tmpfile
963.ENDIF
964.IF "$(DEF4EXPORT4)"!=""
965    @echo $(DEF4EXPORT4)                                        >>$@.tmpfile
966.ENDIF
967.IF "$(DEF4EXPORT5)"!=""
968    @echo $(DEF4EXPORT5)                                        >>$@.tmpfile
969.ENDIF
970.IF "$(DEF4EXPORT6)"!=""
971    @echo $(DEF4EXPORT6)                                        >>$@.tmpfile
972.ENDIF
973.IF "$(DEF4EXPORT7)"!=""
974    @echo $(DEF4EXPORT7)                                        >>$@.tmpfile
975.ENDIF
976.IF "$(DEF4EXPORT8)"!=""
977    @echo $(DEF4EXPORT8)                                        >>$@.tmpfile
978.ENDIF
979.IF "$(DEF4EXPORT9)"!=""
980    @echo $(DEF4EXPORT9)                                        >>$@.tmpfile
981.ENDIF
982.IF "$(DEF4EXPORT10)"!=""
983    @echo $(DEF4EXPORT10)                                       >>$@.tmpfile
984.ENDIF
985.IF "$(DEF4EXPORT11)"!=""
986    @echo $(DEF4EXPORT11)                                       >>$@.tmpfile
987.ENDIF
988.IF "$(DEF4EXPORT12)"!=""
989    @echo $(DEF4EXPORT12)                                       >>$@.tmpfile
990.ENDIF
991.IF "$(DEF4EXPORT13)"!=""
992    @echo $(DEF4EXPORT13)                                       >>$@.tmpfile
993.ENDIF
994.IF "$(DEF4EXPORT14)"!=""
995    @echo $(DEF4EXPORT14)                                       >>$@.tmpfile
996.ENDIF
997.IF "$(DEF4EXPORT15)"!=""
998    @echo $(DEF4EXPORT15)                                       >>$@.tmpfile
999.ENDIF
1000.IF "$(DEF4EXPORT16)"!=""
1001    @echo $(DEF4EXPORT16)                                       >>$@.tmpfile
1002.ENDIF
1003.IF "$(DEF4EXPORT17)"!=""
1004    @echo $(DEF4EXPORT17)                                       >>$@.tmpfile
1005.ENDIF
1006.IF "$(DEF4EXPORT18)"!=""
1007    @echo $(DEF4EXPORT18)                                       >>$@.tmpfile
1008.ENDIF
1009.IF "$(DEF4EXPORT19)"!=""
1010    @echo $(DEF4EXPORT19)                                       >>$@.tmpfile
1011.ENDIF
1012.IF "$(DEF4EXPORT20)"!=""
1013    @echo $(DEF4EXPORT20)                                       >>$@.tmpfile
1014.ENDIF
1015.IF "$(DEF4EXPORTFILE)"!=""
1016.IF "$(COM)"=="GCC"
1017    $(COMMAND_ECHO)$(TYPE) $(DEF4EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile
1018.ELSE
1019    $(COMMAND_ECHO)$(TYPE) $(DEF4EXPORTFILE) >> $@.tmpfile
1020.ENDIF
1021.ENDIF
1022    @-$(RM) $@
1023    @$(RENAME) $@.tmpfile $@
1024.ENDIF          # "$(GUI)"=="WNT"
1025
1026.IF "$(GUI)"=="OS2"
1027
1028#21/02/2006 YD dll names must be 8.3, invoke fix script
1029#check osl/os2/module.c/osl_loadModule()
1030SHL4TARGET8=$(shell @fix_shl.cmd $(SHL4TARGETN:f))
1031
1032DEF4FILTER=$(SOLARENV)/inc/dummy.flt
1033DEF4NAMELIST=$(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib)
1034
1035.IF "$(link_always)"==""
1036$(DEF4TARGETN) : \
1037        $(DEF4DEPN) \
1038        $(DEF4EXPORTFILE)
1039.ELSE           # "$(link_always)"==""
1040$(DEF4TARGETN) .PHONY :
1041.ENDIF          # "$(link_always)"==""
1042    @+-$(RM) $@.tmpfile
1043    @echo "Making:    module definition file" $(@:f)
1044    @echo LIBRARY     $(SHL4TARGET8) INITINSTANCE TERMINSTANCE   >$@.tmpfile
1045    @echo DATA MULTIPLE  >>$@.tmpfile
1046    @echo EXPORTS                                                   >>$@.tmpfile
1047.IF "$(VERSIONOBJ)"!=""
1048#   getversioninfo fuer alle!!
1049    @echo _GetVersionInfo       >$@.tmp_ord
1050.ENDIF
1051
1052.IF "$(DEFLIB4NAME)"!=""
1053    @+echo $(SLB)/$(DEFLIB4NAME).lib
1054    @+emxexpr $(DEF4NAMELIST) | fix_exp_file >> $@.tmp_ord
1055.ENDIF              # "$(DEFLIB4NAME)"!=""
1056
1057.IF "$(DEF4EXPORT1)"!=""
1058    @echo $(DEF4EXPORT1)                                        >>$@.tmpfile
1059.ENDIF
1060.IF "$(DEF4EXPORT2)"!=""
1061    @echo $(DEF4EXPORT2)                                        >>$@.tmpfile
1062.ENDIF
1063.IF "$(DEF4EXPORT3)"!=""
1064    @echo $(DEF4EXPORT3)                                        >>$@.tmpfile
1065.ENDIF
1066.IF "$(DEF4EXPORT4)"!=""
1067    @echo $(DEF4EXPORT4)                                        >>$@.tmpfile
1068.ENDIF
1069.IF "$(DEF4EXPORT5)"!=""
1070    @echo $(DEF4EXPORT5)                                        >>$@.tmpfile
1071.ENDIF
1072.IF "$(DEF4EXPORT6)"!=""
1073    @echo $(DEF4EXPORT6)                                        >>$@.tmpfile
1074.ENDIF
1075.IF "$(DEF4EXPORT7)"!=""
1076    @echo $(DEF4EXPORT7)                                        >>$@.tmpfile
1077.ENDIF
1078.IF "$(DEF4EXPORT8)"!=""
1079    @echo $(DEF4EXPORT8)                                        >>$@.tmpfile
1080.ENDIF
1081.IF "$(DEF4EXPORT9)"!=""
1082    @echo $(DEF4EXPORT9)                                        >>$@.tmpfile
1083.ENDIF
1084.IF "$(DEF4EXPORT10)"!=""
1085    @echo $(DEF4EXPORT10)                                       >>$@.tmpfile
1086.ENDIF
1087.IF "$(DEF4EXPORT11)"!=""
1088    @echo $(DEF4EXPORT11)                                       >>$@.tmpfile
1089.ENDIF
1090.IF "$(DEF4EXPORT12)"!=""
1091    @echo $(DEF4EXPORT12)                                       >>$@.tmpfile
1092.ENDIF
1093.IF "$(DEF4EXPORT13)"!=""
1094    @echo $(DEF4EXPORT13)                                       >>$@.tmpfile
1095.ENDIF
1096.IF "$(DEF4EXPORT14)"!=""
1097    @echo $(DEF4EXPORT14)                                       >>$@.tmpfile
1098.ENDIF
1099.IF "$(DEF4EXPORT15)"!=""
1100    @echo $(DEF4EXPORT15)                                       >>$@.tmpfile
1101.ENDIF
1102.IF "$(DEF4EXPORT16)"!=""
1103    @echo $(DEF4EXPORT16)                                       >>$@.tmpfile
1104.ENDIF
1105.IF "$(DEF4EXPORT17)"!=""
1106    @echo $(DEF4EXPORT17)                                       >>$@.tmpfile
1107.ENDIF
1108.IF "$(DEF4EXPORT18)"!=""
1109    @echo $(DEF4EXPORT18)                                       >>$@.tmpfile
1110.ENDIF
1111.IF "$(DEF4EXPORT19)"!=""
1112    @echo $(DEF4EXPORT19)                                       >>$@.tmpfile
1113.ENDIF
1114.IF "$(DEF4EXPORT20)"!=""
1115    @echo $(DEF4EXPORT20)                                       >>$@.tmpfile
1116.ENDIF
1117.IF "$(DEF4EXPORTFILE)"!=""
1118    @fix_def_file < $(DEF4EXPORTFILE) >> $@.tmp_ord
1119.ENDIF
1120    @sort < $@.tmp_ord | uniq > $@.exptmpfile
1121    @fix_def_ord < $@.exptmpfile >> $@.tmpfile
1122    @+-$(RM) $@
1123    $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@
1124    @+-$(RM) $@.tmp_ord
1125    @+-$(RM) $@.exptmpfile
1126    $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL4IMPLIBN:s/.lib/.a/) $@
1127    $(COMMAND_ECHO)+emxomf -o $(SHL4IMPLIBN) $(SHL4IMPLIBN:s/.lib/.a/)
1128
1129.ENDIF          # "$(GUI)"=="OS2"
1130
1131.IF "$(GUI)"=="UNX"
1132$(DEF4TARGETN): \
1133        $(DEF4DEPN) \
1134        $(DEF4EXPORTFILE)
1135    @echo just a dummy for UNIX > $@
1136.ENDIF
1137.ENDIF          # "$(DEF4TARGETN)"!=""
1138
1139
1140# Anweisungen fuer das Linken
1141# unroll begin
1142
1143.IF "$(DEF5TARGETN)"!=""
1144
1145#to make intuitiv naming work
1146.IF "$(DEF5LIBNAME)"!=""
1147DEFLIB5NAME*=$(DEF5LIBNAME)
1148.ENDIF          # "$(DEF5LIBNAME)"!=""
1149
1150.IF "$(DEFLIB5NAME)"!=""
1151DEF5DEPN+=$(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib)
1152.ENDIF
1153
1154.IF "$(SHL5VERSIONMAP)"!=""
1155.IF "$(DEF5EXPORTFILE)"==""
1156.IF "$(GUI)"=="WNT"
1157DEF5EXPORTFILE=$(MISC)/$(SHL5VERSIONMAP:b)_$(SHL5TARGET).dxp
1158.IF "$(COM)"=="GCC"
1159$(DEF5EXPORTFILE) : $(SHL5OBJS) $(SHL5LIBS)
1160.ENDIF # .IF "$(COM)"=="GCC"
1161
1162$(DEF5EXPORTFILE) : $(SHL5VERSIONMAP)
1163    $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
1164.IF "$(COM)"=="GCC"
1165    $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols
1166    $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp
1167# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
1168# Extract RTTI symbols from all the objects that will be used to build a shared library
1169    $(COMMAND_ECHO)nm -gP $(SHL5OBJS) \
1170        `$(TYPE) /dev/null $(foreach,j,$(SHL5LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \
1171        | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
1172# overwrite the map file generate into the local output tree with the generated
1173# exported symbols list
1174    $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@
1175.ENDIF # .IF "$(COM)"=="GCC"
1176
1177.ENDIF          # "$(GUI)"=="WNT"
1178
1179.IF "$(GUI)"=="OS2"
1180DEF5EXPORTFILE=$(MISC)/$(SHL5VERSIONMAP:b)_$(SHL5TARGET).dxp
1181$(DEF5EXPORTFILE) : $(SHL5VERSIONMAP)
1182    $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
1183.ENDIF          # "$(GUI)"=="OS2"
1184
1185.ENDIF          # "$(DEF5EXPORTFILE)"==""
1186.ENDIF          # "$(SHL5VERSIONMAP)"!=""
1187
1188.IF "$(GUI)"=="WNT"
1189
1190DEF5FILTER=$(SOLARENV)/inc/dummy.flt
1191
1192RMHACK5:=$(RM)
1193
1194.IF "$(DEF5CEXP)"!=""
1195EXPORT_ALL_SWITCH=-A $(DEF5CEXP)
1196.ENDIF
1197
1198.IF "$(link_always)"==""
1199$(DEF5TARGETN) : \
1200        $(DEF5DEPN) \
1201        $(DEF5EXPORTFILE)
1202.ELSE           # "$(link_always)"==""
1203$(DEF5TARGETN) .PHONY :
1204.ENDIF          # "$(link_always)"==""
1205    @-$(RM) $@.tmpfile
1206    @echo "Making:    module definition file" $(@:f)
1207    @echo LIBRARY     $(EMQ)"$(SHL5TARGETN:f)$(EMQ)"                                 >$@.tmpfile
1208.IF "$(COM)"!="GCC"
1209    @echo HEAPSIZE    0                                             >>$@.tmpfile
1210.ENDIF
1211    @echo EXPORTS                                                   >>$@.tmpfile
1212.IF "$(VERSIONOBJ)"!=""
1213#   getversioninfo fuer alle!!
1214    @echo GetVersionInfo        >>$@.tmpfile
1215.ENDIF
1216.IF "$(DEFLIB5NAME)"!=""
1217.IF "$(COM)"=="GCC"
1218    @-$(RM) $(MISC)/$(SHL5TARGET).exp
1219    $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL5TARGET).exp --export-all-symbols \
1220        `$(TYPE) $(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g`
1221    $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL5TARGET).exp | sed '/^;/d' >>$@.tmpfile
1222    @-$(RM) $(MISC)/$(SHL5TARGET).exp
1223.ELSE
1224.IF "$(SHL5USE_EXPORTS)"==""
1225    @-$(RMHACK5) $(MISC)/$(SHL5TARGET).exp
1226    @$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL5TARGET).exp $(SLB)/$(DEFLIB5NAME).lib
1227    @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL5TARGET).flt $(MISC)/$(SHL5TARGET).exp              >>$@.tmpfile
1228    $(COMMAND_ECHO)$(RMHACK5) $(MISC)/$(SHL5TARGET).exp
1229.ELSE           # "$(SHL5USE_EXPORTS)"==""
1230    @$(DUMPBIN) -DIRECTIVES  $(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL5TARGET).direct
1231    @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF5FILTER) $(MISC)/$(SHL5TARGET).direct >>$@.tmpfile
1232.ENDIF          # "$(SHL5USE_EXPORTS)"==""
1233.ENDIF
1234.ENDIF              # "$(DEFLIB5NAME)"!=""
1235.IF "$(DEF5EXPORT1)"!=""
1236    @echo $(DEF5EXPORT1)                                        >>$@.tmpfile
1237.ENDIF
1238.IF "$(DEF5EXPORT2)"!=""
1239    @echo $(DEF5EXPORT2)                                        >>$@.tmpfile
1240.ENDIF
1241.IF "$(DEF5EXPORT3)"!=""
1242    @echo $(DEF5EXPORT3)                                        >>$@.tmpfile
1243.ENDIF
1244.IF "$(DEF5EXPORT4)"!=""
1245    @echo $(DEF5EXPORT4)                                        >>$@.tmpfile
1246.ENDIF
1247.IF "$(DEF5EXPORT5)"!=""
1248    @echo $(DEF5EXPORT5)                                        >>$@.tmpfile
1249.ENDIF
1250.IF "$(DEF5EXPORT6)"!=""
1251    @echo $(DEF5EXPORT6)                                        >>$@.tmpfile
1252.ENDIF
1253.IF "$(DEF5EXPORT7)"!=""
1254    @echo $(DEF5EXPORT7)                                        >>$@.tmpfile
1255.ENDIF
1256.IF "$(DEF5EXPORT8)"!=""
1257    @echo $(DEF5EXPORT8)                                        >>$@.tmpfile
1258.ENDIF
1259.IF "$(DEF5EXPORT9)"!=""
1260    @echo $(DEF5EXPORT9)                                        >>$@.tmpfile
1261.ENDIF
1262.IF "$(DEF5EXPORT10)"!=""
1263    @echo $(DEF5EXPORT10)                                       >>$@.tmpfile
1264.ENDIF
1265.IF "$(DEF5EXPORT11)"!=""
1266    @echo $(DEF5EXPORT11)                                       >>$@.tmpfile
1267.ENDIF
1268.IF "$(DEF5EXPORT12)"!=""
1269    @echo $(DEF5EXPORT12)                                       >>$@.tmpfile
1270.ENDIF
1271.IF "$(DEF5EXPORT13)"!=""
1272    @echo $(DEF5EXPORT13)                                       >>$@.tmpfile
1273.ENDIF
1274.IF "$(DEF5EXPORT14)"!=""
1275    @echo $(DEF5EXPORT14)                                       >>$@.tmpfile
1276.ENDIF
1277.IF "$(DEF5EXPORT15)"!=""
1278    @echo $(DEF5EXPORT15)                                       >>$@.tmpfile
1279.ENDIF
1280.IF "$(DEF5EXPORT16)"!=""
1281    @echo $(DEF5EXPORT16)                                       >>$@.tmpfile
1282.ENDIF
1283.IF "$(DEF5EXPORT17)"!=""
1284    @echo $(DEF5EXPORT17)                                       >>$@.tmpfile
1285.ENDIF
1286.IF "$(DEF5EXPORT18)"!=""
1287    @echo $(DEF5EXPORT18)                                       >>$@.tmpfile
1288.ENDIF
1289.IF "$(DEF5EXPORT19)"!=""
1290    @echo $(DEF5EXPORT19)                                       >>$@.tmpfile
1291.ENDIF
1292.IF "$(DEF5EXPORT20)"!=""
1293    @echo $(DEF5EXPORT20)                                       >>$@.tmpfile
1294.ENDIF
1295.IF "$(DEF5EXPORTFILE)"!=""
1296.IF "$(COM)"=="GCC"
1297    $(COMMAND_ECHO)$(TYPE) $(DEF5EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile
1298.ELSE
1299    $(COMMAND_ECHO)$(TYPE) $(DEF5EXPORTFILE) >> $@.tmpfile
1300.ENDIF
1301.ENDIF
1302    @-$(RM) $@
1303    @$(RENAME) $@.tmpfile $@
1304.ENDIF          # "$(GUI)"=="WNT"
1305
1306.IF "$(GUI)"=="OS2"
1307
1308#21/02/2006 YD dll names must be 8.3, invoke fix script
1309#check osl/os2/module.c/osl_loadModule()
1310SHL5TARGET8=$(shell @fix_shl.cmd $(SHL5TARGETN:f))
1311
1312DEF5FILTER=$(SOLARENV)/inc/dummy.flt
1313DEF5NAMELIST=$(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib)
1314
1315.IF "$(link_always)"==""
1316$(DEF5TARGETN) : \
1317        $(DEF5DEPN) \
1318        $(DEF5EXPORTFILE)
1319.ELSE           # "$(link_always)"==""
1320$(DEF5TARGETN) .PHONY :
1321.ENDIF          # "$(link_always)"==""
1322    @+-$(RM) $@.tmpfile
1323    @echo "Making:    module definition file" $(@:f)
1324    @echo LIBRARY     $(SHL5TARGET8) INITINSTANCE TERMINSTANCE   >$@.tmpfile
1325    @echo DATA MULTIPLE  >>$@.tmpfile
1326    @echo EXPORTS                                                   >>$@.tmpfile
1327.IF "$(VERSIONOBJ)"!=""
1328#   getversioninfo fuer alle!!
1329    @echo _GetVersionInfo       >$@.tmp_ord
1330.ENDIF
1331
1332.IF "$(DEFLIB5NAME)"!=""
1333    @+echo $(SLB)/$(DEFLIB5NAME).lib
1334    @+emxexpr $(DEF5NAMELIST) | fix_exp_file >> $@.tmp_ord
1335.ENDIF              # "$(DEFLIB5NAME)"!=""
1336
1337.IF "$(DEF5EXPORT1)"!=""
1338    @echo $(DEF5EXPORT1)                                        >>$@.tmpfile
1339.ENDIF
1340.IF "$(DEF5EXPORT2)"!=""
1341    @echo $(DEF5EXPORT2)                                        >>$@.tmpfile
1342.ENDIF
1343.IF "$(DEF5EXPORT3)"!=""
1344    @echo $(DEF5EXPORT3)                                        >>$@.tmpfile
1345.ENDIF
1346.IF "$(DEF5EXPORT4)"!=""
1347    @echo $(DEF5EXPORT4)                                        >>$@.tmpfile
1348.ENDIF
1349.IF "$(DEF5EXPORT5)"!=""
1350    @echo $(DEF5EXPORT5)                                        >>$@.tmpfile
1351.ENDIF
1352.IF "$(DEF5EXPORT6)"!=""
1353    @echo $(DEF5EXPORT6)                                        >>$@.tmpfile
1354.ENDIF
1355.IF "$(DEF5EXPORT7)"!=""
1356    @echo $(DEF5EXPORT7)                                        >>$@.tmpfile
1357.ENDIF
1358.IF "$(DEF5EXPORT8)"!=""
1359    @echo $(DEF5EXPORT8)                                        >>$@.tmpfile
1360.ENDIF
1361.IF "$(DEF5EXPORT9)"!=""
1362    @echo $(DEF5EXPORT9)                                        >>$@.tmpfile
1363.ENDIF
1364.IF "$(DEF5EXPORT10)"!=""
1365    @echo $(DEF5EXPORT10)                                       >>$@.tmpfile
1366.ENDIF
1367.IF "$(DEF5EXPORT11)"!=""
1368    @echo $(DEF5EXPORT11)                                       >>$@.tmpfile
1369.ENDIF
1370.IF "$(DEF5EXPORT12)"!=""
1371    @echo $(DEF5EXPORT12)                                       >>$@.tmpfile
1372.ENDIF
1373.IF "$(DEF5EXPORT13)"!=""
1374    @echo $(DEF5EXPORT13)                                       >>$@.tmpfile
1375.ENDIF
1376.IF "$(DEF5EXPORT14)"!=""
1377    @echo $(DEF5EXPORT14)                                       >>$@.tmpfile
1378.ENDIF
1379.IF "$(DEF5EXPORT15)"!=""
1380    @echo $(DEF5EXPORT15)                                       >>$@.tmpfile
1381.ENDIF
1382.IF "$(DEF5EXPORT16)"!=""
1383    @echo $(DEF5EXPORT16)                                       >>$@.tmpfile
1384.ENDIF
1385.IF "$(DEF5EXPORT17)"!=""
1386    @echo $(DEF5EXPORT17)                                       >>$@.tmpfile
1387.ENDIF
1388.IF "$(DEF5EXPORT18)"!=""
1389    @echo $(DEF5EXPORT18)                                       >>$@.tmpfile
1390.ENDIF
1391.IF "$(DEF5EXPORT19)"!=""
1392    @echo $(DEF5EXPORT19)                                       >>$@.tmpfile
1393.ENDIF
1394.IF "$(DEF5EXPORT20)"!=""
1395    @echo $(DEF5EXPORT20)                                       >>$@.tmpfile
1396.ENDIF
1397.IF "$(DEF5EXPORTFILE)"!=""
1398    @fix_def_file < $(DEF5EXPORTFILE) >> $@.tmp_ord
1399.ENDIF
1400    @sort < $@.tmp_ord | uniq > $@.exptmpfile
1401    @fix_def_ord < $@.exptmpfile >> $@.tmpfile
1402    @+-$(RM) $@
1403    $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@
1404    @+-$(RM) $@.tmp_ord
1405    @+-$(RM) $@.exptmpfile
1406    $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL5IMPLIBN:s/.lib/.a/) $@
1407    $(COMMAND_ECHO)+emxomf -o $(SHL5IMPLIBN) $(SHL5IMPLIBN:s/.lib/.a/)
1408
1409.ENDIF          # "$(GUI)"=="OS2"
1410
1411.IF "$(GUI)"=="UNX"
1412$(DEF5TARGETN): \
1413        $(DEF5DEPN) \
1414        $(DEF5EXPORTFILE)
1415    @echo just a dummy for UNIX > $@
1416.ENDIF
1417.ENDIF          # "$(DEF5TARGETN)"!=""
1418
1419
1420# Anweisungen fuer das Linken
1421# unroll begin
1422
1423.IF "$(DEF6TARGETN)"!=""
1424
1425#to make intuitiv naming work
1426.IF "$(DEF6LIBNAME)"!=""
1427DEFLIB6NAME*=$(DEF6LIBNAME)
1428.ENDIF          # "$(DEF6LIBNAME)"!=""
1429
1430.IF "$(DEFLIB6NAME)"!=""
1431DEF6DEPN+=$(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib)
1432.ENDIF
1433
1434.IF "$(SHL6VERSIONMAP)"!=""
1435.IF "$(DEF6EXPORTFILE)"==""
1436.IF "$(GUI)"=="WNT"
1437DEF6EXPORTFILE=$(MISC)/$(SHL6VERSIONMAP:b)_$(SHL6TARGET).dxp
1438.IF "$(COM)"=="GCC"
1439$(DEF6EXPORTFILE) : $(SHL6OBJS) $(SHL6LIBS)
1440.ENDIF # .IF "$(COM)"=="GCC"
1441
1442$(DEF6EXPORTFILE) : $(SHL6VERSIONMAP)
1443    $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
1444.IF "$(COM)"=="GCC"
1445    $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols
1446    $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp
1447# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
1448# Extract RTTI symbols from all the objects that will be used to build a shared library
1449    $(COMMAND_ECHO)nm -gP $(SHL6OBJS) \
1450        `$(TYPE) /dev/null $(foreach,j,$(SHL6LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \
1451        | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
1452# overwrite the map file generate into the local output tree with the generated
1453# exported symbols list
1454    $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@
1455.ENDIF # .IF "$(COM)"=="GCC"
1456
1457.ENDIF          # "$(GUI)"=="WNT"
1458
1459.IF "$(GUI)"=="OS2"
1460DEF6EXPORTFILE=$(MISC)/$(SHL6VERSIONMAP:b)_$(SHL6TARGET).dxp
1461$(DEF6EXPORTFILE) : $(SHL6VERSIONMAP)
1462    $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
1463.ENDIF          # "$(GUI)"=="OS2"
1464
1465.ENDIF          # "$(DEF6EXPORTFILE)"==""
1466.ENDIF          # "$(SHL6VERSIONMAP)"!=""
1467
1468.IF "$(GUI)"=="WNT"
1469
1470DEF6FILTER=$(SOLARENV)/inc/dummy.flt
1471
1472RMHACK6:=$(RM)
1473
1474.IF "$(DEF6CEXP)"!=""
1475EXPORT_ALL_SWITCH=-A $(DEF6CEXP)
1476.ENDIF
1477
1478.IF "$(link_always)"==""
1479$(DEF6TARGETN) : \
1480        $(DEF6DEPN) \
1481        $(DEF6EXPORTFILE)
1482.ELSE           # "$(link_always)"==""
1483$(DEF6TARGETN) .PHONY :
1484.ENDIF          # "$(link_always)"==""
1485    @-$(RM) $@.tmpfile
1486    @echo "Making:    module definition file" $(@:f)
1487    @echo LIBRARY     $(EMQ)"$(SHL6TARGETN:f)$(EMQ)"                                 >$@.tmpfile
1488.IF "$(COM)"!="GCC"
1489    @echo HEAPSIZE    0                                             >>$@.tmpfile
1490.ENDIF
1491    @echo EXPORTS                                                   >>$@.tmpfile
1492.IF "$(VERSIONOBJ)"!=""
1493#   getversioninfo fuer alle!!
1494    @echo GetVersionInfo        >>$@.tmpfile
1495.ENDIF
1496.IF "$(DEFLIB6NAME)"!=""
1497.IF "$(COM)"=="GCC"
1498    @-$(RM) $(MISC)/$(SHL6TARGET).exp
1499    $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL6TARGET).exp --export-all-symbols \
1500        `$(TYPE) $(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g`
1501    $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL6TARGET).exp | sed '/^;/d' >>$@.tmpfile
1502    @-$(RM) $(MISC)/$(SHL6TARGET).exp
1503.ELSE
1504.IF "$(SHL6USE_EXPORTS)"==""
1505    @-$(RMHACK6) $(MISC)/$(SHL6TARGET).exp
1506    @$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL6TARGET).exp $(SLB)/$(DEFLIB6NAME).lib
1507    @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL6TARGET).flt $(MISC)/$(SHL6TARGET).exp              >>$@.tmpfile
1508    $(COMMAND_ECHO)$(RMHACK6) $(MISC)/$(SHL6TARGET).exp
1509.ELSE           # "$(SHL6USE_EXPORTS)"==""
1510    @$(DUMPBIN) -DIRECTIVES  $(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL6TARGET).direct
1511    @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF6FILTER) $(MISC)/$(SHL6TARGET).direct >>$@.tmpfile
1512.ENDIF          # "$(SHL6USE_EXPORTS)"==""
1513.ENDIF
1514.ENDIF              # "$(DEFLIB6NAME)"!=""
1515.IF "$(DEF6EXPORT1)"!=""
1516    @echo $(DEF6EXPORT1)                                        >>$@.tmpfile
1517.ENDIF
1518.IF "$(DEF6EXPORT2)"!=""
1519    @echo $(DEF6EXPORT2)                                        >>$@.tmpfile
1520.ENDIF
1521.IF "$(DEF6EXPORT3)"!=""
1522    @echo $(DEF6EXPORT3)                                        >>$@.tmpfile
1523.ENDIF
1524.IF "$(DEF6EXPORT4)"!=""
1525    @echo $(DEF6EXPORT4)                                        >>$@.tmpfile
1526.ENDIF
1527.IF "$(DEF6EXPORT5)"!=""
1528    @echo $(DEF6EXPORT5)                                        >>$@.tmpfile
1529.ENDIF
1530.IF "$(DEF6EXPORT6)"!=""
1531    @echo $(DEF6EXPORT6)                                        >>$@.tmpfile
1532.ENDIF
1533.IF "$(DEF6EXPORT7)"!=""
1534    @echo $(DEF6EXPORT7)                                        >>$@.tmpfile
1535.ENDIF
1536.IF "$(DEF6EXPORT8)"!=""
1537    @echo $(DEF6EXPORT8)                                        >>$@.tmpfile
1538.ENDIF
1539.IF "$(DEF6EXPORT9)"!=""
1540    @echo $(DEF6EXPORT9)                                        >>$@.tmpfile
1541.ENDIF
1542.IF "$(DEF6EXPORT10)"!=""
1543    @echo $(DEF6EXPORT10)                                       >>$@.tmpfile
1544.ENDIF
1545.IF "$(DEF6EXPORT11)"!=""
1546    @echo $(DEF6EXPORT11)                                       >>$@.tmpfile
1547.ENDIF
1548.IF "$(DEF6EXPORT12)"!=""
1549    @echo $(DEF6EXPORT12)                                       >>$@.tmpfile
1550.ENDIF
1551.IF "$(DEF6EXPORT13)"!=""
1552    @echo $(DEF6EXPORT13)                                       >>$@.tmpfile
1553.ENDIF
1554.IF "$(DEF6EXPORT14)"!=""
1555    @echo $(DEF6EXPORT14)                                       >>$@.tmpfile
1556.ENDIF
1557.IF "$(DEF6EXPORT15)"!=""
1558    @echo $(DEF6EXPORT15)                                       >>$@.tmpfile
1559.ENDIF
1560.IF "$(DEF6EXPORT16)"!=""
1561    @echo $(DEF6EXPORT16)                                       >>$@.tmpfile
1562.ENDIF
1563.IF "$(DEF6EXPORT17)"!=""
1564    @echo $(DEF6EXPORT17)                                       >>$@.tmpfile
1565.ENDIF
1566.IF "$(DEF6EXPORT18)"!=""
1567    @echo $(DEF6EXPORT18)                                       >>$@.tmpfile
1568.ENDIF
1569.IF "$(DEF6EXPORT19)"!=""
1570    @echo $(DEF6EXPORT19)                                       >>$@.tmpfile
1571.ENDIF
1572.IF "$(DEF6EXPORT20)"!=""
1573    @echo $(DEF6EXPORT20)                                       >>$@.tmpfile
1574.ENDIF
1575.IF "$(DEF6EXPORTFILE)"!=""
1576.IF "$(COM)"=="GCC"
1577    $(COMMAND_ECHO)$(TYPE) $(DEF6EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile
1578.ELSE
1579    $(COMMAND_ECHO)$(TYPE) $(DEF6EXPORTFILE) >> $@.tmpfile
1580.ENDIF
1581.ENDIF
1582    @-$(RM) $@
1583    @$(RENAME) $@.tmpfile $@
1584.ENDIF          # "$(GUI)"=="WNT"
1585
1586.IF "$(GUI)"=="OS2"
1587
1588#21/02/2006 YD dll names must be 8.3, invoke fix script
1589#check osl/os2/module.c/osl_loadModule()
1590SHL6TARGET8=$(shell @fix_shl.cmd $(SHL6TARGETN:f))
1591
1592DEF6FILTER=$(SOLARENV)/inc/dummy.flt
1593DEF6NAMELIST=$(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib)
1594
1595.IF "$(link_always)"==""
1596$(DEF6TARGETN) : \
1597        $(DEF6DEPN) \
1598        $(DEF6EXPORTFILE)
1599.ELSE           # "$(link_always)"==""
1600$(DEF6TARGETN) .PHONY :
1601.ENDIF          # "$(link_always)"==""
1602    @+-$(RM) $@.tmpfile
1603    @echo "Making:    module definition file" $(@:f)
1604    @echo LIBRARY     $(SHL6TARGET8) INITINSTANCE TERMINSTANCE   >$@.tmpfile
1605    @echo DATA MULTIPLE  >>$@.tmpfile
1606    @echo EXPORTS                                                   >>$@.tmpfile
1607.IF "$(VERSIONOBJ)"!=""
1608#   getversioninfo fuer alle!!
1609    @echo _GetVersionInfo       >$@.tmp_ord
1610.ENDIF
1611
1612.IF "$(DEFLIB6NAME)"!=""
1613    @+echo $(SLB)/$(DEFLIB6NAME).lib
1614    @+emxexpr $(DEF6NAMELIST) | fix_exp_file >> $@.tmp_ord
1615.ENDIF              # "$(DEFLIB6NAME)"!=""
1616
1617.IF "$(DEF6EXPORT1)"!=""
1618    @echo $(DEF6EXPORT1)                                        >>$@.tmpfile
1619.ENDIF
1620.IF "$(DEF6EXPORT2)"!=""
1621    @echo $(DEF6EXPORT2)                                        >>$@.tmpfile
1622.ENDIF
1623.IF "$(DEF6EXPORT3)"!=""
1624    @echo $(DEF6EXPORT3)                                        >>$@.tmpfile
1625.ENDIF
1626.IF "$(DEF6EXPORT4)"!=""
1627    @echo $(DEF6EXPORT4)                                        >>$@.tmpfile
1628.ENDIF
1629.IF "$(DEF6EXPORT5)"!=""
1630    @echo $(DEF6EXPORT5)                                        >>$@.tmpfile
1631.ENDIF
1632.IF "$(DEF6EXPORT6)"!=""
1633    @echo $(DEF6EXPORT6)                                        >>$@.tmpfile
1634.ENDIF
1635.IF "$(DEF6EXPORT7)"!=""
1636    @echo $(DEF6EXPORT7)                                        >>$@.tmpfile
1637.ENDIF
1638.IF "$(DEF6EXPORT8)"!=""
1639    @echo $(DEF6EXPORT8)                                        >>$@.tmpfile
1640.ENDIF
1641.IF "$(DEF6EXPORT9)"!=""
1642    @echo $(DEF6EXPORT9)                                        >>$@.tmpfile
1643.ENDIF
1644.IF "$(DEF6EXPORT10)"!=""
1645    @echo $(DEF6EXPORT10)                                       >>$@.tmpfile
1646.ENDIF
1647.IF "$(DEF6EXPORT11)"!=""
1648    @echo $(DEF6EXPORT11)                                       >>$@.tmpfile
1649.ENDIF
1650.IF "$(DEF6EXPORT12)"!=""
1651    @echo $(DEF6EXPORT12)                                       >>$@.tmpfile
1652.ENDIF
1653.IF "$(DEF6EXPORT13)"!=""
1654    @echo $(DEF6EXPORT13)                                       >>$@.tmpfile
1655.ENDIF
1656.IF "$(DEF6EXPORT14)"!=""
1657    @echo $(DEF6EXPORT14)                                       >>$@.tmpfile
1658.ENDIF
1659.IF "$(DEF6EXPORT15)"!=""
1660    @echo $(DEF6EXPORT15)                                       >>$@.tmpfile
1661.ENDIF
1662.IF "$(DEF6EXPORT16)"!=""
1663    @echo $(DEF6EXPORT16)                                       >>$@.tmpfile
1664.ENDIF
1665.IF "$(DEF6EXPORT17)"!=""
1666    @echo $(DEF6EXPORT17)                                       >>$@.tmpfile
1667.ENDIF
1668.IF "$(DEF6EXPORT18)"!=""
1669    @echo $(DEF6EXPORT18)                                       >>$@.tmpfile
1670.ENDIF
1671.IF "$(DEF6EXPORT19)"!=""
1672    @echo $(DEF6EXPORT19)                                       >>$@.tmpfile
1673.ENDIF
1674.IF "$(DEF6EXPORT20)"!=""
1675    @echo $(DEF6EXPORT20)                                       >>$@.tmpfile
1676.ENDIF
1677.IF "$(DEF6EXPORTFILE)"!=""
1678    @fix_def_file < $(DEF6EXPORTFILE) >> $@.tmp_ord
1679.ENDIF
1680    @sort < $@.tmp_ord | uniq > $@.exptmpfile
1681    @fix_def_ord < $@.exptmpfile >> $@.tmpfile
1682    @+-$(RM) $@
1683    $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@
1684    @+-$(RM) $@.tmp_ord
1685    @+-$(RM) $@.exptmpfile
1686    $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL6IMPLIBN:s/.lib/.a/) $@
1687    $(COMMAND_ECHO)+emxomf -o $(SHL6IMPLIBN) $(SHL6IMPLIBN:s/.lib/.a/)
1688
1689.ENDIF          # "$(GUI)"=="OS2"
1690
1691.IF "$(GUI)"=="UNX"
1692$(DEF6TARGETN): \
1693        $(DEF6DEPN) \
1694        $(DEF6EXPORTFILE)
1695    @echo just a dummy for UNIX > $@
1696.ENDIF
1697.ENDIF          # "$(DEF6TARGETN)"!=""
1698
1699
1700# Anweisungen fuer das Linken
1701# unroll begin
1702
1703.IF "$(DEF7TARGETN)"!=""
1704
1705#to make intuitiv naming work
1706.IF "$(DEF7LIBNAME)"!=""
1707DEFLIB7NAME*=$(DEF7LIBNAME)
1708.ENDIF          # "$(DEF7LIBNAME)"!=""
1709
1710.IF "$(DEFLIB7NAME)"!=""
1711DEF7DEPN+=$(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib)
1712.ENDIF
1713
1714.IF "$(SHL7VERSIONMAP)"!=""
1715.IF "$(DEF7EXPORTFILE)"==""
1716.IF "$(GUI)"=="WNT"
1717DEF7EXPORTFILE=$(MISC)/$(SHL7VERSIONMAP:b)_$(SHL7TARGET).dxp
1718.IF "$(COM)"=="GCC"
1719$(DEF7EXPORTFILE) : $(SHL7OBJS) $(SHL7LIBS)
1720.ENDIF # .IF "$(COM)"=="GCC"
1721
1722$(DEF7EXPORTFILE) : $(SHL7VERSIONMAP)
1723    $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
1724.IF "$(COM)"=="GCC"
1725    $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols
1726    $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp
1727# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
1728# Extract RTTI symbols from all the objects that will be used to build a shared library
1729    $(COMMAND_ECHO)nm -gP $(SHL7OBJS) \
1730        `$(TYPE) /dev/null $(foreach,j,$(SHL7LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \
1731        | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
1732# overwrite the map file generate into the local output tree with the generated
1733# exported symbols list
1734    $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@
1735.ENDIF # .IF "$(COM)"=="GCC"
1736
1737.ENDIF          # "$(GUI)"=="WNT"
1738
1739.IF "$(GUI)"=="OS2"
1740DEF7EXPORTFILE=$(MISC)/$(SHL7VERSIONMAP:b)_$(SHL7TARGET).dxp
1741$(DEF7EXPORTFILE) : $(SHL7VERSIONMAP)
1742    $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
1743.ENDIF          # "$(GUI)"=="OS2"
1744
1745.ENDIF          # "$(DEF7EXPORTFILE)"==""
1746.ENDIF          # "$(SHL7VERSIONMAP)"!=""
1747
1748.IF "$(GUI)"=="WNT"
1749
1750DEF7FILTER=$(SOLARENV)/inc/dummy.flt
1751
1752RMHACK7:=$(RM)
1753
1754.IF "$(DEF7CEXP)"!=""
1755EXPORT_ALL_SWITCH=-A $(DEF7CEXP)
1756.ENDIF
1757
1758.IF "$(link_always)"==""
1759$(DEF7TARGETN) : \
1760        $(DEF7DEPN) \
1761        $(DEF7EXPORTFILE)
1762.ELSE           # "$(link_always)"==""
1763$(DEF7TARGETN) .PHONY :
1764.ENDIF          # "$(link_always)"==""
1765    @-$(RM) $@.tmpfile
1766    @echo "Making:    module definition file" $(@:f)
1767    @echo LIBRARY     $(EMQ)"$(SHL7TARGETN:f)$(EMQ)"                                 >$@.tmpfile
1768.IF "$(COM)"!="GCC"
1769    @echo HEAPSIZE    0                                             >>$@.tmpfile
1770.ENDIF
1771    @echo EXPORTS                                                   >>$@.tmpfile
1772.IF "$(VERSIONOBJ)"!=""
1773#   getversioninfo fuer alle!!
1774    @echo GetVersionInfo        >>$@.tmpfile
1775.ENDIF
1776.IF "$(DEFLIB7NAME)"!=""
1777.IF "$(COM)"=="GCC"
1778    @-$(RM) $(MISC)/$(SHL7TARGET).exp
1779    $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL7TARGET).exp --export-all-symbols \
1780        `$(TYPE) $(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g`
1781    $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL7TARGET).exp | sed '/^;/d' >>$@.tmpfile
1782    @-$(RM) $(MISC)/$(SHL7TARGET).exp
1783.ELSE
1784.IF "$(SHL7USE_EXPORTS)"==""
1785    @-$(RMHACK7) $(MISC)/$(SHL7TARGET).exp
1786    @$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL7TARGET).exp $(SLB)/$(DEFLIB7NAME).lib
1787    @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL7TARGET).flt $(MISC)/$(SHL7TARGET).exp              >>$@.tmpfile
1788    $(COMMAND_ECHO)$(RMHACK7) $(MISC)/$(SHL7TARGET).exp
1789.ELSE           # "$(SHL7USE_EXPORTS)"==""
1790    @$(DUMPBIN) -DIRECTIVES  $(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL7TARGET).direct
1791    @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF7FILTER) $(MISC)/$(SHL7TARGET).direct >>$@.tmpfile
1792.ENDIF          # "$(SHL7USE_EXPORTS)"==""
1793.ENDIF
1794.ENDIF              # "$(DEFLIB7NAME)"!=""
1795.IF "$(DEF7EXPORT1)"!=""
1796    @echo $(DEF7EXPORT1)                                        >>$@.tmpfile
1797.ENDIF
1798.IF "$(DEF7EXPORT2)"!=""
1799    @echo $(DEF7EXPORT2)                                        >>$@.tmpfile
1800.ENDIF
1801.IF "$(DEF7EXPORT3)"!=""
1802    @echo $(DEF7EXPORT3)                                        >>$@.tmpfile
1803.ENDIF
1804.IF "$(DEF7EXPORT4)"!=""
1805    @echo $(DEF7EXPORT4)                                        >>$@.tmpfile
1806.ENDIF
1807.IF "$(DEF7EXPORT5)"!=""
1808    @echo $(DEF7EXPORT5)                                        >>$@.tmpfile
1809.ENDIF
1810.IF "$(DEF7EXPORT6)"!=""
1811    @echo $(DEF7EXPORT6)                                        >>$@.tmpfile
1812.ENDIF
1813.IF "$(DEF7EXPORT7)"!=""
1814    @echo $(DEF7EXPORT7)                                        >>$@.tmpfile
1815.ENDIF
1816.IF "$(DEF7EXPORT8)"!=""
1817    @echo $(DEF7EXPORT8)                                        >>$@.tmpfile
1818.ENDIF
1819.IF "$(DEF7EXPORT9)"!=""
1820    @echo $(DEF7EXPORT9)                                        >>$@.tmpfile
1821.ENDIF
1822.IF "$(DEF7EXPORT10)"!=""
1823    @echo $(DEF7EXPORT10)                                       >>$@.tmpfile
1824.ENDIF
1825.IF "$(DEF7EXPORT11)"!=""
1826    @echo $(DEF7EXPORT11)                                       >>$@.tmpfile
1827.ENDIF
1828.IF "$(DEF7EXPORT12)"!=""
1829    @echo $(DEF7EXPORT12)                                       >>$@.tmpfile
1830.ENDIF
1831.IF "$(DEF7EXPORT13)"!=""
1832    @echo $(DEF7EXPORT13)                                       >>$@.tmpfile
1833.ENDIF
1834.IF "$(DEF7EXPORT14)"!=""
1835    @echo $(DEF7EXPORT14)                                       >>$@.tmpfile
1836.ENDIF
1837.IF "$(DEF7EXPORT15)"!=""
1838    @echo $(DEF7EXPORT15)                                       >>$@.tmpfile
1839.ENDIF
1840.IF "$(DEF7EXPORT16)"!=""
1841    @echo $(DEF7EXPORT16)                                       >>$@.tmpfile
1842.ENDIF
1843.IF "$(DEF7EXPORT17)"!=""
1844    @echo $(DEF7EXPORT17)                                       >>$@.tmpfile
1845.ENDIF
1846.IF "$(DEF7EXPORT18)"!=""
1847    @echo $(DEF7EXPORT18)                                       >>$@.tmpfile
1848.ENDIF
1849.IF "$(DEF7EXPORT19)"!=""
1850    @echo $(DEF7EXPORT19)                                       >>$@.tmpfile
1851.ENDIF
1852.IF "$(DEF7EXPORT20)"!=""
1853    @echo $(DEF7EXPORT20)                                       >>$@.tmpfile
1854.ENDIF
1855.IF "$(DEF7EXPORTFILE)"!=""
1856.IF "$(COM)"=="GCC"
1857    $(COMMAND_ECHO)$(TYPE) $(DEF7EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile
1858.ELSE
1859    $(COMMAND_ECHO)$(TYPE) $(DEF7EXPORTFILE) >> $@.tmpfile
1860.ENDIF
1861.ENDIF
1862    @-$(RM) $@
1863    @$(RENAME) $@.tmpfile $@
1864.ENDIF          # "$(GUI)"=="WNT"
1865
1866.IF "$(GUI)"=="OS2"
1867
1868#21/02/2006 YD dll names must be 8.3, invoke fix script
1869#check osl/os2/module.c/osl_loadModule()
1870SHL7TARGET8=$(shell @fix_shl.cmd $(SHL7TARGETN:f))
1871
1872DEF7FILTER=$(SOLARENV)/inc/dummy.flt
1873DEF7NAMELIST=$(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib)
1874
1875.IF "$(link_always)"==""
1876$(DEF7TARGETN) : \
1877        $(DEF7DEPN) \
1878        $(DEF7EXPORTFILE)
1879.ELSE           # "$(link_always)"==""
1880$(DEF7TARGETN) .PHONY :
1881.ENDIF          # "$(link_always)"==""
1882    @+-$(RM) $@.tmpfile
1883    @echo "Making:    module definition file" $(@:f)
1884    @echo LIBRARY     $(SHL7TARGET8) INITINSTANCE TERMINSTANCE   >$@.tmpfile
1885    @echo DATA MULTIPLE  >>$@.tmpfile
1886    @echo EXPORTS                                                   >>$@.tmpfile
1887.IF "$(VERSIONOBJ)"!=""
1888#   getversioninfo fuer alle!!
1889    @echo _GetVersionInfo       >$@.tmp_ord
1890.ENDIF
1891
1892.IF "$(DEFLIB7NAME)"!=""
1893    @+echo $(SLB)/$(DEFLIB7NAME).lib
1894    @+emxexpr $(DEF7NAMELIST) | fix_exp_file >> $@.tmp_ord
1895.ENDIF              # "$(DEFLIB7NAME)"!=""
1896
1897.IF "$(DEF7EXPORT1)"!=""
1898    @echo $(DEF7EXPORT1)                                        >>$@.tmpfile
1899.ENDIF
1900.IF "$(DEF7EXPORT2)"!=""
1901    @echo $(DEF7EXPORT2)                                        >>$@.tmpfile
1902.ENDIF
1903.IF "$(DEF7EXPORT3)"!=""
1904    @echo $(DEF7EXPORT3)                                        >>$@.tmpfile
1905.ENDIF
1906.IF "$(DEF7EXPORT4)"!=""
1907    @echo $(DEF7EXPORT4)                                        >>$@.tmpfile
1908.ENDIF
1909.IF "$(DEF7EXPORT5)"!=""
1910    @echo $(DEF7EXPORT5)                                        >>$@.tmpfile
1911.ENDIF
1912.IF "$(DEF7EXPORT6)"!=""
1913    @echo $(DEF7EXPORT6)                                        >>$@.tmpfile
1914.ENDIF
1915.IF "$(DEF7EXPORT7)"!=""
1916    @echo $(DEF7EXPORT7)                                        >>$@.tmpfile
1917.ENDIF
1918.IF "$(DEF7EXPORT8)"!=""
1919    @echo $(DEF7EXPORT8)                                        >>$@.tmpfile
1920.ENDIF
1921.IF "$(DEF7EXPORT9)"!=""
1922    @echo $(DEF7EXPORT9)                                        >>$@.tmpfile
1923.ENDIF
1924.IF "$(DEF7EXPORT10)"!=""
1925    @echo $(DEF7EXPORT10)                                       >>$@.tmpfile
1926.ENDIF
1927.IF "$(DEF7EXPORT11)"!=""
1928    @echo $(DEF7EXPORT11)                                       >>$@.tmpfile
1929.ENDIF
1930.IF "$(DEF7EXPORT12)"!=""
1931    @echo $(DEF7EXPORT12)                                       >>$@.tmpfile
1932.ENDIF
1933.IF "$(DEF7EXPORT13)"!=""
1934    @echo $(DEF7EXPORT13)                                       >>$@.tmpfile
1935.ENDIF
1936.IF "$(DEF7EXPORT14)"!=""
1937    @echo $(DEF7EXPORT14)                                       >>$@.tmpfile
1938.ENDIF
1939.IF "$(DEF7EXPORT15)"!=""
1940    @echo $(DEF7EXPORT15)                                       >>$@.tmpfile
1941.ENDIF
1942.IF "$(DEF7EXPORT16)"!=""
1943    @echo $(DEF7EXPORT16)                                       >>$@.tmpfile
1944.ENDIF
1945.IF "$(DEF7EXPORT17)"!=""
1946    @echo $(DEF7EXPORT17)                                       >>$@.tmpfile
1947.ENDIF
1948.IF "$(DEF7EXPORT18)"!=""
1949    @echo $(DEF7EXPORT18)                                       >>$@.tmpfile
1950.ENDIF
1951.IF "$(DEF7EXPORT19)"!=""
1952    @echo $(DEF7EXPORT19)                                       >>$@.tmpfile
1953.ENDIF
1954.IF "$(DEF7EXPORT20)"!=""
1955    @echo $(DEF7EXPORT20)                                       >>$@.tmpfile
1956.ENDIF
1957.IF "$(DEF7EXPORTFILE)"!=""
1958    @fix_def_file < $(DEF7EXPORTFILE) >> $@.tmp_ord
1959.ENDIF
1960    @sort < $@.tmp_ord | uniq > $@.exptmpfile
1961    @fix_def_ord < $@.exptmpfile >> $@.tmpfile
1962    @+-$(RM) $@
1963    $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@
1964    @+-$(RM) $@.tmp_ord
1965    @+-$(RM) $@.exptmpfile
1966    $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL7IMPLIBN:s/.lib/.a/) $@
1967    $(COMMAND_ECHO)+emxomf -o $(SHL7IMPLIBN) $(SHL7IMPLIBN:s/.lib/.a/)
1968
1969.ENDIF          # "$(GUI)"=="OS2"
1970
1971.IF "$(GUI)"=="UNX"
1972$(DEF7TARGETN): \
1973        $(DEF7DEPN) \
1974        $(DEF7EXPORTFILE)
1975    @echo just a dummy for UNIX > $@
1976.ENDIF
1977.ENDIF          # "$(DEF7TARGETN)"!=""
1978
1979
1980# Anweisungen fuer das Linken
1981# unroll begin
1982
1983.IF "$(DEF8TARGETN)"!=""
1984
1985#to make intuitiv naming work
1986.IF "$(DEF8LIBNAME)"!=""
1987DEFLIB8NAME*=$(DEF8LIBNAME)
1988.ENDIF          # "$(DEF8LIBNAME)"!=""
1989
1990.IF "$(DEFLIB8NAME)"!=""
1991DEF8DEPN+=$(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib)
1992.ENDIF
1993
1994.IF "$(SHL8VERSIONMAP)"!=""
1995.IF "$(DEF8EXPORTFILE)"==""
1996.IF "$(GUI)"=="WNT"
1997DEF8EXPORTFILE=$(MISC)/$(SHL8VERSIONMAP:b)_$(SHL8TARGET).dxp
1998.IF "$(COM)"=="GCC"
1999$(DEF8EXPORTFILE) : $(SHL8OBJS) $(SHL8LIBS)
2000.ENDIF # .IF "$(COM)"=="GCC"
2001
2002$(DEF8EXPORTFILE) : $(SHL8VERSIONMAP)
2003    $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
2004.IF "$(COM)"=="GCC"
2005    $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols
2006    $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp
2007# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
2008# Extract RTTI symbols from all the objects that will be used to build a shared library
2009    $(COMMAND_ECHO)nm -gP $(SHL8OBJS) \
2010        `$(TYPE) /dev/null $(foreach,j,$(SHL8LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \
2011        | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
2012# overwrite the map file generate into the local output tree with the generated
2013# exported symbols list
2014    $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@
2015.ENDIF # .IF "$(COM)"=="GCC"
2016
2017.ENDIF          # "$(GUI)"=="WNT"
2018
2019.IF "$(GUI)"=="OS2"
2020DEF8EXPORTFILE=$(MISC)/$(SHL8VERSIONMAP:b)_$(SHL8TARGET).dxp
2021$(DEF8EXPORTFILE) : $(SHL8VERSIONMAP)
2022    $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
2023.ENDIF          # "$(GUI)"=="OS2"
2024
2025.ENDIF          # "$(DEF8EXPORTFILE)"==""
2026.ENDIF          # "$(SHL8VERSIONMAP)"!=""
2027
2028.IF "$(GUI)"=="WNT"
2029
2030DEF8FILTER=$(SOLARENV)/inc/dummy.flt
2031
2032RMHACK8:=$(RM)
2033
2034.IF "$(DEF8CEXP)"!=""
2035EXPORT_ALL_SWITCH=-A $(DEF8CEXP)
2036.ENDIF
2037
2038.IF "$(link_always)"==""
2039$(DEF8TARGETN) : \
2040        $(DEF8DEPN) \
2041        $(DEF8EXPORTFILE)
2042.ELSE           # "$(link_always)"==""
2043$(DEF8TARGETN) .PHONY :
2044.ENDIF          # "$(link_always)"==""
2045    @-$(RM) $@.tmpfile
2046    @echo "Making:    module definition file" $(@:f)
2047    @echo LIBRARY     $(EMQ)"$(SHL8TARGETN:f)$(EMQ)"                                 >$@.tmpfile
2048.IF "$(COM)"!="GCC"
2049    @echo HEAPSIZE    0                                             >>$@.tmpfile
2050.ENDIF
2051    @echo EXPORTS                                                   >>$@.tmpfile
2052.IF "$(VERSIONOBJ)"!=""
2053#   getversioninfo fuer alle!!
2054    @echo GetVersionInfo        >>$@.tmpfile
2055.ENDIF
2056.IF "$(DEFLIB8NAME)"!=""
2057.IF "$(COM)"=="GCC"
2058    @-$(RM) $(MISC)/$(SHL8TARGET).exp
2059    $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL8TARGET).exp --export-all-symbols \
2060        `$(TYPE) $(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g`
2061    $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL8TARGET).exp | sed '/^;/d' >>$@.tmpfile
2062    @-$(RM) $(MISC)/$(SHL8TARGET).exp
2063.ELSE
2064.IF "$(SHL8USE_EXPORTS)"==""
2065    @-$(RMHACK8) $(MISC)/$(SHL8TARGET).exp
2066    @$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL8TARGET).exp $(SLB)/$(DEFLIB8NAME).lib
2067    @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL8TARGET).flt $(MISC)/$(SHL8TARGET).exp              >>$@.tmpfile
2068    $(COMMAND_ECHO)$(RMHACK8) $(MISC)/$(SHL8TARGET).exp
2069.ELSE           # "$(SHL8USE_EXPORTS)"==""
2070    @$(DUMPBIN) -DIRECTIVES  $(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL8TARGET).direct
2071    @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF8FILTER) $(MISC)/$(SHL8TARGET).direct >>$@.tmpfile
2072.ENDIF          # "$(SHL8USE_EXPORTS)"==""
2073.ENDIF
2074.ENDIF              # "$(DEFLIB8NAME)"!=""
2075.IF "$(DEF8EXPORT1)"!=""
2076    @echo $(DEF8EXPORT1)                                        >>$@.tmpfile
2077.ENDIF
2078.IF "$(DEF8EXPORT2)"!=""
2079    @echo $(DEF8EXPORT2)                                        >>$@.tmpfile
2080.ENDIF
2081.IF "$(DEF8EXPORT3)"!=""
2082    @echo $(DEF8EXPORT3)                                        >>$@.tmpfile
2083.ENDIF
2084.IF "$(DEF8EXPORT4)"!=""
2085    @echo $(DEF8EXPORT4)                                        >>$@.tmpfile
2086.ENDIF
2087.IF "$(DEF8EXPORT5)"!=""
2088    @echo $(DEF8EXPORT5)                                        >>$@.tmpfile
2089.ENDIF
2090.IF "$(DEF8EXPORT6)"!=""
2091    @echo $(DEF8EXPORT6)                                        >>$@.tmpfile
2092.ENDIF
2093.IF "$(DEF8EXPORT7)"!=""
2094    @echo $(DEF8EXPORT7)                                        >>$@.tmpfile
2095.ENDIF
2096.IF "$(DEF8EXPORT8)"!=""
2097    @echo $(DEF8EXPORT8)                                        >>$@.tmpfile
2098.ENDIF
2099.IF "$(DEF8EXPORT9)"!=""
2100    @echo $(DEF8EXPORT9)                                        >>$@.tmpfile
2101.ENDIF
2102.IF "$(DEF8EXPORT10)"!=""
2103    @echo $(DEF8EXPORT10)                                       >>$@.tmpfile
2104.ENDIF
2105.IF "$(DEF8EXPORT11)"!=""
2106    @echo $(DEF8EXPORT11)                                       >>$@.tmpfile
2107.ENDIF
2108.IF "$(DEF8EXPORT12)"!=""
2109    @echo $(DEF8EXPORT12)                                       >>$@.tmpfile
2110.ENDIF
2111.IF "$(DEF8EXPORT13)"!=""
2112    @echo $(DEF8EXPORT13)                                       >>$@.tmpfile
2113.ENDIF
2114.IF "$(DEF8EXPORT14)"!=""
2115    @echo $(DEF8EXPORT14)                                       >>$@.tmpfile
2116.ENDIF
2117.IF "$(DEF8EXPORT15)"!=""
2118    @echo $(DEF8EXPORT15)                                       >>$@.tmpfile
2119.ENDIF
2120.IF "$(DEF8EXPORT16)"!=""
2121    @echo $(DEF8EXPORT16)                                       >>$@.tmpfile
2122.ENDIF
2123.IF "$(DEF8EXPORT17)"!=""
2124    @echo $(DEF8EXPORT17)                                       >>$@.tmpfile
2125.ENDIF
2126.IF "$(DEF8EXPORT18)"!=""
2127    @echo $(DEF8EXPORT18)                                       >>$@.tmpfile
2128.ENDIF
2129.IF "$(DEF8EXPORT19)"!=""
2130    @echo $(DEF8EXPORT19)                                       >>$@.tmpfile
2131.ENDIF
2132.IF "$(DEF8EXPORT20)"!=""
2133    @echo $(DEF8EXPORT20)                                       >>$@.tmpfile
2134.ENDIF
2135.IF "$(DEF8EXPORTFILE)"!=""
2136.IF "$(COM)"=="GCC"
2137    $(COMMAND_ECHO)$(TYPE) $(DEF8EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile
2138.ELSE
2139    $(COMMAND_ECHO)$(TYPE) $(DEF8EXPORTFILE) >> $@.tmpfile
2140.ENDIF
2141.ENDIF
2142    @-$(RM) $@
2143    @$(RENAME) $@.tmpfile $@
2144.ENDIF          # "$(GUI)"=="WNT"
2145
2146.IF "$(GUI)"=="OS2"
2147
2148#21/02/2006 YD dll names must be 8.3, invoke fix script
2149#check osl/os2/module.c/osl_loadModule()
2150SHL8TARGET8=$(shell @fix_shl.cmd $(SHL8TARGETN:f))
2151
2152DEF8FILTER=$(SOLARENV)/inc/dummy.flt
2153DEF8NAMELIST=$(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib)
2154
2155.IF "$(link_always)"==""
2156$(DEF8TARGETN) : \
2157        $(DEF8DEPN) \
2158        $(DEF8EXPORTFILE)
2159.ELSE           # "$(link_always)"==""
2160$(DEF8TARGETN) .PHONY :
2161.ENDIF          # "$(link_always)"==""
2162    @+-$(RM) $@.tmpfile
2163    @echo "Making:    module definition file" $(@:f)
2164    @echo LIBRARY     $(SHL8TARGET8) INITINSTANCE TERMINSTANCE   >$@.tmpfile
2165    @echo DATA MULTIPLE  >>$@.tmpfile
2166    @echo EXPORTS                                                   >>$@.tmpfile
2167.IF "$(VERSIONOBJ)"!=""
2168#   getversioninfo fuer alle!!
2169    @echo _GetVersionInfo       >$@.tmp_ord
2170.ENDIF
2171
2172.IF "$(DEFLIB8NAME)"!=""
2173    @+echo $(SLB)/$(DEFLIB8NAME).lib
2174    @+emxexpr $(DEF8NAMELIST) | fix_exp_file >> $@.tmp_ord
2175.ENDIF              # "$(DEFLIB8NAME)"!=""
2176
2177.IF "$(DEF8EXPORT1)"!=""
2178    @echo $(DEF8EXPORT1)                                        >>$@.tmpfile
2179.ENDIF
2180.IF "$(DEF8EXPORT2)"!=""
2181    @echo $(DEF8EXPORT2)                                        >>$@.tmpfile
2182.ENDIF
2183.IF "$(DEF8EXPORT3)"!=""
2184    @echo $(DEF8EXPORT3)                                        >>$@.tmpfile
2185.ENDIF
2186.IF "$(DEF8EXPORT4)"!=""
2187    @echo $(DEF8EXPORT4)                                        >>$@.tmpfile
2188.ENDIF
2189.IF "$(DEF8EXPORT5)"!=""
2190    @echo $(DEF8EXPORT5)                                        >>$@.tmpfile
2191.ENDIF
2192.IF "$(DEF8EXPORT6)"!=""
2193    @echo $(DEF8EXPORT6)                                        >>$@.tmpfile
2194.ENDIF
2195.IF "$(DEF8EXPORT7)"!=""
2196    @echo $(DEF8EXPORT7)                                        >>$@.tmpfile
2197.ENDIF
2198.IF "$(DEF8EXPORT8)"!=""
2199    @echo $(DEF8EXPORT8)                                        >>$@.tmpfile
2200.ENDIF
2201.IF "$(DEF8EXPORT9)"!=""
2202    @echo $(DEF8EXPORT9)                                        >>$@.tmpfile
2203.ENDIF
2204.IF "$(DEF8EXPORT10)"!=""
2205    @echo $(DEF8EXPORT10)                                       >>$@.tmpfile
2206.ENDIF
2207.IF "$(DEF8EXPORT11)"!=""
2208    @echo $(DEF8EXPORT11)                                       >>$@.tmpfile
2209.ENDIF
2210.IF "$(DEF8EXPORT12)"!=""
2211    @echo $(DEF8EXPORT12)                                       >>$@.tmpfile
2212.ENDIF
2213.IF "$(DEF8EXPORT13)"!=""
2214    @echo $(DEF8EXPORT13)                                       >>$@.tmpfile
2215.ENDIF
2216.IF "$(DEF8EXPORT14)"!=""
2217    @echo $(DEF8EXPORT14)                                       >>$@.tmpfile
2218.ENDIF
2219.IF "$(DEF8EXPORT15)"!=""
2220    @echo $(DEF8EXPORT15)                                       >>$@.tmpfile
2221.ENDIF
2222.IF "$(DEF8EXPORT16)"!=""
2223    @echo $(DEF8EXPORT16)                                       >>$@.tmpfile
2224.ENDIF
2225.IF "$(DEF8EXPORT17)"!=""
2226    @echo $(DEF8EXPORT17)                                       >>$@.tmpfile
2227.ENDIF
2228.IF "$(DEF8EXPORT18)"!=""
2229    @echo $(DEF8EXPORT18)                                       >>$@.tmpfile
2230.ENDIF
2231.IF "$(DEF8EXPORT19)"!=""
2232    @echo $(DEF8EXPORT19)                                       >>$@.tmpfile
2233.ENDIF
2234.IF "$(DEF8EXPORT20)"!=""
2235    @echo $(DEF8EXPORT20)                                       >>$@.tmpfile
2236.ENDIF
2237.IF "$(DEF8EXPORTFILE)"!=""
2238    @fix_def_file < $(DEF8EXPORTFILE) >> $@.tmp_ord
2239.ENDIF
2240    @sort < $@.tmp_ord | uniq > $@.exptmpfile
2241    @fix_def_ord < $@.exptmpfile >> $@.tmpfile
2242    @+-$(RM) $@
2243    $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@
2244    @+-$(RM) $@.tmp_ord
2245    @+-$(RM) $@.exptmpfile
2246    $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL8IMPLIBN:s/.lib/.a/) $@
2247    $(COMMAND_ECHO)+emxomf -o $(SHL8IMPLIBN) $(SHL8IMPLIBN:s/.lib/.a/)
2248
2249.ENDIF          # "$(GUI)"=="OS2"
2250
2251.IF "$(GUI)"=="UNX"
2252$(DEF8TARGETN): \
2253        $(DEF8DEPN) \
2254        $(DEF8EXPORTFILE)
2255    @echo just a dummy for UNIX > $@
2256.ENDIF
2257.ENDIF          # "$(DEF8TARGETN)"!=""
2258
2259
2260# Anweisungen fuer das Linken
2261# unroll begin
2262
2263.IF "$(DEF9TARGETN)"!=""
2264
2265#to make intuitiv naming work
2266.IF "$(DEF9LIBNAME)"!=""
2267DEFLIB9NAME*=$(DEF9LIBNAME)
2268.ENDIF          # "$(DEF9LIBNAME)"!=""
2269
2270.IF "$(DEFLIB9NAME)"!=""
2271DEF9DEPN+=$(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib)
2272.ENDIF
2273
2274.IF "$(SHL9VERSIONMAP)"!=""
2275.IF "$(DEF9EXPORTFILE)"==""
2276.IF "$(GUI)"=="WNT"
2277DEF9EXPORTFILE=$(MISC)/$(SHL9VERSIONMAP:b)_$(SHL9TARGET).dxp
2278.IF "$(COM)"=="GCC"
2279$(DEF9EXPORTFILE) : $(SHL9OBJS) $(SHL9LIBS)
2280.ENDIF # .IF "$(COM)"=="GCC"
2281
2282$(DEF9EXPORTFILE) : $(SHL9VERSIONMAP)
2283    $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
2284.IF "$(COM)"=="GCC"
2285    $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols
2286    $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp
2287# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
2288# Extract RTTI symbols from all the objects that will be used to build a shared library
2289    $(COMMAND_ECHO)nm -gP $(SHL9OBJS) \
2290        `$(TYPE) /dev/null $(foreach,j,$(SHL9LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \
2291        | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
2292# overwrite the map file generate into the local output tree with the generated
2293# exported symbols list
2294    $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@
2295.ENDIF # .IF "$(COM)"=="GCC"
2296
2297.ENDIF          # "$(GUI)"=="WNT"
2298
2299.IF "$(GUI)"=="OS2"
2300DEF9EXPORTFILE=$(MISC)/$(SHL9VERSIONMAP:b)_$(SHL9TARGET).dxp
2301$(DEF9EXPORTFILE) : $(SHL9VERSIONMAP)
2302    $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
2303.ENDIF          # "$(GUI)"=="OS2"
2304
2305.ENDIF          # "$(DEF9EXPORTFILE)"==""
2306.ENDIF          # "$(SHL9VERSIONMAP)"!=""
2307
2308.IF "$(GUI)"=="WNT"
2309
2310DEF9FILTER=$(SOLARENV)/inc/dummy.flt
2311
2312RMHACK9:=$(RM)
2313
2314.IF "$(DEF9CEXP)"!=""
2315EXPORT_ALL_SWITCH=-A $(DEF9CEXP)
2316.ENDIF
2317
2318.IF "$(link_always)"==""
2319$(DEF9TARGETN) : \
2320        $(DEF9DEPN) \
2321        $(DEF9EXPORTFILE)
2322.ELSE           # "$(link_always)"==""
2323$(DEF9TARGETN) .PHONY :
2324.ENDIF          # "$(link_always)"==""
2325    @-$(RM) $@.tmpfile
2326    @echo "Making:    module definition file" $(@:f)
2327    @echo LIBRARY     $(EMQ)"$(SHL9TARGETN:f)$(EMQ)"                                 >$@.tmpfile
2328.IF "$(COM)"!="GCC"
2329    @echo HEAPSIZE    0                                             >>$@.tmpfile
2330.ENDIF
2331    @echo EXPORTS                                                   >>$@.tmpfile
2332.IF "$(VERSIONOBJ)"!=""
2333#   getversioninfo fuer alle!!
2334    @echo GetVersionInfo        >>$@.tmpfile
2335.ENDIF
2336.IF "$(DEFLIB9NAME)"!=""
2337.IF "$(COM)"=="GCC"
2338    @-$(RM) $(MISC)/$(SHL9TARGET).exp
2339    $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL9TARGET).exp --export-all-symbols \
2340        `$(TYPE) $(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g`
2341    $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL9TARGET).exp | sed '/^;/d' >>$@.tmpfile
2342    @-$(RM) $(MISC)/$(SHL9TARGET).exp
2343.ELSE
2344.IF "$(SHL9USE_EXPORTS)"==""
2345    @-$(RMHACK9) $(MISC)/$(SHL9TARGET).exp
2346    @$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL9TARGET).exp $(SLB)/$(DEFLIB9NAME).lib
2347    @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL9TARGET).flt $(MISC)/$(SHL9TARGET).exp              >>$@.tmpfile
2348    $(COMMAND_ECHO)$(RMHACK9) $(MISC)/$(SHL9TARGET).exp
2349.ELSE           # "$(SHL9USE_EXPORTS)"==""
2350    @$(DUMPBIN) -DIRECTIVES  $(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL9TARGET).direct
2351    @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF9FILTER) $(MISC)/$(SHL9TARGET).direct >>$@.tmpfile
2352.ENDIF          # "$(SHL9USE_EXPORTS)"==""
2353.ENDIF
2354.ENDIF              # "$(DEFLIB9NAME)"!=""
2355.IF "$(DEF9EXPORT1)"!=""
2356    @echo $(DEF9EXPORT1)                                        >>$@.tmpfile
2357.ENDIF
2358.IF "$(DEF9EXPORT2)"!=""
2359    @echo $(DEF9EXPORT2)                                        >>$@.tmpfile
2360.ENDIF
2361.IF "$(DEF9EXPORT3)"!=""
2362    @echo $(DEF9EXPORT3)                                        >>$@.tmpfile
2363.ENDIF
2364.IF "$(DEF9EXPORT4)"!=""
2365    @echo $(DEF9EXPORT4)                                        >>$@.tmpfile
2366.ENDIF
2367.IF "$(DEF9EXPORT5)"!=""
2368    @echo $(DEF9EXPORT5)                                        >>$@.tmpfile
2369.ENDIF
2370.IF "$(DEF9EXPORT6)"!=""
2371    @echo $(DEF9EXPORT6)                                        >>$@.tmpfile
2372.ENDIF
2373.IF "$(DEF9EXPORT7)"!=""
2374    @echo $(DEF9EXPORT7)                                        >>$@.tmpfile
2375.ENDIF
2376.IF "$(DEF9EXPORT8)"!=""
2377    @echo $(DEF9EXPORT8)                                        >>$@.tmpfile
2378.ENDIF
2379.IF "$(DEF9EXPORT9)"!=""
2380    @echo $(DEF9EXPORT9)                                        >>$@.tmpfile
2381.ENDIF
2382.IF "$(DEF9EXPORT10)"!=""
2383    @echo $(DEF9EXPORT10)                                       >>$@.tmpfile
2384.ENDIF
2385.IF "$(DEF9EXPORT11)"!=""
2386    @echo $(DEF9EXPORT11)                                       >>$@.tmpfile
2387.ENDIF
2388.IF "$(DEF9EXPORT12)"!=""
2389    @echo $(DEF9EXPORT12)                                       >>$@.tmpfile
2390.ENDIF
2391.IF "$(DEF9EXPORT13)"!=""
2392    @echo $(DEF9EXPORT13)                                       >>$@.tmpfile
2393.ENDIF
2394.IF "$(DEF9EXPORT14)"!=""
2395    @echo $(DEF9EXPORT14)                                       >>$@.tmpfile
2396.ENDIF
2397.IF "$(DEF9EXPORT15)"!=""
2398    @echo $(DEF9EXPORT15)                                       >>$@.tmpfile
2399.ENDIF
2400.IF "$(DEF9EXPORT16)"!=""
2401    @echo $(DEF9EXPORT16)                                       >>$@.tmpfile
2402.ENDIF
2403.IF "$(DEF9EXPORT17)"!=""
2404    @echo $(DEF9EXPORT17)                                       >>$@.tmpfile
2405.ENDIF
2406.IF "$(DEF9EXPORT18)"!=""
2407    @echo $(DEF9EXPORT18)                                       >>$@.tmpfile
2408.ENDIF
2409.IF "$(DEF9EXPORT19)"!=""
2410    @echo $(DEF9EXPORT19)                                       >>$@.tmpfile
2411.ENDIF
2412.IF "$(DEF9EXPORT20)"!=""
2413    @echo $(DEF9EXPORT20)                                       >>$@.tmpfile
2414.ENDIF
2415.IF "$(DEF9EXPORTFILE)"!=""
2416.IF "$(COM)"=="GCC"
2417    $(COMMAND_ECHO)$(TYPE) $(DEF9EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile
2418.ELSE
2419    $(COMMAND_ECHO)$(TYPE) $(DEF9EXPORTFILE) >> $@.tmpfile
2420.ENDIF
2421.ENDIF
2422    @-$(RM) $@
2423    @$(RENAME) $@.tmpfile $@
2424.ENDIF          # "$(GUI)"=="WNT"
2425
2426.IF "$(GUI)"=="OS2"
2427
2428#21/02/2006 YD dll names must be 8.3, invoke fix script
2429#check osl/os2/module.c/osl_loadModule()
2430SHL9TARGET8=$(shell @fix_shl.cmd $(SHL9TARGETN:f))
2431
2432DEF9FILTER=$(SOLARENV)/inc/dummy.flt
2433DEF9NAMELIST=$(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib)
2434
2435.IF "$(link_always)"==""
2436$(DEF9TARGETN) : \
2437        $(DEF9DEPN) \
2438        $(DEF9EXPORTFILE)
2439.ELSE           # "$(link_always)"==""
2440$(DEF9TARGETN) .PHONY :
2441.ENDIF          # "$(link_always)"==""
2442    @+-$(RM) $@.tmpfile
2443    @echo "Making:    module definition file" $(@:f)
2444    @echo LIBRARY     $(SHL9TARGET8) INITINSTANCE TERMINSTANCE   >$@.tmpfile
2445    @echo DATA MULTIPLE  >>$@.tmpfile
2446    @echo EXPORTS                                                   >>$@.tmpfile
2447.IF "$(VERSIONOBJ)"!=""
2448#   getversioninfo fuer alle!!
2449    @echo _GetVersionInfo       >$@.tmp_ord
2450.ENDIF
2451
2452.IF "$(DEFLIB9NAME)"!=""
2453    @+echo $(SLB)/$(DEFLIB9NAME).lib
2454    @+emxexpr $(DEF9NAMELIST) | fix_exp_file >> $@.tmp_ord
2455.ENDIF              # "$(DEFLIB9NAME)"!=""
2456
2457.IF "$(DEF9EXPORT1)"!=""
2458    @echo $(DEF9EXPORT1)                                        >>$@.tmpfile
2459.ENDIF
2460.IF "$(DEF9EXPORT2)"!=""
2461    @echo $(DEF9EXPORT2)                                        >>$@.tmpfile
2462.ENDIF
2463.IF "$(DEF9EXPORT3)"!=""
2464    @echo $(DEF9EXPORT3)                                        >>$@.tmpfile
2465.ENDIF
2466.IF "$(DEF9EXPORT4)"!=""
2467    @echo $(DEF9EXPORT4)                                        >>$@.tmpfile
2468.ENDIF
2469.IF "$(DEF9EXPORT5)"!=""
2470    @echo $(DEF9EXPORT5)                                        >>$@.tmpfile
2471.ENDIF
2472.IF "$(DEF9EXPORT6)"!=""
2473    @echo $(DEF9EXPORT6)                                        >>$@.tmpfile
2474.ENDIF
2475.IF "$(DEF9EXPORT7)"!=""
2476    @echo $(DEF9EXPORT7)                                        >>$@.tmpfile
2477.ENDIF
2478.IF "$(DEF9EXPORT8)"!=""
2479    @echo $(DEF9EXPORT8)                                        >>$@.tmpfile
2480.ENDIF
2481.IF "$(DEF9EXPORT9)"!=""
2482    @echo $(DEF9EXPORT9)                                        >>$@.tmpfile
2483.ENDIF
2484.IF "$(DEF9EXPORT10)"!=""
2485    @echo $(DEF9EXPORT10)                                       >>$@.tmpfile
2486.ENDIF
2487.IF "$(DEF9EXPORT11)"!=""
2488    @echo $(DEF9EXPORT11)                                       >>$@.tmpfile
2489.ENDIF
2490.IF "$(DEF9EXPORT12)"!=""
2491    @echo $(DEF9EXPORT12)                                       >>$@.tmpfile
2492.ENDIF
2493.IF "$(DEF9EXPORT13)"!=""
2494    @echo $(DEF9EXPORT13)                                       >>$@.tmpfile
2495.ENDIF
2496.IF "$(DEF9EXPORT14)"!=""
2497    @echo $(DEF9EXPORT14)                                       >>$@.tmpfile
2498.ENDIF
2499.IF "$(DEF9EXPORT15)"!=""
2500    @echo $(DEF9EXPORT15)                                       >>$@.tmpfile
2501.ENDIF
2502.IF "$(DEF9EXPORT16)"!=""
2503    @echo $(DEF9EXPORT16)                                       >>$@.tmpfile
2504.ENDIF
2505.IF "$(DEF9EXPORT17)"!=""
2506    @echo $(DEF9EXPORT17)                                       >>$@.tmpfile
2507.ENDIF
2508.IF "$(DEF9EXPORT18)"!=""
2509    @echo $(DEF9EXPORT18)                                       >>$@.tmpfile
2510.ENDIF
2511.IF "$(DEF9EXPORT19)"!=""
2512    @echo $(DEF9EXPORT19)                                       >>$@.tmpfile
2513.ENDIF
2514.IF "$(DEF9EXPORT20)"!=""
2515    @echo $(DEF9EXPORT20)                                       >>$@.tmpfile
2516.ENDIF
2517.IF "$(DEF9EXPORTFILE)"!=""
2518    @fix_def_file < $(DEF9EXPORTFILE) >> $@.tmp_ord
2519.ENDIF
2520    @sort < $@.tmp_ord | uniq > $@.exptmpfile
2521    @fix_def_ord < $@.exptmpfile >> $@.tmpfile
2522    @+-$(RM) $@
2523    $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@
2524    @+-$(RM) $@.tmp_ord
2525    @+-$(RM) $@.exptmpfile
2526    $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL9IMPLIBN:s/.lib/.a/) $@
2527    $(COMMAND_ECHO)+emxomf -o $(SHL9IMPLIBN) $(SHL9IMPLIBN:s/.lib/.a/)
2528
2529.ENDIF          # "$(GUI)"=="OS2"
2530
2531.IF "$(GUI)"=="UNX"
2532$(DEF9TARGETN): \
2533        $(DEF9DEPN) \
2534        $(DEF9EXPORTFILE)
2535    @echo just a dummy for UNIX > $@
2536.ENDIF
2537.ENDIF          # "$(DEF9TARGETN)"!=""
2538
2539
2540# Anweisungen fuer das Linken
2541# unroll begin
2542
2543.IF "$(DEF10TARGETN)"!=""
2544
2545#to make intuitiv naming work
2546.IF "$(DEF10LIBNAME)"!=""
2547DEFLIB10NAME*=$(DEF10LIBNAME)
2548.ENDIF          # "$(DEF10LIBNAME)"!=""
2549
2550.IF "$(DEFLIB10NAME)"!=""
2551DEF10DEPN+=$(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib)
2552.ENDIF
2553
2554.IF "$(SHL10VERSIONMAP)"!=""
2555.IF "$(DEF10EXPORTFILE)"==""
2556.IF "$(GUI)"=="WNT"
2557DEF10EXPORTFILE=$(MISC)/$(SHL10VERSIONMAP:b)_$(SHL10TARGET).dxp
2558.IF "$(COM)"=="GCC"
2559$(DEF10EXPORTFILE) : $(SHL10OBJS) $(SHL10LIBS)
2560.ENDIF # .IF "$(COM)"=="GCC"
2561
2562$(DEF10EXPORTFILE) : $(SHL10VERSIONMAP)
2563    $(COMMAND_ECHO)$(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
2564.IF "$(COM)"=="GCC"
2565    $(COMMAND_ECHO)-$(GREP) -v "\*\|?" $@ | $(SED) -e 's@#.*@@' > $@.exported-symbols
2566    $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp
2567# Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS
2568# Extract RTTI symbols from all the objects that will be used to build a shared library
2569    $(COMMAND_ECHO)nm -gP $(SHL10OBJS) \
2570        `$(TYPE) /dev/null $(foreach,j,$(SHL10LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \
2571        | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols
2572# overwrite the map file generate into the local output tree with the generated
2573# exported symbols list
2574    $(COMMAND_ECHO)$(RENAME) $@.exported-symbols $@
2575.ENDIF # .IF "$(COM)"=="GCC"
2576
2577.ENDIF          # "$(GUI)"=="WNT"
2578
2579.IF "$(GUI)"=="OS2"
2580DEF10EXPORTFILE=$(MISC)/$(SHL10VERSIONMAP:b)_$(SHL10TARGET).dxp
2581$(DEF10EXPORTFILE) : $(SHL10VERSIONMAP)
2582    $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@
2583.ENDIF          # "$(GUI)"=="OS2"
2584
2585.ENDIF          # "$(DEF10EXPORTFILE)"==""
2586.ENDIF          # "$(SHL10VERSIONMAP)"!=""
2587
2588.IF "$(GUI)"=="WNT"
2589
2590DEF10FILTER=$(SOLARENV)/inc/dummy.flt
2591
2592RMHACK10:=$(RM)
2593
2594.IF "$(DEF10CEXP)"!=""
2595EXPORT_ALL_SWITCH=-A $(DEF10CEXP)
2596.ENDIF
2597
2598.IF "$(link_always)"==""
2599$(DEF10TARGETN) : \
2600        $(DEF10DEPN) \
2601        $(DEF10EXPORTFILE)
2602.ELSE           # "$(link_always)"==""
2603$(DEF10TARGETN) .PHONY :
2604.ENDIF          # "$(link_always)"==""
2605    @-$(RM) $@.tmpfile
2606    @echo "Making:    module definition file" $(@:f)
2607    @echo LIBRARY     $(EMQ)"$(SHL10TARGETN:f)$(EMQ)"                                >$@.tmpfile
2608.IF "$(COM)"!="GCC"
2609    @echo HEAPSIZE    0                                             >>$@.tmpfile
2610.ENDIF
2611    @echo EXPORTS                                                   >>$@.tmpfile
2612.IF "$(VERSIONOBJ)"!=""
2613#   getversioninfo fuer alle!!
2614    @echo GetVersionInfo        >>$@.tmpfile
2615.ENDIF
2616.IF "$(DEFLIB10NAME)"!=""
2617.IF "$(COM)"=="GCC"
2618    @-$(RM) $(MISC)/$(SHL10TARGET).exp
2619    $(COMMAND_ECHO)dlltool --output-def $(MISC)/$(SHL10TARGET).exp --export-all-symbols \
2620        `$(TYPE) $(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) | sed s#$(ROUT)#$(PRJ)/$(ROUT)#g`
2621    $(COMMAND_ECHO)tail --lines +3 $(MISC)/$(SHL10TARGET).exp | sed '/^;/d' >>$@.tmpfile
2622    @-$(RM) $(MISC)/$(SHL10TARGET).exp
2623.ELSE
2624.IF "$(SHL10USE_EXPORTS)"==""
2625    @-$(RMHACK10) $(MISC)/$(SHL10TARGET).exp
2626    @$(LIBMGR) -EXTRACT:/ /OUT:$(MISC)/$(SHL10TARGET).exp $(SLB)/$(DEFLIB10NAME).lib
2627    @$(LDUMP2) -N $(EXPORT_ALL_SWITCH) -F $(MISC)/$(SHL10TARGET).flt $(MISC)/$(SHL10TARGET).exp            >>$@.tmpfile
2628    $(COMMAND_ECHO)$(RMHACK10) $(MISC)/$(SHL10TARGET).exp
2629.ELSE           # "$(SHL10USE_EXPORTS)"==""
2630    @$(DUMPBIN) -DIRECTIVES  $(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) | $(GREP) EXPORT: > $(MISC)/$(SHL10TARGET).direct
2631    @$(LDUMP2) -N -D $(EXPORT_ALL_SWITCH) -F $(DEF10FILTER) $(MISC)/$(SHL10TARGET).direct >>$@.tmpfile
2632.ENDIF          # "$(SHL10USE_EXPORTS)"==""
2633.ENDIF
2634.ENDIF              # "$(DEFLIB10NAME)"!=""
2635.IF "$(DEF10EXPORT1)"!=""
2636    @echo $(DEF10EXPORT1)                                       >>$@.tmpfile
2637.ENDIF
2638.IF "$(DEF10EXPORT2)"!=""
2639    @echo $(DEF10EXPORT2)                                       >>$@.tmpfile
2640.ENDIF
2641.IF "$(DEF10EXPORT3)"!=""
2642    @echo $(DEF10EXPORT3)                                       >>$@.tmpfile
2643.ENDIF
2644.IF "$(DEF10EXPORT4)"!=""
2645    @echo $(DEF10EXPORT4)                                       >>$@.tmpfile
2646.ENDIF
2647.IF "$(DEF10EXPORT5)"!=""
2648    @echo $(DEF10EXPORT5)                                       >>$@.tmpfile
2649.ENDIF
2650.IF "$(DEF10EXPORT6)"!=""
2651    @echo $(DEF10EXPORT6)                                       >>$@.tmpfile
2652.ENDIF
2653.IF "$(DEF10EXPORT7)"!=""
2654    @echo $(DEF10EXPORT7)                                       >>$@.tmpfile
2655.ENDIF
2656.IF "$(DEF10EXPORT8)"!=""
2657    @echo $(DEF10EXPORT8)                                       >>$@.tmpfile
2658.ENDIF
2659.IF "$(DEF10EXPORT9)"!=""
2660    @echo $(DEF10EXPORT9)                                       >>$@.tmpfile
2661.ENDIF
2662.IF "$(DEF10EXPORT10)"!=""
2663    @echo $(DEF10EXPORT10)                                      >>$@.tmpfile
2664.ENDIF
2665.IF "$(DEF10EXPORT11)"!=""
2666    @echo $(DEF10EXPORT11)                                      >>$@.tmpfile
2667.ENDIF
2668.IF "$(DEF10EXPORT12)"!=""
2669    @echo $(DEF10EXPORT12)                                      >>$@.tmpfile
2670.ENDIF
2671.IF "$(DEF10EXPORT13)"!=""
2672    @echo $(DEF10EXPORT13)                                      >>$@.tmpfile
2673.ENDIF
2674.IF "$(DEF10EXPORT14)"!=""
2675    @echo $(DEF10EXPORT14)                                      >>$@.tmpfile
2676.ENDIF
2677.IF "$(DEF10EXPORT15)"!=""
2678    @echo $(DEF10EXPORT15)                                      >>$@.tmpfile
2679.ENDIF
2680.IF "$(DEF10EXPORT16)"!=""
2681    @echo $(DEF10EXPORT16)                                      >>$@.tmpfile
2682.ENDIF
2683.IF "$(DEF10EXPORT17)"!=""
2684    @echo $(DEF10EXPORT17)                                      >>$@.tmpfile
2685.ENDIF
2686.IF "$(DEF10EXPORT18)"!=""
2687    @echo $(DEF10EXPORT18)                                      >>$@.tmpfile
2688.ENDIF
2689.IF "$(DEF10EXPORT19)"!=""
2690    @echo $(DEF10EXPORT19)                                      >>$@.tmpfile
2691.ENDIF
2692.IF "$(DEF10EXPORT20)"!=""
2693    @echo $(DEF10EXPORT20)                                      >>$@.tmpfile
2694.ENDIF
2695.IF "$(DEF10EXPORTFILE)"!=""
2696.IF "$(COM)"=="GCC"
2697    $(COMMAND_ECHO)$(TYPE) $(DEF10EXPORTFILE) | sed -e s:PRIVATE:: >> $@.tmpfile
2698.ELSE
2699    $(COMMAND_ECHO)$(TYPE) $(DEF10EXPORTFILE) >> $@.tmpfile
2700.ENDIF
2701.ENDIF
2702    @-$(RM) $@
2703    @$(RENAME) $@.tmpfile $@
2704.ENDIF          # "$(GUI)"=="WNT"
2705
2706.IF "$(GUI)"=="OS2"
2707
2708#21/02/2006 YD dll names must be 8.3, invoke fix script
2709#check osl/os2/module.c/osl_loadModule()
2710SHL10TARGET8=$(shell @fix_shl.cmd $(SHL10TARGETN:f))
2711
2712DEF10FILTER=$(SOLARENV)/inc/dummy.flt
2713DEF10NAMELIST=$(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib)
2714
2715.IF "$(link_always)"==""
2716$(DEF10TARGETN) : \
2717        $(DEF10DEPN) \
2718        $(DEF10EXPORTFILE)
2719.ELSE           # "$(link_always)"==""
2720$(DEF10TARGETN) .PHONY :
2721.ENDIF          # "$(link_always)"==""
2722    @+-$(RM) $@.tmpfile
2723    @echo "Making:    module definition file" $(@:f)
2724    @echo LIBRARY     $(SHL10TARGET8) INITINSTANCE TERMINSTANCE  >$@.tmpfile
2725    @echo DATA MULTIPLE  >>$@.tmpfile
2726    @echo EXPORTS                                                   >>$@.tmpfile
2727.IF "$(VERSIONOBJ)"!=""
2728#   getversioninfo fuer alle!!
2729    @echo _GetVersionInfo       >$@.tmp_ord
2730.ENDIF
2731
2732.IF "$(DEFLIB10NAME)"!=""
2733    @+echo $(SLB)/$(DEFLIB10NAME).lib
2734    @+emxexpr $(DEF10NAMELIST) | fix_exp_file >> $@.tmp_ord
2735.ENDIF              # "$(DEFLIB10NAME)"!=""
2736
2737.IF "$(DEF10EXPORT1)"!=""
2738    @echo $(DEF10EXPORT1)                                       >>$@.tmpfile
2739.ENDIF
2740.IF "$(DEF10EXPORT2)"!=""
2741    @echo $(DEF10EXPORT2)                                       >>$@.tmpfile
2742.ENDIF
2743.IF "$(DEF10EXPORT3)"!=""
2744    @echo $(DEF10EXPORT3)                                       >>$@.tmpfile
2745.ENDIF
2746.IF "$(DEF10EXPORT4)"!=""
2747    @echo $(DEF10EXPORT4)                                       >>$@.tmpfile
2748.ENDIF
2749.IF "$(DEF10EXPORT5)"!=""
2750    @echo $(DEF10EXPORT5)                                       >>$@.tmpfile
2751.ENDIF
2752.IF "$(DEF10EXPORT6)"!=""
2753    @echo $(DEF10EXPORT6)                                       >>$@.tmpfile
2754.ENDIF
2755.IF "$(DEF10EXPORT7)"!=""
2756    @echo $(DEF10EXPORT7)                                       >>$@.tmpfile
2757.ENDIF
2758.IF "$(DEF10EXPORT8)"!=""
2759    @echo $(DEF10EXPORT8)                                       >>$@.tmpfile
2760.ENDIF
2761.IF "$(DEF10EXPORT9)"!=""
2762    @echo $(DEF10EXPORT9)                                       >>$@.tmpfile
2763.ENDIF
2764.IF "$(DEF10EXPORT10)"!=""
2765    @echo $(DEF10EXPORT10)                                      >>$@.tmpfile
2766.ENDIF
2767.IF "$(DEF10EXPORT11)"!=""
2768    @echo $(DEF10EXPORT11)                                      >>$@.tmpfile
2769.ENDIF
2770.IF "$(DEF10EXPORT12)"!=""
2771    @echo $(DEF10EXPORT12)                                      >>$@.tmpfile
2772.ENDIF
2773.IF "$(DEF10EXPORT13)"!=""
2774    @echo $(DEF10EXPORT13)                                      >>$@.tmpfile
2775.ENDIF
2776.IF "$(DEF10EXPORT14)"!=""
2777    @echo $(DEF10EXPORT14)                                      >>$@.tmpfile
2778.ENDIF
2779.IF "$(DEF10EXPORT15)"!=""
2780    @echo $(DEF10EXPORT15)                                      >>$@.tmpfile
2781.ENDIF
2782.IF "$(DEF10EXPORT16)"!=""
2783    @echo $(DEF10EXPORT16)                                      >>$@.tmpfile
2784.ENDIF
2785.IF "$(DEF10EXPORT17)"!=""
2786    @echo $(DEF10EXPORT17)                                      >>$@.tmpfile
2787.ENDIF
2788.IF "$(DEF10EXPORT18)"!=""
2789    @echo $(DEF10EXPORT18)                                      >>$@.tmpfile
2790.ENDIF
2791.IF "$(DEF10EXPORT19)"!=""
2792    @echo $(DEF10EXPORT19)                                      >>$@.tmpfile
2793.ENDIF
2794.IF "$(DEF10EXPORT20)"!=""
2795    @echo $(DEF10EXPORT20)                                      >>$@.tmpfile
2796.ENDIF
2797.IF "$(DEF10EXPORTFILE)"!=""
2798    @fix_def_file < $(DEF10EXPORTFILE) >> $@.tmp_ord
2799.ENDIF
2800    @sort < $@.tmp_ord | uniq > $@.exptmpfile
2801    @fix_def_ord < $@.exptmpfile >> $@.tmpfile
2802    @+-$(RM) $@
2803    $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@
2804    @+-$(RM) $@.tmp_ord
2805    @+-$(RM) $@.exptmpfile
2806    $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL10IMPLIBN:s/.lib/.a/) $@
2807    $(COMMAND_ECHO)+emxomf -o $(SHL10IMPLIBN) $(SHL10IMPLIBN:s/.lib/.a/)
2808
2809.ENDIF          # "$(GUI)"=="OS2"
2810
2811.IF "$(GUI)"=="UNX"
2812$(DEF10TARGETN): \
2813        $(DEF10DEPN) \
2814        $(DEF10EXPORTFILE)
2815    @echo just a dummy for UNIX > $@
2816.ENDIF
2817.ENDIF          # "$(DEF10TARGETN)"!=""
2818
2819
2820# Anweisungen fuer das Linken
2821