mirror of
https://github.com/ZDoom/Raze.git
synced 2024-12-15 15:11:41 +00:00
3a8d53573c
git-svn-id: https://svn.eduke32.com/eduke32@5529 1a8010ca-5511-0410-912e-c29ae57300e0
783 lines
26 KiB
Makefile
783 lines
26 KiB
Makefile
#
|
|
# EDuke32 Makefile for GNU Make
|
|
#
|
|
|
|
include Makefile.common
|
|
|
|
DUKE3D_SRC=source
|
|
DUKE3D_INC=$(DUKE3D_SRC)
|
|
DUKE3D_RSRC=rsrc
|
|
ENGINE_ROOT=build
|
|
ENGINE_SRC=$(ENGINE_ROOT)/src
|
|
ENGINE_INC=$(ENGINE_ROOT)/include
|
|
o=o
|
|
asm=nasm
|
|
obj=obj
|
|
|
|
COMPILERFLAGS += -I$(ENGINE_INC) -I$(MACT_INC) -I$(AUDIOLIB_INC) -I$(ENET_INC)
|
|
|
|
|
|
# EBacktrace
|
|
|
|
ifndef EBACKTRACEDLL
|
|
EBACKTRACEDLL = ebacktrace1.dll
|
|
ifeq ($(findstring x86_64,$(COMPILERTARGET)),x86_64)
|
|
EBACKTRACEDLL = ebacktrace1-64.dll
|
|
endif
|
|
endif
|
|
EBACKTRACEDLL_TARGET:=$(EBACKTRACEDLL)
|
|
|
|
|
|
# BUILD Engine
|
|
|
|
ENGINE_CFLAGS=-I$(ENGINE_SRC)
|
|
|
|
ENGINE_OBJ=$(ENGINE_ROOT)/$(obj)
|
|
|
|
ENGINE_OBJS=baselayer cache1d common compat crc32 defs engine polymost texcache dxtfilter hightile textfont smalltextfont kplib lz4 osd pragmas scriptfile mmulti_null mutex xxhash md4 colmatch
|
|
ENGINE_EDITOR_OBJS=build config defs
|
|
ifeq (0,$(NOASM))
|
|
ENGINE_OBJS+= a
|
|
else
|
|
ENGINE_OBJS+= a-c
|
|
ifneq (0,$(USE_ASM64))
|
|
ENGINE_OBJS+= a64
|
|
endif
|
|
endif
|
|
ifeq (1,$(USE_OPENGL))
|
|
ENGINE_OBJS+= glbuild voxmodel mdsprite
|
|
ifeq (1,$(POLYMER))
|
|
ENGINE_OBJS+= polymer
|
|
endif
|
|
endif
|
|
ifneq (0,$(LUNATIC))
|
|
ENGINE_OBJS+= lunatic
|
|
endif
|
|
ifeq ($(PLATFORM),DARWIN)
|
|
ENGINE_OBJS += osxbits
|
|
ifneq (0,$(OSX_STARTUPWINDOW))
|
|
ENGINE_EDITOR_OBJS += startosx.editor
|
|
endif
|
|
ifeq (1,$(SDL_FRAMEWORK))
|
|
ENGINE_OBJS+=SDLMain
|
|
endif
|
|
endif
|
|
ifeq ($(PLATFORM),WINDOWS)
|
|
ENGINE_OBJS+= winbits
|
|
ENGINE_EDITOR_OBJS+= startwin.editor
|
|
endif
|
|
ifeq ($(PLATFORM),WII)
|
|
ENGINE_OBJS+= wiibits
|
|
LINKERFLAGS+= -Wl,-wrap,c_default_exceptionhandler
|
|
endif
|
|
ifeq ($(RENDERTYPE),SDL)
|
|
ENGINE_OBJS+= sdlayer
|
|
|
|
ifeq (1,$(HAVE_GTK2))
|
|
ENGINE_OBJS+= gtkbits
|
|
ifeq ($(LINKED_GTK),0)
|
|
ENGINE_OBJS+= dynamicgtk
|
|
endif
|
|
ENGINE_EDITOR_OBJS+= startgtk.editor
|
|
endif
|
|
endif
|
|
ifeq ($(RENDERTYPE),WIN)
|
|
ENGINE_OBJS+= winlayer rawinput
|
|
endif
|
|
|
|
ENGINE_OBJS_EXP:=$(addprefix $(ENGINE_OBJ)/,$(addsuffix .$o,$(ENGINE_OBJS)))
|
|
ENGINE_EDITOR_OBJS_EXP:=$(addprefix $(ENGINE_OBJ)/,$(addsuffix .$o,$(ENGINE_EDITOR_OBJS)))
|
|
|
|
|
|
# MACT
|
|
|
|
MACT_ROOT=$(DUKE3D_SRC)/jmact
|
|
MACT_SRC=$(MACT_ROOT)
|
|
MACT_INC=$(MACT_ROOT)
|
|
MACT_OBJ=$(MACT_ROOT)/$(obj)
|
|
|
|
MACT_OBJS=file_lib control keyboard mouse joystick scriplib animlib
|
|
|
|
MACT_OBJS_EXP:=$(addprefix $(MACT_OBJ)/,$(addsuffix .$o,$(MACT_OBJS)))
|
|
|
|
|
|
# AudioLib
|
|
|
|
AUDIOLIB_OBJS=drivers fx_man multivoc mix mixst pitch formats vorbis flac xa driver_nosound
|
|
|
|
AUDIOLIB_ROOT=$(DUKE3D_SRC)/jaudiolib
|
|
AUDIOLIB_SRC=$(AUDIOLIB_ROOT)/src
|
|
AUDIOLIB_INC=$(AUDIOLIB_ROOT)/include
|
|
AUDIOLIB_OBJ=$(AUDIOLIB_ROOT)/$(obj)
|
|
|
|
AUDIOLIB_CFLAGS=-I$(AUDIOLIB_ROOT)/third-party/common/include
|
|
|
|
ifeq ($(PLATFORM),WINDOWS)
|
|
ifeq ($(MIXERTYPE),WIN)
|
|
AUDIOLIB_CFLAGS+= -DHAVE_DS
|
|
AUDIOLIB_OBJS+= driver_directsound
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(MIXERTYPE),SDL)
|
|
AUDIOLIB_CFLAGS+= -DHAVE_SDL
|
|
ifneq ($(PLATFORM),DARWIN)
|
|
ifneq ($(PLATFORM),WINDOWS)
|
|
ifneq ($(PLATFORM),WII)
|
|
AUDIOLIB_CFLAGS+=`pkg-config --cflags vorbis`
|
|
endif
|
|
endif
|
|
endif
|
|
AUDIOLIB_OBJS+= driver_sdl
|
|
endif
|
|
|
|
AUDIOLIB_OBJS_EXP:=$(addprefix $(AUDIOLIB_OBJ)/,$(addsuffix .$o,$(AUDIOLIB_OBJS)))
|
|
|
|
|
|
# ENet
|
|
|
|
ENET_OBJS=callbacks host list packet peer protocol compress
|
|
|
|
ENET_ROOT=$(DUKE3D_SRC)/enet
|
|
ENET_SRC=$(ENET_ROOT)/src
|
|
ENET_INC=$(ENET_ROOT)/include
|
|
ENET_OBJ=$(ENET_ROOT)/$(obj)
|
|
|
|
ENET_CFLAGS=
|
|
|
|
ifeq ($(PLATFORM),WINDOWS)
|
|
ENET_OBJS += win32
|
|
else
|
|
ENET_OBJS += unix
|
|
ENET_CFLAGS += -DHAS_SOCKLEN_T
|
|
endif
|
|
|
|
ENET_OBJS_EXP:=$(addprefix $(ENET_OBJ)/,$(addsuffix .$o,$(ENET_OBJS)))
|
|
|
|
ifeq ($(NETCODE),0)
|
|
ENET_TARGET=
|
|
else
|
|
ENET_TARGET=$(ENET_OBJS_EXP)
|
|
endif
|
|
|
|
|
|
# Tools
|
|
|
|
UTIL_OBJS=compat pragmas kplib cache1d crc32 colmatch compat_tools
|
|
UTILS=kextract kgroup transpal wad2art wad2map kmd2tool md2tool generateicon cacheinfo arttool givedepth mkpalette unpackssi bsuite
|
|
GAMEUTILS=ivfrate
|
|
DXUTILS=enumdisplay getdxdidf
|
|
SDLUTILS=makesdlkeytrans
|
|
|
|
ifeq ($(PLATFORM),DARWIN)
|
|
UTIL_OBJS += osxbits
|
|
endif
|
|
|
|
UTIL_OBJS_EXP:=$(addprefix $(ENGINE_OBJ)/,$(addsuffix .$o,$(UTIL_OBJS)))
|
|
|
|
|
|
# KenBuild (Test Game)
|
|
|
|
TESTGAME_ROOT=$(DUKE3D_SRC)/testgame
|
|
TESTGAME_SRC=$(TESTGAME_ROOT)/src
|
|
TESTGAME_RSRC=$(TESTGAME_ROOT)/rsrc
|
|
TESTGAME_OBJ=$(TESTGAME_ROOT)/$(obj)
|
|
|
|
TEST_CFLAGS=-I$(TESTGAME_SRC)
|
|
|
|
TESTGAME ?= testgame
|
|
TESTEDITOR ?= testeditor
|
|
|
|
TESTGAME_TARGET:=$(TESTGAME)$(EXESUFFIX)
|
|
TESTEDITOR_TARGET:=$(TESTEDITOR)$(EXESUFFIX)
|
|
|
|
TESTGAME_OBJS=game sound_stub common config
|
|
TESTEDITOR_OBJS=bstub common
|
|
|
|
ifeq ($(RENDERTYPE),SDL)
|
|
ifeq (1,$(HAVE_GTK2))
|
|
TESTGAME_OBJS+= game_banner startgtk.game
|
|
TESTEDITOR_OBJS+= build_banner
|
|
endif
|
|
|
|
TESTGAME_OBJS+= game_icon
|
|
TESTEDITOR_OBJS+= build_icon
|
|
endif
|
|
ifeq ($(PLATFORM),WINDOWS)
|
|
TESTGAME_OBJS+= gameres startwin.game
|
|
TESTEDITOR_OBJS+= buildres
|
|
endif
|
|
|
|
TESTGAME_OBJS_EXP:=$(addprefix $(TESTGAME_OBJ)/,$(addsuffix .$o,$(TESTGAME_OBJS)))
|
|
TESTEDITOR_OBJS_EXP:=$(addprefix $(TESTGAME_OBJ)/,$(addsuffix .$o,$(TESTEDITOR_OBJS)))
|
|
|
|
|
|
# Duke Nukem 3D
|
|
|
|
DUKE3D_CFLAGS=-I$(DUKE3D_INC)
|
|
|
|
DUKE3D_LINKERFLAGS=
|
|
DUKE3D_EDITOR_LINKERFLAGS=
|
|
|
|
DUKE3D_OBJ=$(DUKE3D_SRC)/$(obj)
|
|
|
|
EDUKE32 ?= eduke32
|
|
MAPSTER32 ?= mapster32
|
|
|
|
EDUKE32_TARGET:=$(EDUKE32)$(EXESUFFIX)
|
|
MAPSTER32_TARGET:=$(MAPSTER32)$(EXESUFFIX)
|
|
|
|
COMMON_OBJS=rev
|
|
COMMON_EDITOR_OBJS=m32common m32def m32exec m32vars rev
|
|
|
|
DUKE3D_OBJS=game global actors gamedef gameexec gamevars player premap sector anim animsounds common config demo input menus namesdyn net savegame rts osdfuncs osdcmds grpscan sounds soundsdyn
|
|
DUKE3D_EDITOR_OBJS=astub common grpscan sounds_mapster32
|
|
|
|
ifneq ($(USE_LIBVPX),0)
|
|
DUKE3D_OBJS+= animvpx
|
|
endif
|
|
|
|
DUKE3D_MISCDEPS=
|
|
DUKE3D_EDITOR_MISCDEPS=
|
|
|
|
# Lunatic object base names. These are not used in targets directly.
|
|
LUNATIC_COMMON_OBJS = luaJIT_BC_defs_common luaJIT_BC_engine_maptext luaJIT_BC_engine luaJIT_BC_bcarray luaJIT_BC_bcheck luaJIT_BC_bitar luaJIT_BC_xmath luaJIT_BC_v luaJIT_BC_dump luaJIT_BC_dis_x86 luaJIT_BC_dis_x64
|
|
LUNATIC_GAME_OBJS = luaJIT_BC_con_lang luaJIT_BC_lunacon luaJIT_BC_randgen luaJIT_BC_stat luaJIT_BC_control luaJIT_BC_defs luaJIT_BC_savegame luaJIT_BC_fs
|
|
|
|
## Lunatic devel
|
|
ifneq (0,$(LUNATIC))
|
|
# TODO: remove debugging modules from release build
|
|
|
|
DUKE3D_EDITOR_OBJS+= lunatic_m32 $(LUNATIC_COMMON_OBJS)
|
|
DUKE3D_OBJS+= lunatic_game $(LUNATIC_COMMON_OBJS)
|
|
|
|
DUKE3D_EDITOR_OBJS+= luaJIT_BC_defs_m32
|
|
|
|
ifneq ($(PLATFORM),WINDOWS)
|
|
# On non-Windows, we expect to have liblpeg.a (or a symlink to it) in source/.
|
|
# On Windows, it will reside in platform/Windows/lib/32/ or lib/64/.
|
|
LIBDIRS+= -L$(DUKE3D_SRC)
|
|
ifeq ($(realpath $(DUKE3D_SRC)/liblpeg.a),)
|
|
# XXX: This cripples "make clean" etc. too, but IMO it's better than warning.
|
|
$(error "liblpeg.a not found in $(realpath $(DUKE3D_OBJ)/..)")
|
|
endif
|
|
endif
|
|
LIBS+= -llpeg
|
|
DUKE3D_OBJS+= $(LUNATIC_GAME_OBJS)
|
|
|
|
# now, take care of having the necessary symbols (sector, wall, etc.) in the
|
|
# executable no matter what the debugging level
|
|
|
|
ifeq ($(PLATFORM),DARWIN)
|
|
# strip on OSX says: removing global symbols from a final linked no longer supported.
|
|
# Use -exported_symbols_list at link time when building
|
|
# But, following _their_ directions does not give us the symbols! wtf?
|
|
ifneq ($(STRIP),0)
|
|
STRIP+= -s $(DUKE3D_SRC)/lunatic/dynsymlist_osx
|
|
endif
|
|
|
|
DUKE3D_MISCDEPS+= $(DUKE3D_SRC)/lunatic/dynsymlist_osx
|
|
LINKERFLAGS+= -pagezero_size 10000 -image_base 100000000 #-Wl,-alias_list -Wl,$(DUKE3D_SRC)/lunatic/aliases_list #-exported_symbols_list $(DUKE3D_SRC)/lunatic/dynsymlist_osx
|
|
endif
|
|
ifeq ($(PLATFORM),WINDOWS)
|
|
override STRIP=
|
|
DUKE3D_MISCDEPS+= $(DUKE3D_SRC)/lunatic/eduke32.def
|
|
DUKE3D_LINKERFLAGS+= $(DUKE3D_SRC)/lunatic/eduke32.def
|
|
DUKE3D_EDITOR_MISCDEPS+= $(DUKE3D_SRC)/lunatic/mapster32.def
|
|
DUKE3D_EDITOR_LINKERFLAGS+= $(DUKE3D_SRC)/lunatic/mapster32.def
|
|
endif
|
|
ifeq ($(SUBPLATFORM),LINUX)
|
|
override STRIP=
|
|
DUKE3D_LINKERFLAGS+= -Wl,--dynamic-list=$(DUKE3D_SRC)/lunatic/dynsymlist
|
|
DUKE3D_EDITOR_LINKERFLAGS+= -Wl,--dynamic-list=$(DUKE3D_SRC)/lunatic/dynsymlist_m32
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(SUBPLATFORM),LINUX)
|
|
LIBS += -lFLAC -lvorbisfile -lvorbis -logg
|
|
endif
|
|
|
|
ifeq ($(PLATFORM),BSD)
|
|
LIBS += -lFLAC -lvorbisfile -lvorbis -logg -lexecinfo
|
|
endif
|
|
|
|
ifeq ($(PLATFORM),DARWIN)
|
|
# LIBDIRS += -L$(AUDIOLIB_ROOT)/third-party/Apple/lib
|
|
|
|
LIBS += -lFLAC -lvorbisfile -lvorbis -logg -lm \
|
|
-Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,OpenGL \
|
|
-Wl,-framework,CoreMIDI -Wl,-framework,AudioUnit \
|
|
-Wl,-framework,AudioToolbox -Wl,-framework,IOKit -Wl,-framework,AGL
|
|
ifneq (00,$(DARWIN9)$(DARWIN10))
|
|
LIBS += -Wl,-framework,QuickTime -lm
|
|
endif
|
|
|
|
ifneq (0,$(OSX_STARTUPWINDOW))
|
|
DUKE3D_OBJS += GrpFile.game GameListSource.game startosx.game
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(PLATFORM),WINDOWS)
|
|
LIBS += -lFLAC -lvorbisfile -lvorbis -logg
|
|
LIBDIRS += -L$(AUDIOLIB_ROOT)/third-party/Windows/lib$(WINLIB)
|
|
DUKE3D_OBJS+= gameres winbits startwin.game
|
|
DUKE3D_EDITOR_OBJS+= buildres
|
|
ifeq ($(MIXERTYPE),WIN)
|
|
LIBS+= -ldsound
|
|
MIDI_OBJS=music midi mpu401
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(PLATFORM),WII)
|
|
LIBS += -lvorbisidec
|
|
endif
|
|
|
|
ifeq ($(RENDERTYPE),SDL)
|
|
ifeq (1,$(HAVE_GTK2))
|
|
DUKE3D_OBJS+= game_banner startgtk.game
|
|
DUKE3D_EDITOR_OBJS+= build_banner
|
|
endif
|
|
|
|
DUKE3D_OBJS+= game_icon
|
|
DUKE3D_EDITOR_OBJS+= build_icon
|
|
endif
|
|
ifeq ($(MIXERTYPE),SDL)
|
|
MIDI_OBJS=sdlmusic
|
|
endif
|
|
|
|
## Construct file names of object files
|
|
|
|
COMMON_OBJS_EXP:=$(addprefix $(DUKE3D_OBJ)/,$(addsuffix .$o,$(COMMON_OBJS)))
|
|
COMMON_EDITOR_OBJS_EXP:=$(addprefix $(DUKE3D_OBJ)/,$(addsuffix .$o,$(COMMON_EDITOR_OBJS)))
|
|
|
|
MIDI_OBJS_EXP:=$(addprefix $(DUKE3D_OBJ)/,$(addsuffix .$o,$(MIDI_OBJS)))
|
|
|
|
DUKE3D_OBJS_EXP:=$(addprefix $(DUKE3D_OBJ)/,$(addsuffix .$o,$(DUKE3D_OBJS)))
|
|
DUKE3D_EDITOR_OBJS_EXP:=$(addprefix $(DUKE3D_OBJ)/,$(addsuffix .$o,$(DUKE3D_EDITOR_OBJS)))
|
|
|
|
|
|
# Shadow Warrior
|
|
|
|
SW_ROOT=$(DUKE3D_SRC)/sw
|
|
SW_SRC=$(SW_ROOT)/src
|
|
SW_INC=$(SW_SRC)
|
|
SW_RSRC=$(SW_ROOT)/rsrc
|
|
SW_OBJ=$(SW_ROOT)/$(obj)
|
|
|
|
SW_CFLAGS=-I$(SW_INC)
|
|
|
|
SW ?= voidsw
|
|
SW_EDITOR ?= voidsw-editor
|
|
|
|
SW_TARGET:=$(SW)$(EXESUFFIX)
|
|
SW_EDITOR_TARGET:=$(SW_EDITOR)$(EXESUFFIX)
|
|
|
|
SW_OBJS=actor ai anim border break bunny cache cheats colormap common config console coolg coolie copysect demo draw eel game girlninj goro grpscan hornet interp interpsh inv jplayer jsector jweapon lava light mclip mdastr menus miscactr morph net ninja panel player predict quake ripper ripper2 rooms rotator rts save scrip2 sector serp setup skel skull slidor sounds spike sprite sumo swconfig sync text track vator vis wallmove warp weapon zilla zombie saveable
|
|
SW_EDITOR_OBJS=jnstub brooms bldscript jbhlp colormap grpscan common
|
|
|
|
ifeq ($(RENDERTYPE),SDL)
|
|
ifeq (1,$(HAVE_GTK2))
|
|
SW_OBJS+= game_banner startgtk.game
|
|
SW_EDITOR_OBJS+= build_banner
|
|
endif
|
|
|
|
SW_OBJS+= game_icon
|
|
SW_EDITOR_OBJS+= game_icon
|
|
endif
|
|
ifeq ($(PLATFORM),WINDOWS)
|
|
SW_OBJS+= gameres startwin.game
|
|
SW_EDITOR_OBJS+= buildres
|
|
endif
|
|
|
|
SW_OBJS_EXP:=$(addprefix $(SW_OBJ)/,$(addsuffix .$o,$(SW_OBJS)))
|
|
SW_EDITOR_OBJS_EXP:=$(addprefix $(SW_OBJ)/,$(addsuffix .$o,$(SW_EDITOR_OBJS)))
|
|
|
|
|
|
ifeq ($(PRETTY_OUTPUT),1)
|
|
.SILENT:
|
|
endif
|
|
.PHONY: all duke3d test sw veryclean clean cleanduke3d cleantest cleansw cleanutils utils dxutils sdlutils printutils printsdlutils printdxutils rev $(DUKE3D_OBJ)/rev.$o
|
|
|
|
# TARGETS
|
|
|
|
all: duke3d
|
|
|
|
duke3d: start $(EDUKE32_TARGET) $(MAPSTER32_TARGET)
|
|
ifneq (,$(EDUKE32_TARGET))
|
|
@ls -l $(EDUKE32)$(EXESUFFIX)
|
|
endif
|
|
ifneq (,$(MAPSTER32_TARGET))
|
|
@ls -l $(MAPSTER32)$(EXESUFFIX)
|
|
endif
|
|
|
|
test: start $(TESTGAME_TARGET) $(TESTEDITOR_TARGET)
|
|
ifneq (,$(TESTGAME_TARGET))
|
|
@ls -l $(TESTGAME)$(EXESUFFIX)
|
|
endif
|
|
ifneq (,$(TESTEDITOR_TARGET))
|
|
@ls -l $(TESTEDITOR)$(EXESUFFIX)
|
|
endif
|
|
|
|
sw: start $(SW_TARGET) $(SW_EDITOR_TARGET)
|
|
ifneq (,$(SW_TARGET))
|
|
@ls -l $(SW)$(EXESUFFIX)
|
|
endif
|
|
ifneq (,$(SW_EDITOR_TARGET))
|
|
@ls -l $(SW_EDITOR)$(EXESUFFIX)
|
|
endif
|
|
|
|
ebacktrace: start $(EBACKTRACEDLL_TARGET)
|
|
ifneq (,$(EBACKTRACEDLL_TARGET))
|
|
@ls -l $(EBACKTRACEDLL)
|
|
endif
|
|
|
|
start:
|
|
$(BUILD_STARTED)
|
|
|
|
utils: $(addsuffix $(EXESUFFIX),$(UTILS) $(GAMEUTILS))
|
|
@ls -l $^
|
|
|
|
dxutils: $(addsuffix $(EXESUFFIX),$(DXUTILS))
|
|
@ls -l $^
|
|
|
|
sdlutils: $(addsuffix $(EXESUFFIX),$(SDLUTILS))
|
|
@ls -l $^
|
|
|
|
ifeq ($(PLATFORM),WII)
|
|
ifneq ($(ELF2DOL),)
|
|
$(TESTGAME)$(DOLSUFFIX): $(TESTGAME)$(EXESUFFIX)
|
|
$(TESTEDITOR)$(DOLSUFFIX): $(TESTEDITOR)$(EXESUFFIX)
|
|
$(EDUKE32)$(DOLSUFFIX): $(EDUKE32)$(EXESUFFIX)
|
|
$(MAPSTER32)$(DOLSUFFIX): $(MAPSTER32)$(EXESUFFIX)
|
|
$(SW)$(DOLSUFFIX): $(SW)$(EXESUFFIX)
|
|
$(SW_EDITOR)$(DOLSUFFIX): $(SW_EDITOR)$(EXESUFFIX)
|
|
endif
|
|
endif
|
|
|
|
$(TESTGAME)$(EXESUFFIX): $(TESTGAME_OBJS_EXP) $(COMMON_OBJS_EXP) $(ENGINE_OBJS_EXP)
|
|
$(LINK_STATUS)
|
|
$(RECIPE_IF) $(LINKER) -o $@ $^ $(COMMONFLAGS) $(LINKERFLAGS) $(GUI_LIBS) $(LIBDIRS) $(LIBS) $(STATICSTDCPP) $(RECIPE_RESULT_LINK)
|
|
ifeq ($(PLATFORM),WII)
|
|
ifneq ($(ELF2DOL),)
|
|
$(ELF2DOL) $(TESTGAME)$(EXESUFFIX) $(TESTGAME)$(DOLSUFFIX)
|
|
endif
|
|
endif
|
|
ifneq ($(STRIP),)
|
|
$(STRIP) $@
|
|
endif
|
|
|
|
$(TESTEDITOR)$(EXESUFFIX): $(TESTEDITOR_OBJS_EXP) $(COMMON_EDITOR_OBJS_EXP) $(ENGINE_EDITOR_OBJS_EXP) $(ENGINE_OBJS_EXP)
|
|
$(LINK_STATUS)
|
|
$(RECIPE_IF) $(LINKER) -o $@ $^ $(COMMONFLAGS) $(LINKERFLAGS) $(GUI_LIBS) $(LIBDIRS) $(LIBS) $(STATICSTDCPP) $(RECIPE_RESULT_LINK)
|
|
ifeq ($(PLATFORM),WII)
|
|
ifneq ($(ELF2DOL),)
|
|
$(ELF2DOL) $(TESTEDITOR)$(EXESUFFIX) $(TESTEDITOR)$(DOLSUFFIX)
|
|
endif
|
|
endif
|
|
ifneq ($(STRIP),)
|
|
$(STRIP) $@
|
|
endif
|
|
|
|
$(EDUKE32)$(EXESUFFIX): $(DUKE3D_OBJS_EXP) $(COMMON_OBJS_EXP) $(MIDI_OBJS_EXP) $(ENGINE_OBJS_EXP) $(MACT_OBJS_EXP) $(AUDIOLIB_OBJS_EXP) $(ENET_TARGET) $(DUKE3D_MISCDEPS)
|
|
$(LINK_STATUS)
|
|
$(RECIPE_IF) $(LINKER) -o $@ $^ $(COMMONFLAGS) $(LINKERFLAGS) $(GUI_LIBS) $(DUKE3D_LINKERFLAGS) $(LIBDIRS) $(LIBS) $(STATICSTDCPP) $(RECIPE_RESULT_LINK)
|
|
ifeq ($(PLATFORM),WII)
|
|
ifneq ($(ELF2DOL),)
|
|
$(ELF2DOL) $(EDUKE32)$(EXESUFFIX) $(EDUKE32)$(DOLSUFFIX)
|
|
endif
|
|
endif
|
|
ifneq ($(STRIP),)
|
|
$(STRIP) $@
|
|
endif
|
|
ifeq ($(PLATFORM),DARWIN)
|
|
cp -RPf "platform/Apple/bundles/EDuke32.app" "./"
|
|
mkdir -p "EDuke32.app/Contents/MacOS"
|
|
cp -f "$(EDUKE32)$(EXESUFFIX)" "EDuke32.app/Contents/MacOS/"
|
|
endif
|
|
|
|
$(MAPSTER32)$(EXESUFFIX): $(DUKE3D_EDITOR_OBJS_EXP) $(COMMON_EDITOR_OBJS_EXP) $(ENGINE_EDITOR_OBJS_EXP) $(ENGINE_OBJS_EXP) $(AUDIOLIB_OBJS_EXP) $(DUKE3D_EDITOR_MISCDEPS)
|
|
$(LINK_STATUS)
|
|
$(RECIPE_IF) $(LINKER) -o $@ $^ $(COMMONFLAGS) $(LINKERFLAGS) $(GUI_LIBS) $(DUKE3D_EDITOR_LINKERFLAGS) $(LIBDIRS) $(LIBS) $(STATICSTDCPP) $(RECIPE_RESULT_LINK)
|
|
ifeq ($(PLATFORM),WII)
|
|
ifneq ($(ELF2DOL),)
|
|
$(ELF2DOL) $(MAPSTER32)$(EXESUFFIX) $(MAPSTER32)$(DOLSUFFIX)
|
|
endif
|
|
endif
|
|
ifneq ($(STRIP),)
|
|
$(STRIP) $@
|
|
endif
|
|
ifeq ($(PLATFORM),DARWIN)
|
|
cp -RPf "platform/Apple/bundles/Mapster32.app" "./"
|
|
mkdir -p "Mapster32.app/Contents/MacOS"
|
|
cp -f "$(MAPSTER32)$(EXESUFFIX)" "Mapster32.app/Contents/MacOS/"
|
|
endif
|
|
|
|
$(SW)$(EXESUFFIX): $(SW_OBJS_EXP) $(COMMON_OBJS_EXP) $(MIDI_OBJS_EXP) $(ENGINE_OBJS_EXP) $(MACT_OBJS_EXP) $(AUDIOLIB_OBJS_EXP)
|
|
$(LINK_STATUS)
|
|
$(RECIPE_IF) $(LINKER) -o $@ $^ $(COMMONFLAGS) $(LINKERFLAGS) $(GUI_LIBS) $(DUKE3D_LINKERFLAGS) $(LIBDIRS) $(LIBS) $(STATICSTDCPP) $(RECIPE_RESULT_LINK)
|
|
ifeq ($(PLATFORM),WII)
|
|
ifneq ($(ELF2DOL),)
|
|
$(ELF2DOL) $(SW)$(EXESUFFIX) $(SW)$(DOLSUFFIX)
|
|
endif
|
|
endif
|
|
ifneq ($(STRIP),)
|
|
$(STRIP) $@
|
|
endif
|
|
|
|
$(SW_EDITOR)$(EXESUFFIX): $(SW_EDITOR_OBJS_EXP) $(COMMON_EDITOR_OBJS_EXP) $(ENGINE_EDITOR_OBJS_EXP) $(ENGINE_OBJS_EXP)
|
|
$(LINK_STATUS)
|
|
$(RECIPE_IF) $(LINKER) -o $@ $^ $(COMMONFLAGS) $(LINKERFLAGS) $(GUI_LIBS) $(DUKE3D_EDITOR_LINKERFLAGS) $(LIBDIRS) $(LIBS) $(STATICSTDCPP) $(RECIPE_RESULT_LINK)
|
|
ifeq ($(PLATFORM),WII)
|
|
ifneq ($(ELF2DOL),)
|
|
$(ELF2DOL) $(SW_EDITOR)$(EXESUFFIX) $(SW_EDITOR)$(DOLSUFFIX)
|
|
endif
|
|
endif
|
|
ifneq ($(STRIP),)
|
|
$(STRIP) $@
|
|
endif
|
|
|
|
include $(ENGINE_ROOT)/Makefile.deps
|
|
include Makefile.deps
|
|
include $(SW_ROOT)/Makefile.deps
|
|
|
|
# RULES
|
|
|
|
$(EBACKTRACEDLL): platform/Windows/src/backtrace.c
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(CC) $(CONLYFLAGS) -O2 -ggdb -shared -Wall -Wextra -static-libgcc -I$(ENGINE_INC) -o $@ $^ -lbfd -liberty -limagehlp $(RECIPE_RESULT_COMPILE)
|
|
|
|
libcache1d$(DLLSUFFIX): $(ENGINE_SRC)/cache1d.c
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) -Wall -Wextra -DCACHE1D_COMPRESS_ONLY -shared -fPIC $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
%$(EXESUFFIX): $(ENGINE_OBJ)/%.$o $(UTIL_OBJS_EXP)
|
|
$(ONESTEP_STATUS)
|
|
$(RECIPE_IF) $(LINKER) -o $@ $^ $(COMMONFLAGS) $(LINKERFLAGS) $(LIBDIRS) $(LIBS) $(RECIPE_RESULT_ONESTEP)
|
|
|
|
%$(EXESUFFIX): $(DUKE3D_OBJ)/%.$o
|
|
$(ONESTEP_STATUS)
|
|
$(RECIPE_IF) $(LINKER) -o $@ $^ $(COMMONFLAGS) $(LINKERFLAGS) $(LIBDIRS) $(LIBS) $(RECIPE_RESULT_ONESTEP)
|
|
|
|
enumdisplay$(EXESUFFIX): $(ENGINE_OBJ)/enumdisplay.$o
|
|
$(ONESTEP_STATUS)
|
|
$(RECIPE_IF) $(LINKER) -o $@ $^ $(COMMONFLAGS) $(LINKERFLAGS) $(LIBDIRS) $(LIBS) -lgdi32 $(RECIPE_RESULT_ONESTEP)
|
|
getdxdidf$(EXESUFFIX): $(ENGINE_OBJ)/getdxdidf.$o
|
|
$(ONESTEP_STATUS)
|
|
$(RECIPE_IF) $(LINKER) -o $@ $^ $(COMMONFLAGS) $(LINKERFLAGS) $(LIBDIRS) $(LIBS) -ldinput $(RECIPE_RESULT_ONESTEP)
|
|
makesdlkeytrans$(EXESUFFIX): $(ENGINE_OBJ)/makesdlkeytrans.$o
|
|
$(ONESTEP_STATUS)
|
|
$(RECIPE_IF) $(LINKER) -o $@ $^ $(COMMONFLAGS) $(LINKERFLAGS) $(LIBDIRS) $(LIBS) $(SDL_INCLUDES) $(RECIPE_RESULT_ONESTEP)
|
|
arttool$(EXESUFFIX): $(ENGINE_OBJ)/arttool.$o
|
|
$(ONESTEP_STATUS)
|
|
$(RECIPE_IF) $(L_CXX) $(CPPONLYFLAGS) -o $@ $^ $(COMMONFLAGS) $(LINKERFLAGS) $(LIBDIRS) $(LIBS) $(STATICSTDCPP) $(STDCPPLIB) $(RECIPE_RESULT_ONESTEP)
|
|
|
|
#### Lunatic
|
|
|
|
# Create object files directly with luajit
|
|
$(DUKE3D_OBJ)/luaJIT_BC_%.$o: source/lunatic/%.lua
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(LUAJIT) -bg $(LUAJIT_BCOPTS) $< $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
# Same thing for defs*.ilua which I'm too reluctant to rename now:
|
|
# NOTE: The target path must match EXACTLY with that of the DEFS_BC_SIZE
|
|
# determination in Makefile.common, because it is embedded into the bytecode as
|
|
# debugging information.
|
|
$(DUKE3D_OBJ)/luaJIT_BC_%.$o: source/lunatic/%.ilua
|
|
$(RECIPE_IF) $(LUAJIT) -bg $(LUAJIT_BCOPTS) $< $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(DUKE3D_OBJ)/%.$o: $(DUKE3D_SRC)/lunatic/%.c
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(DUKE3D_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
# TODO: _m32
|
|
# List of exported symbols, OS X
|
|
$(DUKE3D_SRC)/lunatic/dynsymlist_osx: $(DUKE3D_SRC)/lunatic/dynsymlist
|
|
sed 's/[{};]//g;s/[A-Za-z_][A-Za-z_0-9]*/_&/g' $< > $@
|
|
|
|
#$(DUKE3D_SRC)/lunatic/aliases_list: $(DUKE3D_SRC)/lunatic/dynsymlist_osx
|
|
# sed 's/_\([A-Za-z_][A-Za-z_0-9]*\)/_\1 \1/g' $< > $@
|
|
|
|
# List of exported symbols, Windows
|
|
$(DUKE3D_SRC)/lunatic/eduke32.def: $(DUKE3D_SRC)/lunatic/dynsymlist
|
|
echo EXPORTS > $@
|
|
sed 's/[{};]//g' $< >> $@
|
|
|
|
$(DUKE3D_SRC)/lunatic/mapster32.def: $(DUKE3D_SRC)/lunatic/dynsymlist_m32
|
|
echo EXPORTS > $@
|
|
sed 's/[{};]//g' $< >> $@
|
|
|
|
####
|
|
|
|
$(ENGINE_OBJ)/%.$o: $(ENGINE_SRC)/%.nasm | $(ENGINE_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(AS) $(ASFLAGS) $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(ENGINE_OBJ)/%.$o: $(ENGINE_SRC)/%.yasm | $(ENGINE_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(AS) $(ASFLAGS) $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
# Comment out the following rule to debug a-c.o
|
|
$(ENGINE_OBJ)/a-c.$o: $(ENGINE_SRC)/a-c.c | $(ENGINE_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(subst -O$(OPTLEVEL),-O2,$(subst $(CLANG_DEBUG_FLAGS),,$(COMMONFLAGS) $(COMPILERFLAGS))) $(ENGINE_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(ENGINE_OBJ)/%.$o: $(ENGINE_SRC)/%.c | $(ENGINE_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(ENGINE_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(ENGINE_OBJ)/%.$o: $(ENGINE_SRC)/%.m | $(ENGINE_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER_OBJC) $(COMMONFLAGS) $(COMPILERFLAGS) $(ENGINE_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(ENGINE_OBJ)/%.$o: $(ENGINE_SRC)/%.cpp | $(ENGINE_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(CXX) $(CPPONLYFLAGS) $(COMMONFLAGS) $(COMPILERFLAGS) $(ENGINE_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(ENGINE_OBJ)/%.$o: $(ENGINE_SRC)/misc/%.c | $(ENGINE_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(ENGINE_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(ENGINE_OBJ)/%.$o: $(ENGINE_SRC)/util/%.c | $(ENGINE_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(ENGINE_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(ENGINE_OBJ)/%.$o: $(ENGINE_SRC)/util/%.cpp | $(ENGINE_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(CXX) $(CPPONLYFLAGS) $(COMMONFLAGS) $(COMPILERFLAGS) $(ENGINE_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(ENGINE_OBJ)/%.$o: $(ENGINE_SRC)/util/%.cc | $(ENGINE_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(CXX) $(CPPONLYFLAGS) $(COMMONFLAGS) $(COMPILERFLAGS) $(ENGINE_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(ENGINE_OBJ)/%.$o: $(DUKE3D_RSRC)/%.c | $(ENGINE_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(MACT_OBJ)/%.$o: $(MACT_SRC)/%.c | $(MACT_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(AUDIOLIB_OBJ)/%.o: $(AUDIOLIB_SRC)/%.c | $(AUDIOLIB_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(AUDIOLIB_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(ENET_OBJ)/%.o: $(ENET_SRC)/%.c $(ENET_INC)/enet/*.h | $(ENET_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(ENET_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(TESTGAME_OBJ)/%.$o: $(TESTGAME_SRC)/%.c | $(TESTGAME_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(TESTGAME_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(TESTGAME_OBJ)/%.$o: $(TESTGAME_SRC)/%.m | $(TESTGAME_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(TESTGAME_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(TESTGAME_OBJ)/%.$o: $(TESTGAME_RSRC)/%.rc | $(TESTGAME_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(RC) -i $< -o $@ --include-dir=$(ENGINE_INC) --include-dir=$(TESTGAME_SRC) --include-dir=$(TESTGAME_RSRC) $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(TESTGAME_OBJ)/%.$o: $(TESTGAME_RSRC)/%.c | $(TESTGAME_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(TESTGAME_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(TESTGAME_RSRC)/%_banner.c: $(TESTGAME_RSRC)/%.bmp
|
|
echo "#include \"gtkpixdata_shim.h\"" > $@
|
|
gdk-pixbuf-csource --extern --struct --raw --name=startbanner_pixdata $^ | sed 's/load_inc//' >> $@
|
|
|
|
$(DUKE3D_OBJ)/%.$o: $(DUKE3D_SRC)/%.c | $(DUKE3D_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(DUKE3D_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(DUKE3D_OBJ)/rev.$o: $(DUKE3D_SRC)/rev.c | $(DUKE3D_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(DUKE3D_CFLAGS) $(REVFLAG) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(DUKE3D_OBJ)/%.$o: $(DUKE3D_SRC)/util/%.c | $(DUKE3D_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(DUKE3D_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(DUKE3D_OBJ)/%.$o: $(DUKE3D_SRC)/%.m | $(DUKE3D_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER_OBJC) $(COMMONFLAGS) $(COMPILERFLAGS) $(DUKE3D_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(DUKE3D_OBJ)/%.$o: $(DUKE3D_SRC)/%.cpp | $(DUKE3D_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(CXX) $(CPPONLYFLAGS) $(COMMONFLAGS) $(COMPILERFLAGS) $(DUKE3D_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(DUKE3D_OBJ)/%.$o: $(DUKE3D_SRC)/misc/%.rc | $(DUKE3D_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(RC) -i $< -o $@ --include-dir=$(ENGINE_INC) --include-dir=$(DUKE3D_SRC) --include-dir=$(DUKE3D_RSRC) -DPOLYMER=$(POLYMER) $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(DUKE3D_OBJ)/%.$o: $(DUKE3D_RSRC)/%.c | $(DUKE3D_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(DUKE3D_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(DUKE3D_RSRC)/%_banner.c: $(DUKE3D_RSRC)/%.bmp
|
|
echo "#include \"gtkpixdata_shim.h\"" > $@
|
|
gdk-pixbuf-csource --extern --struct --raw --name=startbanner_pixdata $^ | sed 's/load_inc//' >> $@
|
|
|
|
$(SW_OBJ)/%.$o: $(SW_SRC)/%.c | $(SW_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(SW_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(SW_OBJ)/%.$o: $(SW_SRC)/%.m | $(SW_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(SW_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(SW_OBJ)/%.$o: $(SW_RSRC)/%.rc | $(SW_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(RC) -i $< -o $@ --include-dir=$(ENGINE_INC) --include-dir=$(SW_SRC) --include-dir=$(SW_RSRC) $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(SW_OBJ)/%.$o: $(SW_RSRC)/%.c | $(SW_OBJ)
|
|
$(COMPILE_STATUS)
|
|
$(RECIPE_IF) $(COMPILER) $(COMMONFLAGS) $(COMPILERFLAGS) $(SW_CFLAGS) -c $< -o $@ $(RECIPE_RESULT_COMPILE)
|
|
|
|
$(SW_RSRC)/%_banner.c: $(SW_RSRC)/%.bmp
|
|
echo "#include \"gtkpixdata_shim.h\"" > $@
|
|
gdk-pixbuf-csource --extern --struct --raw --name=startbanner_pixdata $^ | sed 's/load_inc//' >> $@
|
|
|
|
$(ENGINE_OBJ) $(MACT_OBJ) $(AUDIOLIB_OBJ) $(ENET_OBJ) $(TESTGAME_OBJ) $(DUKE3D_OBJ) $(SW_OBJ):
|
|
-mkdir $@ $(DONT_PRINT) $(DONT_FAIL)
|
|
|
|
## PHONIES
|
|
|
|
clean: cleanduke3d
|
|
|
|
# Delete executables, object files created from sources in source/, and
|
|
# miscellaneous generated files related to Lunatic on non-Linux.
|
|
cleanduke3d:
|
|
ifeq ($(PRETTY_OUTPUT),1)
|
|
echo "rm -f $(EDUKE32)$(EXESUFFIX) $(MAPSTER32)$(EXESUFFIX) $(DUKE3D_OBJ)/*.$o $(DUKE3D_MISCDEPS) $(DUKE3D_EDITOR_MISCDEPS)"
|
|
endif
|
|
-rm -f $(EDUKE32)$(EXESUFFIX) $(MAPSTER32)$(EXESUFFIX) $(DUKE3D_OBJ)/*.$o $(DUKE3D_MISCDEPS) $(DUKE3D_EDITOR_MISCDEPS)
|
|
ifeq ($(PLATFORM),DARWIN)
|
|
-rm -rf EDuke32.app Mapster32.app
|
|
endif
|
|
|
|
cleantest:
|
|
-rm -f $(TESTGAME)$(EXESUFFIX) $(TESTEDITOR)$(EXESUFFIX) $(TESTGAME_OBJ)/*.$o
|
|
|
|
cleansw:
|
|
-rm -f $(SW)$(EXESUFFIX) $(SW_EDITOR)$(EXESUFFIX) $(SW_OBJ)/*.$o
|
|
|
|
cleanutils:
|
|
-rm -f $(addsuffix $(EXESUFFIX),$(UTILS) $(GAMEUTILS)) $(addprefix $(ENGINE_OBJ)/,$(addsuffix .$o,$(UTILS))) $(addprefix $(DUKE3D_OBJ)/,$(addsuffix .$o,$(GAMEUTILS))) $(addsuffix $(EXESUFFIX),$(DXUTILS)) $(addprefix $(ENGINE_OBJ)/,$(addsuffix .$o,$(DXUTILS))) $(addsuffix $(EXESUFFIX),$(SDLUTILS)) $(addprefix $(ENGINE_OBJ)/,$(addsuffix .$o,$(SDLUTILS))) $(UTIL_OBJS_EXP)
|
|
|
|
veryclean: clean cleanutils
|
|
ifeq ($(PRETTY_OUTPUT),1)
|
|
echo "Removed test game and utils objects."
|
|
echo "rm -f $(ENGINE_OBJ)/*.$o $(MACT_OBJ)/*.$o $(AUDIOLIB_OBJ)/*.$o $(ENET_OBJ)/*.$o $(DUKE3D_RSRC)/*banner* $(EBACKTRACEDLL)"
|
|
endif
|
|
-rm -f $(ENGINE_OBJ)/*.$o $(MACT_OBJ)/*.$o $(AUDIOLIB_OBJ)/*.$o $(ENET_OBJ)/*.$o $(DUKE3D_RSRC)/*banner* $(EBACKTRACEDLL)
|
|
|
|
printutils:
|
|
echo "$(addsuffix $(EXESUFFIX),$(UTILS) $(GAMEUTILS))"
|
|
|
|
printdxutils:
|
|
echo "$(addsuffix $(EXESUFFIX),$(DXUTILS))"
|
|
|
|
printsdlutils:
|
|
echo "$(addsuffix $(EXESUFFIX),$(SDLUTILS))"
|
|
|
|
rev: $(DUKE3D_OBJ)/rev.$o
|