|
|
@@ -1,533 +0,0 @@
|
|
|
-#
|
|
|
-# Makefile rules for compiling Alias or SoftImage character models into egg,
|
|
|
-# and then into pfb's.
|
|
|
-#
|
|
|
-
|
|
|
-include $(DTOOL)/include/Makefile.inst-egg.vars
|
|
|
-
|
|
|
-ifeq ($(EGG_PALETTIZE),)
|
|
|
- EGG_PALETTIZE = egg-palettize
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(EGG_TEXTURES),)
|
|
|
- EGG_TEXTURES = egg-textures
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(PFICONV),)
|
|
|
- PFICONV = pficonv -m
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(PFI_DIR),)
|
|
|
- PFI_DIR = $(CHAR_PFI_DIR)
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(QTESS),)
|
|
|
- QTESS = qtess $(QTESS_OPTS)
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(TESS),)
|
|
|
- TESS = tess $(TESS_OPTS)
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(EGG_BLEND),)
|
|
|
- EGG_BLEND = egg-blend $(EGG_BLEND_OPTS)
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(EGG_REPLACE),)
|
|
|
- EGG_REPLACE = egg-replace $(EGG_REPLACE_OPTS)
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(EGG_REPLACE_OPTS),)
|
|
|
- EGG_REPLACE_OPTS = -n
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(INSTALL_DIR),)
|
|
|
- INSTALL_DIR = $(INSTALL_ROOT)/models/char/$(DIR_NAME)
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(INSTALL_MAP_DIR),)
|
|
|
- INSTALL_MAP_DIR = $(INSTALL_DIR)/$(INSTALL_MAPS)
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(DIR_NAME),)
|
|
|
- DIR_NAME = $(CHAR_NAME)
|
|
|
-endif
|
|
|
-
|
|
|
-# A synonym to help palettize find a reasonable default palette name.
|
|
|
-SCENE = $(DIR_NAME)
|
|
|
-
|
|
|
-ifeq ($(EGG_NAME),)
|
|
|
- EGG_NAME = $(CHAR_NAME)
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(CHAR_TOP_NODE),)
|
|
|
- CHAR_TOP_NODE = $(CHAR_NAME)
|
|
|
-endif
|
|
|
-
|
|
|
-ifneq ($(PALETTE_NAME),)
|
|
|
- # If the palette name is nonempty, make sure it doesn't contain slashes.
|
|
|
- PALETTE_NAME := $(subst /,-,$(PALETTE_NAME))
|
|
|
-endif
|
|
|
-
|
|
|
-PAL_EGG_DIR = $(CHAR_BUILD_DIR)/pal
|
|
|
-
|
|
|
-
|
|
|
-# WIRE_DIR and WIRE_PATTERN tell the makefile where to find the latest model
|
|
|
-# file.
|
|
|
-ifneq ($(WIRE_DIR),)
|
|
|
- ifneq ($(WIRE_PATTERN),)
|
|
|
- WIRE_FILE := $(strip $(shell cd $(WIRE_DIR); findlatest $(WIRE_DIR) $(WIRE_PATTERN)))
|
|
|
- endif
|
|
|
-endif
|
|
|
-
|
|
|
-# TX_WIRE_DIR and TX_WIRE_PATTERN tell where to find the latest model for the
|
|
|
-# texture substitution. If this is non-null, it will use this file to
|
|
|
-# substitute pieces in when it builds the NURBS file. This is a hack to
|
|
|
-# work around the Alias/SoftImage texture offset problem.
|
|
|
-ifneq ($(TX_WIRE_DIR),)
|
|
|
- ifneq ($(TX_WIRE_PATTERN),)
|
|
|
- TX_WIRE_FILE := $(strip $(shell cd $(TX_WIRE_DIR); findlatest $(TX_WIRE_DIR) $(TX_WIRE_PATTERN)))
|
|
|
- endif
|
|
|
-endif
|
|
|
-
|
|
|
-ifneq ($(CHAN_DIR),)
|
|
|
- FIND_CHAN_FILES = $(foreach pat,$(CHAN_PATTERN),$(foreach dir,$(CHAN_DIR),$(strip $(shell cd $(dir); findlatest $(dir) $(pat)))))
|
|
|
-endif
|
|
|
-
|
|
|
-# If the user didn't give us an explicit directory to place the unoptimized
|
|
|
-# models--normally $(UNOPT)--infer it.
|
|
|
-ifeq ($(UNOPT),)
|
|
|
- ifneq ($(OPTCHAR_OPTS),)
|
|
|
- UNOPT = unopt/
|
|
|
- endif
|
|
|
-endif
|
|
|
-
|
|
|
-# And, we might even want to make a second pass at optcharring.
|
|
|
-ifeq ($(UNOPT2),)
|
|
|
- ifneq ($(OPTCHAR2_OPTS),)
|
|
|
- UNOPT2 = unopt2/
|
|
|
- endif
|
|
|
-endif
|
|
|
-
|
|
|
-# Set UNOPT2_NAME to be the printable name of UNOPT2.
|
|
|
-ifeq ($(UNOPT2),)
|
|
|
- UNOPT2_NAME = .
|
|
|
-else
|
|
|
- UNOPT2_NAME = $(UNOPT2)
|
|
|
-endif
|
|
|
-
|
|
|
-# We need this variable in a substitution below.
|
|
|
-comma := ,
|
|
|
-
|
|
|
-ifeq ($(POLY_MODEL_FILE),)
|
|
|
- POLY_MODEL_FILE = $(EGG_NAME)-mod.egg
|
|
|
-endif
|
|
|
-
|
|
|
-ifeq ($(NURBS_MODEL_FILE),)
|
|
|
- NURBS_MODEL_FILE = $(EGG_NAME)-nurbs.egg
|
|
|
-endif
|
|
|
-
|
|
|
-# We define two different variables, NURBS_MODEL_READ and
|
|
|
-# NURBS_MODEL_WRITE, to allow inserting of a user step in the build
|
|
|
-# process between writing a final NURBS model and processing it.
|
|
|
-# Normally, these variables are the same; if the user makefile defines
|
|
|
-# them different, it can establish the processing to generate one from
|
|
|
-# the other.
|
|
|
-ifeq ($(NURBS_MODEL_READ),)
|
|
|
- NURBS_MODEL_READ = $(NURBS_MODEL_FILE)
|
|
|
-endif
|
|
|
-ifeq ($(NURBS_MODEL_WRITE),)
|
|
|
- NURBS_MODEL_WRITE = $(NURBS_MODEL_FILE)
|
|
|
-endif
|
|
|
-
|
|
|
-# Similarly for POLY_MODEL_READ and POLY_MODEL_WRITE.
|
|
|
-ifeq ($(POLY_MODEL_READ),)
|
|
|
- POLY_MODEL_READ = $(POLY_MODEL_FILE)
|
|
|
-endif
|
|
|
-ifeq ($(POLY_MODEL_WRITE),)
|
|
|
- POLY_MODEL_WRITE = $(POLY_MODEL_FILE)
|
|
|
-endif
|
|
|
-
|
|
|
-TX_EGG_FILE = $(EGG_NAME)-tx.egg
|
|
|
-PRETX_EGG_FILE = $(EGG_NAME)-pretx.egg
|
|
|
-
|
|
|
-# ANIMS is the list of anim files. These are passed through optchar.
|
|
|
-CHAN_FILES := $(patsubst %,$(CHAN_FILE_PREFIX)%$(CHAN_FILE_SUFFIX).egg,$(ANIMS))
|
|
|
-
|
|
|
-# ANIMS2 is the list of anim files that are passed through the second round
|
|
|
-# of optchar, if there is one. If ANIMS2 is left unspecified, the user
|
|
|
-# may specify simply BLEND_ANIMS, which is concatenated on the end.
|
|
|
-ifneq ($(ANIMS2),)
|
|
|
- CHAN2_FILES := $(patsubst %,$(CHAN_FILE_PREFIX)%$(CHAN_FILE_SUFFIX).egg,$(ANIMS2))
|
|
|
-else
|
|
|
- CHAN2_FILES := $(CHAN_FILES) $(patsubst %,$(CHAN_FILE_PREFIX)%$(CHAN_FILE_SUFFIX).egg,$(BLEND_ANIMS))
|
|
|
-endif
|
|
|
-
|
|
|
-MODEL_FILES_READ = $(MODEL_FILES)
|
|
|
-MODEL_FILES_WRITE = $(MODEL_FILES)
|
|
|
-
|
|
|
-ifneq ($(POLY_OPTS),)
|
|
|
- MODEL_FILES_READ += $(POLY_MODEL_READ)
|
|
|
- MODEL_FILES_WRITE += $(POLY_MODEL_WRITE)
|
|
|
-endif
|
|
|
-
|
|
|
-# Maybe we have a list of additional models that are built by separate
|
|
|
-# makefiles, but are intended to be optcharred in with the primary
|
|
|
-# model.
|
|
|
-ifneq ($(AUX_MODELS),)
|
|
|
- UNOPT_AUX_MODELS := $(patsubst %,$(UNOPT)%.egg,$(AUX_MODELS))
|
|
|
- OPT_AUX_MODELS := $(patsubst %,%.egg,$(AUX_MODELS))
|
|
|
-endif
|
|
|
-
|
|
|
-ifneq ($(LODS),)
|
|
|
- # If LODS is set, assume it's a list of models that will be compiled
|
|
|
- # into a single multiple-lod model.
|
|
|
-
|
|
|
- LOD_EGG_FILES := $(patsubst %,$(UNOPT)$(EGG_NAME)-%.egg,$(LODS))
|
|
|
- MODEL_FILES_READ := $(patsubst $(UNOPT)%,%,$(POLY_MODEL_READ))
|
|
|
- MODEL_FILES_WRITE := $(patsubst $(UNOPT)%,%,$(POLY_MODEL_WRITE))
|
|
|
-
|
|
|
- LOD_DF :=
|
|
|
- ifneq ($(LOD_DIST),)
|
|
|
- LOD_DF += -d $(LOD_DIST)
|
|
|
- endif
|
|
|
- ifneq ($(LOD_FADE),)
|
|
|
- LOD_DF += -f $(LOD_FADE)
|
|
|
- endif
|
|
|
-
|
|
|
- # If we're building a multiple-lod model, we might want to consider
|
|
|
- # different TESS options.
|
|
|
- ifneq ($(TESS_LEVELS),)
|
|
|
- TESS_MODELS := $(patsubst %,$(UNOPT)$(EGG_NAME)-%.egg,$(TESS_LEVELS))
|
|
|
- endif
|
|
|
- ifneq ($(QTESS_LEVELS),)
|
|
|
- QTESS_MODELS := $(patsubst %,$(UNOPT)$(EGG_NAME)-%.egg,$(QTESS_LEVELS))
|
|
|
- endif
|
|
|
-
|
|
|
-else
|
|
|
- # Ok, we're not building a multiple-lod model. We're either building
|
|
|
- # several distinct models, or a single NURBS model.
|
|
|
-
|
|
|
- MODEL_FILES_READ += $(OPT_AUX_MODELS)
|
|
|
- MODEL_FILES_WRITE += $(OPT_AUX_MODELS)
|
|
|
-
|
|
|
- ifneq ($(TESS_LEVELS),)
|
|
|
- # One or more TESS'ed model.
|
|
|
- TESS_MODELS := $(patsubst %,$(UNOPT)$(EGG_NAME)-%.egg,$(TESS_LEVELS))
|
|
|
- MODEL_FILES_READ += $(patsubst $(UNOPT)%,%,$(TESS_MODELS))
|
|
|
- MODEL_FILES_WRITE += $(patsubst $(UNOPT)%,%,$(TESS_MODELS))
|
|
|
- else
|
|
|
- ifneq ($(QTESS_LEVELS),)
|
|
|
- # One or more QTESS'ed model.
|
|
|
- QTESS_MODELS := $(patsubst %,$(UNOPT)$(EGG_NAME)-%.egg,$(QTESS_LEVELS))
|
|
|
- MODEL_FILES_READ += $(patsubst $(UNOPT)%,%,$(QTESS_MODELS))
|
|
|
- MODEL_FILES_WRITE += $(patsubst $(UNOPT)%,%,$(QTESS_MODELS))
|
|
|
- else
|
|
|
- ifneq ($(NURBS_OPTS),)
|
|
|
- # No particular tesselation parameters, but the user still asked for
|
|
|
- # a NURBS file. He must really want to install it.
|
|
|
- MODEL_FILES_READ += $(NURBS_MODEL_READ)
|
|
|
- MODEL_FILES_WRITE += $(NURBS_MODEL_WRITE)
|
|
|
- endif
|
|
|
- endif
|
|
|
- endif
|
|
|
-endif
|
|
|
-
|
|
|
-# Now that we've built up the list of MODEL_FILES, give the user a chance
|
|
|
-# to override it. These are the egg files that get passed through optchar.
|
|
|
-ifneq ($(BUILD_MODELS),)
|
|
|
- MODEL_FILES_READ := $(patsubst %,$(EGG_NAME)-%.egg,$(BUILD_MODELS))
|
|
|
- MODEL_FILES_WRITE := $(patsubst %,$(EGG_NAME)-%.egg,$(BUILD_MODELS))
|
|
|
-endif
|
|
|
-
|
|
|
-# And the user might always have some extra ones.
|
|
|
-ifneq ($(EXTRA_MODELS),)
|
|
|
- MODEL_FILES_READ += $(patsubst %,$(EGG_NAME)-%.egg,$(EXTRA_MODELS))
|
|
|
- MODEL_FILES_WRITE += $(patsubst %,$(EGG_NAME)-%.egg,$(EXTRA_MODELS))
|
|
|
-endif
|
|
|
-
|
|
|
-# If the user specified BUILD2_MODELS, these are files that get passed
|
|
|
-# through optchar the second time (if there is a second optchar pass).
|
|
|
-# Otherwise, we'll infer it as well.
|
|
|
-ifneq ($(BUILD2_MODELS),)
|
|
|
- MODEL2_FILES := $(patsubst %,$(EGG_NAME)-%.egg,$(BUILD2_MODELS))
|
|
|
-else
|
|
|
- MODEL2_FILES := $(MODEL_FILES_READ)
|
|
|
-endif
|
|
|
-
|
|
|
-# Similarly for extras.
|
|
|
-ifneq ($(EXTRA2_MODELS),)
|
|
|
- MODEL2_FILES += $(patsubst %,$(EGG_NAME)-%.egg,$(EXTRA2_MODELS))
|
|
|
-endif
|
|
|
-
|
|
|
-QTESS_RULE = $(UNOPT)$(EGG_NAME)-$(MODEL).egg : $(UNOPT)$(NURBS_MODEL_READ)
|
|
|
-
|
|
|
-# This is largely unnecessary, because of $(TESS_MODELS).
|
|
|
-TESS_RULE = $(UNOPT)$(EGG_NAME)-$(MODEL).egg : $(UNOPT)$(NURBS_MODEL_READ)
|
|
|
-
|
|
|
-
|
|
|
-BLEND_RULE = $(UNOPT2)$(CHAN_FILE_PREFIX)$(word 1,$(ANIM))-$(word 2,$(ANIM))$(word 3,$(ANIM))$(CHAN_FILE_SUFFIX).egg : $(patsubst %,$(UNOPT2)$(CHAN_FILE_PREFIX)%$(CHAN_FILE_SUFFIX).egg,$(word 1,$(ANIM)) $(word 2,$(ANIM)))
|
|
|
-
|
|
|
-
|
|
|
-ifneq ($(COLLAPSED_ANIM),)
|
|
|
- COLLAPSED_CHAN_FILE = $(EGG_NAME)-$(COLLAPSED_ANIM).egg
|
|
|
- ifneq ($(OPTCHAR_OPTS),)
|
|
|
- OPTCHAR_OPTS += -c $(COLLAPSED_CHAN_FILE)
|
|
|
- endif
|
|
|
- OPT_MODEL_FILES = $(patsubst %,$(UNOPT2)%,$(MODEL_FILES_READ)
|
|
|
- OPT_CHAN_FILES = $(COLLAPSED_CHAN_FILE))
|
|
|
- OPT2_MODEL_FILES = $(MODEL2_FILES)
|
|
|
- OPT2_CHAN_FILES = $(COLLAPSED_CHAN_FILE)
|
|
|
-else
|
|
|
- OPT_MODEL_FILES = $(patsubst %,$(UNOPT2)%,$(MODEL_FILES_READ))
|
|
|
- OPT_CHAN_FILES = $(patsubst %,$(UNOPT2)%,$(CHAN_FILES))
|
|
|
- OPT2_MODEL_FILES = $(MODEL2_FILES)
|
|
|
- OPT2_CHAN_FILES = $(CHAN2_FILES)
|
|
|
-endif
|
|
|
-OPT_EGG_FILES = $(OPT_MODEL_FILES) $(OPT_CHAN_FILES)
|
|
|
-OPT2_EGG_FILES = $(OPT2_MODEL_FILES) $(OPT2_CHAN_FILES)
|
|
|
-
|
|
|
-UNOPT2_EGG_FILES = $(patsubst %,$(UNOPT2)%,$(OPT2_EGG_FILES))
|
|
|
-
|
|
|
-ifneq ($(INSTALL_MODELS),)
|
|
|
- # If the user gave us a custom list of eggs to install, respect it. These
|
|
|
- # are the egg files--models, in this case--that get converted to pfb's
|
|
|
- # or whatever.
|
|
|
- INSTALL_MODEL_FILES := $(patsubst %,$(EGG_NAME)-%.egg,$(INSTALL_MODELS))
|
|
|
-else
|
|
|
- # Otherwise, infer it.
|
|
|
- INSTALL_MODEL_FILES := $(OPT2_MODEL_FILES)
|
|
|
-endif
|
|
|
-ifneq ($(INSTALL_ANIMS),)
|
|
|
- # Same story with the anims.
|
|
|
- INSTALL_CHAN_FILES := $(patsubst %,$(CHAN_FILE_PREFIX)%.egg,$(INSTALL_ANIMS))
|
|
|
-else
|
|
|
- # Otherwise, infer it.
|
|
|
- INSTALL_CHAN_FILES := $(OPT2_CHAN_FILES)
|
|
|
-endif
|
|
|
-INSTALL_EGG_FILES = $(INSTALL_MODEL_FILES) $(INSTALL_CHAN_FILES)
|
|
|
-
|
|
|
-PAL_MODEL_FILES := $(patsubst %,$(PAL_EGG_DIR)/%,$(INSTALL_MODEL_FILES))
|
|
|
-
|
|
|
-INSTALL_INST_MODEL_FILES := $(patsubst %.egg,$(INSTALL_DIR)/%.$(INST),$(INSTALL_MODEL_FILES))
|
|
|
-INSTALL_INST_CHAN_FILES := $(patsubst %.egg,$(INSTALL_DIR)/%.$(INST),$(INSTALL_CHAN_FILES))
|
|
|
-INSTALL_INST_FILES = $(INSTALL_INST_MODEL_FILES) $(INSTALL_INST_CHAN_FILES)
|
|
|
-
|
|
|
-ifneq ($(INSTALL_MAPS),)
|
|
|
- EXTRA_INSTALL_TARGET := install-maps
|
|
|
- EXTRA_UNINSTALL_TARGET := uninstall-maps
|
|
|
-endif
|
|
|
-
|
|
|
-UNOPT_MODEL_FILES_READ := $(patsubst %,$(UNOPT)%,$(MODEL_FILES_READ))
|
|
|
-UNOPT_MODEL_FILES_WRITE := $(patsubst %,$(UNOPT)%,$(MODEL_FILES_WRITE))
|
|
|
-UNOPT_CHAN_FILES := $(patsubst %,$(UNOPT)%,$(CHAN_FILES))
|
|
|
-UNOPT_EGG_FILES_READ := $(UNOPT_MODEL_FILES_READ) $(UNOPT_CHAN_FILES)
|
|
|
-UNOPT_EGG_FILES_WRITE := $(UNOPT_MODEL_FILES_WRITE) $(UNOPT_CHAN_FILES)
|
|
|
-
|
|
|
-.PHONY: egg pfb all_dirs check-palette
|
|
|
-.PHONY: install-maps uninstall-maps
|
|
|
-.PHONY: realinstall uninstall clean cleanall
|
|
|
-.PHONY: $(addprefix uninstall-,$(INSTALL_INST_FILES))
|
|
|
-
|
|
|
-egg: $(UNOPT) all_dirs $(INSTALL_EGG_FILES)
|
|
|
-pfb: $(UNOPT) all_dirs check-palette $(INSTALL_INST_FILES) $(EXTRA_INSTALL_TARGET)
|
|
|
-all_dirs: maps $(INSTALL_DIR) $(UNOPT) $(UNOPT2)
|
|
|
-
|
|
|
-ifneq ($(PALETTE_NAME),)
|
|
|
-all_dirs: $(PAL_EGG_DIR)
|
|
|
-endif
|
|
|
-
|
|
|
-realinstall: pfb
|
|
|
-uninstall: $(addprefix uninstall-,$(INSTALL_INST_FILES)) $(EXTRA_UNINSTALL_TARGET)
|
|
|
-$(addprefix uninstall-,$(INSTALL_INST_FILES)) : uninstall-% :
|
|
|
- rm -f $(patsubst uninstall-%,%,$@)
|
|
|
-
|
|
|
-clean:
|
|
|
- rm -f $(sort $(OPT_EGG_FILES) $(LOD_EGG_FILES) $(INSTALL_EGG_FILES))
|
|
|
- rm -f $(sort $(UNOPT_EGG_FILES_READ) $(UNOPT_EGG_FILES_WRITE) $(UNOPT)$(NURBS_MODEL_READ) $(UNOPT)$(NURBS_MODEL_WRITE))
|
|
|
- rm -f $(EXTRA_DIRT) maps/*
|
|
|
-ifneq ($(TX_WIRE_FILE),)
|
|
|
- rm -f $(UNOPT)$(PRETX_EGG_FILE) $(UNOPT)$(TX_EGG_FILE)
|
|
|
-endif
|
|
|
-ifneq ($(OPTCHAR2_OPTS),)
|
|
|
- rm -f $(OPT2_EGG_FILES)
|
|
|
- rm -f $(UNOPT2_EGG_FILES)
|
|
|
-endif
|
|
|
-
|
|
|
-cleanall: clean
|
|
|
-
|
|
|
-$(INSTALL_DIR):
|
|
|
- mkdir -p $(INSTALL_DIR)
|
|
|
-
|
|
|
-ifneq ($(LODS),)
|
|
|
-# Make the unoptimized multiple-lod file
|
|
|
-$(UNOPT)$(POLY_MODEL_WRITE) : $(LOD_EGG_FILES)
|
|
|
- egg-lod $(LOD_OPTS) $(LOD_DF) -o $@ $(patsubst %,%$(comma)$(CHAR_TOP_NODE),$< $^)
|
|
|
-else
|
|
|
- ifneq ($(POLY_OPTS),)
|
|
|
- # Make the unoptimized model file
|
|
|
-
|
|
|
- ifeq ($(TX_WIRE_FILE),)
|
|
|
- # Make the poly file the normal way, directly.
|
|
|
-$(UNOPT)$(POLY_MODEL_WRITE) : $(WIRE_FILE)
|
|
|
- $(MAKE_POLY_MODEL)
|
|
|
-
|
|
|
- else
|
|
|
- # Make the poly file via the TX_WIRE_FILE.
|
|
|
-$(UNOPT)$(TX_EGG_FILE) : $(TX_WIRE_FILE)
|
|
|
- $(MAKE_TX_MODEL)
|
|
|
-$(UNOPT)$(PRETX_EGG_FILE) : $(WIRE_FILE)
|
|
|
- $(MAKE_POLY_MODEL)
|
|
|
-$(UNOPT)$(POLY_MODEL_WRITE) : $(UNOPT)$(PRETX_EGG_FILE) $(UNOPT)$(TX_EGG_FILE)
|
|
|
- $(EGG_REPLACE) -o $@ $^
|
|
|
- endif
|
|
|
-
|
|
|
- endif
|
|
|
-endif
|
|
|
-
|
|
|
-ifneq ($(NURBS_OPTS),)
|
|
|
-# Make the nurbs model file
|
|
|
-
|
|
|
- ifeq ($(TX_WIRE_FILE),)
|
|
|
- # Make the nurbs file the normal way, directly.
|
|
|
-$(UNOPT)$(NURBS_MODEL_WRITE) : $(WIRE_FILE)
|
|
|
- $(MAKE_NURBS_MODEL)
|
|
|
-
|
|
|
- else
|
|
|
- # Make the nurbs file via the TX_WIRE_FILE.
|
|
|
-$(UNOPT)$(TX_EGG_FILE) : $(TX_WIRE_FILE)
|
|
|
- $(MAKE_TX_MODEL)
|
|
|
-$(UNOPT)$(PRETX_EGG_FILE) : $(WIRE_FILE)
|
|
|
- $(MAKE_NURBS_MODEL)
|
|
|
-$(UNOPT)$(NURBS_MODEL_WRITE) : $(UNOPT)$(PRETX_EGG_FILE) $(UNOPT)$(TX_EGG_FILE)
|
|
|
- $(EGG_REPLACE) -o $@ $^
|
|
|
- endif
|
|
|
-
|
|
|
-endif
|
|
|
-
|
|
|
-# Make the tesselated files.
|
|
|
-ifneq ($(TESS_MODELS),)
|
|
|
-$(TESS_MODELS) : $(UNOPT)%.egg : %.tess $(UNOPT)$(NURBS_MODEL_READ)
|
|
|
- $(TESS) $(UNOPT)$(NURBS_MODEL_READ) $< >$@
|
|
|
-endif
|
|
|
-
|
|
|
-# Make the tesselated files.
|
|
|
-ifneq ($(QTESS_MODELS),)
|
|
|
-$(QTESS_MODELS) : $(UNOPT)%.egg : %.qtess $(UNOPT)$(NURBS_MODEL_READ)
|
|
|
- $(QTESS) -iq $< -o $@ $(UNOPT)$(NURBS_MODEL_READ)
|
|
|
-endif
|
|
|
-
|
|
|
-# Make the auxiliary models, model files whose build commands are
|
|
|
-# handled in a separate makefile.
|
|
|
-ifneq ($(UNOPT_AUX_MODELS),)
|
|
|
-$(UNOPT_AUX_MODELS) : $(UNOPT)%.egg : Makefile.%
|
|
|
- $(MAKE) -f $< $@
|
|
|
-endif
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-ifneq ($(OPTCHAR_OPTS),)
|
|
|
-# Make the optimized files.
|
|
|
-$(OPT_EGG_FILES) : $(UNOPT_EGG_FILES_READ)
|
|
|
- egg-optchar -d $(UNOPT2_NAME) $(OPTCHAR_OPTS) $^
|
|
|
-else
|
|
|
- ifneq ($(COLLAPSED_CHAN_FILE),)
|
|
|
- # Ok, we're not optcharing, but we do need to collapse some chan files.
|
|
|
-$(COLLAPSED_CHAN_FILE) : $(CHAN_FILES)
|
|
|
- egg-optchar -c $(COLLAPSED_CHAN_FILE) $(CHAN_FILES)
|
|
|
- endif
|
|
|
-endif
|
|
|
-
|
|
|
-ifneq ($(OPTCHAR2_OPTS),)
|
|
|
-# Make the optimized files again.
|
|
|
-$(OPT2_EGG_FILES) : $(UNOPT2_EGG_FILES)
|
|
|
- egg-optchar -d . $(OPTCHAR2_OPTS) $^
|
|
|
-endif
|
|
|
-
|
|
|
-ifneq ($(PALETTE_NAME),)
|
|
|
- # Palettize the files as we install them.
|
|
|
-PT_FILES := $(patsubst %.egg,%.pt,$(INSTALL_MODEL_FILES))
|
|
|
-$(PT_FILES) : %.pt : %.egg
|
|
|
- touch $@
|
|
|
-
|
|
|
-# Attempt to regularize the cwd.
|
|
|
-DIRNAME=$(notdir $(shell pwd))
|
|
|
-PWD=$(CHAR_BUILD_DIR)/$(DIRNAME)
|
|
|
-
|
|
|
-$(PAL_MODEL_FILES) : $(PT_FILES)
|
|
|
- $(EGG_PALETTIZE) -t -de $(PAL_EGG_DIR) -dm $(INSTALL_ROOT)/maps $(PALETTIZE_OPTS) $(TEXATTRIB_DIR)/$(PALETTE_NAME).txa $(patsubst %.pt,$(PWD)/%.egg,$^)
|
|
|
-
|
|
|
-$(INSTALL_INST_MODEL_FILES) : $(INSTALL_DIR)/%.$(INST) : $(PAL_EGG_DIR)/%.egg
|
|
|
- $(INSTALL_EGG_ACTION)
|
|
|
-
|
|
|
-else
|
|
|
- # Don't palettize.
|
|
|
-$(INSTALL_INST_MODEL_FILES) : $(INSTALL_DIR)/%.$(INST) : %.egg
|
|
|
- $(INSTALL_EGG_ACTION)
|
|
|
-endif
|
|
|
-
|
|
|
-$(INSTALL_INST_CHAN_FILES) : $(INSTALL_DIR)/%.$(INST) : %.egg
|
|
|
- $(INSTALL_EGG_ACTION)
|
|
|
-
|
|
|
-$(PAL_EGG_DIR):
|
|
|
- mkdir $(PAL_EGG_DIR)
|
|
|
-
|
|
|
-maps:
|
|
|
- mkdir maps
|
|
|
-
|
|
|
-ifneq ($(UNOPT),)
|
|
|
-$(UNOPT):
|
|
|
- mkdir $(UNOPT)
|
|
|
- ln -s ../maps $(UNOPT)maps
|
|
|
-endif
|
|
|
-
|
|
|
-ifneq ($(UNOPT2),)
|
|
|
-$(UNOPT2):
|
|
|
- mkdir $(UNOPT2)
|
|
|
- ln -s ../maps $(UNOPT2)maps
|
|
|
-endif
|
|
|
-
|
|
|
-ifneq ($(PALETTE_NAME),)
|
|
|
-check-palette: $(TEXATTRIB_DIR)/$(PALETTE_NAME).pi
|
|
|
-$(TEXATTRIB_DIR)/$(PALETTE_NAME).pi : $(TEXATTRIB_DIR)/$(PALETTE_NAME).txa
|
|
|
- $(EGG_PALETTIZE) -t $(PALETTIZE_OPTS) $<
|
|
|
-$(TEXATTRIB_DIR)/$(PALETTE_NAME).txa :
|
|
|
- @echo $@
|
|
|
-else
|
|
|
-check-palette:
|
|
|
-endif
|
|
|
-
|
|
|
-show-chan-files:
|
|
|
- @echo CHAN_DIR is $(CHAN_DIR)
|
|
|
- @echo CHAN_PATTERN is $(CHAN_PATTERN)
|
|
|
- @echo CHAN_FILES is $(CHAN_FILES)
|
|
|
- @echo FIND_CHAN_FILES is $(FIND_CHAN_FILES)
|
|
|
-
|
|
|
-show-wire-files:
|
|
|
- @echo WIRE_DIR is $(WIRE_DIR)
|
|
|
- @echo WIRE_PATTERN is $(WIRE_PATTERN)
|
|
|
- @echo WIRE_FILE is $(WIRE_FILE)
|
|
|
- @echo TX_WIRE_DIR is $(TX_WIRE_DIR)
|
|
|
- @echo TX_WIRE_PATTERN is $(TX_WIRE_PATTERN)
|
|
|
- @echo TX_WIRE_FILE is $(TX_WIRE_FILE)
|
|
|
-
|
|
|
-show-lods:
|
|
|
- @echo LODS is $(LODS)
|
|
|
- @echo LOD_EGG_FILES is $(LOD_EGG_FILES)
|
|
|
-
|
|
|
-show-models:
|
|
|
- @echo NURBS_MODEL_READ is $(NURBS_MODEL_READ)
|
|
|
- @echo NURBS_MODEL_WRITE is $(NURBS_MODEL_WRITE)
|
|
|
- @echo POLY_MODEL_READ is $(POLY_MODEL_READ)
|
|
|
- @echo POLY_MODEL_WRITE is $(POLY_MODEL_WRITE)
|
|
|
- @echo MODEL_FILES_READ is $(MODEL_FILES_READ)
|
|
|
- @echo MODEL_FILES_WRITE is $(MODEL_FILES_WRITE)
|
|
|
- @echo OPT_EGG_FILES is $(OPT_EGG_FILES)
|
|
|
- @echo UNOPT_EGG_FILES_READ is $(UNOPT_EGG_FILES_READ)
|
|
|
- @echo UNOPT_EGG_FILES_WRITE is $(UNOPT_EGG_FILES_WRITE)
|
|
|
- @echo INSTALL_MODEL_FILES is $(INSTALL_MODEL_FILES)
|
|
|
- @echo INSTALL_INST_FILES is $(INSTALL_INST_FILES)
|
|
|
- @echo PAL_MODEL_FILES is $(PAL_MODEL_FILES)
|
|
|
- @echo PT_FILES is $(PT_FILES)
|
|
|
- @echo INSTALL_CHAN_FILES is $(INSTALL_CHAN_FILES)
|
|
|
- @echo .txa file is $(TEXATTRIB_DIR)/$(PALETTE_NAME).txa
|