mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-29 07:12:36 +00:00
6cd1e2ce6a
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)
413 lines
10 KiB
Text
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
|