diff --git a/common.mk b/common.mk index a8b9bfa4..abe2b26c 100644 --- a/common.mk +++ b/common.mk @@ -161,10 +161,12 @@ endif SFIZZ_C_FLAGS += \ -I$(SFIZZ_DIR)/external/st_audiofile/src \ - -I$(SFIZZ_DIR)/external/st_audiofile/thirdparty/dr_libs + -I$(SFIZZ_DIR)/external/st_audiofile/thirdparty/dr_libs \ + -I$(SFIZZ_DIR)/external/st_audiofile/thirdparty/stb_vorbis SFIZZ_CXX_FLAGS += \ -I$(SFIZZ_DIR)/external/st_audiofile/src \ - -I$(SFIZZ_DIR)/external/st_audiofile/thirdparty/dr_libs + -I$(SFIZZ_DIR)/external/st_audiofile/thirdparty/dr_libs \ + -I$(SFIZZ_DIR)/external/st_audiofile/thirdparty/stb_vorbis ifeq ($(SFIZZ_USE_SNDFILE),1) SFIZZ_C_FLAGS += $(SFIZZ_SNDFILE_C_FLAGS) -DST_AUDIO_FILE_USE_SNDFILE=1 @@ -176,7 +178,7 @@ endif ifneq ($(SFIZZ_USE_SNDFILE),1) SFIZZ_SOURCES += \ - $(SFIZZ_DIR)/external/st_audiofile/thirdparty/libaiff/libaiff.all.c + external/st_audiofile/thirdparty/libaiff/libaiff.all.c SFIZZ_C_FLAGS += \ -I$(SFIZZ_DIR)/external/st_audiofile/thirdparty/libaiff SFIZZ_CXX_FLAGS += \ diff --git a/generic.mk b/generic.mk new file mode 100644 index 00000000..00953288 --- /dev/null +++ b/generic.mk @@ -0,0 +1,71 @@ +# +# A build file to help using sfizz as a static library +# ---------------------------------------------------- + +SFIZZ_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) +SFIZZ_BUILD_DIR := $(SFIZZ_DIR)/generic-build +SFIZZ_PKG_CONFIG ?= $(PKG_CONFIG) +include common.mk + +### + +SFIZZ_TARGET_MACHINE := $(shell $(CC) -dumpmachine) +SFIZZ_TARGET_PROCESSOR := $(firstword $(subst -, ,$(SFIZZ_TARGET_MACHINE))) + +ifneq (,$(filter i%86,$(SFIZZ_TARGET_PROCESSOR))) +SFIZZ_CPU_I386=1 +SFIZZ_CPU_I386_OR_X86_64=1 +endif +ifneq (,$(filter x86_64,$(SFIZZ_TARGET_PROCESSOR))) +SFIZZ_CPU_X86_64=1 +SFIZZ_CPU_I386_OR_X86_64=1 +endif + +### + +all: lib + +lib: $(SFIZZ_BUILD_DIR)/libsfizz.a + +clean: + rm -rf $(SFIZZ_BUILD_DIR) + +.PHONY: all lib clean + +### + +SFIZZ_OBJECTS = $(SFIZZ_SOURCES:%=$(SFIZZ_BUILD_DIR)/%.o) + +$(SFIZZ_BUILD_DIR)/libsfizz.a: $(SFIZZ_OBJECTS) + -@mkdir -p $(dir $@) + $(AR) crs $@ $^ + +### + +ifeq ($(SFIZZ_CPU_I386_OR_X86_64),1) + +$(SFIZZ_BUILD_DIR)/%SSE.cpp.o: $(SFIZZ_DIR)/%SSE.cpp + -@mkdir -p $(dir $@) + $(CXX) $(BUILD_CXX_FLAGS) $(SFIZZ_CXX_FLAGS) -msse -c -o $@ $< + +$(SFIZZ_BUILD_DIR)/%AVX.cpp.o: $(SFIZZ_DIR)/%AVX.cpp + -@mkdir -p $(dir $@) + $(CXX) $(BUILD_CXX_FLAGS) $(SFIZZ_CXX_FLAGS) -mavx -c -o $@ $< + +endif + +### + +$(SFIZZ_BUILD_DIR)/%.cpp.o: $(SFIZZ_DIR)/%.cpp + -@mkdir -p $(dir $@) + $(CXX) $(BUILD_CXX_FLAGS) $(SFIZZ_CXX_FLAGS) -c -o $@ $< + +$(SFIZZ_BUILD_DIR)/%.cc.o: $(SFIZZ_DIR)/%.cc + -@mkdir -p $(dir $@) + $(CXX) $(BUILD_CXX_FLAGS) $(SFIZZ_CXX_FLAGS) -c -o $@ $< + +$(SFIZZ_BUILD_DIR)/%.c.o: $(SFIZZ_DIR)/%.c + -@mkdir -p $(dir $@) + $(CC) $(BUILD_C_FLAGS) $(SFIZZ_C_FLAGS) -c -o $@ $< + +-include $(SFIZZ_OBJECTS:%.o=%.d)