111d341caSmrgXCOMM $Xorg: os2Lib.rules,v 1.3 2000/08/17 19:41:48 cpqbld Exp $ 211d341caSmrg 311d341caSmrg 411d341caSmrg 511d341caSmrgXCOMM $XFree86: xc/config/cf/os2Lib.rules,v 3.19 2003/10/11 09:40:15 herrb Exp $ 611d341caSmrg 711d341caSmrg/* 811d341caSmrg * OS2/EMX shared library rules (DLL version) 911d341caSmrg * 1011d341caSmrg#ifndef __UNIXOS2__ 1111d341caSmrg#error You must edit os2Lib.rules for your OS/2 dev system 1211d341caSmrg#endif */ 1311d341caSmrg 1411d341caSmrg#define HasSharedLibraries YES 1511d341caSmrg#define ForceNormalLib NO 1611d341caSmrg#define SharedOldX NO 1711d341caSmrg#define SharedDataSeparation NO 1811d341caSmrg#define SharedCodeDef /**/ 1911d341caSmrg#define SharedLibraryDef /**/ 2011d341caSmrg#define ShLibIncludeFile <os2Lib.tmpl> 2111d341caSmrg#define SharedLibraryLoadFlags /**/ 2211d341caSmrg#define PositionIndependentCFlags -Zmtd 2311d341caSmrg 2411d341caSmrg#define NormalSharedLibObjCompile(options) RemoveFile($@) @@\ 2511d341caSmrg $(CC) -c $(CFLAGS) options $(SHLIBDEF) $(SHAREDCODEDEF) $(PICFLAGS) $*.c 2611d341caSmrg 2711d341caSmrg#define InstallSharedLibrary(libname,rev,dest) @@\ 2811d341caSmrginstall:: libname.dll LibraryTargetName(libname) libname.lib @@\ 2911d341caSmrg MakeDir($(DESTDIR)dest) @@\ 3011d341caSmrg $(INSTALL) -c $(INSTLIBFLAGS) $(DLLNAME) $(DESTDIR)dest @@\ 3111d341caSmrg $(INSTALL) -c $(INSTLIBFLAGS) LibraryTargetName(libname) $(DESTDIR)dest @@\ 3211d341caSmrg $(INSTALL) -c $(INSTLIBFLAGS) libname.a $(DESTDIR)dest @@\ 3311d341caSmrg $(INSTALL) -c $(INSTLIBFLAGS) libname.lib $(DESTDIR)dest 3411d341caSmrg 3511d341caSmrg#define LinkBuildLibrary2(slib,ext) MakeDir($(BUILDLIBDIR)) @@\ 3611d341caSmrg RemoveFile($(BUILDLIBDIR)/slib.ext) @@\ 3711d341caSmrg (cd $(BUILDLIBDIR); $(LN) $(BUILDINCTOP)/$(CURRENT_DIR)/slib.ext .) 3811d341caSmrg 3911d341caSmrg#define LinkBuildLibrary3(slib,rev,ext) MakeDir($(BUILDLIBDIR)) @@\ 4011d341caSmrg RemoveFile($(BUILDLIBDIR)/Concat3(slib,rev,ext)) @@\ 4111d341caSmrg (cd $(BUILDLIBDIR); $(LN) $(BUILDINCTOP)/$(CURRENT_DIR)/Concat3(slib,rev,ext) .) 4211d341caSmrg 4311d341caSmrg#define LinkBuildLibrary4(pre,slib,rev,ext) MakeDir($(BUILDLIBDIR)) @@\ 4411d341caSmrg RemoveFile($(BUILDLIBDIR)/Concat4(pre,slib,rev,ext)) @@\ 4511d341caSmrg (cd $(BUILDLIBDIR); $(LN) $(BUILDINCTOP)/$(CURRENT_DIR)/Concat4(pre,slib,rev,ext) .) 4611d341caSmrg 4711d341caSmrg#define LinkBuildLibrary5(slib,rev,ext) MakeDir($(BUILDLIBDIR)) @@\ 4811d341caSmrg RemoveFile($(BUILDLIBDIR)/$(DLLNAME)) @@\ 4911d341caSmrg (cd $(BUILDLIBDIR); $(LN) $(BUILDINCTOP)/$(CURRENT_DIR)/$(INSTDLLNAME) .) 5011d341caSmrg 5111d341caSmrg EMXIMP = emximp 5211d341caSmrg EMXOMF = emxomf -p 32 5311d341caSmrg SHLD = gcc -Zdll -Zmtd -Zmap -Zbin-files 5411d341caSmrg SHXXLD = g++ -Zdll -Zmtd -Zmap -Zbin-files 5511d341caSmrg SHADDLIBS = ExtraLibraries -lc_import 5611d341caSmrg DLLNAME = `cat $(TOP)/$(CURRENT_DIR)/dll.name` 5711d341caSmrg INSTDLLNAME = `cat $(BUILDINCTOP)/$(CURRENT_DIR)/dll.name` 5811d341caSmrg 5911d341caSmrg#define BuildDllSupportLibs3(slib,rev) @@\ 6011d341caSmrg $(EMXIMP) -o Concat3(slib,rev,.imp) Concat3(slib,os2,.def) @@\ 6111d341caSmrg $(EMXIMP) -o Concat4(lib,slib,rev,.a) Concat3(slib,rev,.imp) @@\ 6211d341caSmrg $(EMXIMP) -o Concat3(slib,rev,_o.imp) Concat3(slib,o_os2,.def) @@\ 6311d341caSmrg $(EMXIMP) -o Concat3(slib,rev,.a) Concat3(slib,rev,_o.imp) @@\ 6411d341caSmrg $(EMXOMF) -s -l -o Concat3(slib,rev,.lib) Concat3(slib,rev,.a) @@\ 6511d341caSmrg LinkBuildLibrary4(lib,slib,rev,.a) @@\ 6611d341caSmrg 6711d341caSmrg#define BuildLibSupportLibs(slib) @@\ 6811d341caSmrg $(EMXOMF) -s -l -o Concat(slib,.lib) Concat(slib,.a) @@\ 6911d341caSmrg LinkBuildLibrary3(lib,slib,.a) @@\ 7011d341caSmrg 7111d341caSmrg#define BuildLibSupportLibs2(slib) @@\ 7211d341caSmrg $(EMXOMF) -s -l -o Concat(slib,.lib) Concat3(lib,slib,.a) @@\ 7311d341caSmrg LinkBuildLibrary3(lib,slib,.a) @@\ 7411d341caSmrg 7511d341caSmrg#define SharedLibraryTarget(libname,rev,solist,down,up) @@\ 7611d341caSmrgAllTarget(Concat3(libname,rev,.dll)) @@\ 7711d341caSmrg.SUFFIXES: .def @@\ 7811d341caSmrg @@\ 7911d341caSmrgConcat(libname,os2.def): Concat(libname,-def.cpp) @@\ 8011d341caSmrg cmd /c $(subst /,\\,$(CONFIGSRC)/util/makedef.cmd) $(CONFIGSRC)/cf/os2def.db libname @@\ 8111d341caSmrg cmd /c $(subst /,\\,$(CONFIGSRC)/util/makedef.cmd) -O1 $(CONFIGSRC)/cf/os2def.db libname @@\ 8211d341caSmrg @@\ 8311d341caSmrgConcat3(libname,rev,.dll): solist Concat(libname,os2.def) @@\ 8411d341caSmrg RemoveFile($@) @@\ 8511d341caSmrg $(SHLD) -o $(DLLNAME) solist $(REQUIREDLIBS) $(SHADDLIBS) Concat(libname,o_os2.def) @@\ 8611d341caSmrg touch $@ @@\ 8711d341caSmrg BuildDllSupportLibs3(libname,rev) @@\ 8811d341caSmrg LinkBuildLibrary5(libname,rev,.dll) @@\ 8911d341caSmrg @@\ 9011d341caSmrgclean:: @@\ 9111d341caSmrg RemoveFiles(Concat3(libname,rev,.imp) Concat3(libname,rev,_o.imp)) @@\ 9211d341caSmrg RemoveFiles(Concat(libname,os2.def) Concat(libname,o_os2.def)) @@\ 9311d341caSmrg RemoveFile(dll.name) 9411d341caSmrg 9511d341caSmrg#define NormalLibraryTarget(libname,objlist) @@\ 9611d341caSmrgAllTarget(LibraryTargetName(libname)) @@\ 9711d341caSmrg @@\ 9811d341caSmrgLibraryTargetName(libname): objlist @@\ 9911d341caSmrg RemoveFile($@) @@\ 10011d341caSmrg MakeLibrary($@,objlist) @@\ 10111d341caSmrg BuildLibSupportLibs2(libname) 10211d341caSmrg 10311d341caSmrg#define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up) @@\ 10411d341caSmrgAllTarget(Concat3(libname,rev,.dll)) @@\ 10511d341caSmrg @@\ 10611d341caSmrgConcat(libname,os2.def): deplist $(EXTRALIBRARYDEPS) Concat(libname,-def.cpp) @@\ 10711d341caSmrg cmd /c $(subst /,\\,$(CONFIGSRC)/util/makedef.cmd) $(CONFIGSRC)/cf/os2def.db libname @@\ 10811d341caSmrg cmd /c $(subst /,\\,$(CONFIGSRC)/util/makedef.cmd) -O1 $(CONFIGSRC)/cf/os2def.db libname @@\ 10911d341caSmrg @@\ 11011d341caSmrgConcat3(libname,rev,.dll): Concat(libname,os2.def) @@\ 11111d341caSmrg RemoveFile($@) @@\ 11211d341caSmrg (cd down; $(SHLD) -o up/$(DLLNAME) solist $(REQUIREDLIBS) $(SHADDLIBS) Concat(libname,o_os2.def)) @@\ 11311d341caSmrg touch $@ @@\ 11411d341caSmrg BuildDllSupportLibs3(libname,rev) @@\ 11511d341caSmrg LinkBuildLibrary5(libname,rev,.dll) @@\ 11611d341caSmrg @@\ 11711d341caSmrgclean:: @@\ 11811d341caSmrg RemoveFiles(Concat3(libname,rev,.imp) Concat3(libname,rev,_o.imp)) @@\ 11911d341caSmrg RemoveFiles(Concat(libname,os2.def) Concat(libname,o_os2.def)) @@\ 12011d341caSmrg RemoveFile(dll.name) 12111d341caSmrg 12211d341caSmrg#define SharedDepCplusplusLibraryTarget(libname,rev,deplist,solist,down,up) @@\ 12311d341caSmrgAllTarget(Concat3(libname,rev,.dll)) @@\ 12411d341caSmrg @@\ 12511d341caSmrgConcat(libname,os2.def): deplist $(EXTRALIBRARYDEPS) Concat(libname,-def.cpp) @@\ 12611d341caSmrg cmd /c $(subst /,\\,$(CONFIGSRC)/util/makedef.cmd) $(CONFIGSRC)/cf/os2def.db libname @@\ 12711d341caSmrg cmd /c $(subst /,\\,$(CONFIGSRC)/util/makedef.cmd) -O1 $(CONFIGSRC)/cf/os2def.db libname @@\ 12811d341caSmrg @@\ 12911d341caSmrgConcat3(libname,rev,.dll): Concat(libname,os2.def) @@\ 13011d341caSmrg RemoveFile($@) @@\ 13111d341caSmrg (cd down; $(SHXXLD) -o up/$(DLLNAME) solist $(REQUIREDLIBS) $(SHADDLIBS) Concat(libname,o_os2.def)) @@\ 13211d341caSmrg touch $@ @@\ 13311d341caSmrg BuildDllSupportLibs3(libname,rev) @@\ 13411d341caSmrg LinkBuildLibrary5(libname,rev,.dll) @@\ 13511d341caSmrg @@\ 13611d341caSmrgclean:: @@\ 13711d341caSmrg RemoveFiles(Concat3(libname,rev,.imp) Concat3(libname,rev,_o.imp)) @@\ 13811d341caSmrg RemoveFiles(Concat(libname,os2.def) Concat(libname,o_os2.def)) @@\ 13911d341caSmrg RemoveFile(dll.name) 14011d341caSmrg 14111d341caSmrg#define SharedDepModuleTarget(name,deps,solist) @@\ 14211d341caSmrgAllTarget(name) @@\ 14311d341caSmrg @@\ 14411d341caSmrgname: deps @@\ 14511d341caSmrg $(CC) -o $@ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS) BaseShLibReqs @@\ 14611d341caSmrg @@\ 14711d341caSmrgclean:: @@\ 14811d341caSmrg RemoveFile(name) 14911d341caSmrg 15011d341caSmrg#define SharedLibraryDataTarget(libname,rev,salist) 15111d341caSmrg 15211d341caSmrg#define InstallSharedLibraryData(libname,rev,dest) 15311d341caSmrg 15411d341caSmrg#define InstallLibrary(libname,dest) @@\ 15511d341caSmrginstall:: LibraryTargetName(libname) Concat(libname,.lib) @@\ 15611d341caSmrg MakeDir($(DESTDIR)dest) @@\ 15711d341caSmrg $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) LibraryTargetName(libname) $(DESTDIR)dest @@\ 15811d341caSmrg $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) Concat(libname,.lib) $(DESTDIR)dest @@\ 15911d341caSmrg RanLibrary($(RANLIBINSTFLAGS) $(DESTDIR)dest/LibraryTargetName(libname)) 16011d341caSmrg 16111d341caSmrg#define MakeStaticLibrary(libname) $(AR) libname *.o 16211d341caSmrg 16311d341caSmrg#define UnsharedLibraryTarget(libname,objlist,down,up) @@\ 16411d341caSmrgAllTarget(LibraryTargetNameSuffix(libname,_s)) @@\ 16511d341caSmrg @@\ 16611d341caSmrgLibraryTargetNameSuffix(libname,_s): objlist @@\ 16711d341caSmrg RemoveFile($@) @@\ 16811d341caSmrg (cd down; MakeStaticLibrary(up/$@)) @@\ 16911d341caSmrg RanLibrary($@) @@\ 17011d341caSmrg _LinkBuildLibrary($@) @@\ 17111d341caSmrg @@\ 17211d341caSmrginstall:: LibraryTargetNameSuffix(libname,_s) @@\ 17311d341caSmrg $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) LibraryTargetNameSuffix(libname,_s) $(DESTDIR)$(SHLIBDIR) 17411d341caSmrg 17511d341caSmrg#define UnsharedLibraryTarget3(libname,objlist1,objlist2,objlist3,down,up) @@\ 17611d341caSmrgAllTarget(LibraryTargetNameSuffix(libname,_s)) @@\ 17711d341caSmrg @@\ 17811d341caSmrgLibraryTargetNameSuffix(libname,_s): objlist1 objlist2 objlist3 @@\ 17911d341caSmrg RemoveFile($@) @@\ 18011d341caSmrg (cd down; MakeStaticLibrary(up/$@)) @@\ 18111d341caSmrg RanLibrary($@) @@\ 18211d341caSmrg _LinkBuildLibrary($@) @@\ 18311d341caSmrg @@\ 18411d341caSmrginstall:: LibraryTargetNameSuffix(libname,_s) @@\ 18511d341caSmrg $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) LibraryTargetNameSuffix(libname,_s) $(DESTDIR)$(SHLIBDIR) 18611d341caSmrg 18711d341caSmrg#define DebuggedLibraryTarget(libname,objlist) @@\ 18811d341caSmrgAllTarget(LibraryTargetNameSuffix(libname,_d)) @@\ 18911d341caSmrg @@\ 19011d341caSmrgLibraryTargetNameSuffix(libname,_d): objlist $(EXTRALIBRARYDEPS) @@\ 19111d341caSmrg RemoveFile($@) @@\ 19211d341caSmrg (cd debugger; MakeStaticLibrary(../$@)) @@\ 19311d341caSmrg RanLibrary($@) @@\ 19411d341caSmrg _LinkBuildLibrary($@) 19511d341caSmrg 19611d341caSmrg#define ProfiledLibraryTarget(libname,objlist) @@\ 19711d341caSmrgAllTarget(LibraryTargetNameSuffix(libname,_p)) @@\ 19811d341caSmrg @@\ 19911d341caSmrgLibraryTargetNameSuffix(libname,_p): objlist $(EXTRALIBRARYDEPS) @@\ 20011d341caSmrg RemoveFile($@) @@\ 20111d341caSmrg (cd profiled; MakeStaticLibrary(../$@)) @@\ 20211d341caSmrg RanLibrary($@) @@\ 20311d341caSmrg _LinkBuildLibrary($@) 20411d341caSmrg 20511d341caSmrg#define LibraryModuleTarget(module,objlist) @@\ 20611d341caSmrgAllTarget(LibraryTargetName(module)) @@\ 20711d341caSmrg @@\ 20811d341caSmrgLibraryTargetName(module): objlist @@\ 20911d341caSmrg RemoveFile($@) @@\ 21011d341caSmrg MakeLibrary($@,objlist) 211