117 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
#
 | 
						|
#	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/>.
 | 
						|
#
 | 
						|
 | 
						|
.AUTODEPEND
 | 
						|
 | 
						|
OBJECTS = audiomak.obj scode.obj
 | 
						|
 | 
						|
.cpp.obj:
 | 
						|
	bcc {$*.cpp }
 | 
						|
 | 
						|
.asm.obj:
 | 
						|
	tasm $<,$&.obj
 | 
						|
	
 | 
						|
audiomak.exe: turboc.cfg tasm.cfg tlink.cfg $(OBJECTS)
 | 
						|
	tlink @&&!
 | 
						|
	c0l.obj $(OBJECTS)
 | 
						|
	audiomak.exe
 | 
						|
	audiomak.map
 | 
						|
	CL.LIB MATHL.LIB EMU.LIB
 | 
						|
!
 | 
						|
 | 
						|
 | 
						|
####################################################################
 | 
						|
# Creates the TURBOC configuration file (also affects CPP.EXE)
 | 
						|
turboc.cfg: makefile
 | 
						|
	copy &&!
 | 
						|
 -v					# Debugging output.
 | 
						|
 -y
 | 
						|
 -Vt					# Virtual table pointer comes at end of class members (NEVER CHANGE).
 | 
						|
 -Vb-					# Always near pointer to virtual table.
 | 
						|
 -a-					# Structures are packed (not byte aligned).
 | 
						|
 -b-					# Enums as small as possible.
 | 
						|
 -3				   # Enable 386 instructions.
 | 
						|
 -ml					# Large model.
 | 
						|
 -C-					# Don't allow nested comments (DON'T CHANGE THIS).
 | 
						|
 -c					# Just compile -- don't link.
 | 
						|
 -Jg					# Template instances are merged to avoid duplicates.
 | 
						|
 -Id:\bc4\include	# Header search path.
 | 
						|
 -P-					# If extension = .CPP then compile as C++, otherwise treat as C.
 | 
						|
 -w					# Enable all warnings.
 | 
						|
# -w!					# Treat all warnings as errors.
 | 
						|
 -X-					# Turn on autodependency checking.
 | 
						|
 -RT					# Enable run time type itentification.
 | 
						|
 -x					# Enable exception handling code.
 | 
						|
 -k-					# Optimize: Use abbreviated stack frame.
 | 
						|
 -vi					# Turns "inline" expansion on.
 | 
						|
 -Z					# Optimize: Supress redundant register loads.
 | 
						|
 -Oi					# Optimize: Helper functions expanded inline.
 | 
						|
 -O					# Optimize: Jump optimization.
 | 
						|
 -Op					# Optimize: Copy propagation to supress reloads.
 | 
						|
 -Ov					# Optimize: Speeds array indexing inside of loops.
 | 
						|
 -Og					# Optimize: Eliminates common subexpressions (globally).
 | 
						|
 -Oc					# Optimize: Eliminates common subexpressions (locally).
 | 
						|
 -Ol					# Optimize: Use REP instruction where possible.
 | 
						|
 -d					# Optimize: Duplicate strings are merged.
 | 
						|
 -r					# Try to put auto variables into registers.
 | 
						|
 -V					# Use smart virtual tables (only usable with BCC and TLINK).
 | 
						|
 -dc-					# Keep strings in the data segment (DON'T CHANGE THIS).
 | 
						|
 -Ff					# Put very very large objects into the far segment.
 | 
						|
 -K2-					# Treat "char" different from "signed char" or "unsigned char".
 | 
						|
 -Oa					# Optimize: Assumes no pointer aliasing (could cause bugs)!
 | 
						|
 -R-					# Don't include browser data (only used by IDE).
 | 
						|
# -Oe					# Optimize: Global register allocation tracking enabled.
 | 
						|
# -Ob					# Optimize: Dead code elimination.
 | 
						|
# -Om					# Optimize: Remove invariant code from loops.
 | 
						|
# -p					# Pascal calling convention default.
 | 
						|
# -pr					# Regiser calling convention default.
 | 
						|
# -po					# Pass "this" in registers when calling member functions.
 | 
						|
# -f-					# Floating point prohibited.
 | 
						|
# -Yo					# Compile as overlay module.
 | 
						|
# -Ox					# Optimize: Execution speed.
 | 
						|
! turboc.cfg /Q
 | 
						|
 | 
						|
####################################################################
 | 
						|
# Creates TASM config file.
 | 
						|
tasm.cfg: makefile
 | 
						|
	copy &&!
 | 
						|
 /Zi					# Include debug information into object file.
 | 
						|
 /w+ICG
 | 
						|
 /w-PDC
 | 
						|
 /t
 | 
						|
 /w2					# Maximum warning level.
 | 
						|
 /ml 					# Large model.
 | 
						|
 /w+
 | 
						|
 /v
 | 
						|
 /JIDEAL 			# Ideal mode.
 | 
						|
 /JP386N				# Enable 386 instructions.
 | 
						|
 /UT300				# Force compatibility with old TASM.
 | 
						|
! tasm.cfg
 | 
						|
 | 
						|
####################################################################
 | 
						|
# Creates the TLINK.CFG file which implicitly controls linking.
 | 
						|
tlink.cfg: makefile
 | 
						|
	copy &&!
 | 
						|
 /Ld:\bc4\lib
 | 
						|
 /v 
 | 
						|
 /c 
 | 
						|
 /e
 | 
						|
 /Tde 
 | 
						|
! tlink.cfg /Q
 | 
						|
 |