-
Notifications
You must be signed in to change notification settings - Fork 2
/
Makefile
124 lines (104 loc) · 3.66 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#===============================================================================
# Makefile for QMB
#===============================================================================
ifdef WINDIR
# Win32
TARGET_PLATFORM = windows
EXTENSION = .exe
else
# UNIXes
ARCH:=$(shell uname)
ifneq ($(filter %BSD,$(ARCH)),)
TARGET_PLATFORM=bsd
$(warning BSD Platform Not Tested)
else
ifeq ($(ARCH), Darwin)
TARGET_PLATFORM=macosx
$(warning macosx Platform Not Tested)
else
ifeq ($(ARCH), SunOS)
TARGET_PLATFORM=sunos
$(warning sunos Platform Not Tested)
else
TARGET_PLATFORM=linux
endif # ifeq ($(ARCH), SunOS)
endif # ifeq ($(ARCH), Darwin)
endif # ifneq ($(filter %BSD,$(ARCH)),)
EXTENSION =
PLATFORM_ARCH = $(shell uname -m)
ifeq ($(PLATFORM_ARCH),x86_64)
# On a 64bit platform, warning about being a 32bit build.
$(warning QMB only builds as a 32bit executable, ensure 32bit libs\
are installed)
endif # ifeq (PLATFORM_ARCH,x86_64)
endif # ifdef windir
#===============================================================================
# Variables to configure
OUTPUT_DIR = ./Quake/
OUTPUT_BIN = QMB$(EXTENSION)
#===============================================================================
#===============================================================================
# Regular variables
#CPP = gcc
#CC = gcc
WINDRES = windres
RES = WinQuake_private.res
OBJ = bot.o bot_misc.o bot_setup.o \
cl_demo.o cl_input.o cl_main.o cl_parse.o cl_tent.o \
cmd.o console.o cvar.o host.o host_cmd.o \
common.o mathlib.o menu.o sbar.o view.o wad.o world.o zone.o \
CRC.o FileManager.o \
in_keys.o in_sdl.o \
gl_draw.o \
gl_md2.o gl_md3.o gl_mesh.o gl_model.o gl_sprite.o \
ModelAlias.o \
Image.o ImageJPG.o ImagePCX.o ImagePNG.o ImageTGA.o \
Texture.o TextureManager.o TextureFile.o \
gl_refrag.o gl_rlight.o gl_rmain.o gl_rmisc.o \
gl_rpart.o gl_rsurf.o gl_renderworld.o gl_screen.o gl_warp.o \
net_loop.o net_main.o net_vcr.o net_none.o \
pr_cmds.o pr_edict.o pr_exec.o nn_main.o \
cd_sdl.o snd_dma.o snd_mem.o snd_mix.o snd_sdl.o \
sv_main.o sv_move.o sv_phys.o sv_user.o \
CaptureAvi.o CaptureHelpers.o \
sys_sdl.o gl_vid_sdl.o
#net_udp.o net_bsd.o net_dgrm.o
LINKOBJ = $(OBJ)
ifeq ($(TARGET_PLATFORM),windows)
LIBS = -L"C:/msys/1.0/local/lib" -L"C:/MinGW/lib" -lGLee -lopengl32 -lglu32 -ljpeg -lpng -lSDL
#-lGLee
#-mwindows -luser32 -lgdi32 -lwsock32 -lwinmm -lcomctl32 -ldxguid
INCS = -I"C:/msys/1.0/local/include" -I"C:/MinGW/include"
else
LIBS = -lc -lstdc++ -lm -lGL -lGLU -ljpeg -lpng -lSDL $(shell if test -e /usr/lib/libGLee.so; then echo -lGLee; else echo -lGLee; fi)
INCS =
endif #ifeq ($(TARGET_PLATFORM),windows)
CXXINCS = $(INCS)
FLAGS = -W -DSDL -DGLQUAKE -m32
#-DNDEBUG
CXXFLAGS = $(CXXINCS)
CFLAGS = $(INCS)
#===============================================================================
#===============================================================================
# TARGETS
.PHONY: all all-before all-after clean clean-custom
all: all-before $(OUTPUT_BIN) all-after
profile: FLAGS += -pg -g -O0
profile: all
debug: FLAGS += -g -O0
debug: all
clean: clean-custom
rm -f $(OBJ) $(OUTPUT_BIN)
$(OUTPUT_BIN): $(LINKOBJ)
$(CC) $(FLAGS) $(LINKOBJ) -o "$(OUTPUT_BIN)" $(LIBS)
all-after: $(OUTPUT_BIN)
cp $(OUTPUT_BIN) $(OUTPUT_DIR)
all-before: $(OUTPUT_BIN)
@test -d $(OUTPUT_DIR) || mkdir $(OUTPUT_DIR)
%.o : %.c
$(CC) -c $(CFLAGS) $(FLAGS) -o $@ $<
%.o : %.cpp
$(CC) -c $(CXXFLAGS) $(FLAGS) -o $@ $<
WinQuake_private.res: WinQuake_private.rc winquake.rc
$(WINDRES) -i WinQuake_private.rc -I rc -o WinQuake_private.res -O coff
#===============================================================================