bsnes-plus/snesmusic/Makefile
2018-06-23 01:46:49 -04:00

102 lines
2.3 KiB
Makefile

common := ../common
nall := $(common)/nall
zlib := $(common)/zlib
include $(nall)/Makefile
c := $(compiler) -x c -std=gnu99
cpp := $(compiler) -std=gnu++0x
flags := -I. -I$(common)
link :=
ifeq ($(DEBUG), 1)
flags += -O0 -g
else
flags += -O3 -fomit-frame-pointer
endif
# silence warnings
flags += -Wno-switch -Wno-absolute-value -Wno-parentheses
ifeq ($(platform),x)
flags := -fPIC $(flags)
link += -s
else ifeq ($(platform),osx)
flags += -fPIC -march=native -mmacosx-version-min=10.10
link += -F/usr/local/lib -mmacosx-version-min=10.10
endif
objects := snesmusic
# bitmap_font
objects += bitmap_font
# zlib
objects += adler32 crc32 inffast inflate inftrees zutil
compile = \
$(strip \
$(if $(filter %.c,$<), \
$(c) $(flags) $1 -c $< -o $@, \
$(if $(filter %.cpp,$<), \
$(cpp) $(flags) $1 -c $< -o $@ \
) \
) \
)
%.o: $<; $(call compile)
all: build;
objects := $(patsubst %,obj/%.o,$(objects))
#################
### snesmusic ###
#################
obj/snesmusic.o: snesmusic.cpp *.cpp *.hpp
###################
### bitmap_font ###
###################
obj/bitmap_font.o: bitmap_font.cpp
############
### zlib ###
############
obj/adler32.o : $(zlib)/adler32.c $(zlib)/*
obj/crc32.o : $(zlib)/crc32.c $(zlib)/*
obj/inffast.o : $(zlib)/inffast.c $(zlib)/*
obj/inflate.o : $(zlib)/inflate.c $(zlib)/*
obj/inftrees.o: $(zlib)/inftrees.c $(zlib)/*
obj/zutil.o : $(zlib)/zutil.c $(zlib)/*
###############
### targets ###
###############
build: $(objects)
ifeq ($(platform),$(filter $(platform),win msys))
$(cpp) $(link) -o snesmusic.dll -shared -Wl,--out-implib,libsnesmusic.a $(objects) $(qtlib)
else ifeq ($(platform),osx)
ar rcs libsnesmusic.a $(objects)
$(cpp) $(link) -o libssnesmusic.dylib -shared -dynamiclib $(objects) $(qtlib)
else
ar rcs libsnesmusic.a $(objects)
$(cpp) $(link) -o libsnesmusic.so -shared -Wl,-soname,libsnesmusic.so.1 $(objects) $(qtlib)
endif
install:
ifeq ($(platform),x)
install -D -m 755 libsnesmusic.a $(DESTDIR)$(prefix)/lib
install -D -m 755 libsnesmusic.so $(DESTDIR)$(prefix)/lib
ldconfig -n $(DESTDIR)$(prefix)/lib
else
@echo Install not available for current platform
endif
clean:
-@$(call delete,obj/*.o)
-@$(call delete,libsnesmusic.a)
-@$(call delete,snesmusic.dll)
-@$(call delete,libsnesmusic.dylib)
-@$(call delete,libsnesmusic.so)