mirror of
https://github.com/nzp-team/fteqw.git
synced 2024-11-29 23:22:01 +00:00
b91b32cd38
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3916 fc73d0e0-1445-4013-8a0c-d673dee63da5
1192 lines
37 KiB
Makefile
1192 lines
37 KiB
Makefile
CC=gcc
|
|
WINDRES=windres
|
|
STRIP=strip
|
|
|
|
STRIPFLAGS=--strip-unneeded --remove-section=.comment
|
|
|
|
CPUOPTIMIZATIONS=
|
|
|
|
BASE_DIR=.
|
|
|
|
SVNREVISION:=-DSVNREVISION=$(shell test -d .svn && svnversion || echo -)
|
|
|
|
WHOAMI=$(shell whoami)
|
|
|
|
#only limited forms of cross-making is supported
|
|
#only the following 3 are supported
|
|
#linux->win32 (FTE_TARGET=win32) RPM Package: "mingw32-gcc", DEB Package: "mingw32"
|
|
#linux->linux32 (FTE_TARGET=linux32)
|
|
#linux->linux64 (FTE_TARGET=linux64)
|
|
#linux->morphos (FTE_TARGET=morphos) Contact Moodles for crosscompiler
|
|
#linux->macosx (FTE_TARGET=macosx) or (FTE_TARGET=macosx_x86) Contact Moodles for crosscompiler, only works with Mac OSX 10.4 Tiger.
|
|
#if you are cross compiling, you'll need to use FTE_TARGET=mytaget
|
|
|
|
#correct the gcc build when cross compiling
|
|
ifeq ($(FTE_TARGET),win32)
|
|
ifeq ($(shell $(CC) -v 2>&1 | grep mingw),)
|
|
#CC didn't state that it was mingw... so try fixing that up
|
|
ifneq ($(shell which i586-mingw32msvc-gcc 2> /dev/null),)
|
|
#yup, the alternative exists (this matches the one debian has)
|
|
CC=i586-mingw32msvc-gcc
|
|
WINDRES=i586-mingw32msvc-windres
|
|
STRIP=i586-mingw32msvc-strip
|
|
# BITS?=32
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
#correct the gcc build when cross compiling
|
|
ifeq ($(FTE_TARGET),win64)
|
|
ifeq ($(shell $(CC) -v 2>&1 | grep mingw),)
|
|
#CC didn't state that it was mingw... so try fixing that up
|
|
ifneq ($(shell which amd64-mingw32msvc-gcc 2> /dev/null),)
|
|
#yup, the alternative exists (this matches the one debian has)
|
|
CC=amd64-mingw32msvc-gcc -m64
|
|
WINDRES=amd64-mingw32msvc-windres
|
|
STRIP=amd64-mingw32msvc-strip
|
|
# BITS=64
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(FTE_TARGET),win32_sdl)
|
|
FTE_TARGET=win32_SDL
|
|
endif
|
|
|
|
DROID_NDK_PATH?=~/droid/android-ndk-r6b
|
|
DROID_SDK_PATH?=~/droid/android-sdk-linux_x86
|
|
ifeq ($(FTE_TARGET),droid)
|
|
|
|
NDK_PATH:=$(shell echo $(DROID_NDK_PATH))
|
|
SDK_PATH:=$(shell echo $(DROID_SDK_PATH))
|
|
|
|
DROID_API_LEVEL=3
|
|
|
|
#there are 3 ABI targets
|
|
#armv5 (works on all arm droids)
|
|
#armv7 (more common on 2.2+ droids)
|
|
#armv7+neon
|
|
DROID_ABI?=-mfloat-abi=softfp
|
|
|
|
STRIP=$(NDK_PATH)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-strip
|
|
CC=$(NDK_PATH)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc -I$(NDK_PATH)/platforms/android-$(DROID_API_LEVEL)/arch-arm/usr/include/ -DANDROID $(DROID_ABI)
|
|
DO_LD=$(CC) -Wl,-soname,libftedroid.so -shared -Wl,--no-undefined -Wl,-z,noexecstack --sysroot=$(NDK_PATH)/platforms/android-$(DROID_API_LEVEL)/arch-arm -L$(NDK_PATH)/platforms/android-$(DROID_API_LEVEL)/arch-arm/usr/lib -o $@ $(LTO_LD) $(WCFLAGS) $(CFLAGS) -llog -lc -lz -lm
|
|
endif
|
|
|
|
#correct the gcc build when cross compiling
|
|
ifeq ($(FTE_TARGET),win32_SDL)
|
|
ifeq ($(shell $(CC) -v 2>&1 | grep mingw),)
|
|
#CC didn't state that it was mingw... so try fixing that up
|
|
ifneq ($(shell which i586-mingw32msvc-gcc 2> /dev/null),)
|
|
#yup, the alternative exists (this matches the one debian has)
|
|
CC=i586-mingw32msvc-gcc
|
|
WINDRES=i586-mingw32msvc-windres
|
|
STRIP=i586-mingw32msvc-strip
|
|
# BITS=32
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(FTE_TARGET),win64_sdl)
|
|
FTE_TARGET=win64_SDL
|
|
endif
|
|
|
|
#correct the gcc build when cross compiling
|
|
ifeq ($(FTE_TARGET),win64_SDL)
|
|
ifeq ($(shell $(CC) -v 2>&1 | grep mingw),)
|
|
#CC didn't state that it was mingw... so try fixing that up
|
|
ifneq ($(shell which amd64-mingw32msvc-gcc 2> /dev/null),)
|
|
#yup, the alternative exists (this matches the one debian has)
|
|
CC=amd64-mingw32msvc-gcc -m64
|
|
WINDRES=amd64-mingw32msvc-windres
|
|
STRIP=amd64-mingw32msvc-strip
|
|
# BITS=64
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
#crosscompile macosx from linux, default target ppc 32bit
|
|
ifeq ($(FTE_TARGET),macosx)
|
|
ifeq ($(shell $(CC) -v 2>&1 | grep apple),)
|
|
ifneq ($(shell which powerpc-apple-darwin8-gcc 2> /dev/null),)
|
|
CC=powerpc-apple-darwin8-gcc
|
|
STRIP=powerpc-apple-darwin8-strip
|
|
#seems, macosx has a more limited version of strip
|
|
STRIPFLAGS=
|
|
BITS=32
|
|
EXTENSION=_ppc
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(FTE_TARGET),macosx_ppc64)
|
|
ifeq ($(shell $(CC) -v 2>&1 | grep apple),)
|
|
ifneq ($(shell which powerpc-apple-darwin8-gcc 2> /dev/null),)
|
|
FTE_TARGET=macosx
|
|
CC=powerpc-apple-darwin8-gcc -arch ppc64
|
|
STRIP=powerpc-apple-darwin8-strip
|
|
#seems, macosx has a more limited version of strip
|
|
STRIPFLAGS=
|
|
BITS=64
|
|
EXTENSION=_ppc
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(FTE_TARGET),macosx_x86)
|
|
ifeq ($(shell $(CC) -v 2>&1 | grep apple),)
|
|
ifneq ($(shell which i686-apple-darwin8-gcc 2> /dev/null),)
|
|
FTE_TARGET=macosx
|
|
# i686-apple-darwin8-gcc's default target is i386, powerpc-apple-darwin8-gcc -arch i386 just invokes i686-apple-darwin8-gcc anyway
|
|
CC=i686-apple-darwin8-gcc
|
|
STRIP=i686-apple-darwin8-strip
|
|
#seems, macosx has a more limited version of strip
|
|
STRIPFLAGS=
|
|
EXTENSION=_x86
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
#crosscompile morphos from linux
|
|
ifeq ($(FTE_TARGET),morphos)
|
|
ifeq ($(shell $(CC) -v 2>&1 | grep morphos),)
|
|
ifneq ($(shell which ppc-morphos-gcc 2> /dev/null),)
|
|
CC=ppc-morphos-gcc
|
|
#morphos strip has a 'feature', it strips permissions
|
|
STRIP=ppc-morphos-strip
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
#if you have an x86, you can get gcc to build 32bit or 64bit specific builds, instead of builds for the native platform
|
|
ifeq ($(FTE_TARGET),linux32)
|
|
FTE_TARGET=linux
|
|
CC=gcc -m32
|
|
BITS=32
|
|
endif
|
|
ifeq ($(FTE_TARGET),linux64)
|
|
FTE_TARGET=linux
|
|
CC=gcc -m64
|
|
BITS=64
|
|
endif
|
|
|
|
|
|
ifeq ($(FTE_TARGET),) #user didn't specify prefered target
|
|
ifneq ($(shell $(CC) -v 2>&1 | grep mingw),)
|
|
FTE_TARGET=win32
|
|
endif
|
|
ifneq ($(shell $(CC) -v 2>&1 | grep cygwin),)
|
|
FTE_TARGET=cygwin
|
|
endif
|
|
ifeq ($(FTE_TARGET),) #still not set
|
|
|
|
ifeq ($(shell uname),Linux)
|
|
FTE_TARGET=linux
|
|
endif
|
|
ifeq ($(shell uname),Darwin)
|
|
FTE_TARGET=macosx
|
|
endif
|
|
ifeq ($(shell uname),FreeBSD)
|
|
FTE_TARGET=bsd
|
|
endif
|
|
ifeq ($(shell uname),NetBSD)
|
|
FTE_TARGET=bsd
|
|
endif
|
|
ifeq ($(shell uname),OpenBSD)
|
|
FTE_TARGET=bsd
|
|
endif
|
|
ifeq ($(shell uname),MorphOS)
|
|
FTE_TARGET=morphos
|
|
endif
|
|
#else I've no idea what it is you're running
|
|
endif
|
|
|
|
FTE_TARGET ?= sdl #so go for sdl.
|
|
endif
|
|
|
|
ifneq ($(shell ls|grep config.h),)
|
|
HAVECONFIG=-DHAVE_CONFIG_H
|
|
endif
|
|
|
|
CLIENT_DIR=$(BASE_DIR)/client
|
|
GL_DIR=$(BASE_DIR)/gl
|
|
D3D_DIR=$(BASE_DIR)/d3d
|
|
SERVER_DIR=$(BASE_DIR)/server
|
|
COMMON_DIR=$(BASE_DIR)/common
|
|
HTTP_DIR=$(BASE_DIR)/http
|
|
#LIBS_DIR=$(BASE_DIR)/libs
|
|
LIBS_DIR?=.
|
|
PROGS_DIR=$(BASE_DIR)/qclib
|
|
SNDCODEC_DIR=$(BASE_DIR)/sndcodec
|
|
|
|
RELEASE_DIR=$(BASE_DIR)/release
|
|
DEBUG_DIR=$(BASE_DIR)/debug
|
|
PROFILE_DIR=$(BASE_DIR)/profile
|
|
|
|
ALL_CFLAGS=$(HAVECONFIG) $(CFLAGS) $(BASE_CFLAGS) $(WCFLAGS)
|
|
|
|
#cheap compile-everything-in-one-unit (compile becomes preprocess only)
|
|
ifneq ($(WPO),)
|
|
LTO_CC= -E
|
|
LTO_LD= -combine -fwhole-program -x c
|
|
LTO_END=ltoxnone
|
|
LTO_START=ltoxc
|
|
endif
|
|
#proper/consistant link-time optimisations (requires gcc 4.5+ or so)
|
|
ifneq ($(LTO),)
|
|
LTO_CC=-flto
|
|
LTO_LD=-flto
|
|
endif
|
|
|
|
DO_CC=@echo $< && $(CC) $(LTO_CC) $(ALL_CFLAGS) -o $@ -c $<
|
|
|
|
ifeq ($(FTE_TARGET),vc)
|
|
BASELDFLAGS=
|
|
endif
|
|
ifeq ($(FTE_TARGET),cygwin)
|
|
BASELDFLAGS=-lm
|
|
endif
|
|
ifeq ($(FTE_TARGET),morphos)
|
|
BASELDFLAGS=-lm
|
|
endif
|
|
ifeq ($(FTE_TARGET),bsd)
|
|
BASELDFLAGS=-lm
|
|
endif
|
|
BASELDFLAGS ?= -lm -ldl -lpthread
|
|
|
|
ifeq ($(shell echo $(FTE_TARGET)|grep -v win),)
|
|
BASELDFLAGS=-lm
|
|
MINGW_LIBS_DIR=$(LIBS_DIR)/mingw-libs
|
|
|
|
ifeq ($(shell echo $(FTE_TARGET)|grep -v win64),)
|
|
MINGW_LIBS_DIR=$(LIBS_DIR)/mingw64-libs
|
|
endif
|
|
|
|
IMAGELDFLAGS=$(MINGW_LIBS_DIR)/libpng.a $(MINGW_LIBS_DIR)/libz.a $(MINGW_LIBS_DIR)/libjpeg.a
|
|
|
|
ifeq ($(shell echo $(FTE_TARGET)|grep -v -i _SDL),)
|
|
RELEASE_CFLAGS+= -D_SDL
|
|
SDL_LDFLAGS=$(MINGW_LIBS_DIR)/libSDL.a $(MINGW_LIBS_DIR)/libSDLmain.a
|
|
endif
|
|
endif
|
|
|
|
IMAGELDFLAGS ?= -lpng -ljpeg
|
|
|
|
#BASELDFLAGS=-lm -lz
|
|
GLXLDFLAGS=-L/usr/X11R6/lib -lX11 -lXext $(IMAGELDFLAGS)
|
|
GLSLDFLAGS=-L/usr/X11R6/lib -lMesaGL -lglide -lvga
|
|
XLDFLAGS=-L/usr/X11R6/lib -lX11 -lXext $(IMAGELDFLAGS)
|
|
SLDFLAGS=-lvga
|
|
|
|
ifeq ($(FTE_TARGET),vc)
|
|
WARNINGFLAGS=-W3 -D_CRT_SECURE_NO_WARNINGS
|
|
GNUC_FUNCS=
|
|
else
|
|
WARNINGFLAGS=-Wall -Wno-pointer-sign
|
|
|
|
GNUC_FUNCS= -Dstrnicmp=strncasecmp -Dstricmp=strcasecmp -D_vsnprintf=vsnprintf -D_snprintf=snprintf
|
|
endif
|
|
|
|
BASE_CFLAGS=$(WARNINGFLAGS) $(GNUC_FUNCS) -I$(CLIENT_DIR) -I$(SERVER_DIR) -I$(COMMON_DIR) -I$(GL_DIR) -I$(D3D_DIR) -I$(PROGS_DIR) -I$(LIBS_DIR) -I$(LIBS_DIR)/dxsdk9/include -I$(LIBS_DIR)/sdl/include -I/usr/include/SDL -I$(LIBS_DIR)/sdl/include/SDL -I./libs/freetype2/include -I./libs/freetype2/include/freetype -I./libs/speex $(SVNREVISION)
|
|
CLIENT_ONLY_CFLAGS=-DCLIENTONLY
|
|
SERVER_ONLY_CFLAGS=-DSERVERONLY
|
|
JOINT_CFLAGS=
|
|
DEBUG_CFLAGS=-ggdb -g
|
|
RELEASE_CFLAGS?=-O3 -ffast-math $(CPUOPTIMIZATIONS)
|
|
|
|
#incase our compiler doesn't support it (mingw)
|
|
ifeq ($(shell $(CC) -rdynamic 2>&1 | grep unrecognised),)
|
|
DEBUG_CFLAGS+= -rdynamic
|
|
endif
|
|
|
|
PROFILE_CFLAGS=-pg
|
|
|
|
DX7SDK=-I./libs/dxsdk7/include/
|
|
|
|
GLCFLAGS=-DGLQUAKE
|
|
D3DCFLAGS=-DD3DQUAKE
|
|
NPFTECFLAGS=-DNPFTE
|
|
|
|
CLIENT_OBJS = \
|
|
textedit.o \
|
|
fragstats.o \
|
|
teamplay.o \
|
|
zqtp.o \
|
|
cl_demo.o \
|
|
cl_ents.o \
|
|
clq2_ents.o \
|
|
cl_input.o \
|
|
cl_main.o \
|
|
cl_parse.o \
|
|
cl_pred.o \
|
|
cl_tent.o \
|
|
cl_cam.o \
|
|
cl_screen.o \
|
|
cl_ui.o \
|
|
cl_ignore.o \
|
|
cl_cg.o \
|
|
clq3_parse.o \
|
|
pr_csqc.o \
|
|
pr_skelobj.o \
|
|
console.o \
|
|
image.o \
|
|
keys.o \
|
|
menu.o \
|
|
m_download.o \
|
|
m_master.o \
|
|
m_multi.o \
|
|
m_items.o \
|
|
m_options.o \
|
|
m_single.o \
|
|
m_script.o \
|
|
m_mp3.o \
|
|
roq_read.o \
|
|
clq2_cin.o \
|
|
net_master.o \
|
|
r_part.o \
|
|
p_script.o \
|
|
p_null.o \
|
|
p_classic.o \
|
|
r_partset.o \
|
|
renderer.o \
|
|
renderque.o \
|
|
sbar.o \
|
|
skin.o \
|
|
snd_al.o \
|
|
snd_dma.o \
|
|
snd_mem.o \
|
|
snd_mix.o \
|
|
snd_mp3.o \
|
|
snd_ov.o \
|
|
valid.o \
|
|
view.o \
|
|
wad.o \
|
|
\
|
|
ftpclient.o \
|
|
httpclient.o \
|
|
\
|
|
\
|
|
pr_menu.o
|
|
|
|
GLQUAKE_OBJS = \
|
|
gl_draw.o \
|
|
gl_model.o \
|
|
gl_ngraph.o \
|
|
gl_backend.o \
|
|
gl_rlight.o \
|
|
gl_rmain.o \
|
|
gl_rmisc.o \
|
|
gl_font.o \
|
|
gl_heightmap.o \
|
|
gl_rsurf.o \
|
|
r_surf.o \
|
|
ltface.o \
|
|
r_2d.o \
|
|
gl_screen.o \
|
|
gl_bloom.o \
|
|
gl_shadow.o \
|
|
gl_shader.o \
|
|
gl_warp.o \
|
|
gl_vidcommon.o \
|
|
gl_hlmdl.o
|
|
|
|
D3DQUAKE_OBJS = \
|
|
d3d_backend.o \
|
|
d3d_image.o \
|
|
d3d_shader.o \
|
|
vid_d3d.o
|
|
|
|
D3DONLY_OBJS = \
|
|
gl_font.o \
|
|
gl_model.o \
|
|
gl_shader.o \
|
|
gl_rlight.o \
|
|
gl_warp.o \
|
|
ltface.o \
|
|
r_surf.o \
|
|
r_2d.o
|
|
|
|
MP3_OBJS = \
|
|
fixed.o \
|
|
bit.o \
|
|
timer.o \
|
|
stream.o \
|
|
frame.o \
|
|
synth.o \
|
|
decoder.o \
|
|
layer12.o \
|
|
layer3.o \
|
|
huffman.o \
|
|
mymad.o
|
|
|
|
PROGS_OBJS = \
|
|
comprout.o \
|
|
hash.o \
|
|
initlib.o \
|
|
pr_bgcmd.o \
|
|
pr_edict.o \
|
|
pr_exec.o \
|
|
pr_multi.o \
|
|
pr_x86.o \
|
|
qcc_cmdlib.o \
|
|
qccmain.o \
|
|
qcc_pr_comp.o \
|
|
qcc_pr_lex.o \
|
|
qcdecomp.o \
|
|
qcd_main.o
|
|
|
|
SERVER_OBJS = \
|
|
pr_cmds.o \
|
|
pr_q1qvm.o \
|
|
sv_master.o \
|
|
sv_init.o \
|
|
sv_main.o \
|
|
sv_nchan.o \
|
|
sv_ents.o \
|
|
sv_send.o \
|
|
sv_user.o \
|
|
sv_mvd.o \
|
|
sv_ccmds.o \
|
|
sv_rankin.o \
|
|
sv_chat.o \
|
|
sv_demo.o \
|
|
net_preparse.o \
|
|
savegame.o \
|
|
svq2_ents.o \
|
|
svq2_game.o \
|
|
svq3_game.o \
|
|
webgen.o \
|
|
ftpserver.o \
|
|
httpserver.o
|
|
|
|
SERVERONLY_OBJS = \
|
|
svmodel.o \
|
|
sv_sys_unix.o
|
|
|
|
WINDOWSSERVERONLY_OBJS = \
|
|
svmodel.o \
|
|
sv_sys_win.o
|
|
|
|
COMMON_OBJS = \
|
|
gl_alias.o \
|
|
com_mesh.o \
|
|
com_phys_ode.o \
|
|
common.o \
|
|
cvar.o \
|
|
cmd.o \
|
|
crc.o \
|
|
fs.o \
|
|
fs_stdio.o \
|
|
fs_pak.o \
|
|
fs_zip.o \
|
|
mathlib.o \
|
|
huff.o \
|
|
md4.o \
|
|
log.o \
|
|
net_chan.o \
|
|
net_wins.o \
|
|
zone.o \
|
|
qvm.o \
|
|
r_d3.o \
|
|
gl_q2bsp.o \
|
|
glmod_doom.o \
|
|
q3common.o \
|
|
world.o \
|
|
sv_phys.o \
|
|
sv_move.o \
|
|
pmove.o \
|
|
pmovetst.o \
|
|
iwebiface.o \
|
|
translate.o \
|
|
plugin.o \
|
|
q1bsp.o \
|
|
q2pmove.o
|
|
|
|
#the defaults for sdl come first
|
|
GLCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) gl_vidsdl.o snd_sdl.o cd_sdl.o sys_sdl.o in_sdl.o
|
|
GL_EXE_NAME=../fteqw_sdl.gl$(BITS)
|
|
GLCL_EXE_NAME=../fteqwcl_sdl.gl$(BITS)
|
|
ifdef windir
|
|
GL_LDFLAGS=$(GLLDFLAGS) -lmingw32 -lws2_32 `sdl-config --libs`
|
|
else
|
|
GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) `sdl-config --libs`
|
|
endif
|
|
GL_CFLAGS=$(GLCFLAGS) `sdl-config --cflags`
|
|
GLB_DIR=gl_sdl$(FTE_TARGET)$(BITS)
|
|
GLCL_DIR=glcl_sdl$(FTE_TARGET)$(BITS)
|
|
|
|
SV_OBJS=$(COMMON_OBJS) $(SERVER_OBJS) $(PROGS_OBJS) $(SERVERONLY_OBJS)
|
|
SV_EXE_NAME=../fteqw_sdl.sv$(BITS)
|
|
SV_CFLAGS=$(SERVER_ONLY_CFLAGS)
|
|
SV_LDFLAGS=-lz
|
|
|
|
MINGL_DIR=mingl_sdl$(FTE_TARGET)$(BITS)
|
|
MINGL_EXE_NAME=../fteqw_sdl.mingl$(BITS)
|
|
|
|
MB_DIR=m_sdl$(FTE_TARGET)$(BITS)
|
|
M_EXE_NAME=../fteqw_sdl$(BITS)
|
|
MCL_OBJS=$(GLQUAKE_OBJS) $(SOFTWARE_OBJS) gl_vidsdl.o snd_sdl.o cd_sdl.o sys_sdl.o in_sdl.o
|
|
M_CFLAGS=$(GLCFLAGS) `sdl-config --cflags` -D_MERGED_SDL
|
|
M_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS)
|
|
|
|
ifdef windir
|
|
M_LDFLAGS=$(MLDFLAGS) -lmingw32 -lws2_32 -lSDLmain -lSDL
|
|
else
|
|
#pthread is needed because of SDL.
|
|
M_LDFLAGS=$(MLDFLAGS) `sdl-config --libs` $(IMAGELDFLAGS)
|
|
endif
|
|
|
|
|
|
#specific targets override those defaults as needed.
|
|
|
|
#FTE_TARGET=win32_SDL | FTE_TARGET=win64_SDL (MinGW32 + SDL | MinGW64 + SDL)
|
|
ifeq ($(shell echo $(FTE_TARGET)|grep -E -i -v "win(32|64)_sdl$$"),)
|
|
LIBS_DIR=./libs
|
|
|
|
ifeq ($(shell echo $(FTE_TARGET)|grep -i -v "win64_sdl"),)
|
|
BITS=64
|
|
endif
|
|
|
|
#the defaults for sdl come first
|
|
GLCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) gl_vidsdl.o snd_sdl.o cd_sdl.o sys_sdl.o in_sdl.o snd_directx.o $(LTO_END) resources.o $(LTO_START)
|
|
GL_EXE_NAME=../fteqw_sdl_gl$(BITS).exe
|
|
GLCL_EXE_NAME=../fteqwcl_sdl$(BITS).exe
|
|
ifdef windir
|
|
GL_LDFLAGS=$(GLLDFLAGS) -lmingw32 -lws2_32 `sdl-config --libs`
|
|
else
|
|
GL_LDFLAGS=$(IMAGELDFLAGS) -lws2_32 -lmingw32 $(SDL_LDFLAGS) -mwindows -ldxguid -lwinmm -lole32 $(GLLDFLAGS) `sdl-config --libs`
|
|
endif
|
|
|
|
GL_CFLAGS=-D_SDL -I$(LIBS_DIR) -I$(MINGW_LIBS_DIR)/ -I$(MINGW_LIBS_DIR) $(GLCFLAGS) `sdl-config --cflags` $(DX7SDK)
|
|
ifeq ($(shell echo $(FTE_TARGET)|grep -E -i -v "win32.*sdl"),)
|
|
GL_CFLAGS+= -D_MINGW_VFPRINTF
|
|
endif
|
|
|
|
GLB_DIR=gl_mgw_sdl$(BITS)
|
|
GLCL_DIR=glcl_mgw_sdl$(BITS)
|
|
|
|
SV_OBJS=$(COMMON_OBJS) $(SERVER_OBJS) $(PROGS_OBJS) $(WINDOWSSERVERONLY_OBJS) $(LTO_END) resources.o $(LTO_START)
|
|
SV_EXE_NAME=../fteqw_sdl_sv$(BITS).exe
|
|
SV_CFLAGS=$(SERVER_ONLY_CFLAGS) -D_SDL
|
|
SV_LDFLAGS=$(MINGW_LIBS_DIR)/libz.a -lm -lmingw32 -lws2_32 -lwinmm
|
|
|
|
MINGL_DIR=mingl_sdlwin$(BITS)
|
|
MINGL_EXE_NAME=../fteqw_sdl_mingl$(BITS).exe
|
|
|
|
MB_DIR=m_mgw_sdl$(BITS)
|
|
M_EXE_NAME=../fteqw_sdl$(BITS).exe
|
|
MCL_OBJS=$(GLQUAKE_OBJS) $(SOFTWARE_OBJS) $(D3DQUAKE_OBJS) gl_vidsdl.o snd_sdl.o cd_sdl.o sys_sdl.o in_sdl.o snd_directx.o $(LTO_END) resources.o $(LTO_START)
|
|
M_CFLAGS=$(D3DCFLAGS) -D_SDL -I$(LIBS_DIR) -I$(MINGW_LIBS_DIR)/ -I$(MINGW_LIBS_DIR) $(GLCFLAGS) `sdl-config --cflags` -D_MERGED_SDL $(DX7SDK)
|
|
|
|
ifeq ($(shell echo $(FTE_TARGET)|grep -E -i -v "win32.*sdl"),)
|
|
M_CFLAGS+= -D_MINGW_VFPRINTF
|
|
endif
|
|
|
|
M_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS)
|
|
|
|
ifdef windir
|
|
M_LDFLAGS=$(MLDFLAGS) -lmingw32 -lws2_32 -lSDLmain -lSDL
|
|
else
|
|
#pthread is needed because of SDL.
|
|
M_LDFLAGS=$(IMAGELDFLAGS) -lws2_32 -lmingw32 $(MINGW_LIBS_DIR)/libSDL.a $(MINGW_LIBS_DIR)/libSDLmain.a -mwindows -ldxguid -lwinmm -lole32 $(MLDFLAGS) `sdl-config --libs` $(IMAGELDFLAGS)
|
|
endif
|
|
|
|
D3DCL_OBJS=$(D3DQUAKE_OBJS) snd_sdl.o cd_sdl.o sys_sdl.o in_sdl.o snd_directx.o $(D3DONLY_OBJS) $(LTO_END) resources.o $(LTO_START)
|
|
D3D_EXE_NAME=../fted3d_sdl_qw$(BITS).exe
|
|
D3DCL_EXE_NAME=../fted3d_sdl_clqw$(BITS).exe
|
|
D3D_LDFLAGS=$(IMAGELDFLAGS) -lws2_32 -lmingw32 $(SDL_LDFLAGS) -mwindows -ldxguid -lwinmm -lole32
|
|
D3D_CFLAGS=$(D3DCFLAGS) -D_SDL -DNO_XFLIP -I$(LIBS_DIR) -I$(MINGW_LIBS_DIR)/ -I$(MINGW_LIBS_DIR) `sdl-config --cflags` $(DX7SDK)
|
|
ifeq ($(shell echo $(FTE_TARGET)|grep -E -i -v "win32.*sdl"),)
|
|
D3D_CFLAGS+= -D_MINGW_VFPRINTF
|
|
endif
|
|
D3DB_DIR=sdl_d3d_mgw$(BITS)
|
|
D3DCL_DIR=sdl_d3dcl_mgw$(BITS)
|
|
|
|
endif
|
|
|
|
#FTE_TARGET=vc (Visual C)
|
|
ifeq ($(FTE_TARGET),vc)
|
|
CC=cl
|
|
DEBUG_CFLAGS ?= -Od $(CPUOPTIMIZATIONS) /fp:fast
|
|
PROFILE_CFLAGS = -O2 -Ot -Ox -GL $(CPUOPTIMISATIONS) /fp:fast
|
|
PROFILE_LDFLAGS = /LTCG:PGINSTRUMENT
|
|
RELEASE_CFLAGS = -O2 -Ot -Ox -GL $(CPUOPTIMIZATIONS) /fp:fast
|
|
RELEASE_LDFLAGS = /LTCG:PGOPTIMIZE
|
|
|
|
|
|
DO_CC=@$(CC) /nologo $(ALL_CFLAGS) -Fo$@ -c $<
|
|
DO_LD=link /nologo /out:$@ wsock32.lib user32.lib advapi32.lib winmm.lib libs/zlib.lib shell32.lib /nodefaultlib:libc.lib /nodefaultlib:MSVCRT /manifest:no /OPT:REF
|
|
PRECOMPHEADERS =
|
|
NODEPS = 1
|
|
|
|
LIBS_DIR=./libs/
|
|
|
|
SV_CFLAGS=$(SERVER_ONLY_CFLAGS) $(W32_CFLAGS)
|
|
SV_EXE_NAME=../fteqwsv.exe
|
|
SV_DIR=sv_vc
|
|
SV_OBJS=$(COMMON_OBJS) $(SERVER_OBJS) $(PROGS_OBJS) $(WINDOWSSERVERONLY_OBJS) fs_win32.o resources.o
|
|
SV_LDFLAGS=/subsystem:console
|
|
|
|
M_EXE_NAME=../fteqw.exe
|
|
MCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) fs_win32.o gl_vidnt.o snd_win.o snd_directx.o cd_win.o in_win.o sys_win.o resources.o
|
|
M_CFLAGS=$(GLCFLAGS) $(W32_CFLAGS) $(D3DCFLAGS)
|
|
MB_DIR=m_vc
|
|
M_LDFLAGS=$(GLLDFLAGS) libs/jpeg.lib libs/libpng.lib libs/zlib.lib uuid.lib gdi32.lib ole32.lib /subsystem:windows
|
|
endif
|
|
|
|
#FTE_TARGET=win32 | FTE_TARGET=win64 (MinGW32 | MinGW64)
|
|
ifeq ($(shell echo $(FTE_TARGET)|grep -E -v "win(32|64)$$"),)
|
|
# The extra object file called resources.o is specific for MinGW to link the icon in
|
|
|
|
#cygwin's gcc requires an extra command to use mingw instead of cygwin (default paths, etc).
|
|
ifneq ($(shell $(CC) -v 2>&1 | grep cygwin),)
|
|
W32_CFLAGS=-mno-cygwin
|
|
endif
|
|
|
|
ifeq ($(FTE_TARGET),win64)
|
|
BITS=64
|
|
endif
|
|
|
|
SV_CFLAGS=$(SERVER_ONLY_CFLAGS) $(W32_CFLAGS)
|
|
|
|
LIBS_DIR = $(BASE_DIR)/libs
|
|
SV_EXE_NAME=../fteqwsv$(BITS).exe
|
|
SV_LDFLAGS=$(MINGW_LIBS_DIR)/libz.a -lws2_32 -lwinmm
|
|
SV_DIR=sv_mingw$(BITS)
|
|
SV_OBJS=$(COMMON_OBJS) $(SERVER_OBJS) $(PROGS_OBJS) $(WINDOWSSERVERONLY_OBJS) fs_win32.o $(LTO_END) resources.o $(LTO_START)
|
|
|
|
|
|
GLCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) fs_win32.o gl_vidnt.o snd_win.o snd_directx.o cd_win.o in_win.o sys_win.o $(LTO_END) resources.o $(LTO_START)
|
|
GL_EXE_NAME=../fteglqw$(BITS).exe
|
|
GLCL_EXE_NAME=../fteglqwcl$(BITS).exe
|
|
GL_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32
|
|
GL_CFLAGS=$(GLCFLAGS) $(W32_CFLAGS) $(DX7SDK)
|
|
GLB_DIR=gl_mgw$(BITS)
|
|
GLCL_DIR=glcl_mgw$(BITS)
|
|
|
|
NPFTECL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) fs_win32.o gl_vidnt.o snd_win.o snd_directx.o cd_win.o in_win.o sys_win.o sys_npfte.o sys_axfte.o sys_plugfte.o $(LTO_END) npplug.o ../../ftequake/npapi.def $(LTO_START)
|
|
NPFTE_DLL_NAME=../npfte$(BITS).dll
|
|
NPFTECL_DLL_NAME=../npftecl$(BITS).dll
|
|
NPFTE_LDFLAGS=-Wl,--enable-stdcall-fixup $(GLLDFLAGS) $(IMAGELDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32 -loleaut32 -luuid -lstdc++ -shared
|
|
NPFTE_CFLAGS=$(NPFTECFLAGS) $(GLCFLAGS) $(W32_CFLAGS) $(DX7SDK) -DMULTITHREAD
|
|
NPFTEB_DIR=npfte_mgw$(BITS)
|
|
NPFTECL_DIR=npqtvcl_mgw$(BITS)
|
|
|
|
MCL_OBJS=$(GLQUAKE_OBJS) $(SOFTWARE_OBJS) $(D3DQUAKE_OBJS) fs_win32.o gl_vidnt.o snd_win.o snd_directx.o cd_win.o in_win.o sys_win.o $(LTO_END) resources.o $(LTO_START)
|
|
M_EXE_NAME=../fteqw$(BITS).exe
|
|
MCL_EXE_NAME=../fteqwcl$(BITS).exe
|
|
M_LDFLAGS=$(GLLDFLAGS) $(IMAGELDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32
|
|
M_CFLAGS=$(GLCFLAGS) $(W32_CFLAGS) $(D3DCFLAGS) $(DX7SDK)
|
|
MB_DIR=m_mgw$(BITS)
|
|
MCL_DIR=mcl_mgw$(BITS)
|
|
|
|
D3DCL_OBJS=$(D3DQUAKE_OBJS) snd_win.o snd_directx.o cd_win.o in_win.o sys_win.o $(D3DONLY_OBJS) fs_win32.o $(LTO_END) resources.o $(LTO_START)
|
|
D3D_EXE_NAME=../fted3dqw$(BITS).exe
|
|
D3DCL_EXE_NAME=../fted3dclqw$(BITS).exe
|
|
D3D_LDFLAGS=$(IMAGELDFLAGS) -ldxguid -lws2_32 -lwinmm -lgdi32 -lole32
|
|
D3D_CFLAGS=$(D3DCFLAGS) $(W32_CFLAGS) $(DX7SDK)
|
|
D3DB_DIR=d3d_mgw$(BITS)
|
|
D3DCL_DIR=d3dcl_mgw$(BITS)
|
|
|
|
MINGL_EXE_NAME=../fteminglqw$(BITS).exe
|
|
MINGL_DIR=mingl_mgw$(BITS)
|
|
endif
|
|
|
|
ifeq ($(FTE_TARGET),bsd)
|
|
#mostly uses the linux stuff.
|
|
#oss, X, etc.
|
|
|
|
SV_DIR=sv_linux
|
|
SV_LDFLAGS=-lz -ldl
|
|
|
|
GLCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) gl_vidlinuxglx.o snd_linux.o cd_null.o sys_linux.o
|
|
GL_EXE_NAME=../fteqw.gl
|
|
GLCL_EXE_NAME=../fteqwcl.gl
|
|
GL_LDFLAGS= -L/usr/local/lib $(GLLDFLAGS) $(GLXLDFLAGS) -lXxf86vm -lpthread
|
|
GL_CFLAGS=$(GLCFLAGS) -I/usr/local/include -I/usr/X11R6/include
|
|
GLB_DIR=gl_bsd
|
|
GLCL_DIR=glcl_bsd
|
|
|
|
MCL_OBJS=$(GLQUAKE_OBJS) $(SOFTWARE_OBJS) gl_vidlinuxglx.o snd_linux.o cd_null.o sys_linux.o
|
|
M_EXE_NAME=../fteqw
|
|
MCL_EXE_NAME=../fteqwcl
|
|
M_LDFLAGS=$(GLLDFLAGS) $(GLXLDFLAGS) -lXxf86vm -lpthread
|
|
M_CFLAGS=$(GLCFLAGS) -I/usr/X11R6/include
|
|
MB_DIR=m_bsd
|
|
MCL_DIR=mcl_bsd
|
|
|
|
MINGL_EXE_NAME=../fteqw.mingl
|
|
MINGL_DIR=mingl_bsd
|
|
endif
|
|
ifneq ($(shell echo $(FTE_TARGET)|grep linux),)
|
|
|
|
SV_DIR=sv_linux$(BITS)
|
|
SV_LDFLAGS=-lz
|
|
SV_EXE_NAME=../fteqw.sv$(BITS)
|
|
|
|
GLCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) gl_vidlinuxglx.o snd_alsa.o snd_linux.o cd_linux.o sys_linux.o
|
|
GL_EXE_NAME=../fteqw.gl$(BITS)
|
|
GLCL_EXE_NAME=../fteqwcl.gl$(BITS)
|
|
GL_LDFLAGS=$(GLLDFLAGS) $(GLXLDFLAGS) -lXxf86vm -lXxf86dga
|
|
GL_CFLAGS=$(GLCFLAGS) -I/usr/X11R6/include -DUSE_DGA
|
|
GLB_DIR=gl_linux$(BITS)
|
|
GLCL_DIR=glcl_linux$(BITS)
|
|
|
|
MCL_OBJS=$(GLQUAKE_OBJS) $(SOFTWARE_OBJS) gl_vidlinuxglx.o snd_linux.o snd_alsa.o cd_linux.o sys_linux.o
|
|
M_EXE_NAME=../fteqw$(BITS)
|
|
MCL_EXE_NAME=../fteqwcl$(BITS)
|
|
M_LDFLAGS=$(GLLDFLAGS) $(GLXLDFLAGS) -lXxf86vm -lXxf86dga
|
|
M_CFLAGS=$(GLCFLAGS) -I/usr/X11R6/include
|
|
MB_DIR=m_linux$(BITS)
|
|
MCL_DIR=mcl_linux$(BITS)
|
|
|
|
|
|
|
|
MINGL_EXE_NAME=../fteqw.mingl$(BITS)
|
|
MINGL_DIR=mingl_linux$(BITS)
|
|
endif
|
|
ifneq ($(shell echo $(FTE_TARGET)|grep macosx),)
|
|
SV_DIR=sv_macosx$(EXTENSION)$(BITS)
|
|
GLB_DIR=gl_macosx$(EXTENSION)$(BITS)
|
|
GLCL_DIR=glcl_macosx$(EXTENSION)$(BITS)
|
|
MINGL_DIR=mingl_macosx$(EXTENSION)$(BITS)
|
|
|
|
GL_CFLAGS=$(GLCFLAGS) -D__MACOSX__ -L/sw/lib -I/sw/include -L/opt/local/lib -I/opt/local/include -I$(LIBS_DIR)
|
|
ifeq ($(WHOAMI),moodles)
|
|
GL_CFLAGS+= -I/home/moodles/mac/include/ -L/home/moodles/mac/lib
|
|
endif
|
|
|
|
ifeq ($(FTE_TARGET),macosx_x86)
|
|
GL_CFLAGS=$(GLCFLAGS) -D__MACOSX__ -L/sw/lib -I/sw/include -L/opt/local/lib -I/opt/local/include -I$(LIBS_DIR)
|
|
ifeq ($(WHOAMI),moodles)
|
|
GL_CFLAGS+= -I/home/moodles/mac/x86/include/ -L/home/moodles/mac/x86/lib
|
|
endif
|
|
endif
|
|
|
|
GL_LDFLAGS=-framework AGL -framework OpenGL -framework Cocoa -framework AudioUnit -lz -lpng -ljpeg
|
|
GLCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) gl_vidcocoa.mo gl_vidmacos.o sys_linux.o in_macos.o cd_null.o snd_macos.o
|
|
|
|
GL_EXE_NAME=../macosx_fteqw.gl$(EXTENSION)$(BITS)
|
|
GLCL_EXE_NAME=../macosx_fteqwcl.gl$(EXTENSION)$(BITS)
|
|
M_EXE_NAME=../macosx_fteqw$(EXTENSION)$(BITS)
|
|
MCL_EXE_NAME=../macosx_fteqwcl$(EXTENSION)$(BITS)
|
|
MINGL_EXE_NAME=../macosx_fteqw.mingl$(EXTENSION)$(BITS)
|
|
MINGL_DIR=mingl_macosx$(EXTENSION)$(BITS)
|
|
|
|
SV_OBJS=$(COMMON_OBJS) $(SERVER_OBJS) $(PROGS_OBJS) $(SERVERONLY_OBJS)
|
|
SV_EXE_NAME=../macosx_fteqw.sv$(EXTENSION)$(BITS)
|
|
SV_CFLAGS=$(SERVER_ONLY_CFLAGS)
|
|
SV_LDFLAGS=-lz
|
|
|
|
#seems, macosx has a more limited version of strip
|
|
STRIPFLAGS=
|
|
endif
|
|
ifeq ($(FTE_TARGET),morphos)
|
|
#-Wno-pointer-sign unrecognised
|
|
WARNINGFLAGS=-Wall
|
|
|
|
SV_DIR=sv_morphos
|
|
SV_LDFLAGS=-ldl -lz
|
|
|
|
GLCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) gl_vidmorphos.o in_morphos.o snd_morphos.o cd_null.o sys_morphos.o
|
|
GL_EXE_NAME=../morphos_fteqw.gl
|
|
GLCL_EXE_NAME=../morphos_fteqwcl.gl
|
|
GL_LDFLAGS=$(GLLDFLAGS) -ldl $(IMAGELDFLAGS) -lz
|
|
GL_CFLAGS=$(GLCFLAGS) -noixemul -I./libs/speex -I./
|
|
GLB_DIR=gl_morphos
|
|
GLCL_DIR=glcl_morphos
|
|
|
|
MCL_OBJS=$(GLQUAKE_OBJS) $(SOFTWARE_OBJS) gl_vidmorphos.o vid_morphos.o in_morphos.o snd_morphos.o cd_null.o sys_morphos.o
|
|
M_EXE_NAME=../morphos_fteqw
|
|
MCL_EXE_NAME=../morphos_fteqwcl
|
|
M_LDFLAGS=$(GLLDFLAGS)
|
|
M_CFLAGS=$(GLCFLAGS)
|
|
MB_DIR=m_morphos
|
|
MCL_DIR=mcl_morphos
|
|
|
|
MINGL_EXE_NAME=../morphos_fteqw.mingl
|
|
MINGL_DIR=mingl_morphos
|
|
|
|
SV_OBJS=$(COMMON_OBJS) $(SERVER_OBJS) $(PROGS_OBJS) $(SERVERONLY_OBJS)
|
|
SV_EXE_NAME=../morphos_fteqw.sv$(BITS)
|
|
SV_CFLAGS=$(SERVER_ONLY_CFLAGS)
|
|
|
|
ifeq ($(WHOAMI),moodles)
|
|
SV_CFLAGS+=-I/home/moodles/zlib/zlib-1.2.5 -L/home/moodles/zlib/zlib-1.2.5 -I/home/moodles/fteqw/trunk/engine/libs
|
|
endif
|
|
endif
|
|
|
|
|
|
ifeq ($(FTE_TARGET),cygwin)
|
|
|
|
SV_DIR=sv_cygwin
|
|
SV_LDFLAGS=-lz
|
|
|
|
GLCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) gl_vidlinuxglx.o snd_linux.o cd_null.o sys_linux.o
|
|
GL_EXE_NAME=../fteqwglcyg.exe
|
|
GLCL_EXE_NAME=../fteqwclglcyg.exe
|
|
GL_LDFLAGS=$(GLLDFLAGS) $(GLXLDFLAGS)
|
|
GL_CFLAGS=$(GLCFLAGS) -I/usr/X11R6/include
|
|
GLB_DIR=gl_cygwin
|
|
GLCL_DIR=glcl_cygwin
|
|
|
|
MCL_OBJS=$(GLQUAKE_OBJS) $(SOFTWARE_OBJS) gl_vidlinuxglx.o snd_linux.o cd_null.o sys_linux.o
|
|
M_EXE_NAME=../fteqwcyg.exe
|
|
MCL_EXE_NAME=../fteqwclcyg.exe
|
|
M_LDFLAGS=$(GLLDFLAGS) $(GLXLDFLAGS)
|
|
M_CFLAGS=$(GLCFLAGS)
|
|
MB_DIR=m_cygwin
|
|
MCL_DIR=mcl_cygwin
|
|
|
|
|
|
|
|
MINGL_EXE_NAME=../fteqwminglcyg.exe
|
|
MINGL_DIR=mingl_cygwin
|
|
endif
|
|
|
|
ifeq ($(FTE_TARGET),droid)
|
|
BASELDFLAGS=
|
|
|
|
SV_DIR=sv_droid
|
|
SV_LDFLAGS=-lz
|
|
SV_OBJS=$(COMMON_OBJS) $(SERVER_OBJS) $(PROGS_OBJS) svmodel.o sys_droid.o
|
|
SV_EXE_NAME=../libftedroid.so
|
|
|
|
SV_LDFLAGS=
|
|
|
|
GLCL_OBJS=$(GL_OBJS) $(GLQUAKE_OBJS) gl_viddroid.o sys_droid.o cd_null.o snd_droid.o
|
|
GL_LDFLAGS=$(GLLDFLAGS)
|
|
GLB_DIR=gl_droid
|
|
GL_EXE_NAME=../libftedroid.so
|
|
endif
|
|
|
|
SV_DIR?=sv_sdl
|
|
|
|
.default: help
|
|
all: rel
|
|
rel: sv-rel gl-rel mingl-rel
|
|
dbg: sv-dbg gl-dbg mingl-dbg
|
|
relcl: glcl-rel mcl-rel
|
|
profile: sv-profile gl-profile mingl-profile
|
|
|
|
releases:
|
|
#this is for releasing things from a linux box
|
|
#just go through compiling absolutly everything
|
|
-$(MAKE) FTE_TARGET=linux32 rel
|
|
-$(MAKE) FTE_TARGET=linux64 rel
|
|
-$(MAKE) FTE_TARGET=win32 rel
|
|
-$(MAKE) FTE_TARGET=win64 rel
|
|
-$(MAKE) FTE_TARGET=win32_SDL rel
|
|
-$(MAKE) FTE_TARGET=win64_SDL rel
|
|
-$(MAKE) FTE_TARGET=morphos rel
|
|
-$(MAKE) FTE_TARGET=macosx rel
|
|
# -$(MAKE) FTE_TARGET=linux32 relcl
|
|
# -$(MAKE) FTE_TARGET=linux64 relcl
|
|
# -$(MAKE) FTE_TARGET=win32 relcl
|
|
-$(MAKE) droid-rel
|
|
-$(MAKE) FTE_TARGET=win32 npfte-rel
|
|
|
|
autoconfig: clean
|
|
/bin/bash makeconfig.sh y
|
|
|
|
config: clean
|
|
/bin/bash makeconfig.sh
|
|
|
|
ifneq ($(OUT_DIR),)
|
|
-include $(OUT_DIR)/*.o.d
|
|
endif
|
|
|
|
|
|
VPATH = $(BASE_DIR) : $(CLIENT_DIR) : $(GL_DIR) : $(COMMON_DIR) : $(SERVER_DIR) : $(HTTP_DIR) : $(BASE_DIR)/irc : $(BASE_DIR)/email : $(QUX_DIR) : $(PROGS_DIR) : $(SNDCODEC_DIR) : $(D3D_DIR)
|
|
|
|
# This is for linking the FTE icon to the MinGW target
|
|
$(OUT_DIR)/resources.o : winquake.rc
|
|
$(WINDRES) -I$(CLIENT_DIR) -O coff $< $@
|
|
|
|
#npAPI stuff requires some extra resources
|
|
$(OUT_DIR)/npplug.o : ftequake/npplug.rc
|
|
$(WINDRES) -I$(CLIENT_DIR) -O coff $< $@
|
|
|
|
|
|
#$(OUT_DIR)/%.d: %.c
|
|
# @set -e; rm -f $@; \
|
|
# $(CC) -MM $(ALL_CFLAGS) $< > $@.$$$$; \
|
|
# sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
|
|
# rm -f $@.$$$$
|
|
|
|
$(OUT_DIR)/%.o $(OUT_DIR)/%.d : %.c
|
|
ifeq ($(NODEPS),)
|
|
@set -e; rm -f $@.d; \
|
|
$(CC) -MM $(ALL_CFLAGS) $< > $@.d.$$$$; \
|
|
sed 's,\($*\)\.o[ :]*,$@ $@.d : ,g' < $@.d.$$$$ > $@.d; \
|
|
sed -e 's/.*://' -e 's/\\$$//' < $@.d.$$$$ | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $@.d; \
|
|
rm -f $@.d.$$$$
|
|
endif
|
|
$(DO_CC) -I$(OUT_DIR)
|
|
|
|
$(OUT_DIR)/%.o $(OUT_DIR)/%.d : %.cpp
|
|
ifeq ($(NODEPS),)
|
|
@set -e; rm -f $@.d; \
|
|
$(CC) -MM $(ALL_CFLAGS) $< > $@.d.$$$$; \
|
|
sed 's,\($*\)\.o[ :]*,$@ $@.d : ,g' < $@.d.$$$$ > $@.d; \
|
|
sed -e 's/.*://' -e 's/\\$$//' < $@.d.$$$$ | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $@.d; \
|
|
rm -f $@.d.$$$$
|
|
endif
|
|
$(DO_CC) -I$(OUT_DIR)
|
|
|
|
$(OUT_DIR)/%.oo $(OUT_DIR)/%.d : %.c
|
|
ifeq ($(NODEPS),)
|
|
@set -e; rm -f $@.d; \
|
|
$(CC) -MM $(ALL_CFLAGS) $< > $@.d.$$$$; \
|
|
sed 's,\($*\)\.oo[ :]*,$@ $@.d : ,g' < $@.d.$$$$ > $@.d; \
|
|
sed -e 's/.*://' -e 's/\\$$//' < $@.d.$$$$ | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $@.d; \
|
|
rm -f $@.d.$$$$
|
|
endif
|
|
$(DO_CC) -I$(OUT_DIR)
|
|
|
|
$(OUT_DIR)/%.mo $(OUT_DIR)/%.d : %.m
|
|
@set -e; rm -f $@.d; \
|
|
$(CC) -MM $(ALL_CFLAGS) $< > $@.d.$$$$; \
|
|
sed 's,\($*\)\.mo[ :]*,$@ $@.d : ,g' < $@.d.$$$$ > $@.d; \
|
|
sed -e 's/.*://' -e 's/\\$$//' < $@.d.$$$$ | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $@.d; \
|
|
rm -f $@.d.$$$$
|
|
$(DO_CC) -I$(OUT_DIR)
|
|
|
|
#enables use of precompiled headers in gcc 3.4 onwards.
|
|
$(OUT_DIR)/quakedef.h.gch : quakedef.h
|
|
$(CC) -x c $(BASE_CFLAGS) $(WCFLAGS) -o $@ -c $< $(CFLAGS)
|
|
PRECOMPHEADERS ?= $(OUT_DIR)/quakedef.h.gch
|
|
|
|
#addprefix is to add the ./release/server/ part of the object name
|
|
#foreach is needed as the OBJS is a list of variable names containing object lists.
|
|
#which is needed as windows sucks too much for the chaining to carry a full list.
|
|
#god knows how gcc loads the list properly.
|
|
#or at least I hope he does. It makes no sence to mortals.
|
|
|
|
DO_LD ?= $(CC) -o $@ $(LTO_LD) $(WCFLAGS) $(CFLAGS)
|
|
$(OUT_DIR)/$(EXE_NAME): $(PRECOMPHEADERS) $(foreach fn, $(CUSTOMOBJS) $(foreach ol, $(OBJS), $($(ol))),$(if $(findstring ltox,$(fn)),,$(OUT_DIR)/$(fn)))
|
|
$(DO_LD) $(foreach fn, $(CUSTOMOBJS) $(foreach ol, $(OBJS) $(LTO_END), $($(ol))),$(if $(findstring ltox,$(fn)),$(subst ltox,-x ,$(fn)),$(OUT_DIR)/$(fn)) ) $(LDFLAGS)
|
|
|
|
_out-rel:
|
|
$(MAKE) $(OUT_DIR)/$(EXE_NAME) EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(WCFLAGS) $(RELEASE_CFLAGS)" LDFLAGS="$(BASELDFLAGS) $(LDFLAGS) $(RELEASE_LDFLAGS)" OBJS="$(OBJS)"
|
|
$(STRIP) $(STRIPFLAGS) $(OUT_DIR)/$(EXE_NAME)
|
|
|
|
_out-dbg:
|
|
$(MAKE) $(OUT_DIR)/$(EXE_NAME) EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(WCFLAGS) $(DEBUG_CFLAGS)" LDFLAGS="$(BASELDFLAGS) $(LDFLAGS) $(DEBUG_LDFLAGS)" OBJS="$(OBJS)"
|
|
|
|
_out-profile:
|
|
$(MAKE) $(OUT_DIR)/$(EXE_NAME) EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(WCFLAGS) $(PROFILE_CFLAGS)" LDFLAGS="$(BASELDFLAGS) $(LDFLAGS) $(PROFILE_LDFLAGS)" OBJS="$(OBJS)"
|
|
|
|
_cl-rel: reldir
|
|
$(MAKE) _out-rel EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(CLIENT_ONLY_CFLAGS) $(WCFLAGS)" LDFLAGS="$(LDFLAGS)" SOBJS="$(SOBJS)" OBJS="SOBJS COMMON_OBJS CLIENT_OBJS PROGS_OBJS"
|
|
|
|
_cl-dbg: debugdir
|
|
$(MAKE) _out-dbg EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(CLIENT_ONLY_CFLAGS) $(WCFLAGS)" LDFLAGS="$(LDFLAGS)" SOBJS="$(SOBJS)" OBJS="SOBJS COMMON_OBJS CLIENT_OBJS PROGS_OBJS"
|
|
|
|
_cl-profile: reldir
|
|
$(MAKE) _out-profile EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(CLIENT_ONLY_CFLAGS) $(WCFLAGS)" LDFLAGS="$(LDFLAGS)" SOBJS="$(SOBJS)" OBJS="SOBJS COMMON_OBJS CLIENT_OBJS PROGS_OBJS"
|
|
|
|
_clsv-rel: reldir
|
|
$(MAKE) _out-rel EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(JOINT_CFLAGS) $(WCFLAGS)" LDFLAGS="$(LDFLAGS)" SOBJS="$(SOBJS)" OBJS="SOBJS COMMON_OBJS CLIENT_OBJS PROGS_OBJS SERVER_OBJS"
|
|
|
|
_clsv-dbg: debugdir
|
|
$(MAKE) _out-dbg EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(JOINT_CFLAGS) $(WCFLAGS)" LDFLAGS="$(LDFLAGS)" SOBJS="$(SOBJS)" OBJS="SOBJS COMMON_OBJS CLIENT_OBJS PROGS_OBJS SERVER_OBJS"
|
|
|
|
_clsv-profile: reldir
|
|
$(MAKE) _out-profile EXE_NAME="$(EXE_NAME)" OUT_DIR="$(OUT_DIR)" WCFLAGS="$(JOINT_CFLAGS) $(WCFLAGS)" LDFLAGS="$(LDFLAGS)" SOBJS="$(SOBJS)" OBJS="SOBJS COMMON_OBJS CLIENT_OBJS PROGS_OBJS SERVER_OBJS"
|
|
|
|
sv-tmp: reldir debugdir
|
|
$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(SV_EXE_NAME)" WCFLAGS="$(SV_CFLAGS)" LDFLAGS="$(SV_LDFLAGS) $(LDFLAGS)" OBJS="SV_OBJS"
|
|
sv-rel:
|
|
$(MAKE) sv-tmp TYPE=_out-rel OUT_DIR="$(RELEASE_DIR)/$(SV_DIR)"
|
|
sv-dbg:
|
|
$(MAKE) sv-tmp TYPE=_out-dbg OUT_DIR="$(DEBUG_DIR)/$(SV_DIR)"
|
|
sv-profile:
|
|
$(MAKE) sv-tmp TYPE=_out-profile OUT_DIR="$(PROFILE_DIR)/$(SV_DIR)"
|
|
|
|
d3dcl-tmp:
|
|
$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(D3DCL_EXE_NAME)" WCFLAGS="$(D3D_CFLAGS)" LDFLAGS="$(D3D_LDFLAGS) $(LDFLAGS)" SOBJS="$(D3DCL_OBJS)"
|
|
d3d-tmp:
|
|
$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(D3D_EXE_NAME)" WCFLAGS="$(D3D_CFLAGS)" LDFLAGS="$(D3D_LDFLAGS) $(LDFLAGS)" SOBJS="$(D3DCL_OBJS)"
|
|
|
|
d3dcl-rel:
|
|
$(MAKE) d3dcl-tmp TYPE=_cl-rel OUT_DIR="$(RELEASE_DIR)/$(D3DCL_DIR)"
|
|
d3dcl-dbg:
|
|
$(MAKE) d3dcl-tmp TYPE=_cl-dbg OUT_DIR="$(DEBUG_DIR)/$(D3DCL_DIR)"
|
|
d3dcl-profile:
|
|
$(MAKE) d3dcl-tmp TYPE=_cl-profile OUT_DIR="$(PROFILE_DIR)/$(D3DCL_DIR)"
|
|
|
|
d3d-rel:
|
|
$(MAKE) d3d-tmp TYPE=_clsv-rel OUT_DIR="$(RELEASE_DIR)/$(D3DB_DIR)"
|
|
d3d-dbg:
|
|
$(MAKE) d3d-tmp TYPE=_clsv-dbg OUT_DIR="$(DEBUG_DIR)/$(D3DB_DIR)"
|
|
d3d-profile:
|
|
$(MAKE) d3d-tmp TYPE=_clsv-profile OUT_DIR="$(PROFILE_DIR)/$(D3DB_DIR)"
|
|
|
|
|
|
npqtvcl-tmp:
|
|
$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(NPFTECL_DLL_NAME)" WCFLAGS="$(NPFTE_CFLAGS)" LDFLAGS="$(NPFTE_LDFLAGS) $(LDFLAGS)" SOBJS="$(NPFTECL_OBJS)"
|
|
npfte-tmp:
|
|
$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(NPFTE_DLL_NAME)" WCFLAGS="$(NPFTE_CFLAGS)" LDFLAGS="$(NPFTE_LDFLAGS) $(LDFLAGS)" SOBJS="$(NPFTECL_OBJS)"
|
|
|
|
npqtvcl-rel:
|
|
$(MAKE) npqtvcl-tmp TYPE=_cl-rel OUT_DIR="$(RELEASE_DIR)/$(NPFTECL_DIR)"
|
|
npqtvcl-dbg:
|
|
$(MAKE) npqtvcl-tmp TYPE=_cl-dbg OUT_DIR="$(DEBUG_DIR)/$(NPFTECL_DIR)"
|
|
npqtvcl-profile:
|
|
$(MAKE) npqtvcl-tmp TYPE=_cl-profile OUT_DIR="$(PROFILE_DIR)/$(NPFTECL_DIR)"
|
|
npfte-rel:
|
|
$(MAKE) npfte-tmp TYPE=_cl-rel OUT_DIR="$(RELEASE_DIR)/$(NPFTEB_DIR)"
|
|
cp $(RELEASE_DIR)/npfte.dll npfte/plugins
|
|
cd npfte && zip $(abspath $(RELEASE_DIR)/npfte.xpi) install.rdf plugins/npfte.dll
|
|
rm -rf /tmp/npfte
|
|
mkdir /tmp/npfte
|
|
cp $(RELEASE_DIR)/npfte.dll /tmp/npfte
|
|
cp ./npfte/manifest.json /tmp/npfte
|
|
cd $(RELEASE_DIR)/ && ../npfte/crxmake.sh /tmp/npfte ../npfte/chrome.pem
|
|
rm -rf /tmp/npfte
|
|
npfte-dbg:
|
|
$(MAKE) npfte-tmp TYPE=_clsv-dbg OUT_DIR="$(DEBUG_DIR)/$(NPFTEB_DIR)"
|
|
npfte-profile:
|
|
$(MAKE) npfte-tmp TYPE=_cl-profile OUT_DIR="$(PROFILE_DIR)/$(NPFTEB_DIR)"
|
|
|
|
glcl-tmp:
|
|
$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(GLCL_EXE_NAME)" WCFLAGS="$(GL_CFLAGS)" LDFLAGS="$(GL_LDFLAGS) $(LDFLAGS)" SOBJS="$(GLCL_OBJS)"
|
|
gl-tmp:
|
|
$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(GL_EXE_NAME)" WCFLAGS="$(GL_CFLAGS)" LDFLAGS="$(GL_LDFLAGS) $(LDFLAGS)" SOBJS="$(GLCL_OBJS)"
|
|
|
|
glcl-rel:
|
|
$(MAKE) glcl-tmp TYPE=_cl-rel OUT_DIR="$(RELEASE_DIR)/$(GLCL_DIR)"
|
|
glcl-dbg:
|
|
$(MAKE) glcl-tmp TYPE=_cl-dbg OUT_DIR="$(DEBUG_DIR)/$(GLCL_DIR)"
|
|
glcl-profile:
|
|
$(MAKE) glcl-tmp TYPE=_cl-profile OUT_DIR="$(PROFILE_DIR)/$(GLCL_DIR)"
|
|
gl-rel:
|
|
$(MAKE) gl-tmp TYPE=_clsv-rel OUT_DIR="$(RELEASE_DIR)/$(GLB_DIR)"
|
|
gl-dbg:
|
|
$(MAKE) gl-tmp TYPE=_clsv-dbg OUT_DIR="$(DEBUG_DIR)/$(GLB_DIR)"
|
|
gl-profile:
|
|
$(MAKE) gl-tmp TYPE=_clsv-profile OUT_DIR="$(PROFILE_DIR)/$(GLB_DIR)"
|
|
|
|
mingl-tmp: reldir
|
|
$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(MINGL_EXE_NAME)" WCFLAGS="$(GL_CFLAGS) -DMINIMAL" LDFLAGS="$(GL_LDFLAGS) $(LDFLAGS)" SOBJS="$(GLCL_OBJS)"
|
|
mingl-rel:
|
|
$(MAKE) mingl-tmp TYPE=_cl-rel OUT_DIR="$(RELEASE_DIR)/$(MINGL_DIR)"
|
|
mingl-dbg:
|
|
$(MAKE) mingl-tmp TYPE=_cl-dbg OUT_DIR="$(DEBUG_DIR)/$(MINGL_DIR)"
|
|
mingl-profile:
|
|
$(MAKE) mingl-tmp TYPE=_cl-profile OUT_DIR="$(PROFILE_DIR)/$(MINGL_DIR)"
|
|
|
|
mcl-tmp:
|
|
$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(MCL_EXE_NAME)" WCFLAGS="$(M_CFLAGS)" LDFLAGS="$(M_LDFLAGS) $(LDFLAGS)" SOBJS="$(MCL_OBJS)"
|
|
m-tmp:
|
|
$(MAKE) $(TYPE) OUT_DIR="$(OUT_DIR)" EXE_NAME="$(M_EXE_NAME)" WCFLAGS="$(M_CFLAGS)" LDFLAGS="$(M_LDFLAGS) $(LDFLAGS)" SOBJS="$(MCL_OBJS)"
|
|
|
|
mcl-rel:
|
|
$(MAKE) mcl-tmp TYPE=_cl-rel OUT_DIR="$(RELEASE_DIR)/$(MCL_DIR)"
|
|
mcl-dbg:
|
|
$(MAKE) mcl-tmp TYPE=_cl-dbg OUT_DIR="$(DEBUG_DIR)/$(MCL_DIR)"
|
|
mcl-profile:
|
|
$(MAKE) mcl-tmp TYPE=_cl-profile OUT_DIR="$(PROFILE_DIR)/$(MCL_DIR)"
|
|
m-rel:
|
|
$(MAKE) m-tmp TYPE=_clsv-rel OUT_DIR="$(RELEASE_DIR)/$(MB_DIR)"
|
|
m-dbg:
|
|
$(MAKE) m-tmp TYPE=_clsv-dbg OUT_DIR="$(DEBUG_DIR)/$(MB_DIR)"
|
|
m-profile:
|
|
$(MAKE) m-tmp TYPE=_clsv-profile OUT_DIR="$(PROFILE_DIR)/$(MB_DIR)"
|
|
|
|
.PHONY: m-tmp mcl-tmp mingl-tmp glcl-tmp gl-tmp sv-tmp _clsv-dbg _clsv-rel _cl-dbg _cl-rel _out-rel _out-dbg
|
|
|
|
ifdef windir
|
|
debugdir:
|
|
@-mkdir -p $(subst /,\, $(OUT_DIR))
|
|
reldir:
|
|
@-mkdir -p $(subst /,\, $(OUT_DIR))
|
|
else
|
|
reldir:
|
|
@-mkdir -p $(RELEASE_DIR)
|
|
@-mkdir -p $(OUT_DIR)
|
|
debugdir:
|
|
@-mkdir -p $(DEBUG_DIR)
|
|
@-mkdir -p $(OUT_DIR)
|
|
endif
|
|
|
|
plugins:
|
|
ifneq ($(shell grep all ../plugins/Makefile),)
|
|
$(MAKE) -C ../plugins
|
|
else
|
|
@-echo no plugins directory installed
|
|
endif
|
|
plugins:
|
|
|
|
help:
|
|
@-echo "Specfic targets:"
|
|
@-echo "clean - removes all output (use make dirs afterwards)"
|
|
@-echo "all - make all the targets possible"
|
|
@-echo "rel - make the releases for the default system"
|
|
@-echo "dbg - make the debug builds for the default system"
|
|
@-echo "profile - make all the releases with profiling support for the default system"
|
|
@-echo ""
|
|
@-echo "Normal targets:"
|
|
@-echo "(each of these targets must have the postfix -rel or -dbg)"
|
|
@-echo "'sv-???' (Dedicated Server)"
|
|
@-echo "'gl-???' (OpenGL rendering + Built-in Server)"
|
|
@-echo "'m-???' (Merged client, OpenGL & D3D rendering + Dedicated server)"
|
|
@-echo "'mingl-???' (Minimal featured OpenGL render)"
|
|
@-echo "'npfte-???' (FTE_TARGET=win32 only, for now) (QuakeTV Firefox/Netscape browser plugin)"
|
|
@-echo "'d3d-???' (for windows builds)"
|
|
@-echo "'mcl-???' (currently broken)"
|
|
@-echo "'glcl-???' (currently broken)"
|
|
@-echo "'droid-???' (build Android package)"
|
|
@-echo ""
|
|
@-echo "Cross targets can be specified with FTE_TARGET=blah"
|
|
@-echo "linux32, linux64 specify specific x86 archs"
|
|
@-echo "SDL - Attempt to use sdl for the current target"
|
|
@-echo "win32 - Mingw compile for win32"
|
|
@-echo "vc - Attempts to use msvc8+ to compile. Note: uses profile guided optimisations. You must build+run the relevent profile target before a release target will compile properly. Debug doesn't care."
|
|
|
|
install:
|
|
-cp debug/*.* /opt/quake/
|
|
-cp release/*.* /opt/quake/
|
|
-cp profile/*.* /opt/quake
|
|
|
|
clean:
|
|
-rm -f -r $(RELEASE_DIR)
|
|
-rm -f -r $(DEBUG_DIR)
|
|
-rm -f -r $(PROFILE_DIR)
|
|
-rm -f -r droid/bin
|
|
-rm -f -r droid/gen
|
|
-rm -f -r droid/libs
|
|
-rm -f droid/default.properties
|
|
-rm -f droid/local.properties
|
|
-rm -f droid/proguard.cfg
|
|
-rm -f droid/build.xml
|
|
|
|
|
|
#building for android will require:
|
|
#download android sdk+ndk
|
|
#ant installed
|
|
#DROID_NDK_PATH and DROID_SDK_PATH set, if they don't match the paths on my system.
|
|
|
|
#droid-dbg will install it on 'the current device', if you've got a device plugged in or an emulator running, it should just work.
|
|
|
|
#makes an ant project for us
|
|
droid/build.xml:
|
|
cd droid && PATH=$$PATH:$(DROID_SDK_PATH)/tools:$(DROID_NDK_PATH) android update project -t 1 -p . -n FTEDroid
|
|
|
|
#build FTE as a library, then build the java+package (release)
|
|
droid-rel: droid/build.xml
|
|
$(MAKE) FTE_TARGET=droid gl-rel
|
|
mkdir -p droid/libs/armeabi
|
|
@cp $(RELEASE_DIR)/libftedroid.so droid/libs/armeabi/
|
|
@cd droid && ant release
|
|
cp droid/bin/FTEDroid-unsigned.apk $(RELEASE_DIR)/FTEDroid.apk
|
|
|
|
#build FTE as a library, then build the java+package (release). also installs it onto the 'current' device.
|
|
droid-dbg: droid/build.xml
|
|
$(MAKE) FTE_TARGET=droid gl-dbg
|
|
@mkdir -p droid/libs/armeabi
|
|
@cp $(DEBUG_DIR)/libftedroid.so droid/libs/armeabi/
|
|
@cd droid && ant debug && ant install
|
|
cp droid/bin/FTEDroid-debug.apk $(DEBUG_DIR)/FTEDroid.apk
|
|
|