qzdoom-gpl/Makefile.mingw
Randy Heit 6cd1e2ce6a - Fixed: CopyPlayer() in p_saveg.cpp should use normal assignment, not
memcpy to copy the player structures.
- Fixed compilation with MinGW again and removed most of the new warnings.

And following is the log that I forgot to paste in for the previous commit:

- Changed the memory management for FString. Instead of using a garbage
  collected heap, it now uses normal heap calls and reference counting to
  implement lazy copying. You may now use bitwise operators to move
  (but not copy!) FStrings around in memory. This means that the
  CopyForTArray template function is gone, since TArrays can now freely
  move their contents around without bothering with their specifics.
  
  There is one important caveat, however. It is not acceptable to blindly 0
  an FString's contents. This necessitated the creation of a proper
  constructor for player_s so that it can be reset without using memset. I
  did a quick scan of all memsets in the source and didn't see anything else
  with a similar problem, but it's possible I missed something.
- Fixed: Build tiles were never deallocated.
- Fixed: Using Build's palette.dat only got half the palette right.


SVN r117 (trunk)
2006-05-16 04:19:20 +00:00

413 lines
10 KiB
Text

# 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