Makefile.OLD (12029B)
1 # 2 # Quake2 Makefile for Solaris 3 # 4 # Jan '98 by Zoid <zoid@idsoftware.com> 5 # 6 7 ifneq (,$(findstring i86pc,$(shell uname -m))) 8 ARCH=i386 9 else 10 ARCH=sparc 11 endif 12 13 MOUNT_DIR=/chest/Quake2/code 14 15 BUILD_DEBUG_DIR=debug$(ARCH) 16 BUILD_RELEASE_DIR=release$(ARCH) 17 CLIENT_DIR=$(MOUNT_DIR)/client 18 SERVER_DIR=$(MOUNT_DIR)/server 19 COMMON_DIR=$(MOUNT_DIR)/qcommon 20 SOLARIS_DIR=$(MOUNT_DIR)/solaris 21 GAME_DIR=$(MOUNT_DIR)/game 22 XATRIX_DIR=$(MOUNT_DIR)/xatrix 23 CTF_DIR=$(MOUNT_DIR)/game 24 NULL_DIR=$(MOUNT_DIR)/null 25 26 ARCH=i386 27 28 CC=gcc 29 BASE_CFLAGS=-Dstricmp=strcasecmp 30 RELEASE_CFLAGS=$(BASE_CFLAGS) -O6 -fomit-frame-pointer -fno-strength-reduce -funroll-loops -fexpensive-optimizations 31 DEBUG_CFLAGS=$(BASE_CFLAGS) -g 32 LDFLAGS=-ldl -lm -lnsl -lsocket 33 34 SHLIBEXT=so 35 36 SHLIBCFLAGS=-fPIC 37 SHLIBLDFLAGS=-G 38 39 DO_CC=$(CC) $(CFLAGS) -o $@ -c $< 40 DO_SHLIB_CC=$(CC) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $< 41 42 ############################################################################# 43 # SETUP AND BUILD 44 ############################################################################# 45 46 TARGETS=$(BUILDDIR)/quake2 $(BUILDDIR)/game$(ARCH).$(SHLIBEXT) 47 48 build_debug: 49 @-mkdir $(BUILD_DEBUG_DIR) \ 50 $(BUILD_DEBUG_DIR)/client \ 51 $(BUILD_DEBUG_DIR)/game 52 $(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)" 53 54 build_release: 55 @-mkdir $(BUILD_RELEASE_DIR) \ 56 $(BUILD_RELEASE_DIR)/client \ 57 $(BUILD_RELEASE_DIR)/game 58 $(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS)" 59 60 all: build_debug build_release 61 62 targets: $(TARGETS) 63 64 ############################################################################# 65 # CLIENT/SERVER 66 ############################################################################# 67 68 QUAKE2_OBJS = \ 69 $(BUILDDIR)/client/cl_cin.o \ 70 $(BUILDDIR)/client/cl_ents.o \ 71 $(BUILDDIR)/client/cl_fx.o \ 72 $(BUILDDIR)/client/cl_input.o \ 73 $(BUILDDIR)/client/cl_inv.o \ 74 $(BUILDDIR)/client/cl_main.o \ 75 $(BUILDDIR)/client/cl_parse.o \ 76 $(BUILDDIR)/client/cl_pred.o \ 77 $(BUILDDIR)/client/cl_tent.o \ 78 $(BUILDDIR)/client/cl_scrn.o \ 79 $(BUILDDIR)/client/cl_view.o \ 80 $(BUILDDIR)/client/console.o \ 81 $(BUILDDIR)/client/keys.o \ 82 $(BUILDDIR)/client/menu.o \ 83 $(BUILDDIR)/client/qmenu.o \ 84 $(BUILDDIR)/client/m_flash.o \ 85 \ 86 $(BUILDDIR)/client/cmd.o \ 87 $(BUILDDIR)/client/cmodel.o \ 88 $(BUILDDIR)/client/common.o \ 89 $(BUILDDIR)/client/cvar.o \ 90 $(BUILDDIR)/client/files.o \ 91 $(BUILDDIR)/client/md4.o \ 92 $(BUILDDIR)/client/net_chan.o \ 93 \ 94 $(BUILDDIR)/client/sv_ccmds.o \ 95 $(BUILDDIR)/client/sv_ents.o \ 96 $(BUILDDIR)/client/sv_game.o \ 97 $(BUILDDIR)/client/sv_init.o \ 98 $(BUILDDIR)/client/sv_main.o \ 99 $(BUILDDIR)/client/sv_send.o \ 100 $(BUILDDIR)/client/sv_user.o \ 101 $(BUILDDIR)/client/sv_world.o \ 102 \ 103 $(BUILDDIR)/client/snd_dma.o \ 104 $(BUILDDIR)/client/snd_mem.o \ 105 $(BUILDDIR)/client/snd_mix.o \ 106 \ 107 $(BUILDDIR)/client/cd_null.o \ 108 $(BUILDDIR)/client/q_shsolaris.o \ 109 $(BUILDDIR)/client/vid_null.o \ 110 $(BUILDDIR)/client/ref_null.o \ 111 $(BUILDDIR)/client/in_null.o \ 112 $(BUILDDIR)/client/snddma_null.o \ 113 $(BUILDDIR)/client/sys_solaris.o \ 114 $(BUILDDIR)/client/glob.o \ 115 $(BUILDDIR)/client/net_udp.o \ 116 \ 117 $(BUILDDIR)/client/q_shared.o \ 118 $(BUILDDIR)/client/pmove.o 119 120 $(BUILDDIR)/quake2 : $(QUAKE2_OBJS) 121 $(CC) $(CFLAGS) -o $@ $(QUAKE2_OBJS) $(LDFLAGS) 122 123 $(BUILDDIR)/client/cl_cin.o : $(CLIENT_DIR)/cl_cin.c 124 $(DO_CC) 125 126 $(BUILDDIR)/client/cl_ents.o : $(CLIENT_DIR)/cl_ents.c 127 $(DO_CC) 128 129 $(BUILDDIR)/client/cl_fx.o : $(CLIENT_DIR)/cl_fx.c 130 $(DO_CC) 131 132 $(BUILDDIR)/client/cl_input.o : $(CLIENT_DIR)/cl_input.c 133 $(DO_CC) 134 135 $(BUILDDIR)/client/cl_inv.o : $(CLIENT_DIR)/cl_inv.c 136 $(DO_CC) 137 138 $(BUILDDIR)/client/cl_main.o : $(CLIENT_DIR)/cl_main.c 139 $(DO_CC) 140 141 $(BUILDDIR)/client/cl_parse.o : $(CLIENT_DIR)/cl_parse.c 142 $(DO_CC) 143 144 $(BUILDDIR)/client/cl_pred.o : $(CLIENT_DIR)/cl_pred.c 145 $(DO_CC) 146 147 $(BUILDDIR)/client/cl_tent.o : $(CLIENT_DIR)/cl_tent.c 148 $(DO_CC) 149 150 $(BUILDDIR)/client/cl_scrn.o : $(CLIENT_DIR)/cl_scrn.c 151 $(DO_CC) 152 153 $(BUILDDIR)/client/cl_view.o : $(CLIENT_DIR)/cl_view.c 154 $(DO_CC) 155 156 $(BUILDDIR)/client/console.o : $(CLIENT_DIR)/console.c 157 $(DO_CC) 158 159 $(BUILDDIR)/client/keys.o : $(CLIENT_DIR)/keys.c 160 $(DO_CC) 161 162 $(BUILDDIR)/client/menu.o : $(CLIENT_DIR)/menu.c 163 $(DO_CC) 164 165 $(BUILDDIR)/client/qmenu.o : $(CLIENT_DIR)/qmenu.c 166 $(DO_CC) 167 168 $(BUILDDIR)/client/m_flash.o : $(GAME_DIR)/m_flash.c 169 $(DO_CC) 170 171 $(BUILDDIR)/client/cmd.o : $(COMMON_DIR)/cmd.c 172 $(DO_CC) 173 174 $(BUILDDIR)/client/cmodel.o : $(COMMON_DIR)/cmodel.c 175 $(DO_CC) 176 177 $(BUILDDIR)/client/common.o : $(COMMON_DIR)/common.c 178 $(DO_CC) 179 180 $(BUILDDIR)/client/cvar.o : $(COMMON_DIR)/cvar.c 181 $(DO_CC) 182 183 $(BUILDDIR)/client/files.o : $(COMMON_DIR)/files.c 184 $(DO_CC) 185 186 $(BUILDDIR)/client/md4.o : $(COMMON_DIR)/md4.c 187 $(DO_CC) 188 189 $(BUILDDIR)/client/net_chan.o : $(COMMON_DIR)/net_chan.c 190 $(DO_CC) 191 192 $(BUILDDIR)/client/q_shared.o : $(GAME_DIR)/q_shared.c 193 $(DO_CC) 194 195 $(BUILDDIR)/client/pmove.o : $(COMMON_DIR)/pmove.c 196 $(DO_CC) 197 198 $(BUILDDIR)/client/sv_ccmds.o : $(SERVER_DIR)/sv_ccmds.c 199 $(DO_CC) 200 201 $(BUILDDIR)/client/sv_ents.o : $(SERVER_DIR)/sv_ents.c 202 $(DO_CC) 203 204 $(BUILDDIR)/client/sv_game.o : $(SERVER_DIR)/sv_game.c 205 $(DO_CC) 206 207 $(BUILDDIR)/client/sv_init.o : $(SERVER_DIR)/sv_init.c 208 $(DO_CC) 209 210 $(BUILDDIR)/client/sv_main.o : $(SERVER_DIR)/sv_main.c 211 $(DO_CC) 212 213 $(BUILDDIR)/client/sv_send.o : $(SERVER_DIR)/sv_send.c 214 $(DO_CC) 215 216 $(BUILDDIR)/client/sv_user.o : $(SERVER_DIR)/sv_user.c 217 $(DO_CC) 218 219 $(BUILDDIR)/client/sv_world.o : $(SERVER_DIR)/sv_world.c 220 $(DO_CC) 221 222 $(BUILDDIR)/client/cd_null.o : $(NULL_DIR)/cd_null.c 223 $(DO_CC) 224 225 $(BUILDDIR)/client/q_shsolaris.o : $(SOLARIS_DIR)/q_shsolaris.c 226 $(DO_CC) 227 228 $(BUILDDIR)/client/vid_null.o : $(NULL_DIR)/vid_null.c 229 $(DO_CC) 230 231 $(BUILDDIR)/client/ref_null.o : $(NULL_DIR)/ref_null.c 232 $(DO_CC) 233 234 $(BUILDDIR)/client/snddma_null.o : $(NULL_DIR)/snddma_null.c 235 $(DO_CC) 236 237 $(BUILDDIR)/client/snd_dma.o : $(CLIENT_DIR)/snd_dma.c 238 $(DO_CC) 239 240 $(BUILDDIR)/client/snd_mem.o : $(CLIENT_DIR)/snd_mem.c 241 $(DO_CC) 242 243 $(BUILDDIR)/client/snd_mix.o : $(CLIENT_DIR)/snd_mix.c 244 $(DO_CC) 245 246 $(BUILDDIR)/client/in_null.o : $(NULL_DIR)/in_null.c 247 $(DO_CC) 248 249 $(BUILDDIR)/client/sys_solaris.o : $(SOLARIS_DIR)/sys_solaris.c 250 $(DO_CC) 251 252 $(BUILDDIR)/client/glob.o : $(SOLARIS_DIR)/glob.c 253 $(DO_CC) 254 255 $(BUILDDIR)/client/net_udp.o : $(SOLARIS_DIR)/net_udp.c 256 $(DO_CC) 257 258 ############################################################################# 259 # GAME 260 ############################################################################# 261 262 GAME_OBJS = \ 263 $(BUILDDIR)/game/g_ai.o \ 264 $(BUILDDIR)/game/p_client.o \ 265 $(BUILDDIR)/game/g_cmds.o \ 266 $(BUILDDIR)/game/g_svcmds.o \ 267 $(BUILDDIR)/game/g_combat.o \ 268 $(BUILDDIR)/game/g_func.o \ 269 $(BUILDDIR)/game/g_items.o \ 270 $(BUILDDIR)/game/g_main.o \ 271 $(BUILDDIR)/game/g_misc.o \ 272 $(BUILDDIR)/game/g_monster.o \ 273 $(BUILDDIR)/game/g_phys.o \ 274 $(BUILDDIR)/game/g_save.o \ 275 $(BUILDDIR)/game/g_spawn.o \ 276 $(BUILDDIR)/game/g_target.o \ 277 $(BUILDDIR)/game/g_trigger.o \ 278 $(BUILDDIR)/game/g_turret.o \ 279 $(BUILDDIR)/game/g_utils.o \ 280 $(BUILDDIR)/game/g_weapon.o \ 281 $(BUILDDIR)/game/m_actor.o \ 282 $(BUILDDIR)/game/m_berserk.o \ 283 $(BUILDDIR)/game/m_boss2.o \ 284 $(BUILDDIR)/game/m_boss3.o \ 285 $(BUILDDIR)/game/m_boss31.o \ 286 $(BUILDDIR)/game/m_boss32.o \ 287 $(BUILDDIR)/game/m_brain.o \ 288 $(BUILDDIR)/game/m_chick.o \ 289 $(BUILDDIR)/game/m_flipper.o \ 290 $(BUILDDIR)/game/m_float.o \ 291 $(BUILDDIR)/game/m_flyer.o \ 292 $(BUILDDIR)/game/m_gladiator.o \ 293 $(BUILDDIR)/game/m_gunner.o \ 294 $(BUILDDIR)/game/m_hover.o \ 295 $(BUILDDIR)/game/m_infantry.o \ 296 $(BUILDDIR)/game/m_insane.o \ 297 $(BUILDDIR)/game/m_medic.o \ 298 $(BUILDDIR)/game/m_move.o \ 299 $(BUILDDIR)/game/m_mutant.o \ 300 $(BUILDDIR)/game/m_parasite.o \ 301 $(BUILDDIR)/game/m_soldier.o \ 302 $(BUILDDIR)/game/m_supertank.o \ 303 $(BUILDDIR)/game/m_tank.o \ 304 $(BUILDDIR)/game/p_hud.o \ 305 $(BUILDDIR)/game/p_trail.o \ 306 $(BUILDDIR)/game/p_view.o \ 307 $(BUILDDIR)/game/p_weapon.o \ 308 $(BUILDDIR)/game/q_shared.o \ 309 $(BUILDDIR)/game/m_flash.o \ 310 $(BUILDDIR)/game/g_so.o 311 312 $(BUILDDIR)/game$(ARCH).$(SHLIBEXT) : $(GAME_OBJS) 313 $(CC) $(CFLAGS) $(SHLIBLDFLAGS) -o $@ $(GAME_OBJS) 314 315 $(BUILDDIR)/game/g_ai.o : $(GAME_DIR)/g_ai.c 316 $(DO_SHLIB_CC) 317 318 $(BUILDDIR)/game/p_client.o : $(GAME_DIR)/p_client.c 319 $(DO_SHLIB_CC) 320 321 $(BUILDDIR)/game/g_cmds.o : $(GAME_DIR)/g_cmds.c 322 $(DO_SHLIB_CC) 323 324 $(BUILDDIR)/game/g_svcmds.o : $(GAME_DIR)/g_svcmds.c 325 $(DO_SHLIB_CC) 326 327 $(BUILDDIR)/game/g_combat.o : $(GAME_DIR)/g_combat.c 328 $(DO_SHLIB_CC) 329 330 $(BUILDDIR)/game/g_func.o : $(GAME_DIR)/g_func.c 331 $(DO_SHLIB_CC) 332 333 $(BUILDDIR)/game/g_items.o : $(GAME_DIR)/g_items.c 334 $(DO_SHLIB_CC) 335 336 $(BUILDDIR)/game/g_main.o : $(GAME_DIR)/g_main.c 337 $(DO_SHLIB_CC) 338 339 $(BUILDDIR)/game/g_misc.o : $(GAME_DIR)/g_misc.c 340 $(DO_SHLIB_CC) 341 342 $(BUILDDIR)/game/g_monster.o : $(GAME_DIR)/g_monster.c 343 $(DO_SHLIB_CC) 344 345 $(BUILDDIR)/game/g_phys.o : $(GAME_DIR)/g_phys.c 346 $(DO_SHLIB_CC) 347 348 $(BUILDDIR)/game/g_save.o : $(GAME_DIR)/g_save.c 349 $(DO_SHLIB_CC) 350 351 $(BUILDDIR)/game/g_spawn.o : $(GAME_DIR)/g_spawn.c 352 $(DO_SHLIB_CC) 353 354 $(BUILDDIR)/game/g_target.o : $(GAME_DIR)/g_target.c 355 $(DO_SHLIB_CC) 356 357 $(BUILDDIR)/game/g_trigger.o : $(GAME_DIR)/g_trigger.c 358 $(DO_SHLIB_CC) 359 360 $(BUILDDIR)/game/g_turret.o : $(GAME_DIR)/g_turret.c 361 $(DO_SHLIB_CC) 362 363 $(BUILDDIR)/game/g_utils.o : $(GAME_DIR)/g_utils.c 364 $(DO_SHLIB_CC) 365 366 $(BUILDDIR)/game/g_weapon.o : $(GAME_DIR)/g_weapon.c 367 $(DO_SHLIB_CC) 368 369 $(BUILDDIR)/game/m_actor.o : $(GAME_DIR)/m_actor.c 370 $(DO_SHLIB_CC) 371 372 $(BUILDDIR)/game/m_berserk.o : $(GAME_DIR)/m_berserk.c 373 $(DO_SHLIB_CC) 374 375 $(BUILDDIR)/game/m_boss2.o : $(GAME_DIR)/m_boss2.c 376 $(DO_SHLIB_CC) 377 378 $(BUILDDIR)/game/m_boss3.o : $(GAME_DIR)/m_boss3.c 379 $(DO_SHLIB_CC) 380 381 $(BUILDDIR)/game/m_boss31.o : $(GAME_DIR)/m_boss31.c 382 $(DO_SHLIB_CC) 383 384 $(BUILDDIR)/game/m_boss32.o : $(GAME_DIR)/m_boss32.c 385 $(DO_SHLIB_CC) 386 387 $(BUILDDIR)/game/m_brain.o : $(GAME_DIR)/m_brain.c 388 $(DO_SHLIB_CC) 389 390 $(BUILDDIR)/game/m_chick.o : $(GAME_DIR)/m_chick.c 391 $(DO_SHLIB_CC) 392 393 $(BUILDDIR)/game/m_flipper.o : $(GAME_DIR)/m_flipper.c 394 $(DO_SHLIB_CC) 395 396 $(BUILDDIR)/game/m_float.o : $(GAME_DIR)/m_float.c 397 $(DO_SHLIB_CC) 398 399 $(BUILDDIR)/game/m_flyer.o : $(GAME_DIR)/m_flyer.c 400 $(DO_SHLIB_CC) 401 402 $(BUILDDIR)/game/m_gladiator.o : $(GAME_DIR)/m_gladiator.c 403 $(DO_SHLIB_CC) 404 405 $(BUILDDIR)/game/m_gunner.o : $(GAME_DIR)/m_gunner.c 406 $(DO_SHLIB_CC) 407 408 $(BUILDDIR)/game/m_hover.o : $(GAME_DIR)/m_hover.c 409 $(DO_SHLIB_CC) 410 411 $(BUILDDIR)/game/m_infantry.o : $(GAME_DIR)/m_infantry.c 412 $(DO_SHLIB_CC) 413 414 $(BUILDDIR)/game/m_insane.o : $(GAME_DIR)/m_insane.c 415 $(DO_SHLIB_CC) 416 417 $(BUILDDIR)/game/m_medic.o : $(GAME_DIR)/m_medic.c 418 $(DO_SHLIB_CC) 419 420 $(BUILDDIR)/game/m_move.o : $(GAME_DIR)/m_move.c 421 $(DO_SHLIB_CC) 422 423 $(BUILDDIR)/game/m_mutant.o : $(GAME_DIR)/m_mutant.c 424 $(DO_SHLIB_CC) 425 426 $(BUILDDIR)/game/m_parasite.o : $(GAME_DIR)/m_parasite.c 427 $(DO_SHLIB_CC) 428 429 $(BUILDDIR)/game/m_soldier.o : $(GAME_DIR)/m_soldier.c 430 $(DO_SHLIB_CC) 431 432 $(BUILDDIR)/game/m_supertank.o : $(GAME_DIR)/m_supertank.c 433 $(DO_SHLIB_CC) 434 435 $(BUILDDIR)/game/m_tank.o : $(GAME_DIR)/m_tank.c 436 $(DO_SHLIB_CC) 437 438 $(BUILDDIR)/game/p_hud.o : $(GAME_DIR)/p_hud.c 439 $(DO_SHLIB_CC) 440 441 $(BUILDDIR)/game/p_trail.o : $(GAME_DIR)/p_trail.c 442 $(DO_SHLIB_CC) 443 444 $(BUILDDIR)/game/p_view.o : $(GAME_DIR)/p_view.c 445 $(DO_SHLIB_CC) 446 447 $(BUILDDIR)/game/p_weapon.o : $(GAME_DIR)/p_weapon.c 448 $(DO_SHLIB_CC) 449 450 $(BUILDDIR)/game/q_shared.o : $(GAME_DIR)/q_shared.c 451 $(DO_SHLIB_CC) 452 453 $(BUILDDIR)/game/m_flash.o : $(GAME_DIR)/m_flash.c 454 $(DO_SHLIB_CC) 455 456 $(BUILDDIR)/game/g_so.o : $(SOLARIS_DIR)/g_so.c 457 $(DO_SHLIB_CC) 458 459 ############################################################################# 460 # MISC 461 ############################################################################# 462 463 clean: clean-debug clean-release 464 465 clean-debug: 466 $(MAKE) clean2 BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)" 467 468 clean-release: 469 $(MAKE) clean2 BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(DEBUG_CFLAGS)" 470 471 clean2: 472 -rm -f $(QUAKE2_OBJS) \ 473 $(GAME_OBJS) \ 474 $(REF_SOFT_OBJS) \ 475 $(REF_SOFT_SVGA_OBJS) \ 476 $(REF_SOFT_X11_OBJS) \ 477 $(REF_GL_OBJS) 478