123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 |
- #
- # Homeworld Windows interface layer makefile
- #
- #
- # Targets and directories
- #
- Name = Homeworld
- Target = Homeworld
- Link_file = $(Name).lnk
- SrcDir = .
- SrcDir2 = $(%HW_Root)\src\game
- SrcDir3 = $(%HW_Root)\src\Ships
- SrcDir4 = $(%HW_Root)\src\Sigs
- SrcDir5 = $(%HW_Root)\src\Titan
- SrcDir6 = $(%HW_Root)\src\Generated
- SrcDir7 = $(%HW_Root)\src\jpg
- LibDir = $(%HW_Root)\Lib
- TitanLibDir = $(LibDir)\Titan
- BinkLibDir = $(LibDir)\Smacker
- Data = $(%HW_Root)\Data
- KASDirs = $(%HW_Root)\src\SinglePlayer;$(%HW_Root)\src\Tutorials
- #KASSPRoot = $(Data)\Missions\SinglePlayer
- #KASTRoot = $(Data)\Missions\Tutorials
- #KASDirs = $(KASSPRoot)\Mission01;$(KASSPRoot)\Mission02;$(KASSPRoot)\Mission03; &
- # $(KASSPRoot)\Mission04;$(KASSPRoot)\Mission05;$(KASSPRoot)\Mission06; &
- # $(KASSPRoot)\Mission07;$(KASSPRoot)\Mission08;$(KASSPRoot)\Mission09; &
- # $(KASSPRoot)\Mission10;$(KASSPRoot)\Mission11;$(KASSPRoot)\Mission12; &
- # $(KASSPRoot)\Mission13;$(KASSPRoot)\Mission14;$(KASSPRoot)\Mission15; &
- # $(KASSPRoot)\Mission16;$(KASSPRoot)\Mission17;$(KASSPRoot)\Mission18; &
- # $(KASTRoot)\Basic;$(KASTRoot)\Advanced
- SWDefine = -D_WINSOCK_VERSION=1
- #
- # C compiler and Assembler options (Pentium in our case)
- #
- Processor = -G6
- #
- # Default compile and link flags
- #
- Link = link
- LinkFlags0 = /MAP /SUBSYSTEM:WINDOWS,4.0 /NOLOGO /DEBUG /DEBUGTYPE:CV /PDB:NONE
- LinkFlags1 = /MAP /SUBSYSTEM:WINDOWS,4.0 /NOLOGO /DEBUG:NONE /PDB:NONE
- LinkFlags2 = /MAP /SUBSYSTEM:WINDOWS,4.0 /NOLOGO /DEBUG /DEBUGTYPE:CV
- LinkFlags3 = /MAP /SUBSYSTEM:WINDOWS,4.0 /NOLOGO /DEBUG:NONE
- # Check language
- !ifeq %HW_Language HW_French
- Language = HW_French
- !else
- !ifeq %HW_Language HW_German
- Language = HW_German
- !else
- Language = HW_English
- !endif
- !endif
- !ifeq %HW_Demo CGW
- _CCMD = @cl -c -MT -Zp4 -nologo -W2 -DWIN32 -Zl -I$(%HW_Root)\src\win32 -I$(%HW_Root)\src\game -I$(%HW_Root)\src\Ships -I$(%HW_Root)\src\Sigs -I$(%HW_Root)\src\rgl -I$(%HW_Root)\src\Titan -I$(%HW_Root)\src\Titan\inc -I$(%HW_Root)\src\jpg -I$(%HW_Root)\src\rgl\D3D -I$(%HW_Root)\src\rgl\3dfx $(SWDefine) $(Processor) -D$(%HW_Level) -D$(Language) -D$(%USERNAME) -D__MSC__=yes -DCGW
- _CCMDI = @icl -c -MT -Zp4 -nologo -W2 -DWIN32 -Zl -I$(%HW_Root)\src\win32 -I$(%HW_Root)\src\game -I$(%HW_Root)\src\Ships -I$(%HW_Root)\src\Sigs -I$(%HW_Root)\src\rgl -I$(%HW_Root)\src\Titan -I$(%HW_Root)\src\Titan\inc -I$(%HW_Root)\src\jpg -I$(%HW_Root)\src\rgl\D3D -I$(%HW_Root)\src\rgl\3dfx $(SWDefine) $(Processor) -D$(%HW_Level) -D$(Language) -D$(%USERNAME) -D__MSC__=yes -DCGW -Qwr137
- !else
- !ifeq %HW_Demo Downloadable
- _CCMD = @cl -c -MT -Zp4 -nologo -W2 -DWIN32 -Zl -I$(%HW_Root)\src\win32 -I$(%HW_Root)\src\game -I$(%HW_Root)\src\Ships -I$(%HW_Root)\src\Sigs -I$(%HW_Root)\src\rgl -I$(%HW_Root)\src\Titan -I$(%HW_Root)\src\Titan\inc -I$(%HW_Root)\src\jpg -I$(%HW_Root)\src\rgl\D3D -I$(%HW_Root)\src\rgl\3dfx $(SWDefine) $(Processor) -D$(%HW_Level) -D$(Language) -D$(%USERNAME) -D__MSC__=yes -DDownloadable
- _CCMDI = @icl -c -MT -Zp4 -nologo -W2 -DWIN32 -Zl -I$(%HW_Root)\src\win32 -I$(%HW_Root)\src\game -I$(%HW_Root)\src\Ships -I$(%HW_Root)\src\Sigs -I$(%HW_Root)\src\rgl -I$(%HW_Root)\src\Titan -I$(%HW_Root)\src\Titan\inc -I$(%HW_Root)\src\jpg -I$(%HW_Root)\src\rgl\D3D -I$(%HW_Root)\src\rgl\3dfx $(SWDefine) $(Processor) -D$(%HW_Level) -D$(Language) -D$(%USERNAME) -D__MSC__=yes -DDownloadable -Qwr137
- !else
- !ifeq %HW_Demo DLPublicBeta
- _CCMD = @cl -c -MT -Zp4 -nologo -W2 -DWIN32 -Zl -I$(%HW_Root)\src\win32 -I$(%HW_Root)\src\game -I$(%HW_Root)\src\Ships -I$(%HW_Root)\src\Sigs -I$(%HW_Root)\src\rgl -I$(%HW_Root)\src\Titan -I$(%HW_Root)\src\Titan\inc -I$(%HW_Root)\src\jpg -I$(%HW_Root)\src\rgl\D3D -I$(%HW_Root)\src\rgl\3dfx $(SWDefine) $(Processor) -D$(%HW_Level) -D$(Language) -D$(%USERNAME) -D__MSC__=yes -DDLPublicBeta
- _CCMDI = @icl -c -MT -Zp4 -nologo -W2 -DWIN32 -Zl -I$(%HW_Root)\src\win32 -I$(%HW_Root)\src\game -I$(%HW_Root)\src\Ships -I$(%HW_Root)\src\Sigs -I$(%HW_Root)\src\rgl -I$(%HW_Root)\src\Titan -I$(%HW_Root)\src\Titan\inc -I$(%HW_Root)\src\jpg -I$(%HW_Root)\src\rgl\D3D -I$(%HW_Root)\src\rgl\3dfx $(SWDefine) $(Processor) -D$(%HW_Level) -D$(Language) -D$(%USERNAME) -D__MSC__=yes -DDLPublicBeta -Qwr137
- !else
- !ifeq %HW_Demo OEM
- _CCMD = @cl -c -MT -Zp4 -nologo -W2 -DWIN32 -Zl -I$(%HW_Root)\src\win32 -I$(%HW_Root)\src\game -I$(%HW_Root)\src\Ships -I$(%HW_Root)\src\Sigs -I$(%HW_Root)\src\rgl -I$(%HW_Root)\src\Titan -I$(%HW_Root)\src\Titan\inc -I$(%HW_Root)\src\jpg -I$(%HW_Root)\src\rgl\D3D -I$(%HW_Root)\src\rgl\3dfx $(SWDefine) $(Processor) -D$(%HW_Level) -D$(Language) -D$(%USERNAME) -D__MSC__=yes -DOEM
- _CCMDI = @icl -c -MT -Zp4 -nologo -W2 -DWIN32 -Zl -I$(%HW_Root)\src\win32 -I$(%HW_Root)\src\game -I$(%HW_Root)\src\Ships -I$(%HW_Root)\src\Sigs -I$(%HW_Root)\src\rgl -I$(%HW_Root)\src\Titan -I$(%HW_Root)\src\Titan\inc -I$(%HW_Root)\src\jpg -I$(%HW_Root)\src\rgl\D3D -I$(%HW_Root)\src\rgl\3dfx $(SWDefine) $(Processor) -D$(%HW_Level) -D$(Language) -D$(%USERNAME) -D__MSC__=yes -DOEM -Qwr137
- !else
- _CCMD = @cl -c -MT -Zp4 -nologo -W2 -DWIN32 -Zl -I$(%HW_Root)\src\win32 -I$(%HW_Root)\src\game -I$(%HW_Root)\src\Ships -I$(%HW_Root)\src\Sigs -I$(%HW_Root)\src\rgl -I$(%HW_Root)\src\Titan -I$(%HW_Root)\src\Titan\inc -I$(%HW_Root)\src\jpg -I$(%HW_Root)\src\rgl\D3D -I$(%HW_Root)\src\rgl\3dfx $(SWDefine) $(Processor) -D$(%HW_Level) -D$(Language) -D$(%USERNAME) -D__MSC__=yes
- _CCMDI = @icl -c -MT -Zp4 -nologo -W2 -DWIN32 -Zl -I$(%HW_Root)\src\win32 -I$(%HW_Root)\src\game -I$(%HW_Root)\src\Ships -I$(%HW_Root)\src\Sigs -I$(%HW_Root)\src\rgl -I$(%HW_Root)\src\Titan -I$(%HW_Root)\src\Titan\inc -I$(%HW_Root)\src\jpg -I$(%HW_Root)\src\rgl\D3D -I$(%HW_Root)\src\rgl\3dfx $(SWDefine) $(Processor) -D$(%HW_Level) -D$(Language) -D$(%USERNAME) -D__MSC__=yes -Qwr137
- !endif
- !endif
- !endif
- !endif
- #
- # No debug info in externally released .obj files
- #
- !ifeq %HW_External HW_Internal
- CCMD = $(_CCMD)
- CCMDI = $(_CCMDI)
- !else
- CCMD = $(_CCMD) -Zi
- CCMDI = $(_CCMDI) -Zi
- !endif
- # preprocessor used for KAS files
- !ifeq %HW_Demo CGW
- CCPRE = @cl /E -nologo -DCGW
- !else
- !ifeq %HW_Demo Downloadable
- CCPRE = @cl /E -nologo -DDownloadable
- !else
- !ifeq %HW_Demo OEM
- CCPRE = @cl /E -nologo -DOEM
- !else
- CCPRE = @cl /E -nologo
- !endif
- !endif
- !endif
- #
- GLibs = &
- comdlg32.lib user32.lib gdi32.lib advapi32.lib winmm.lib &
- kernel32.lib ole32.lib libcp.lib vfw32.lib dsound.lib libcmt.lib &
- winmm.lib msacm32.lib shell32.lib &
- $(TitanLibDir)\common_w95.lib $(TitanLibDir)\msg_w95.lib &
- $(TitanLibDir)\EasySocket_w95.lib $(TitanLibDir)\crypt_w95.lib $(TitanLibDir)\auth_w95.lib &
- $(BinkLibDir)\binkw32.lib &
- wsock32.lib ddraw.lib $(LibDir)\d3d\dxguid.lib
- Libs = $(GLibs)
- RC = rc /i$(%HW_Root)\src\Game -r
- RES = $(Name).res
- KAS2C = KAS2C
- #
- # Set suffix order
- #
- .EXTENSIONS:
- .EXTENSIONS: . .exe .lib .obj .pch .c .kas .res .rc .sym .map .lnk .cpp
- #
- # C compiler and Assembler options (Pentium in our case)
- #
- Processor = -G6
- #
- # Set debugging/optimization options
- # There are now 3 different build:
- # HW_Debug - uses VC compiler, full debug, no optimizations
- # HW_Interim - uses Intel compiler, full debug, no optimizations
- # HW_anythingelse - uses Intel Compiler, no debug info, optimizations
- # which CCMD<n> to use is determined in the dependency creation script
- #
- CCMD0 = $(CCMD) -Od
- CCMD1 = $(CCMDI) /Ogitb1 /GsF
- CCMD2 = $(CCMDI) /Ogitb1 /GsF
- CCMD0CPP = $(CCMD) -Od /GX /GR
- CCMD1CPP = $(CCMD) -Od /GX /GR
- CCMD2CPP = $(CCMD) -Ot /GX /GR
- !ifeq %HW_Level HW_Debug
- #debug build - VC compiler, debug info
- DependName = Debug.depend
- !ifeq %HW_PDB HW_YESPDB
- LinkFlags = $(LinkFlags2)
- !else
- LinkFlags = $(LinkFlags0)
- !endif
- DestDir = $(%HW_Root)\obj\Debug
- !else # %HW_Level != HW_Debug
- !ifeq %HW_Level HW_Interim
- #interim build - Intel compiler, debug info
- DependName = Interim.depend
- !ifeq %HW_PDB HW_YESPDB
- LinkFlags = $(LinkFlags2)
- !else
- LinkFlags = $(LinkFlags0)
- !endif
- DestDir = $(%HW_Root)\obj\Interim
- !else # %HW_Level != HW_Interim
- #Release build - Intel compiler, no debug info, optimizations for most files.
- DependName = Release.depend
- !ifeq %HW_PDB HW_YESPDB
- LinkFlags = $(LinkFlags2) #$(LinkFlags3)
- !else
- LinkFlags = $(LinkFlags0) #$(LinkFlags1)
- !endif
- DestDir = $(%HW_Root)\obj\Release
- !endif
- !endif
- #
- # List of object files
- #
- Objs =
- !include $(Name).mif
- StatLibs =
- #
- # Implicit make rules
- #
- #.kas: $(KASDirs)
- #.kas: $(Data)\Missions\SinglePlayer\Mission01
- #.kas.c:
- # @$(KAS2C) $? $(SrcDir6)\$^&.c $(SrcDir6)\$^&.h
- #.kas.obj:
- # @$(KAS2C) $? $(SrcDir6)\$^&.c $(SrcDir6)\$^&.h
- # @$(CCMD) -Fo$(DestDir)\$^&.obj $?
- .obj: $(DestDir)
- .c: $(SrcDir);$(SrcDir2);$(SrcDir3);$(SrcDir4);$(SrcDir5);$(SrcDir6);$(SrcDir7)
- .cpp: $(SrcDir);$(SrcDir2);$(SrcDir3);$(SrcDir4);$(SrcDir5);$(SrcDir6);$(SrcDir7)
- .c.obj:
- @$(CCMD) -Fo$(DestDir)\$^&.obj $?
- .cpp.obj:
- @$(CCMD) /GX /GR -Fo$(DestDir)\$^&.obj $?
- .res: $(DestDir)
- .rc: $(SrcDir)
- .rc.res:
- @echo $?
- @$(RC) -fo$(DestDir)\$^&.res $?
- #
- # Convert .map files to .sym files...only useful if using kernel debugger
- #
- #.map: $(DestDir)
- #.sym: $(DestDir)
- #.map.sym:
- # mapsym32 -o $*.sym $?
- #
- # Explicit make rules
- #
- !ifeq %HW_External HW_External
- all: $(DestDir)\$(Target).exe
- !else
- all: $(DestDir)\$(Target).exe rgl.dll
- !endif
- !ifeq %HW_External HW_External
- $(DestDir)\$(Target).exe: $(OBJS) $(DestDir)\$(RES) $(StatLibs) $(DestDir)\$(Link_file)
- @echo Linking...
- @$(Link) $(LinkFlags) @$(DestDir)\$(Link_file)
- @copy $(DestDir)\$(Target).exe $(%HW_Root)\exe\$(Target).exe > NUL:
- @echo $(DestDir)\$(Target).exe built successfully.
- !else
- $(DestDir)\$(Target).exe: $(OBJS) $(DestDir)\$(RES) $(StatLibs) $(DestDir)\$(Link_file) rgl.dll
- @echo Linking...
- @$(Link) $(LinkFlags) @$(DestDir)\$(Link_file)
- @copy $(DestDir)\$(Target).exe $(%HW_Root)\exe\$(Target).exe > NUL:
- @echo $(DestDir)\$(Target).exe built successfully.
- !endif
- $(DestDir)\$(RES): $(Name).rc resource.h
- #
- # Explicit make rule for link file
- # Note: we don't include the .DEF or .RES because there are none yet
- #
- $(DestDir)\$(Link_file): makefile $(Name).mif
- @echo Reconstructing link file
- @del $(DestDir)\$(Link_file) > NUL:
- @echo $(LinkFlags) > $(DestDir)\$(Link_file)
- # @for %i in ($(Objs)) do @echo $(DestDir)\%i >> $(DestDir)\$(Link_file)
- # @for %i in ($(StatLibs)) do @echo Library %i >> $(DestDir)\$(Link_file)
- # @for %i in ($(Libs)) do @echo %i >> $(DestDir)\$(Link_file)
- @perl ..\..\tools\batch\makelnk.pl 0 $(DestDir) $(Link_file) $(Objs)
- @perl ..\..\tools\batch\makelnk.pl 1 $(DestDir) $(Link_file) $(Libs)
- @echo $(DestDir)\$(RES) >> $(DestDir)\$(Link_file)
- @echo -Out:$(DestDir)\$(Target).exe >> $(DestDir)\$(Link_file)
- !ifeq %HW_External HW_External
- # no RGL builds for external use...
- !else
- rgl.dll:
- @echo Making rGL ...
- @cd ..\rgl
- @wmake /s /h
- @copy rgl.dll $(%HW_Root)\exe > NUL:
- @copy rglsw.dll $(%HW_Root)\exe > NUL:
- @copy rgld3d.dll $(%HW_Root)\exe > NUL:
- !endif
- clean: .SYMBOLIC
- !ifeq %USERNAME gshaw
- @del /q $(DestDir)\*.* > NUL:
- @del /q $(SrcDir6)\*.* > NUL:
- !else
- @del /q /y $(DestDir)\*.* > NUL:
- @del /q /y $(SrcDir6)\*.* > NUL:
- !endif
- @del ..\rgl\*.lib > NUL:
- @del ..\rgl\*.dll > NUL:
- @del ..\rgl\obj\*.obj > NUL:
- @echo $(Name) Files cleaned successfully. Have to rebuild everything now.
- hclean: .SYMBOLIC
- @del /q $(DestDir)\*.* > NUL:
- @del /q $(SrcDir6)\*.* > NUL:
- @echo $(Name) Files cleaned successfully. Have to rebuild everything now.
- copy: .SYMBOLIC
- @copy $(DestDir)\$(Target).exe $(%HW_Root)\exe\$(Target).exe > NUL:
- depend: .SYMBOLIC
- @del $(%HW_Root)\src\Win32\$(DependName)
- cd $(%HW_Root)\src
- $(%HW_Root)\tools\bin\perl $(%HW_Root)\tools\batch\depend.pl >Win32\$(DependName)
- !include $(DependName)
|