mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-02-23 06:32:32 +01:00
byuu says: Changelog: - all of fc/ ported to "auto function() -> return;" syntax - (includes all of cartridge/board and cartridge/chip as well; even though they're all deprecated) - sfc balanced profile ported to "auto function() -> return;" syntax - sfc balanced and performance profiles compile again - Linux always gets -ldl - removed arch=x86 logic from nall/GNUmakefile, as TDM/GCC64 can't produce bug-free 32-bit binaries anyway The only code that continues to use the old function syntax is the SFC performance core, obscure parts of nall that higan doesn't use, and the pieces of code that weren't written by me (blargg's SFC-DSP, Ryphecha's sinc resampler, and OV2's xaudio2 header file.) I was too burned out to finish it tonight. The above was about four hours straight of non-stop typing. Really can't wait to be done with this once and for all.
106 lines
2.1 KiB
Makefile
106 lines
2.1 KiB
Makefile
include nall/GNUmakefile
|
|
|
|
fc := fc
|
|
sfc := sfc
|
|
gb := gb
|
|
gba := gba
|
|
|
|
profile := accuracy
|
|
target := tomoko
|
|
# console := true
|
|
|
|
# compiler
|
|
flags += -I. -O3
|
|
objects := libco
|
|
|
|
# profile-guided optimization mode
|
|
# pgo := instrument
|
|
# pgo := optimize
|
|
|
|
ifeq ($(pgo),instrument)
|
|
flags += -fprofile-generate
|
|
link += -lgcov
|
|
else ifeq ($(pgo),optimize)
|
|
flags += -fprofile-use
|
|
endif
|
|
|
|
# platform
|
|
ifeq ($(platform),windows)
|
|
ifeq ($(console),true)
|
|
link += -mconsole
|
|
else
|
|
link += -mwindows
|
|
endif
|
|
link += -mthreads -luuid -lkernel32 -luser32 -lgdi32 -lcomctl32 -lcomdlg32 -lshell32
|
|
link += -Wl,-enable-auto-import
|
|
link += -Wl,-enable-runtime-pseudo-reloc
|
|
else ifeq ($(platform),macosx)
|
|
flags += -march=native
|
|
else ifeq ($(platform),linux)
|
|
flags += -march=native -fopenmp
|
|
link += -fopenmp
|
|
link += -Wl,-export-dynamic
|
|
link += -lX11 -lXext
|
|
else ifeq ($(platform),bsd)
|
|
flags += -march=native -fopenmp
|
|
link += -fopenmp
|
|
link += -Wl,-export-dynamic
|
|
link += -lX11 -lXext
|
|
else
|
|
$(error unsupported platform.)
|
|
endif
|
|
|
|
ui := target-$(target)
|
|
|
|
# implicit rules
|
|
compile = \
|
|
$(strip \
|
|
$(if $(filter %.c,$<), \
|
|
$(compiler) $(cflags) $(flags) $1 -c $< -o $@, \
|
|
$(if $(filter %.cpp,$<), \
|
|
$(compiler) $(cppflags) $(flags) $1 -c $< -o $@ \
|
|
) \
|
|
) \
|
|
)
|
|
|
|
%.o: $<; $(call compile)
|
|
|
|
all: build;
|
|
|
|
obj/libco.o: libco/libco.c libco/*
|
|
|
|
include $(ui)/GNUmakefile
|
|
flags := $(flags) $(foreach o,$(call strupper,$(options)),-D$o)
|
|
|
|
# targets
|
|
clean:
|
|
-@$(call delete,out/*)
|
|
-@$(call delete,obj/*.o)
|
|
-@$(call delete,obj/*.a)
|
|
-@$(call delete,obj/*.so)
|
|
-@$(call delete,obj/*.dylib)
|
|
-@$(call delete,obj/*.dll)
|
|
|
|
archive:
|
|
if [ -f higan.tar.xz ]; then rm higan.tar.xz; fi
|
|
tar -cJf higan.tar.xz `ls`
|
|
|
|
sync:
|
|
ifeq ($(shell id -un),byuu)
|
|
if [ -d ./libco ]; then rm -r ./libco; fi
|
|
if [ -d ./nall ]; then rm -r ./nall; fi
|
|
if [ -d ./ruby ]; then rm -r ./ruby; fi
|
|
if [ -d ./hiro ]; then rm -r ./hiro; fi
|
|
cp -r ../libco ./libco
|
|
cp -r ../nall ./nall
|
|
cp -r ../ruby ./ruby
|
|
cp -r ../hiro ./hiro
|
|
rm -r libco/doc
|
|
rm -r libco/-test
|
|
rm -r nall/-test
|
|
rm -r ruby/-test
|
|
rm -r hiro/-test
|
|
endif
|
|
|
|
help:;
|