# EDuke32 Makefile for Microsoft NMake SRC=source OBJ=obj_win EROOT=..\build EINC=$(EROOT)\include EOBJ=eobj_win INC=$(SRC) RSRC=rsrc o=obj ENGINELIB=engine.lib EDITORLIB=build.lib !ifdef DEBUG # debugging options flags_cl= /Ot /Zi flags_link=/DEBUG !else # release options flags_cl=/O2 /Ox #/Ob1gity flags_link=/RELEASE !endif DXROOT=c:\sdks\dx6 MSSDKROOT="C:\Program Files\Microsoft Visual Studio 8\VC PLATFORMSDK="C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK ENGINEOPTS=/DSUPERBUILD /DPOLYMOST /DUSE_OPENGL CC=cl AS=ml LINK=link /opt:nowin98 /nologo /opt:ref MT=mt CFLAGS= /MD /J /nologo $(flags_cl) \ /I$(INC) /I$(EINC)\ /I$(SRC)\jmact /I$(SRC)\jaudiolib /I$(MSSDKROOT)\include" /I$(PLATFORMSDK)\include" \ /DNOCOPYPROTECT /D "_CRT_SECURE_NO_DEPRECATE" -W0 $(ENGINEOPTS) \ /I$(DXROOT)\include /DRENDERTYPEWIN=1 LIBS=user32.lib gdi32.lib shell32.lib dxguid.lib winmm.lib wsock32.lib comctl32.lib \ /NODEFAULTLIB:libFLAC.lib glu32.lib ASFLAGS=/nologo /coff ASFLAGS=/nologo /coff EXESUFFIX=.exe JMACTOBJ=$(OBJ)\util_lib.$o \ $(OBJ)\file_lib.$o \ $(OBJ)\control.$o \ $(OBJ)\keyboard.$o \ $(OBJ)\mouse.$o \ $(OBJ)\mathutil.$o \ $(OBJ)\scriplib.$o AUDIOLIB_FX_STUB=$(OBJ)\jaudiolib_fxstub.$o AUDIOLIB_MUSIC_STUB=$(OBJ)\jaudiolib_musicstub.$o #AUDIOLIB_FX=$(OBJ)\jaudiolib_fx_fmod.$o AUDIOLIB_FX=$(OBJ)\mv_mix.$o \ $(OBJ)\mv_mix16.$o \ $(OBJ)\mvreverb.$o \ $(OBJ)\pitch.$o \ $(OBJ)\multivoc.$o \ $(OBJ)\ll_man.$o \ $(OBJ)\fx_man.$o \ $(OBJ)\dsoundout.$o AUDIOLIB_MUSIC=$(OBJ)\midi.$o \ $(OBJ)\mpu401.$o \ $(OBJ)\music.$o AUDIOLIBOBJ=$(AUDIOLIB_MUSIC) $(AUDIOLIB_FX) $(OBJ)\sounds.$o GAMEOBJS=$(OBJ)\game.$o \ $(OBJ)\actors.$o \ $(OBJ)\anim.$o \ $(OBJ)\gamedef.$o \ $(OBJ)\gameexec.$o \ $(OBJ)\gamevars.$o \ $(OBJ)\global.$o \ $(OBJ)\menus.$o \ $(OBJ)\namesdyn.$o \ $(OBJ)\player.$o \ $(OBJ)\premap.$o \ $(OBJ)\savegame.$o \ $(OBJ)\sector.$o \ $(OBJ)\rts.$o \ $(OBJ)\config.$o \ $(OBJ)\animlib.$o\ $(OBJ)\testcd.$o \ $(OBJ)\osdfuncs.$o \ $(OBJ)\osdcmds.$o \ $(OBJ)\grpscan.$o \ $(OBJ)\winbits.$o \ $(OBJ)\gameres.res \ $(OBJ)\startwin.game.$o \ $(JMACTOBJ) \ $(AUDIOLIBOBJ) \ !ifdef DEBUG $(OBJ)\mdump.$o !endif EDITOROBJS=$(OBJ)\astub.$o \ $(OBJ)\buildres.res \ !ifdef DEBUG $(OBJ)\mdump.$o !endif # RULES .SUFFIXES: .masm {$(SRC)\}.masm{$(OBJ)\}.$o: $(AS) /c $(ASFLAGS) /Fo$@ $< {$(SRC)\jaudiolib}.masm{$(OBJ)\}.$o: $(AS) /c $(ASFLAGS) /Fo$@ $< {$(SRC)\jmact}.c{$(OBJ)\}.$o: $(CC) /c $(CFLAGS) /Fo$@ $< {$(SRC)\jaudiolib}.c{$(OBJ)\}.$o: $(CC) /c $(CFLAGS) /Fo$@ $< {$(SRC)\util}.c{$(OBJ)\}.$o: $(CC) /c $(CFLAGS) /Fo$@ $< {$(SRC)\}.c{$(OBJ)\}.$o: $(CC) /c $(CFLAGS) /Fo$@ $< {$(SRC)\}.cpp{$(OBJ)\}.$o: $(CC) /c $(CFLAGS) /Fo$@ $< {$(SRC)\misc}.rc{$(OBJ)\}.res: $(RC) /i$(EINC)\ /i$(SRC)\ /I$(MSSDKROOT)\include" /I$(PLATFORMSDK)\include" /fo$@ /r $< # TARGETS all: eduke32$(EXESUFFIX) mapster32$(EXESUFFIX) duke3d_w32$(EXESUFFIX); eduke32$(EXESUFFIX): $(GAMEOBJS) $(EOBJ)\$(ENGINELIB) $(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib $(MT) -manifest $@.manifest $(RSRC)\manifest.game.xml -hashupdate -outputresource:$@ -out:$@.manifest mapster32$(EXESUFFIX): $(EDITOROBJS) $(EOBJ)\$(ENGINELIB) $(EOBJ)\$(EDITORLIB) $(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib $(MT) -manifest $@.manifest $(RSRC)\manifest.build.xml -hashupdate -outputresource:$@ -out:$@.manifest duke3d_w32$(EXESUFFIX): $(OBJ)/wrapper.$o $(LINK) /OUT:$@ /SUBSYSTEM:WINDOWS /LIBPATH:$(DXROOT)\lib /LIBPATH:$(PLATFORMSDK)\lib" /LIBPATH:$(MSSDKROOT)\lib" $(flags_link) /MAP $** $(LIBS) msvcrt.lib $(MT) -manifest $@.manifest -outputresource:$@ !include Makefile.deps enginelib editorlib: AlwaysBuild -mkdir $(EOBJ) echo OBJ=$(MAKEDIR)\$(EOBJ)\ > $(EOBJ)\overrides.mak echo CFLAGS=$(ENGINEOPTS) >> $(EOBJ)\overrides.mak cd $(EROOT) nmake /f Makefile.msvc "OVERRIDES=$(MAKEDIR)\$(EOBJ)\overrides.mak" $@ cd $(MAKEDIR) AlwaysBuild: ; $(EOBJ)\$(EDITORLIB): editorlib ; $(EOBJ)\$(ENGINELIB): enginelib ; # PHONIES clean: -del /Q $(OBJ)\* eduke32$(EXESUFFIX) mapster32$(EXESUFFIX) duke3d_w32$(EXESUFFIX) \ *.pdb *.map *.manifest veryclean: clean -del /Q $(EOBJ)\*