| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731 |
- //
- // Global.pp
- //
- // This file is read in before any of the individual Sources.pp files
- // are read. It defines a few global variables that are useful to all
- // different kinds of build_types.
- //
- // We start off by defining a number of map variables. These are
- // special variables that can be used to look up a particular named
- // scope according to a key (that is, according to the value of some
- // variable defined within the scope).
- // A named scope is defined using the #begin name .. #end name
- // sequence. In general, we use these sequences in the various
- // Sources.pp files to define the various targets to build. Each
- // named scope carries around its set of variable declarations. The
- // named scopes are associated with the dirname of the directory in
- // which the Sources.pp file was found.
- // The first map variable lets us look up a particular library target
- // by its target name. The syntax here indicates that we are
- // declaring a map variable called "all_libs" whose key is the
- // variable $[TARGET] as defined in each instance of a named scope
- // called "static_lib_target," "lib_target," and so on in every
- // Sources.pp file. (The */ refers to all the Sources.pp files. We
- // could also identify a particular file by its directory name, or
- // omit the slash to refer to our own Sources.pp file.)
- // After defining this map variable, we can look up other variables
- // that are defined for the corresponding target. For instances,
- // $[all_libs $[SOURCES],dconfig] will return the value of the SOURCES
- // variable as set for the dconfig library (that is, the expression
- // $[SOURCES] is evaluated within the named scope whose key is
- // "dconfig"--whose variable $[TARGET] was defined to be "dconfig").
- #map all_libs TARGET(*/static_lib_target */ss_lib_target */lib_target */noinst_lib_target */metalib_target)
- // These allow us to determine whether a particular local library is a
- // static or a dynamic library. If the library name appears in the
- // static_libs map, it is a static library (i.e. libname.a);
- // otherwise, it is a dynamic library (libname.so). The target
- // ss_lib_target is a special case: these libraries are dynamic where
- // it's easy to make them so (e.g. on Unix platforms), and static on
- // platforms where dynamic libraries aren't quite so robust (e.g. on
- // Windows).
- #if $[eq $[PLATFORM],Win32]
- #map static_libs TARGET(*/static_lib_target */ss_lib_target)
- #map dynamic_libs TARGET(*/lib_target */noinst_lib_target */metalib_target)
- #else
- #map static_libs TARGET(*/static_lib_target)
- #map dynamic_libs TARGET(*/lib_target */ss_lib_target */noinst_lib_target */metalib_target)
- #endif
- // This lets us identify which metalib, if any, is including each
- // named library. That is, $[module $[TARGET],name] will return
- // the name of the metalib that includes library name.
- #map module COMPONENT_LIBS(*/metalib_target)
- // This lets up look up components of a particular metalib.
- #map components TARGET(*/lib_target */noinst_lib_target)
- // And this lets us look up source directories by dirname.
- #map dirnames DIRNAME(*/)
- // Define some various compile flags, derived from the variables set
- // in Config.pp.
- #set INTERROGATE_PYTHON_INTERFACE $[and $[HAVE_PYTHON],$[INTERROGATE_PYTHON_INTERFACE]]
- #define run_interrogate $[or $[INTERROGATE_C_INTERFACE],$[INTERROGATE_PYTHON_INTERFACE]]
- #if $[HAVE_PYTHON]
- #define python_ipath $[wildcard $[PYTHON_IPATH]]
- #define python_lpath $[wildcard $[PYTHON_LPATH]]
- #endif
- #if $[HAVE_NSPR]
- #define nspr_ipath $[wildcard $[NSPR_IPATH]]
- #define nspr_lpath $[wildcard $[NSPR_LPATH]]
- #define nspr_cflags $[NSPR_CFLAGS]
- #define nspr_libs $[NSPR_LIBS]
- #endif
- #if $[HAVE_CRYPTO]
- #define crypto_ipath $[wildcard $[CRYPTO_IPATH]]
- #define crypto_lpath $[wildcard $[CRYPTO_LPATH]]
- #define crypto_cflags $[CRYPTO_CFLAGS]
- #define crypto_libs $[CRYPTO_LIBS]
- #endif
- #if $[HAVE_ZLIB]
- #define zlib_ipath $[wildcard $[ZLIB_IPATH]]
- #define zlib_lpath $[wildcard $[ZLIB_LPATH]]
- #define zlib_cflags $[ZLIB_CFLAGS]
- #define zlib_libs $[ZLIB_LIBS]
- #endif
- #if $[HAVE_SOXST]
- #define soxst_ipath $[wildcard $[SOXST_IPATH]]
- #define soxst_lpath $[wildcard $[SOXST_LPATH]]
- #define soxst_cflags $[SOXST_CFLAGS]
- #define soxst_libs $[SOXST_LIBS]
- #endif
- #if $[HAVE_GL]
- #define gl_ipath $[wildcard $[GL_IPATH]]
- #define gl_lpath $[wildcard $[GL_LPATH]]
- #define gl_cflags $[GL_CFLAGS]
- #define gl_libs $[GL_LIBS]
- #endif
- #if $[HAVE_GLX]
- #define glx_ipath $[wildcard $[GLX_IPATH]]
- #define glx_lpath $[wildcard $[GLX_LPATH]]
- #define glx_cflags $[GLX_CFLAGS]
- #define glx_libs $[GLX_LIBS]
- #endif
- #if $[HAVE_GLUT]
- #define glut_ipath $[wildcard $[GLUT_IPATH]]
- #define glut_lpath $[wildcard $[GLUT_LPATH]]
- #define glut_cflags $[GLUT_CFLAGS]
- #define glut_libs $[GLUT_LIBS]
- #endif
- #if $[HAVE_DX]
- #define dx_ipath $[wildcard $[DX_IPATH]]
- #define dx_lpath $[wildcard $[DX_LPATH]]
- #define dx_cflags $[DX_CFLAGS]
- #define dx_libs $[DX_LIBS]
- #endif
- #if $[HAVE_JPEG]
- #define jpeg_ipath $[wildcard $[JPEG_IPATH]]
- #define jpeg_lpath $[wildcard $[JPEG_LPATH]]
- #define jpeg_cflags $[JPEG_CFLAGS]
- #define jpeg_libs $[JPEG_LIBS]
- #endif
- #if $[HAVE_TIFF]
- #define tiff_ipath $[wildcard $[TIFF_IPATH]]
- #define tiff_lpath $[wildcard $[TIFF_LPATH]]
- #define tiff_cflags $[TIFF_CFLAGS]
- #define tiff_libs $[TIFF_LIBS]
- #endif
- #if $[HAVE_FFTW]
- #define fftw_ipath $[wildcard $[FFTW_IPATH]]
- #define fftw_lpath $[wildcard $[FFTW_LPATH]]
- #define fftw_cflags $[FFTW_CFLAGS]
- #define fftw_libs $[FFTW_LIBS]
- #endif
- #if $[HAVE_NURBSPP]
- #define nurbspp_ipath $[wildcard $[NURBSPP_IPATH]]
- #define nurbspp_lpath $[wildcard $[NURBSPP_LPATH]]
- #define nurbspp_cflags $[NURBSPP_CFLAGS]
- #define nurbspp_libs $[NURBSPP_LIBS]
- #endif
- #if $[HAVE_VRPN]
- #define vrpn_ipath $[wildcard $[VRPN_IPATH]]
- #define vrpn_lpath $[wildcard $[VRPN_LPATH]]
- #define vrpn_cflags $[VRPN_CFLAGS]
- #define vrpn_libs $[VRPN_LIBS]
- #endif
- #if $[HAVE_MIKMOD]
- #define mikmod_ipath $[wildcard $[MIKMOD_IPATH]]
- #define mikmod_lpath $[wildcard $[MIKMOD_LPATH]]
- #define mikmod_cflags $[MIKMOD_CFLAGS]
- #define mikmod_libs $[MIKMOD_LIBS]
- #endif
- #if $[HAVE_GTKMM]
- #define gtkmm_ipath $[wildcard $[GTKMM_IPATH]]
- #define gtkmm_lpath $[wildcard $[GTKMM_LPATH]]
- #define gtkmm_cflags $[GTKMM_CFLAGS]
- #define gtkmm_libs $[GTKMM_LIBS]
- #endif
- #if $[and $[HAVE_MAYA],$[MAYA_LOCATION]]
- #define maya_ipath $[MAYA_LOCATION]/include
- #define maya_lpath $[MAYA_LOCATION]/lib
- #define maya_ld $[MAYA_LOCATION]/bin/mayald
- #endif
- #if $[HAVE_IPC]
- #define ipc_ipath $[wildcard $[IPC_IPATH]]
- #define ipc_lpath $[wildcard $[IPC_LPATH]]
- #define ipc_libs $[IPC_LIBS]
- #endif
- #if $[HAVE_NET]
- #define net_ipath $[wildcard $[NET_IPATH]]
- #define net_lpath $[wildcard $[NET_LPATH]]
- #define net_libs $[NET_LIBS]
- #endif
- #if $[HAVE_AUDIO]
- #define audio_ipath $[wildcard $[AUDIO_IPATH]]
- #define audio_lpath $[wildcard $[AUDIO_LPATH]]
- #define audio_libs $[AUDIO_LIBS]
- #endif
- // This variable, when evaluated in the scope of a particular directory,
- // will indicate true (i.e. nonempty) when the directory is truly built,
- // or false (empty) when the directory is not to be built.
- #defer build_directory \
- $[and \
- $[or $[not $[DIRECTORY_IF_PYTHON]],$[HAVE_PYTHON]], \
- $[or $[not $[DIRECTORY_IF_NSPR]],$[HAVE_NSPR]], \
- $[or $[not $[DIRECTORY_IF_CRYPTO]],$[HAVE_CRYPTO]], \
- $[or $[not $[DIRECTORY_IF_ZLIB]],$[HAVE_ZLIB]], \
- $[or $[not $[DIRECTORY_IF_SOXST]],$[HAVE_SOXST]], \
- $[or $[not $[DIRECTORY_IF_GL]],$[HAVE_GL]], \
- $[or $[not $[DIRECTORY_IF_DX]],$[HAVE_DX]], \
- $[or $[not $[DIRECTORY_IF_GLX]],$[HAVE_GLX]], \
- $[or $[not $[DIRECTORY_IF_GLUT]],$[HAVE_GLUT]], \
- $[or $[not $[DIRECTORY_IF_WGL]],$[HAVE_WGL]], \
- $[or $[not $[DIRECTORY_IF_RIB]],$[HAVE_RIB]], \
- $[or $[not $[DIRECTORY_IF_PS2]],$[HAVE_PS2]], \
- $[or $[not $[DIRECTORY_IF_SGIGL]],$[HAVE_SGIGL]], \
- $[or $[not $[DIRECTORY_IF_JPEG]],$[HAVE_JPEG]], \
- $[or $[not $[DIRECTORY_IF_TIFF]],$[HAVE_TIFF]], \
- $[or $[not $[DIRECTORY_IF_FFTW]],$[HAVE_FFTW]], \
- $[or $[not $[DIRECTORY_IF_VRPN]],$[HAVE_VRPN]], \
- $[or $[not $[DIRECTORY_IF_GTKMM]],$[HAVE_GTKMM]], \
- $[or $[not $[DIRECTORY_IF_MAYA]],$[HAVE_MAYA]], \
- $[or $[not $[DIRECTORY_IF_IPC]],$[HAVE_IPC]], \
- $[or $[not $[DIRECTORY_IF_NET]],$[HAVE_NET]], \
- $[or $[not $[DIRECTORY_IF_AUDIO]],$[HAVE_AUDIO]], \
- 1 ]
- // This variable, when evaluated in the scope of a particular target,
- // will indicated true when the target should be built, or false when
- // the target is not to be built.
- #defer build_target \
- $[and \
- $[or $[not $[TARGET_IF_PYTHON]],$[HAVE_PYTHON]], \
- $[or $[not $[TARGET_IF_NSPR]],$[HAVE_NSPR]], \
- $[or $[not $[TARGET_IF_CRYPTO]],$[HAVE_CRYPTO]], \
- $[or $[not $[TARGET_IF_ZLIB]],$[HAVE_ZLIB]], \
- $[or $[not $[TARGET_IF_SOXST]],$[HAVE_SOXST]], \
- $[or $[not $[TARGET_IF_GL]],$[HAVE_GL]], \
- $[or $[not $[TARGET_IF_DX]],$[HAVE_DX]], \
- $[or $[not $[TARGET_IF_GLX]],$[HAVE_GLX]], \
- $[or $[not $[TARGET_IF_GLUT]],$[HAVE_GLUT]], \
- $[or $[not $[TARGET_IF_WGL]],$[HAVE_WGL]], \
- $[or $[not $[TARGET_IF_RIB]],$[HAVE_RIB]], \
- $[or $[not $[TARGET_IF_PS2]],$[HAVE_PS2]], \
- $[or $[not $[TARGET_IF_SGIGL]],$[HAVE_SGIGL]], \
- $[or $[not $[TARGET_IF_JPEG]],$[HAVE_JPEG]], \
- $[or $[not $[TARGET_IF_TIFF]],$[HAVE_TIFF]], \
- $[or $[not $[TARGET_IF_FFTW]],$[HAVE_FFTW]], \
- $[or $[not $[TARGET_IF_VRPN]],$[HAVE_VRPN]], \
- $[or $[not $[TARGET_IF_GTKMM]],$[HAVE_GTKMM]], \
- $[or $[not $[TARGET_IF_MAYA]],$[HAVE_MAYA]], \
- $[or $[not $[TARGET_IF_IPC]],$[HAVE_IPC]], \
- $[or $[not $[TARGET_IF_NET]],$[HAVE_NET]], \
- $[or $[not $[TARGET_IF_AUDIO]],$[HAVE_AUDIO]], \
- 1 ]
- // This takes advantage of the above two variables to get the actual
- // list of local libraries we are to link with, eliminating those that
- // won't be built.
- #defer active_local_libs \
- $[all_libs $[if $[and $[build_directory],$[build_target]],$[TARGET]],$[LOCAL_LIBS]]
- #defer active_component_libs \
- $[all_libs $[if $[and $[build_directory],$[build_target]],$[TARGET]],$[COMPONENT_LIBS]]
- #defer active_libs $[active_local_libs] $[active_component_libs]
- // This variable, when evaluated within a target, will either be empty
- // string if the target is not to be built, or the target name if it
- // is.
- #defer active_target $[if $[build_target],$[TARGET]]
- // This subroutine will set up the sources variable to reflect the
- // complete set of sources for this target, and also set the
- // alt_cflags, alt_libs, etc. as appropriate according to how the
- // various USE_* flags are set for the current target.
- // This variable returns the complete set of sources for the current
- // target.
- #defer get_sources \
- $[SOURCES] \
- $[if $[HAVE_CRYPTO],$[IF_CRYPTO_SOURCES]] \
- $[if $[HAVE_JPEG],$[IF_JPEG_SOURCES]] \
- $[if $[HAVE_TIFF],$[IF_TIFF_SOURCES]] \
- $[if $[HAVE_FFTW],$[IF_FFTW_SOURCES]] \
- $[if $[HAVE_NURBSPP],$[IF_NURBSPP_SOURCES]] \
- $[if $[HAVE_ZLIB],$[IF_ZLIB_SOURCES]] \
- $[if $[HAVE_IPC],$[IF_IPC_SOURCES]] \
- $[if $[HAVE_NET],$[IF_NET_SOURCES]] \
- $[if $[HAVE_PYTHON],$[IF_PYTHON_SOURCES]]
- #defer all_sources \
- $[SOURCES] \
- $[IF_CRYPTO_SOURCES] \
- $[IF_JPEG_SOURCES] \
- $[IF_TIFF_SOURCES] \
- $[IF_FFTW_SOURCES] \
- $[IF_NURBSPP_SOURCES] \
- $[IF_ZLIB_SOURCES] \
- $[IF_IPC_SOURCES] \
- $[IF_NET_SOURCES] \
- $[IF_PYTHON_SOURCES]
- // This variable returns the set of sources that are to be
- // interrogated for the current target.
- #defer get_igatescan \
- $[if $[and $[run_interrogate],$[IGATESCAN]], \
- $[if $[eq $[IGATESCAN], all], \
- $[filter-out %.I %.T %.lxx %.yxx %.N,$[get_sources]], \
- $[IGATESCAN]]]
- // This variable returns the name of the interrogate database file
- // that will be generated for a particular target, or empty string if
- // the target is not to be interrogated.
- #defer get_igatedb \
- $[if $[and $[run_interrogate],$[IGATESCAN]], \
- lib$[TARGET].in]
- // This variable returns the name of the interrogate code file
- // that will be generated for a particular target, or empty string if
- // the target is not to be interrogated.
- #defer get_igateoutput \
- $[if $[and $[run_interrogate],$[IGATESCAN]], \
- lib$[TARGET]_igate.cxx]
- // This variable returns the name of the interrogate module, if the
- // current metalib target should include one, or empty string if it
- // should not.
- #defer get_igatemscan \
- $[if $[and $[run_interrogate],$[components $[IGATESCAN],$[active_component_libs]]], \
- $[TARGET]]
-
- // This function returns the appropriate cflags for the target, based
- // on the various external packages this particular target claims to
- // require.
- #defun get_cflags
- #define alt_cflags $[nspr_cflags] $[python_cflags]
-
- #if $[ne $[USE_CRYPTO] $[components $[USE_CRYPTO],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[crypto_cflags]
- #endif
- #if $[ne $[USE_ZLIB] $[components $[USE_ZLIB],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[zlib_cflags]
- #endif
- #if $[ne $[USE_GL] $[components $[USE_GL],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[gl_cflags]
- #endif
- #if $[ne $[USE_GLX] $[components $[USE_GLX],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[glx_cflags]
- #endif
- #if $[ne $[USE_GLUT] $[components $[USE_GLUT],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[glut_cflags]
- #endif
- #if $[ne $[USE_DX] $[components $[USE_DX],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[dx_cflags]
- #endif
- #if $[ne $[USE_SOXST] $[components $[USE_SOXST],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[soxst_cflags]
- #endif
- #if $[ne $[USE_IPC] $[components $[USE_IPC],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[ipc_cflags]
- #endif
- #if $[ne $[USE_NET] $[components $[USE_NET],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[net_cflags]
- #endif
- #if $[ne $[USE_JPEG] $[components $[USE_JPEG],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[jpeg_cflags]
- #endif
- #if $[ne $[USE_TIFF] $[components $[USE_TIFF],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[tiff_cflags]
- #endif
- #if $[ne $[USE_FFTW] $[components $[USE_FFTW],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[fftw_cflags]
- #endif
- #if $[ne $[USE_NURBSPP] $[components $[USE_NURBSPP],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[nurbspp_cflags]
- #endif
- #if $[ne $[USE_VRPN] $[components $[USE_VRPN],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[vrpn_cflags]
- #endif
- #if $[ne $[USE_AUDIO] $[components $[USE_AUDIO],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[audio_cflags]
- #endif
- #if $[ne $[USE_MIKMOD] $[components $[USE_MIKMOD],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[mikmod_cflags]
- #endif
- #if $[ne $[USE_GTKMM] $[components $[USE_GTKMM],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[gtkmm_cflags]
- #endif
- #if $[ne $[USE_MAYA] $[components $[USE_MAYA],$[active_component_libs]],]
- #set alt_cflags $[alt_cflags] $[maya_cflags]
- #endif
- $[alt_cflags]
- #end get_cflags
- // This function returns the appropriate include path for the target,
- // based on the various external packages this particular target
- // claims to require. This returns a space-separated set of directory
- // names only; the -I switch is not included here.
- #defun get_ipath
- #define alt_ipath $[nspr_ipath] $[python_ipath]
-
- #if $[ne $[USE_CRYPTO] $[components $[USE_CRYPTO],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[crypto_ipath]
- #endif
- #if $[ne $[USE_ZLIB] $[components $[USE_ZLIB],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[zlib_ipath]
- #endif
- #if $[ne $[USE_GL] $[components $[USE_GL],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[gl_ipath]
- #endif
- #if $[ne $[USE_GLX] $[components $[USE_GLX],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[glx_ipath]
- #endif
- #if $[ne $[USE_GLUT] $[components $[USE_GLUT],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[glut_ipath]
- #endif
- #if $[ne $[USE_DX] $[components $[USE_DX],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[dx_ipath]
- #endif
- #if $[ne $[USE_SOXST] $[components $[USE_SOXST],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[soxst_ipath]
- #endif
- #if $[ne $[USE_IPC] $[components $[USE_IPC],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[ipc_ipath]
- #endif
- #if $[ne $[USE_NET] $[components $[USE_NET],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[net_ipath]
- #endif
- #if $[ne $[USE_JPEG] $[components $[USE_JPEG],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[jpeg_ipath]
- #endif
- #if $[ne $[USE_TIFF] $[components $[USE_TIFF],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[tiff_ipath]
- #endif
- #if $[ne $[USE_FFTW] $[components $[USE_FFTW],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[fftw_ipath]
- #endif
- #if $[ne $[USE_NURBSPP] $[components $[USE_NURBSPP],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[nurbspp_ipath]
- #endif
- #if $[ne $[USE_VRPN] $[components $[USE_VRPN],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[vrpn_ipath]
- #endif
- #if $[ne $[USE_AUDIO] $[components $[USE_AUDIO],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[audio_ipath]
- #endif
- #if $[ne $[USE_MIKMOD] $[components $[USE_MIKMOD],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[mikmod_ipath]
- #endif
- #if $[ne $[USE_GTKMM] $[components $[USE_GTKMM],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[gtkmm_ipath]
- #endif
- #if $[ne $[USE_MAYA] $[components $[USE_MAYA],$[active_component_libs]],]
- #set alt_ipath $[alt_ipath] $[maya_ipath]
- #endif
- $[alt_ipath]
- #end get_ipath
- // This function returns the appropriate library search path for the
- // target, based on the various external packages this particular
- // target claims to require. This returns a space-separated set of
- // directory names only; the -L switch is not included here.
- #defun get_lpath
- #define alt_lpath $[nspr_lpath] $[python_lpath]
-
- #if $[ne $[USE_CRYPTO] $[components $[USE_CRYPTO],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[crypto_lpath]
- #endif
- #if $[ne $[USE_ZLIB] $[components $[USE_ZLIB],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[zlib_lpath]
- #endif
- #if $[ne $[USE_GL] $[components $[USE_GL],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[gl_lpath]
- #endif
- #if $[ne $[USE_GLX] $[components $[USE_GLX],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[glx_lpath]
- #endif
- #if $[ne $[USE_GLUT] $[components $[USE_GLUT],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[glut_lpath]
- #endif
- #if $[ne $[USE_DX] $[components $[USE_DX],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[dx_lpath]
- #endif
- #if $[ne $[USE_SOXST] $[components $[USE_SOXST],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[soxst_lpath]
- #endif
- #if $[ne $[USE_IPC] $[components $[USE_IPC],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[ipc_lpath]
- #endif
- #if $[ne $[USE_NET] $[components $[USE_NET],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[net_lpath]
- #endif
- #if $[ne $[USE_JPEG] $[components $[USE_JPEG],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[jpeg_lpath]
- #endif
- #if $[ne $[USE_TIFF] $[components $[USE_TIFF],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[tiff_lpath]
- #endif
- #if $[ne $[USE_FFTW] $[components $[USE_FFTW],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[fftw_lpath]
- #endif
- #if $[ne $[USE_NURBSPP] $[components $[USE_NURBSPP],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[nurbspp_lpath]
- #endif
- #if $[ne $[USE_VRPN] $[components $[USE_VRPN],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[vrpn_lpath]
- #endif
- #if $[ne $[USE_AUDIO] $[components $[USE_AUDIO],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[audio_lpath]
- #endif
- #if $[ne $[USE_MIKMOD] $[components $[USE_MIKMOD],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[mikmod_lpath]
- #endif
- #if $[ne $[USE_GTKMM] $[components $[USE_GTKMM],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[gtkmm_lpath]
- #endif
- #if $[ne $[USE_MAYA] $[components $[USE_MAYA],$[active_component_libs] $[transitive_link]],]
- #set alt_lpath $[alt_lpath] $[maya_lpath]
- #endif
- $[alt_lpath]
- #end get_lpath
- // This function returns the appropriate set of library names to link
- // with for the target, based on the various external packages this
- // particular target claims to require. This returns a
- // space-separated set of library names only; the -l switch is not
- // included here.
- #defun get_libs
- #define alt_libs $[nspr_libs] $[python_libs]
-
- #if $[ne $[USE_CRYPTO] $[components $[USE_CRYPTO],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[crypto_libs]
- #endif
- #if $[ne $[USE_ZLIB] $[components $[USE_ZLIB],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[zlib_libs]
- #endif
- #if $[ne $[USE_GL] $[components $[USE_GL],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[gl_libs]
- #endif
- #if $[ne $[USE_GLX] $[components $[USE_GLX],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[glx_libs]
- #endif
- #if $[ne $[USE_GLUT] $[components $[USE_GLUT],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[glut_libs]
- #endif
- #if $[ne $[USE_DX] $[components $[USE_DX],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[dx_libs]
- #endif
- #if $[ne $[USE_SOXST] $[components $[USE_SOXST],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[soxst_libs]
- #endif
- #if $[ne $[USE_IPC] $[components $[USE_IPC],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[ipc_libs]
- #endif
- #if $[ne $[USE_NET] $[components $[USE_NET],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[net_libs]
- #endif
- #if $[ne $[USE_JPEG] $[components $[USE_JPEG],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[jpeg_libs]
- #endif
- #if $[ne $[USE_TIFF] $[components $[USE_TIFF],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[tiff_libs]
- #endif
- #if $[ne $[USE_FFTW] $[components $[USE_FFTW],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[fftw_libs]
- #endif
- #if $[ne $[USE_NURBSPP] $[components $[USE_NURBSPP],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[nurbspp_libs]
- #endif
- #if $[ne $[USE_VRPN] $[components $[USE_VRPN],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[vrpn_libs]
- #endif
- #if $[ne $[USE_AUDIO] $[components $[USE_AUDIO],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[audio_libs]
- #endif
- #if $[ne $[USE_MIKMOD] $[components $[USE_MIKMOD],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[mikmod_libs]
- #endif
- #if $[ne $[USE_GTKMM] $[components $[USE_GTKMM],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[gtkmm_libs]
- #endif
- #if $[ne $[USE_MAYA] $[components $[USE_MAYA],$[active_component_libs] $[transitive_link]],]
- #set alt_libs $[alt_libs] $[maya_libs]
- #endif
- #if $[UNIX_PLATFORM]
- #set alt_libs $[alt_libs] $[UNIX_SYS_LIBS] $[components $[UNIX_SYS_LIBS],$[active_component_libs] $[transitive_link]]
- #endif
- $[alt_libs]
- #end get_libs
- // This function returns the appropriate value for ld for the target.
- #defun get_ld
- #if $[ne $[USE_MAYA] $[components $[USE_MAYA],$[COMPONENT_LD]],]
- $[maya_ld]
- #endif
- #end get_ld
- // This function determines the set of libraries our various targets
- // depend on. This is a complicated definition. It is the union of
- // all of our targets' dependencies, except:
- // If a target is part of a metalib, it depends (a) directly on all of
- // its normal library dependencies that are part of the same metalib,
- // and (b) indirectly on all of the metalibs that every other library
- // dependency is part of. If a target is not part of a metalib, it is
- // the same as case (b) above.
- #defun get_depend_libs
- #define depend_libs
- #forscopes lib_target noinst_lib_target
- #define metalib $[module $[TARGET],$[TARGET]]
- #if $[ne $[metalib],]
- // This library is included on a metalib.
- #foreach depend $[LOCAL_LIBS]
- #define depend_metalib $[module $[TARGET],$[depend]]
- #if $[eq $[depend_metalib],$[metalib]]
- // Here's a dependent library in the *same* metalib.
- #set depend_libs $[depend_libs] $[depend]
- #elif $[ne $[depend_metalib],]
- // This dependent library is in a *different* metalib.
- #set depend_libs $[depend_libs] $[depend_metalib]
- #else
- // This dependent library is not in any metalib.
- #set depend_libs $[depend_libs] $[depend]
- #endif
- #end depend
- #else
- // This library is *not* included on a metalib.
- #foreach depend $[LOCAL_LIBS]
- #define depend_metalib $[module $[TARGET],$[depend]]
- #if $[ne $[depend_metalib],]
- // This dependent library is on a metalib.
- #set depend_libs $[depend_libs] $[depend_metalib]
- #else
- // This dependent library is not in any metalib.
- #set depend_libs $[depend_libs] $[depend]
- #endif
- #end depend
- #endif
- #end lib_target noinst_lib_target
-
- // These will never be part of a metalib.
- #forscopes static_lib_target ss_lib_target bin_target noinst_bin_target metalib_target
- #foreach depend $[LOCAL_LIBS]
- #define depend_metalib $[module $[TARGET],$[depend]]
- #if $[ne $[depend_metalib],]
- // This dependent library is on a metalib.
- #set depend_libs $[depend_libs] $[depend_metalib]
- #else
- // This dependent library is not in any metalib.
- #set depend_libs $[depend_libs] $[depend]
- #endif
- #end depend
- #end static_lib_target ss_lib_target bin_target noinst_bin_target metalib_target
- // In case we're defining any metalibs, these depend directly on
- // their components as well.
- #set depend_libs $[depend_libs] $[COMPONENT_LIBS(metalib_target)]
- $[depend_libs]
- #end get_depend_libs
- // Define a few directories that will be useful.
- #define so_dir $[ODIR_SHARED]
- #define st_dir $[ODIR_STATIC]
- #define install_dir $[$[upcase $[PACKAGE]]_INSTALL]
- #if $[eq $[install_dir],]
- #error Variable $[upcase $[PACKAGE]]_INSTALL is not set! Cannot install!
- #endif
- #define other_trees
- #foreach tree $[NEEDS_TREES]
- #define tree_install $[$[upcase $[tree]]_INSTALL]
- #if $[eq $[tree_install],]
- Warning: Variable $[upcase $[tree]]_INSTALL is not set!
- #else
- #set other_trees $[other_trees] $[tree_install]
- #endif
- #end tree
- #define install_lib_dir $[install_dir]/lib
- #define install_bin_dir $[install_dir]/bin
- #define install_headers_dir $[install_dir]/include
- #define install_data_dir $[install_dir]/shared
- #define install_igatedb_dir $[install_dir]/etc
- #define install_config_dir $[install_dir]/etc
- #if $[ne $[DTOOL_INSTALL],]
- #define install_parser_inc_dir $[DTOOL_INSTALL]/include/parser-inc
- #else
- #define install_parser_inc_dir $[install_headers_dir]/parser-inc
- #endif
- // Set up the correct interrogate options.
- #defer interrogate_ipath $[target_ipath:%=-I%]
- #defer interrogate_spath $[install_parser_inc_dir:%=-S%]
- #defer interrogate_options \
- -DCPPPARSER -D__cplusplus $[SYSTEM_IGATE_FLAGS] \
- $[interrogate_spath] $[interrogate_ipath] \
- $[CDEFINES_OPT$[OPTIMIZE]:%=-D%] \
- $[filter -D%,$[C++FLAGS]] \
- $[INTERROGATE_OPTIONS] \
- $[if $[INTERROGATE_PYTHON_INTERFACE],-python] \
- $[if $[<= $[OPTIMIZE], 1],-spam] \
- $[if $[INTERROGATE_C_INTERFACE],-c]
- // Include the global definitions for this particular build_type, if
- // the file is there.
- #sinclude $[GLOBAL_TYPE_FILE]
|