CXX = g++ RM = rm CP = cp MACHINE = $(shell $(CXX) -dumpmachine) ifneq (,$(findstring i686,$(MACHINE))) $(error 32 bit build no longer supported) else ifneq (,$(findstring x86_64,$(MACHINE))) ARCH = 64 else $(error Unknown arch) endif CXXFLAGS_32 = -march=pentium4 -mtune=core2 CXXFLAGS_64 = CXXFLAGS = -Wall -DDISABLE_AUTO_FILE -D__LIBRETRO__ -DNDEBUG -I.. -O3 -Wno-multichar -fno-exceptions -fomit-frame-pointer -flto $(CXXFLAGS_$(ARCH)) # TODO: include these as options in the Makefile # -fprofile-generate # -fprofile-use TARGET = libquicknes.dll LDFLAGS_32 = -static -static-libgcc -static-libstdc++ LDFLAGS_64 = LDFLAGS = -shared $(LDFLAGS_$(ARCH)) $(CXXFLAGS) DEST_32 = ../../output/dll DEST_64 = ../../output/dll SRCS = \ ../nes_emu/abstract_file.cpp \ ../nes_emu/apu_state.cpp \ ../nes_emu/Blip_Buffer.cpp \ ../nes_emu/Effects_Buffer.cpp \ ../nes_emu/Mapper_Fme7.cpp \ ../nes_emu/Mapper_Mmc5.cpp \ ../nes_emu/Mapper_Namco106.cpp \ ../nes_emu/Mapper_Vrc6.cpp \ ../nes_emu/misc_mappers.cpp \ ../nes_emu/Multi_Buffer.cpp \ ../nes_emu/Nes_Apu.cpp \ ../nes_emu/Nes_Buffer.cpp \ ../nes_emu/Nes_Cart.cpp \ ../nes_emu/Nes_Core.cpp \ ../nes_emu/Nes_Cpu.cpp \ ../nes_emu/nes_data.cpp \ ../nes_emu/Nes_Effects_Buffer.cpp \ ../nes_emu/Nes_Emu.cpp \ ../nes_emu/Nes_File.cpp \ ../nes_emu/Nes_Fme7_Apu.cpp \ ../nes_emu/Nes_Mapper.cpp \ ../nes_emu/nes_mappers.cpp \ ../nes_emu/Nes_Mmc1.cpp \ ../nes_emu/Nes_Mmc3.cpp \ ../nes_emu/Nes_Namco_Apu.cpp \ ../nes_emu/Nes_Oscs.cpp \ ../nes_emu/Nes_Ppu.cpp \ ../nes_emu/Nes_Ppu_Impl.cpp \ ../nes_emu/Nes_Ppu_Rendering.cpp \ ../nes_emu/Nes_State.cpp \ ../nes_emu/nes_util.cpp \ ../nes_emu/Nes_Vrc6_Apu.cpp \ ../nes_emu/Mmc24.cpp \ ../bizinterface.cpp \ ../fex/Data_Reader.cpp \ ../fex/blargg_errors.cpp \ ../fex/blargg_common.cpp OBJS = $(SRCS:.cpp=.o) all: $(TARGET) %.o: %.cpp $(CXX) -c -o $@ $< $(CXXFLAGS) $(TARGET) : $(OBJS) $(CXX) -o $@ $(LDFLAGS) $(OBJS) clean: $(RM) $(OBJS) $(RM) $(TARGET) install: $(CP) $(TARGET) $(DEST_$(ARCH))