1# 2# Quake Makefile for Linux 2.0 3# 4# Aug '98 by Zoid <zoid@idsoftware.com> 5# modified for tenebrae by fabe <der.fabe@gmx.net> 6# more modification by the tenebrae team 7# 8# ELF only 9# 10 11BASEVERSION=1.09 12VERSION=$(BASEVERSION)$(GLIBC) 13 14GLIBC=.glibc 15 16ARCH=i386 17NOARCH=noarch 18 19MOUNT_DIR = ../ 20 21MASTER_DIR = ${Q1DIR} 22 23BUILD_DEBUG_DIR = debug$(ARCH)$(GLIBC) 24BUILD_RELEASE_DIR = release 25 26LEX ?= /usr/bin/flex -i -Cfr 27#CC = /usr/bin/gcc 28 29X11_LIBS = -L${LOCALBASE}/lib -lX11 -lXext -lXxf86dga -lXxf86vm 30 31# to enable OpenGL code in source 32OPENGL_CFLAGS = -D__glx__ -DGLQUAKE -I${LOCALBASE}/include 33OPENGL_LIBS = -lGL -lGLU 34 35PNG_LIBS = -L${LOCALBASE}/lib -lpng -lz 36 37#OPENAL_LIBS = -lopenal 38#OPENAL_CFLAGS = -DOPENAL -I${LOCALBASE}/include/AL 39 40BASE_CFLAGS = -DBASEDIR="$(MASTER_DIR)" -DUSERPREF_DIR $(OPENGL_CFLAGS) $(OPENAL_CFLAGS) -I$(MOUNT_DIR) -I${LOCALBASE}/include `${SDL_CONFIG} --cflags` 41RELEASE_CFLAGS = $(BASE_CFLAGS) -ffast-math -funroll-loops \ 42 -fomit-frame-pointer -fexpensive-optimizations 43DEBUG_CFLAGS = $(BASE_CFLAGS) -g 44LDFLAGS += -lm $(X11_LIBS) $(OPENGL_LIBS) $(PNG_LIBS) $(OPENAL_LIBS) `${SDL_CONFIG} --libs` 45 46DO_GL_CC = $(CC) $(CFLAGS) -o $@ -c $< 47DO_GL_AS = $(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $< 48DO_LEX = $(LEX) -o$@ $< 49 50ifdef USE_ASM 51BASE_CFLAGS += -DUSE_ASM 52endif 53 54############################################################################# 55# SETUP AND BUILD 56############################################################################# 57 58TARGETS=$(BUILDDIR)/bin/tenebrae 59 60all: build_release 61 62targets: $(TARGETS) 63 64build_debug: 65 @-mkdir -p $(BUILD_DEBUG_DIR) \ 66 $(BUILD_DEBUG_DIR)/bin \ 67 $(BUILD_DEBUG_DIR)/glquake 68 $(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS+="$(DEBUG_CFLAGS)" 69 70build_release: 71 @-mkdir -p $(BUILD_RELEASE_DIR) \ 72 $(BUILD_RELEASE_DIR)/bin \ 73 $(BUILD_RELEASE_DIR)/glquake 74 $(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS+="$(RELEASE_CFLAGS)" 75 76############################################################################# 77# GLQuake 78############################################################################# 79 80GLQUAKE_OBJS= \ 81 $(BUILDDIR)/glquake/cl_demo.o \ 82 $(BUILDDIR)/glquake/cl_input.o \ 83 $(BUILDDIR)/glquake/cl_main.o \ 84 $(BUILDDIR)/glquake/cl_parse.o \ 85 $(BUILDDIR)/glquake/cl_tent.o \ 86 $(BUILDDIR)/glquake/chase.o \ 87 $(BUILDDIR)/glquake/cmd.o \ 88 $(BUILDDIR)/glquake/common.o \ 89 $(BUILDDIR)/glquake/console.o \ 90 $(BUILDDIR)/glquake/crc.o \ 91 $(BUILDDIR)/glquake/cvar.o \ 92 \ 93 $(BUILDDIR)/glquake/gl_aliasinstant.o \ 94 $(BUILDDIR)/glquake/gl_brushinstant.o \ 95 $(BUILDDIR)/glquake/gl_bumpdriver.o \ 96 $(BUILDDIR)/glquake/gl_bumpgf.o \ 97 $(BUILDDIR)/glquake/gl_bumparb.o \ 98 $(BUILDDIR)/glquake/gl_bumpmap.o \ 99 $(BUILDDIR)/glquake/gl_bumpparhelia.o \ 100 $(BUILDDIR)/glquake/gl_bumpradeon.o \ 101 $(BUILDDIR)/glquake/gl_common.o \ 102 $(BUILDDIR)/glquake/gl_draw.o \ 103 $(BUILDDIR)/glquake/gl_decals.o \ 104 $(BUILDDIR)/glquake/gl_glare.o \ 105 $(BUILDDIR)/glquake/gl_md3.o \ 106 $(BUILDDIR)/glquake/gl_mesh.o \ 107 $(BUILDDIR)/glquake/gl_model.o \ 108 $(BUILDDIR)/glquake/gl_refrag.o \ 109 $(BUILDDIR)/glquake/gl_rlight.o \ 110 $(BUILDDIR)/glquake/gl_rmain.o \ 111 $(BUILDDIR)/glquake/gl_rmisc.o \ 112 $(BUILDDIR)/glquake/gl_rsurf.o \ 113 $(BUILDDIR)/glquake/gl_screen.o \ 114 $(BUILDDIR)/glquake/gl_screenrect.o \ 115 $(BUILDDIR)/glquake/gl_shadow.o \ 116 $(BUILDDIR)/glquake/gl_svbsp.o \ 117 $(BUILDDIR)/glquake/gl_test.o \ 118 $(BUILDDIR)/glquake/gl_warp.o \ 119 \ 120 $(BUILDDIR)/glquake/host.o \ 121 $(BUILDDIR)/glquake/host_cmd.o \ 122 $(BUILDDIR)/glquake/keys.o \ 123 $(BUILDDIR)/glquake/menu.o \ 124 $(BUILDDIR)/glquake/mathlib.o \ 125 $(BUILDDIR)/glquake/net_dgrm.o \ 126 $(BUILDDIR)/glquake/net_loop.o \ 127 $(BUILDDIR)/glquake/net_main.o \ 128 $(BUILDDIR)/glquake/net_vcr.o \ 129 $(BUILDDIR)/glquake/net_udp.o \ 130 $(BUILDDIR)/glquake/net_bsd.o \ 131 $(BUILDDIR)/glquake/pr_cmds.o \ 132 $(BUILDDIR)/glquake/pr_edict.o \ 133 $(BUILDDIR)/glquake/pr_exec.o \ 134 $(BUILDDIR)/glquake/r_part.o \ 135 $(BUILDDIR)/glquake/sbar.o \ 136 $(BUILDDIR)/glquake/sv_main.o \ 137 $(BUILDDIR)/glquake/sv_phys.o \ 138 $(BUILDDIR)/glquake/sv_move.o \ 139 $(BUILDDIR)/glquake/sv_user.o \ 140 $(BUILDDIR)/glquake/zone.o \ 141 $(BUILDDIR)/glquake/view.o \ 142 $(BUILDDIR)/glquake/wad.o \ 143 $(BUILDDIR)/glquake/world.o \ 144 $(BUILDDIR)/glquake/cd_linux.o \ 145 $(BUILDDIR)/glquake/sys_linux.o \ 146 $(BUILDDIR)/glquake/sys_uxfindfirst.o \ 147 $(BUILDDIR)/glquake/snd_dma.o \ 148 $(BUILDDIR)/glquake/snd_mem.o \ 149 $(BUILDDIR)/glquake/snd_mix.o \ 150 $(BUILDDIR)/glquake/snd_sdl.o \ 151 $(BUILDDIR)/glquake/gl_vidlinuxglx.o \ 152 $(BUILDDIR)/glquake/math.o \ 153 $(BUILDDIR)/glquake/worlda.o \ 154 $(BUILDDIR)/glquake/snd_mixa.o \ 155 $(BUILDDIR)/glquake/sys_dosa.o \ 156 \ 157 $(BUILDDIR)/glquake/lex.yy.o \ 158 $(BUILDDIR)/glquake/te_scripts.o 159 160 161$(BUILDDIR)/bin/tenebrae : $(GLQUAKE_OBJS) 162 $(CC) $(CFLAGS) -o $@ $(GLQUAKE_OBJS) $(LDFLAGS) 163 164$(BUILDDIR)/glquake/cl_demo.o : $(MOUNT_DIR)/cl_demo.c 165 $(DO_GL_CC) 166 167$(BUILDDIR)/glquake/cl_input.o : $(MOUNT_DIR)/cl_input.c 168 $(DO_GL_CC) 169 170$(BUILDDIR)/glquake/cl_main.o : $(MOUNT_DIR)/cl_main.c 171 $(DO_GL_CC) 172 173$(BUILDDIR)/glquake/cl_parse.o : $(MOUNT_DIR)/cl_parse.c 174 $(DO_GL_CC) 175 176$(BUILDDIR)/glquake/cl_tent.o : $(MOUNT_DIR)/cl_tent.c 177 $(DO_GL_CC) 178 179$(BUILDDIR)/glquake/chase.o : $(MOUNT_DIR)/chase.c 180 $(DO_GL_CC) 181 182$(BUILDDIR)/glquake/cmd.o : $(MOUNT_DIR)/cmd.c 183 $(DO_GL_CC) 184 185$(BUILDDIR)/glquake/common.o : $(MOUNT_DIR)/common.c 186 $(DO_GL_CC) 187 188$(BUILDDIR)/glquake/console.o : $(MOUNT_DIR)/console.c 189 $(DO_GL_CC) 190 191$(BUILDDIR)/glquake/crc.o : $(MOUNT_DIR)/crc.c 192 $(DO_GL_CC) 193 194$(BUILDDIR)/glquake/cvar.o : $(MOUNT_DIR)/cvar.c 195 $(DO_GL_CC) 196 197$(BUILDDIR)/glquake/gl_aliasinstant.o : $(MOUNT_DIR)/gl_aliasinstant.c 198 $(DO_GL_CC) 199 200$(BUILDDIR)/glquake/gl_draw.o : $(MOUNT_DIR)/gl_draw.c 201 $(DO_GL_CC) 202 203$(BUILDDIR)/glquake/gl_brushinstant.o : $(MOUNT_DIR)/gl_brushinstant.c 204 $(DO_GL_CC) 205 206$(BUILDDIR)/glquake/gl_bumpdriver.o : $(MOUNT_DIR)/gl_bumpdriver.c 207 $(DO_GL_CC) 208 209$(BUILDDIR)/glquake/gl_bumpgf.o : $(MOUNT_DIR)/gl_bumpgf.c 210 $(DO_GL_CC) 211 212$(BUILDDIR)/glquake/gl_bumparb.o : $(MOUNT_DIR)/gl_bumparb.c 213 $(DO_GL_CC) 214 215$(BUILDDIR)/glquake/gl_bumpmap.o : $(MOUNT_DIR)/gl_bumpmap.c 216 $(DO_GL_CC) 217 218$(BUILDDIR)/glquake/gl_bumpparhelia.o : $(MOUNT_DIR)/gl_bumpparhelia.c 219 $(DO_GL_CC) 220 221$(BUILDDIR)/glquake/gl_bumpradeon.o : $(MOUNT_DIR)/gl_bumpradeon.c 222 $(DO_GL_CC) 223 224$(BUILDDIR)/glquake/gl_common.o : $(MOUNT_DIR)/gl_common.c 225 $(DO_GL_CC) 226 227$(BUILDDIR)/glquake/gl_decals.o : $(MOUNT_DIR)/gl_decals.c 228 $(DO_GL_CC) 229 230$(BUILDDIR)/glquake/gl_glare.o : $(MOUNT_DIR)/gl_glare.c 231 $(DO_GL_CC) 232 233$(BUILDDIR)/glquake/gl_mesh.o : $(MOUNT_DIR)/gl_mesh.c 234 $(DO_GL_CC) 235 236$(BUILDDIR)/glquake/gl_md3.o : $(MOUNT_DIR)/gl_md3.c 237 $(DO_GL_CC) 238 239$(BUILDDIR)/glquake/gl_model.o : $(MOUNT_DIR)/gl_model.c 240 $(DO_GL_CC) 241 242$(BUILDDIR)/glquake/gl_refrag.o : $(MOUNT_DIR)/gl_refrag.c 243 $(DO_GL_CC) 244 245$(BUILDDIR)/glquake/gl_rlight.o : $(MOUNT_DIR)/gl_rlight.c 246 $(DO_GL_CC) 247 248$(BUILDDIR)/glquake/gl_rmain.o : $(MOUNT_DIR)/gl_rmain.c 249 $(DO_GL_CC) 250 251$(BUILDDIR)/glquake/gl_rmisc.o : $(MOUNT_DIR)/gl_rmisc.c 252 $(DO_GL_CC) 253 254$(BUILDDIR)/glquake/gl_rsurf.o : $(MOUNT_DIR)/gl_rsurf.c 255 $(DO_GL_CC) 256 257$(BUILDDIR)/glquake/gl_screen.o : $(MOUNT_DIR)/gl_screen.c 258 $(DO_GL_CC) 259 260$(BUILDDIR)/glquake/gl_screenrect.o : $(MOUNT_DIR)/gl_screenrect.c 261 $(DO_GL_CC) 262 263$(BUILDDIR)/glquake/gl_shadow.o : $(MOUNT_DIR)/gl_shadow.c 264 $(DO_GL_CC) 265 266$(BUILDDIR)/glquake/gl_svbsp.o : $(MOUNT_DIR)/gl_svbsp.c 267 $(DO_GL_CC) 268 269$(BUILDDIR)/glquake/gl_test.o : $(MOUNT_DIR)/gl_test.c 270 $(DO_GL_CC) 271 272$(BUILDDIR)/glquake/gl_vidlinuxglx.o : $(MOUNT_DIR)/gl_vidlinuxglx.c 273 $(DO_GL_CC) 274 275$(BUILDDIR)/glquake/gl_warp.o : $(MOUNT_DIR)/gl_warp.c 276 $(DO_GL_CC) 277 278$(BUILDDIR)/glquake/host.o : $(MOUNT_DIR)/host.c 279 $(DO_GL_CC) 280 281$(BUILDDIR)/glquake/host_cmd.o : $(MOUNT_DIR)/host_cmd.c 282 $(DO_GL_CC) 283 284$(BUILDDIR)/glquake/keys.o : $(MOUNT_DIR)/keys.c 285 $(DO_GL_CC) 286 287$(BUILDDIR)/glquake/menu.o : $(MOUNT_DIR)/menu.c 288 $(DO_GL_CC) 289 290$(BUILDDIR)/glquake/mathlib.o : $(MOUNT_DIR)/mathlib.c 291 $(DO_GL_CC) 292 293$(BUILDDIR)/glquake/net_dgrm.o : $(MOUNT_DIR)/net_dgrm.c 294 $(DO_GL_CC) 295 296$(BUILDDIR)/glquake/net_loop.o : $(MOUNT_DIR)/net_loop.c 297 $(DO_GL_CC) 298 299$(BUILDDIR)/glquake/net_main.o : $(MOUNT_DIR)/net_main.c 300 $(DO_GL_CC) 301 302$(BUILDDIR)/glquake/net_vcr.o : $(MOUNT_DIR)/net_vcr.c 303 $(DO_GL_CC) 304 305$(BUILDDIR)/glquake/net_udp.o : $(MOUNT_DIR)/net_udp.c 306 $(DO_GL_CC) 307 308$(BUILDDIR)/glquake/net_bsd.o : $(MOUNT_DIR)/net_bsd.c 309 $(DO_GL_CC) 310 311$(BUILDDIR)/glquake/pr_cmds.o : $(MOUNT_DIR)/pr_cmds.c 312 $(DO_GL_CC) 313 314$(BUILDDIR)/glquake/pr_edict.o : $(MOUNT_DIR)/pr_edict.c 315 $(DO_GL_CC) 316 317$(BUILDDIR)/glquake/pr_exec.o : $(MOUNT_DIR)/pr_exec.c 318 $(DO_GL_CC) 319 320$(BUILDDIR)/glquake/r_part.o : $(MOUNT_DIR)/r_part.c 321 $(DO_GL_CC) 322 323$(BUILDDIR)/glquake/sbar.o : $(MOUNT_DIR)/sbar.c 324 $(DO_GL_CC) 325 326$(BUILDDIR)/glquake/sv_main.o : $(MOUNT_DIR)/sv_main.c 327 $(DO_GL_CC) 328 329$(BUILDDIR)/glquake/sv_phys.o : $(MOUNT_DIR)/sv_phys.c 330 $(DO_GL_CC) 331 332$(BUILDDIR)/glquake/sv_move.o : $(MOUNT_DIR)/sv_move.c 333 $(DO_GL_CC) 334 335$(BUILDDIR)/glquake/sv_user.o : $(MOUNT_DIR)/sv_user.c 336 $(DO_GL_CC) 337 338$(BUILDDIR)/glquake/zone.o : $(MOUNT_DIR)/zone.c 339 $(DO_GL_CC) 340 341$(BUILDDIR)/glquake/view.o : $(MOUNT_DIR)/view.c 342 $(DO_GL_CC) 343 344$(BUILDDIR)/glquake/wad.o : $(MOUNT_DIR)/wad.c 345 $(DO_GL_CC) 346 347$(BUILDDIR)/glquake/world.o : $(MOUNT_DIR)/world.c 348 $(DO_GL_CC) 349 350$(BUILDDIR)/glquake/cd_linux.o : $(MOUNT_DIR)/cd_linux.c 351 $(DO_GL_CC) 352 353$(BUILDDIR)/glquake/sys_linux.o : $(MOUNT_DIR)/sys_linux.c 354 $(DO_GL_CC) 355 356$(BUILDDIR)/glquake/sys_uxfindfirst.o : $(MOUNT_DIR)/sys_uxfindfirst.c 357 $(DO_GL_CC) 358 359$(BUILDDIR)/glquake/snd_dma.o : $(MOUNT_DIR)/snd_dma.c 360 $(DO_GL_CC) 361 362$(BUILDDIR)/glquake/snd_mem.o : $(MOUNT_DIR)/snd_mem.c 363 $(DO_GL_CC) 364 365$(BUILDDIR)/glquake/snd_mix.o : $(MOUNT_DIR)/snd_mix.c 366 $(DO_GL_CC) 367 368$(BUILDDIR)/glquake/snd_sdl.o : $(MOUNT_DIR)/snd_sdl.c 369 $(DO_GL_CC) 370 371$(BUILDDIR)/glquake/math.o : $(MOUNT_DIR)/math.s 372 $(DO_GL_AS) 373 374$(BUILDDIR)/glquake/worlda.o : $(MOUNT_DIR)/worlda.s 375 $(DO_GL_AS) 376 377$(BUILDDIR)/glquake/snd_mixa.o : $(MOUNT_DIR)/snd_mixa.s 378 $(DO_GL_AS) 379 380$(BUILDDIR)/glquake/sys_dosa.o : $(MOUNT_DIR)/sys_dosa.s 381 $(DO_GL_AS) 382 383$(MOUNT_DIR)/lex.yy.c : $(MOUNT_DIR)/lex_part.l 384 $(DO_LEX) 385 386$(BUILDDIR)/glquake/lex.yy.o : $(MOUNT_DIR)/lex.yy.c 387 $(DO_GL_CC) 388 389$(BUILDDIR)/glquake/te_scripts.o : $(MOUNT_DIR)/te_scripts.c $(MOUNT_DIR)/te_scripts.h 390 $(DO_GL_CC) 391 392 393############################################################################# 394# MISC 395############################################################################# 396 397clean: clean-debug clean-release 398 rm -f glquake.spec 399 400clean-debug: 401 $(MAKE) clean2 BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)" 402 403clean-release: 404 $(MAKE) clean2 BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(DEBUG_CFLAGS)" 405 406clean2: 407 -rm -f $(GLQUAKE_OBJS) 408 409 410