Subversion Repositories eduke32

Rev

Rev 163 | Blame | Compare with Previous | Last modification | View Log | RSS feed

# EDuke32 Makefile for Watcom Make

SRC=source\
OBJ=obj\
EROOT=..\build\
EINC=$(EROOT)include\
EOBJ=eobj\
INC=$(SRC)
o=obj

ENGINELIB=engine.lib
EDITORLIB=build.lib

!ifdef __LOADDLL__
! loaddll wcc386 wccd386
!endif

DXROOT=c:\sdks\msc\dx7

ENGINEOPTS=-dSUPERBUILD -dPOLYMOST -dUSE_OPENGL

CC=wcc386
CXX=wpp386
CFLAGS= -zq -5r -s -orb -fp5 -d2 -db &
        -i=watcomhax -i=$(INC) -i=$(EINC) -i=$(SRC)jmact -i=$(SRC)jaudiolib -i=$(DXROOT)\include &
        -dRENDERTYPEWIN=1 -dNOCOPYPROTECT $(ENGINEOPTS) -i=..\jfaud\inc
LIBS=wsock32.lib dxguid.lib ..\jfaud\jfaud.lib winmm.lib #opengl32.lib
WASMFLAGS=-d1
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

JAUDIOLIB_FX_STUB=$(OBJ)jaudiolib_fxstub.$o
JAUDIOLIB_MUSIC_STUB=$(OBJ)jaudiolib_musicstub.$o
JAUDIOLIB_JFAUD=$(OBJ)jfaud_sounds.$o
JAUDIOLIB_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
JAUDIOLIB_MUSIC=$(OBJ)midi.$o &
          $(OBJ)mpu401.$o &
          $(OBJ)music.$o
#JAUDIOLIBOBJ=$(JAUDIOLIB_MUSIC) $(JAUDIOLIB_FX) $(OBJ)sounds.$o
#JAUDIOLIBOBJ=$(JAUDIOLIB_MUSIC_STUB) $(JAUDIOLIB_FX_STUB) $(OBJ)sounds.$o
JAUDIOLIBOBJ=$(JAUDIOLIB_JFAUD)

GAMEOBJS=$(OBJ)game.$o &
        $(OBJ)actors.$o &
        $(OBJ)anim.$o &
        $(OBJ)gamedef.$o &
        $(OBJ)gameexec.$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)winbits.$o &
        $(OBJ)startwin.game.$o &
        $(JMACTOBJ) &
        $(JAUDIOLIBOBJ)

EDITOROBJS=$(OBJ)astub.$o

# RULES
.EXTENSIONS: .wasm .res .rc

.wasm:  $(SRC)
.wasm:  $(SRC)jaudiolib/
.c:     $(SRC)
.cpp:   $(SRC)
.c:     $(SRC)jmact/
.c:     $(SRC)jaudiolib/
.c:     $(SRC)util/
.rc:    $(SRC)misc/

.wasm.$o:
        wasm $(WASMFLAGS) -fo=$(OBJ).$o $[@

.c.$o:
        $(CC) $(CFLAGS) -fo=$(OBJ).$o $[@
.cpp.$o:
        $(CXX) $(CFLAGS) -fo=$(OBJ).$o $[@

.rc.res:
        wrc -i=$(EINC) -i=$(SRC) -fo=$^*.res -r $[@
        

# TARGETS
all: eduke32$(EXESUFFIX) build$(EXESUFFIX) .SYMBOLIC
        %null

eduke32$(EXESUFFIX): $(GAMEOBJS) $(OBJ)gameres.res $(EOBJ)$(ENGINELIB)
        wlink   NAME     $@ &
                SYSTEM   WIN95 &
                DEBUG    ALL &
                FILE     { $(GAMEOBJS) $(ENGINEOBJS) } &
                RESOURCE $(OBJ)gameres.res &
                LIBPATH  $(DXROOT)\lib &
                LIBPATH  $(EOBJ) &
                LIBRARY  { $(ENGINELIB) $(LIBS) }
        
mapster32$(EXESUFFIX): $(EDITOROBJS) $(OBJ)buildres.res $(EOBJ)$(ENGINELIB) $(EOBJ)$(EDITORLIB)
        wlink   NAME     $@ &
                SYSTEM   WIN95 &
                DEBUG    ALL &
                FILE     { $(EDITOROBJS) } &
                RESOURCE $(OBJ)buildres.res &
                LIBPATH  $(DXROOT)\lib &
                LIBPATH  $(EOBJ) &
                LIBRARY  { $(LIBS) $(ENGINELIB) $(EDITORLIB) }

!include Makefile.deps

cwd=$+ $(%cwd) $-
enginelib editorlib: .SYMBOLIC
        -mkdir $(EOBJ)
        %write $(EOBJ)overrides.mak OBJ=$(cwd)\$(EOBJ)
        %write $(EOBJ)overrides.mak CFLAGS=$(ENGINEOPTS)
        cd $(EROOT)
        wmake -f Makefile.watcom OVERRIDES=$(cwd)\$(EOBJ)overrides.mak $@
        cd $(cwd)

$(EOBJ)$(EDITORLIB): editorlib .SYMBOLIC
$(EOBJ)$(ENGINELIB): enginelib .SYMBOLIC

# PHONIES       
clean: .SYMBOLIC
        -del $(OBJ)* eduke32$(EXESUFFIX) mapster32$(EXESUFFIX)
        
veryclean: clean .SYMBOLIC
        -del $(EOBJ)*