# # 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 . # #*************************************************************************** #** 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 .EXE makefile * #* * #* File Name : MAKEFILE * #* * #* Programmer : Julio R. Jerez * #* * #* Start Date : Jan 20, 1995 * #* * #* Last Update : * #* * #*-------------------------------------------------------------------------* #* * #* 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: * #* PROJ_NAME = name of the executable program you're building * #* PROJ_LIBS = Westwood libraries to link your EXE to * #* OBJECTS = list of objects in your current working directory * #* * #* Optional changes to makefile: * #* PROJ_DIR = full pathname of your working directory * #* .xxx: = full pathname where various file types live * #* * #*************************************************************************** .AUTODEPEND #--------------------------------------------------------------------------- # 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: the user should tailor this section for each project #=========================================================================== #--------------------------------------------------------------------------- # PROJ_NAME = library name # PROJ_DIR = directory containing source & objects #--------------------------------------------------------------------------- PROJ_NAME = test PROJ_DIR = $(WIN32LIB)\drawbuff\$(PROJ_NAME) LIB_DIR = $(WIN32LIB)\lib #--------------------------------------------------------------------------- # Project-dependent variables #--------------------------------------------------------------------------- OBJECTS = \ $(PROJ_NAME).obj CPS_FILES = \ test1.cps \ test2.cps !if 0 PROJ_LIBS = \ drawbuff.lib \ win32lib.lib !else PROJ_LIBS = \ drawbuff.lib \ mem.lib \ misc.lib \ iff.lib \ rawfile.lib \ tile.lib \ font.lib !endif #--------------------------------------------------------------------------- # Path macros: one path for each file type. # These paths are used to tell make where to find/put each file type. #--------------------------------------------------------------------------- .path.asm = $(PROJ_DIR) .path.c = $(PROJ_DIR) .path.cpp = $(PROJ_DIR) .path.h = $(PROJ_DIR) .path.obj = $(PROJ_DIR) .path.lib = $(WIN32LIB)\lib .path.exe = $(PROJ_DIR) #--------------------------------------------------------------------------- # Tools/commands #--------------------------------------------------------------------------- C_CMD = bcc32 CPP_CMD = bcc32 LIB_CMD = tlib LINK_CMD = tlink32 ASM_CMD = tasm32 #--------------------------------------------------------------------------- # Include & library paths # If LIB & INCLUDE are already defined, they are used in addition to the # WWLIB32 lib & include; otherwise, they're constructed from # BCDIR #--------------------------------------------------------------------------- LIBPATH = $(WIN32LIB)\LIB;$(COMPILER)\LIB INCLUDEPATH = $(WIN32LIB)\INCLUDE;$(COMPILER)\INCLUDE !include $(WIN32LIB)\\project.cfg #--------------------------------------------------------------------------- # Implicit rules # Compiler: # ($< = full dependent with path) # Assembler: # output obj's are constructed from .obj: & the $& macro # ($< = full dependent with path) # tasm's cfg file is not invoked as a response file. #--------------------------------------------------------------------------- .c.obj: $(C_CMD) $(CC_CFG) $< .cpp.obj: $(CPP_CMD) $(CC_CFG) $< .asm.obj: $(ASM_CMD) $(ASM_CFG) $< .lbm.cps: $(WIN32LIB)\\TOOLS\WWCOMP $*.lbm $*.cps #--------------------------------------------------------------------------- # Default target #--------------------------------------------------------------------------- all: $(PROJ_NAME).exe $(CPS_FILES) #--------------------------------------------------------------------------- # Build the EXE #--------------------------------------------------------------------------- $(PROJ_NAME).exe: $(OBJECTS) $(PROJ_LIBS) $(LINK_CMD) @&&| $(LINK_CFG) + $(COMPILER)\\LIB\\c0w32.obj+ $(OBJECTS) $<,$* $(PROJ_LIBS) + import32.lib + cw32i.lib $*.def | $(PROJ_LIBS): echo updating base library $^@ cd .. make cd $(PROJ_DIR) #**************************** End of makefile ******************************