# Sub-makefile autogenerated by premake # And then tweaked by hand ifndef CC CC=gcc endif ifndef CXX CC=g++ endif ifndef CONFIG CONFIG=Release endif ifndef OPTLEVEL OPTLEVEL=2 endif ifndef ARCH_TYPE ARCH_TYPE=pentium endif ifndef TUNE_TYPE TUNE_TYPE=athlon-xp endif ifndef RELEASETARGET RELEASETARGET = zdoomgcc.exe endif ifndef DEBUGTARGET DEBUGTARGE = zdoomgccd.exe endif DEBUGOBJDIR = debugobj RELEASEOBJDIR = releaseobj CCDV = @ccdv FMODDIR = c:/fmods/fmodapi374win CPPFLAGS = -DWIN32 -D_WIN32 -D_WINDOWS -DHAVE_STRUPR -DHAVE_FILELENGTH -DI_DO_NOT_LIKE_BIG_DOWNLOADS -D__forceinline=inline -MMD -Izlib -IFLAC -Isrc -Isrc/win32 -Isrc/g_doom -Isrc/g_heretic -I src/g_hexen -Isrc/g_raven -Isrc/g_strife -Isrc/g_shared -Isrc/oplsynth -Isrc/sound LDFLAGS += flac/libflac.a zlib/libz.a -lfmod -lwsock32 -lwinmm -lddraw -ldsound -ldxguid -ldinput8 -lole32 -luser32 -lgdi32 -lcomctl32 -lcomdlg32 -lsetupapi -lws2_32 -Wl,--subsystem,windows ifdef FMODDIR CPPFLAGS += -I$(FMODDIR)/api/inc LDFLAGS += -L$(FMODDIR)/api/lib endif ifeq ($(CONFIG),Debug) OBJDIR = $(DEBUGOBJDIR) CFLAGS += $(CPPFLAGS) -Wall -Wno-unused -g3 CPPFLAGS += -D_DEBUG CXXFLAGS = $(CFLAGS) TARGET = $(DEBUGTARGET) endif ifeq ($(CONFIG),Release) OBJDIR = $(RELEASEOBJDIR) CFLAGS += $(CPPFLAGS) -march=$(ARCH_TYPE) -mtune=$(TUNE_TYPE) -Wall -Wno-unused -O$(OPTLEVEL) -fomit-frame-pointer CPPFLAGS += -DNDEBUG CXXFLAGS = $(CFLAGS) LDFLAGS += -Wl,-Map=zdoomgcc.map TARGET = $(RELEASETARGET) endif # This must be first. OBJECTS = $(OBJDIR)/autostart.o OBJECTS += \ $(OBJDIR)/am_map.o \ $(OBJDIR)/b_bot.o \ $(OBJDIR)/b_func.o \ $(OBJDIR)/b_game.o \ $(OBJDIR)/b_move.o \ $(OBJDIR)/b_think.o \ $(OBJDIR)/bbannouncer.o \ $(OBJDIR)/c_bind.o \ $(OBJDIR)/c_cmds.o \ $(OBJDIR)/c_console.o \ $(OBJDIR)/c_cvars.o \ $(OBJDIR)/c_dispatch.o \ $(OBJDIR)/c_expr.o \ $(OBJDIR)/cmdlib.o \ $(OBJDIR)/colormatcher.o \ $(OBJDIR)/configfile.o \ $(OBJDIR)/ct_chat.o \ $(OBJDIR)/d_dehacked.o \ $(OBJDIR)/d_main.o \ $(OBJDIR)/d_net.o \ $(OBJDIR)/d_netinfo.o \ $(OBJDIR)/d_protocol.o \ $(OBJDIR)/decallib.o \ $(OBJDIR)/decorations.o \ $(OBJDIR)/dobject.o \ $(OBJDIR)/dobjtype.o \ $(OBJDIR)/doomdef.o \ $(OBJDIR)/doomstat.o \ $(OBJDIR)/dsectoreffect.o \ $(OBJDIR)/dthinker.o \ $(OBJDIR)/f_finale.o \ $(OBJDIR)/f_wipe.o \ $(OBJDIR)/farchive.o \ $(OBJDIR)/files.o \ $(OBJDIR)/g_game.o \ $(OBJDIR)/g_hub.o \ $(OBJDIR)/g_level.o \ $(OBJDIR)/gameconfigfile.o \ $(OBJDIR)/gi.o \ $(OBJDIR)/hu_scores.o \ $(OBJDIR)/info.o \ $(OBJDIR)/infodefaults.o \ $(OBJDIR)/lumpconfigfile.o \ $(OBJDIR)/m_alloc.o \ $(OBJDIR)/m_argv.o \ $(OBJDIR)/m_bbox.o \ $(OBJDIR)/m_cheat.o \ $(OBJDIR)/m_fixed.o \ $(OBJDIR)/m_menu.o \ $(OBJDIR)/m_misc.o \ $(OBJDIR)/m_options.o \ $(OBJDIR)/m_png.o \ $(OBJDIR)/m_random.o \ $(OBJDIR)/mus2midi.o \ $(OBJDIR)/nodebuild.o \ $(OBJDIR)/nodebuild_events.o \ $(OBJDIR)/nodebuild_extract.o \ $(OBJDIR)/nodebuild_gl.o \ $(OBJDIR)/nodebuild_utility.o \ $(OBJDIR)/p_acs.o \ $(OBJDIR)/p_buildmap.o \ $(OBJDIR)/p_ceiling.o \ $(OBJDIR)/p_conversation.o \ $(OBJDIR)/p_doors.o \ $(OBJDIR)/p_effect.o \ $(OBJDIR)/p_enemy.o \ $(OBJDIR)/p_floor.o \ $(OBJDIR)/p_interaction.o \ $(OBJDIR)/p_lights.o \ $(OBJDIR)/p_lnspec.o \ $(OBJDIR)/p_map.o \ $(OBJDIR)/p_maputl.o \ $(OBJDIR)/p_mobj.o \ $(OBJDIR)/p_pillar.o \ $(OBJDIR)/p_plats.o \ $(OBJDIR)/p_pspr.o \ $(OBJDIR)/p_saveg.o \ $(OBJDIR)/p_sectors.o \ $(OBJDIR)/p_setup.o \ $(OBJDIR)/p_sight.o \ $(OBJDIR)/p_spec.o \ $(OBJDIR)/p_switch.o \ $(OBJDIR)/p_teleport.o \ $(OBJDIR)/p_terrain.o \ $(OBJDIR)/p_things.o \ $(OBJDIR)/p_tick.o \ $(OBJDIR)/p_trace.o \ $(OBJDIR)/p_user.o \ $(OBJDIR)/p_writemap.o \ $(OBJDIR)/p_xlat.o \ $(OBJDIR)/po_man.o \ $(OBJDIR)/r_bsp.o \ $(OBJDIR)/r_data.o \ $(OBJDIR)/r_draw.o \ $(OBJDIR)/r_drawt.o \ $(OBJDIR)/r_main.o \ $(OBJDIR)/r_plane.o \ $(OBJDIR)/r_segs.o \ $(OBJDIR)/r_sky.o \ $(OBJDIR)/r_things.o \ $(OBJDIR)/r_polymost.o \ $(OBJDIR)/s_advsound.o \ $(OBJDIR)/s_environment.o \ $(OBJDIR)/s_playlist.o \ $(OBJDIR)/s_sndseq.o \ $(OBJDIR)/s_sound.o \ $(OBJDIR)/sc_man.o \ $(OBJDIR)/skins.o \ $(OBJDIR)/st_stuff.o \ $(OBJDIR)/stats.o \ $(OBJDIR)/stringtable.o \ $(OBJDIR)/tables.o \ $(OBJDIR)/tempfiles.o \ $(OBJDIR)/thingdef.o \ $(OBJDIR)/thingdef_codeptr.o \ $(OBJDIR)/thingdef_exp.o \ $(OBJDIR)/v_collection.o \ $(OBJDIR)/v_draw.o \ $(OBJDIR)/v_font.o \ $(OBJDIR)/v_palette.o \ $(OBJDIR)/v_pfx.o \ $(OBJDIR)/v_text.o \ $(OBJDIR)/v_video.o \ $(OBJDIR)/vectors.o \ $(OBJDIR)/name.o \ $(OBJDIR)/zstring.o \ $(OBJDIR)/zstrformat.o \ $(OBJDIR)/w_wad.o \ $(OBJDIR)/wi_stuff.o \ $(OBJDIR)/a_arachnotron.o \ $(OBJDIR)/a_archvile.o \ $(OBJDIR)/a_bossbrain.o \ $(OBJDIR)/a_bruiser.o \ $(OBJDIR)/a_cacodemon.o \ $(OBJDIR)/a_cyberdemon.o \ $(OBJDIR)/a_demon.o \ $(OBJDIR)/a_doomhealth.o \ $(OBJDIR)/a_doomimp.o \ $(OBJDIR)/a_doommisc.o \ $(OBJDIR)/a_doomplayer.o \ $(OBJDIR)/a_doomweaps.o \ $(OBJDIR)/a_fatso.o \ $(OBJDIR)/a_keen.o \ $(OBJDIR)/a_lostsoul.o \ $(OBJDIR)/a_painelemental.o \ $(OBJDIR)/a_possessed.o \ $(OBJDIR)/a_revenant.o \ $(OBJDIR)/a_scriptedmarine.o \ $(OBJDIR)/a_spidermaster.o \ $(OBJDIR)/doom_sbar.o \ $(OBJDIR)/a_beast.o \ $(OBJDIR)/a_chicken.o \ $(OBJDIR)/a_clink.o \ $(OBJDIR)/a_dsparil.o \ $(OBJDIR)/a_hereticartifacts.o \ $(OBJDIR)/a_hereticimp.o \ $(OBJDIR)/a_heretickeys.o \ $(OBJDIR)/a_hereticmisc.o \ $(OBJDIR)/a_hereticplayer.o \ $(OBJDIR)/a_hereticweaps.o \ $(OBJDIR)/a_ironlich.o \ $(OBJDIR)/a_knight.o \ $(OBJDIR)/a_mummy.o \ $(OBJDIR)/a_snake.o \ $(OBJDIR)/a_wizard.o \ $(OBJDIR)/heretic_sbar.o \ $(OBJDIR)/a_bats.o \ $(OBJDIR)/a_bishop.o \ $(OBJDIR)/a_blastradius.o \ $(OBJDIR)/a_boostarmor.o \ $(OBJDIR)/a_centaur.o \ $(OBJDIR)/a_clericboss.o \ $(OBJDIR)/a_clericflame.o \ $(OBJDIR)/a_clericholy.o \ $(OBJDIR)/a_clericmace.o \ $(OBJDIR)/a_clericplayer.o \ $(OBJDIR)/a_clericstaff.o \ $(OBJDIR)/a_demons.o \ $(OBJDIR)/a_dragon.o \ $(OBJDIR)/a_ettin.o \ $(OBJDIR)/a_fighteraxe.o \ $(OBJDIR)/a_fighterboss.o \ $(OBJDIR)/a_fighterhammer.o \ $(OBJDIR)/a_fighterplayer.o \ $(OBJDIR)/a_fighterquietus.o \ $(OBJDIR)/a_firedemon.o \ $(OBJDIR)/a_flechette.o \ $(OBJDIR)/a_fog.o \ $(OBJDIR)/a_healingradius.o \ $(OBJDIR)/a_heresiarch.o \ $(OBJDIR)/a_hexenspecialdecs.o \ $(OBJDIR)/a_iceguy.o \ $(OBJDIR)/a_korax.o \ $(OBJDIR)/a_mageboss.o \ $(OBJDIR)/a_magecone.o \ $(OBJDIR)/a_magelightning.o \ $(OBJDIR)/a_mageplayer.o \ $(OBJDIR)/a_magestaff.o \ $(OBJDIR)/a_magewand.o \ $(OBJDIR)/a_mana.o \ $(OBJDIR)/a_pig.o \ $(OBJDIR)/a_puzzleitems.o \ $(OBJDIR)/a_serpent.o \ $(OBJDIR)/a_spike.o \ $(OBJDIR)/a_summon.o \ $(OBJDIR)/a_teleportother.o \ $(OBJDIR)/a_weaponpiece.o \ $(OBJDIR)/a_weaponpieces.o \ $(OBJDIR)/a_wraith.o \ $(OBJDIR)/hexen_sbar.o \ $(OBJDIR)/a_artiegg.o \ $(OBJDIR)/a_artitele.o \ $(OBJDIR)/a_minotaur.o \ $(OBJDIR)/a_ravenambient.o \ $(OBJDIR)/a_acolyte.o \ $(OBJDIR)/a_alienspectres.o \ $(OBJDIR)/a_coin.o \ $(OBJDIR)/a_crusader.o \ $(OBJDIR)/a_entityboss.o \ $(OBJDIR)/a_inquisitor.o \ $(OBJDIR)/a_loremaster.o \ $(OBJDIR)/a_macil.o \ $(OBJDIR)/a_oracle.o \ $(OBJDIR)/a_programmer.o \ $(OBJDIR)/a_reaver.o \ $(OBJDIR)/a_rebels.o \ $(OBJDIR)/a_sentinel.o \ $(OBJDIR)/a_spectral.o \ $(OBJDIR)/a_stalker.o \ $(OBJDIR)/a_strifeammo.o \ $(OBJDIR)/a_strifebishop.o \ $(OBJDIR)/a_strifeitems.o \ $(OBJDIR)/a_strifeplayer.o \ $(OBJDIR)/a_strifestuff.o \ $(OBJDIR)/a_strifeweapons.o \ $(OBJDIR)/a_templar.o \ $(OBJDIR)/a_thingstoblowup.o \ $(OBJDIR)/strife_sbar.o \ $(OBJDIR)/a_action.o \ $(OBJDIR)/a_artifacts.o \ $(OBJDIR)/a_bridge.o \ $(OBJDIR)/a_camera.o \ $(OBJDIR)/a_debris.o \ $(OBJDIR)/a_decals.o \ $(OBJDIR)/a_flashfader.o \ $(OBJDIR)/a_fountain.o \ $(OBJDIR)/a_hatetarget.o \ $(OBJDIR)/a_keys.o \ $(OBJDIR)/a_lightning.o \ $(OBJDIR)/a_movingcamera.o \ $(OBJDIR)/a_pickups.o \ $(OBJDIR)/a_quake.o \ $(OBJDIR)/a_secrettrigger.o \ $(OBJDIR)/a_sectoraction.o \ $(OBJDIR)/a_sharedmisc.o \ $(OBJDIR)/a_skies.o \ $(OBJDIR)/a_soundenvironment.o \ $(OBJDIR)/a_soundsequence.o \ $(OBJDIR)/a_spark.o \ $(OBJDIR)/a_waterzone.o \ $(OBJDIR)/a_weapons.o \ $(OBJDIR)/hudmessages.o \ $(OBJDIR)/shared_sbar.o \ $(OBJDIR)/fmopl.o \ $(OBJDIR)/mlkernel.o \ $(OBJDIR)/mlopl.o \ $(OBJDIR)/mlopl_io.o \ $(OBJDIR)/opl_mus_player.o \ $(OBJDIR)/altsound.o \ $(OBJDIR)/altsoundmixer.o \ $(OBJDIR)/fmodsound.o \ $(OBJDIR)/i_music.o \ $(OBJDIR)/i_sound.o \ $(OBJDIR)/music_cd.o \ $(OBJDIR)/music_flac.o \ $(OBJDIR)/music_midi_midiout.o \ $(OBJDIR)/music_midi_stream.o \ $(OBJDIR)/music_midi_timidity.o \ $(OBJDIR)/music_mod.o \ $(OBJDIR)/music_mus_midiout.o \ $(OBJDIR)/music_mus_opl.o \ $(OBJDIR)/music_spc.o \ $(OBJDIR)/music_stream.o \ $(OBJDIR)/sample_flac.o \ $(OBJDIR)/helperthread.o \ $(OBJDIR)/i_input.o \ $(OBJDIR)/i_net.o \ $(OBJDIR)/eaxedit.o \ $(OBJDIR)/i_cd.o \ $(OBJDIR)/i_main.o \ $(OBJDIR)/i_system.o \ $(OBJDIR)/hardware.o \ $(OBJDIR)/i_crash.o \ $(OBJDIR)/i_movie.o \ $(OBJDIR)/win32video.o \ $(OBJDIR)/zdoom.o ifndef NOASM OBJECTS += \ $(OBJDIR)/a.o \ $(OBJDIR)/blocks.o \ $(OBJDIR)/misc.o \ $(OBJDIR)/tmap.o \ $(OBJDIR)/tmap2.o \ $(OBJDIR)/tmap3.o CPPFLAGS := -DUSEASM=1 $(CPPFLAGS) else CPPFLAGS := -DNOASM $(CPPFLAGS) endif # This must be last OBJECTS += $(OBJDIR)/autozend.o VPATH = src src/g_doom src/g_heretic src/g_hexen src/g_raven src/g_strife src/g_shared src/oplsynth src/sound src/win32 .PHONY: clean all all: $(TARGET) $(OBJDIR)/%.o : %.cpp $(CCDV) $(CXX) $(CXXFLAGS) -o $@ -c $< $(OBJDIR)/%.o : %.nas $(CCDV) nasmw -o $@ -f win32 $< $(OBJDIR)/%.o : %.rc $(CCDV) windres --include-dir=src/win32 -o $@ -i $< $(TARGET): testobjdir $(OBJECTS) $(CCDV) $(CXX) -o $@ $(OBJECTS) $(LDFLAGS) clean: -del /q /f $(RELEASETARGET) 2>nul -del /q /f $(DEBUGTARGET) 2>nul -del /q /f $(DEBUGOBJDIR) 2>nul -del /q /f $(RELEASEOBJDIR) 2>nul testobjdir: -@if not exist $(OBJDIR) mkdir $(OBJDIR) ifneq ($(MAKECMDGOALS),clean) -include $(OBJECTS:%.o=%.d) endif