583 lines
18 KiB
Cheetah
583 lines
18 KiB
Cheetah
/*
|
|
* Library imakefile info - this contains any special redefinitions, etc.
|
|
* that Imakefiles in the various library subtrees will need.
|
|
*
|
|
* Before including this, you must set the following boolean variables:
|
|
* DoNormalLib, DoSharedLib, DoDebugLib, DoProfileLib
|
|
*
|
|
* To get automatic generation of standard rules, also set the variables:
|
|
* LibName, SoRev, HasSharedData, and optionally HugeLibrary and IncSubdir.
|
|
*
|
|
* To suppress installation of the library define LibInstall NO.
|
|
* To suppress creating (and installing) the library define LibCreate NO.
|
|
* To suppress installing headers define LibHeaders NO.
|
|
* Define LargePICTable YES if large (32-bit) PIC tables are needed.
|
|
*/
|
|
|
|
XCOMM $Xorg: Library.tmpl,v 1.3 2000/08/17 19:41:46 cpqbld Exp $
|
|
|
|
|
|
|
|
|
|
XCOMM $XFree86: xc/config/cf/Library.tmpl,v 3.23tsi Exp $
|
|
|
|
#ifndef DoNormalLib
|
|
#define DoNormalLib NO
|
|
#endif
|
|
#ifndef DoSharedLib
|
|
#define DoSharedLib NO
|
|
#endif
|
|
#ifndef DoDebugLib
|
|
#define DoDebugLib NO
|
|
#endif
|
|
#ifndef DoProfileLib
|
|
#define DoProfileLib NO
|
|
#endif
|
|
#ifndef DoExtraLib
|
|
#define DoExtraLib NO
|
|
#endif
|
|
|
|
#ifndef HasSharedData
|
|
#define HasSharedData NO
|
|
#endif
|
|
#ifndef HugeLibrary
|
|
#define HugeLibrary NO
|
|
#endif
|
|
|
|
#ifndef ShlibBindGlobals
|
|
#define ShlibBindGlobals NO
|
|
#endif
|
|
|
|
#if ShlibBindGlobals && defined(ShlibGlobalsFlags)
|
|
SHLIBGLOBALSFLAGS = ShlibGlobalsFlags
|
|
#endif
|
|
|
|
#ifndef LibraryCplusplusOptions
|
|
# if DoSharedLib && defined(SharedLibraryCplusplusOptions)
|
|
# define LibraryCplusplusOptions SharedLibraryCplusplusOptions
|
|
# else
|
|
# define LibraryCplusplusOptions DefaultCplusplusOptions
|
|
# endif
|
|
#endif
|
|
#ifndef LibraryDefines
|
|
# define LibraryDefines StandardDefines
|
|
#endif
|
|
#ifndef LibraryDebugOpt
|
|
# define LibraryDebugOpt /**/
|
|
#endif
|
|
/* Note: Changing LibraryCDebugFlags has no effect because CDEBUGFLAGS is over-
|
|
ridden by PassCDebugFlags in the parent Makefile or toplevel xmakefile. */
|
|
#ifndef LibraryCDebugFlags
|
|
# define LibraryCDebugFlags DefaultCDebugFlags
|
|
#endif
|
|
#ifndef LibraryCplusplusDebugFlags
|
|
# define LibraryCplusplusDebugFlags DefaultCplusplusDebugFlags
|
|
#endif
|
|
#ifndef SeparateSharedCompile
|
|
# define SeparateSharedCompile YES
|
|
#endif
|
|
|
|
#ifdef CrossCompileDir
|
|
# ifndef StripPath
|
|
# define StripPath(x) `echo x|sed "s%.*/%%"`
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef CplusplusSource
|
|
# ifndef LibraryCcCmd
|
|
# if DoSharedLib && defined(SharedLibraryCcCmd)
|
|
# define LibraryCcCmd SharedLibraryCcCmd
|
|
# else
|
|
# define LibraryCcCmd CcCmd
|
|
# endif
|
|
# endif
|
|
# ifndef LibraryCCOptions
|
|
# if DoSharedLib && defined(SharedLibraryCCOptions)
|
|
# define LibraryCCOptions SharedLibraryCCOptions
|
|
# else
|
|
# define LibraryCCOptions DefaultCCOptions
|
|
# endif
|
|
# endif
|
|
|
|
#ifdef CrossCompileDir
|
|
# ifndef CrossLibraryCcCmd
|
|
# define CrossLibraryCcCmd Concat3(CrossCompileDir,/,StripPath(LibraryCcCmd))
|
|
# endif
|
|
#endif
|
|
|
|
#ifdef CrossCompileDir
|
|
CC = CrossLibraryCcCmd
|
|
#else
|
|
CC = LibraryCcCmd
|
|
#endif
|
|
CCOPTIONS = LibraryCCOptions
|
|
STD_DEFINES = LibraryDefines $(PROJECT_DEFINES)
|
|
CDEBUGFLAGS = LibraryCDebugFlags
|
|
CLIBDEBUGFLAGS = LibraryDebugOpt
|
|
CFLAGS = $(CDEBUGFLAGS) $(CLIBDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(ALLDEFINES)
|
|
# if defined(LargePICTable) && LargePICTable && defined(LargePositionIndependentCFlags)
|
|
PICFLAGS = LargePositionIndependentCFlags
|
|
# endif
|
|
#else
|
|
# ifndef CrossCompileDir
|
|
# ifndef LibraryCplusplusCmd
|
|
# if DoSharedLib && defined(SharedLibraryCplusplusCmd)
|
|
# define LibraryCplusplusCmd SharedLibraryCplusplusCmd
|
|
# else
|
|
# define LibraryCplusplusCmd CplusplusCmd
|
|
# endif
|
|
# endif
|
|
# else
|
|
# ifndef CrossLibraryCplusplusCmd
|
|
# if DoSharedLib && defined(SharedLibraryCplusplusCmd)
|
|
# define CrossLibraryCplusplusCmd Concat3(CrossCompileDir,/,StripPath(SharedLibraryCplusplusCmd))
|
|
# else
|
|
# define CrossLibraryCplusplusCmd Concat3(CrossCompileDir,/,StripPath(CplusplusCmd))
|
|
# endif
|
|
# endif
|
|
# endif
|
|
|
|
# ifndef LibraryCplusplusOptions
|
|
# if DoSharedLib && defined(SharedLibraryCplusplusOptions)
|
|
# define LibraryCplusplusOptions SharedLibraryCplusplusOptions
|
|
# else
|
|
# define LibraryCplusplusOptions DefaultCplusplusOptions
|
|
# endif
|
|
# endif
|
|
|
|
#ifdef CrossCompileDir
|
|
CXX = CrossLibraryCplusplusCmd
|
|
#else
|
|
CXX = LibraryCplusplusCmd
|
|
#endif
|
|
CXXOPTIONS = LibraryCplusplusOptions
|
|
STD_DEFINES = LibraryDefines $(PROJECT_DEFINES)
|
|
CXXDEBUGFLAGS = LibraryCplusplusDebugFlags
|
|
CXXLIBDEBUGFLAGS = LibraryDebugOpt
|
|
CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXLIBDEBUGFLAGS) $(CXXOPTIONS) $(THREADS_CXXFLAGS) $(CXXDEFINES)
|
|
# if defined(LargePICTable) && LargePICTable
|
|
# ifdef LargePositionIndependentCplusplusFlags
|
|
CXXPICFLAGS = LargePositionIndependentCplusplusFlags
|
|
# elif defined(LargePositionIndependentCFlags)
|
|
CXXPICFLAGS = LargePositionIndependentCFlags
|
|
# endif
|
|
# endif
|
|
#endif
|
|
|
|
#ifdef LibraryMTDefines
|
|
LIB_MT_DEFINES = LibraryMTDefines
|
|
#endif
|
|
|
|
#if defined(IHaveSubdirs) && HasSymLinks && !defined(NoLibSubdirs)
|
|
#define _LibMkdir LibMkdirLinkSubdirs
|
|
#else
|
|
#define _LibMkdir LibMkdir
|
|
#endif
|
|
|
|
#if DoDebugLib
|
|
# define _DebuggedLibMkdir() _LibMkdir(debugger)
|
|
# define _DebuggedObjCompile(options) DebuggedLibObjCompile(options)
|
|
# define _DebuggedObjCplusplusCompile(options) DebuggedLibObjCplusplusCompile(options)
|
|
# define _DebuggedCleanDir() LibCleanDir(debugger)
|
|
#else
|
|
# define _DebuggedLibMkdir() $(_NULLCMD_)
|
|
# define _DebuggedObjCompile(options) $(_NULLCMD_)
|
|
# define _DebuggedObjCplusplusCompile(options) $(_NULLCMD_)
|
|
# define _DebuggedCleanDir() $(_NULLCMD_)
|
|
#endif
|
|
|
|
#if DoProfileLib
|
|
# define _ProfiledLibMkdir() _LibMkdir(profiled)
|
|
# define _ProfiledObjCompile(options) ProfiledLibObjCompile(options)
|
|
# define _ProfiledObjCplusplusCompile(options) ProfiledLibObjCplusplusCompile(options)
|
|
# define _ProfiledCleanDir() LibCleanDir(profiled)
|
|
#else
|
|
# define _ProfiledLibMkdir() $(_NULLCMD_)
|
|
# define _ProfiledObjCompile(options) $(_NULLCMD_)
|
|
# define _ProfiledObjCplusplusCompile(options) $(_NULLCMD_)
|
|
# define _ProfiledCleanDir() $(_NULLCMD_)
|
|
#endif
|
|
|
|
#if !DoNormalLib
|
|
# define _NormalLibMkdir() $(_NULLCMD_)
|
|
# define _NormalObjCompile(options) $(_NULLCMD_)
|
|
# define _NormalObjCplusplusCompile(options) $(_NULLCMD_)
|
|
# define _NormalCleanDir() $(_NULLCMD_)
|
|
#else
|
|
# if DoSharedLib && SeparateSharedCompile
|
|
# define _NormalLibMkdir() _LibMkdir(unshared)
|
|
# define _NormalObjCompile(options) UnsharedLibObjCompile(options)
|
|
# define _NormalObjCplusplusCompile(options) UnsharedLibObjCplusplusCompile(options)
|
|
# define _NormalCleanDir() LibCleanDir(unshared)
|
|
# else
|
|
# define _NormalLibMkdir() $(_NULLCMD_)
|
|
# if !DoSharedLib && defined(IncludeSharedObjectInNormalLib)
|
|
# define _NormalObjCompile(options) NormalRelocLibObjCompile(options)
|
|
# else
|
|
# define _NormalObjCompile(options) NormalLibObjCompile(options)
|
|
# endif
|
|
# define _NormalObjCplusplusCompile(options) NormalLibObjCplusplusCompile(options)
|
|
# define _NormalCleanDir() $(_NULLCMD_)
|
|
# endif
|
|
#endif
|
|
|
|
#if !DoSharedLib || (DoNormalLib && !SeparateSharedCompile)
|
|
# define _SharedObjCompile(options) $(_NULLCMD_)
|
|
# define _SharedObjCplusplusCompile(options) $(_NULLCMD_)
|
|
#else
|
|
# if SeparateSharedCompile
|
|
# define _SharedObjCompile(options) NormalSharedLibObjCompile(options)
|
|
# define _SharedObjCplusplusCompile(options) NormalSharedLibObjCplusplusCompile(options)
|
|
#else
|
|
# define _SharedObjCompile(options) NormalLibObjCompile(options)
|
|
# define _SharedObjCplusplusCompile(options) NormalLibObjCplusplusCompile(options)
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef LibInstallBuild
|
|
#define LibInstallBuild NO
|
|
#endif
|
|
|
|
#if DoExtraLib && defined(ExtraLibRules)
|
|
# define _ExtraLibMkdir() ExtraLibMkdir()
|
|
# define _ExtraObjCompile(options) ExtraObjCompile(options)
|
|
# define _ExtraObjCplusplusCompile(options) ExtraObjCplusplusCompile(options)
|
|
# define _ExtraCleanDir() ExtraCleanDir()
|
|
#else
|
|
# define _ExtraLibMkdir() $(_NULLCMD_)
|
|
# define _ExtraObjCompile(options) $(_NULLCMD_)
|
|
# define _ExtraObjCplusplusCompile(options) $(_NULLCMD_)
|
|
# define _ExtraCleanDir() $(_NULLCMD_)
|
|
#endif
|
|
|
|
#ifndef CplusplusSource
|
|
# define SRCsuf c
|
|
# define Isuf i
|
|
#else
|
|
# define SRCsuf CCsuf
|
|
# define Isuf ii
|
|
# ifdef SunArchitecture
|
|
.SUFFIXES: Concat(.,CCsuf)
|
|
# endif
|
|
#endif
|
|
|
|
#define _CompileObj(target, options) @@\
|
|
target @@\
|
|
_DebuggedObjCompile(options) @@\
|
|
_ProfiledObjCompile(options) @@\
|
|
_NormalObjCompile(options) @@\
|
|
_ExtraObjCompile(options) @@\
|
|
_SharedObjCompile(options)
|
|
|
|
#ifndef SeparateSharedCompile
|
|
# define _CompileObjSeparateOpts(target,staticopts,sharedopts) \
|
|
_CompileObj(target,sharedopts)
|
|
#else
|
|
# define _CompileObjSeparateOpts(target,staticopts,sharedopts) @@\
|
|
target @@\
|
|
_DebuggedObjCompile(staticopts) @@\
|
|
_ProfiledObjCompile(staticopts) @@\
|
|
_NormalObjCompile(staticopts) @@\
|
|
_ExtraObjCompile(staticopts) @@\
|
|
_SharedObjCompile(sharedopts)
|
|
#endif
|
|
|
|
#ifdef CplusplusSource
|
|
# define _CompileObjCplusplus(target, options) @@\
|
|
target @@\
|
|
_DebuggedObjCplusplusCompile(options) @@\
|
|
_ProfiledObjCplusplusCompile(options) @@\
|
|
_NormalObjCplusplusCompile(options) @@\
|
|
_ExtraObjCplusplusCompile(options) @@\
|
|
_SharedObjCplusplusCompile(options)
|
|
#else
|
|
# define _CompileObjCplusplus(target, options)
|
|
#endif
|
|
|
|
#ifndef LibraryObjectRule
|
|
# define LibraryObjectRule() @@\
|
|
all:: @@\
|
|
_DebuggedLibMkdir() @@\
|
|
_ProfiledLibMkdir() @@\
|
|
_NormalLibMkdir() @@\
|
|
_ExtraLibMkdir() @@\
|
|
@@\
|
|
includes:: @@\
|
|
_DebuggedLibMkdir() @@\
|
|
_ProfiledLibMkdir() @@\
|
|
_NormalLibMkdir() @@\
|
|
_ExtraLibMkdir() @@\
|
|
@@\
|
|
_CompileObj(.c.Osuf:,$(_NOOP_)) @@\
|
|
_CompileObjCplusplus(.SRCsuf.Osuf:,$(_NOOP_)) @@\
|
|
@@\
|
|
clean:: @@\
|
|
_DebuggedCleanDir() @@\
|
|
_ProfiledCleanDir() @@\
|
|
_NormalCleanDir() @@\
|
|
_ExtraCleanDir() @@\
|
|
|
|
#endif /* LibraryObjectRule */
|
|
|
|
#ifndef SpecialLibObjectRule
|
|
# define SpecialLibObjectRule(objs,depends,options) @@\
|
|
_CompileObj(objs: depends,options)
|
|
#endif /* SpecialLibObjectRule */
|
|
|
|
#ifndef SpecialCLibObjectRule
|
|
# define SpecialCLibObjectRule(basename,depends,options) @@\
|
|
_CompileObj(basename.Osuf: basename.SRCsuf depends,options) @@\
|
|
@@\
|
|
basename.Isuf: basename.SRCsuf depends @@\
|
|
CPPOnlyCompile(basename.SRCsuf,options) @@\
|
|
@@\
|
|
CenterLoadTarget(debug_src,basename.SRCsuf,NullParameter,$(ALLDEFINES) options)
|
|
#endif /* SpecialCLibObjectRule */
|
|
|
|
#ifndef SpecialCLibObjectRuleSeparateOpts
|
|
# define SpecialCLibObjectRuleSeparateOpts(basename,depends,staticopts,shopts) @@\
|
|
_CompileObjSeparateOpts(basename.Osuf: basename.SRCsuf depends,staticopts,shopts) @@\
|
|
@@\
|
|
basename.Isuf: basename.SRCsuf depends @@\
|
|
CPPOnlyCompile(basename.SRCsuf,sharedopts) @@\
|
|
@@\
|
|
CenterLoadTarget(debug_src,basename.SRCsuf,NullParameter,$(ALLDEFINES) options)
|
|
#endif /* SpecialCLibObjectRuleSepareateOpts */
|
|
|
|
#ifndef SpecialCplusplusLibObjectRule
|
|
# define SpecialCplusplusLibObjectRule(basename,depends,options) @@\
|
|
_CompileObjCplusplus(basename.Osuf: basename.SRCsuf depends,options) @@\
|
|
@@\
|
|
CenterLoadTarget(debug_src,basename.SRCsuf,NullParameter,$(ALLDEFINES) options)
|
|
#endif /* SpecialCplusplusLibObjectRule */
|
|
|
|
/*
|
|
* ToolkitMakeStrings generates a string-table, i.e., a C source
|
|
* file and the matching header(s), e.g., Xt's StringDefs.c, StringDefs.h,
|
|
* and Shell.h files; or Motif's XmStrDefs.c and XmStrDefs.h files.
|
|
*
|
|
* The 'files' argument is the list of files that will be produced by
|
|
* this rule, e.g., for Xt they would be "Shell.h StringDefs.c StringDefs.h"
|
|
* and for Motif they would be "XmStrDefs.c XmStrDefs.h".
|
|
*
|
|
* The 'source' argument is the string-list file to be parsed, e.g., in
|
|
* Xt that would be "util/string.list". For Motif 2.0 it would be
|
|
* "../../tools/makestr/xmstring.list", and for Motif-CDE1 it would be
|
|
* "util/xmstring.list".
|
|
*
|
|
* The 'options' argument is passed by the library's Imakefile, see the
|
|
* Xt Imakefile for an example. Typically this would be nothing, -intelabi,
|
|
* or -sparcabi; there are other choices, but these are typical.
|
|
*
|
|
* The 'depends' argument names additional files the target files
|
|
* depend on. It should name the #ctmpl and #htmpl files from the
|
|
* 'source' file.
|
|
*
|
|
* The 'dest' argument is the C source output file. For Xt this should
|
|
* be "StringDefs.c", and for all versions of Motif it would be "XmStrDefs.c"
|
|
*
|
|
* Headers are generated and named according to data in the 'source'
|
|
* file.
|
|
*/
|
|
/*
|
|
* The NoCmpScript
|
|
* prevents clearmake from trying to remake makestrs if it exists.
|
|
* Including both $(MAKESTRS) and $(MAKESTRS).o as primary targets
|
|
* prevents clearmake from trying to recompile makestrs from here.
|
|
* We have includes, not files, depend on makestrs to try to get
|
|
* clearmake to wink in the files. Bug in clearmake 2.0.2?
|
|
*/
|
|
|
|
#ifndef MakeStringsDependency
|
|
# ifndef UseInstalled
|
|
# define MakeStringsDependency @@\
|
|
MAKESTRS = $(CONFIGSRC)/util/makestrs @@\
|
|
NoCmpScript(HostProgramTargetName($(MAKESTRS)) $(MAKESTRS).Osuf) @@\
|
|
@@\
|
|
HostProgramTargetName($(MAKESTRS)) $(MAKESTRS).Osuf: @@\
|
|
cd $(CONFIGSRC)/util && $(MAKE) HostProgramTargetName(makestrs) @@\
|
|
@@\
|
|
includes:: HostProgramTargetName($(MAKESTRS))
|
|
# else
|
|
# define MakeStringsDependency /**/
|
|
# endif
|
|
#endif
|
|
|
|
#ifndef ToolkitMakeStrings
|
|
# if defined(LibTookitMakeStringsDependency) && LibTookitMakeStringsDependency
|
|
# define ToolkitMakeStrings(files,source,options,depends,dest) @@\
|
|
files: source depends @@\
|
|
RemoveFiles(files) @@\
|
|
RunProgram(MAKESTRS,options < source > dest) @@\
|
|
@@\
|
|
AllTarget(files) @@\
|
|
@@\
|
|
includes:: files @@\
|
|
@@\
|
|
depend:: files @@\
|
|
@@\
|
|
clean:: @@\
|
|
RemoveFiles(files)
|
|
# else
|
|
# define ToolkitMakeStrings(files,source,options,depends,dest) @@\
|
|
MakeStringsDependency @@\
|
|
@@\
|
|
files: source depends @@\
|
|
RemoveFiles(files) @@\
|
|
RunProgram(MAKESTRS,options < source > dest) @@\
|
|
@@\
|
|
AllTarget(files) @@\
|
|
@@\
|
|
includes:: files @@\
|
|
@@\
|
|
depend:: files @@\
|
|
@@\
|
|
clean:: @@\
|
|
RemoveFiles(files)
|
|
# endif
|
|
#endif /* ToolkitMakeStrings */
|
|
|
|
#ifdef LibName
|
|
|
|
LIBNAME = LibName
|
|
|
|
# if defined(LibTookitMakeStringsDependency) && LibTookitMakeStringsDependency
|
|
/*
|
|
* Do ToolkitMakeStrings() before BuildIncludes so makestrs is still
|
|
* built first, even if the generated header will be installed.
|
|
*/
|
|
MakeStringsDependency
|
|
# endif
|
|
|
|
LibraryObjectRule()
|
|
|
|
# undef _LinkBuildLibrary
|
|
# if !defined(LibInstall) || LibInstall || LibInstallBuild
|
|
# define _LinkBuildLibrary(lib) LinkBuildLibrary(lib)
|
|
# else
|
|
# define _LinkBuildLibrary(lib) $(_NULLCMD_)
|
|
# endif
|
|
|
|
# if defined(LibBuild) && !LibBuild
|
|
# define LibCreate NO
|
|
# endif
|
|
|
|
# if !defined(LibCreate) || LibCreate
|
|
# if DoSharedLib
|
|
# if HugeLibrary && defined(SharedLibraryTarget3)
|
|
SharedLibraryTarget3($(LIBNAME),$(SoRev),$(OBJS1),$(OBJS2),$(OBJS3) $(EXTRASHAREDOBJS),.,.)
|
|
# else
|
|
# if defined(SharedLibtoolRev) && defined(SharedLibtoolLibraryTarget)
|
|
SharedLibtoolLibraryTarget($(LIBNAME),SharedLibtoolRev,$(OBJS) $(EXTRASHAREDOBJS),.,.)
|
|
# else
|
|
SharedLibraryTarget($(LIBNAME),$(SoRev),$(OBJS) $(EXTRASHAREDOBJS),.,.)
|
|
# endif
|
|
# endif
|
|
# if !defined(LibInstall) || LibInstall
|
|
# if defined(SharedLibtoolRev) && defined(InstallSharedLibtoolLibrary)
|
|
InstallSharedLibtoolLibrary($(LIBNAME),SharedLibtoolRev,$(SHLIBDIR))
|
|
# else
|
|
InstallSharedLibrary($(LIBNAME),$(SoRev),$(SHLIBDIR))
|
|
# endif
|
|
# endif
|
|
# if HasSharedData
|
|
SharedLibraryDataTarget($(LIBNAME),$(SoRev),$(UNSHAREDOBJS))
|
|
# if !defined(LibInstall) || LibInstall
|
|
InstallSharedLibraryData($(LIBNAME),$(SoRev),$(SHLIBDIR))
|
|
# endif
|
|
# endif
|
|
# endif
|
|
# if DoNormalLib
|
|
# if HugeLibrary
|
|
# if DoSharedLib && SeparateSharedCompile
|
|
UnsharedLibraryTarget3($(LIBNAME),$(OBJS1),$(OBJS2),$(OBJS3) $(EXTRAUNSHAREDOBJS),unshared,..)
|
|
# else
|
|
NormalLibraryTarget3($(LIBNAME),$(OBJS1),$(OBJS2),$(OBJS3) $(EXTRAUNSHAREDOBJS))
|
|
# endif
|
|
# else
|
|
# if DoSharedLib && SeparateSharedCompile
|
|
UnsharedLibraryTarget($(LIBNAME),$(OBJS) $(EXTRAUNSHAREDOBJS),unshared,..)
|
|
# else
|
|
NormalLibraryTarget($(LIBNAME),$(OBJS) $(EXTRAUNSHAREDOBJS))
|
|
# endif
|
|
# endif
|
|
# if !defined(LibInstall) || LibInstall
|
|
InstallLibrary($(LIBNAME),$(USRLIBDIR))
|
|
# endif
|
|
# endif
|
|
# if DoProfileLib
|
|
ProfiledLibraryTarget($(LIBNAME),$(OBJS) $(EXTRAUNSHAREDOBJS))
|
|
# if !defined(LibInstall) || LibInstall
|
|
InstallLibrary($(LIBNAME)_p,$(USRLIBDIR))
|
|
# endif
|
|
# endif
|
|
# if DoDebugLib
|
|
DebuggedLibraryTarget($(LIBNAME),$(OBJS) $(EXTRAUNSHAREDOBJS))
|
|
# if !defined(LibInstall) || LibInstall
|
|
InstallLibrary($(LIBNAME)_d,$(USRLIBDIR))
|
|
# endif
|
|
# endif
|
|
# if DoExtraLib && defined(ExtraLibRules)
|
|
ExtraLibraryTarget($(LIBNAME),$(SoRev),$(OBJS) $(EXTRAUNSHAREDOBJS))
|
|
# if !defined(LibInstall) || LibInstall
|
|
ExtraInstallLibrary($(LIBNAME),$(SoRev))
|
|
# endif
|
|
# endif
|
|
|
|
LintLibraryTarget($(LIBNAME),$(SRCS))
|
|
# if !defined(LibInstall) || LibInstall
|
|
InstallLintLibrary($(LIBNAME),$(LINTLIBDIR))
|
|
# endif
|
|
# else /* not LibCreate */
|
|
# if LibBuild
|
|
# if HugeLibrary
|
|
AllTarget($(OBJS1))
|
|
AllTarget($(OBJS2))
|
|
AllTarget($(OBJS3))
|
|
# else
|
|
AllTarget($(OBJS))
|
|
# endif
|
|
# if DoSharedLib
|
|
AllTarget($(EXTRASHAREDOBJS))
|
|
# endif
|
|
# if DoNormalLib
|
|
AllTarget($(EXTRAUNSHAREDOBJS))
|
|
# endif
|
|
# endif /* LibBuild */
|
|
# endif /* LibCreate */
|
|
# ifdef IncSubdir
|
|
# ifdef IncSubSubdir
|
|
# if !defined(LibHeaders) || LibHeaders
|
|
BuildIncludes($(HEADERS),IncSubdir/IncSubSubdir,../..)
|
|
# if BuildLibraries
|
|
InstallMultipleFlags($(HEADERS),$(INCDIR)/IncSubdir/IncSubSubdir,$(INSTINCFLAGS))
|
|
# endif
|
|
# endif
|
|
# else
|
|
# if !defined(LibHeaders) || LibHeaders
|
|
BuildIncludes($(HEADERS),IncSubdir,..)
|
|
# if BuildLibraries
|
|
InstallMultipleFlags($(HEADERS),$(INCDIR)/IncSubdir,$(INSTINCFLAGS))
|
|
# endif
|
|
# endif
|
|
# endif
|
|
# else
|
|
# ifndef CplusplusSource
|
|
# if !defined(LibHeaders) || LibHeaders
|
|
BuildIncludesTop($(HEADERS))
|
|
# if BuildLibraries
|
|
InstallMultipleFlags($(HEADERS),$(INCDIR),$(INSTINCFLAGS))
|
|
# endif
|
|
# endif
|
|
# endif
|
|
# endif
|
|
|
|
NormalLintTarget($(SRCS))
|
|
#endif /* defined(LibName) */
|
|
|
|
#ifdef NoSoSymlink
|
|
SOSYMLINK = false
|
|
#else
|
|
SOSYMLINK = true
|
|
#endif
|