67 lines
1.3 KiB
Makefile
67 lines
1.3 KiB
Makefile
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 = -Wall -Iinclude -Isrc -O3 -std=c++11 -fno-exceptions -flto
|
|
TARGET = libgambatte.dll
|
|
LDFLAGS_32 = -static -static-libgcc -static-libstdc++
|
|
LDFLAGS_64 =
|
|
LDFLAGS = -shared $(LDFLAGS_$(ARCH)) $(CXXFLAGS)
|
|
|
|
DEST_32 = ../output/dll
|
|
DEST_64 = ../output/dll
|
|
|
|
SRCS = \
|
|
src/cinterface.cpp \
|
|
src/cpu.cpp \
|
|
src/gambatte.cpp \
|
|
src/initstate.cpp \
|
|
src/interrupter.cpp \
|
|
src/interruptrequester.cpp \
|
|
src/memory.cpp \
|
|
src/mem/cartridge.cpp \
|
|
src/mem/memptrs.cpp \
|
|
src/mem/rtc.cpp \
|
|
src/newstate.cpp \
|
|
src/sound.cpp \
|
|
src/sound/channel1.cpp \
|
|
src/sound/channel2.cpp \
|
|
src/sound/channel3.cpp \
|
|
src/sound/channel4.cpp \
|
|
src/sound/duty_unit.cpp \
|
|
src/sound/envelope_unit.cpp \
|
|
src/sound/length_counter.cpp \
|
|
src/tima.cpp \
|
|
src/video.cpp \
|
|
src/video/lyc_irq.cpp \
|
|
src/video/ly_counter.cpp \
|
|
src/video/next_m0_time.cpp \
|
|
src/video/ppu.cpp \
|
|
src/video/sprite_mapper.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))
|