diff --git a/.gitignore b/.gitignore index 46fdfc4..ff0c2a6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,12 @@ *.a +*.d *.o *.exe *.dll *.dylib *.so +*.zip .kdev_include_paths .kdev4/ diff --git a/Makefile.mk b/Makefile.mk index 68f7743..adfe30c 100644 --- a/Makefile.mk +++ b/Makefile.mk @@ -4,6 +4,7 @@ # Created by falkTX # +AR ?= ar CC ?= gcc CXX ?= g++ @@ -19,38 +20,41 @@ endif endif # -------------------------------------------------------------- -# Common build and link flags +# Set build and link flags -BASE_FLAGS = -Wall -Wextra -pipe -BASE_OPTS = -O2 -ffast-math -fdata-sections -ffunction-sections -ifneq ($(NOOPT),true) -BASE_OPTS += -mtune=generic -msse -msse2 -mfpmath=sse +BASE_FLAGS = -Wall -Wextra -pipe -MD -MP +BASE_OPTS = -O2 -ffast-math -mtune=generic -msse -msse2 -fdata-sections -ffunction-sections + +ifneq ($(MACOS),true) +# MacOS doesn't support this +BASE_OPTS += -mfpmath=sse endif -LINK_OPTS = -fdata-sections -ffunction-sections -Wl,-O1 -Wl,--as-needed -Wl,--gc-sections -Wl,--strip-all ifeq ($(MACOS),true) # MacOS linker flags LINK_OPTS = -fdata-sections -ffunction-sections -Wl,-dead_strip -Wl,-dead_strip_dylibs +else +# Common linker flags +LINK_OPTS = -fdata-sections -ffunction-sections -Wl,--gc-sections -Wl,-O1 -Wl,--as-needed -Wl,--strip-all endif ifeq ($(RASPPI),true) -# Raspberry-Pi flags -BASE_OPTS = -O2 -ffast-math -ifneq ($(NOOPT),true) -BASE_OPTS += -march=armv6 -mfpu=vfp -mfloat-abi=hard -endif +# Raspberry-Pi optimization flags +BASE_OPTS = -O2 -ffast-math -march=armv6 -mfpu=vfp -mfloat-abi=hard LINK_OPTS = -Wl,-O1 -Wl,--as-needed -Wl,--strip-all endif ifeq ($(PANDORA),true) -# OpenPandora flags -BASE_OPTS = -O2 -ffast-math -ifneq ($(NOOPT),true) -BASE_OPTS += -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -endif +# OpenPandora optimization flags +BASE_OPTS = -O2 -ffast-math -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp LINK_OPTS = -Wl,-O1 -Wl,--as-needed -Wl,--strip-all endif +ifneq ($(NOOPT),true) +# No optimization flags +BASE_OPTS = -O2 -ffast-math -fdata-sections -ffunction-sections +endif + ifneq ($(WIN32),true) # not needed for Windows BASE_FLAGS += -fPIC -DPIC @@ -112,16 +116,23 @@ endif endif # HAVE_DGL # -------------------------------------------------------------- -# Set extension +# Set app extension + +ifeq ($(WIN32),true) +APP_EXT = .exe +endif + +# -------------------------------------------------------------- +# Set shared lib extension -EXT = so +LIB_EXT = .so ifeq ($(MACOS),true) -EXT = dylib +LIB_EXT = .dylib endif ifeq ($(WIN32),true) -EXT = dll +LIB_EXT = .dll endif # -------------------------------------------------------------- diff --git a/dpf b/dpf index efbd38a..2352a4e 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit efbd38a12119073f4b3fecea883cc2f11c298529 +Subproject commit 2352a4e2304cb4e1b6e1e5bd3725e5d6821d1e95 diff --git a/plugins/Makefile.mk b/plugins/Makefile.mk index fac68eb..f2be7e6 100644 --- a/plugins/Makefile.mk +++ b/plugins/Makefile.mk @@ -31,14 +31,14 @@ endif # -------------------------------------------------------------- # Set plugin binary file targets -jack = $(TARGET_DIR)/$(NAME) -ladspa_dsp = $(TARGET_DIR)/$(NAME)-ladspa.$(EXT) -dssi_dsp = $(TARGET_DIR)/$(NAME)-dssi.$(EXT) -dssi_ui = $(TARGET_DIR)/$(NAME)-dssi/$(NAME)_ui -lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME).$(EXT) -lv2_dsp = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_dsp.$(EXT) -lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui.$(EXT) -vst = $(TARGET_DIR)/$(NAME)-vst.$(EXT) +jack = $(TARGET_DIR)/$(NAME)$(APP_EXT) +ladspa_dsp = $(TARGET_DIR)/$(NAME)-ladspa$(LIB_EXT) +dssi_dsp = $(TARGET_DIR)/$(NAME)-dssi$(LIB_EXT) +dssi_ui = $(TARGET_DIR)/$(NAME)-dssi/$(NAME)_ui$(APP_EXT) +lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME)$(LIB_EXT) +lv2_dsp = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_dsp$(LIB_EXT) +lv2_ui = $(TARGET_DIR)/$(NAME).lv2/$(NAME)_ui$(LIB_EXT) +vst = $(TARGET_DIR)/$(NAME)-vst$(LIB_EXT) # -------------------------------------------------------------- # Set distrho code files @@ -47,14 +47,12 @@ DISTRHO_PLUGIN_FILES = ../../dpf/distrho/DistrhoPluginMain.cpp ifeq ($(HAVE_DGL),true) DISTRHO_UI_FILES = ../../dpf/distrho/DistrhoUIMain.cpp ../../dpf/libdgl.a -else -TARGET_NOUI = true endif # -------------------------------------------------------------- # Handle plugins without UI -ifeq ($(TARGET_NOUI),true) +ifneq ($(HAVE_DGL),true) dssi_ui = lv2_ui = DISTRHO_UI_FILES = @@ -142,3 +140,10 @@ $(vst): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES) $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_VST -o $@ # -------------------------------------------------------------- + +-include $(OBJS_DSP:%.o=%.d) +ifeq ($(HAVE_DGL),true) +-include $(OBJS_UI:%.o=%.d) +endif + +# --------------------------------------------------------------