Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. #
  2. # Quake Makefile for Solaris
  3. #
  4. # Nov '97 by Zoid <zoid@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.