home *** CD-ROM | disk | FTP | other *** search
/ ST-Computer Leser-CD 2000 January / LCD_01_2000.iso / games / doom / pmdoom / makefile < prev    next >
Makefile  |  1999-12-17  |  5KB  |  207 lines

  1. #############################################################################
  2. #############################################################################
  3. #
  4. #    Makefile for Pmdoom
  5. #
  6. #    by Patrice Mandin
  7. #
  8. #    Compilation time :
  9. #    Atari Falcon    Motorola 68030/16     1 h  04 mn
  10. #    Atari Falcon    Motorola 68030/50 (CT2)    13 mn 36 s
  11. #    PC        Intel Pentium/100     3 mn 20 s
  12. #    PC        Cyrix 6x86 P200+/150     1 mn 35 s
  13. #    PC        Amd K6-2/333              40 s
  14. #
  15. #############################################################################
  16. #############################################################################
  17.  
  18. ###############    Choose the configuration to compile Doom for :
  19. #
  20. #    Configurations allowed are:
  21. #
  22. #    SYSTEM    CPU
  23. #
  24. #    linux    x86
  25. #    atari    m68k
  26.  
  27. SYSTEM=        atari
  28. CPU=        m68k
  29.  
  30. ###############    Different initializations values
  31.  
  32. CPU_IS_m68k=    -m68030 -D__BIG_ENDIAN__
  33. CPU_IS_x86=    -m486 -ffast-math -malign-loops=2 -malign-functions=2 -malign-jumps=2
  34.  
  35. SYS_IS_linux=    -DLINUX
  36. SYS_IS_atari=    -DATARI -DNONETWORK
  37.  
  38. VID_IS_x11=    -L/usr/X11R6/lib -lXext -lX11
  39. VID_IS_svgalib=    -lvga -lvgagl
  40. VID_IS_xbios=
  41. VID_IS_vdi=
  42.  
  43. VIDLIB_IS_linux=    $(VID_IS_x11) $(VID_IS_svgalib)
  44. VIDLIB_IS_atari=    $(VID_IS_xbios) $(VID_IS_vdi)
  45.  
  46. ###############    System specific objects files
  47.  
  48. OBJ_IS_linux=    \
  49.         $(OBJDIR)/sound/devaudio.o \
  50.         $(OBJDIR)/video/x11.o \
  51.         $(OBJDIR)/video/svgalib.o
  52.  
  53. OBJ_IS_atari=    \
  54.         $(OBJDIR)/i_cookies.o \
  55.         $(OBJDIR)/control/joypad.o \
  56.         $(OBJDIR)/control/ikbd.o \
  57.         $(OBJDIR)/control/bios.o \
  58.         $(OBJDIR)/sound/ataridma.o \
  59.         $(OBJDIR)/video/xbios.o \
  60.         $(OBJDIR)/video/vdi.o \
  61.         $(OBJDIR)/$(CPU)/c2p.o \
  62.         $(OBJDIR)/$(CPU)/ataridma.o \
  63.         $(OBJDIR)/$(CPU)/time.o \
  64.         $(OBJDIR)/$(CPU)/joypad.o \
  65.         $(OBJDIR)/$(CPU)/ikbd.o \
  66.         $(OBJDIR)/$(CPU)/m_fixed.o \
  67.         $(OBJDIR)/$(CPU)/m_swap.o \
  68.         $(OBJDIR)/$(CPU)/r_draw8.o \
  69.         $(OBJDIR)/$(CPU)/r_draw16.o \
  70.         $(OBJDIR)/$(CPU)/v_video16.o
  71.  
  72. ###############    Parse configuration now
  73.  
  74. SYSTEMFLAGS=    $(SYS_IS_$(SYSTEM))
  75. VIDEOLIBS=    $(VIDLIB_IS_$(SYSTEM))
  76. CPUFLAGS=    $(CPU_IS_$(CPU))
  77. SYSTEMOBJS=    $(OBJ_IS_$(SYSTEM))
  78.  
  79. ###############    Common variables
  80.  
  81. CC=        gcc
  82. AS=        as
  83. LD=        gcc
  84.  
  85. INCLUDES=    -Iinclude
  86. SRCDIR=        ./src
  87. OBJDIR=        ./obj
  88. SYSTEMLIBS=    -lm 
  89. CFLAGS=        -Wall -O2 -fomit-frame-pointer -DNORMALUNIX
  90.  
  91. ###############    Program name , source and object files
  92.  
  93. PROGRAM=    doom
  94.  
  95. OBJS=        \
  96.         $(OBJDIR)/dstrings.o \
  97.         $(OBJDIR)/doomstat.o \
  98.         $(OBJDIR)/doomdef.o \
  99.         $(OBJDIR)/tables.o \
  100.         $(OBJDIR)/f_finale.o \
  101.         $(OBJDIR)/f_wipe.o \
  102.         $(OBJDIR)/d_main.o \
  103.         $(OBJDIR)/d_net.o \
  104.         $(OBJDIR)/d_items.o \
  105.         $(OBJDIR)/g_game.o \
  106.         $(OBJDIR)/m_fixed.o \
  107.         $(OBJDIR)/m_menu.o \
  108.         $(OBJDIR)/m_misc.o \
  109.         $(OBJDIR)/m_argv.o \
  110.         $(OBJDIR)/m_bbox.o \
  111.         $(OBJDIR)/m_cheat.o \
  112.         $(OBJDIR)/m_random.o \
  113.         $(OBJDIR)/m_swap.o \
  114.         $(OBJDIR)/am_map.o \
  115.         $(OBJDIR)/p_ceilng.o \
  116.         $(OBJDIR)/p_doors.o \
  117.         $(OBJDIR)/p_enemy.o \
  118.         $(OBJDIR)/p_floor.o \
  119.         $(OBJDIR)/p_inter.o \
  120.         $(OBJDIR)/p_lights.o \
  121.         $(OBJDIR)/p_map.o \
  122.         $(OBJDIR)/p_maputl.o \
  123.         $(OBJDIR)/p_plats.o \
  124.         $(OBJDIR)/p_pspr.o \
  125.         $(OBJDIR)/p_setup.o \
  126.         $(OBJDIR)/p_sight.o \
  127.         $(OBJDIR)/p_spec.o \
  128.         $(OBJDIR)/p_switch.o \
  129.         $(OBJDIR)/p_mobj.o \
  130.         $(OBJDIR)/p_telept.o \
  131.         $(OBJDIR)/p_tick.o \
  132.         $(OBJDIR)/p_saveg.o \
  133.         $(OBJDIR)/p_user.o \
  134.         $(OBJDIR)/r_bsp.o \
  135.         $(OBJDIR)/r_data.o \
  136.         $(OBJDIR)/r_draw.o \
  137.         $(OBJDIR)/r_main.o \
  138.         $(OBJDIR)/r_plane.o \
  139.         $(OBJDIR)/r_segs.o \
  140.         $(OBJDIR)/r_sky.o \
  141.         $(OBJDIR)/r_things.o \
  142.         $(OBJDIR)/w_wad.o \
  143.         $(OBJDIR)/wi_stuff.o \
  144.         $(OBJDIR)/v_video.o \
  145.         $(OBJDIR)/st_lib.o \
  146.         $(OBJDIR)/st_stuff.o \
  147.         $(OBJDIR)/hu_stuff.o \
  148.         $(OBJDIR)/hu_lib.o \
  149.         $(OBJDIR)/s_sound.o \
  150.         $(OBJDIR)/z_zone.o \
  151.         $(OBJDIR)/info.o \
  152.         $(OBJDIR)/sounds.o \
  153.         $(OBJDIR)/r_draw8.o \
  154.         $(OBJDIR)/v_video8.o \
  155.         $(OBJDIR)/r_draw16.o \
  156.         $(OBJDIR)/v_video16.o \
  157.         $(OBJDIR)/r_draw24.o \
  158.         $(OBJDIR)/v_video24.o \
  159.         $(OBJDIR)/r_draw32.o \
  160.         $(OBJDIR)/v_video32.o \
  161.         $(OBJDIR)/i_main.o \
  162.         $(OBJDIR)/i_system.o \
  163.         $(OBJDIR)/i_net.o \
  164.         $(OBJDIR)/i_sound.o \
  165.         $(OBJDIR)/i_video.o \
  166.         $(OBJDIR)/i_zoom.o \
  167.         $(OBJDIR)/i_version.o \
  168.         $(OBJDIR)/sound/sndserv.o \
  169.         $(SYSTEMOBJS)
  170.  
  171. ###############    Rules to build program
  172.  
  173. all:     $(PROGRAM) strip $(SYSTEM)
  174.  
  175. clean:
  176.     rm -rf $(OBJDIR)
  177.     rm -f $(PROGRAM)
  178.  
  179. strip:
  180.     strip    $(PROGRAM)
  181.  
  182. $(PROGRAM):    $(OBJS)
  183.     $(LD) $(VIDEOLIBS) $(OBJS) $(SYSTEMLIBS) -o $(PROGRAM)
  184.  
  185. $(OBJDIR)/%.o:    $(SRCDIR)/%.c
  186.     @if [ ! -d $(OBJDIR) ]; then mkdir $(OBJDIR); fi
  187.     @if [ ! -d $(OBJDIR)/video ]; then mkdir $(OBJDIR)/video; fi
  188.     @if [ ! -d $(OBJDIR)/sound ]; then mkdir $(OBJDIR)/sound; fi
  189.     @if [ ! -d $(OBJDIR)/control ]; then mkdir $(OBJDIR)/control; fi
  190.     $(CC) $(INCLUDES) $(CFLAGS) $(SYSTEMFLAGS) $(CPUFLAGS) -c $< -o $@
  191.  
  192. $(OBJDIR)/$(CPU)/%.o:    $(SRCDIR)/$(CPU)/%.s
  193.     @if [ ! -d $(OBJDIR) ]; then mkdir $(OBJDIR); fi
  194.     @if [ ! -d $(OBJDIR)/$(CPU) ]; then mkdir $(OBJDIR)/$(CPU); fi
  195.     $(AS) -o $@ $< 
  196.  
  197. ###############    System dependent rules
  198.  
  199. linux:
  200.     @echo "--> Warning: you need to be root to use Svgalib"
  201.     chown root $(PROGRAM)
  202.     chgrp root $(PROGRAM)
  203.     chmod +s $(PROGRAM)
  204.  
  205. atari:
  206.     fixstk 131072 $(PROGRAM)
  207.