Global.pp 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984
  1. //
  2. // Global.pp
  3. //
  4. // This file is read in before any of the individual Sources.pp files
  5. // are read. It defines a few global variables that are useful to all
  6. // different kinds of build_types.
  7. //
  8. // We start off by defining a number of map variables. These are
  9. // special variables that can be used to look up a particular named
  10. // scope according to a key (that is, according to the value of some
  11. // variable defined within the scope).
  12. // A named scope is defined using the #begin name .. #end name
  13. // sequence. In general, we use these sequences in the various
  14. // Sources.pp files to define the various targets to build. Each
  15. // named scope carries around its set of variable declarations. The
  16. // named scopes are associated with the dirname of the directory in
  17. // which the Sources.pp file was found.
  18. // The first map variable lets us look up a particular library target
  19. // by its target name. The syntax here indicates that we are
  20. // declaring a map variable called "all_libs" whose key is the
  21. // variable $[TARGET] as defined in each instance of a named scope
  22. // called "static_lib_target," "lib_target," and so on in every
  23. // Sources.pp file. (The */ refers to all the Sources.pp files. We
  24. // could also identify a particular file by its directory name, or
  25. // omit the slash to refer to our own Sources.pp file.)
  26. // After defining this map variable, we can look up other variables
  27. // that are defined for the corresponding target. For instances,
  28. // $[all_libs $[SOURCES],dconfig] will return the value of the SOURCES
  29. // variable as set for the dconfig library (that is, the expression
  30. // $[SOURCES] is evaluated within the named scope whose key is
  31. // "dconfig"--whose variable $[TARGET] was defined to be "dconfig").
  32. #map all_libs TARGET(*/static_lib_target */dynamic_lib_target */ss_lib_target */lib_target */noinst_lib_target */test_lib_target */metalib_target)
  33. // This map variable allows us to look up global variables that might
  34. // be defined in a particular Sources.pp, e.g. in the "toplevel" file.
  35. #map dir_type DIR_TYPE(*/)
  36. #map libs TARGET(*/lib_target */static_lib_target */dynamic_lib_target */ss_lib_target */noinst_lib_target */test_lib_target */metalib_target)
  37. // This lets us identify which metalib, if any, is including each
  38. // named library. That is, $[module $[TARGET],name] will return
  39. // the name of the metalib that includes library name.
  40. #map module COMPONENT_LIBS(*/metalib_target)
  41. // This lets up look up components of a particular metalib.
  42. #map components TARGET(*/lib_target */noinst_lib_target */test_lib_target)
  43. // And this lets us look up source directories by dirname.
  44. #map dirnames DIRNAME(*/)
  45. // This is used by Template.models.pp.
  46. #if $[HAVE_SOFTIMAGE]
  47. #define SOFT2EGG soft -D libsoftegg soft2egg
  48. #else
  49. // We used to use the old converter from pre-Panda days. Now this
  50. // is no longer supported.
  51. // #define SOFT2EGG soft2egg
  52. #define SOFT2EGG soft -D libsoftegg soft2egg
  53. #endif
  54. // Define some various compile flags, derived from the variables set
  55. // in Config.pp.
  56. #set INTERROGATE_PYTHON_INTERFACE $[and $[HAVE_PYTHON],$[INTERROGATE_PYTHON_INTERFACE]]
  57. #define run_interrogate $[HAVE_INTERROGATE]
  58. #define stl_ipath $[wildcard $[STL_IPATH]]
  59. #define stl_lpath $[wildcard $[STL_LPATH]]
  60. #define stl_cflags $[STL_CFLAGS]
  61. #define stl_libs $[STL_LIBS]
  62. #define eigen_ipath $[wildcard $[EIGEN_IPATH]]
  63. #define eigen_cflags $[EIGEN_CFLAGS]
  64. #if $[HAVE_PYTHON]
  65. #define python_ipath $[wildcard $[PYTHON_IPATH]]
  66. #define python_lpath $[wildcard $[PYTHON_LPATH]]
  67. #define python_fpath $[wildcard $[PYTHON_FPATH]]
  68. #define python_cflags $[PYTHON_CFLAGS]
  69. #define python_lflags $[PYTHON_LFLAGS]
  70. #define python_libs $[PYTHON_LIBS]
  71. #define python_framework $[PYTHON_FRAMEWORK]
  72. #endif
  73. #if $[USE_TAU]
  74. #define tau_ipath $[wildcard $[TAU_IPATH]]
  75. #endif
  76. #if $[HAVE_THREADS]
  77. #define threads_ipath $[wildcard $[THREADS_IPATH]]
  78. #define threads_lpath $[wildcard $[THREADS_LPATH]]
  79. #define threads_cflags $[THREADS_CFLAGS]
  80. #define threads_libs $[THREADS_LIBS]
  81. #define threads_framework $[THREADS_FRAMEWORK]
  82. #endif
  83. #if $[HAVE_OPENSSL]
  84. #define openssl_ipath $[wildcard $[OPENSSL_IPATH]]
  85. #define openssl_lpath $[wildcard $[OPENSSL_LPATH]]
  86. #define openssl_cflags $[OPENSSL_CFLAGS]
  87. #define openssl_libs $[OPENSSL_LIBS]
  88. #endif
  89. #if $[HAVE_OPENSSL_MT]
  90. #define openssl_mt_ipath $[wildcard $[OPENSSL_MT_IPATH]]
  91. #define openssl_mt_lpath $[wildcard $[OPENSSL_MT_LPATH]]
  92. #define openssl_mt_cflags $[OPENSSL_MT_CFLAGS]
  93. #define openssl_mt_libs $[OPENSSL_MT_LIBS]
  94. #endif
  95. #if $[HAVE_ZLIB]
  96. #define zlib_ipath $[wildcard $[ZLIB_IPATH]]
  97. #define zlib_lpath $[wildcard $[ZLIB_LPATH]]
  98. #define zlib_cflags $[ZLIB_CFLAGS]
  99. #define zlib_libs $[ZLIB_LIBS]
  100. #endif
  101. #if $[HAVE_ZLIB_MT]
  102. #define zlib_mt_ipath $[wildcard $[ZLIB_MT_IPATH]]
  103. #define zlib_mt_lpath $[wildcard $[ZLIB_MT_LPATH]]
  104. #define zlib_mt_cflags $[ZLIB_MT_CFLAGS]
  105. #define zlib_mt_libs $[ZLIB_MT_LIBS]
  106. #endif
  107. #if $[HAVE_GL]
  108. #define gl_ipath $[wildcard $[GL_IPATH]]
  109. #define gl_lpath $[wildcard $[GL_LPATH]]
  110. #define gl_cflags $[GL_CFLAGS]
  111. #define gl_libs $[GL_LIBS]
  112. #define gl_framework $[GL_FRAMEWORK]
  113. #endif
  114. #if $[HAVE_GLES]
  115. #define gles_ipath $[wildcard $[GLES_IPATH]]
  116. #define gles_lpath $[wildcard $[GLES_LPATH]]
  117. #define gles_cflags $[GLES_CFLAGS]
  118. #define gles_libs $[GLES_LIBS]
  119. #endif
  120. #if $[HAVE_GLES2]
  121. #define gles2_ipath $[wildcard $[GLES2_IPATH]]
  122. #define gles2_lpath $[wildcard $[GLES2_LPATH]]
  123. #define gles2_cflags $[GLES2_CFLAGS]
  124. #define gles2_libs $[GLES2_LIBS]
  125. #endif
  126. #if $[HAVE_SDL]
  127. #define sdl_ipath $[wildcard $[SDL_IPATH]]
  128. #define sdl_lpath $[wildcard $[SDL_LPATH]]
  129. #define sdl_cflags $[SDL_CFLAGS]
  130. #define sdl_libs $[SDL_LIBS]
  131. #define sdl_framework $[SDL_FRAMEWORK]
  132. #endif
  133. #if $[HAVE_X11]
  134. #define x11_ipath $[wildcard $[X11_IPATH]]
  135. #define x11_lpath $[wildcard $[X11_LPATH]]
  136. #define x11_cflags $[X11_CFLAGS]
  137. #define x11_libs $[X11_LIBS]
  138. #define x11_framework $[X11_FRAMEWORK]
  139. #endif
  140. #if $[HAVE_XF86DGA]
  141. #define xf86dga_ipath $[wildcard $[XF86DGA_IPATH]]
  142. #define xf86dga_lpath $[wildcard $[XF86DGA_LPATH]]
  143. #define xf86dga_cflags $[XF86DGA_CFLAGS]
  144. #define xf86dga_libs $[XF86DGA_LIBS]
  145. #endif
  146. #if $[HAVE_XRANDR]
  147. #define xrandr_ipath $[wildcard $[XRANDR_IPATH]]
  148. #define xrandr_lpath $[wildcard $[XRANDR_LPATH]]
  149. #define xrandr_cflags $[XRANDR_CFLAGS]
  150. #define xrandr_libs $[XRANDR_LIBS]
  151. #endif
  152. #if $[HAVE_XCURSOR]
  153. #define xcursor_ipath $[wildcard $[XCURSOR_IPATH]]
  154. #define xcursor_lpath $[wildcard $[XCURSOR_LPATH]]
  155. #define xcursor_cflags $[XCURSOR_CFLAGS]
  156. #define xcursor_libs $[XCURSOR_LIBS]
  157. #endif
  158. #if $[HAVE_MESA]
  159. #define mesa_ipath $[wildcard $[MESA_IPATH]]
  160. #define mesa_lpath $[wildcard $[MESA_LPATH]]
  161. #define mesa_cflags $[MESA_CFLAGS]
  162. #define mesa_libs $[MESA_LIBS]
  163. #endif
  164. #if $[HAVE_GLX]
  165. #define glx_ipath $[wildcard $[GLX_IPATH]]
  166. #define glx_lpath $[wildcard $[GLX_LPATH]]
  167. #define glx_cflags $[GLX_CFLAGS]
  168. #define glx_libs $[GLX_LIBS]
  169. #endif
  170. #if $[HAVE_EGL]
  171. #define egl_ipath $[wildcard $[EGL_IPATH]]
  172. #define egl_lpath $[wildcard $[EGL_LPATH]]
  173. #define egl_cflags $[EGL_CFLAGS]
  174. #define egl_libs $[EGL_LIBS]
  175. #endif
  176. #if $[HAVE_DX8]
  177. #define dx8_ipath $[wildcard $[DX8_IPATH]]
  178. #define dx8_lpath $[wildcard $[DX8_LPATH]]
  179. #define dx8_cflags $[DX8_CFLAGS]
  180. #define dx8_libs $[DX8_LIBS]
  181. #endif
  182. #if $[HAVE_DX9]
  183. #define dx9_ipath $[wildcard $[DX9_IPATH]]
  184. #define dx9_lpath $[wildcard $[DX9_LPATH]]
  185. #define dx9_cflags $[DX9_CFLAGS]
  186. #define dx9_libs $[DX9_LIBS]
  187. #endif
  188. #if $[HAVE_OPENCV]
  189. #define opencv_ipath $[wildcard $[OPENCV_IPATH]]
  190. #define opencv_lpath $[wildcard $[OPENCV_LPATH]]
  191. #define opencv_cflags $[OPENCV_CFLAGS]
  192. #define opencv_libs $[OPENCV_LIBS]
  193. #endif
  194. #if $[HAVE_FFMPEG]
  195. #define ffmpeg_ipath $[wildcard $[FFMPEG_IPATH]]
  196. #define ffmpeg_lpath $[wildcard $[FFMPEG_LPATH]]
  197. #define ffmpeg_cflags $[FFMPEG_CFLAGS]
  198. #define ffmpeg_libs $[FFMPEG_LIBS]
  199. #endif
  200. #if $[HAVE_ODE]
  201. #define ode_ipath $[wildcard $[ODE_IPATH]]
  202. #define ode_lpath $[wildcard $[ODE_LPATH]]
  203. #define ode_cflags $[ODE_CFLAGS]
  204. #define ode_libs $[ODE_LIBS]
  205. #endif
  206. #if $[HAVE_AWESOMIUM]
  207. #define awesomium_ipath $[wildcard $[AWESOMIUM_IPATH]]
  208. #define awesomium_lpath $[wildcard $[AWESOMIUM_LPATH]]
  209. #define awesomium_libs $[AWESOMIUM_LIBS]
  210. #define awesomium_framework $[AWESOMIUM_FRAMEWORK]
  211. #endif
  212. #if $[HAVE_NPAPI]
  213. #define npapi_ipath $[wildcard $[NPAPI_IPATH]]
  214. #define npapi_lpath $[wildcard $[NPAPI_LPATH]]
  215. #define npapi_cflags $[NPAPI_CFLAGS]
  216. #define npapi_libs $[NPAPI_LIBS]
  217. #define npapi_framework $[NPAPI_FRAMEWORK]
  218. #endif
  219. #if $[HAVE_JPEG]
  220. #define jpeg_ipath $[wildcard $[JPEG_IPATH]]
  221. #define jpeg_lpath $[wildcard $[JPEG_LPATH]]
  222. #define jpeg_cflags $[JPEG_CFLAGS]
  223. #define jpeg_libs $[JPEG_LIBS]
  224. #endif
  225. #if $[HAVE_JPEG_MT]
  226. #define jpeg_mt_ipath $[wildcard $[JPEG_MT_IPATH]]
  227. #define jpeg_mt_lpath $[wildcard $[JPEG_MT_LPATH]]
  228. #define jpeg_mt_cflags $[JPEG_MT_CFLAGS]
  229. #define jpeg_mt_libs $[JPEG_MT_LIBS]
  230. #endif
  231. #if $[HAVE_PNG]
  232. #define png_ipath $[wildcard $[PNG_IPATH]]
  233. #define png_lpath $[wildcard $[PNG_LPATH]]
  234. #define png_cflags $[PNG_CFLAGS]
  235. #define png_libs $[PNG_LIBS]
  236. #endif
  237. #if $[HAVE_PNG_MT]
  238. #define png_mt_ipath $[wildcard $[PNG_MT_IPATH]]
  239. #define png_mt_lpath $[wildcard $[PNG_MT_LPATH]]
  240. #define png_mt_cflags $[PNG_MT_CFLAGS]
  241. #define png_mt_libs $[PNG_MT_LIBS]
  242. #endif
  243. #if $[HAVE_TIFF]
  244. #define tiff_ipath $[wildcard $[TIFF_IPATH]]
  245. #define tiff_lpath $[wildcard $[TIFF_LPATH]]
  246. #define tiff_cflags $[TIFF_CFLAGS]
  247. #define tiff_libs $[TIFF_LIBS]
  248. #endif
  249. #if $[HAVE_TAR]
  250. #define tar_ipath $[wildcard $[TAR_IPATH]]
  251. #define tar_lpath $[wildcard $[TAR_LPATH]]
  252. #define tar_cflags $[TAR_CFLAGS]
  253. #define tar_libs $[TAR_LIBS]
  254. #endif
  255. #if $[HAVE_FFTW]
  256. #define fftw_ipath $[wildcard $[FFTW_IPATH]]
  257. #define fftw_lpath $[wildcard $[FFTW_LPATH]]
  258. #define fftw_cflags $[FFTW_CFLAGS]
  259. #define fftw_libs $[FFTW_LIBS]
  260. #endif
  261. #if $[HAVE_SQUISH]
  262. #define squish_ipath $[wildcard $[SQUISH_IPATH]]
  263. #define squish_lpath $[wildcard $[SQUISH_LPATH]]
  264. #define squish_cflags $[SQUISH_CFLAGS]
  265. #define squish_libs $[SQUISH_LIBS]
  266. #endif
  267. #if $[HAVE_BDB]
  268. #define bdb_ipath $[wildcard $[BDB_IPATH]]
  269. #define bdb_lpath $[wildcard $[BDB_LPATH]]
  270. #define bdb_cflags $[BDB_CFLAGS]
  271. #define bdb_libs $[BDB_LIBS]
  272. #endif
  273. #if $[HAVE_CG]
  274. #define cg_ipath $[wildcard $[CG_IPATH]]
  275. #define cg_lpath $[wildcard $[CG_LPATH]]
  276. #define cg_cflags $[CG_CFLAGS]
  277. #define cg_libs $[CG_LIBS]
  278. #define cg_framework $[CG_FRAMEWORK]
  279. #endif
  280. #if $[HAVE_CGGL]
  281. #define cggl_ipath $[wildcard $[CGGL_IPATH]]
  282. #define cggl_lpath $[wildcard $[CGGL_LPATH]]
  283. #define cggl_cflags $[CGGL_CFLAGS]
  284. #define cggl_libs $[CGGL_LIBS]
  285. #define cggl_framework $[CGGL_FRAMEWORK]
  286. #endif
  287. #if $[HAVE_CGDX8]
  288. #define cgdx8_ipath $[wildcard $[CGDX8_IPATH]]
  289. #define cgdx8_lpath $[wildcard $[CGDX8_LPATH]]
  290. #define cgdx8_cflags $[CGDX8_CFLAGS]
  291. #define cgdx8_libs $[CGDX8_LIBS]
  292. #endif
  293. #if $[HAVE_CGDX9]
  294. #define cgdx9_ipath $[wildcard $[CGDX9_IPATH]]
  295. #define cgdx9_lpath $[wildcard $[CGDX9_LPATH]]
  296. #define cgdx9_cflags $[CGDX9_CFLAGS]
  297. #define cgdx9_libs $[CGDX9_LIBS]
  298. #endif
  299. #if $[HAVE_CGDX10]
  300. #define cgdx10_ipath $[wildcard $[CGDX10_IPATH]]
  301. #define cgdx10_lpath $[wildcard $[CGDX10_LPATH]]
  302. #define cgdx10_cflags $[CGDX10_CFLAGS]
  303. #define cgdx10_libs $[CGDX10_LIBS]
  304. #endif
  305. #if $[HAVE_VRPN]
  306. #define vrpn_ipath $[wildcard $[VRPN_IPATH]]
  307. #define vrpn_lpath $[wildcard $[VRPN_LPATH]]
  308. #define vrpn_cflags $[VRPN_CFLAGS]
  309. #define vrpn_libs $[VRPN_LIBS]
  310. #endif
  311. #if $[HAVE_HELIX]
  312. #define helix_ipath $[wildcard $[HELIX_IPATH]]
  313. #define helix_lpath $[wildcard $[HELIX_LPATH]]
  314. #define helix_cflags $[HELIX_CFLAGS]
  315. #define helix_libs $[HELIX_LIBS]
  316. #endif
  317. #if $[HAVE_MIKMOD]
  318. #define mikmod_ipath $[wildcard $[MIKMOD_IPATH]]
  319. #define mikmod_lpath $[wildcard $[MIKMOD_LPATH]]
  320. #define mikmod_cflags $[MIKMOD_CFLAGS]
  321. #define mikmod_libs $[MIKMOD_LIBS]
  322. #endif
  323. #if $[HAVE_GTK]
  324. #define gtk_ipath $[wildcard $[GTK_IPATH]]
  325. #define gtk_lpath $[wildcard $[GTK_LPATH]]
  326. #define gtk_cflags $[GTK_CFLAGS]
  327. #define gtk_libs $[GTK_LIBS]
  328. #endif
  329. #if $[HAVE_FREETYPE]
  330. #define freetype_ipath $[wildcard $[FREETYPE_IPATH]]
  331. #define freetype_lpath $[wildcard $[FREETYPE_LPATH]]
  332. #define freetype_cflags $[FREETYPE_CFLAGS]
  333. #define freetype_libs $[FREETYPE_LIBS]
  334. #define freetype_framework $[FREETYPE_FRAMEWORK]
  335. #endif
  336. #if $[HAVE_WX]
  337. #define wx_ipath $[wildcard $[WX_IPATH]]
  338. #define wx_lpath $[wildcard $[WX_LPATH]]
  339. #define wx_cflags $[WX_CFLAGS]
  340. #define wx_lflags $[WX_LFLAGS]
  341. #define wx_libs $[WX_LIBS]
  342. #define wx_framework $[WX_FRAMEWORK]
  343. #endif
  344. #if $[HAVE_FLTK]
  345. #define fltk_ipath $[wildcard $[FLTK_IPATH]]
  346. #define fltk_lpath $[wildcard $[FLTK_LPATH]]
  347. #define fltk_cflags $[FLTK_CFLAGS]
  348. #define fltk_lflags $[FLTK_LFLAGS]
  349. #define fltk_libs $[FLTK_LIBS]
  350. #define fltk_framework $[FLTK_FRAMEWORK]
  351. #endif
  352. #if $[and $[HAVE_MAYA],$[MAYA_LOCATION]]
  353. #define maya_ipath $[MAYA_LOCATION]/include
  354. #define maya_lpath $[MAYA_LOCATION]/lib
  355. #define maya_ld $[wildcard $[MAYA_LOCATION]/bin/mayald]
  356. #define maya_libs $[MAYA_LIBS]
  357. #endif
  358. #if $[and $[HAVE_SOFTIMAGE],$[SOFTIMAGE_LOCATION]]
  359. #define softimage_ipath $[SOFTIMAGE_LOCATION]/h
  360. #define softimage_lpath $[SOFTIMAGE_LOCATION]/dso
  361. #define softimage_libs $[SOFTIMAGE_LIBS]
  362. #endif
  363. #if $[HAVE_NET]
  364. #define net_ipath $[wildcard $[NET_IPATH]]
  365. #define net_lpath $[wildcard $[NET_LPATH]]
  366. #define net_libs $[NET_LIBS]
  367. #endif
  368. #if $[WANT_NATIVE_NET]
  369. #define native_net_ipath $[wildcard $[NATIVE_NET_IPATH]]
  370. #define native_net_lpath $[wildcard $[NATIVE_NET_LPATH]]
  371. #define native_net_libs $[NATIVE_NET_LIBS]
  372. #endif
  373. #if $[HAVE_RAD_MSS]
  374. #define rad_mss_ipath $[wildcard $[RAD_MSS_IPATH]]
  375. #define rad_mss_lpath $[wildcard $[RAD_MSS_LPATH]]
  376. #define rad_mss_libs $[RAD_MSS_LIBS]
  377. #endif
  378. #if $[HAVE_FMODEX]
  379. #define fmodex_ipath $[wildcard $[FMODEX_IPATH]]
  380. #define fmodex_lpath $[wildcard $[FMODEX_LPATH]]
  381. #define fmodex_cflags $[FMODEX_CFLAGS]
  382. #define fmodex_libs $[FMODEX_LIBS]
  383. #endif
  384. #if $[HAVE_OPENAL]
  385. #define openal_ipath $[wildcard $[OPENAL_IPATH]]
  386. #define openal_lpath $[wildcard $[OPENAL_LPATH]]
  387. #define openal_libs $[OPENAL_LIBS]
  388. #define openal_framework $[OPENAL_FRAMEWORK]
  389. #endif
  390. #if $[HAVE_PHYSX]
  391. #define physx_ipath $[wildcard $[PHYSX_IPATH]]
  392. #define physx_lpath $[wildcard $[PHYSX_LPATH]]
  393. #define physx_libs $[PHYSX_LIBS]
  394. #endif
  395. #if $[HAVE_SPEEDTREE]
  396. #define speedtree_ipath $[wildcard $[SPEEDTREE_IPATH]]
  397. #define speedtree_lpath $[wildcard $[SPEEDTREE_LPATH]]
  398. #define speedtree_libs $[SPEEDTREE_LIBS]
  399. #endif
  400. #if $[HAVE_FCOLLADA]
  401. #define fcollada_ipath $[wildcard $[FCOLLADA_IPATH]]
  402. #define fcollada_lpath $[wildcard $[FCOLLADA_LPATH]]
  403. #define fcollada_libs $[FCOLLADA_LIBS]
  404. #endif
  405. #if $[HAVE_COLLADA14DOM]
  406. #define collada14dom_ipath $[wildcard $[COLLADA14DOM_IPATH]]
  407. #define collada14dom_lpath $[wildcard $[COLLADA14DOM_LPATH]]
  408. #define collada14dom_libs $[COLLADA14DOM_LIBS]
  409. #endif
  410. #if $[HAVE_COLLADA15DOM]
  411. #define collada15dom_ipath $[wildcard $[COLLADA15DOM_IPATH]]
  412. #define collada15dom_lpath $[wildcard $[COLLADA15DOM_LPATH]]
  413. #define collada15dom_libs $[COLLADA15DOM_LIBS]
  414. #endif
  415. #if $[HAVE_ASSIMP]
  416. #define assimp_ipath $[wildcard $[ASSIMP_IPATH]]
  417. #define assimp_lpath $[wildcard $[ASSIMP_LPATH]]
  418. #define assimp_libs $[ASSIMP_LIBS]
  419. #endif
  420. #if $[HAVE_ARTOOLKIT]
  421. #define artoolkit_ipath $[wildcard $[ARTOOLKIT_IPATH]]
  422. #define artoolkit_lpath $[wildcard $[ARTOOLKIT_LPATH]]
  423. #define artoolkit_libs $[ARTOOLKIT_LIBS]
  424. #endif
  425. #if $[HAVE_ROCKET]
  426. #define rocket_ipath $[wildcard $[ROCKET_IPATH]]
  427. #define rocket_lpath $[wildcard $[ROCKET_LPATH]]
  428. #define rocket_libs $[ROCKET_LIBS]
  429. #endif
  430. // We define these two variables true here in the global scope; a
  431. // particular Sources.pp file can redefine these to be false to
  432. // prevent a particular directory or target from being built in
  433. // certain circumstances.
  434. #define BUILD_DIRECTORY 1
  435. #define BUILD_TARGET 1
  436. // This is the default extension for a Maya file. It might be
  437. // overridden within a maya_char_egg rule to convert a .ma file
  438. // instead.
  439. #define MAYA_EXTENSION .mb
  440. // This variable, when evaluated in the scope of a particular directory,
  441. // will indicate true (i.e. nonempty) when the directory is truly built,
  442. // or false (empty) when the directory is not to be built.
  443. #defer build_directory $[BUILD_DIRECTORY]
  444. // It maps to a direct evaluation of the user-set variable,
  445. // BUILD_DIRECTORY, for historical reasons. This also allows us to
  446. // reserve the right to extend this variable to test other conditions
  447. // as well, should the need arise.
  448. // This variable, when evaluated in the scope of a particular target,
  449. // will indicated true when the target should be built, or false when
  450. // the target is not to be built.
  451. #defer build_target $[BUILD_TARGET]
  452. // If we have USE_TAU but not TAU_MAKEFILE, we invoke the tau
  453. // instrumentor and compiler directly.
  454. #define direct_tau $[and $[USE_TAU],$[not $[TAU_MAKEFILE]]]
  455. #if $[and $[USE_TAU],$[TAU_MAKEFILE]]
  456. // Use the makefile-based rules to run the tau instrumentor.
  457. #defer compile_c $(TAU_COMPILER) $[TAU_OPTS] $[if $[SELECT_TAU],-optTauSelectFile=$[SELECT_TAU]] $[COMPILE_C] $[TAU_CFLAGS]
  458. #defer compile_c++ $(TAU_COMPILER) $[TAU_OPTS] $[if $[SELECT_TAU],-optTauSelectFile=$[SELECT_TAU]] $[COMPILE_C++] $[TAU_CFLAGS] $[TAU_C++FLAGS]
  459. #defer link_bin_c $(TAU_COMPILER) $[TAU_OPTS] $[if $[SELECT_TAU],-optTauSelectFile=$[SELECT_TAU]] $[LINK_BIN_C] $[TAU_CFLAGS]
  460. #defer link_bin_c++ $(TAU_COMPILER) $[TAU_OPTS] $[if $[SELECT_TAU],-optTauSelectFile=$[SELECT_TAU]] $[LINK_BIN_C++] $[TAU_CFLAGS] $[TAU_C++FLAGS]
  461. #defer shared_lib_c $(TAU_COMPILER) $[TAU_OPTS] $[if $[SELECT_TAU],-optTauSelectFile=$[SELECT_TAU]] $[SHARED_LIB_C] $[TAU_CFLAGS]
  462. #defer shared_lib_c++ $(TAU_COMPILER) $[TAU_OPTS] $[if $[SELECT_TAU],-optTauSelectFile=$[SELECT_TAU]] $[SHARED_LIB_C++] $[TAU_CFLAGS] $[TAU_C++FLAGS]
  463. #else
  464. #defer compile_c $[COMPILE_C]
  465. #defer compile_c++ $[COMPILE_C++]
  466. #defer link_bin_c $[LINK_BIN_C]
  467. #defer link_bin_c++ $[LINK_BIN_C++]
  468. #defer shared_lib_c $[SHARED_LIB_C]
  469. #defer shared_lib_c++ $[SHARED_LIB_C++]
  470. #endif // USE_TAU
  471. #defer static_lib_c $[STATIC_LIB_C]
  472. #defer static_lib_c++ $[STATIC_LIB_C++]
  473. #defer bundle_lib_c $[BUNDLE_LIB_C++]
  474. #defer bundle_lib_c++ $[BUNDLE_LIB_C++]
  475. // "lib" is the default prefix applied to every generated library.
  476. // This comes from Unix convention. This can be redefined on a
  477. // per-target basis.
  478. #define LIB_PREFIX lib
  479. #defer lib_prefix $[LIB_PREFIX]
  480. // OSX has a "bundle" concept. This is kind of like a dylib, but not
  481. // quite. Sometimes you might want to link a library *as* a bundle
  482. // instead of as a dylib; sometimes you might want to link a library
  483. // into a dylib *and* a bundle.
  484. #defer bundle_ext $[BUNDLE_EXT]
  485. #defer link_as_bundle $[and $[OSX_PLATFORM],$[LINK_AS_BUNDLE]]
  486. // On OSX 10.4, we need to have both a .dylib and an .so file.
  487. #defer link_extra_bundle $[and $[OSX_PLATFORM],$[or $[LINK_EXTRA_BUNDLE],$[BUNDLE_EXT]],$[not $[LINK_AS_BUNDLE]],$[not $[LINK_ALL_STATIC]],$[not $[lib_is_static]]]
  488. // The default library extension various based on the OS.
  489. #defer dynamic_lib_ext $[DYNAMIC_LIB_EXT]
  490. #defer static_lib_ext $[STATIC_LIB_EXT]
  491. #defer lib_ext $[if $[link_as_bundle],$[bundle_ext],$[if $[lib_is_static],$[static_lib_ext],$[dynamic_lib_ext]]]
  492. #defer link_lib_c $[if $[link_as_bundle],$[bundle_lib_c],$[if $[lib_is_static],$[static_lib_c],$[shared_lib_c]]]
  493. #defer link_lib_c++ $[if $[link_as_bundle],$[bundle_lib_c++],$[if $[lib_is_static],$[static_lib_c++],$[shared_lib_c++]]]
  494. // If BUILD_COMPONENTS is not true, we don't actually build all the
  495. // libraries. In particular, we don't build any libraries that are
  496. // listed on a metalib. This variable can be evaluated within a
  497. // library's scope to determine whether it should be built according
  498. // to this rule.
  499. #defer build_lib $[or $[BUILD_COMPONENTS],$[eq $[module $[TARGET],$[TARGET]],]]
  500. // This variable is true if the lib has an associated pdb (Windows
  501. // only). It appears that pdb's are generated only for dll's, not for
  502. // static libs.
  503. #defer has_pdb $[and $[build_pdbs],$[not $[lib_is_static]]]
  504. // This takes advantage of the above two variables to get the actual
  505. // list of local libraries we are to link with, eliminating those that
  506. // won't be built.
  507. #defer active_local_libs \
  508. $[all_libs $[if $[and $[build_directory],$[build_target]],$[TARGET]],$[LOCAL_LIBS]]
  509. #defer active_component_libs \
  510. $[all_libs $[if $[and $[build_directory],$[build_target]],$[TARGET]],$[COMPONENT_LIBS]]
  511. #defer active_libs $[active_local_libs] $[active_component_libs]
  512. // We define $[complete_local_libs] as the full set of libraries (from
  513. // within this tree) that we must link a particular target with. It
  514. // is the transitive closure of our dependent libs: the libraries we
  515. // depend on, plus the libraries *those* libraries depend on, and so on.
  516. #defer nonunique_complete_local_libs $[closure all_libs,$[active_libs]]
  517. #defer complete_local_libs $[unique $[nonunique_complete_local_libs]]
  518. // And $[complete_ipath] is the list of directories (from within this
  519. // tree) we should add to our -I list. It's basically just one for
  520. // each directory named in the $[complete_local_libs], above, plus
  521. // whatever else the user might have explicitly named in
  522. // $[LOCAL_INCS]. LOCAL_INCS MUST be a ppremake src dir! (RELDIR only
  523. // checks those) To add an arbitrary extra include dir, define
  524. // EXTRA_IPATH in the Sources.pp
  525. #defer complete_ipath $[all_libs $[RELDIR],$[complete_local_libs]] $[RELDIR($[LOCAL_INCS:%=%/])] $[EXTRA_IPATH]
  526. // This variable, when evaluated within a target, will either be empty
  527. // string if the target is not to be built, or the target name if it
  528. // is.
  529. #defer active_target $[if $[build_target],$[TARGET]]
  530. #defer active_target_libprefext $[if $[build_target],$[lib_prefix]$[TARGET]$[lib_ext]]
  531. #defer active_target_bundleext $[if $[and $[build_target],$[link_extra_bundle]],$[lib_prefix]$[TARGET]$[bundle_ext]]
  532. #defer get_combined_sources $[COMBINED_SOURCES]
  533. // This subroutine will set up the sources variable to reflect the
  534. // complete set of sources for this target, and also set the
  535. // alt_cflags, alt_libs, etc. as appropriate according to how the
  536. // various USE_* flags are set for the current target.
  537. // This variable returns the complete set of sources for the current
  538. // target.
  539. #defer get_sources \
  540. $[SOURCES] \
  541. $[if $[or $[NO_COMBINED_SOURCES],$[USE_TAU]], $[INCLUDED_SOURCES], $[get_combined_sources]]
  542. #defer included_sources $[INCLUDED_SOURCES]
  543. // This variable returns the set of sources that are to be
  544. // interrogated for the current target.
  545. #defer get_igatescan \
  546. $[if $[and $[run_interrogate],$[IGATESCAN]], \
  547. $[if $[eq $[IGATESCAN], all], \
  548. $[filter-out %.I %.T %.lxx %.yxx %.N %_src.cxx,$[get_sources]] $[filter %_ext.I,$[get_sources]], \
  549. $[IGATESCAN]]]
  550. // This variable returns the name of the interrogate database file
  551. // that will be generated for a particular target, or empty string if
  552. // the target is not to be interrogated.
  553. #defer get_igatedb \
  554. $[if $[and $[run_interrogate],$[IGATESCAN]], \
  555. $[ODIR]/lib$[TARGET]$[dllext].in]
  556. // This variable returns the name of the interrogate code file
  557. // that will be generated for a particular target, or empty string if
  558. // the target is not to be interrogated.
  559. #defer get_igateoutput \
  560. $[if $[and $[run_interrogate],$[IGATESCAN]], \
  561. $[ODIR]/lib$[TARGET]_igate.cxx]
  562. // This variable is the set of .in files generated by all of our
  563. // component libraries. If it is nonempty, then we do need to
  564. // generate a module, and $[get_igatemout] is the name of the .cxx file
  565. // that interrogate will produce to make this module.
  566. #defer get_igatemscan $[components $[get_igatedb:%=$[RELDIR]/%],$[active_component_libs]] $[if $[not $[module $[TARGET],$[TARGET]]],$[get_igatedb]]
  567. #defer get_igatemout $[if $[get_igatemscan],$[ODIR]/lib$[TARGET]_module.cxx]
  568. // This variable returns the set of external packages used by this
  569. // target, and by all the components shared by this target.
  570. #defer use_packages $[unique $[USE_PACKAGES] $[all_libs $[USE_PACKAGES],$[active_component_libs] $[complete_local_libs]]]
  571. // This function returns the appropriate cflags for the target, based
  572. // on the various external packages this particular target claims to
  573. // require.
  574. #defun get_cflags
  575. // hack to add stl,python. should be removed
  576. #define alt_cflags $[if $[IGNORE_LIB_DEFAULTS_HACK],,$[stl_cflags] $[python_cflags] $[if $[HAVE_EIGEN],$[eigen_cflags]]]
  577. #foreach package $[use_packages]
  578. #set alt_cflags $[alt_cflags] $[$[package]_cflags]
  579. #end package
  580. $[alt_cflags]
  581. #end get_cflags
  582. // This function returns the appropriate lflags for the target, based
  583. // on the various external packages this particular target claims to
  584. // require.
  585. #defun get_lflags
  586. // hack to add stl,python. should be removed
  587. #define alt_lflags $[if $[IGNORE_LIB_DEFAULTS_HACK],,$[stl_lflags] $[python_lflags]]
  588. #foreach package $[use_packages]
  589. #set alt_lflags $[alt_lflags] $[$[package]_lflags]
  590. #end package
  591. $[alt_lflags]
  592. #end get_lflags
  593. // This function returns the appropriate include path for the target,
  594. // based on the various external packages this particular target
  595. // claims to require. This returns a space-separated set of directory
  596. // names only; the -I switch is not included here.
  597. #defun get_ipath
  598. // hack to add stl,python. should be removed
  599. #define alt_ipath $[if $[IGNORE_LIB_DEFAULTS_HACK],,$[stl_ipath] $[python_ipath] $[tau_ipath] $[if $[HAVE_EIGEN],$[eigen_ipath]]]
  600. #foreach package $[use_packages]
  601. #set alt_ipath $[alt_ipath] $[$[package]_ipath]
  602. #end package
  603. $[alt_ipath]
  604. #end get_ipath
  605. // This function returns the appropriate library search path for the
  606. // target, based on the various external packages this particular
  607. // target claims to require. This returns a space-separated set of
  608. // directory names only; the -L switch is not included here.
  609. #defun get_lpath
  610. #define alt_lpath $[if $[IGNORE_LIB_DEFAULTS_HACK],,$[stl_lpath] $[python_lpath]]
  611. #if $[WINDOWS_PLATFORM]
  612. #set alt_lpath $[WIN32_PLATFORMSDK_LIBPATH] $[alt_lpath]
  613. #endif
  614. #foreach package $[use_packages]
  615. #set alt_lpath $[alt_lpath] $[$[package]_lpath]
  616. #end package
  617. $[alt_lpath]
  618. #end get_lpath
  619. // This function returns the appropriate framework search path for the
  620. // target, based on the various external frameworks this particular
  621. // target claims to require. This returns a space-separated set of
  622. // directory names only; the -F switch is not included here.
  623. #defun get_fpath
  624. #define alt_fpath $[if $[IGNORE_LIB_DEFAULTS_HACK],,$[stl_fpath] $[python_fpath]]
  625. #foreach package $[use_packages]
  626. #set alt_fpath $[alt_fpath] $[$[package]_fpath]
  627. #end package
  628. $[alt_fpath]
  629. #end get_fpath
  630. // This function returns the appropriate framework for the
  631. // target, based on the various external frameworks this particular
  632. // target claims to require. This returns a space-separated set of
  633. // framework names only; the -framework switch is not included here.
  634. #defun get_frameworks
  635. #define alt_frameworks $[if $[IGNORE_LIB_DEFAULTS_HACK],,$[stl_framework] $[python_framework]]
  636. #if $[OSX_PLATFORM]
  637. #set alt_frameworks $[alt_frameworks] $[OSX_SYS_FRAMEWORKS]
  638. #endif
  639. #foreach package $[use_packages]
  640. #set alt_frameworks $[alt_frameworks] $[$[package]_framework]
  641. #end package
  642. $[alt_frameworks]
  643. #end get_frameworks
  644. // This function returns the appropriate set of library names to link
  645. // with for the target, based on the various external packages this
  646. // particular target claims to require. This returns a
  647. // space-separated set of library names only; the -l switch is not
  648. // included here.
  649. #defun get_libs
  650. #define alt_libs $[if $[IGNORE_LIB_DEFAULTS_HACK],,$[stl_libs] $[python_libs]]
  651. #define alt_libs $[alt_libs] $[EXTRA_LIBS]
  652. #if $[WINDOWS_PLATFORM]
  653. #set alt_libs $[alt_libs] $[WIN_SYS_LIBS] $[components $[WIN_SYS_LIBS],$[active_libs] $[transitive_link]]
  654. #elif $[OSX_PLATFORM]
  655. #set alt_libs $[alt_libs] $[OSX_SYS_LIBS] $[components $[OSX_SYS_LIBS],$[active_libs] $[transitive_link]]
  656. #else
  657. #set alt_libs $[alt_libs] $[UNIX_SYS_LIBS] $[components $[UNIX_SYS_LIBS],$[active_libs] $[transitive_link]]
  658. #endif
  659. #foreach package $[use_packages]
  660. #set alt_libs $[alt_libs] $[$[package]_libs]
  661. #end package
  662. $[alt_libs]
  663. #end get_libs
  664. // This function returns the appropriate value for ld for the target.
  665. #defun get_ld
  666. #if $[filter maya,$[use_packages]]
  667. $[maya_ld]
  668. #endif
  669. #end get_ld
  670. // This function determines the set of files a given source file
  671. // depends on. It is based on the setting of the $[filename]_sources
  672. // variable to indicate the sources for composite files, etc.
  673. #defun get_depends source
  674. #if $[$[source]_sources]
  675. #if $[ne $[$[source]_sources],none]
  676. $[$[source]_sources] $[dependencies $[$[source]_sources]]
  677. #endif
  678. #else
  679. $[dependencies $[source]]
  680. #endif
  681. #end get_depends
  682. // This function determines the set of libraries our various targets
  683. // depend on. This is a complicated definition. It is the union of
  684. // all of our targets' dependencies, except:
  685. // If a target is part of a metalib, it depends (a) directly on all of
  686. // its normal library dependencies that are part of the same metalib,
  687. // and (b) indirectly on all of the metalibs that every other library
  688. // dependency is part of. If a target is not part of a metalib, it is
  689. // the same as case (b) above.
  690. #defun get_depend_libs
  691. #define depend_libs
  692. #forscopes lib_target noinst_lib_target test_lib_target
  693. #define metalib $[module $[TARGET],$[TARGET]]
  694. #if $[ne $[metalib],]
  695. // This library is included on a metalib.
  696. #foreach depend $[LOCAL_LIBS]
  697. #define depend_metalib $[module $[TARGET],$[depend]]
  698. #if $[eq $[depend_metalib],$[metalib]]
  699. // Here's a dependent library in the *same* metalib.
  700. #set depend_libs $[depend_libs] $[depend]
  701. #elif $[ne $[depend_metalib],]
  702. // This dependent library is in a *different* metalib.
  703. #set depend_libs $[depend_libs] $[depend_metalib]
  704. #else
  705. // This dependent library is not in any metalib.
  706. #set depend_libs $[depend_libs] $[depend]
  707. #endif
  708. #end depend
  709. #else
  710. // This library is *not* included on a metalib.
  711. #foreach depend $[LOCAL_LIBS]
  712. #define depend_metalib $[module $[TARGET],$[depend]]
  713. #if $[ne $[depend_metalib],]
  714. // This dependent library is on a metalib.
  715. #set depend_libs $[depend_libs] $[depend_metalib]
  716. #else
  717. // This dependent library is not in any metalib.
  718. #set depend_libs $[depend_libs] $[depend]
  719. #endif
  720. #end depend
  721. #endif
  722. #end lib_target noinst_lib_target test_lib_target
  723. // These will never be part of a metalib.
  724. #forscopes static_lib_target dynamic_lib_target ss_lib_target bin_target noinst_bin_target metalib_target
  725. #foreach depend $[LOCAL_LIBS]
  726. #define depend_metalib $[module $[TARGET],$[depend]]
  727. #if $[ne $[depend_metalib],]
  728. // This dependent library is on a metalib.
  729. #if $[eq $[depend_metalib],$[TARGET]]
  730. #print Warning: $[TARGET] circularly depends on $[depend].
  731. #else
  732. #set depend_libs $[depend_libs] $[depend_metalib]
  733. #endif
  734. #else
  735. // This dependent library is not in any metalib.
  736. #set depend_libs $[depend_libs] $[depend]
  737. #endif
  738. #end depend
  739. #end static_lib_target dynamic_lib_target ss_lib_target bin_target noinst_bin_target metalib_target
  740. // In case we're defining any metalibs, these depend directly on
  741. // their components as well.
  742. #set depend_libs $[depend_libs] $[COMPONENT_LIBS(metalib_target)]
  743. $[depend_libs]
  744. #end get_depend_libs
  745. // dtool/pptempl/Global.pp
  746. // Define a few directories that will be useful.
  747. #define install_dir $[$[upcase $[PACKAGE]]_INSTALL]
  748. #if $[eq $[install_dir],]
  749. #error Variable $[upcase $[PACKAGE]]_INSTALL is not set! Cannot install!
  750. #endif
  751. #define other_trees
  752. #define other_trees_lib
  753. #define other_trees_include
  754. #foreach tree $[NEEDS_TREES]
  755. #define tree_install $[$[upcase $[tree]]_INSTALL]
  756. #if $[eq $[tree_install],]
  757. Warning: Variable $[upcase $[tree]]_INSTALL is not set!
  758. #else
  759. #set other_trees $[other_trees] $[tree_install]
  760. #set other_trees_lib $[other_trees_lib] $[tree_install]/lib
  761. #set other_trees_include $[other_trees_include] $[tree_install]/include
  762. #endif
  763. #end tree
  764. #define install_lib_dir $[or $[INSTALL_LIB_DIR],$[install_dir]/lib]
  765. #define other_trees_lib $[or $[INSTALL_LIB_DIR],$[other_trees_lib]]
  766. #define install_headers_dir $[or $[INSTALL_HEADERS_DIR],$[install_dir]/include]
  767. #define other_trees_include $[or $[INSTALL_HEADERS_DIR],$[other_trees_include]]
  768. #define install_bin_dir $[or $[INSTALL_BIN_DIR],$[install_dir]/bin]
  769. #define install_data_dir $[or $[INSTALL_DATA_DIR],$[install_dir]/shared]
  770. #define install_igatedb_dir $[or $[INSTALL_IGATEDB_DIR],$[install_dir]/etc]
  771. #define install_config_dir $[or $[INSTALL_CONFIG_DIR],$[install_dir]/etc]
  772. #defer install_py_dir $[install_lib_dir]/$[PACKAGE]/$[DIRNAME]
  773. #defer install_py_package_dir $[install_lib_dir]/$[PACKAGE]
  774. #if $[ne $[DTOOL_INSTALL],]
  775. #define install_parser_inc_dir $[DTOOL_INSTALL]/include/parser-inc
  776. #else
  777. #define install_parser_inc_dir $[install_headers_dir]/parser-inc
  778. #endif
  779. // Set up the correct interrogate options.
  780. // $[dllext] is redefined in the Windows Global.platform.pp files to
  781. // the string _d if we are building a debug tree. This is inserted
  782. // into the .dll and .in filenames before the extension to make a
  783. // runtime distinction between debug and non-debug builds. For now,
  784. // we make a global definition to empty string, since non-Windows
  785. // platforms will leave this empty.
  786. #define dllext
  787. // $[obj_prefix] defines the prefix that is prepended to the name of
  788. // the object files. It can be used to avoid potential collisions
  789. // when a source file is used by multiple targets but with different
  790. // compile options for each.
  791. //
  792. // $[obj_prefix] may be redefined by one of the Global.platform.pp
  793. // files.
  794. #defer obj_prefix $[TARGET]_
  795. // Caution! interrogate_ipath might be redefined in the
  796. // Global.platform.pp file.
  797. #defer interrogate_ipath $[install_parser_inc_dir:%=-S%] $[INTERROGATE_SYSTEM_IPATH:%=-S%] $[target_ipath:%=-I%]
  798. #defer interrogate_options \
  799. -DCPPPARSER -D__STDC__=1 -D__cplusplus $[SYSTEM_IGATE_FLAGS] \
  800. $[interrogate_ipath] \
  801. $[CDEFINES_OPT$[OPTIMIZE]:%=-D%] \
  802. $[filter -D%,$[C++FLAGS]] \
  803. $[INTERROGATE_OPTIONS] \
  804. $[if $[INTERROGATE_PYTHON_INTERFACE],$[if $[PYTHON_NATIVE],-python-native,-python]] \
  805. $[if $[INTERROGATE_C_INTERFACE],-c] \
  806. $[if $[<= $[OPTIMIZE], 1],-spam]
  807. #defer interrogate_module_options \
  808. $[if $[INTERROGATE_PYTHON_INTERFACE],$[if $[PYTHON_NATIVE],-python-native,-python]] \
  809. $[if $[INTERROGATE_C_INTERFACE],-c]
  810. // The language stuff is used by model builds only.
  811. // Set language_filters to be "%_english %_castillian %_japanese %_german" etc.
  812. #if $[LANGUAGES]
  813. #define language_filters $[subst <pct>,%,$[LANGUAGES:%=<pct>_%]]
  814. #print Using language $[LANGUAGE]
  815. #else
  816. #define language_filters
  817. #endif
  818. #define language_egg_filters $[language_filters:%=%.egg]
  819. #define language_dna_filters $[language_filters:%=%.dna]
  820. // This is used for evaluating SoftImage unpack rules in Template.models.pp.
  821. #defer soft_scene_files $[matrix $[DATABASE]/SCENES/$[SCENE_PREFIX],$[MODEL] $[ANIMS],.1-0.dsc]
  822. // Include the global definitions for this particular build_type, if
  823. // the file is there.
  824. #sinclude $[GLOBAL_TYPE_FILE]