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