| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386 |
- #
- # Command & Conquer Red Alert(tm)
- # Copyright 2025 Electronic Arts Inc.
- #
- # This program is free software: you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation, either version 3 of the License, or
- # (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
- #
- # Size of the program shape buffer (passed to MAKESHPS.EXE)
- SHAPEBUFFSIZE = 20000
- # Default paths to use
- ROOTCD = v:\projects\c&c0\cstrike2\cd\\
- ROOTDIR = ..\\
- MAPDIR = ..\\
- ROOTCODEDIR = .\\
- ABSROOT = ..\\
- WAVDIR = f:\projects\c&c0\audio\amingame\\
- SCOREDIR = f:\projects\c&c0\audio\amingame\scores\\
- VQADIR = f:\projects\c&c0\art\movies\\
- LANGDIR =
- INGAMEDIR = ingame
- TEMPDIR = s:
- # Override paths
- !if $d(GERMAN)
- ROOTCD = v:\projects\c&c0\cstrike2\cdger\\
- ROOTDIR = ..\\
- MAPDIR = ..\ger
- ROOTCODEDIR = .\\
- ABSROOT = ..\\
- WAVDIR = f:\projects\c&c0\audio\amingame\\
- LANGDIR = \german
- INGAMEDIR = ingamegr
- #VQADIR = s:t\\
- VQADIR = t:movies\\
- TEMPDIR = s:
- !endif
- !if $d(FRENCH)
- ROOTCD = v:\projects\c&c0\cstrike2\cdfre\\
- ROOTDIR = ..\\
- MAPDIR = ..\fre
- ROOTCODEDIR = .\\
- ABSROOT = ..\\
- WAVDIR = f:\projects\c&c0\audio\amingame\
- LANGDIR = \french
- INGAMEDIR=ingamefr
- VQADIR = t:movies\\
- TEMPDIR = s:
- !endif
- # Directory where temporary mixfiles can be stored.
- !if $d(TEMP_MIX_DIR)
- TEMP_MIX_DIR = $(TEMP_MIX_DIR)
- !else
- TEMP_MIX_DIR = $(TEMPDIR)t\m
- !endif
- !if $d(CPS)
- TEMP_CPS_DIR = $(CPS)
- !else
- TEMP_CPS_DIR = $(TEMPDIR)t
- !endif
- #.path.a6a = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- #.path.a6j = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- #.path.a8 = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- #.path.a80 = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- #.path.a81 = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- #.path.a82 = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- #.path.a83 = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- #.path.a84 = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- #.path.a8a = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- #.path.a8j = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- .path.a6 = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- .path.anm = $(ROOTDIR)art\$(INGAMEDIR)\\ # Raw animation file
- .path.ash = .\\ # Autogenerated assembly header file
- .path.asm = .\\ # Raw assembly file
- .path.aud = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- .path.c = .\\ # Raw C file
- .path.cd1 = $(ROOTCD)CD4\\ # CD #1 (Allies)
- .path.cd2 = $(ROOTCD)CD2\\ # CD #1 (Soviet)
- .path.cpp = .\\ # Raw C++ file
- .path.cps = $(TEMP_CPS_DIR)\\ # Compressed art
- .path.dat = $(TEMP_CPS_DIR)\\ # Generic data
- .path.des = $(TEMP_CPS_DIR)\\ # Desert icons
- .path.dip = $(TEMP_CPS_DIR)\\ # Generic compressed text (obsolete)
- .path.eng = $(TEMP_CPS_DIR)\\ # English compressed text
- .path.exe = $(ROOTDIR)run\\ # Executable (relative path from OBJ directory)
- .path.fin = $(ROOTDIR)art\ingame\fin\\ # Finale source animation
- .path.fnt = $(TEMP_CPS_DIR)\\ # Font (compressed)
- .path.foc = $(ROOTDIR)audio\french\\ # French digitized voices
- .path.fre = $(TEMP_CPS_DIR)\\ # French compressed text
- .path.gdi = $(TEMP_CPS_DIR)\\ # Good guy compressed files
- .path.ger = $(TEMP_CPS_DIR)\\ # German compressed text
- .path.goc = $(ROOTDIR)audio\german\\ # German digitized voices
- .path.h = .\\ # C header file
- .path.hi = $(TEMP_CPS_DIR)\\ # Shape file (processed)
- .path.hnt = $(TEMP_CPS_DIR)\\ # Font (compressed)
- .path.i = .\\ # Assembly header
- .path.icn = $(TEMP_CPS_DIR)\\ # Icon file (compressed)
- .path.ini = $(MAPDIR)maps\\ # INI control files
- .path.int = $(TEMP_CPS_DIR)\\ # Interior icons
- .path.j6 = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- .path.jp = $(TEMP_CPS_DIR)\\ # Dinosaur compressed files
- .path.jun = $(TEMP_CPS_DIR)\\ # Jungle icons
- .path.juv = $(TEMP_CPS_DIR)\\ # Juvenile sound effects.
- .path.lbm = $(ROOTDIR)art\ingame\\ # Source art (uncompressed)
- .path.lnt = $(TEMP_CPS_DIR)\\ # Font (compressed)
- .path.low = $(TEMP_CPS_DIR)\\ # Shape file (processed)
- .path.lut = $(TEMP_CPS_DIR)\\ # Look up tables
- .path.mak = .\\ # Shape making control file
- .path.map = $(TEMP_CPS_DIR)\\ # Icon map data file
- .path.mid = $(ROOTDIR)audio\mid\\ # Midi file
- .path.mix = $(TEMP_MIX_DIR)\\ # Mix-file location.
- .path.mpr = $(MAPDIR)maps\\ # Multiplayer scenario files
- .path.mrf = $(TEMP_CPS_DIR)\\ # Palette morph data files
- .path.nod = $(TEMP_CPS_DIR)\\ # Bad guy compressed files
- .path.o = obj\\ # Overlay object file
- .path.obj = obj\\ # Object file
- .path.out = .\\ # Temporary parser file.
- .path.pak = $(ROOTDIR)run\\ # Packed file
- .path.pal = $(TEMP_CPS_DIR)\\ # Palette file (processed)
- .path.pcx = $(TEMP_CPS_DIR)\\ #.pcx files
- .path.pkt = $(MAPDIR)maps\\ # Scenario grouping control files
- .path.r00 = $(TEMP_CPS_DIR)\\ # Infantry response.
- .path.r01 = $(TEMP_CPS_DIR)\\ # Infantry response.
- .path.r02 = $(TEMP_CPS_DIR)\\ # Infantry response.
- .path.r03 = $(TEMP_CPS_DIR)\\ # Infantry response.
- .path.shp = $(TEMP_CPS_DIR)\\ # Shape file (processed)
- .path.sno = $(TEMP_CPS_DIR)\\ # Snow icons
- .path.sym = .\\ # Precompiled header symbol file.
- .path.tbl = $(TEMP_CPS_DIR)\\ # Remap table file.
- .path.tem = $(TEMP_CPS_DIR)\\ # Temperate icons
- .path.txt = $(ROOTDIR)code\eng\\ # Default location for text files.
- .path.v00 = $(TEMP_CPS_DIR)\\ # Infantry response.
- .path.v01 = $(TEMP_CPS_DIR)\\ # Infantry response.
- .path.v02 = $(TEMP_CPS_DIR)\\ # Infantry response.
- .path.v03 = $(TEMP_CPS_DIR)\\ # Infantry response.
- .path.v16 = $(TEMP_CPS_DIR)\\ # Game formatted audio data
- .path.vqa = $(VQADIR)vq$(LANGDIR)\\ # VQA movie files location.
- .path.vqp = $(VQADIR)vq$(LANGDIR)\\ # VQA Movie Interpolated palette files
- !if $d(FRENCH)
- .path.vqa = $(VQADIR)vq\french\\ # VQA movie files location.
- .path.vqp = $(VQADIR)vq\french\\ # VQA Movie Interpolated palette files
- !endif
- .path.wav = $(WAVDIR) # Digitized sample file (generic)
- .path.win = $(TEMP_CPS_DIR)\\ # Winter icons
- .path.wsa = $(TEMP_CPS_DIR)\\ # Processed animation file
- .path.wv = $(ROOTDIR)audio\wv\\ # Digitized sample file (generic)
- .path.xmi = $(ROOTDIR)audio\xmi\\ # MT-32 midi scores
- ##########################################################################
- # Rules
- #
- # Rule for converting anim files.
- #
- .anm.wsa:
- utils\animate $*.anm $(.path.anm)$&.lbm $(.path.wsa)$&.wsa -l -f -p
- #
- # Rule for converting art files.
- #
- .lbm.cps:
- utils\wwcomp $*.lbm $(.path.cps)$&.cps -ex -i
- #
- # Rule for converting outtake first frame art files.
- #
- {$(.path.lbm)outtake}.lbm.cps:
- utils\wwcomp $*.lbm $(.path.cps)$&.cps -ex
- {$(.path.anm)outtake}.anm.wsa:
- utils\animate $*.anm $(.path.anm)outtake\$&.lbm $(.path.wsa)$&.wsa -l -f -p
- {$(.path.anm)score}.anm.wsa:
- utils\animate $*.anm $(.path.wsa)$&.wsa -p
- #########################################################
- # Rule for creating palette files.
- #
- {$(.path.lbm)palettes}.lbm.pal:
- utils\wwcomp $*.lbm -ppal
- copy $&.pal $(.path.pal)$&.pal
- del $&.pal
- {$(.path.lbm)score}.lbm.pal:
- utils\wwcomp $*.lbm -ppal
- copy $&.pal $(.path.pal)$&.pal
- del $&.pal
- #########################################################
- # Rule for creating vehicles.
- {$(.path.anm)units}.anm.shp:
- utils\keyframe $*.anm $(.path.shp)$&.shp -l
- #########################################################
- # Rule for creating buildings.
- {$(.path.anm)building}.anm.shp:
- utils\keyframe $*.anm $(.path.shp)$&.shp -l
- #########################################################
- # Rule for creating misc shape animations.
- {$(.path.anm)anim}.anm.shp:
- utils\keyframe $*.anm $(.path.shp)$&.shp -l
- #########################################################
- # Rule for converting font files.
- {$(.path.lbm)fonts}.lbm.fnt:
- echo Creating font file "$&.fnt".
- utils\fontmake $*.lbm -o$(.path.fnt)$&.fnt
- {$(.path.lbm)hires}.lbm.hnt:
- echo Creating hi-res font file "$&.fnt".
- utils\fontmake $*.lbm -o$(.path.hnt)$&.hnt
- {$(.path.lbm)hires}.lbm.fnt:
- echo Creating lo-res font file "$&.fnt".
- utils\fontmake $*.lbm -o$(.path.hnt)$&.fnt
- {$(.path.lbm)lores}.lbm.lnt:
- echo Creating lo-res font file "$&.fnt".
- utils\fontmake $*.lbm -o$(.path.lnt)$&.lnt
- {$(.path.lbm)lores}.lbm.fnt:
- echo Creating lo-res font file "$&.fnt".
- utils\fontmake $*.lbm -o$(.path.lnt)$&.fnt
- #########################################################
- # Rules for creating overlay files.
- {$(.path.lbm)overlay}.lbm.cps:
- utils\wwcomp $*.lbm $(.path.cps)$&.cps
- {$(.path.anm)overlay}.anm.shp:
- utils\keyframe $*.anm $(.path.shp)$&.shp -l
- #########################################################
- # Rules for creating temperate files.
- {$(.path.lbm)temperat}.lbm.tem:
- utils\iconmap -r -w3 -o$(.path.tem)$&.tem $*.lbm
- {$(.path.anm)temperat}.anm.tem:
- utils\keyframe $*.anm $(.path.tem)$&.tem -l
- #########################################################
- # Rules for creating interior files.
- {$(.path.lbm)interior}.lbm.int:
- utils\iconmap -r -w3 -o$(.path.int)$&.int $*.lbm
- {$(.path.anm)interior}.anm.int:
- utils\keyframe $*.anm $(.path.int)$&.int -l
- #########################################################
- # Rules for creating winter files.
- {$(.path.lbm)snow}.lbm.sno:
- utils\iconmap -r -w3 -o$(.path.sno)$&.sno $*.lbm
- {$(.path.anm)snow}.anm.sno:
- utils\keyframe $*.anm $(.path.sno)$&.sno -l
- #########################################################
- # Rules for creating desert files.
- {$(.path.lbm)desert}.lbm.des:
- utils\iconmap -r -w3 -o$(.path.des)$&.des $*.lbm
- {$(.path.anm)desert}.anm.des:
- utils\keyframe $*.anm $(.path.des)$&.des -l
- #########################################################
- # Generic icon file creation.
- .lbm.icn:
- utils\iconmap -r -w3 -o$(.path.icn)$&.icn $*.lbm
- #########################################################
- # Text files.
- {eng}.txt.eng:
- utils\textmake $*.txt $(.path.eng)$&.eng $&.h
- {ger}.txt.ger:
- utils\textmake $*.txt $(.path.ger)$&.ger $&.h
- {fre}.txt.fre:
- utils\textmake $*.txt $(.path.fre)$&.fre $&.h
- #########################################################
- # Score/mapsel files.
- {$(.path.anm)score}.anm.shp:
- utils\keyframe $*.anm $(.path.shp)$&.shp -l
- {$(.path.lbm)score}.lbm.cps:
- utils\wwcomp $*.lbm $(.path.cps)$&.cps -ex -i
- #########################################################
- # Generic shape files.
- #.lbm.shp:
- # utils\makeshps -q $*.lbm $&.mak $(.path.cps)$&.shp $(SHAPEBUFFSIZE)
- {$(.path.anm)generic}.anm.shp:
- utils\keyframe $*.anm $(.path.shp)$&.shp -l
- .c.lob:
- utils\LINT -ml -si2 -sl4 +v $(WWLIB)WWLIB.LNT $*.c >$&.err
- # Generic shape file creation.
- {$(.path.anm)}.anm.shp:
- utils\keyframe $*.anm $(.path.shp)$&.shp -l
- {$(.path.lbm)units}.lbm.cps:
- utils\wwcomp $*.lbm $(.path.cps)$&.cps -ex -i
- ##########################################################
- # Hi-res data files
- #
- {$(.path.anm)hires}.anm.hi:
- utils\keyframe $*.anm $(.path.hi)$&.hi -l
- # Hi-res font files
- {$(.path.lbm)hires}.lbm.fnt:
- echo Creating font file "$&.fnt".
- utils\fontmake $*.lbm -o$(.path.fnt)$&.fnt
- #########################################################
- # Rule for creating low res data files.
- {$(.path.anm)lores}.anm.low:
- utils\keyframe $*.anm $(.path.low)$&.low -l
- {$(.path.lbm)lores}.lbm.cps:
- utils\wwcomp $*.lbm $(.path.cps)$&.cps -ex -i
- #######################################
- # Rules to convert 16 bit audio files.
- {$(SCOREDIR)}.wav.aud:
- utils\audiomak $(SCOREDIR)$&.wav $(.path.aud)$&.aud
- {$(.path.wav)speech$(LANGDIR)}.wav.aud:
- utils\audiomak $(.path.wav)speech$(LANGDIR)\$&.wav $(.path.aud)$&.aud
- {$(.path.wav)sfx\tanya$(LANGDIR)}.wav.aud:
- utils\audiomak $(.path.wav)sfx\tanya$(LANGDIR)\$&.wav $(.path.aud)$&.aud
- {$(.path.wav)sfx$(LANGDIR)}.wav.aud:
- utils\audiomak $(.path.wav)sfx$(LANGDIR)\$&.wav $(.path.aud)$&.aud
- {$(.path.wav)sfx\v00$(LANGDIR)}.wav.v00:
- utils\audiomak $(.path.wav)sfx\v00$(LANGDIR)\$&.wav $(.path.aud)$&.v00
- {$(.path.wav)sfx\v01$(LANGDIR)}.wav.v01:
- utils\audiomak $(.path.wav)sfx\v01$(LANGDIR)\$&.wav $(.path.aud)$&.v01
- {$(.path.wav)sfx\v02$(LANGDIR)}.wav.v02:
- utils\audiomak $(.path.wav)sfx\v02$(LANGDIR)\$&.wav $(.path.aud)$&.v02
- {$(.path.wav)sfx\v03$(LANGDIR)}.wav.v03:
- utils\audiomak $(.path.wav)sfx\v03$(LANGDIR)\$&.wav $(.path.aud)$&.v03
- {$(.path.wav)sfx\r00$(LANGDIR)}.wav.r00:
- utils\audiomak $(.path.wav)sfx\r00$(LANGDIR)\$&.wav $(.path.aud)$&.r00
- {$(.path.wav)sfx\r01$(LANGDIR)}.wav.r01:
- utils\audiomak $(.path.wav)sfx\r01$(LANGDIR)\$&.wav $(.path.aud)$&.r01
- {$(.path.wav)sfx\r02$(LANGDIR)}.wav.r02:
- utils\audiomak $(.path.wav)sfx\r02$(LANGDIR)\$&.wav $(.path.aud)$&.r02
- {$(.path.wav)sfx\r03$(LANGDIR)}.wav.r03:
- utils\audiomak $(.path.wav)sfx\r03$(LANGDIR)\$&.wav $(.path.aud)$&.r03
|