ibmLib.rules revision 1c80d5b0
111d341caSmrgXCOMM $Xorg: ibmLib.rules,v 1.3 2000/08/17 19:41:47 cpqbld Exp $ 24c61c93dSmrgXCOMM $XdotOrg: xc/config/cf/ibmLib.rules,v 1.1.4.3 2003/12/15 16:42:40 kaleb Exp $ 311d341caSmrg 411d341caSmrg/* 511d341caSmrg * AIX shared library rules 611d341caSmrg */ 711d341caSmrg 811d341caSmrgXCOMM $XFree86: xc/config/cf/ibmLib.rules,v 3.5 2000/02/13 06:15:18 dawes Exp $ 911d341caSmrg#ifndef HasSharedLibraries 1011d341caSmrg# define HasSharedLibraries YES 1111d341caSmrg#endif 1211d341caSmrg#ifndef ForceNormalLib 1311d341caSmrg# define ForceNormalLib NO 1411d341caSmrg#endif 1511d341caSmrg#ifndef SharedDataSeparation 1611d341caSmrg# define SharedDataSeparation NO 1711d341caSmrg#endif 1811d341caSmrg#ifndef SharedCodeDef 1911d341caSmrg# define SharedCodeDef -DSHAREDCODE 2011d341caSmrg#endif 2111d341caSmrg#if OSMajorVersion < 5 2211d341caSmrg# ifndef SharedLibraryDef 2311d341caSmrg# define SharedLibraryDef -DAIXSHLIB 2411d341caSmrg# endif 2511d341caSmrg#else 2611d341caSmrg# define SharedLibraryDef /**/ 2711d341caSmrg#endif 2811d341caSmrg#ifndef ShLibIncludeFile 2911d341caSmrg# define ShLibIncludeFile <ibmLib.tmpl> 3011d341caSmrg#endif 3111d341caSmrg#ifndef PositionIndependentCFlags 3211d341caSmrg# define PositionIndependentCFlags -bM\:SRE 3311d341caSmrg#endif 3411d341caSmrg#ifndef ExtraLoadFlags 3511d341caSmrg# define ExtraLoadFlags -bnodelcsect 3611d341caSmrg#endif 3711d341caSmrg#if !defined(LdPostLib) && !defined(UseInstalled) && OSMajorVersion > 3 3811d341caSmrg# if ThreadedX 3911d341caSmrg# define LdPostLib -bnoipath -blibpath:$(USRLIBDIRPATH):/usr/lib/threads:/usr/lib:/lib 4011d341caSmrg# else 4111d341caSmrg# define LdPostLib -bnoipath -blibpath:$(USRLIBDIRPATH):/usr/lib:/lib 4211d341caSmrg# endif 4311d341caSmrg# define SharedLibPostRef $(LDPOSTLIBS) 4411d341caSmrg#endif 4511d341caSmrg#ifndef SharedLibPostRef 4611d341caSmrg# define SharedLibPostRef $(LDPOSTLIBS) 4711d341caSmrg#endif 4811d341caSmrg#if ThreadedX 4911d341caSmrg# define BaseShLibReqs -lc_r -lm 5011d341caSmrg#else 5111d341caSmrg# define BaseShLibReqs -lc -lm 5211d341caSmrg#endif 5311d341caSmrg#ifndef UseExportLists 5411d341caSmrg# define UseExportLists YES 5511d341caSmrg#endif 5611d341caSmrg 5711d341caSmrg/* 5811d341caSmrg * MakeExportList - generate an export list file for linking libraries. 5911d341caSmrg */ 6011d341caSmrg#ifndef MakeExportList 6111d341caSmrg# if UseExportLists 6211d341caSmrg# define MakeExportList(libname,result) \ 6311d341caSmrg @-RemoveFile(result) @@\ 6411d341caSmrg case ,$(SHR4OBJLIBS), in *,libname,*) shr4obj=shr4.o;; esac &&\ @@\ 6511d341caSmrg echo "#! $@ ($${shr4obj:-shr.o})" > result @@\ 6611d341caSmrg if [ -f Concat(lib,libname.elist) ]; then \ @@\ 6711d341caSmrg $(CPP) $(ALLINCLUDES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(DEFINES) Concat(lib,libname.elist) | CppSedMagic > $@.list; \ @@\ 6811d341caSmrg $(EXPORTLISTGEN) $@~ $@.list >> result; \ @@\ 6911d341caSmrg RemoveFile($@.list); \ @@\ 7011d341caSmrg else \ @@\ 7111d341caSmrg dump -g $@~ | sed -n -e 's/^[ ]*[0-9][0-9]*[ ]*\([^ .][^ ]*\)$$/\1/p' >> result; \ @@\ 7211d341caSmrg fi; 7311d341caSmrg# else 7411d341caSmrg# define MakeExportList(libname,result) \ 7511d341caSmrg @-RemoveFile(result) @@\ 7611d341caSmrg case ,$(SHR4OBJLIBS), in *,libname,*) shr4obj=shr4.o;; esac &&\ @@\ 7711d341caSmrg echo "#! $@ ($${shr4obj:-shr.o})" > result @@\ 7811d341caSmrg dump -g $@~ | sed -n -e 's/^[ ]*[0-9][0-9]*[ ]*\([^ .][^ ]*\)$$/\1/p' >> result; 7911d341caSmrg# endif 8011d341caSmrg#endif /* MakeExportList */ 8111d341caSmrg 8211d341caSmrg 8311d341caSmrg#if !defined(UseInstalled) && !defined(UseInstalledX11) \ 8411d341caSmrg && !defined(UseImports) && !defined(ImportX11) 8511d341caSmrg /* we want this to be defined only when building X */ 8611d341caSmrg 8711d341caSmrg# if OSMajorVersion < 5 8811d341caSmrg# if OSMajorVersion < 4 8911d341caSmrg/* 9011d341caSmrg * SharedLibReferences - variables for shared libraries 9111d341caSmrg */ 9211d341caSmrg 9311d341caSmrg# ifndef SharedLibReferences 9411d341caSmrg# define SharedLibReferences(varname,libname,libsource,revname,rev) @@\ 9511d341caSmrgConcat3(DEP,varname,LIB) = /**/ @@\ 9611d341caSmrgConcat(varname,LIB) = _Use(Concat(-l,libname),Concat(libsource/lib,libname.a)) @@\ 9711d341caSmrgLintLibReferences(varname,libname,libsource) 9811d341caSmrg# endif 9911d341caSmrg 10011d341caSmrg# else /* OSMajorVersion < 4 */ 10111d341caSmrg 10211d341caSmrg# ifndef SharedLibReferences 10311d341caSmrg# define SharedLibReferences(varname,libname,libsource,revname,rev) @@\ 10411d341caSmrgConcat3(DEP,varname,LIB) = /**/ @@\ 10511d341caSmrgConcat(varname,LIB) = _Use(Concat(-l,libname),Concat($(BUILDLIBDIR),/libname.imp) Concat3($(BUILDLIBDIR),/lib,libname.a)) @@\ 10611d341caSmrgLintLibReferences(varname,libname,libsource) 10711d341caSmrg# endif 10811d341caSmrg 10911d341caSmrg# endif 11011d341caSmrg# else /* OSMajorVersion < 5 */ 11111d341caSmrg 11211d341caSmrg# ifndef SharedLibReferences 11311d341caSmrg# define SharedLibReferences(varname,libname,libsource,revname,rev) @@\ 11411d341caSmrgConcat3(DEP,varname,LIB) = /**/ @@\ 11511d341caSmrgConcat(varname,LIB) = _Use(Concat(-l,libname), Concat3($(BUILDLIBDIR),/lib,libname.so)) @@\ 11611d341caSmrgLintLibReferences(varname,libname,libsource) 11711d341caSmrg# endif 11811d341caSmrg 11911d341caSmrg# endif 12011d341caSmrg 12111d341caSmrg# if OSMajorVersion < 5 12211d341caSmrg# if OSMajorVersion < 4 12311d341caSmrg/* 12411d341caSmrg * SharedFontLibReferences - shared font libraries 12511d341caSmrg */ 12611d341caSmrg 12711d341caSmrg# ifndef SharedFontLibReferences 12811d341caSmrg# define SharedFontLibReferences() @@\ 12911d341caSmrgDEPFONTLIB = /**/ @@\ 13011d341caSmrgFONTLIB = -L$(FREETYPELIBDIR) _Use(-lXfont,$(FONTLIBSRC)/libXfont.a) @@\ 13111d341caSmrgLintLibReferences(XFONT,Xfont,$(FONTLIBSRC)) 13211d341caSmrg# endif 13311d341caSmrg# else 13411d341caSmrg# ifndef SharedFontLibReferences 13511d341caSmrg# define SharedFontLibReferences() @@\ 13611d341caSmrgDEPFONTLIB = /**/ @@\ 13711d341caSmrgFONTLIB = -L$(FREETYPELIBDIR) _Use(-lXfont,$(BUILDLIBDIR)/font.imp) $(BUILDLIBDI)/libXfont.a)) @@\ 13811d341caSmrgLintLibReferences(XFONT,Xfont,$(FONTLIBSRC)) 13911d341caSmrg# endif 14011d341caSmrg# endif 14111d341caSmrg# else /* OSMajorVersion < 5 */ 14211d341caSmrg# ifndef SharedFontLibReferences 14311d341caSmrg# define SharedFontLibReferences() @@\ 14411d341caSmrgDEPFONTLIB = /**/ @@\ 14511d341caSmrgFONTLIB = -L$(FREETYPELIBDIR) _Use(-lXfont,$(BUILDLIBDI)/libXfont.so)) @@\ 14611d341caSmrgLintLibReferences(XFONT,Xfont,$(FONTLIBSRC)) 14711d341caSmrg# endif 14811d341caSmrg 14911d341caSmrg# endif 15011d341caSmrg 15111d341caSmrg/* 15211d341caSmrg * SharedDSLibReferences - variables for shared libraries 15311d341caSmrg */ 15411d341caSmrg# ifndef SharedDSLibReferences 15511d341caSmrg# define SharedDSLibReferences(varname,libname,libsource,revname,rev) @@\ 15611d341caSmrgSharedLibReferences(varname,libname,libsource,revname,rev) 15711d341caSmrg# endif 15811d341caSmrg 15911d341caSmrg# if OSMajorVersion == 4 16011d341caSmrg/* 16111d341caSmrg * UnsharedLibReferences - variables for unshared libraries 16211d341caSmrg */ 16311d341caSmrg# ifndef UnsharedLibReferences 16411d341caSmrg# define UnsharedLibReferences(varname,libname,libsource) @@\ 16511d341caSmrgConcat3(DEP,varname,LIB) = _UseCat($(USRLIBDIR)/lib,$(BUILDLIBDIR)/lib,libname.a) @@\ 16611d341caSmrgConcat(varname,LIB) = _Use(Concat(-l,libname),Concat($(BUILDLIBDIR)/lib,libname.a)) @@\ 16711d341caSmrgLintLibReferences(varname,libname,libsource) 16811d341caSmrg# endif 16911d341caSmrg# endif 17011d341caSmrg 17111d341caSmrg#endif /* !defined(UseInstalled) && !defined(UseInstalledX11) ... */ 17211d341caSmrg 17311d341caSmrg 17411d341caSmrg/* 17511d341caSmrg * InstallSharedLibrary - generate rules to install the shared library. 17611d341caSmrg */ 17711d341caSmrg#ifndef InstallSharedLibrary 17811d341caSmrg# if OSMajorVersion < 5 17911d341caSmrg# define InstallSharedLibrary(libname,rev,dest) @@\ 18011d341caSmrgInstallLibrary(libname,dest) 18111d341caSmrg# else /* OSMajorVersion < 5 */ 18211d341caSmrg# define InstallSharedLibrary(libname,rev,dest) @@\ 18311d341caSmrginstall:: Concat(lib,libname.so) @@\ 18411d341caSmrg MakeDir($(DESTDIR)dest) @@\ 18511d341caSmrg $(INSTALL) $(INSTALLFLAGS) $(INSTBINFLAGS) Concat(lib,libname.so) $(DESTDIR)dest 18611d341caSmrg# endif /* OSMajorVersion < 5 */ 18711d341caSmrg#endif /* InstallSharedLibrary */ 18811d341caSmrg 18911d341caSmrg/* 19011d341caSmrg * InstallSharedLibraryData - generate rules to install the shared library data 19111d341caSmrg */ 19211d341caSmrg#ifndef InstallSharedLibraryData 19311d341caSmrg# define InstallSharedLibraryData(libname,rev,dest) 19411d341caSmrg#endif /* InstallSharedLibraryData */ 19511d341caSmrg 19611d341caSmrg/* 19711d341caSmrg * SharedLibraryTarget - generate rules to create a shared library; 19811d341caSmrg * build it into a different name so that the we do not hose people by having 19911d341caSmrg * the library gone for long periods. 20011d341caSmrg * 2011c80d5b0Smrg * IBM uses an unusual shared object file name (shr4.o) in some libraries. 20211d341caSmrg * Duplicate this behavior to preserve compatibility with IBM's libraries. 20311d341caSmrg */ 20411d341caSmrg#if OSMajorVersion < 5 20511d341caSmrg# if OSMajorVersion < 4 20611d341caSmrg 20711d341caSmrg# ifndef SharedLibraryTarget 20811d341caSmrg# define SharedLibraryTarget(libname,rev,solist,down,up) @@\ 20911d341caSmrgAllTarget(Concat(lib,libname.a)) @@\ 21011d341caSmrg @@\ 21111d341caSmrgConcat(lib,libname.a): solist $(UNSHAREDOBJS) $(EXTRALIBRARYDEPS) @@\ 21211d341caSmrg $(RM) $@~ shr.o shr4.o @@\ 21311d341caSmrg (cd down; $(AR) up/$@~ solist) @@\ 21411d341caSmrg dump -g $@~ | sed -n -e 's/^[ ]*[0-9][0-9]*[ ]*\([^ .][^ ]*\)$$/\1/p' > $@.syms @@\ 21511d341caSmrg $(LD) -o shr.o $@~ -H512 -T512 -bM\:SRE -bE\:$@.syms $(REQUIREDLIBS) BaseShLibReqs SharedLibPostRef @@\ 21611d341caSmrg $(LN) shr.o shr4.o @@\ 21711d341caSmrg $(RM) $@~ @@\ 21811d341caSmrg case ,$(SHR4OBJLIBS), in *,libname,*) shr4obj=shr4.o;; esac &&\ @@\ 21911d341caSmrg $(AR) $@~ $${shr4obj} shr.o $(UNSHAREDOBJS) @@\ 22011d341caSmrg $(RM) $@.syms $@ shr.o shr4.o @@\ 22111d341caSmrg $(MV) $@~ $@ @@\ 22211d341caSmrg LinkBuildLibrary($@) @@\ 22311d341caSmrg @@\ 22411d341caSmrgclean:: @@\ 22511d341caSmrg $(RM) Concat(lib,libname.a) 22611d341caSmrg# endif /* SharedLibraryTarget */ 22711d341caSmrg 22811d341caSmrg# else /* OSMajorVersion < 4 */ 22911d341caSmrg 23011d341caSmrg# ifndef SharedLibraryTarget 23111d341caSmrg# define SharedLibraryTarget(libname,rev,solist,down,up) @@\ 23211d341caSmrgAllTarget(Concat(lib,libname.a)) @@\ 23311d341caSmrg @@\ 23411d341caSmrgConcat(lib,libname.a): solist $(UNSHAREDOBJS) $(EXTRALIBRARYDEPS) @@\ 23511d341caSmrg RemoveFiles($@~ shr.o shr4.o) @@\ 23611d341caSmrg (cd down; $(AR) up/$@~ solist) @@\ 23711d341caSmrg MakeExportList(libname,libname.imp) @@\ 23811d341caSmrg $(LD) -o shr.o $@~ -H512 -T512 -bM\:SRE -bE\:libname.imp -bnoentry $(REQUIREDLIBS) BaseShLibReqs $(LDPOSTLIBS) @@\ 23911d341caSmrg $(LN) shr.o shr4.o @@\ 24011d341caSmrg RemoveFile($@~) @@\ 24111d341caSmrg case ,$(SHR4OBJLIBS), in *,libname,*) shr4obj=shr4.o;; esac &&\ @@\ 24211d341caSmrg $(AR) $@~ $${shr4obj} shr.o $(UNSHAREDOBJS) @@\ 24311d341caSmrg RemoveFile($@) @@\ 24411d341caSmrg $(MV) $@~ $@ @@\ 24511d341caSmrg LinkBuildLibrary($@) @@\ 24611d341caSmrg LinkBuildLibrary(libname.imp) @@\ 24711d341caSmrg @@\ 24811d341caSmrgclean:: @@\ 24911d341caSmrg $(RM) Concat(lib,libname.a) 25011d341caSmrg# endif /* SharedLibraryTarget */ 25111d341caSmrg# endif /* OSMajorVersion < 4 */ 25211d341caSmrg#else /* OSMajorVersion < 5 */ 25311d341caSmrg# ifndef SharedLibraryTarget 25411d341caSmrg# define SharedLibraryTarget(libname,rev,solist,down,up) @@\ 25511d341caSmrgAllTarget(Concat(lib,libname.so)) @@\ 25611d341caSmrg @@\ 25711d341caSmrgConcat(lib,libname.so): solist $(EXTRALIBRARYDEPS) @@\ 25811d341caSmrg $(RM) $@~ @@\ 25911d341caSmrg $(AR) $*.a solist @@\ 26011d341caSmrg dump -g $*.a | sed -n -e 's/^[ ]*[0-9][0-9]*[[:space:]]*\([_[:alpha:]][[:alnum:]]*\)/\1/p' | egrep -v \\\. | sort | uniq > $*.syms @@\ 26111d341caSmrg $(LD) -bnoipath -bnoentry -bM\:SRE -bE\:$*.syms -o $@~ solist $(REQUIREDLIBS) BaseShLibReqs -lc @@\ 26211d341caSmrg $(RM) $@ $*.a $*.syms @@\ 26311d341caSmrg $(MV) $@~ $@ @@\ 26411d341caSmrg LinkBuildLibrary($@) @@\ 26511d341caSmrg @@\ 26611d341caSmrgclean:: @@\ 26711d341caSmrg $(RM) Concat(lib,libname.so.rev) Concat(lib,libname.so) 26811d341caSmrg 26911d341caSmrg# endif /* SharedLibraryTarget */ 27011d341caSmrg#endif /* OSMajorVersion < 5 */ 27111d341caSmrg 27211d341caSmrg/* 27311d341caSmrg * SharedDepLibraryTarget - generate rules to create a shared library. 27411d341caSmrg */ 27511d341caSmrg#if OSMajorVersion < 5 27611d341caSmrg# if OSMajorVersion < 4 27711d341caSmrg 27811d341caSmrg# ifndef SharedDepLibraryTarget 27911d341caSmrg# define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up) @@\ 28011d341caSmrgAllTarget(Concat(lib,libname.a)) @@\ 28111d341caSmrg @@\ 28211d341caSmrgConcat(lib,libname.a): deplist $(UNSHAREDOBJS) $(EXTRALIBRARYDEPS) @@\ 28311d341caSmrg $(RM) $@~ shr.o shr4.o @@\ 28411d341caSmrg (cd down; $(AR) up/$@~ solist) @@\ 28511d341caSmrg dump -g $@~ | sed -n -e 's/^[ ]*[0-9][0-9]*[ ]*\([^ .][^ ]*\)$$/\1/p' > $@.syms @@\ 28611d341caSmrg $(LD) -o shr.o $@~ -H512 -T512 -bM\:SRE -bE\:$@.syms $(REQUIREDLIBS) BaseShLibReqs SharedLibPostRef @@\ 28711d341caSmrg $(LN) shr.o shr4.o @@\ 28811d341caSmrg $(RM) $@~ @@\ 28911d341caSmrg case ,$(SHR4OBJLIBS), in *,libname,*) shr4obj=shr4.o;; esac &&\ @@\ 29011d341caSmrg $(AR) $@~ $${shr4obj} shr.o $(UNSHAREDOBJS) @@\ 29111d341caSmrg $(RM) $@.syms $@ shr.o shr4.o @@\ 29211d341caSmrg $(MV) $@~ $@ @@\ 29311d341caSmrg LinkBuildLibrary($@) @@\ 29411d341caSmrg @@\ 29511d341caSmrgclean:: @@\ 29611d341caSmrg $(RM) Concat(lib,libname.a) 29711d341caSmrg# endif /* SharedDepLibraryTarget */ 29811d341caSmrg 29911d341caSmrg# else /* OSMajorVersion < 4 */ 30011d341caSmrg 30111d341caSmrg# ifndef SharedDepLibraryTarget 30211d341caSmrg# define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up) @@\ 30311d341caSmrgAllTarget(Concat(lib,libname.a)) @@\ 30411d341caSmrg @@\ 30511d341caSmrgConcat(lib,libname.a): deplist $(UNSHAREDOBJS) $(EXTRALIBRARYDEPS) @@\ 30611d341caSmrg RemoveFiles($@~ shr.o shr4.o) @@\ 30711d341caSmrg (cd down; $(AR) up/$@~ solist) @@\ 30811d341caSmrg MakeExportList(libname,libname.imp) @@\ 30911d341caSmrg $(LD) -o shr.o $@~ -H512 -T512 -bM\:SRE -bE\:libname.imp -bnoentry $(REQUIREDLIBS) BaseShLibReqs $(LDPOSTLIBS) @@\ 31011d341caSmrg $(LN) shr.o shr4.o @@\ 31111d341caSmrg RemoveFile($@~) @@\ 31211d341caSmrg case ,$(SHR4OBJLIBS), in *,libname,*) shr4obj=shr4.o;; esac &&\ @@\ 31311d341caSmrg $(AR) $@~ $${shr4obj} shr.o $(UNSHAREDOBJS) @@\ 31411d341caSmrg RemoveFile($@) @@\ 31511d341caSmrg $(MV) $@~ $@ @@\ 31611d341caSmrg LinkBuildLibrary($@) @@\ 31711d341caSmrg LinkBuildLibrary(libname.imp) @@\ 31811d341caSmrg @@\ 31911d341caSmrgclean:: @@\ 32011d341caSmrg $(RM) Concat(lib,libname.a) 32111d341caSmrg# endif /* SharedDepLibraryTarget */ 32211d341caSmrg 32311d341caSmrg# endif /* OSMajorVersion < 4 */ 32411d341caSmrg#else /* OSMajorVersion < 5 */ 32511d341caSmrg# ifndef SharedDepLibraryTarget 32611d341caSmrg# define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up) @@\ 32711d341caSmrgAllTarget(Concat(lib,libname.so)) @@\ 32811d341caSmrg @@\ 32911d341caSmrgConcat(lib,libname.so): deplist $(EXTRALIBRARYDEPS) @@\ 33011d341caSmrg $(RM) $@~ @@\ 33111d341caSmrg $(AR) $*.a solist @@\ 33211d341caSmrg dump -g $*.a | sed -n -e 's/^[ ]*[0-9][0-9]*[[:space:]]*\([_[:alpha:]][[:alnum:]]*\)/\1/p' | egrep -v \\\. | sort | uniq > $*.syms @@\ 33311d341caSmrg $(LD) -bnoipath -bnoentry -bsymbolic -bM\:SRE -bE\:$*.syms -o $@~ solist $(REQUIREDLIBS) BaseShLibReqs -lc @@\ 33411d341caSmrg $(RM) $@ $*.a $*.syms @@\ 33511d341caSmrg $(MV) $@~ $@ @@\ 33611d341caSmrg LinkBuildLibrary($@) @@\ 33711d341caSmrg @@\ 33811d341caSmrgclean:: @@\ 33911d341caSmrg $(RM) Concat(lib,libname.so) Concat(lib,libname.so) 34011d341caSmrg 34111d341caSmrg# endif /* SharedDepLibraryTarget */ 34211d341caSmrg#endif /* OSMajorVersion < 5 */ 34311d341caSmrg 34411d341caSmrg/* 34511d341caSmrg * SharedLibraryDataTarget - generate rules to create shlib data file; 34611d341caSmrg */ 34711d341caSmrg#ifndef SharedLibraryDataTarget 34811d341caSmrg# define SharedLibraryDataTarget(libname,rev,salist) 34911d341caSmrg#endif /* SharedLibraryTarget */ 350