sequentLib.rules revision 1c80d5b0
111d341caSmrgXCOMM $Xorg: sequentLib.rules,v 1.3 2000/08/17 19:41:48 cpqbld Exp $ 211d341caSmrg 311d341caSmrg/* 411d341caSmrg * SVR4 shared library rules 511d341caSmrg */ 611d341caSmrg 711d341caSmrg#ifndef HasSharedLibraries 811d341caSmrg# define HasSharedLibraries YES 911d341caSmrg#endif 1011d341caSmrg#ifndef SharedDataSeparation 1111d341caSmrg# define SharedDataSeparation NO 1211d341caSmrg#endif 1311d341caSmrg#ifndef SharedCodeDef 1411d341caSmrg# define SharedCodeDef /**/ 1511d341caSmrg#endif 1611d341caSmrg#ifndef SharedLibraryDef 1711d341caSmrg# define SharedLibraryDef /**/ 1811d341caSmrg#endif 1911d341caSmrg#ifndef ShLibIncludeFile 2011d341caSmrg# define ShLibIncludeFile <sequentLib.tmpl> 2111d341caSmrg#endif 2211d341caSmrg#ifndef SharedLibraryLoadFlags 2311d341caSmrg/* Sequent may need to implement the X11R5 HasMultipleSockets ? */ 2411d341caSmrg# if HasMultipleSockets 2511d341caSmrg# define SharedLibraryLoadFlags -G -z text $(DEFAULTSOCKETLDOPTIONS) 2611d341caSmrg# define ExtraLoadOptions $(DEFAULTSOCKETLDOPTIONS) 2711d341caSmrg# else 2811d341caSmrg/* # define SharedLibraryLoadFlags -G -z text */ 2911d341caSmrg# define SharedLibraryLoadFlags -G 3011d341caSmrg# define ExtraLoadOptions 3111d341caSmrg# endif 3211d341caSmrg#endif 3311d341caSmrg#ifndef PositionIndependentCFlags 3411d341caSmrg# if HasGcc2 3511d341caSmrg# define PositionIndependentCFlags -fpic 3611d341caSmrg# else 3711d341caSmrg# define PositionIndependentCFlags -K PIC 3811d341caSmrg# endif 3911d341caSmrg#endif 4011d341caSmrg#ifndef PositionIndependentCplusplusFlags 4111d341caSmrg# if HasGcc2ForCplusplus 4211d341caSmrg# define PositionIndependentCplusplusFlags -fpic 4311d341caSmrg# else 4411d341caSmrg# define PositionIndependentCplusplusFlags -K PIC 4511d341caSmrg# endif 4611d341caSmrg#endif 4711d341caSmrg#ifndef UseExportLists 4811d341caSmrg# define UseExportLists NO 4911d341caSmrg#endif 5011d341caSmrg#ifndef UseHidesymsLists 5111d341caSmrg# define UseHidesymsLists NO 5211d341caSmrg#endif 5311d341caSmrg 5411d341caSmrg#if UseHidesymsLists 5511d341caSmrg 5611d341caSmrg#ifndef BuildHidesyms 5711d341caSmrg#define BuildHidesyms(libname) @@\ 5811d341caSmrgincludes:: @@\ 5911d341caSmrg MakeDir($(BUILDLIBDIR)/hidesyms) @@\ 6011d341caSmrg @( if [ -f Concat(lib,libname.hs) ]; \ @@\ 6111d341caSmrg then \ @@\ 6211d341caSmrg (set -x; cd $(BUILDLIBDIR)/hidesyms && \ @@\ 6311d341caSmrg RemoveFile(Concat(lib,libname.hs)) && \ @@\ 6411d341caSmrg $(LN) $(BUILDLIBTOP)/../$(CURRENT_DIR)/Concat(lib,libname.hs) .); \ @@\ 6511d341caSmrg fi; ) 6611d341caSmrg#endif /* BuildHidesyms */ 6711d341caSmrg 6811d341caSmrg/* 6911d341caSmrg * InstallHidesyms - install library hidesyms directive file. (Sequent only) 7011d341caSmrg * Logic cloned from InstallNonExecFile. 7111d341caSmrg * We do not list the hidesyms directive file as a dependency since it 7211d341caSmrg * may not exist. 7311d341caSmrg */ 7411d341caSmrg#ifndef InstallHidesyms 7511d341caSmrg#define InstallHidesyms(libname) @@\ 7611d341caSmrginstall:: @@\ 7711d341caSmrg MakeDir($(DESTDIR)/usr/lib/hidesyms) @@\ 7811d341caSmrg @( if [ -f Concat(lib,libname.hs) ]; then \ @@\ 7911d341caSmrg $(INSTALL) $(INSTALLFLAGS) $(INSTDATFLAGS) Concat(lib,libname.hs) $(DESTDIR)/usr/lib/hidesyms; fi; ) 8011d341caSmrg#endif /* InstallHidesyms */ 8111d341caSmrg 8211d341caSmrg/* 8311d341caSmrg * InstallLibrary - generate rules to install the indicated library. 8411d341caSmrg * 8511d341caSmrg * Sequent includes an extra "install::" target to install hidesyms files 8611d341caSmrg * and an extra "includes::" target to export library hidesyms files. 8711d341caSmrg * Therefore whenever InstallLibrary is expanded the hidesyms targets 8811d341caSmrg * will also be expanded. This avoids changes to generic cf *.tmpl files. 8911d341caSmrg */ 9011d341caSmrg#ifndef InstallLibrary 9111d341caSmrg#define InstallLibrary(libname,dest) @@\ 9211d341caSmrginstall:: LibraryTargetName(libname) @@\ 9311d341caSmrg MakeDir($(DESTDIR)dest) @@\ 9411d341caSmrg $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) LibraryTargetName(libname) $(DESTDIR)dest @@\ 9511d341caSmrg RanLibrary($(RANLIBINSTFLAGS) $(DESTDIR)dest/LibraryTargetName(libname)) @@\ 9611d341caSmrg @@\ 9711d341caSmrgInstallHidesyms(libname) @@\ 9811d341caSmrg @@\ 9911d341caSmrgBuildHidesyms(libname) 10011d341caSmrg#endif /* InstallLibrary */ 10111d341caSmrg 10211d341caSmrg/* 10311d341caSmrg * Sequent additions to MakeLibrary for filtering objects 10411d341caSmrg * with hidesyms before making a normal archive library. 10511d341caSmrg */ 10611d341caSmrg 10711d341caSmrg#ifndef MakeLibrary 10811d341caSmrg#define MakeLibrary(libname,objlist) ( $(RM) -r tmp_hs ; \ @@\ 10911d341caSmrg LIBNAME_HS=`dirname libname`/`basename libname .a`.hs ; \ @@\ 11011d341caSmrg (if [ -f $$LIBNAME_HS ]; \ @@\ 11111d341caSmrg then \ @@\ 11211d341caSmrg LIBNAME_AR=../libname; \ @@\ 11311d341caSmrg $(MKDIRHIER) tmp_hs && \ @@\ 11411d341caSmrg $(CP) *.o tmp_hs && \ @@\ 11511d341caSmrg cd tmp_hs && \ @@\ 11611d341caSmrg $(HSCMD) -i ../$$LIBNAME_HS *.o ; \ @@\ 11711d341caSmrg else \ @@\ 11811d341caSmrg LIBNAME_AR=libname; \ @@\ 11911d341caSmrg fi; \ @@\ 12011d341caSmrg $(AR) $$LIBNAME_AR objlist ) ;\ @@\ 12111d341caSmrg $(RM) -r tmp_hs ) 12211d341caSmrg#endif 12311d341caSmrg 12411d341caSmrg#endif /* UseHidesymsLists */ 12511d341caSmrg 12611d341caSmrg/* 12711d341caSmrg * InstallSharedLibrary - generate rules to install the shared library. 12811d341caSmrg */ 12911d341caSmrg#ifndef InstallSharedLibrary 13011d341caSmrg# define InstallSharedLibrary(libname,rev,dest) @@\ 13111d341caSmrginstall:: Concat(lib,libname.so.rev) @@\ 13211d341caSmrg MakeDir($(DESTDIR)dest) @@\ 13311d341caSmrg $(INSTALL) $(INSTALLFLAGS) $(INSTSHLIBFLAGS) Concat(lib,libname.so.rev) $(DESTDIR)dest @@\ 13411d341caSmrg $(RM) Concat($(DESTDIR)dest/lib,libname.so) @@\ 13511d341caSmrg $(LN) Concat(lib,libname.so.rev) Concat($(DESTDIR)dest/lib,libname.so) 13611d341caSmrg#endif /* InstallSharedLibrary */ 13711d341caSmrg 13811d341caSmrg/* 13911d341caSmrg * InstallSharedLibraryData - generate rules to install the shared library data 14011d341caSmrg */ 14111d341caSmrg#ifndef InstallSharedLibraryData 14211d341caSmrg# define InstallSharedLibraryData(libname,rev,dest) 14311d341caSmrg#endif /* InstallSharedLibraryData */ 14411d341caSmrg 14511d341caSmrg#ifndef LinkWithExports 14611d341caSmrg# if UseHidesymsLists 14711d341caSmrg# define LinkWithExports(libname,rev,solist,down,up) \ 14811d341caSmrg $(RM) -r tmp_hs @@\ 14911d341caSmrg ( if [ -f Concat(lib,libname.hs) ]; \ @@\ 15011d341caSmrg then \ @@\ 15111d341caSmrg LIBNAME_SO=../$@~; \ @@\ 15211d341caSmrg mkdir tmp_hs; \ @@\ 15311d341caSmrg cd down; \ @@\ 15411d341caSmrg $(CP) *.o up/tmp_hs && \ @@\ 15511d341caSmrg cd up/tmp_hs && \ @@\ 15611d341caSmrg $(HSCMD) -i ../Concat(lib,libname.hs) *.o; \ @@\ 15711d341caSmrg else \ @@\ 15811d341caSmrg LIBNAME_SO=up/$@~; \ @@\ 15911d341caSmrg cd down; \ @@\ 16011d341caSmrg fi; \ @@\ 16111d341caSmrg $(CCENVSETUP) $(LD) -o $$LIBNAME_SO $(SHLIBLDFLAGS) -h $@ solist $(REQUIREDLIBS) ) @@\ 16211d341caSmrg $(RM) -r tmp_hs 16311d341caSmrg# else 16411d341caSmrg# if UseExportLists 16511d341caSmrg# define LinkWithExports(libname,rev,solist,down,up) \ 16611d341caSmrg (cd down; $(CCENVSETUP) $(LD) -o up/$@~ $(SHLIBLDFLAGS) -h $@ solist $(REQUIREDLIBS)) @@\ 16711d341caSmrg if [ -f Concat(lib,libname.elist) ]; then \ @@\ 16811d341caSmrg $(RM) down/$@.exports $@.list; \ @@\ 16911d341caSmrg $(CPP) $(ALLINCLUDES) $(EXTRA_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(DEFINES) Concat(lib,libname.elist) | CppSedMagic >$@.list; \ @@\ 17011d341caSmrg $(EXPORTLISTGEN) $@~ $@.list > down/$@.exports; \ @@\ 17111d341caSmrg (cd down; $(CCENVSETUP) $(LD) -o up/$@~ $(SHLIBLDFLAGS) -h $@ ShlibExportListOpt($@.exports) solist $(REQUIREDLIBS)); \ @@\ 17211d341caSmrg $(RM) down/$@.exports $@.list; \ @@\ 17311d341caSmrg fi; 17411d341caSmrg# else 17511d341caSmrg# define LinkWithExports(libname,rev,solist,down,up) \ 17611d341caSmrg (cd down; $(CCENVSETUP) $(LD) -o up/$@~ $(SHLIBLDFLAGS) -h $@ solist $(REQUIREDLIBS)) 17711d341caSmrg# endif /* UseExportLists */ 17811d341caSmrg# endif /* UseHidesymsLists */ 17911d341caSmrg#endif 18011d341caSmrg 18111d341caSmrg/* 18211d341caSmrg * SharedLibraryTarget - generate rules to create a shared library; 18311d341caSmrg * build it into a different name so that we do not hose people by having 18411d341caSmrg * the library gone for long periods. 18511d341caSmrg */ 18611d341caSmrg#ifndef SharedLibraryTarget 18711d341caSmrg# define SharedLibraryTarget(libname,rev,solist,down,up) @@\ 18811d341caSmrgAllTarget(Concat(lib,libname.so.rev)) @@\ 18911d341caSmrg @@\ 19011d341caSmrgConcat(lib,libname.so.rev): solist $(EXTRALIBRARYDEPS) @@\ 19111d341caSmrg $(RM) $@~ @@\ 19211d341caSmrg LinkWithExports(libname,rev,solist,down,up) @@\ 19311d341caSmrg $(RM) $@ @@\ 19411d341caSmrg $(MV) $@~ $@ @@\ 19511d341caSmrg $(RM) Concat(lib,libname.so) @@\ 19611d341caSmrg $(LN) $@ Concat(lib,libname.so) @@\ 19711d341caSmrg LinkBuildLibrary($@) @@\ 19811d341caSmrg LinkBuildLibrary(Concat(lib,libname.so)) @@\ 19911d341caSmrg @@\ 20011d341caSmrgclean:: @@\ 20111d341caSmrg $(RM) Concat(lib,libname.so.rev) Concat(lib,libname.so) 20211d341caSmrg 20311d341caSmrg#endif /* SharedLibraryTarget */ 20411d341caSmrg 20511d341caSmrg/* 20611d341caSmrg * SharedLibraryDataTarget - generate rules to create shlib data file; 20711d341caSmrg */ 20811d341caSmrg#ifndef SharedLibraryDataTarget 20911d341caSmrg# define SharedLibraryDataTarget(libname,rev,salist) 21011d341caSmrg#endif /* SharedLibraryTarget */ 21111d341caSmrg 21211d341caSmrg/* 21311d341caSmrg * Sequent does not use the InstallManPageAliases rule. 21411d341caSmrg * Sequent customer installation procedure uses makealiases(1M) 21511d341caSmrg * after the initial product manpages are installed in system directories. 21611d341caSmrg */ 21711d341caSmrg#define InstallManPageAliases(file,destdir,aliases) /* use makealiases(1M) */ 21811d341caSmrg 21911d341caSmrg/* 22011d341caSmrg * Man pages need to be formatted when installed, so override the default 22111d341caSmrg * imake rules. 22211d341caSmrg */ 22311d341caSmrg#if defined(UseInstalled) 22411d341caSmrgMANCAT = cat 22511d341caSmrg#else 22611d341caSmrgMANCAT = sed -f $(CONFIGSRC)/util/installman.sed 22711d341caSmrg#endif 22811d341caSmrg 22911d341caSmrg#define InstallManPageLong(file,destdir,dest) @@\ 23011d341caSmrgall:: file.$(MANSUFFIX).z @@\ 23111d341caSmrg @@\ 23211d341caSmrgfile.$(MANSUFFIX).z:: file.man @@\ 23311d341caSmrg @if [ -f file.man ]; \ @@\ 23411d341caSmrg then \ @@\ 23511d341caSmrg $(MANCAT) file.man | $(NEQN) | \ @@\ 23611d341caSmrg $(TBL) | $(NROFF) $(MANMACROS) | $(COL) > file.$(MANSUFFIX); \ @@\ 23711d341caSmrg $(RM) file.$(MANSUFFIX).z; \ @@\ 23811d341caSmrg $(PACK) -f file.$(MANSUFFIX); \ @@\ 23911d341caSmrg fi @@\ 24011d341caSmrg @@\ 24111d341caSmrgfile.man:: @@\ 24211d341caSmrg @@\ 24311d341caSmrginstall.man:: @@\ 24411d341caSmrg MakeDir($(DESTDIR)destdir) @@\ 24511d341caSmrg @if [ -f file.$(MANSUFFIX).z ]; \ @@\ 24611d341caSmrg then \ @@\ 24711d341caSmrg $(INSTALL) -c $(INSTMANFLAGS) file.$(MANSUFFIX).z $(DESTDIR)destdir/dest.$(MANSUFFIX).z; \@@\ 24811d341caSmrg fi 24911d341caSmrg 25011d341caSmrg#define InstallMultipleManSuffix(list,dest,suff) @@\ 25111d341caSmrginstall.man:: @@\ 25211d341caSmrg MakeDir($(DESTDIR)dest) @@\ 25311d341caSmrg MakeFlagsToShellFlags(i,set +e); \ @@\ 25411d341caSmrg @for i in list; do \ @@\ 25511d341caSmrg (set -x; \ @@\ 25611d341caSmrg $(MANCAT) $$i.suff | $(NEQN) | \ @@\ 25711d341caSmrg $(TBL) | $(NROFF) $(MANMACROS) | $(COL) >/tmp/$$i.suff; \ @@\ 25811d341caSmrg $(PACK) -f /tmp/$$i.suff; \ @@\ 25911d341caSmrg $(INSTALL) -c $(INSTMANFLAGS) /tmp/$$i.suff.z $(DESTDIR)dest/$$i.$(MANSUFFIX).z; \ @@\ 26011d341caSmrg $(RM) /tmp/$$i.suff.z); \ @@\ 26111d341caSmrg done 26211d341caSmrg 26311d341caSmrg#define InstallMultipleMan(list,dest) @@\ 26411d341caSmrg InstallMultipleManSuffix(list,dest,man) 26511d341caSmrg 2661c80d5b0Smrg/* 26711d341caSmrg * InstallMotifManPage relies on the fact that all the 26811d341caSmrg * Imakefiles where it is used (or Makefile default value) 26911d341caSmrg * will correctly define MANSUFFIX which may be 27011d341caSmrg * either "section" or "section"x. 27111d341caSmrg * Since we rely on MANSUFFIX being defined correctly in each Makefile 27211d341caSmrg * we can also rely on MANDIR = $(MANSOURCEPATH)section 27311d341caSmrg * 27411d341caSmrg * CAUTION: 27511d341caSmrg * The source file "file.section" may have the same name as 27611d341caSmrg * the target file "file.$(MANSUFFIX)" so we must use temporary files 27711d341caSmrg * so that we do not overwrite "file.section". 27811d341caSmrg */ 27911d341caSmrg#define InstallMotifManPage(file,section) @@\ 28011d341caSmrgall:: file.$(MANSUFFIX).z @@\ 28111d341caSmrg @@\ 28211d341caSmrgfile.$(MANSUFFIX).z: file.section @@\ 28311d341caSmrg @$(MANCAT) file.section | $(NEQN) | \ @@\ 28411d341caSmrg $(TBL) | $(NROFF) $(MANMACROS) | $(COL) > /tmp/file.man; \ @@\ 28511d341caSmrg $(RM) /tmp/file.man.z; \ @@\ 28611d341caSmrg $(PACK) -f /tmp/file.man; \ @@\ 28711d341caSmrg $(CP) /tmp/file.man.z file.$(MANSUFFIX).z; \ @@\ 28811d341caSmrg $(RM) /tmp/file.man.z @@\ 28911d341caSmrg @@\ 29011d341caSmrginstall.man:: file.$(MANSUFFIX).z @@\ 29111d341caSmrg MakeDir($(DESTDIR)$(MANDIR)) @@\ 29211d341caSmrg $(INSTALL) -c $(INSTMANFLAGS) file.$(MANSUFFIX).z $(DESTDIR)$(MANDIR)/file.$(MANSUFFIX).z 29311d341caSmrg 2941c80d5b0Smrg/* 29511d341caSmrg * The Real_MessageCatalogRule defined in Motif.rules does not 29611d341caSmrg * install the generated catalog file. This rule adds an install 29711d341caSmrg * clause to do that. 29811d341caSmrg */ 29911d341caSmrg#define Real_MessageCatalogRule(prefix) @@\ 30011d341caSmrgprefix.cat Concat(prefix,MsgCatI.h): @@\ 30111d341caSmrg $(RM) Concat(prefix,MsgCatI.h) prefix.cat $(MLOCSRC)/C/msg/prefix.msg @@\ 30211d341caSmrg $(MKCATTOOL) Concat(prefix,MsgCatI.h) prefix.msg > $(MLOCSRC)/C/msg/prefix.msg @@\ 30311d341caSmrg $(GENCAT) prefix.cat $(MLOCSRC)/C/msg/prefix.msg @@\ 30411d341caSmrg @@\ 30511d341caSmrgincludes:: prefix.cat Concat(prefix,MsgCatI.h) @@\ 30611d341caSmrg @@\ 30711d341caSmrgdepend:: prefix.cat Concat(prefix,MsgCatI.h) @@\ 30811d341caSmrg @@\ 30911d341caSmrgall:: prefix.cat @@\ 31011d341caSmrg @@\ 31111d341caSmrginstall:: prefix.cat @@\ 31211d341caSmrg MakeDir($(DESTDIR)$(MESSAGECATDIR)) @@\ 31311d341caSmrg $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) prefix.cat $(DESTDIR)$(MESSAGECATDIR)/prefix.cat @@\ 31411d341caSmrg $(RM) $(DESTDIR)$(MESSAGECATDIR)/prefix @@\ 31511d341caSmrg $(LN) prefix.cat $(DESTDIR)$(MESSAGECATDIR)/prefix @@\ 31611d341caSmrg MakeDir($(DESTDIR)$(NLSDIR)) @@\ 31711d341caSmrg $(INSTALL) $(INSTALLFLAGS) $(INSTLIBFLAGS) prefix.cat $(DESTDIR)$(NLSDIR)/prefix.cat @@\ 31811d341caSmrg $(RM) $(DESTDIR)$(NLSDIR)/prefix @@\ 31911d341caSmrg $(LN) prefix.cat $(DESTDIR)$(NLSDIR)/prefix @@\ 32011d341caSmrg @@\ 32111d341caSmrgclean:: @@\ 32211d341caSmrg $(RM) prefix.cat Concat(prefix,MsgCatI.h) 32311d341caSmrg 324