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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
--- ./makefile.orig Tue May 23 20:06:00 2006
+++ ./makefile Tue May 23 20:11:46 2006
@@ -1,37 +1,64 @@
-BUILD_CLIENT=YES # client executable
-BUILD_DEDICATED=YES # server executable
-BUILD_CGAME=YES # cgame dll
-BUILD_GAME=YES # game dll
+# GNU Makefile for EGL.
+
+# Compilation components and options.
+BUILD_CLIENT?=YES # Client executable.
+BUILD_DEDICATED?=YES # Server executable.
+BUILD_CGAME?=YES # cgame shared library.
+BUILD_GAME?=YES # game shared library.
+WITH_OPT_CFLAGS?=YES # Optimized compiler flags.
+WITH_HOMEDIR?=YES # Write files in "~/.egl".
+# Common variables.
+CC?=gcc
VERSION=0.0.6
+EGL_MAKEFILE=makefile
+# Compiler flags.
+SHARED_FLAGS= $(CFLAGS) -DARCH='\"$(ARCH)\"' \
+ -DGAME_NAME='\"$(GAME_NAME)\"' \
+ -DEGLCGAME_NAME='\"$(EGLCGAME_NAME)\"'
+RELEASE_CFLAGS= -Isource/ -I./ -I../ $(SHARED_FLAGS)
+DEBUG_CFLAGS=- g -Isource/ -I./ -I../ $(SHARED_FLAGS) -DC_ONLY
-CC=gcc
-EGL_MAKEFILE=makefile
-SHARED_FLAGS:=
-RELEASE_CFLAGS=-Isource/ -I./ -I../ $(SHARED_FLAGS) -O2 -fno-strict-aliasing -ffast-math -fexpensive-optimizations
-DEBUG_CFLAGS=-g -Isource/ -I./ -I../ $(SHARED_FLAGS) -DC_ONLY
-LDFLAGS=-ldl -lm -lz -ljpeg -lpng
-DED_LDFLAGS=-ldl -lm -lz
-MODULE_LDFLAGS=-ldl -lm
-X11_LDFLAGS=-L/usr/X11R6/lib -lX11 -lXext
+# Linker flags.
+LDFLAGS+=-lm
+DED_LDFLAGS=-lz
+MODULE_LDFLAGS=
+X11_LDFLAGS=-lX11 -lXext -ljpeg -lpng -lz
+# Compilation commands.
SHLIBCFLAGS=-fPIC
SHLIBLDFLAGS=-shared
-
DO_CC=$(CC) $(CFLAGS) -o $@ -c $<
DO_DED_CC=$(CC) $(CFLAGS) -DDEDICATED_ONLY -o $@ -c $<
DO_SHLIB_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
-
-# this nice line comes from the linux kernel makefile
+# This nice line comes from the linux kernel makefile.
ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc/ -e s/sparc64/sparc/ -e s/arm.*/arm/ -e s/sa110/arm/ -e s/alpha/axp/)
SHLIBEXT =so
-BUILD_DEBUG_DIR=debug$(ARCH)
-BUILD_RELEASE_DIR=release$(ARCH)
+OSTYPE := $(shell uname -s)
+
+BUILD_DEBUG_DIR=debug
+BUILD_RELEASE_DIR=release
+
+ifeq ($(OSTYPE),Linux)
+LDFLAGS+=-ldl
+GAME_NAME= game$(ARCH)
+EGLCGAME_NAME= eglcgame$(ARCH)
+endif
+
+ifeq ($(OSTYPE),FreeBSD)
+# These variables are defined from the port, and passed by the environment.
+SHARED_FLAGS+= -I$(LOCALBASE)/include -I$(X11BASE)/include \
+ -DDATADIR='\"$(Q2DIR)\"' -DLIBDIR='\"$(LIBDIR)\"'
+LDFLAGS+= -L$(LOCALBASE)/lib -L$(X11BASE)/lib
+X11_LDFLAGS+= $(PTHREAD_LIBS)
+GAME_NAME= game
+EGLCGAME_NAME= eglcgame
+endif
ifeq ($(strip $(BUILD_CLIENT)),YES)
TARGETS += $(BUILDDIR)/egl
@@ -42,20 +69,27 @@
endif
ifeq ($(strip $(BUILD_CGAME)),YES)
- TARGETS += $(BUILDDIR)/baseq2/eglcgame$(ARCH).$(SHLIBEXT)
+ TARGETS += $(BUILDDIR)/baseq2/$(EGLCGAME_NAME).$(SHLIBEXT)
endif
ifeq ($(strip $(BUILD_GAME)),YES)
- TARGETS += $(BUILDDIR)/baseq2/game$(ARCH).$(SHLIBEXT)
+ TARGETS += $(BUILDDIR)/baseq2/$(GAME_NAME).$(SHLIBEXT)
endif
+ifeq ($(strip $(WITH_OPT_CFLAGS)),YES)
+RELEASE_CFLAGS += -O2 -fno-strict-aliasing -ffast-math -fexpensive-optimizations
+endif
-ifeq ($(wildcard /usr/include/X11/extensions/xf86vmode.h),/usr/include/X11/extensions/xf86vmode.h)
+ifeq ($(strip $(WITH_HOMEDIR)),YES)
+SHARED_FLAGS += -DHOMEDIR
+endif
+
+ifeq ($(wildcard $(X11BASE)/include/X11/extensions/xf86vmode.h),$(X11BASE)/include/X11/extensions/xf86vmode.h)
SHARED_FLAGS += -DXF86VMODE
X11_LDFLAGS += -lXxf86vm
endif
-ifeq ($(wildcard /usr/include/X11/extensions/xf86dga.h),/usr/include/X11/extensions/xf86dga.h)
+ifeq ($(wildcard $(X11BASE)/include/X11/extensions/xf86dga.h),$(X11BASE)/include/X11/extensions/xf86dga.h)
SHARED_FLAGS += -DXF86DGA
X11_LDFLAGS += -lXxf86dga
endif
@@ -527,7 +561,7 @@
$(BUILDDIR)/eglded: $(OBJS_DEDICATED)
@echo Linking eglded;
- $(CC) $(CFLAGS) -o $@ $(OBJS_DEDICATED) $(DED_LDFLAGS)
+ $(CC) $(CFLAGS) -o $@ $(OBJS_DEDICATED) $(LDFLAGS) $(DED_LDFLAGS)
$(BUILDDIR)/dedicated/alias.o: $(SOURCEDIR)/common/alias.c
$(DO_DED_CC)
@@ -738,9 +772,9 @@
$(BUILDDIR)/baseq2/cgame/m_flash.o \
-$(BUILDDIR)/baseq2/eglcgame$(ARCH).$(SHLIBEXT): $(OBJS_CGAME)
+$(BUILDDIR)/baseq2/$(EGLCGAME_NAME).$(SHLIBEXT): $(OBJS_CGAME)
@echo Linking cgame dll;
- $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(OBJS_CGAME) $(MODULE_LDFLAGS)
+ $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(OBJS_CGAME) $(LDFLAGS) $(MODULE_LDFLAGS)
$(BUILDDIR)/baseq2/cgame/cg_api.o: $(SOURCEDIR)/cgame/cg_api.c
$(DO_SHLIB_CC)
@@ -1026,9 +1060,9 @@
$(BUILDDIR)/baseq2/game/string.o \
-$(BUILDDIR)/baseq2/game$(ARCH).$(SHLIBEXT): $(OBJS_GAME)
+$(BUILDDIR)/baseq2/$(GAME_NAME).$(SHLIBEXT): $(OBJS_GAME)
@echo Linking game dll;
- $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(OBJS_GAME) $(MODULE_LDFLAGS)
+ $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(OBJS_GAME) $(LDFLAGS) $(MODULE_LDFLAGS)
$(BUILDDIR)/baseq2/game/cg_api.o: $(SOURCEDIR)/cgame/cg_api.c
$(DO_SHLIB_CC)
|