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