BizHawk/waterbox/libsnes/Makefile

101 lines
3.2 KiB
Makefile

CC = x86_64-nt64-midipix-g++
# -Werror=pointer-to-int-cast -Werror=int-to-pointer-cast
#-std=c99 -fomit-frame-pointer -fvisibility=hidden
#-DPROFILE_PERFORMANCE
#-fno-exceptions -fno-rtti
CCFLAGS:= -DHOOKS -DBIZHAWK -DPROFILE_COMPATIBILITY -DGAMEBOY \
-D_GNU_SOURCE \
-Werror=pointer-to-int-cast -Werror=int-to-pointer-cast \
-I../emulibc -I../libco -I./bsnes \
-Wall -Werror=implicit-function-declaration \
-Wno-parentheses -Wno-sign-compare \
-Wno-unused-variable -Wno-unused-function \
-fvisibility=hidden \
-fno-threadsafe-statics \
-std=c++0x \
-O3 -flto
TARGET = libsnes.wbx
LDFLAGS = -Wl,--dynamicbase,--export-all-symbols
ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
SRCS_PERF:= \
$(ROOT_DIR)/bsnes/snes/alt/cpu/cpu.cpp \
$(ROOT_DIR)/bsnes/snes/alt/ppu-performance/ppu.cpp \
$(ROOT_DIR)/bsnes/snes/alt/smp/smp.cpp
SRCS_COMPAT:= \
$(ROOT_DIR)/bsnes/snes/alt/ppu-compatibility/ppu.cpp \
$(ROOT_DIR)/bsnes/snes/cpu/cpu.cpp \
$(ROOT_DIR)/bsnes/snes/smp/smp.cpp
SRCS_ALL:= \
$(ROOT_DIR)/bsnes/base/base.cpp \
$(ROOT_DIR)/bsnes/gameboy/apu/apu.cpp \
$(ROOT_DIR)/bsnes/gameboy/cartridge/cartridge.cpp \
$(ROOT_DIR)/bsnes/gameboy/cpu/cpu.cpp \
$(ROOT_DIR)/bsnes/snes/alt/dsp/dsp.cpp \
$(ROOT_DIR)/bsnes/gameboy/interface/interface.cpp \
$(ROOT_DIR)/bsnes/gameboy/lcd/lcd.cpp \
$(ROOT_DIR)/bsnes/gameboy/memory/memory.cpp \
$(ROOT_DIR)/bsnes/gameboy/scheduler/scheduler.cpp \
$(ROOT_DIR)/bsnes/gameboy/system/system.cpp \
$(ROOT_DIR)/bsnes/gameboy/video/video.cpp \
$(ROOT_DIR)/bsnes/snes/cartridge/cartridge.cpp \
$(ROOT_DIR)/bsnes/snes/chip/armdsp/armdsp.cpp \
$(ROOT_DIR)/bsnes/snes/chip/bsx/bsx.cpp \
$(ROOT_DIR)/bsnes/snes/chip/hitachidsp/hitachidsp.cpp \
$(ROOT_DIR)/bsnes/snes/chip/icd2/icd2.cpp \
$(ROOT_DIR)/bsnes/snes/chip/link/link.cpp \
$(ROOT_DIR)/bsnes/snes/chip/msu1/msu1.cpp \
$(ROOT_DIR)/bsnes/snes/chip/necdsp/necdsp.cpp \
$(ROOT_DIR)/bsnes/snes/chip/nss/nss.cpp \
$(ROOT_DIR)/bsnes/snes/chip/obc1/obc1.cpp \
$(ROOT_DIR)/bsnes/snes/chip/sa1/sa1.cpp \
$(ROOT_DIR)/bsnes/snes/chip/sdd1/sdd1.cpp \
$(ROOT_DIR)/bsnes/snes/chip/spc7110/spc7110.cpp \
$(ROOT_DIR)/bsnes/snes/chip/srtc/srtc.cpp \
$(ROOT_DIR)/bsnes/snes/chip/sufamiturbo/sufamiturbo.cpp \
$(ROOT_DIR)/bsnes/snes/chip/superfx/superfx.cpp \
$(ROOT_DIR)/bsnes/snes/config/config.cpp \
$(ROOT_DIR)/bsnes/snes/controller/controller.cpp \
$(ROOT_DIR)/bsnes/snes/cpu/core/core.cpp \
$(ROOT_DIR)/bsnes/snes/interface/interface.cpp \
$(ROOT_DIR)/bsnes/snes/memory/memory.cpp \
$(ROOT_DIR)/bsnes/snes/smp/core/core.cpp \
$(ROOT_DIR)/bsnes/snes/system/system.cpp \
$(ROOT_DIR)/bsnes/target-libsnes/libsnes.cpp \
$(ROOT_DIR)/bsnes/target-libsnes/libsnes_pwrap.cpp
SRCS:=$(SRCS_ALL) $(SRCS_COMPAT)
OBJ_DIR:=$(ROOT_DIR)/obj
_OBJS:=$(SRCS:.cpp=.o)
OBJS:=$(patsubst $(ROOT_DIR)%,$(OBJ_DIR)%,$(_OBJS))
$(OBJ_DIR)/%.o: $(ROOT_DIR)/%.cpp
@mkdir -p $(@D)
@$(CC) -c -o $@ $< $(CCFLAGS)
all: $(TARGET)
.PHONY: clean all
$(TARGET).in: $(OBJS)
@$(CC) -o $@ $(LDFLAGS) $(CCFLAGS) $(OBJS) ../emulibc/libemuhost.so ../libco/libco.so
$(TARGET): $(TARGET).in
strip $< -o $@ -R /4 -R /14 -R /29 -R /41 -R /55 -R /67 -R /78 -R /89 -R /104
# cp $< $@
clean:
rm -rf $(OBJ_DIR)
rm -f $(TARGET).in
rm -f $(TARGET)
print-%:
@echo $* = $($*)
#install:
# $(CP) $(TARGET) $(DEST_$(ARCH))