CPPFLAGS=-I./libs/angelscript -I./libs/angelscript/include -I./libs/angelscript_jit -I/usr/include/SDL2 -I/usr/include -std=c++11 -fpermissive -static -fno-strict-aliasing -fPIC
CXXFLAGS=-O2
LDFLAGS=-lSDL2 -lpthread

%.o: %.cpp
	g++ -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $^

1tracker: main.o
1tracker: playlayer/playlayer.o
1tracker: libs/gme/Ym2612_Emu.o
1tracker: libs/gme/Ym2413_Emu.o
1tracker: libs/gme/Vgm_Emu_Impl.o
1tracker: libs/gme/Vgm_Emu.o
1tracker: libs/gme/Spc_Emu.o
1tracker: libs/gme/Spc_Dsp.o
1tracker: libs/gme/Spc_Cpu.o
1tracker: libs/gme/Spc_Filter.o
1tracker: libs/gme/Snes_Spc.o
1tracker: libs/gme/Sms_Apu.o
1tracker: libs/gme/Sap_Emu.o
1tracker: libs/gme/Sap_Cpu.o
1tracker: libs/gme/Sap_Apu.o
1tracker: libs/gme/Nsf_Emu.o
1tracker: libs/gme/Nsfe_Emu.o
1tracker: libs/gme/Nes_Vrc6_Apu.o
1tracker: libs/gme/Nes_Oscs.o
1tracker: libs/gme/Nes_Namco_Apu.o
1tracker: libs/gme/Nes_Fme7_Apu.o
1tracker: libs/gme/Nes_Cpu.o
1tracker: libs/gme/Nes_Apu.o
1tracker: libs/gme/Music_Emu.o
1tracker: libs/gme/Multi_Buffer.o
1tracker: libs/gme/M3u_Playlist.o
1tracker: libs/gme/Kss_Scc_Apu.o
1tracker: libs/gme/Kss_Emu.o
1tracker: libs/gme/Kss_Cpu.o
1tracker: libs/gme/Hes_Emu.o
1tracker: libs/gme/Hes_Cpu.o
1tracker: libs/gme/Hes_Apu.o
1tracker: libs/gme/Gym_Emu.o
1tracker: libs/gme/Gme_File.o
1tracker: libs/gme/gme.o
1tracker: libs/gme/Gb_Oscs.o
1tracker: libs/gme/Gb_Cpu.o
1tracker: libs/gme/Gb_Apu.o
1tracker: libs/gme/Gbs_Emu.o
1tracker: libs/gme/Fir_Resampler.o
1tracker: libs/gme/Effects_Buffer.o
1tracker: libs/gme/Dual_Resampler.o
1tracker: libs/gme/Data_Reader.o
1tracker: libs/gme/Classic_Emu.o
1tracker: libs/gme/Blip_Buffer.o
1tracker: libs/gme/Ay_Emu.o
1tracker: libs/gme/Ay_Cpu.o
1tracker: libs/gme/Ay_Apu.o
1tracker: libs/angelscript/scriptstdstring/scriptstdstring_utils.o
1tracker: libs/angelscript/scriptstdstring/scriptstdstring.o
1tracker: libs/angelscript/scriptbuilder/scriptbuilder.o
1tracker: libs/angelscript/scriptarray/scriptarray.o
1tracker: libs/angelscript_jit/as_jit.o
1tracker: libs/angelscript_jit/virtual_asm_linux.o
1tracker: libs/angelscript_jit/virtual_asm_x64.o
1tracker: libs/angelscript/source/as_atomic.o
1tracker: libs/angelscript/source/as_builder.o
1tracker: libs/angelscript/source/as_bytecode.o
1tracker: libs/angelscript/source/as_callfunc.o
1tracker: libs/angelscript/source/as_callfunc_arm.o
1tracker: libs/angelscript/source/as_callfunc_mips.o
1tracker: libs/angelscript/source/as_callfunc_ppc.o
1tracker: libs/angelscript/source/as_callfunc_ppc_64.o
1tracker: libs/angelscript/source/as_callfunc_sh4.o
1tracker: libs/angelscript/source/as_callfunc_x86.o
1tracker: libs/angelscript/source/as_callfunc_x64_gcc.o
1tracker: libs/angelscript/source/as_callfunc_x64_mingw.o
1tracker: libs/angelscript/source/as_compiler.o
1tracker: libs/angelscript/source/as_context.o
1tracker: libs/angelscript/source/as_configgroup.o
1tracker: libs/angelscript/source/as_datatype.o
1tracker: libs/angelscript/source/as_generic.o
1tracker: libs/angelscript/source/as_gc.o
1tracker: libs/angelscript/source/as_globalproperty.o
1tracker: libs/angelscript/source/as_memory.o
1tracker: libs/angelscript/source/as_module.o
1tracker: libs/angelscript/source/as_objecttype.o
1tracker: libs/angelscript/source/as_outputbuffer.o
1tracker: libs/angelscript/source/as_parser.o
1tracker: libs/angelscript/source/as_restore.o
1tracker: libs/angelscript/source/as_scriptcode.o
1tracker: libs/angelscript/source/as_scriptengine.o
1tracker: libs/angelscript/source/as_scriptfunction.o
1tracker: libs/angelscript/source/as_scriptnode.o
1tracker: libs/angelscript/source/as_scriptobject.o
1tracker: libs/angelscript/source/as_string.o
1tracker: libs/angelscript/source/as_string_util.o
1tracker: libs/angelscript/source/as_thread.o
1tracker: libs/angelscript/source/as_tokenizer.o
1tracker: libs/angelscript/source/as_typeinfo.o
1tracker: libs/angelscript/source/as_variablescope.o

	g++ -o $@ $^ $(LDFLAGS)

main.o: main.cpp
main.o: playlayer/playlayer.cpp
libs/gme/Ym2612_Emu.o: libs/gme/Ym2612_Emu.cpp
libs/gme/Ym2413_Emu.o: libs/gme/Ym2413_Emu.cpp
libs/gme/Vgm_Emu_Impl.o: libs/gme/Vgm_Emu_Impl.cpp
libs/gme/Vgm_Emu.o: libs/gme/Vgm_Emu.cpp
libs/gme/Spc_Emu.o: libs/gme/Spc_Emu.cpp
libs/gme/Spc_Dsp.o: libs/gme/Spc_Dsp.cpp
libs/gme/Spc_Cpu.o: libs/gme/Spc_Cpu.cpp
libs/gme/Spc_Filter.o: libs/gme/Spc_Filter.cpp
libs/gme/Snes_Spc.o: libs/gme/Snes_Spc.cpp
libs/gme/Sms_Apu.o: libs/gme/Sms_Apu.cpp
libs/gme/Sap_Emu.o: libs/gme/Sap_Emu.cpp
libs/gme/Sap_Cpu.o: libs/gme/Sap_Cpu.cpp
libs/gme/Sap_Apu.o: libs/gme/Sap_Apu.cpp
libs/gme/Nsf_Emu.o: libs/gme/Nsf_Emu.cpp
libs/gme/Nsfe_Emu.o: libs/gme/Nsfe_Emu.cpp
libs/gme/Nes_Vrc6_Apu.o: libs/gme/Nes_Vrc6_Apu.cpp
libs/gme/Nes_Oscs.o: libs/gme/Nes_Oscs.cpp
libs/gme/Nes_Namco_Apu.o: libs/gme/Nes_Namco_Apu.cpp
libs/gme/Nes_Fme7_Apu.o: libs/gme/Nes_Fme7_Apu.cpp
libs/gme/Nes_Cpu.o: libs/gme/Nes_Cpu.cpp
libs/gme/Nes_Apu.o: libs/gme/Nes_Apu.cpp
libs/gme/Music_Emu.o: libs/gme/Music_Emu.cpp
libs/gme/Multi_Buffer.o: libs/gme/Multi_Buffer.cpp
libs/gme/M3u_Playlist.o: libs/gme/M3u_Playlist.cpp
libs/gme/Kss_Scc_Apu.o: libs/gme/Kss_Scc_Apu.cpp
libs/gme/Kss_Emu.o: libs/gme/Kss_Emu.cpp
libs/gme/Kss_Cpu.o: libs/gme/Kss_Cpu.cpp
libs/gme/Hes_Emu.o: libs/gme/Hes_Emu.cpp
libs/gme/Hes_Cpu.o: libs/gme/Hes_Cpu.cpp
libs/gme/Hes_Apu.o: libs/gme/Hes_Apu.cpp
libs/gme/Gym_Emu.o: libs/gme/Gym_Emu.cpp
libs/gme/Gme_File.o: libs/gme/Gme_File.cpp
libs/gme/gme.o: libs/gme/gme.cpp
libs/gme/Gb_Oscs.o: libs/gme/Gb_Oscs.cpp
libs/gme/Gb_Cpu.o: libs/gme/Gb_Cpu.cpp
libs/gme/Gb_Apu.o: libs/gme/Gb_Apu.cpp
libs/gme/Gbs_Emu.o: libs/gme/Gbs_Emu.cpp
libs/gme/Fir_Resampler.o: libs/gme/Fir_Resampler.cpp
libs/gme/Effects_Buffer.o: libs/gme/Effects_Buffer.cpp
libs/gme/Dual_Resampler.o: libs/gme/Dual_Resampler.cpp
libs/gme/Data_Reader.o: libs/gme/Data_Reader.cpp
libs/gme/Classic_Emu.o: libs/gme/Classic_Emu.cpp
libs/gme/Blip_Buffer.o: libs/gme/Blip_Buffer.cpp
libs/gme/Ay_Emu.o: libs/gme/Ay_Emu.cpp
libs/gme/Ay_Cpu.o: libs/gme/Ay_Cpu.cpp
libs/gme/Ay_Apu.o: libs/gme/Ay_Apu.cpp
libs/angelscript/source/as_atomic.o: libs/angelscript/source/as_atomic.cpp
libs/angelscript/source/as_builder.o: libs/angelscript/source/as_builder.cpp
libs/angelscript/source/as_bytecode.o: libs/angelscript/source/as_bytecode.cpp
libs/angelscript/source/as_callfunc.o: libs/angelscript/source/as_callfunc.cpp
libs/angelscript/source/as_callfunc_arm.o: libs/angelscript/source/as_callfunc_arm.cpp
libs/angelscript/source/as_callfunc_mips.o: libs/angelscript/source/as_callfunc_mips.cpp
libs/angelscript/source/as_callfunc_ppc.o: libs/angelscript/source/as_callfunc_ppc.cpp
libs/angelscript/source/as_callfunc_ppc_64.o: libs/angelscript/source/as_callfunc_ppc_64.cpp
libs/angelscript/source/as_callfunc_sh4.o: libs/angelscript/source/as_callfunc_sh4.cpp
libs/angelscript/source/as_callfunc_x86.o: libs/angelscript/source/as_callfunc_x86.cpp
libs/angelscript/source/as_callfunc_x64_gcc.o: libs/angelscript/source/as_callfunc_x64_gcc.cpp
libs/angelscript/source/as_callfunc_x64_mingw.o: libs/angelscript/source/as_callfunc_x64_mingw.cpp
libs/angelscript/source/as_compiler.o: libs/angelscript/source/as_compiler.cpp
libs/angelscript/source/as_context.o: libs/angelscript/source/as_context.cpp
libs/angelscript/source/as_configgroup.o: libs/angelscript/source/as_configgroup.cpp
libs/angelscript/source/as_datatype.o: libs/angelscript/source/as_datatype.cpp
libs/angelscript/source/as_generic.o: libs/angelscript/source/as_generic.cpp
libs/angelscript/source/as_gc.o: libs/angelscript/source/as_gc.cpp
libs/angelscript/source/as_globalproperty.o: libs/angelscript/source/as_globalproperty.cpp
libs/angelscript/source/as_memory.o: libs/angelscript/source/as_memory.cpp
libs/angelscript/source/as_module.o: libs/angelscript/source/as_module.cpp
libs/angelscript/source/as_objecttype.o: libs/angelscript/source/as_objecttype.cpp
libs/angelscript/source/as_outputbuffer.o: libs/angelscript/source/as_outputbuffer.cpp
libs/angelscript/source/as_parser.o: libs/angelscript/source/as_parser.cpp
libs/angelscript/source/as_restore.o: libs/angelscript/source/as_restore.cpp
libs/angelscript/source/as_scriptcode.o: libs/angelscript/source/as_scriptcode.cpp
libs/angelscript/source/as_scriptengine.o: libs/angelscript/source/as_scriptengine.cpp
libs/angelscript/source/as_scriptfunction.o: libs/angelscript/source/as_scriptfunction.cpp
libs/angelscript/source/as_scriptnode.o: libs/angelscript/source/as_scriptnode.cpp
libs/angelscript/source/as_scriptobject.o: libs/angelscript/source/as_scriptobject.cpp
libs/angelscript/source/as_string.o: libs/angelscript/source/as_string.cpp
libs/angelscript/source/as_string_util.o: libs/angelscript/source/as_string_util.cpp
libs/angelscript/source/as_thread.o: libs/angelscript/source/as_thread.cpp
libs/angelscript/source/as_tokenizer.o: libs/angelscript/source/as_tokenizer.cpp
libs/angelscript/source/as_typeinfo.o: libs/angelscript/source/as_typeinfo.cpp
libs/angelscript/source/as_variablescope.o: libs/angelscript/source/as_variablescope.cpp
libs/angelscript/scriptstdstring/scriptstdstring_utils.o: libs/angelscript/scriptstdstring/scriptstdstring_utils.cpp
libs/angelscript/scriptstdstring/scriptstdstring.o: libs/angelscript/scriptstdstring/scriptstdstring.cpp
libs/angelscript/scriptbuilder/scriptbuilder.o: libs/angelscript/scriptbuilder/scriptbuilder.cpp
libs/angelscript/scriptarray/scriptarray.o: libs/angelscript/scriptarray/scriptarray.cpp
as_jit.o: libs/angelscript_jit/as_jit.cpp
virtual_asm_linux.o: libs/angelscript_jit/virtual_asm_linux.cpp
virtual_asm_x64.o: libs/angelscript_jit/virtual_asm_x64.cpp

.PHONY: clean

clean:
	rm *.o libs/gme/*.o libs/angelscript_jit/*.o libs/angelscript/scriptarray/*.o libs/angelscript/scriptbuilder/*.o \
	libs/angelscript/scriptstdstring/*.o libs/angelscript/source/*.o
