############################################################################ # Eternity Makefile MODE = RELEASE O = $(O_$(MODE)) O_RELEASE = djobj O_DEBUG = djdebug ################################ DJGPP #################################### PLATFORM = djgpp # compiler CC=gcc # the exe file name -sf EXE=$(O)/eternity.exe # options common to all builds # Note on NO_FCVT: My version of DJGPP doesn't have fcvt. If yours does, you # can remove -DNO_FCVT to save a couple kb of redundant code. CFLAGS_COMMON=-Wall -DNO_FCVT # new features; comment out what you don't want at the moment CFLAGS_NEWFEATURES=-DPOLYOBJECTS -DOVER_UNDER -DR_PORTALS -DAMX_NODYNALOAD -DEE_CDROM_SUPPORT -DR_LINKEDPORTALS # debug options CFLAGS_DEBUG=-g -DRANGECHECK -DINSTRUMENTED LDFLAGS_DEBUG= # optimized (release) options CFLAGS_RELEASE=-O3 -ffast-math -fomit-frame-pointer -m486 -mreg-alloc=adcbSDB LDFLAGS_RELEASE= # -s # libraries to link in LIBS=-lalleg -lm -lemu # this selects flags based on debug and release tagets CFLAGS=$(CFLAGS_COMMON) $(CFLAGS_$(MODE)) $(CFLAGS_NEWFEATURES) LDFLAGS=$(LDFLAGS_COMMON) $(LDFLAGS_$(MODE)) # system-specific object files PLATOBJS = \ $(O)/i_main.o \ $(O)/i_system.o \ $(O)/i_sound.o \ $(O)/i_video.o \ $(O)/i_net.o \ $(O)/ser_main.o \ $(O)/ser_port.o \ $(O)/keyboard.o \ $(O)/mmus2mid.o \ $(O)/pproblit.o \ $(O)/emu8kmid.o # haleyjd: this is currently out of sync with the C version, needs fixing # \ # $(O)/drawspan.o \ # $(O)/drawcol.o ############################## OBJECT FILES ################################# # subdirectory for objects (depends on target, to allow you # to build debug and release versions simultaneously) # object files OBJS = \ $(PLATOBJS) \ $(O)/acs_intr.o \ $(O)/amx.o \ $(O)/amxcore.o \ $(O)/am_color.o \ $(O)/am_map.o \ $(O)/a_fixed.o \ $(O)/a_small.o \ $(O)/c_cmd.o \ $(O)/c_io.o \ $(O)/c_net.o \ $(O)/c_runcmd.o \ $(O)/doomdef.o \ $(O)/doomstat.o \ $(O)/dstrings.o \ $(O)/d_deh.o \ $(O)/d_dehtbl.o \ $(O)/d_dialog.o \ $(O)/d_gi.o \ $(O)/d_io.o \ $(O)/d_items.o \ $(O)/d_main.o \ $(O)/d_net.o \ $(O)/e_cmd.o \ $(O)/e_edf.o \ $(O)/e_exdata.o \ $(O)/e_lib.o \ $(O)/e_sound.o \ $(O)/e_states.o \ $(O)/e_string.o \ $(O)/e_things.o \ $(O)/e_ttypes.o \ $(O)/f_finale.o \ $(O)/f_wipe.o \ $(O)/g_bind.o \ $(O)/g_cmd.o \ $(O)/g_dmflag.o \ $(O)/g_game.o \ $(O)/g_gfs.o \ $(O)/hi_stuff.o \ $(O)/hu_frags.o \ $(O)/hu_over.o \ $(O)/hu_stuff.o \ $(O)/info.o \ $(O)/in_lude.o \ $(O)/mn_emenu.o \ $(O)/mn_engin.o \ $(O)/mn_files.o \ $(O)/mn_htic.o \ $(O)/mn_menus.o \ $(O)/mn_misc.o \ $(O)/mn_skinv.o \ $(O)/m_argv.o \ $(O)/m_bbox.o \ $(O)/m_cheat.o \ $(O)/m_fcvt.o \ $(O)/m_misc.o \ $(O)/m_qstr.o \ $(O)/m_queue.o \ $(O)/m_random.o \ $(O)/polyobj.o \ $(O)/psnprntf.o \ $(O)/p_anim.o \ $(O)/p_ceilng.o \ $(O)/p_chase.o \ $(O)/p_cmd.o \ $(O)/p_doors.o \ $(O)/p_enemy.o \ $(O)/p_floor.o \ $(O)/p_genlin.o \ $(O)/p_henemy.o \ $(O)/p_hubs.o \ $(O)/p_info.o \ $(O)/p_inter.o \ $(O)/p_lights.o \ $(O)/p_map.o \ $(O)/p_map3d.o \ $(O)/p_maputl.o \ $(O)/p_mobj.o \ $(O)/p_partcl.o \ $(O)/p_plats.o \ $(O)/p_portal.o \ $(O)/p_pspr.o \ $(O)/p_saveg.o \ $(O)/p_setup.o \ $(O)/p_sight.o \ $(O)/p_skin.o \ $(O)/p_spec.o \ $(O)/p_switch.o \ $(O)/p_telept.o \ $(O)/p_tick.o \ $(O)/p_user.o \ $(O)/r_bsp.o \ $(O)/r_data.o \ $(O)/r_draw.o \ $(O)/r_drawq.o \ $(O)/r_drawl.o \ $(O)/r_main.o \ $(O)/r_plane.o \ $(O)/r_portal.o \ $(O)/r_ripple.o \ $(O)/r_segs.o \ $(O)/r_sky.o \ $(O)/r_span.o \ $(O)/r_things.o \ $(O)/sounds.o \ $(O)/st_hbar.o \ $(O)/st_lib.o \ $(O)/st_stuff.o \ $(O)/s_sndseq.o \ $(O)/s_sound.o \ $(O)/tables.o \ $(O)/v_block.o \ $(O)/v_font.o \ $(O)/v_misc.o \ $(O)/v_patch.o \ $(O)/v_video.o \ $(O)/wi_stuff.o \ $(O)/w_wad.o \ $(O)/z_zone.o \ $(O)/confuse.o \ $(O)/lexer.o build : $(EXE) $(EXE): $(OBJS) $(O)/version.o $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(O)/version.o -o $@ $(LIBS) debug: $(MAKE) MODE=DEBUG $(O)/%.o: %.c $(CC) $(CFLAGS) -c $< -o $@ $(O)/%.o: $(PLATFORM)/%.c $(CC) $(CFLAGS) -c $< -o $@ $(O)/%.o: Confuse/%.c $(CC) $(CFLAGS) -c $< -o $@ $(O)/%.o: $(PLATFORM)/%.s $(CC) $(CFLAGS) -c $< -o $@ # individual file depedencies follow # dependences are currently broken -- haleyjd