home *** CD-ROM | disk | FTP | other *** search
- XCOMM $XConsortium: ibmLib.rules /main/15 1996/12/30 16:06:05 kaleb $
-
- /*
- * AIX shared library rules
- */
-
- #ifndef HasSharedLibraries
- # define HasSharedLibraries YES
- #endif
- #ifndef ForceNormalLib
- # define ForceNormalLib NO
- #endif
- #ifndef SharedDataSeparation
- # define SharedDataSeparation NO
- #endif
- #ifndef SharedCodeDef
- # define SharedCodeDef -DSHAREDCODE
- #endif
- #ifndef SharedLibraryDef
- # define SharedLibraryDef -DAIXSHLIB
- #endif
- #ifndef ShLibIncludeFile
- # define ShLibIncludeFile <ibmLib.tmpl>
- #endif
- #ifndef PositionIndependentCFlags
- # define PositionIndependentCFlags -bM\:SRE
- #endif
- #ifndef ExtraLoadFlags
- # define ExtraLoadFlags -bnodelcsect
- #endif
- #if !defined(LdPostLib) && !defined(UseInstalled) && OSMajorVersion > 3
- # if ThreadedX
- # define LdPostLib -blibpath:$(USRLIBDIRPATH):/usr/lib/threads:/usr/lib:/lib
- # else
- # define LdPostLib -blibpath:$(USRLIBDIRPATH):/usr/lib:/lib
- # endif
- # define SharedLibPostRef $(LDPOSTLIBS)
- #endif
- #ifndef SharedLibPostRef
- # define SharedLibPostRef $(LDPOSTLIBS)
- #endif
- #if ThreadedX
- # define BaseShLibReqs -lc_r -lm
- #else
- # define BaseShLibReqs -lc -lm
- #endif
- #ifndef UseExportLists
- # define UseExportLists YES
- #endif
-
- /*
- * MakeExportList - generate an export list file for linking libraries.
- */
- #ifndef MakeExportList
- # if UseExportLists
- # define MakeExportList(libname,result) \
- @-RemoveFile(result) @@\
- case ,$(SHR4OBJLIBS), in *,libname,*) shr4obj=shr4.o;; esac &&\ @@\
- echo "#! $@ ($${shr4obj:-shr.o})" > result @@\
- if [ -f Concat(lib,libname.elist) ]; then \ @@\
- $(CPP) $(ALLINCLUDES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(DEFINES) Concat(lib,libname.elist) | CppSedMagic > $@.list; \ @@\
- $(EXPORTLISTGEN) $@~ $@.list >> result; \ @@\
- RemoveFile($@.list); \ @@\
- else \ @@\
- dump -g $@~ | sed -n -e 's/^[ ]*[0-9][0-9]*[ ]*\([^ .][^ ]*\)$$/\1/p' >> result; \ @@\
- fi;
- # else
- # define MakeExportList(libname,result) \
- @-RemoveFile(result) @@\
- case ,$(SHR4OBJLIBS), in *,libname,*) shr4obj=shr4.o;; esac &&\ @@\
- echo "#! $@ ($${shr4obj:-shr.o})" > result @@\
- dump -g $@~ | sed -n -e 's/^[ ]*[0-9][0-9]*[ ]*\([^ .][^ ]*\)$$/\1/p' >> result;
- # endif
- #endif /* MakeExportList */
-
-
- #if !defined(UseInstalled) && !defined(UseInstalledX11) \
- && !defined(UseImports) && !defined(ImportX11)
- /* we want this to be defined only when building X */
-
- # if OSMajorVersion < 4
- /*
- * SharedDSLibReferences - variables for shared libraries
- */
-
- # ifndef SharedLibReferences
- # define SharedLibReferences(varname,libname,libsource,revname,rev) @@\
- Concat3(DEP,varname,LIB) = /**/ @@\
- Concat(varname,LIB) = _Use(Concat(-l,libname),Concat(libsource/lib,libname.a)) @@\
- LintLibReferences(varname,libname,libsource)
- # endif
-
- # else
-
- # ifndef SharedLibReferences
- # define SharedLibReferences(varname,libname,libsource,revname,rev) @@\
- Concat3(DEP,varname,LIB) = /**/ @@\
- Concat(varname,LIB) = _Use(Concat(-l,libname),Concat($(BUILDLIBDIR),/libname.imp) Concat3($(BUILDLIBDIR),/lib,libname.a)) @@\
- LintLibReferences(varname,libname,libsource)
- # endif
-
- # endif
-
- /*
- * SharedDSLibReferences - variables for shared libraries
- */
- # ifndef SharedDSLibReferences
- # define SharedDSLibReferences(varname,libname,libsource,revname,rev) @@\
- SharedLibReferences(varname,libname,libsource,revname,rev)
- # endif
-
- # if OSMajorVersion == 4
- /*
- * UnsharedLibReferences - variables for unshared libraries
- */
- # ifndef UnsharedLibReferences
- # define UnsharedLibReferences(varname,libname,libsource) @@\
- Concat3(DEP,varname,LIB) = _UseCat($(USRLIBDIR)/lib,$(BUILDLIBDIR)/lib,libname.a) @@\
- Concat(varname,LIB) = _Use(Concat(-l,libname),Concat($(BUILDLIBDIR)/lib,libname.a)) @@\
- LintLibReferences(varname,libname,libsource)
- # endif
- # endif
-
- #endif /* !defined(UseInstalled) && !defined(UseInstalledX11) ... */
-
-
- /*
- * InstallSharedLibrary - generate rules to install the shared library.
- */
- #ifndef InstallSharedLibrary
- # define InstallSharedLibrary(libname,rev,dest) @@\
- InstallLibrary(libname,dest)
- #endif /* InstallSharedLibrary */
-
- /*
- * InstallSharedLibraryData - generate rules to install the shared library data
- */
- #ifndef InstallSharedLibraryData
- # define InstallSharedLibraryData(libname,rev,dest)
- #endif /* InstallSharedLibraryData */
-
- /*
- * SharedLibraryTarget - generate rules to create a shared library;
- * build it into a different name so that the we do not hose people by having
- * the library gone for long periods.
- *
- * IBM uses an unusual shared object file name (shr4.o) in some libraries.
- * Duplicate this behavior to preserve compatibility with IBM's libraries.
- */
- #if OSMajorVersion < 4
-
- # ifndef SharedLibraryTarget
- # define SharedLibraryTarget(libname,rev,solist,down,up) @@\
- AllTarget(Concat(lib,libname.a)) @@\
- @@\
- Concat(lib,libname.a): solist $(UNSHAREDOBJS) $(EXTRALIBRARYDEPS) @@\
- $(RM) $@~ shr.o shr4.o @@\
- (cd down; $(AR) up/$@~ solist) @@\
- dump -g $@~ | sed -n -e 's/^[ ]*[0-9][0-9]*[ ]*\([^ .][^ ]*\)$$/\1/p' > $@.syms @@\
- $(LD) -o shr.o $@~ -H512 -T512 -bM\:SRE -bE\:$@.syms $(REQUIREDLIBS) BaseShLibReqs SharedLibPostRef @@\
- $(LN) shr.o shr4.o @@\
- $(RM) $@~ @@\
- case ,$(SHR4OBJLIBS), in *,libname,*) shr4obj=shr4.o;; esac &&\ @@\
- $(AR) $@~ $${shr4obj} shr.o $(UNSHAREDOBJS) @@\
- $(RM) $@.syms $@ shr.o shr4.o @@\
- $(MV) $@~ $@ @@\
- LinkBuildLibrary($@) @@\
- @@\
- clean:: @@\
- $(RM) Concat(lib,libname.a)
- # endif /* SharedLibraryTarget */
-
- #else /* OSMajorVersion >= 4 */
-
- # ifndef SharedLibraryTarget
- # define SharedLibraryTarget(libname,rev,solist,down,up) @@\
- AllTarget(Concat(lib,libname.a)) @@\
- @@\
- Concat(lib,libname.a): solist $(UNSHAREDOBJS) $(EXTRALIBRARYDEPS) @@\
- RemoveFiles($@~ shr.o shr4.o) @@\
- (cd down; $(AR) up/$@~ solist) @@\
- MakeExportList(libname,libname.imp) @@\
- $(LD) -o shr.o $@~ -H512 -T512 -bM\:SRE -bE\:libname.imp -bnoentry $(REQUIREDLIBS) BaseShLibReqs $(LDPOSTLIBS) @@\
- $(LN) shr.o shr4.o @@\
- RemoveFile($@~) @@\
- case ,$(SHR4OBJLIBS), in *,libname,*) shr4obj=shr4.o;; esac &&\ @@\
- $(AR) $@~ $${shr4obj} shr.o $(UNSHAREDOBJS) @@\
- RemoveFile($@) @@\
- $(MV) $@~ $@ @@\
- LinkBuildLibrary($@) @@\
- LinkBuildLibrary(libname.imp) @@\
- @@\
- clean:: @@\
- $(RM) Concat(lib,libname.a)
- # endif /* SharedLibraryTarget */
-
- #endif
-
- /*
- * SharedLibraryDataTarget - generate rules to create shlib data file;
- */
- #ifndef SharedLibraryDataTarget
- # define SharedLibraryDataTarget(libname,rev,salist)
- #endif /* SharedLibraryTarget */
-