Home | History | Annotate | Download | only in WinQuake
      1 #
      2 # Quake Makefile for Solaris
      3 #
      4 # Nov '97 by Zoid <zoid (at] idsoftware.com>
      5 #
      6 # ELF only
      7 #
      8 
      9 VERSION=1.09
     10 
     11 ifneq (,$(findstring i86pc,$(shell uname -m)))
     12 ARCH=i386
     13 else
     14 ARCH=sparc
     15 endif
     16 
     17 MOUNT_DIR=/grog/Projects/WinQuake
     18 
     19 BUILD_DEBUG_DIR=debug$(ARCH)
     20 BUILD_RELEASE_DIR=release$(ARCH)
     21 
     22 CC=gcc
     23 BASE_CFLAGS=-I/usr/openwin/include
     24 
     25 RELEASE_CFLAGS=$(BASE_CFLAGS) -O6 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations
     26 DEBUG_CFLAGS=$(BASE_CFLAGS) -g
     27 LDFLAGS=-R /usr/openwin/lib -L /usr/openwin/lib -lm -lX11 -lXext -lsocket -lnsl -lthread -ldl 
     28 XIL_LDFLAGS=-L /opt/SUNWits/Graphics-sw/xil/lib -R /opt/SUNWits/Graphics-sw/xil/lib:/usr/openwin/lib -L /usr/openwin/lib -lm -lxil -lX11 -lXext -lsocket -lnsl -lthread -ldl 
     29 
     30 DO_CC=$(CC) $(CFLAGS) -o $@ -c $<
     31 DO_AS=$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
     32 
     33 #############################################################################
     34 # SETUP AND BUILD
     35 #############################################################################
     36 
     37 TARGETS=$(BUILDDIR)/quake.sw $(BUILDDIR)/quake.xil
     38 
     39 build_debug:
     40 	@-mkdir $(BUILD_DEBUG_DIR)
     41 	$(MAKE) targets BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)"
     42 
     43 build_release:
     44 	@-mkdir $(BUILD_RELEASE_DIR)
     45 	$(MAKE) targets BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(RELEASE_CFLAGS)"
     46 
     47 all: build_debug build_release
     48 
     49 targets: $(TARGETS)
     50 
     51 #############################################################################
     52 # CLIENT/SERVER
     53 #############################################################################
     54 
     55 QUAKE_OBJS= \
     56 	$(BUILDDIR)/chase.o \
     57 	$(BUILDDIR)/cl_demo.o \
     58 	$(BUILDDIR)/cl_input.o \
     59 	$(BUILDDIR)/cl_main.o \
     60 	$(BUILDDIR)/cl_parse.o \
     61 	$(BUILDDIR)/cl_tent.o \
     62 	$(BUILDDIR)/cmd.o \
     63 	$(BUILDDIR)/common.o \
     64 	$(BUILDDIR)/console.o \
     65 	$(BUILDDIR)/crc.o \
     66 	$(BUILDDIR)/cvar.o \
     67 	$(BUILDDIR)/draw.o \
     68 	$(BUILDDIR)/d_edge.o \
     69 	$(BUILDDIR)/d_fill.o \
     70 	$(BUILDDIR)/d_init.o \
     71 	$(BUILDDIR)/d_modech.o \
     72 	$(BUILDDIR)/d_part.o \
     73 	$(BUILDDIR)/d_polyse.o \
     74 	$(BUILDDIR)/d_scan.o \
     75 	$(BUILDDIR)/d_sky.o \
     76 	$(BUILDDIR)/d_sprite.o \
     77 	$(BUILDDIR)/d_surf.o \
     78 	$(BUILDDIR)/d_vars.o \
     79 	$(BUILDDIR)/d_zpoint.o \
     80 	$(BUILDDIR)/host.o \
     81 	$(BUILDDIR)/host_cmd.o \
     82 	$(BUILDDIR)/keys.o \
     83 	$(BUILDDIR)/menu.o \
     84 	$(BUILDDIR)/mathlib.o \
     85 	$(BUILDDIR)/model.o \
     86 	$(BUILDDIR)/nonintel.o \
     87 	$(BUILDDIR)/pr_cmds.o \
     88 	$(BUILDDIR)/pr_edict.o \
     89 	$(BUILDDIR)/pr_exec.o \
     90 	$(BUILDDIR)/r_aclip.o \
     91 	$(BUILDDIR)/r_alias.o \
     92 	$(BUILDDIR)/r_bsp.o \
     93 	$(BUILDDIR)/r_light.o \
     94 	$(BUILDDIR)/r_draw.o \
     95 	$(BUILDDIR)/r_efrag.o \
     96 	$(BUILDDIR)/r_edge.o \
     97 	$(BUILDDIR)/r_misc.o \
     98 	$(BUILDDIR)/r_main.o \
     99 	$(BUILDDIR)/r_sky.o \
    100 	$(BUILDDIR)/r_sprite.o \
    101 	$(BUILDDIR)/r_surf.o \
    102 	$(BUILDDIR)/r_part.o \
    103 	$(BUILDDIR)/r_vars.o \
    104 	$(BUILDDIR)/screen.o \
    105 	$(BUILDDIR)/sbar.o \
    106 	$(BUILDDIR)/sv_main.o \
    107 	$(BUILDDIR)/sv_phys.o \
    108 	$(BUILDDIR)/sv_move.o \
    109 	$(BUILDDIR)/sv_user.o \
    110 	$(BUILDDIR)/zone.o	\
    111 	$(BUILDDIR)/view.o	\
    112 	$(BUILDDIR)/wad.o \
    113 	$(BUILDDIR)/world.o \
    114 	$(BUILDDIR)/cd_null.o \
    115 	$(BUILDDIR)/snd_dma.o \
    116 	$(BUILDDIR)/snd_mix.o \
    117 	$(BUILDDIR)/snd_mem.o \
    118 	$(BUILDDIR)/net_dgrm.o \
    119 	$(BUILDDIR)/net_loop.o \
    120 	$(BUILDDIR)/net_main.o \
    121 	$(BUILDDIR)/net_vcr.o \
    122 	$(BUILDDIR)/net_udp.o \
    123 	$(BUILDDIR)/net_bsd.o \
    124 	$(BUILDDIR)/sys_sun.o \
    125 	$(BUILDDIR)/snd_sun.o 
    126 
    127 QUAKE_AS_OBJS= \
    128 	$(BUILDDIR)/d_copy.o \
    129 	$(BUILDDIR)/d_draw.o \
    130 	$(BUILDDIR)/d_draw16.o \
    131 	$(BUILDDIR)/d_parta.o \
    132 	$(BUILDDIR)/d_polysa.o \
    133 	$(BUILDDIR)/d_scana.o \
    134 	$(BUILDDIR)/d_spr8.o \
    135 	$(BUILDDIR)/d_varsa.o \
    136 	$(BUILDDIR)/math.o \
    137 	$(BUILDDIR)/r_aliasa.o \
    138 	$(BUILDDIR)/r_drawa.o \
    139 	$(BUILDDIR)/r_edgea.o \
    140 	$(BUILDDIR)/r_varsa.o \
    141 	$(BUILDDIR)/surf16.o \
    142 	$(BUILDDIR)/surf8.o \
    143 	$(BUILDDIR)/worlda.o \
    144 	$(BUILDDIR)/r_aclipa.o \
    145 	$(BUILDDIR)/snd_mixa.o \
    146 	$(BUILDDIR)/sys_dosa.o
    147 
    148 QUAKE_X_OBJS = $(BUILDDIR)/vid_sunx.o
    149 
    150 QUAKE_XIL_OBJS = $(BUILDDIR)/vid_sunxil.o
    151 
    152 ifeq ($(ARCH),i386)
    153 $(BUILDDIR)/quake.sw : $(QUAKE_OBJS) $(QUAKE_AS_OBJS) $(QUAKE_X_OBJS)
    154 	$(CC) -o $(@) $(QUAKE_OBJS) $(QUAKE_AS_OBJS) $(QUAKE_X_OBJS) $(LDFLAGS)
    155 
    156 $(BUILDDIR)/quake.xil: $(QUAKE_OBJS) $(QUAKE_AS_OBJS) $(QUAKE_XIL_OBJS)
    157 	$(CC) -o $(@) $(QUAKE_OBJS) $(QUAKE_AS_OBJS) $(QUAKE_XIL_OBJS) $(XIL_LDFLAGS)
    158 else
    159 $(BUILDDIR)/quake.sw : $(QUAKE_OBJS) $(QUAKE_X_OBJS)
    160 	$(CC) -o $(@) $(QUAKE_OBJS) $(QUAKE_X_OBJS) $(LDFLAGS)
    161 
    162 $(BUILDDIR)/quake.xil: $(QUAKE_OBJS) $(QUAKE_XIL_OBJS)
    163 	$(CC) -o $(@) $(QUAKE_OBJS) $(QUAKE_XIL_OBJS) $(XIL_LDFLAGS)
    164 endif
    165 
    166 ##
    167 
    168 $(BUILDDIR)/chase.o :				$(MOUNT_DIR)/chase.c
    169 	$(DO_CC)
    170 
    171 $(BUILDDIR)/cl_demo.o :             $(MOUNT_DIR)/cl_demo.c
    172 	$(DO_CC)
    173 
    174 $(BUILDDIR)/cl_input.o :            $(MOUNT_DIR)/cl_input.c
    175 	$(DO_CC)
    176 
    177 $(BUILDDIR)/cl_main.o :             $(MOUNT_DIR)/cl_main.c
    178 	$(DO_CC)
    179 
    180 $(BUILDDIR)/cl_parse.o :            $(MOUNT_DIR)/cl_parse.c
    181 	$(DO_CC)
    182 
    183 $(BUILDDIR)/cl_tent.o :             $(MOUNT_DIR)/cl_tent.c
    184 	$(DO_CC)
    185 
    186 $(BUILDDIR)/cmd.o :                 $(MOUNT_DIR)/cmd.c
    187 	$(DO_CC)
    188 
    189 $(BUILDDIR)/common.o :              $(MOUNT_DIR)/common.c
    190 	$(DO_CC)
    191 
    192 $(BUILDDIR)/console.o :             $(MOUNT_DIR)/console.c
    193 	$(DO_CC)
    194 
    195 $(BUILDDIR)/crc.o :                 $(MOUNT_DIR)/crc.c
    196 	$(DO_CC)
    197 
    198 $(BUILDDIR)/cvar.o :                $(MOUNT_DIR)/cvar.c
    199 	$(DO_CC)
    200 
    201 $(BUILDDIR)/draw.o :                $(MOUNT_DIR)/draw.c
    202 	$(DO_CC)
    203 
    204 $(BUILDDIR)/d_edge.o :              $(MOUNT_DIR)/d_edge.c
    205 	$(DO_CC)
    206 
    207 $(BUILDDIR)/d_fill.o :              $(MOUNT_DIR)/d_fill.c
    208 	$(DO_CC)
    209 
    210 $(BUILDDIR)/d_init.o :              $(MOUNT_DIR)/d_init.c
    211 	$(DO_CC)
    212 
    213 $(BUILDDIR)/d_modech.o :            $(MOUNT_DIR)/d_modech.c
    214 	$(DO_CC)
    215 
    216 $(BUILDDIR)/d_part.o :              $(MOUNT_DIR)/d_part.c
    217 	$(DO_CC)
    218 
    219 $(BUILDDIR)/d_polyse.o :            $(MOUNT_DIR)/d_polyse.c
    220 	$(DO_CC)
    221 
    222 $(BUILDDIR)/d_scan.o :              $(MOUNT_DIR)/d_scan.c
    223 	$(DO_CC)
    224 
    225 $(BUILDDIR)/d_sky.o :               $(MOUNT_DIR)/d_sky.c
    226 	$(DO_CC)
    227 
    228 $(BUILDDIR)/d_sprite.o :            $(MOUNT_DIR)/d_sprite.c
    229 	$(DO_CC)
    230 
    231 $(BUILDDIR)/d_surf.o :              $(MOUNT_DIR)/d_surf.c
    232 	$(DO_CC)
    233 
    234 $(BUILDDIR)/d_vars.o :              $(MOUNT_DIR)/d_vars.c
    235 	$(DO_CC)
    236 
    237 $(BUILDDIR)/d_zpoint.o :            $(MOUNT_DIR)/d_zpoint.c
    238 	$(DO_CC)
    239 
    240 $(BUILDDIR)/host.o :                $(MOUNT_DIR)/host.c
    241 	$(DO_CC)
    242 
    243 $(BUILDDIR)/host_cmd.o :            $(MOUNT_DIR)/host_cmd.c
    244 	$(DO_CC)
    245 
    246 $(BUILDDIR)/keys.o :                $(MOUNT_DIR)/keys.c
    247 	$(DO_CC)
    248 
    249 $(BUILDDIR)/menu.o :                $(MOUNT_DIR)/menu.c
    250 	$(DO_CC)
    251 
    252 $(BUILDDIR)/mathlib.o :             $(MOUNT_DIR)/mathlib.c
    253 	$(DO_CC)
    254 
    255 $(BUILDDIR)/model.o :               $(MOUNT_DIR)/model.c
    256 	$(DO_CC)
    257 
    258 $(BUILDDIR)/nonintel.o :            $(MOUNT_DIR)/nonintel.c
    259 	$(DO_CC)
    260 
    261 $(BUILDDIR)/pr_cmds.o :             $(MOUNT_DIR)/pr_cmds.c
    262 	$(DO_CC)
    263 
    264 $(BUILDDIR)/pr_edict.o :            $(MOUNT_DIR)/pr_edict.c
    265 	$(DO_CC)
    266 
    267 $(BUILDDIR)/pr_exec.o :             $(MOUNT_DIR)/pr_exec.c
    268 	$(DO_CC)
    269 
    270 $(BUILDDIR)/r_aclip.o :             $(MOUNT_DIR)/r_aclip.c
    271 	$(DO_CC)
    272 
    273 $(BUILDDIR)/r_alias.o :             $(MOUNT_DIR)/r_alias.c
    274 	$(DO_CC)
    275 
    276 $(BUILDDIR)/r_bsp.o :               $(MOUNT_DIR)/r_bsp.c
    277 	$(DO_CC)
    278 
    279 $(BUILDDIR)/r_light.o :             $(MOUNT_DIR)/r_light.c
    280 	$(DO_CC)
    281 
    282 $(BUILDDIR)/r_draw.o :              $(MOUNT_DIR)/r_draw.c
    283 	$(DO_CC)
    284 
    285 $(BUILDDIR)/r_efrag.o :             $(MOUNT_DIR)/r_efrag.c
    286 	$(DO_CC)
    287 
    288 $(BUILDDIR)/r_edge.o :              $(MOUNT_DIR)/r_edge.c
    289 	$(DO_CC)
    290 
    291 $(BUILDDIR)/r_misc.o :              $(MOUNT_DIR)/r_misc.c
    292 	$(DO_CC)
    293 
    294 $(BUILDDIR)/r_main.o :              $(MOUNT_DIR)/r_main.c
    295 	$(DO_CC)
    296 
    297 $(BUILDDIR)/r_sky.o :               $(MOUNT_DIR)/r_sky.c
    298 	$(DO_CC)
    299 
    300 $(BUILDDIR)/r_sprite.o :            $(MOUNT_DIR)/r_sprite.c
    301 	$(DO_CC)
    302 
    303 $(BUILDDIR)/r_surf.o :              $(MOUNT_DIR)/r_surf.c
    304 	$(DO_CC)
    305 
    306 $(BUILDDIR)/r_part.o :              $(MOUNT_DIR)/r_part.c
    307 	$(DO_CC)
    308 
    309 $(BUILDDIR)/r_vars.o :              $(MOUNT_DIR)/r_vars.c
    310 	$(DO_CC)
    311 
    312 $(BUILDDIR)/screen.o :              $(MOUNT_DIR)/screen.c
    313 	$(DO_CC)
    314 
    315 $(BUILDDIR)/sbar.o :                $(MOUNT_DIR)/sbar.c
    316 	$(DO_CC)
    317 
    318 $(BUILDDIR)/sv_main.o :             $(MOUNT_DIR)/sv_main.c
    319 	$(DO_CC)
    320 
    321 $(BUILDDIR)/sv_phys.o :             $(MOUNT_DIR)/sv_phys.c
    322 	$(DO_CC)
    323 
    324 $(BUILDDIR)/sv_move.o :             $(MOUNT_DIR)/sv_move.c
    325 	$(DO_CC)
    326 
    327 $(BUILDDIR)/sv_user.o :             $(MOUNT_DIR)/sv_user.c
    328 	$(DO_CC)
    329 
    330 $(BUILDDIR)/zone.o	:               $(MOUNT_DIR)/zone.c
    331 	$(DO_CC)
    332 
    333 $(BUILDDIR)/view.o	:               $(MOUNT_DIR)/view.c
    334 	$(DO_CC)
    335 
    336 $(BUILDDIR)/wad.o :                 $(MOUNT_DIR)/wad.c
    337 	$(DO_CC)
    338 
    339 $(BUILDDIR)/world.o :               $(MOUNT_DIR)/world.c
    340 	$(DO_CC)
    341 
    342 $(BUILDDIR)/cd_null.o :             $(MOUNT_DIR)/cd_null.c
    343 	$(DO_CC)
    344 
    345 $(BUILDDIR)/snd_dma.o :             $(MOUNT_DIR)/snd_dma.c
    346 	$(DO_CC)
    347 
    348 $(BUILDDIR)/snd_mix.o :             $(MOUNT_DIR)/snd_mix.c
    349 	$(DO_CC)
    350 
    351 $(BUILDDIR)/snd_mem.o :             $(MOUNT_DIR)/snd_mem.c
    352 	$(DO_CC)
    353 
    354 $(BUILDDIR)/net_dgrm.o :            $(MOUNT_DIR)/net_dgrm.c
    355 	$(DO_CC)
    356 
    357 $(BUILDDIR)/net_loop.o :            $(MOUNT_DIR)/net_loop.c
    358 	$(DO_CC)
    359 
    360 $(BUILDDIR)/net_main.o :            $(MOUNT_DIR)/net_main.c
    361 	$(DO_CC)
    362 
    363 $(BUILDDIR)/net_vcr.o :             $(MOUNT_DIR)/net_vcr.c
    364 	$(DO_CC)
    365 
    366 $(BUILDDIR)/net_udp.o :             $(MOUNT_DIR)/net_udp.c
    367 	$(DO_CC)
    368 
    369 $(BUILDDIR)/net_bsd.o :             $(MOUNT_DIR)/net_bsd.c
    370 	$(DO_CC)
    371 
    372 $(BUILDDIR)/sys_sun.o :             $(MOUNT_DIR)/sys_sun.c
    373 	$(DO_CC)
    374 
    375 $(BUILDDIR)/snd_sun.o :             $(MOUNT_DIR)/snd_sun.c
    376 	$(DO_CC)
    377 
    378 $(BUILDDIR)/in_sun.o :             $(MOUNT_DIR)/in_sun.c
    379 	$(DO_CC)
    380 
    381 $(BUILDDIR)/vid_sunx.o :             $(MOUNT_DIR)/vid_sunx.c
    382 	$(DO_CC)
    383 
    384 $(BUILDDIR)/vid_sunxil.o :             $(MOUNT_DIR)/vid_sunxil.c
    385 	$(DO_CC)
    386 
    387 #####
    388 
    389 $(BUILDDIR)/d_copy.o :   $(MOUNT_DIR)/d_copy.s
    390 	$(DO_AS)
    391 
    392 $(BUILDDIR)/d_draw.o :   $(MOUNT_DIR)/d_draw.s
    393 	$(DO_AS)
    394 
    395 $(BUILDDIR)/d_draw16.o : $(MOUNT_DIR)/d_draw16.s
    396 	$(DO_AS)
    397 
    398 $(BUILDDIR)/d_parta.o :  $(MOUNT_DIR)/d_parta.s
    399 	$(DO_AS)
    400 
    401 $(BUILDDIR)/d_polysa.o : $(MOUNT_DIR)/d_polysa.s
    402 	$(DO_AS)
    403 
    404 $(BUILDDIR)/d_scana.o :  $(MOUNT_DIR)/d_scana.s
    405 	$(DO_AS)
    406 
    407 $(BUILDDIR)/d_spr8.o :   $(MOUNT_DIR)/d_spr8.s
    408 	$(DO_AS)
    409 
    410 $(BUILDDIR)/d_varsa.o :  $(MOUNT_DIR)/d_varsa.s
    411 	$(DO_AS)
    412 
    413 $(BUILDDIR)/math.o :     $(MOUNT_DIR)/math.s
    414 	$(DO_AS)
    415 
    416 $(BUILDDIR)/r_aliasa.o : $(MOUNT_DIR)/r_aliasa.s
    417 	$(DO_AS)
    418 
    419 $(BUILDDIR)/r_drawa.o :  $(MOUNT_DIR)/r_drawa.s
    420 	$(DO_AS)
    421 
    422 $(BUILDDIR)/r_edgea.o :  $(MOUNT_DIR)/r_edgea.s
    423 	$(DO_AS)
    424 
    425 $(BUILDDIR)/r_varsa.o :  $(MOUNT_DIR)/r_varsa.s
    426 	$(DO_AS)
    427 
    428 $(BUILDDIR)/surf16.o :   $(MOUNT_DIR)/surf16.s
    429 	$(DO_AS)
    430 
    431 $(BUILDDIR)/surf8.o :    $(MOUNT_DIR)/surf8.s
    432 	$(DO_AS)
    433 
    434 $(BUILDDIR)/worlda.o :   $(MOUNT_DIR)/worlda.s
    435 	$(DO_AS)
    436 
    437 $(BUILDDIR)/r_aclipa.o : $(MOUNT_DIR)/r_aclipa.s
    438 	$(DO_AS)
    439 
    440 $(BUILDDIR)/snd_mixa.o : $(MOUNT_DIR)/snd_mixa.s
    441 	$(DO_AS)
    442 
    443 $(BUILDDIR)/sys_dosa.o : $(MOUNT_DIR)/sys_dosa.s
    444 	$(DO_AS)
    445 
    446 #############################################################################
    447 # TAR
    448 #############################################################################
    449 
    450 # Make RPMs.  You need to be root to make this work
    451 RPMDIR = /var/tmp/quake-$(VERSION)
    452 
    453 tar:
    454 	if [ ! -d archives ];then mkdir archives;fi
    455 	$(MAKE) copyfiles COPYDIR=$(RPMDIR)
    456 	cd $(RPMDIR); tar cvf q2ded-$(VERSION)-$(ARCH)-sun-solaris2.5.1.tar *
    457 	cd $(RPMDIR); compress q2ded-$(VERSION)-$(ARCH)-sun-solaris2.5.1.tar
    458 	mv $(RPMDIR)/*.tar.Z archives/.
    459 	rm -rf $(RPMDIR)
    460 
    461 copyfiles:
    462 	-mkdirhier $(COPYDIR)
    463 	cp $(BUILD_RELEASE_DIR)/quake.sw $(COPYDIR)
    464 	cp $(BUILD_RELEASE_DIR)/quake.xil $(COPYDIR)
    465 	strip $(COPYDIR)/quake
    466 	strip $(COPYDIR)/quake.xil
    467 	cp $(MOUNT_DIR)/README.Solaris $(COPYDIR)/README.Solaris
    468 
    469 #############################################################################
    470 # MISC
    471 #############################################################################
    472 
    473 clean: clean-debug clean-release
    474 
    475 clean-debug:
    476 	$(MAKE) clean2 BUILDDIR=$(BUILD_DEBUG_DIR) CFLAGS="$(DEBUG_CFLAGS)"
    477 
    478 clean-release:
    479 	$(MAKE) clean2 BUILDDIR=$(BUILD_RELEASE_DIR) CFLAGS="$(DEBUG_CFLAGS)"
    480 
    481 clean2:
    482 	-rm -f $(QUAKE_OBJS) $(QUAKE_X_OBJS) $(QUAKE_XIL_OBJS)
    483 
    484