1 XCOMM $XConsortium: os2Lib.rules /main/1 1996/10/31 14:47:29 kaleb $
5 XCOMM $XFree86: xc/config/cf/os2Lib.rules,v 3.7 1997/01/27 06:12:49 dawes Exp $
8 * OS2/EMX shared library rules (DLL version)
11 #error You must edit os2Lib.rules for your (non-EMX) OS/2 dev system
14 #ifndef HasSharedLibraries
15 #define HasSharedLibraries YES
17 #ifndef ForceNormalLib
18 #define ForceNormalLib NO
23 #ifndef SharedDataSeparation
24 #define SharedDataSeparation NO
27 #define SharedCodeDef /**/
29 #ifndef SharedLibraryDef
30 #define SharedLibraryDef /**/
32 #ifndef ShLibIncludeFile
33 #define ShLibIncludeFile <os2Lib.tmpl>
35 #ifndef SharedLibraryLoadFlags
36 #define SharedLibraryLoadFlags /**/
38 #ifndef PositionIndependentCFlags
39 #define PositionIndependentCFlags -Zdll -Zomf -Zmtd
42 #ifndef NormalSharedLibObjCompile
43 #define NormalSharedLibObjCompile(options) $(RM) $@ @@\
44 $(CC) -c $(CFLAGS) options $(SHLIBDEF) $(SHAREDCODEDEF) $(PICFLAGS) $*.c @@\
48 #ifndef InstallSharedLibrary
50 #define InstallSharedLibrary(libname,rev,dest) @@\
51 install:: libname.dll libname.a libname.lib @@\
52 MakeDir($(DESTDIR)dest) @@\
53 $(INSTALL) -c $(INSTLIBFLAGS) libname.dll $(DESTDIR)dest @@\
54 $(INSTALL) -c $(INSTLIBFLAGS) libname.a $(DESTDIR)dest @@\
55 $(INSTALL) -c $(INSTLIBFLAGS) libname.lib $(DESTDIR)dest
57 #define InstallSharedLibrary(libname,rev,dest) @@\
58 install:: libname.dll libname.a @@\
59 MakeDir($(DESTDIR)dest) @@\
60 $(INSTALL) -c $(INSTLIBFLAGS) libname.a $(DESTDIR)dest @@\
61 $(INSTALL) -c $(INSTLIBFLAGS) libname.dll $(DESTDIR)dest
63 #endif /* InstallSharedLibrary */
66 #define LinkBuildLibrary(lib) $(_NULLCMD_)
68 #define LinkBuildLibrary(lib) MakeDir($(BUILDLIBDIR)) @@\
69 RemoveFile($(BUILDLIBDIR)/lib) @@\
70 ImakeIndir $(BUILDLIBDIR) $(LN) $(BUILDINCTOP)/$(CURRENT_DIR)/lib .
75 SHLD = gcc -Zomf -Zdll -Zmtd
76 SHADDLIBS = -lbsd -lsocket -lc_import
77 #ifndef BuildDllSupportLibs
79 #define BuildDllSupportLibs(slib) $(_NULLCMD_)
81 #define BuildDllSupportLibs(slib) @@\
82 $(EMXIMP) -o slib.imp slib.def @@\
83 $(EMXIMP) -o slib.a slib.imp @@\
84 $(EMXOMF) -s -l slib.a @@\
85 LinkBuildLibrary(slib.a) @@\
86 LinkBuildLibrary(slib.lib)
90 #ifndef BuildDllSupportLibs2
92 #define BuildDllSupportLibs2(slib) $(_NULLCMD_)
94 #define BuildDllSupportLibs2(slib) @@\
95 $(EMXIMP) -o slib.imp Concat3(slib,os2,.def) @@\
96 $(EMXIMP) -o slib.a slib.imp @@\
97 $(EMXOMF) -s -l slib.a @@\
98 LinkBuildLibrary(slib.a) @@\
99 LinkBuildLibrary(slib.lib)
103 #ifndef BuildLibSupportLibs
104 /*#ifdef UseInstalled
105 #define BuildLibSupportLibs(slib) $(_NULLCMD_)
107 #define BuildLibSupportLibs(slib) @@\
108 $(EMXOMF) -s -l slib.a @@\
109 LinkBuildLibrary(slib.a) @@\
110 LinkBuildLibrary(slib.lib)
114 #ifndef SharedLibraryTarget
115 #define SharedLibraryTarget(libname,rev,solist,down,up) @@\
116 AllTarget(libname.dll) @@\
117 .SUFFIXES: .obj .rsp .def @@\
118 LBRPATH = $(subst /,\,$(LIBRARY_PATH)) @@\
119 LBRDEF = Concat3(libname,os2,.def) @@\
120 LBRCPPDEF = Concat3(libname,os2,-def.cpp) @@\
121 LBRRSP = Concat3(libname,os2,.rsp) @@\
123 link.rsp: $(LBRRSP) $(LBRDEF) @@\
124 @echo $(LBRPATH)"\\dll0.obj+" >link.rsp @@\
125 @cat $(LBRRSP) >>link.rsp @@\
126 @echo $(LBRPATH)\\mt\\ $(LBRPATH)\\ $(REQUIREDLIBS) bsd socket c_alias c_static c_import os2 emx2 end >>link.rsp @@\
127 @echo $(LBRDEF) >>link.rsp @@\
129 libname.dll: $(OBJS) link.rsp @@\
130 link386 @link.rsp >nul @@\
131 BuildDllSupportLibs2(libname) @@\
132 LinkBuildLibrary(libname.dll) @@\
135 $(RM) libname.lib libname.imp *.obj link.rsp
136 #endif /* SharedLibraryTarget */
138 #ifndef NormalLibraryTarget
139 #define NormalLibraryTarget(libname,objlist) @@\
140 AllTarget(LibraryTargetName(libname)) @@\
142 LibraryTargetName(libname): objlist @@\
144 MakeLibrary($@,objlist) @@\
146 BuildLibSupportLibs($*)
147 #endif /* NormalLibraryTarget */
149 #ifndef NormalDepLibraryTarget
150 #define NormalDepLibraryTarget(libname,deplist,objlist) @@\
151 AllTarget(LibraryTargetName(libname)) @@\
153 LibraryTargetName(libname): deplist @@\
155 MakeLibrary($@,objlist) @@\
157 BuildLibSupportLibs($*)
158 #endif /* NormalDepLibraryTarget */
160 #ifndef SharedLibraryDataTarget
161 #define SharedLibraryDataTarget(libname,rev,salist)
162 #endif /* SharedLibraryDataTarget */
164 #ifndef InstallSharedLibraryData
165 #define InstallSharedLibraryData(libname,rev,dest)
166 #endif /* InstallSharedLibraryData */
168 #ifndef InstallLibrary
169 #define InstallLibrary(libname,dest) @@\
170 install:: LibraryTargetName(libname) @@\
171 MakeDir($(DESTDIR)dest) @@\
172 $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) LibraryTargetName(libname) $(DESTDIR)dest @@\
173 $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) Concat(libname,.lib) $(DESTDIR)dest @@\
174 RanLibrary($(RANLIBINSTFLAGS) $(DESTDIR)dest/LibraryTargetName(libname))
175 #endif /* InstallLibrary */
178 #define LibMkdir(dir) ImakeHelper 11 dir
182 #define LibCleanDir(dir) @@\
183 ImakeIndir dir call RemoveFiles(*.Osuf)
186 #define MakeStaticLibrary(libname) $(AR) libname *.o
188 #ifndef UnsharedLibraryTarget
189 #define UnsharedLibraryTarget(libname,objlist,down,up) @@\
190 AllTarget(LibraryTargetName(Concat(libname,_s))) @@\
192 LibraryTargetName(Concat(libname,_s)): objlist @@\
194 ImakeIndir down MakeStaticLibrary(up/$@) @@\
196 _LinkBuildLibrary($@) @@\
198 install:: LibraryTargetName(Concat(libname,_s)) @@\
199 $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) LibraryTargetName(Concat(libname,_s)) $(DESTDIR)$(SHLIBDIR)
202 #ifndef UnsharedLibraryTarget3
203 #define UnsharedLibraryTarget3(libname,objlist1,objlist2,objlist3,down,up) @@\
204 AllTarget(LibraryTargetName(Concat(libname,_s))) @@\
206 LibraryTargetName(Concat(libname,_s)): objlist1 objlist2 objlist3 @@\
208 ImakeIndir down MakeStaticLibrary(up/$@) @@\
210 _LinkBuildLibrary($@) @@\
212 install:: LibraryTargetName(Concat(libname,_s)) @@\
213 $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) LibraryTargetName(Concat(libname,_s)) $(DESTDIR)$(SHLIBDIR)
214 #endif /* UnsharedLibraryTarget3 */
217 * DebuggedLibraryTarget - generate rules to create a debuggable library.
219 #ifndef DebuggedLibraryTarget
220 #define DebuggedLibraryTarget(libname,objlist) @@\
221 AllTarget(LibraryTargetNameSuffix(libname,_d)) @@\
223 LibraryTargetNameSuffix(libname,_d): objlist $(EXTRALIBRARYDEPS) @@\
225 ImakeIndir debugger MakeStaticLibrary(../$@) @@\
227 _LinkBuildLibrary($@)
229 #endif /* DebuggedLibraryTarget */
232 * ProfiledLibraryTarget - generate rules to create a profiled library.
234 #ifndef ProfiledLibraryTarget
235 #define ProfiledLibraryTarget(libname,objlist) @@\
236 AllTarget(LibraryTargetNameSuffix(libname,_p)) @@\
238 LibraryTargetNameSuffix(libname,_p): objlist $(EXTRALIBRARYDEPS) @@\
240 ImakeIndir profiled MakeStaticLibrary(../$@) @@\
242 _LinkBuildLibrary($@)
244 #endif /* ProfiledLibraryTarget */