| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267 |
- #
- # 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/>.
- #
- #***************************************************************************
- #** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S **
- #***************************************************************************
- #* *
- #* Project Name : Westwood Library .LIB makefile *
- #* *
- #* File Name : MAKEFILE *
- #* *
- #* Programmer : Julio R. Jerez *
- #* *
- #* Start Date : Jan 26, 1995 *
- #* *
- #* *
- #*-------------------------------------------------------------------------*
- #* *
- #* Required environment variables: *
- #* WIN32LIB = your root WWFLAT path *
- #* WIN32VCS = root directory for wwlib version control archive *
- #* COMPILER = your Watcom installation path *
- #* *
- #* Required changes to makefile: *
- #* LIBS = list of all component libraries *
- #* *
- #* NOTE: For this makefile to work, each library directory MUST have the *
- #* same name as its library. *
- #* *
- #* "make install" installs the library on your drive *
- #* "make update" updates all source files in your slice *
- #* *
- #* To install or update just one library you may type: *
- #* "make -DLIBS=misc.lib install" *
- #* *
- #***************************************************************************
- #---------------------------------------------------------------------------
- # Verify user's environment
- #---------------------------------------------------------------------------
- !ifndef WIN32LIB
- !error WIN32LIB Environment var not configured.
- !endif
- !ifndef WIN32VCS
- !error WIN32VCS Environment var not configured.
- !endif
- !ifndef COMPILER
- !error COMPILER Environment var not configured.
- !endif
- #===========================================================================
- # User-defined section: list each library in this macro
- # NOTE: These are some order dependencies:
- # 1. The directory MISC must always be made first.
- # 2. The directory VIDEO must be made before the SYSTEM directory.
- #===========================================================================
- LIB_NAME = win32lib
- LIB_DIR = $(WIN32LIB)\lib
- !include $(WIN32LIB)\\project.cfg
- #---------------------------------------------------------------------------
- # LIBS macro: a list of all component libraries
- # "make LIBS=xxxx.lib [target]" makes/installs/updates only that library
- #---------------------------------------------------------------------------
- LIBS = \
- audio.lib \
- dipthong.lib \
- drawbuff.lib \
- font.lib \
- iff.lib \
- keyboard.lib \
- mem.lib \
- misc.lib \
- mono.lib \
- palette.lib \
- rawfile.lib \
- tile.lib \
- timer.lib \
- ww_win.lib \
- wsa.lib
- LIB_INSTALL = \
- audio.ins \
- dipthong.ins \
- drawbuff.ins \
- font.ins \
- iff.ins \
- keyboard.ins \
- mem.ins \
- misc.ins \
- mono.ins \
- palette.ins \
- rawfile.ins \
- tile.ins \
- timer.ins \
- ww_win.ins \
- wsa.ins
- LIB_UPDATE = \
- audio.upd \
- dipthong.upd \
- drawbuff.upd \
- font.upd \
- iff.upd \
- keyboard.upd \
- mem.upd \
- misc.upd \
- mono.upd \
- palette.upd \
- rawfile.upd \
- tile.upd \
- timer.upd \
- ww_win.upd \
- wsa.upd
- #===========================================================================
- # Pre-defined section: there should be little need to modify this section.
- #===========================================================================
- #---------------------------------------------------------------------------
- # Path macros: one path for each file type.
- # These paths are used to tell make where to find/put each file type.
- #---------------------------------------------------------------------------
- .path.lib = $(WIN32LIB)\\lib
- #---------------------------------------------------------------------------
- # Tools/commands
- # LIB_CMD: library command
- # LIB_CFG: library configuration file
- # VCS_UPDATE: version control update command; this command should update
- # all relevant files in a given directory with read-only
- # copies from the archive
- #---------------------------------------------------------------------------
- LIB_CMD = tlib
- VCS_UPDATE = update
- #---------------------------------------------------------------------------
- # Default target
- #---------------------------------------------------------------------------
- all: $(LIB_NAME).lib
- #---------------------------------------------------------------------------
- # Build the library
- # The original library is deleted by the librarian
- # Lib objects & -+ commands are constructed by substituting within the
- # $^@ macro (which expands to all target dependents, separated with
- # spaces)
- # Tlib's cfg file is not invoked as a response file.
- # All headers & source files are copied into WWFLAT\SRCDEBUG, for debugging
- #---------------------------------------------------------------------------
- $(LIB_NAME).lib: $(LIBS)
- del $<
- $(LIB_CMD) $< $(LIB_CFG) @&&|
- +$(WIN32LIB)\\lib\\audio.lib &
- +$(WIN32LIB)\\lib\\dipthong.lib &
- +$(WIN32LIB)\\lib\\drawbuff.lib &
- +$(WIN32LIB)\\lib\\font.lib &
- +$(WIN32LIB)\\lib\\iff.lib &
- +$(WIN32LIB)\\lib\\keyboard.lib &
- +$(WIN32LIB)\\lib\\mem.lib &
- +$(WIN32LIB)\\lib\\misc.lib &
- +$(WIN32LIB)\\lib\\mono.lib &
- +$(WIN32LIB)\\lib\\palette.lib &
- +$(WIN32LIB)\\lib\\rawfile.lib &
- +$(WIN32LIB)\\lib\\tile.lib &
- +$(WIN32LIB)\\lib\\timer.lib &
- +$(WIN32LIB)\\lib\\ww_win.lib &
- +$(WIN32LIB)\\lib\\wsa.lib
- |
- #---------------------------------------------------------------------------
- # This construct tells make how to make all component libraries
- # The commands get executed for every item in the macro.
- # The macro $: extracts only the directory name from the macro item.
- #---------------------------------------------------------------------------
- $(LIBS):
- echo Making $^&...
- cd $^&
- make
- cd ..
- #---------------------------------------------------------------------------
- # "make install" installs the library on your drive
- #---------------------------------------------------------------------------
- install: install_dirs $(LIB_INSTALL) .SYMBOLIC
- echo Compiling library...
- wmake
- echo Library installation complete.
- #---------------------------------------------------------------------------
- # At installation time, this target makes all non-library directories
- # This is a dependency for 'install'
- #---------------------------------------------------------------------------
- install_dirs: .SYMBOLIC
- echo Making directories...
- mkdir example
- mkdir include
- mkdir lib
- mkdir srcdebug
- mkdir tools
- cd tools
- copy $(%WWVCS)\tools\vcs.cfg
- $(VCS_UPDATE)
- cd..
- copy $(%WWVCS)\vcs.cfg
- $(VCS_UPDATE)
- cd example
- copy $(%WWVCS)\example\vcs.cfg
- $(VCS_UPDATE)
- cd ..
- #---------------------------------------------------------------------------
- # This target installs all library directories
- # This is a dependency for 'install'
- #---------------------------------------------------------------------------
- $(LIB_INSTALL): .SYMBOLIC
- echo Installing $^&...
- md $^&
- cd $^&
- copy $(%WWVCS)\$^&\vcs.cfg
- $(VCS_UPDATE)
- copy *.h ..\include
- copy *.inc ..\include
- cd ..
- #---------------------------------------------------------------------------
- # "make update" updates all source files in your slice
- #---------------------------------------------------------------------------
- update: $(LIB_UPDATE) .SYMBOLIC
- echo Library updated.
- #---------------------------------------------------------------------------
- # This target updates all library directories
- # This is a dependency for 'updates'
- #---------------------------------------------------------------------------
- $(LIB_UPDATE): .SYMBOLIC
- echo Updating $^&...
- cd $^&
- $(VCS_UPDATE)
- copy *.h ..\include
- copy *.inc ..\include
- cd ..
|