Template.models.pp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577
  1. //
  2. // Template.models.pp
  3. //
  4. // This file defines the Makefiles that will be built to generate
  5. // models (egg, bam models computed from flt, soft, alias,
  6. // etc. sources). Unlike the other Template files, this is not based
  7. // directly on the BUILD_TYPE, but is specifically included when a
  8. // directory specifies a DIR_TYPE of "models". It uses some
  9. // Unix-specific conventions (like forward slashes as a directory
  10. // separator), so it requires either a Unix platform or a Cygwin
  11. // environment.
  12. //
  13. #if $[< $[PPREMAKE_VERSION],0.57]
  14. #error You need at least ppremake version 0.58 to build models.
  15. #endif
  16. // Search for the texattrib dir definition. This will be in the
  17. // models_topdir directory.
  18. #define texattrib_dir $[dir_type $[TEXATTRIB_DIR],models_toplevel]
  19. // Prefix $[TOPDIR]. If it wasn't defined, make a default.
  20. #if $[texattrib_dir]
  21. #define texattrib_dir $[TOPDIR]/$[texattrib_dir]
  22. #else
  23. #define texattrib_dir $[TOPDIR]/src/maps
  24. #endif
  25. #define texattrib_file $[texattrib_dir]/textures.txa
  26. //////////////////////////////////////////////////////////////////////
  27. #if $[eq $[DIR_TYPE], models]
  28. //////////////////////////////////////////////////////////////////////
  29. #define pal_egg_dir pal_egg
  30. #define bam_dir bams
  31. #define soft_maps_dir soft_maps
  32. #defer phase_prefix $[if $[PHASE],phase_$[PHASE]/]
  33. #defer install_model_dir $[install_dir]/$[phase_prefix]$[INSTALL_TO]
  34. #define filter_dirs $[TARGET_DIR(filter_egg optchar_egg)]
  35. #defer source_prefix $[SOURCE_DIR:%=%/]
  36. #define build_models \
  37. $[SOURCES(flt_egg):%.flt=%.egg] \
  38. $[patsubst %.lwo %.LWO,%.egg,$[SOURCES(lwo_egg)]] \
  39. $[patsubst %.ma %.mb,%.egg,$[SOURCES(maya_egg)]] \
  40. $[forscopes soft_char_egg,$[POLY_MODEL:%=$[EGG_PREFIX]%.egg] $[NURBS_MODEL:%=$[EGG_PREFIX]%.egg]]
  41. #define build_anims \
  42. $[forscopes soft_char_egg,$[ANIMS:%=$[EGG_PREFIX]%$[CHAN_SUFFIX].egg]]
  43. #define build_eggs $[sort $[build_models] $[build_anims]]
  44. #define install_eggs $[sort $[notdir $[SOURCES(install_egg)] $[UNPAL_SOURCES(install_egg)] $[UNPAL_SOURCES_NC(install_egg)]]]
  45. #define install_other $[sort $[SOURCES(install_audio install_dna install_icons install_misc)]]
  46. #define install_egg_dirs $[sort $[forscopes install_egg,$[install_model_dir]]]
  47. #define installed_eggs $[sort $[forscopes install_egg,$[patsubst %,$[install_model_dir]/%,$[notdir $[SOURCES] $[UNPAL_SOURCES] $[UNPAL_SOURCES_NC]]]]]
  48. #define installed_bams $[sort $[forscopes install_egg,$[patsubst %.egg,$[install_model_dir]/%.bam,$[notdir $[SOURCES] $[UNPAL_SOURCES] $[UNPAL_SOURCES_NC]]]]]
  49. #define install_other_dirs $[sort $[forscopes install_audio install_dna install_icons install_misc,$[install_model_dir]]]
  50. #define installed_other $[sort $[forscopes install_audio install_dna install_icons install_misc,$[SOURCES:%=$[install_model_dir]/%]]]
  51. #define pal_egg_targets $[sort $[patsubst %,$[pal_egg_dir]/%,$[notdir $[SOURCES(install_egg)]]]]
  52. #define bam_targets $[install_eggs:%.egg=$[bam_dir]/%.bam]
  53. #output Makefile
  54. #format makefile
  55. #### Generated automatically by $[PPREMAKE] $[PPREMAKE_VERSION] from $[SOURCEFILE].
  56. ################################# DO NOT EDIT ###########################
  57. #define all_targets \
  58. Makefile \
  59. $[texattrib_dir] \
  60. $[filter_dirs] \
  61. $[optchar_dirs] \
  62. egg bam
  63. all : $[all_targets]
  64. #define egg_targets \
  65. $[if $[POLY_MODEL(soft_char_egg)] $[NURBS_MODEL(soft_char_egg)],$[soft_maps_dir]] \
  66. $[build_eggs]
  67. egg : $[egg_targets]
  68. #define filter_targets \
  69. $[filter_dirs] \
  70. $[forscopes install_egg,$[patsubst %,$[source_prefix]%,$[notdir $[SOURCES] $[UNPAL_SOURCES] $[UNPAL_SOURCES_NC]]]]
  71. filter : egg $[filter_targets]
  72. pal : filter $[if $[pal_egg_targets],$[pal_egg_dir]] $[pal_egg_targets]
  73. bam : pal $[if $[bam_targets],$[bam_dir]] $[bam_targets]
  74. #define install_egg_targets \
  75. $[install_egg_dirs] \
  76. $[installed_eggs]
  77. install-egg : $[install_egg_targets]
  78. #define install_bam_targets \
  79. $[install_egg_dirs] \
  80. $[installed_bams]
  81. install-bam : $[install_bam_targets]
  82. #define install_other_targets \
  83. $[install_other_dirs] \
  84. $[installed_other]
  85. install-other : $[install_other_targets]
  86. install : install-other install-bam
  87. uninstall : uninstall-other uninstall-bam uninstall-egg
  88. clean-bam :
  89. #if $[bam_targets]
  90. $[TAB]rm -rf $[bam_dir]
  91. #endif
  92. clean-pal : clean-bam
  93. #if $[pal_egg_targets]
  94. $[TAB]rm -rf $[pal_egg_dir]
  95. #endif
  96. clean : clean-pal
  97. #if $[build_eggs]
  98. $[TAB]rm -f $[build_eggs] $[install_eggs:%.egg=%.pt]
  99. #endif
  100. #if $[POLY_MODEL(soft_char_egg)] $[NURBS_MODEL(soft_char_egg)]
  101. $[TAB]rm -rf $[soft_maps_dir]
  102. #endif
  103. #if $[filter_dirs]
  104. $[TAB]rm -rf $[filter_dirs]
  105. #endif
  106. // We need a rule for each directory we might need to make. This
  107. // loops through the full set of directories and creates a rule to
  108. // make each one, as needed.
  109. #foreach directory $[sort \
  110. $[filter_dirs] \
  111. $[if $[pal_egg_targets],$[pal_egg_dir]] \
  112. $[if $[bam_targets],$[bam_dir]] \
  113. $[if $[POLY_MODEL(soft_char_egg)] $[NURBS_MODEL(soft_char_egg)],$[soft_maps_dir]] \
  114. $[texattrib_dir] \
  115. $[install_egg_dirs] \
  116. $[install_other_dirs] \
  117. ]
  118. $[directory] :
  119. $[TAB]@test -d $[directory] || echo mkdir -p $[directory]
  120. $[TAB]@test -d $[directory] || mkdir -p $[directory]
  121. // Sometimes we need a target to depend on the directory existing, without
  122. // being fooled by the directory's modification times. We use this
  123. // phony timestamp file to achieve that.
  124. $[directory]/stamp :
  125. $[TAB]@test -d $[directory] || echo mkdir -p $[directory]
  126. $[TAB]@test -d $[directory] || mkdir -p $[directory]
  127. $[TAB]@touch $[directory]/stamp
  128. #end directory
  129. // Egg file generation from Flt files.
  130. #forscopes flt_egg
  131. #foreach flt $[SOURCES]
  132. #define target $[flt:%.flt=%.egg]
  133. #define source $[flt]
  134. $[target] : $[source]
  135. $[TAB]flt2egg $[FLT2EGG_OPTS] -o $[target] $[source]
  136. #end flt
  137. #end flt_egg
  138. // Egg file generation from Lightwave files.
  139. #forscopes lwo_egg
  140. #foreach lwo $[SOURCES]
  141. #define target $[patsubst %.lwo %.LWO,%.egg,$[lwo]]
  142. #define source $[lwo]
  143. $[target] : $[source]
  144. $[TAB]lwo2egg $[LWO2EGG_OPTS] -o $[target] $[source]
  145. #end lwo
  146. #end lwo_egg
  147. // Egg file generation from Maya files.
  148. #forscopes maya_egg
  149. #foreach maya $[SOURCES]
  150. #define target $[patsubst %.ma %.mb,%.egg,$[maya]]
  151. #define source $[maya]
  152. $[target] : $[source]
  153. $[TAB]maya2egg $[MAYA2EGG_OPTS] -o $[target] $[source]
  154. #end maya
  155. #end maya_egg
  156. // Egg character model generation from Soft databases.
  157. #forscopes soft_char_egg
  158. #if $[POLY_MODEL]
  159. #define target $[EGG_PREFIX]$[POLY_MODEL].egg
  160. #define scene $[SCENE_PREFIX]$[MODEL].1-0.dsc
  161. #define source $[DATABASE]/SCENES/$[scene]
  162. $[target] : $[source]
  163. $[TAB]soft2egg $[SOFT2EGG_OPTS] -p -M $[target] -N $[CHAR_NAME] -d $[DATABASE] -s $[scene] -t $[soft_maps_dir]
  164. #endif
  165. #if $[NURBS_MODEL]
  166. #define target $[EGG_PREFIX]$[NURBS_MODEL].egg
  167. #define scene $[SCENE_PREFIX]$[MODEL].1-0.dsc
  168. #define source $[DATABASE]/SCENES/$[scene]
  169. $[target] : $[source]
  170. $[TAB]soft2egg $[SOFT2EGG_OPTS] -n -M $[target] -N $[CHAR_NAME] -d $[DATABASE] -s $[scene] -t $[soft_maps_dir]
  171. #endif
  172. #end soft_char_egg
  173. // Egg animation generation from Soft database.
  174. #forscopes soft_char_egg
  175. #foreach anim $[ANIMS]
  176. #define target $[EGG_PREFIX]$[anim]$[CHAN_SUFFIX].egg
  177. #define scene $[SCENE_PREFIX]$[anim].1-0.dsc
  178. #define source $[DATABASE]/SCENES/$[scene]
  179. #define begin 1
  180. #define end
  181. #if $[$[anim]_frames]
  182. #set begin $[word 1,$[$[anim]_frames]]
  183. #set end $[word 2,$[$[anim]_frames]]
  184. #endif
  185. $[target] : $[source]
  186. $[TAB]soft2egg $[SOFT2EGG_OPTS] -a -A $[target] -N $[CHAR_NAME] -d $[DATABASE] -s $[scene] $[begin:%=-b%] $[end:%=-e%]
  187. #end anim
  188. #end soft_char_egg
  189. // Generic egg filters.
  190. #forscopes filter_egg
  191. #foreach egg $[SOURCES]
  192. #define source $[source_prefix]$[egg]
  193. #define target $[TARGET_DIR]/$[notdir $[egg]]
  194. $[target] : $[source] $[pt] $[TARGET_DIR]/stamp
  195. $[TAB]$[COMMAND]
  196. #end egg
  197. #end filter_egg
  198. // Character optimization.
  199. #forscopes optchar_egg
  200. #define sources $[SOURCES:%=$[source_prefix]%]
  201. #define target $[TARGET_DIR]/$[notdir $[firstword $[SOURCES]]]
  202. // A bunch of rules to make each generated egg file depend on the
  203. // first one.
  204. #foreach egg $[notdir $[wordlist 2,9999,$[SOURCES]]]
  205. $[TARGET_DIR]/$[egg] : $[target] $[TARGET_DIR]/stamp
  206. $[TAB]touch $[TARGET_DIR]/$[egg]
  207. #end egg
  208. // And this is the actual optchar pass.
  209. $[target] : $[sources] $[TARGET_DIR]/stamp
  210. $[TAB]egg-optchar $[OPTCHAR_OPTS] -d $[TARGET_DIR] $[sources]
  211. #end optchar_egg
  212. // Palettization rules.
  213. #forscopes install_egg
  214. #foreach egg $[SOURCES]
  215. #define pt $[egg:%.egg=$[source_prefix]%.pt]
  216. #define source $[source_prefix]$[egg]
  217. #define target $[pal_egg_dir]/$[notdir $[egg]]
  218. $[target] : $[source] $[pt] $[pal_egg_dir]/stamp
  219. #if $[PHASE]
  220. $[TAB]egg-palettize $[PALETTIZE_OPTS] -a $[texattrib_file] -dr $[install_dir] -dm $[install_dir]/%g/maps -ds $[install_dir]/shadow_pal -g phase_$[PHASE] -gdir phase_$[PHASE] -o $[target] $[source]
  221. #else
  222. $[TAB]egg-palettize $[PALETTIZE_OPTS] -a $[texattrib_file] -dr $[install_dir] -dm $[install_dir]/%g/maps -ds $[install_dir]/shadow_pal -o $[target] $[source]
  223. #endif
  224. $[pt] :
  225. $[TAB]touch $[pt]
  226. #end egg
  227. #end install_egg
  228. // Bam file creation.
  229. #forscopes install_egg
  230. #foreach egg $[SOURCES]
  231. #define source $[pal_egg_dir]/$[notdir $[egg]]
  232. #define target $[bam_dir]/$[notdir $[egg:%.egg=%.bam]]
  233. $[target] : $[source] $[bam_dir]/stamp
  234. $[TAB]egg2bam -kp -tp $[install_dir] $[EGG2BAM_OPTS] -o $[target] $[source]
  235. #end egg
  236. #foreach egg $[UNPAL_SOURCES]
  237. #define source $[source_prefix]$[egg]
  238. #define target $[bam_dir]/$[notdir $[egg:%.egg=%.bam]]
  239. $[target] : $[source] $[bam_dir]/stamp
  240. $[TAB]egg2bam -kp -tp $[install_dir] $[EGG2BAM_OPTS] -o $[target] $[source]
  241. #end egg
  242. #foreach egg $[UNPAL_SOURCES_NC]
  243. #define source $[source_prefix]$[egg]
  244. #define target $[bam_dir]/$[notdir $[egg:%.egg=%.bam]]
  245. $[target] : $[source] $[bam_dir]/stamp
  246. $[TAB]egg2bam -kp -tp $[install_dir] $[EGG2BAM_OPTS] -NC -o $[target] $[source]
  247. #end egg
  248. #end install_egg
  249. // Egg file installation.
  250. #forscopes install_egg
  251. #foreach egg $[notdir $[SOURCES]]
  252. #define local $[egg]
  253. #define sourcedir $[pal_egg_dir]
  254. #define dest $[install_model_dir]
  255. $[dest]/$[local] : $[sourcedir]/$[local]
  256. // cd ./$[sourcedir] && $[INSTALL]
  257. $[TAB]rm -f $[dest]/$[local]
  258. $[TAB]cp $[sourcedir]/$[local] $[dest]
  259. #end egg
  260. #foreach egg $[UNPAL_SOURCES] $[UNPAL_SOURCES_NC]
  261. #define local $[egg]
  262. #define dest $[install_model_dir]
  263. $[dest]/$[notdir $[local]] : $[source_prefix]$[local]
  264. // $[INSTALL]
  265. $[TAB]rm -f $[dest]/$[notdir $[local]]
  266. $[TAB]cp $[source_prefix]$[local] $[dest]
  267. #end egg
  268. #end install_egg
  269. // Egg file uninstallation.
  270. uninstall-egg :
  271. #forscopes install_egg
  272. #define files $[patsubst %,$[install_model_dir]/%,$[SOURCES] $[UNPAL_SOURCES] $[UNPAL_SOURCES_NC]]
  273. #if $[files]
  274. $[TAB]rm -f $[files]
  275. #endif
  276. #end install_egg
  277. // Bam file installation.
  278. #forscopes install_egg
  279. #foreach egg $[notdir $[SOURCES] $[UNPAL_SOURCES] $[UNPAL_SOURCES_NC]]
  280. #define local $[egg:%.egg=%.bam]
  281. #define sourcedir $[bam_dir]
  282. #define dest $[install_model_dir]
  283. $[dest]/$[local] : $[sourcedir]/$[local]
  284. // cd ./$[sourcedir] && $[INSTALL]
  285. $[TAB]rm -f $[dest]/$[local]
  286. $[TAB]cp $[sourcedir]/$[local] $[dest]
  287. #end egg
  288. #end install_egg
  289. // Bam file uninstallation.
  290. uninstall-bam :
  291. #forscopes install_egg
  292. #define files $[patsubst %.egg,$[install_model_dir]/%.bam,$[notdir $[SOURCES] $[UNPAL_SOURCES] $[UNPAL_SOURCES_NC]]]
  293. #if $[files]
  294. $[TAB]rm -f $[files]
  295. #endif
  296. #end install_egg
  297. // Miscellaneous file installation.
  298. #forscopes install_audio install_dna install_icons install_misc
  299. #foreach file $[SOURCES]
  300. #define local $[file]
  301. #define dest $[install_model_dir]
  302. $[dest]/$[local] : $[local]
  303. // $[INSTALL]
  304. $[TAB]rm -f $[dest]/$[local]
  305. $[TAB]cp $[local] $[dest]
  306. #end file
  307. #end install_audio install_dna install_icons install_misc
  308. // Miscellaneous file uninstallation.
  309. uninstall-other:
  310. #forscopes install_audio install_dna install_icons install_misc
  311. #define files $[patsubst %,$[install_model_dir]/%,$[SOURCES]]
  312. #if $[files]
  313. $[TAB]rm -f $[files]
  314. #endif
  315. #end install_audio install_dna install_icons install_misc
  316. #end Makefile
  317. //////////////////////////////////////////////////////////////////////
  318. #elif $[eq $[DIR_TYPE], models_group]
  319. //////////////////////////////////////////////////////////////////////
  320. // This is a group directory: a directory above a collection of source
  321. // directories, e.g. $DTOOL/src. We don't need to output anything in
  322. // this directory.
  323. //////////////////////////////////////////////////////////////////////
  324. #elif $[eq $[DIR_TYPE], models_toplevel]
  325. //////////////////////////////////////////////////////////////////////
  326. // This is the toplevel directory for a models tree, e.g. $TTMODELS.
  327. // Here we build the root makefile.
  328. #map subdirs
  329. // Iterate through all of our known source files. Each models type
  330. // file gets its corresponding Makefile listed here.
  331. #forscopes */
  332. #if $[eq $[DIR_TYPE], models]
  333. #if $[build_directory]
  334. #addmap subdirs $[DIRNAME]
  335. #endif
  336. #endif
  337. #end */
  338. #output Makefile
  339. #format makefile
  340. #### Generated automatically by $[PPREMAKE] $[PPREMAKE_VERSION] from $[SOURCEFILE].
  341. ################################# DO NOT EDIT ###########################
  342. all : egg pal repal $[subdirs]
  343. egg : $[subdirs:%=egg-%]
  344. pal : $[subdirs:%=pal-%]
  345. bam : $[subdirs:%=bam-%]
  346. clean-bam : $[subdirs:%=clean-bam-%]
  347. clean-pal : $[subdirs:%=clean-pal-%]
  348. clean : $[subdirs:%=clean-%]
  349. cleanall : $[subdirs:%=cleanall-%]
  350. install-egg : egg pal repal $[subdirs:%=install-egg-%]
  351. install-bam : egg pal repal $[subdirs:%=install-bam-%]
  352. install-other : $[subdirs:%=install-other-%]
  353. install : egg pal repal $[subdirs:%=install-%]
  354. uninstall-egg : $[subdirs:%=uninstall-egg-%]
  355. uninstall-bam : $[subdirs:%=uninstall-bam-%]
  356. uninstall-other : $[subdirs:%=uninstall-other-%]
  357. uninstall : $[subdirs:%=uninstall-%]
  358. #
  359. # opt-pal : reorder and resize the palettes to be as optimal as
  360. # possible. This forces a rebuild of all the egg files.
  361. #
  362. opt-pal : pal do-opt-pal install
  363. optimize-palettes : opt-pal
  364. do-opt-pal :
  365. $[TAB]egg-palettize $[PALETTIZE_OPTS] -a $[texattrib_file] -dm $[install_dir]/%g/maps -opt -egg
  366. #
  367. # repal : reexamine the textures.txa file and do whatever needs to be
  368. # done to bring everything up to sync with it. Also make sure all egg
  369. # files are up-to-date.
  370. #
  371. repal :
  372. $[TAB]egg-palettize $[PALETTIZE_OPTS] -a $[texattrib_file] -dm $[install_dir]/%g/maps -all -egg
  373. re-pal : repal
  374. #
  375. # fix-pal : something has gone wrong with the palettes; rebuild all
  376. # palette images to fix it.
  377. #
  378. fix-pal :
  379. $[TAB]egg-palettize $[PALETTIZE_OPTS] -a $[texattrib_file] -dm $[install_dir]/%g/maps -redo -all -egg
  380. #
  381. # undo-pal : blow away all the palettization information and start fresh.
  382. #
  383. undo-pal : clean-pal
  384. $[TAB]rm -f $[texattrib_file:%.txa=%.boo]
  385. #
  386. # pi : report the palettization information to standard output for the
  387. # user's perusal.
  388. #
  389. pi :
  390. $[TAB]egg-palettize $[PALETTIZE_OPTS] -a $[texattrib_file] -dm $[install_dir]/%g/maps -pi
  391. #
  392. # pal-stats : report palettization statistics to standard output for the
  393. # user's perusal.
  394. #
  395. pal-stats :
  396. $[TAB]egg-palettize $[PALETTIZE_OPTS] -a $[texattrib_file] -dm $[install_dir]/%g/maps -s
  397. stats-pal : pal-stats
  398. // Somehow, something in the cttools confuses some shells, so that
  399. // when we are attached, 'cd foo' doesn't work, but 'cd ./foo' does.
  400. // Weird. We get around this by putting a ./ in front of each cd
  401. // target below.
  402. #formap dirname subdirs
  403. $[dirname] : $[dirnames $[if $[build_directory],$[DIRNAME]],$[DEPEND_DIRS]]
  404. $[TAB]cd ./$[RELDIR] && $(MAKE) all
  405. #end dirname
  406. #formap dirname subdirs
  407. egg-$[dirname] :
  408. $[TAB]cd ./$[RELDIR] && $(MAKE) egg
  409. #end dirname
  410. #formap dirname subdirs
  411. bam-$[dirname] :
  412. $[TAB]cd ./$[RELDIR] && $(MAKE) bam
  413. #end dirname
  414. #formap dirname subdirs
  415. pal-$[dirname] :
  416. $[TAB]cd ./$[RELDIR] && $(MAKE) pal
  417. #end dirname
  418. #formap dirname subdirs
  419. clean-bam-$[dirname] :
  420. $[TAB]cd ./$[RELDIR] && $(MAKE) clean-bam
  421. #end dirname
  422. #formap dirname subdirs
  423. clean-pal-$[dirname] :
  424. $[TAB]cd ./$[RELDIR] && $(MAKE) clean-pal
  425. #end dirname
  426. #formap dirname subdirs
  427. clean-$[dirname] :
  428. $[TAB]cd ./$[RELDIR] && $(MAKE) clean
  429. #end dirname
  430. #formap dirname subdirs
  431. cleanall-$[dirname] :
  432. $[TAB]cd ./$[RELDIR] && $(MAKE) cleanall
  433. #end dirname
  434. #formap dirname subdirs
  435. install-egg-$[dirname] :
  436. $[TAB]cd ./$[RELDIR] && $(MAKE) install-egg
  437. #end dirname
  438. #formap dirname subdirs
  439. install-bam-$[dirname] :
  440. $[TAB]cd ./$[RELDIR] && $(MAKE) install-bam
  441. #end dirname
  442. #formap dirname subdirs
  443. install-other-$[dirname] :
  444. $[TAB]cd ./$[RELDIR] && $(MAKE) install-other
  445. #end dirname
  446. #formap dirname subdirs
  447. install-$[dirname] :
  448. $[TAB]cd ./$[RELDIR] && $(MAKE) install
  449. #end dirname
  450. #formap dirname subdirs
  451. uninstall-egg-$[dirname] :
  452. $[TAB]cd ./$[RELDIR] && $(MAKE) uninstall-egg
  453. #end dirname
  454. #formap dirname subdirs
  455. uninstall-bam-$[dirname] :
  456. $[TAB]cd ./$[RELDIR] && $(MAKE) uninstall-bam
  457. #end dirname
  458. #formap dirname subdirs
  459. uninstall-other-$[dirname] :
  460. $[TAB]cd ./$[RELDIR] && $(MAKE) uninstall-other
  461. #end dirname
  462. #formap dirname subdirs
  463. uninstall-$[dirname] :
  464. $[TAB]cd ./$[RELDIR] && $(MAKE) uninstall
  465. #end dirname
  466. #end Makefile
  467. //////////////////////////////////////////////////////////////////////
  468. #endif // DIR_TYPE