|
|
@@ -0,0 +1,285 @@
|
|
|
+//
|
|
|
+// Template.models.pp
|
|
|
+//
|
|
|
+// This file defines the Makefiles that will be built to generate
|
|
|
+// models (egg, bam models computed from flt, soft, alias,
|
|
|
+// etc. sources). Unlike the other Template files, this is not based
|
|
|
+// directly on the BUILD_TYPE, but is specifically included when a
|
|
|
+// directory speficies a DIR_TYPE of "models". It uses some
|
|
|
+// Unix-specific conventions (like forward slashes as a directory
|
|
|
+// separator), so it requires either a Unix platform or a Cygwin
|
|
|
+// environment.
|
|
|
+//
|
|
|
+
|
|
|
+#if $[< $[PPREMAKE_VERSION],0.57]
|
|
|
+ #error You need at least ppremake version 0.58 to build models.
|
|
|
+#endif
|
|
|
+
|
|
|
+#define texattrib_dir $[TOPDIR]/src/maps
|
|
|
+#define texattrib_file $[texattrib_dir]/textures.txa
|
|
|
+
|
|
|
+//////////////////////////////////////////////////////////////////////
|
|
|
+#if $[eq $[DIR_TYPE], models]
|
|
|
+//////////////////////////////////////////////////////////////////////
|
|
|
+
|
|
|
+#define pal_egg_dir pal_egg
|
|
|
+#define bam_dir bams
|
|
|
+#defer phase_prefix $[if $[PHASE],phase_$[PHASE]/]
|
|
|
+
|
|
|
+#defer install_model_dir $[install_dir]/$[phase_prefix]$[INSTALL_TO]
|
|
|
+
|
|
|
+#define build_eggs $[sort $[SOURCES(flt_egg):%.flt=%.egg]]
|
|
|
+#define install_eggs $[sort $[SOURCES(install_egg)]]
|
|
|
+
|
|
|
+#define install_egg_dirs $[sort $[forscopes install_egg,$[install_model_dir]]]
|
|
|
+#define installed_eggs $[sort $[forscopes install_egg,$[SOURCES:%=$[install_model_dir]/%]]]
|
|
|
+#define installed_bams $[sort $[forscopes install_egg,$[SOURCES:%.egg=$[install_model_dir]/%.bam]]]
|
|
|
+
|
|
|
+#define pal_egg_targets $[install_eggs:%=$[pal_egg_dir]/%]
|
|
|
+#define bam_targets $[install_eggs:%.egg=$[bam_dir]/%.bam]
|
|
|
+
|
|
|
+#output Makefile
|
|
|
+#format makefile
|
|
|
+#### Generated automatically by $[PPREMAKE] $[PPREMAKE_VERSION] from $[SOURCEFILE].
|
|
|
+################################# DO NOT EDIT ###########################
|
|
|
+
|
|
|
+#define all_targets \
|
|
|
+ Makefile \
|
|
|
+ $[texattrib_dir] \
|
|
|
+ egg bam
|
|
|
+all : $[all_targets]
|
|
|
+
|
|
|
+egg : $[build_eggs]
|
|
|
+
|
|
|
+pal : egg $[if $[pal_egg_targets],$[pal_egg_dir]] $[pal_egg_targets]
|
|
|
+
|
|
|
+bam : pal $[if $[bam_targets],$[bam_dir]] $[bam_targets]
|
|
|
+
|
|
|
+#define install_egg_targets \
|
|
|
+ $[install_egg_dirs] \
|
|
|
+ $[installed_eggs]
|
|
|
+install-egg : $[install_egg_targets]
|
|
|
+
|
|
|
+#define install_bam_targets \
|
|
|
+ $[install_egg_dirs] \
|
|
|
+ $[installed_bams]
|
|
|
+install-bam : $[install_bam_targets]
|
|
|
+
|
|
|
+install : install-bam
|
|
|
+
|
|
|
+clean-bam :
|
|
|
+#if $[bam_targets]
|
|
|
+ rm -rf $[bam_dir]
|
|
|
+#endif
|
|
|
+
|
|
|
+clean-pal : clean-bam
|
|
|
+#if $[pal_egg_targets]
|
|
|
+ rm -rf $[pal_egg_dir]
|
|
|
+#endif
|
|
|
+
|
|
|
+clean : clean-pal
|
|
|
+#if $[build_eggs]
|
|
|
+ rm -f $[build_eggs]
|
|
|
+#endif
|
|
|
+
|
|
|
+// We need a rule for each directory we might need to make. This
|
|
|
+// loops through the full set of directories and creates a rule to
|
|
|
+// make each one, as needed.
|
|
|
+#foreach directory $[sort \
|
|
|
+ $[if $[pal_egg_targets],$[pal_egg_dir]] \
|
|
|
+ $[if $[bam_targets],$[bam_dir]] \
|
|
|
+ $[texattrib_dir] \
|
|
|
+ $[install_egg_dirs] \
|
|
|
+ ]
|
|
|
+$[directory] :
|
|
|
+ @test -d $[directory] || echo mkdir -p $[directory]
|
|
|
+ @test -d $[directory] || mkdir -p $[directory]
|
|
|
+#end directory
|
|
|
+
|
|
|
+
|
|
|
+// Egg file generation.
|
|
|
+#forscopes flt_egg
|
|
|
+#foreach flt $[SOURCES]
|
|
|
+#define target $[flt:%.flt=%.egg]
|
|
|
+#define source $[flt]
|
|
|
+$[target] : $[source]
|
|
|
+ flt2egg -no -rt -o $[target] $[source]
|
|
|
+
|
|
|
+#end flt
|
|
|
+#end flt_egg
|
|
|
+
|
|
|
+
|
|
|
+// Palettization rules.
|
|
|
+#forscopes install_egg
|
|
|
+#foreach egg $[SOURCES]
|
|
|
+#define pt $[egg:%.egg=%.pt]
|
|
|
+#define source $[egg]
|
|
|
+#define target $[pal_egg_dir]/$[source]
|
|
|
+$[target] : $[source] $[pt] $[build_eggs]
|
|
|
+#if $[PHASE]
|
|
|
+ egg-palettize-new -C -dm $[install_dir]/%s/maps -g phase_$[PHASE] -gdir phase_$[PHASE] -P256,256 -2 -o $[target] $[texattrib_file] $[source]
|
|
|
+#else
|
|
|
+ egg-palettize-new -C -dm $[install_dir]/maps -P256,256 -2 -o $[target] $[texattrib_file] $[source]
|
|
|
+#endif
|
|
|
+
|
|
|
+$[pt] :
|
|
|
+ touch $[pt]
|
|
|
+
|
|
|
+#end egg
|
|
|
+#end install_egg
|
|
|
+
|
|
|
+
|
|
|
+// Bam file creation.
|
|
|
+#forscopes install_egg
|
|
|
+#foreach egg $[SOURCES]
|
|
|
+#define source $[pal_egg_dir]/$[egg]
|
|
|
+#define target $[bam_dir]/$[egg:%.egg=%.bam]
|
|
|
+$[target] : $[source]
|
|
|
+ egg2bam -o $[target] $[source]
|
|
|
+
|
|
|
+#end egg
|
|
|
+#end install_egg
|
|
|
+
|
|
|
+
|
|
|
+// Egg file installation.
|
|
|
+#forscopes install_egg
|
|
|
+#foreach egg $[SOURCES]
|
|
|
+#define local $[egg]
|
|
|
+#define sourcedir $[pal_egg_dir]
|
|
|
+#define dest $[install_model_dir]
|
|
|
+$[dest]/$[local] : $[sourcedir]/$[local]
|
|
|
+ cd ./$[sourcedir] && $[INSTALL]
|
|
|
+
|
|
|
+#end egg
|
|
|
+#end install_egg
|
|
|
+
|
|
|
+
|
|
|
+// Bam file installation.
|
|
|
+#forscopes install_egg
|
|
|
+#foreach egg $[SOURCES]
|
|
|
+#define local $[egg:%.egg=%.bam]
|
|
|
+#define sourcedir $[bam_dir]
|
|
|
+#define dest $[install_model_dir]
|
|
|
+$[dest]/$[local] : $[sourcedir]/$[local]
|
|
|
+ cd ./$[sourcedir] && $[INSTALL]
|
|
|
+
|
|
|
+#end egg
|
|
|
+#end install_egg
|
|
|
+
|
|
|
+#end Makefile
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//////////////////////////////////////////////////////////////////////
|
|
|
+#elif $[eq $[DIR_TYPE], models_toplevel]
|
|
|
+//////////////////////////////////////////////////////////////////////
|
|
|
+
|
|
|
+// This is the toplevel directory for a models tree, e.g. $TTMODELS.
|
|
|
+// Here we build the root makefile.
|
|
|
+
|
|
|
+#map subdirs
|
|
|
+// Iterate through all of our known source files. Each models type
|
|
|
+// file gets its corresponding Makefile listed here.
|
|
|
+#forscopes */
|
|
|
+#if $[eq $[DIR_TYPE], models]
|
|
|
+#if $[build_directory]
|
|
|
+ #addmap subdirs $[DIRNAME]
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+#end */
|
|
|
+
|
|
|
+#output Makefile
|
|
|
+#format makefile
|
|
|
+#### Generated automatically by $[PPREMAKE] $[PPREMAKE_VERSION] from $[SOURCEFILE].
|
|
|
+################################# DO NOT EDIT ###########################
|
|
|
+
|
|
|
+all : $[subdirs]
|
|
|
+egg : $[subdirs:%=egg-%]
|
|
|
+pal : $[subdirs:%=pal-%]
|
|
|
+bam : $[subdirs:%=bam-%]
|
|
|
+clean-bam : $[subdirs:%=clean-bam-%]
|
|
|
+clean-pal : $[subdirs:%=clean-pal-%]
|
|
|
+clean : $[subdirs:%=clean-%]
|
|
|
+cleanall : $[subdirs:%=cleanall-%]
|
|
|
+install-egg : $[subdirs:%=install-egg-%]
|
|
|
+install-bam : $[subdirs:%=install-bam-%]
|
|
|
+install : $[subdirs:%=install-%]
|
|
|
+uninstall : $[subdirs:%=uninstall-%]
|
|
|
+
|
|
|
+optimize-palettes : regen-palettes pal
|
|
|
+
|
|
|
+regen-palettes :
|
|
|
+ egg-palettize-new -C -fRt $[texattrib_file]
|
|
|
+
|
|
|
+// Somehow, something in the cttools confuses some shells, so that
|
|
|
+// when we are attached, 'cd foo' doesn't work, but 'cd ./foo' does.
|
|
|
+// Weird. We get around this by putting a ./ in front of each cd
|
|
|
+// target below.
|
|
|
+
|
|
|
+#formap dirname subdirs
|
|
|
+$[dirname] : $[dirnames $[if $[build_directory],$[DIRNAME]],$[DEPEND_DIRS]]
|
|
|
+ cd ./$[PATH] && $(MAKE) all
|
|
|
+#end dirname
|
|
|
+
|
|
|
+#formap dirname subdirs
|
|
|
+egg-$[dirname] :
|
|
|
+ cd ./$[PATH] && $(MAKE) egg
|
|
|
+#end dirname
|
|
|
+
|
|
|
+#formap dirname subdirs
|
|
|
+bam-$[dirname] :
|
|
|
+ cd ./$[PATH] && $(MAKE) bam
|
|
|
+#end dirname
|
|
|
+
|
|
|
+#formap dirname subdirs
|
|
|
+pal-$[dirname] :
|
|
|
+ cd ./$[PATH] && $(MAKE) pal
|
|
|
+#end dirname
|
|
|
+
|
|
|
+#formap dirname subdirs
|
|
|
+clean-bam-$[dirname] :
|
|
|
+ cd ./$[PATH] && $(MAKE) clean-bam
|
|
|
+#end dirname
|
|
|
+
|
|
|
+#formap dirname subdirs
|
|
|
+clean-pal-$[dirname] :
|
|
|
+ cd ./$[PATH] && $(MAKE) clean-pal
|
|
|
+#end dirname
|
|
|
+
|
|
|
+#formap dirname subdirs
|
|
|
+clean-$[dirname] :
|
|
|
+ cd ./$[PATH] && $(MAKE) clean
|
|
|
+#end dirname
|
|
|
+
|
|
|
+#formap dirname subdirs
|
|
|
+cleanall-$[dirname] :
|
|
|
+ cd ./$[PATH] && $(MAKE) cleanall
|
|
|
+#end dirname
|
|
|
+
|
|
|
+#formap dirname subdirs
|
|
|
+install-egg-$[dirname] :
|
|
|
+ cd ./$[PATH] && $(MAKE) install-egg
|
|
|
+#end dirname
|
|
|
+
|
|
|
+#formap dirname subdirs
|
|
|
+install-bam-$[dirname] :
|
|
|
+ cd ./$[PATH] && $(MAKE) install-bam
|
|
|
+#end dirname
|
|
|
+
|
|
|
+#formap dirname subdirs
|
|
|
+install-$[dirname] :
|
|
|
+ cd ./$[PATH] && $(MAKE) install
|
|
|
+#end dirname
|
|
|
+
|
|
|
+#formap dirname subdirs
|
|
|
+uninstall-$[dirname] :
|
|
|
+ cd ./$[PATH] && $(MAKE) uninstall
|
|
|
+#end dirname
|
|
|
+
|
|
|
+#end Makefile
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//////////////////////////////////////////////////////////////////////
|
|
|
+#endif // DIR_TYPE
|