111d341caSmrg/* 211d341caSmrg * Library imakefile info - this contains any special redefinitions, etc. 311d341caSmrg * that Imakefiles in the various library subtrees will need. 411d341caSmrg * 511d341caSmrg * Before including this, you must set the following boolean variables: 611d341caSmrg * DoNormalLib, DoSharedLib, DoDebugLib, DoProfileLib 711d341caSmrg * 811d341caSmrg * To get automatic generation of standard rules, also set the variables: 911d341caSmrg * LibName, SoRev, HasSharedData, and optionally HugeLibrary and IncSubdir. 1011d341caSmrg * 1111d341caSmrg * To suppress installation of the library define LibInstall NO. 1211d341caSmrg * To suppress creating (and installing) the library define LibCreate NO. 1311d341caSmrg * To suppress installing headers define LibHeaders NO. 1411d341caSmrg * Define LargePICTable YES if large (32-bit) PIC tables are needed. 1511d341caSmrg */ 1611d341caSmrg 1711d341caSmrgXCOMM $Xorg: Library.tmpl,v 1.3 2000/08/17 19:41:46 cpqbld Exp $ 1811d341caSmrg 1911d341caSmrg 2011d341caSmrg 2111d341caSmrg 2211d341caSmrgXCOMM $XFree86: xc/config/cf/Library.tmpl,v 3.23tsi Exp $ 2311d341caSmrg 2411d341caSmrg#ifndef DoNormalLib 2511d341caSmrg#define DoNormalLib NO 2611d341caSmrg#endif 2711d341caSmrg#ifndef DoSharedLib 2811d341caSmrg#define DoSharedLib NO 2911d341caSmrg#endif 3011d341caSmrg#ifndef DoDebugLib 3111d341caSmrg#define DoDebugLib NO 3211d341caSmrg#endif 3311d341caSmrg#ifndef DoProfileLib 3411d341caSmrg#define DoProfileLib NO 3511d341caSmrg#endif 3611d341caSmrg#ifndef DoExtraLib 3711d341caSmrg#define DoExtraLib NO 3811d341caSmrg#endif 3911d341caSmrg 4011d341caSmrg#ifndef HasSharedData 4111d341caSmrg#define HasSharedData NO 4211d341caSmrg#endif 4311d341caSmrg#ifndef HugeLibrary 4411d341caSmrg#define HugeLibrary NO 4511d341caSmrg#endif 4611d341caSmrg 4711d341caSmrg#ifndef ShlibBindGlobals 4811d341caSmrg#define ShlibBindGlobals NO 4911d341caSmrg#endif 5011d341caSmrg 5111d341caSmrg#if ShlibBindGlobals && defined(ShlibGlobalsFlags) 5211d341caSmrgSHLIBGLOBALSFLAGS = ShlibGlobalsFlags 5311d341caSmrg#endif 5411d341caSmrg 5511d341caSmrg#ifndef LibraryCplusplusOptions 5611d341caSmrg# if DoSharedLib && defined(SharedLibraryCplusplusOptions) 5711d341caSmrg# define LibraryCplusplusOptions SharedLibraryCplusplusOptions 5811d341caSmrg# else 5911d341caSmrg# define LibraryCplusplusOptions DefaultCplusplusOptions 6011d341caSmrg# endif 6111d341caSmrg#endif 6211d341caSmrg#ifndef LibraryDefines 6311d341caSmrg# define LibraryDefines StandardDefines 6411d341caSmrg#endif 6511d341caSmrg#ifndef LibraryDebugOpt 6611d341caSmrg# define LibraryDebugOpt /**/ 6711d341caSmrg#endif 6811d341caSmrg/* Note: Changing LibraryCDebugFlags has no effect because CDEBUGFLAGS is over- 6911d341caSmrg ridden by PassCDebugFlags in the parent Makefile or toplevel xmakefile. */ 7011d341caSmrg#ifndef LibraryCDebugFlags 7111d341caSmrg# define LibraryCDebugFlags DefaultCDebugFlags 7211d341caSmrg#endif 7311d341caSmrg#ifndef LibraryCplusplusDebugFlags 7411d341caSmrg# define LibraryCplusplusDebugFlags DefaultCplusplusDebugFlags 7511d341caSmrg#endif 7611d341caSmrg#ifndef SeparateSharedCompile 7711d341caSmrg# define SeparateSharedCompile YES 7811d341caSmrg#endif 7911d341caSmrg 8011d341caSmrg#ifdef CrossCompileDir 8111d341caSmrg# ifndef StripPath 8211d341caSmrg# define StripPath(x) `echo x|sed "s%.*/%%"` 8311d341caSmrg# endif 8411d341caSmrg#endif 8511d341caSmrg 8611d341caSmrg#ifndef CplusplusSource 8711d341caSmrg# ifndef LibraryCcCmd 8811d341caSmrg# if DoSharedLib && defined(SharedLibraryCcCmd) 8911d341caSmrg# define LibraryCcCmd SharedLibraryCcCmd 9011d341caSmrg# else 9111d341caSmrg# define LibraryCcCmd CcCmd 9211d341caSmrg# endif 9311d341caSmrg# endif 9411d341caSmrg# ifndef LibraryCCOptions 9511d341caSmrg# if DoSharedLib && defined(SharedLibraryCCOptions) 9611d341caSmrg# define LibraryCCOptions SharedLibraryCCOptions 9711d341caSmrg# else 9811d341caSmrg# define LibraryCCOptions DefaultCCOptions 9911d341caSmrg# endif 10011d341caSmrg# endif 10111d341caSmrg 10211d341caSmrg#ifdef CrossCompileDir 10311d341caSmrg# ifndef CrossLibraryCcCmd 10411d341caSmrg# define CrossLibraryCcCmd Concat3(CrossCompileDir,/,StripPath(LibraryCcCmd)) 10511d341caSmrg# endif 10611d341caSmrg#endif 10711d341caSmrg 10811d341caSmrg#ifdef CrossCompileDir 10911d341caSmrg CC = CrossLibraryCcCmd 11011d341caSmrg#else 11111d341caSmrg CC = LibraryCcCmd 11211d341caSmrg#endif 11311d341caSmrg CCOPTIONS = LibraryCCOptions 11411d341caSmrgSTD_DEFINES = LibraryDefines $(PROJECT_DEFINES) 11511d341caSmrgCDEBUGFLAGS = LibraryCDebugFlags 11611d341caSmrgCLIBDEBUGFLAGS = LibraryDebugOpt 11711d341caSmrg CFLAGS = $(CDEBUGFLAGS) $(CLIBDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(ALLDEFINES) 11811d341caSmrg# if defined(LargePICTable) && LargePICTable && defined(LargePositionIndependentCFlags) 11911d341caSmrg PICFLAGS = LargePositionIndependentCFlags 12011d341caSmrg# endif 12111d341caSmrg#else 12211d341caSmrg# ifndef CrossCompileDir 12311d341caSmrg# ifndef LibraryCplusplusCmd 12411d341caSmrg# if DoSharedLib && defined(SharedLibraryCplusplusCmd) 12511d341caSmrg# define LibraryCplusplusCmd SharedLibraryCplusplusCmd 12611d341caSmrg# else 12711d341caSmrg# define LibraryCplusplusCmd CplusplusCmd 12811d341caSmrg# endif 12911d341caSmrg# endif 13011d341caSmrg# else 13111d341caSmrg# ifndef CrossLibraryCplusplusCmd 13211d341caSmrg# if DoSharedLib && defined(SharedLibraryCplusplusCmd) 13311d341caSmrg# define CrossLibraryCplusplusCmd Concat3(CrossCompileDir,/,StripPath(SharedLibraryCplusplusCmd)) 13411d341caSmrg# else 13511d341caSmrg# define CrossLibraryCplusplusCmd Concat3(CrossCompileDir,/,StripPath(CplusplusCmd)) 13611d341caSmrg# endif 13711d341caSmrg# endif 13811d341caSmrg# endif 13911d341caSmrg 14011d341caSmrg# ifndef LibraryCplusplusOptions 14111d341caSmrg# if DoSharedLib && defined(SharedLibraryCplusplusOptions) 14211d341caSmrg# define LibraryCplusplusOptions SharedLibraryCplusplusOptions 14311d341caSmrg# else 14411d341caSmrg# define LibraryCplusplusOptions DefaultCplusplusOptions 14511d341caSmrg# endif 14611d341caSmrg# endif 14711d341caSmrg 14811d341caSmrg#ifdef CrossCompileDir 14911d341caSmrg CXX = CrossLibraryCplusplusCmd 15011d341caSmrg#else 15111d341caSmrg CXX = LibraryCplusplusCmd 15211d341caSmrg#endif 15311d341caSmrg CXXOPTIONS = LibraryCplusplusOptions 15411d341caSmrg STD_DEFINES = LibraryDefines $(PROJECT_DEFINES) 15511d341caSmrgCXXDEBUGFLAGS = LibraryCplusplusDebugFlags 15611d341caSmrgCXXLIBDEBUGFLAGS = LibraryDebugOpt 15711d341caSmrg CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXLIBDEBUGFLAGS) $(CXXOPTIONS) $(THREADS_CXXFLAGS) $(CXXDEFINES) 15811d341caSmrg# if defined(LargePICTable) && LargePICTable 15911d341caSmrg# ifdef LargePositionIndependentCplusplusFlags 16011d341caSmrg CXXPICFLAGS = LargePositionIndependentCplusplusFlags 16111d341caSmrg# elif defined(LargePositionIndependentCFlags) 16211d341caSmrg CXXPICFLAGS = LargePositionIndependentCFlags 16311d341caSmrg# endif 16411d341caSmrg# endif 16511d341caSmrg#endif 16611d341caSmrg 16711d341caSmrg#ifdef LibraryMTDefines 16811d341caSmrgLIB_MT_DEFINES = LibraryMTDefines 16911d341caSmrg#endif 17011d341caSmrg 17111d341caSmrg#if defined(IHaveSubdirs) && HasSymLinks && !defined(NoLibSubdirs) 17211d341caSmrg#define _LibMkdir LibMkdirLinkSubdirs 17311d341caSmrg#else 17411d341caSmrg#define _LibMkdir LibMkdir 17511d341caSmrg#endif 17611d341caSmrg 17711d341caSmrg#if DoDebugLib 17811d341caSmrg# define _DebuggedLibMkdir() _LibMkdir(debugger) 17911d341caSmrg# define _DebuggedObjCompile(options) DebuggedLibObjCompile(options) 18011d341caSmrg# define _DebuggedObjCplusplusCompile(options) DebuggedLibObjCplusplusCompile(options) 18111d341caSmrg# define _DebuggedCleanDir() LibCleanDir(debugger) 18211d341caSmrg#else 18311d341caSmrg# define _DebuggedLibMkdir() $(_NULLCMD_) 18411d341caSmrg# define _DebuggedObjCompile(options) $(_NULLCMD_) 18511d341caSmrg# define _DebuggedObjCplusplusCompile(options) $(_NULLCMD_) 18611d341caSmrg# define _DebuggedCleanDir() $(_NULLCMD_) 18711d341caSmrg#endif 18811d341caSmrg 18911d341caSmrg#if DoProfileLib 19011d341caSmrg# define _ProfiledLibMkdir() _LibMkdir(profiled) 19111d341caSmrg# define _ProfiledObjCompile(options) ProfiledLibObjCompile(options) 19211d341caSmrg# define _ProfiledObjCplusplusCompile(options) ProfiledLibObjCplusplusCompile(options) 19311d341caSmrg# define _ProfiledCleanDir() LibCleanDir(profiled) 19411d341caSmrg#else 19511d341caSmrg# define _ProfiledLibMkdir() $(_NULLCMD_) 19611d341caSmrg# define _ProfiledObjCompile(options) $(_NULLCMD_) 19711d341caSmrg# define _ProfiledObjCplusplusCompile(options) $(_NULLCMD_) 19811d341caSmrg# define _ProfiledCleanDir() $(_NULLCMD_) 19911d341caSmrg#endif 20011d341caSmrg 20111d341caSmrg#if !DoNormalLib 20211d341caSmrg# define _NormalLibMkdir() $(_NULLCMD_) 20311d341caSmrg# define _NormalObjCompile(options) $(_NULLCMD_) 20411d341caSmrg# define _NormalObjCplusplusCompile(options) $(_NULLCMD_) 20511d341caSmrg# define _NormalCleanDir() $(_NULLCMD_) 20611d341caSmrg#else 20711d341caSmrg# if DoSharedLib && SeparateSharedCompile 20811d341caSmrg# define _NormalLibMkdir() _LibMkdir(unshared) 20911d341caSmrg# define _NormalObjCompile(options) UnsharedLibObjCompile(options) 21011d341caSmrg# define _NormalObjCplusplusCompile(options) UnsharedLibObjCplusplusCompile(options) 21111d341caSmrg# define _NormalCleanDir() LibCleanDir(unshared) 21211d341caSmrg# else 21311d341caSmrg# define _NormalLibMkdir() $(_NULLCMD_) 21411d341caSmrg# if !DoSharedLib && defined(IncludeSharedObjectInNormalLib) 21511d341caSmrg# define _NormalObjCompile(options) NormalRelocLibObjCompile(options) 21611d341caSmrg# else 21711d341caSmrg# define _NormalObjCompile(options) NormalLibObjCompile(options) 21811d341caSmrg# endif 21911d341caSmrg# define _NormalObjCplusplusCompile(options) NormalLibObjCplusplusCompile(options) 22011d341caSmrg# define _NormalCleanDir() $(_NULLCMD_) 22111d341caSmrg# endif 22211d341caSmrg#endif 22311d341caSmrg 22411d341caSmrg#if !DoSharedLib || (DoNormalLib && !SeparateSharedCompile) 22511d341caSmrg# define _SharedObjCompile(options) $(_NULLCMD_) 22611d341caSmrg# define _SharedObjCplusplusCompile(options) $(_NULLCMD_) 22711d341caSmrg#else 22811d341caSmrg# if SeparateSharedCompile 22911d341caSmrg# define _SharedObjCompile(options) NormalSharedLibObjCompile(options) 23011d341caSmrg# define _SharedObjCplusplusCompile(options) NormalSharedLibObjCplusplusCompile(options) 23111d341caSmrg#else 23211d341caSmrg# define _SharedObjCompile(options) NormalLibObjCompile(options) 23311d341caSmrg# define _SharedObjCplusplusCompile(options) NormalLibObjCplusplusCompile(options) 23411d341caSmrg#endif 23511d341caSmrg#endif 23611d341caSmrg 23711d341caSmrg#ifndef LibInstallBuild 23811d341caSmrg#define LibInstallBuild NO 23911d341caSmrg#endif 24011d341caSmrg 24111d341caSmrg#if DoExtraLib && defined(ExtraLibRules) 24211d341caSmrg# define _ExtraLibMkdir() ExtraLibMkdir() 24311d341caSmrg# define _ExtraObjCompile(options) ExtraObjCompile(options) 24411d341caSmrg# define _ExtraObjCplusplusCompile(options) ExtraObjCplusplusCompile(options) 24511d341caSmrg# define _ExtraCleanDir() ExtraCleanDir() 24611d341caSmrg#else 24711d341caSmrg# define _ExtraLibMkdir() $(_NULLCMD_) 24811d341caSmrg# define _ExtraObjCompile(options) $(_NULLCMD_) 24911d341caSmrg# define _ExtraObjCplusplusCompile(options) $(_NULLCMD_) 25011d341caSmrg# define _ExtraCleanDir() $(_NULLCMD_) 25111d341caSmrg#endif 25211d341caSmrg 25311d341caSmrg#ifndef CplusplusSource 25411d341caSmrg# define SRCsuf c 25511d341caSmrg# define Isuf i 25611d341caSmrg#else 25711d341caSmrg# define SRCsuf CCsuf 25811d341caSmrg# define Isuf ii 25911d341caSmrg# ifdef SunArchitecture 26011d341caSmrg.SUFFIXES: Concat(.,CCsuf) 26111d341caSmrg# endif 26211d341caSmrg#endif 26311d341caSmrg 26411d341caSmrg#define _CompileObj(target, options) @@\ 26511d341caSmrgtarget @@\ 26611d341caSmrg _DebuggedObjCompile(options) @@\ 26711d341caSmrg _ProfiledObjCompile(options) @@\ 26811d341caSmrg _NormalObjCompile(options) @@\ 26911d341caSmrg _ExtraObjCompile(options) @@\ 27011d341caSmrg _SharedObjCompile(options) 27111d341caSmrg 27211d341caSmrg#ifndef SeparateSharedCompile 27311d341caSmrg# define _CompileObjSeparateOpts(target,staticopts,sharedopts) \ 27411d341caSmrg _CompileObj(target,sharedopts) 27511d341caSmrg#else 27611d341caSmrg# define _CompileObjSeparateOpts(target,staticopts,sharedopts) @@\ 27711d341caSmrgtarget @@\ 27811d341caSmrg _DebuggedObjCompile(staticopts) @@\ 27911d341caSmrg _ProfiledObjCompile(staticopts) @@\ 28011d341caSmrg _NormalObjCompile(staticopts) @@\ 28111d341caSmrg _ExtraObjCompile(staticopts) @@\ 28211d341caSmrg _SharedObjCompile(sharedopts) 28311d341caSmrg#endif 28411d341caSmrg 28511d341caSmrg#ifdef CplusplusSource 28611d341caSmrg# define _CompileObjCplusplus(target, options) @@\ 28711d341caSmrgtarget @@\ 28811d341caSmrg _DebuggedObjCplusplusCompile(options) @@\ 28911d341caSmrg _ProfiledObjCplusplusCompile(options) @@\ 29011d341caSmrg _NormalObjCplusplusCompile(options) @@\ 29111d341caSmrg _ExtraObjCplusplusCompile(options) @@\ 29211d341caSmrg _SharedObjCplusplusCompile(options) 29311d341caSmrg#else 29411d341caSmrg# define _CompileObjCplusplus(target, options) 29511d341caSmrg#endif 29611d341caSmrg 29711d341caSmrg#ifndef LibraryObjectRule 29811d341caSmrg# define LibraryObjectRule() @@\ 29911d341caSmrgall:: @@\ 30011d341caSmrg _DebuggedLibMkdir() @@\ 30111d341caSmrg _ProfiledLibMkdir() @@\ 30211d341caSmrg _NormalLibMkdir() @@\ 30311d341caSmrg _ExtraLibMkdir() @@\ 30411d341caSmrg @@\ 30511d341caSmrgincludes:: @@\ 30611d341caSmrg _DebuggedLibMkdir() @@\ 30711d341caSmrg _ProfiledLibMkdir() @@\ 30811d341caSmrg _NormalLibMkdir() @@\ 30911d341caSmrg _ExtraLibMkdir() @@\ 31011d341caSmrg @@\ 31111d341caSmrg_CompileObj(.c.Osuf:,$(_NOOP_)) @@\ 31211d341caSmrg_CompileObjCplusplus(.SRCsuf.Osuf:,$(_NOOP_)) @@\ 31311d341caSmrg @@\ 31411d341caSmrgclean:: @@\ 31511d341caSmrg _DebuggedCleanDir() @@\ 31611d341caSmrg _ProfiledCleanDir() @@\ 31711d341caSmrg _NormalCleanDir() @@\ 31811d341caSmrg _ExtraCleanDir() @@\ 31911d341caSmrg 32011d341caSmrg#endif /* LibraryObjectRule */ 32111d341caSmrg 32211d341caSmrg#ifndef SpecialLibObjectRule 32311d341caSmrg# define SpecialLibObjectRule(objs,depends,options) @@\ 32411d341caSmrg_CompileObj(objs: depends,options) 32511d341caSmrg#endif /* SpecialLibObjectRule */ 32611d341caSmrg 32711d341caSmrg#ifndef SpecialCLibObjectRule 32811d341caSmrg# define SpecialCLibObjectRule(basename,depends,options) @@\ 32911d341caSmrg_CompileObj(basename.Osuf: basename.SRCsuf depends,options) @@\ 33011d341caSmrg @@\ 33111d341caSmrgbasename.Isuf: basename.SRCsuf depends @@\ 33211d341caSmrg CPPOnlyCompile(basename.SRCsuf,options) @@\ 33311d341caSmrg @@\ 33411d341caSmrgCenterLoadTarget(debug_src,basename.SRCsuf,NullParameter,$(ALLDEFINES) options) 33511d341caSmrg#endif /* SpecialCLibObjectRule */ 33611d341caSmrg 33711d341caSmrg#ifndef SpecialCLibObjectRuleSeparateOpts 33811d341caSmrg# define SpecialCLibObjectRuleSeparateOpts(basename,depends,staticopts,shopts) @@\ 33911d341caSmrg_CompileObjSeparateOpts(basename.Osuf: basename.SRCsuf depends,staticopts,shopts) @@\ 34011d341caSmrg @@\ 34111d341caSmrgbasename.Isuf: basename.SRCsuf depends @@\ 34211d341caSmrg CPPOnlyCompile(basename.SRCsuf,sharedopts) @@\ 34311d341caSmrg @@\ 34411d341caSmrgCenterLoadTarget(debug_src,basename.SRCsuf,NullParameter,$(ALLDEFINES) options) 34511d341caSmrg#endif /* SpecialCLibObjectRuleSepareateOpts */ 34611d341caSmrg 34711d341caSmrg#ifndef SpecialCplusplusLibObjectRule 34811d341caSmrg# define SpecialCplusplusLibObjectRule(basename,depends,options) @@\ 34911d341caSmrg_CompileObjCplusplus(basename.Osuf: basename.SRCsuf depends,options) @@\ 35011d341caSmrg @@\ 35111d341caSmrgCenterLoadTarget(debug_src,basename.SRCsuf,NullParameter,$(ALLDEFINES) options) 35211d341caSmrg#endif /* SpecialCplusplusLibObjectRule */ 35311d341caSmrg 35411d341caSmrg/* 35511d341caSmrg * ToolkitMakeStrings generates a string-table, i.e., a C source 35611d341caSmrg * file and the matching header(s), e.g., Xt's StringDefs.c, StringDefs.h, 35711d341caSmrg * and Shell.h files; or Motif's XmStrDefs.c and XmStrDefs.h files. 35811d341caSmrg * 35911d341caSmrg * The 'files' argument is the list of files that will be produced by 36011d341caSmrg * this rule, e.g., for Xt they would be "Shell.h StringDefs.c StringDefs.h" 36111d341caSmrg * and for Motif they would be "XmStrDefs.c XmStrDefs.h". 36211d341caSmrg * 36311d341caSmrg * The 'source' argument is the string-list file to be parsed, e.g., in 36411d341caSmrg * Xt that would be "util/string.list". For Motif 2.0 it would be 36511d341caSmrg * "../../tools/makestr/xmstring.list", and for Motif-CDE1 it would be 36611d341caSmrg * "util/xmstring.list". 36711d341caSmrg * 36811d341caSmrg * The 'options' argument is passed by the library's Imakefile, see the 36911d341caSmrg * Xt Imakefile for an example. Typically this would be nothing, -intelabi, 37011d341caSmrg * or -sparcabi; there are other choices, but these are typical. 37111d341caSmrg * 37211d341caSmrg * The 'depends' argument names additional files the target files 37311d341caSmrg * depend on. It should name the #ctmpl and #htmpl files from the 37411d341caSmrg * 'source' file. 37511d341caSmrg * 37611d341caSmrg * The 'dest' argument is the C source output file. For Xt this should 37711d341caSmrg * be "StringDefs.c", and for all versions of Motif it would be "XmStrDefs.c" 37811d341caSmrg * 37911d341caSmrg * Headers are generated and named according to data in the 'source' 38011d341caSmrg * file. 38111d341caSmrg */ 38211d341caSmrg/* 38311d341caSmrg * The NoCmpScript 38411d341caSmrg * prevents clearmake from trying to remake makestrs if it exists. 38511d341caSmrg * Including both $(MAKESTRS) and $(MAKESTRS).o as primary targets 38611d341caSmrg * prevents clearmake from trying to recompile makestrs from here. 38711d341caSmrg * We have includes, not files, depend on makestrs to try to get 38811d341caSmrg * clearmake to wink in the files. Bug in clearmake 2.0.2? 38911d341caSmrg */ 39011d341caSmrg 39111d341caSmrg#ifndef MakeStringsDependency 39211d341caSmrg# ifndef UseInstalled 39311d341caSmrg# define MakeStringsDependency @@\ 39411d341caSmrgMAKESTRS = $(CONFIGSRC)/util/makestrs @@\ 39511d341caSmrgNoCmpScript(HostProgramTargetName($(MAKESTRS)) $(MAKESTRS).Osuf) @@\ 39611d341caSmrg @@\ 39711d341caSmrgHostProgramTargetName($(MAKESTRS)) $(MAKESTRS).Osuf: @@\ 39811d341caSmrg cd $(CONFIGSRC)/util && $(MAKE) HostProgramTargetName(makestrs) @@\ 39911d341caSmrg @@\ 40011d341caSmrgincludes:: HostProgramTargetName($(MAKESTRS)) 40111d341caSmrg# else 40211d341caSmrg# define MakeStringsDependency /**/ 40311d341caSmrg# endif 40411d341caSmrg#endif 40511d341caSmrg 40611d341caSmrg#ifndef ToolkitMakeStrings 40711d341caSmrg# if defined(LibTookitMakeStringsDependency) && LibTookitMakeStringsDependency 40811d341caSmrg# define ToolkitMakeStrings(files,source,options,depends,dest) @@\ 40911d341caSmrgfiles: source depends @@\ 41011d341caSmrg RemoveFiles(files) @@\ 41111d341caSmrg RunProgram(MAKESTRS,options < source > dest) @@\ 41211d341caSmrg @@\ 41311d341caSmrgAllTarget(files) @@\ 41411d341caSmrg @@\ 41511d341caSmrgincludes:: files @@\ 41611d341caSmrg @@\ 41711d341caSmrgdepend:: files @@\ 41811d341caSmrg @@\ 41911d341caSmrgclean:: @@\ 42011d341caSmrg RemoveFiles(files) 42111d341caSmrg# else 42211d341caSmrg# define ToolkitMakeStrings(files,source,options,depends,dest) @@\ 42311d341caSmrgMakeStringsDependency @@\ 42411d341caSmrg @@\ 42511d341caSmrgfiles: source depends @@\ 42611d341caSmrg RemoveFiles(files) @@\ 42711d341caSmrg RunProgram(MAKESTRS,options < source > dest) @@\ 42811d341caSmrg @@\ 42911d341caSmrgAllTarget(files) @@\ 43011d341caSmrg @@\ 43111d341caSmrgincludes:: files @@\ 43211d341caSmrg @@\ 43311d341caSmrgdepend:: files @@\ 43411d341caSmrg @@\ 43511d341caSmrgclean:: @@\ 43611d341caSmrg RemoveFiles(files) 43711d341caSmrg# endif 43811d341caSmrg#endif /* ToolkitMakeStrings */ 43911d341caSmrg 44011d341caSmrg#ifdef LibName 44111d341caSmrg 44211d341caSmrgLIBNAME = LibName 44311d341caSmrg 44411d341caSmrg# if defined(LibTookitMakeStringsDependency) && LibTookitMakeStringsDependency 44511d341caSmrg/* 44611d341caSmrg * Do ToolkitMakeStrings() before BuildIncludes so makestrs is still 44711d341caSmrg * built first, even if the generated header will be installed. 44811d341caSmrg */ 44911d341caSmrgMakeStringsDependency 45011d341caSmrg# endif 45111d341caSmrg 45211d341caSmrgLibraryObjectRule() 45311d341caSmrg 45411d341caSmrg# undef _LinkBuildLibrary 45511d341caSmrg# if !defined(LibInstall) || LibInstall || LibInstallBuild 45611d341caSmrg# define _LinkBuildLibrary(lib) LinkBuildLibrary(lib) 45711d341caSmrg# else 45811d341caSmrg# define _LinkBuildLibrary(lib) $(_NULLCMD_) 45911d341caSmrg# endif 46011d341caSmrg 46111d341caSmrg# if defined(LibBuild) && !LibBuild 46211d341caSmrg# define LibCreate NO 46311d341caSmrg# endif 46411d341caSmrg 46511d341caSmrg# if !defined(LibCreate) || LibCreate 46611d341caSmrg# if DoSharedLib 46711d341caSmrg# if HugeLibrary && defined(SharedLibraryTarget3) 46811d341caSmrgSharedLibraryTarget3($(LIBNAME),$(SoRev),$(OBJS1),$(OBJS2),$(OBJS3) $(EXTRASHAREDOBJS),.,.) 46911d341caSmrg# else 47011d341caSmrg# if defined(SharedLibtoolRev) && defined(SharedLibtoolLibraryTarget) 47111d341caSmrgSharedLibtoolLibraryTarget($(LIBNAME),SharedLibtoolRev,$(OBJS) $(EXTRASHAREDOBJS),.,.) 47211d341caSmrg# else 47311d341caSmrgSharedLibraryTarget($(LIBNAME),$(SoRev),$(OBJS) $(EXTRASHAREDOBJS),.,.) 47411d341caSmrg# endif 47511d341caSmrg# endif 47611d341caSmrg# if !defined(LibInstall) || LibInstall 47711d341caSmrg# if defined(SharedLibtoolRev) && defined(InstallSharedLibtoolLibrary) 47811d341caSmrgInstallSharedLibtoolLibrary($(LIBNAME),SharedLibtoolRev,$(SHLIBDIR)) 47911d341caSmrg# else 48011d341caSmrgInstallSharedLibrary($(LIBNAME),$(SoRev),$(SHLIBDIR)) 48111d341caSmrg# endif 48211d341caSmrg# endif 48311d341caSmrg# if HasSharedData 48411d341caSmrgSharedLibraryDataTarget($(LIBNAME),$(SoRev),$(UNSHAREDOBJS)) 48511d341caSmrg# if !defined(LibInstall) || LibInstall 48611d341caSmrgInstallSharedLibraryData($(LIBNAME),$(SoRev),$(SHLIBDIR)) 48711d341caSmrg# endif 48811d341caSmrg# endif 48911d341caSmrg# endif 49011d341caSmrg# if DoNormalLib 49111d341caSmrg# if HugeLibrary 49211d341caSmrg# if DoSharedLib && SeparateSharedCompile 49311d341caSmrgUnsharedLibraryTarget3($(LIBNAME),$(OBJS1),$(OBJS2),$(OBJS3) $(EXTRAUNSHAREDOBJS),unshared,..) 49411d341caSmrg# else 49511d341caSmrgNormalLibraryTarget3($(LIBNAME),$(OBJS1),$(OBJS2),$(OBJS3) $(EXTRAUNSHAREDOBJS)) 49611d341caSmrg# endif 49711d341caSmrg# else 49811d341caSmrg# if DoSharedLib && SeparateSharedCompile 49911d341caSmrgUnsharedLibraryTarget($(LIBNAME),$(OBJS) $(EXTRAUNSHAREDOBJS),unshared,..) 50011d341caSmrg# else 50111d341caSmrgNormalLibraryTarget($(LIBNAME),$(OBJS) $(EXTRAUNSHAREDOBJS)) 50211d341caSmrg# endif 50311d341caSmrg# endif 50411d341caSmrg# if !defined(LibInstall) || LibInstall 50511d341caSmrgInstallLibrary($(LIBNAME),$(USRLIBDIR)) 50611d341caSmrg# endif 50711d341caSmrg# endif 50811d341caSmrg# if DoProfileLib 50911d341caSmrgProfiledLibraryTarget($(LIBNAME),$(OBJS) $(EXTRAUNSHAREDOBJS)) 51011d341caSmrg# if !defined(LibInstall) || LibInstall 51111d341caSmrgInstallLibrary($(LIBNAME)_p,$(USRLIBDIR)) 51211d341caSmrg# endif 51311d341caSmrg# endif 51411d341caSmrg# if DoDebugLib 51511d341caSmrgDebuggedLibraryTarget($(LIBNAME),$(OBJS) $(EXTRAUNSHAREDOBJS)) 51611d341caSmrg# if !defined(LibInstall) || LibInstall 51711d341caSmrgInstallLibrary($(LIBNAME)_d,$(USRLIBDIR)) 51811d341caSmrg# endif 51911d341caSmrg# endif 52011d341caSmrg# if DoExtraLib && defined(ExtraLibRules) 52111d341caSmrgExtraLibraryTarget($(LIBNAME),$(SoRev),$(OBJS) $(EXTRAUNSHAREDOBJS)) 52211d341caSmrg# if !defined(LibInstall) || LibInstall 52311d341caSmrgExtraInstallLibrary($(LIBNAME),$(SoRev)) 52411d341caSmrg# endif 52511d341caSmrg# endif 52611d341caSmrg 52711d341caSmrgLintLibraryTarget($(LIBNAME),$(SRCS)) 52811d341caSmrg# if !defined(LibInstall) || LibInstall 52911d341caSmrgInstallLintLibrary($(LIBNAME),$(LINTLIBDIR)) 53011d341caSmrg# endif 53111d341caSmrg# else /* not LibCreate */ 53211d341caSmrg# if LibBuild 53311d341caSmrg# if HugeLibrary 53411d341caSmrgAllTarget($(OBJS1)) 53511d341caSmrgAllTarget($(OBJS2)) 53611d341caSmrgAllTarget($(OBJS3)) 53711d341caSmrg# else 53811d341caSmrgAllTarget($(OBJS)) 53911d341caSmrg# endif 54011d341caSmrg# if DoSharedLib 54111d341caSmrgAllTarget($(EXTRASHAREDOBJS)) 54211d341caSmrg# endif 54311d341caSmrg# if DoNormalLib 54411d341caSmrgAllTarget($(EXTRAUNSHAREDOBJS)) 54511d341caSmrg# endif 54611d341caSmrg# endif /* LibBuild */ 54711d341caSmrg# endif /* LibCreate */ 54811d341caSmrg# ifdef IncSubdir 54911d341caSmrg# ifdef IncSubSubdir 55011d341caSmrg# if !defined(LibHeaders) || LibHeaders 55111d341caSmrgBuildIncludes($(HEADERS),IncSubdir/IncSubSubdir,../..) 55211d341caSmrg# if BuildLibraries 55311d341caSmrgInstallMultipleFlags($(HEADERS),$(INCDIR)/IncSubdir/IncSubSubdir,$(INSTINCFLAGS)) 55411d341caSmrg# endif 55511d341caSmrg# endif 55611d341caSmrg# else 55711d341caSmrg# if !defined(LibHeaders) || LibHeaders 55811d341caSmrgBuildIncludes($(HEADERS),IncSubdir,..) 55911d341caSmrg# if BuildLibraries 56011d341caSmrgInstallMultipleFlags($(HEADERS),$(INCDIR)/IncSubdir,$(INSTINCFLAGS)) 56111d341caSmrg# endif 56211d341caSmrg# endif 56311d341caSmrg# endif 56411d341caSmrg# else 56511d341caSmrg# ifndef CplusplusSource 56611d341caSmrg# if !defined(LibHeaders) || LibHeaders 56711d341caSmrgBuildIncludesTop($(HEADERS)) 56811d341caSmrg# if BuildLibraries 56911d341caSmrgInstallMultipleFlags($(HEADERS),$(INCDIR),$(INSTINCFLAGS)) 57011d341caSmrg# endif 57111d341caSmrg# endif 57211d341caSmrg# endif 57311d341caSmrg# endif 57411d341caSmrg 57511d341caSmrgNormalLintTarget($(SRCS)) 57611d341caSmrg#endif /* defined(LibName) */ 57711d341caSmrg 57811d341caSmrg#ifdef NoSoSymlink 57911d341caSmrgSOSYMLINK = false 58011d341caSmrg#else 58111d341caSmrgSOSYMLINK = true 58211d341caSmrg#endif 583