Simplify makefiles
This commit is contained in:
parent
e922bc4b63
commit
80cf7c92fe
|
@ -11,6 +11,5 @@
|
|||
.kdev_include_paths
|
||||
.kdev4/
|
||||
|
||||
bin/*-dssi/
|
||||
bin/*.lv2/
|
||||
bin/Nekobi
|
||||
bin/
|
||||
build/
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
[submodule "dpf"]
|
||||
path = dpf
|
||||
url = git://github.com/DISTRHO/DPF
|
||||
url = https://github.com/DISTRHO/DPF
|
||||
|
|
19
Makefile
19
Makefile
|
@ -4,24 +4,21 @@
|
|||
# Created by falkTX
|
||||
#
|
||||
|
||||
include Makefile.mk
|
||||
include dpf/Makefile.base.mk
|
||||
|
||||
all: libs plugins modguis gen
|
||||
all: dgl plugins gen
|
||||
|
||||
# --------------------------------------------------------------
|
||||
|
||||
libs:
|
||||
dgl:
|
||||
ifeq ($(HAVE_DGL),true)
|
||||
$(MAKE) -C dpf/dgl
|
||||
endif
|
||||
|
||||
plugins: libs
|
||||
plugins: dgl
|
||||
$(MAKE) all -C plugins/Nekobi
|
||||
|
||||
modguis: plugins
|
||||
cp -r modguis/Nekobi.modgui/modgui bin/Nekobi.lv2/
|
||||
cp modguis/Nekobi.modgui/manifest.ttl bin/Nekobi.lv2/modgui.ttl
|
||||
|
||||
ifneq ($(CROSS_COMPILING),true)
|
||||
gen: plugins dpf/utils/lv2_ttl_generator
|
||||
@$(CURDIR)/dpf/utils/generate-ttl.sh
|
||||
ifeq ($(MACOS),true)
|
||||
|
@ -30,15 +27,17 @@ endif
|
|||
|
||||
dpf/utils/lv2_ttl_generator:
|
||||
$(MAKE) -C dpf/utils/lv2-ttl-generator
|
||||
else
|
||||
gen:
|
||||
endif
|
||||
|
||||
# --------------------------------------------------------------
|
||||
|
||||
clean:
|
||||
ifeq ($(HAVE_DGL),true)
|
||||
$(MAKE) clean -C dpf/dgl
|
||||
endif
|
||||
$(MAKE) clean -C dpf/utils/lv2-ttl-generator
|
||||
$(MAKE) clean -C plugins/Nekobi
|
||||
rm -rf bin build
|
||||
|
||||
# --------------------------------------------------------------
|
||||
|
||||
|
|
150
Makefile.mk
150
Makefile.mk
|
@ -1,150 +0,0 @@
|
|||
#!/usr/bin/make -f
|
||||
# Makefile for DISTRHO Plugins #
|
||||
# ---------------------------- #
|
||||
# Created by falkTX
|
||||
#
|
||||
|
||||
AR ?= ar
|
||||
CC ?= gcc
|
||||
CXX ?= g++
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Fallback to Linux if no other OS defined
|
||||
|
||||
ifneq ($(HAIKU),true)
|
||||
ifneq ($(MACOS),true)
|
||||
ifneq ($(WIN32),true)
|
||||
LINUX=true
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Set build and link flags
|
||||
|
||||
BASE_FLAGS = -Wall -Wextra -pipe
|
||||
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
|
||||
|
||||
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
|
||||
ifneq ($(SKIP_STRIPPING),true)
|
||||
LINK_OPTS += -Wl,--strip-all
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(RASPPI),true)
|
||||
# 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 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
|
||||
|
||||
ifeq ($(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
|
||||
endif
|
||||
|
||||
ifeq ($(DEBUG),true)
|
||||
BASE_FLAGS += -DDEBUG -O0 -g
|
||||
LINK_OPTS =
|
||||
else
|
||||
BASE_FLAGS += -DNDEBUG $(BASE_OPTS) -fvisibility=hidden
|
||||
CXXFLAGS += -fvisibility-inlines-hidden
|
||||
endif
|
||||
|
||||
BUILD_C_FLAGS = $(BASE_FLAGS) -std=c99 -std=gnu99 $(CFLAGS)
|
||||
BUILD_CXX_FLAGS = $(BASE_FLAGS) -std=c++0x -std=gnu++0x $(CXXFLAGS) $(CPPFLAGS)
|
||||
LINK_FLAGS = $(LINK_OPTS) -Wl,--no-undefined $(LDFLAGS)
|
||||
|
||||
ifeq ($(MACOS),true)
|
||||
# No C++11 support
|
||||
BUILD_CXX_FLAGS = $(BASE_FLAGS) $(CXXFLAGS) $(CPPFLAGS)
|
||||
LINK_FLAGS = $(LINK_OPTS) $(LDFLAGS)
|
||||
endif
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Check for optional libs
|
||||
|
||||
ifeq ($(LINUX),true)
|
||||
HAVE_DGL = $(shell pkg-config --exists gl x11 && echo true)
|
||||
HAVE_JACK = $(shell pkg-config --exists jack && echo true)
|
||||
HAVE_LIBLO = $(shell pkg-config --exists liblo && echo true)
|
||||
endif
|
||||
|
||||
ifeq ($(MACOS),true)
|
||||
HAVE_DGL = true
|
||||
endif
|
||||
|
||||
ifeq ($(WIN32),true)
|
||||
HAVE_DGL = true
|
||||
endif
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Set libs stuff
|
||||
|
||||
ifeq ($(HAVE_DGL),true)
|
||||
|
||||
ifeq ($(LINUX),true)
|
||||
DGL_FLAGS = $(shell pkg-config --cflags gl x11)
|
||||
DGL_LIBS = $(shell pkg-config --libs gl x11)
|
||||
endif
|
||||
|
||||
ifeq ($(MACOS),true)
|
||||
DGL_LIBS = -framework OpenGL -framework Cocoa
|
||||
endif
|
||||
|
||||
ifeq ($(WIN32),true)
|
||||
DGL_LIBS = -lopengl32 -lgdi32
|
||||
endif
|
||||
|
||||
endif # HAVE_DGL
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Set app extension
|
||||
|
||||
ifeq ($(WIN32),true)
|
||||
APP_EXT = .exe
|
||||
endif
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Set shared lib extension
|
||||
|
||||
LIB_EXT = .so
|
||||
|
||||
ifeq ($(MACOS),true)
|
||||
LIB_EXT = .dylib
|
||||
endif
|
||||
|
||||
ifeq ($(WIN32),true)
|
||||
LIB_EXT = .dll
|
||||
endif
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Set shared library CLI arg
|
||||
|
||||
SHARED = -shared
|
||||
|
||||
ifeq ($(MACOS),true)
|
||||
SHARED = -dynamiclib
|
||||
endif
|
||||
|
||||
# --------------------------------------------------------------
|
|
@ -1,3 +0,0 @@
|
|||
All final plugin builds will be placed in this folder.
|
||||
|
||||
There is no "make install" process, simply copy those files to their appropriate place.
|
2
dpf
2
dpf
|
@ -1 +1 @@
|
|||
Subproject commit 3bbbef19fe12ef5d68f2810510da1fae6fdd35ff
|
||||
Subproject commit eb1ec93eedb24e33c5e6d8442d7f2d1bd7038a13
|
|
@ -1,163 +0,0 @@
|
|||
#!/usr/bin/make -f
|
||||
# Makefile for DISTRHO Plugins #
|
||||
# ---------------------------- #
|
||||
# Created by falkTX
|
||||
#
|
||||
|
||||
# NAME, OBJS_DSP and OBJS_UI have been defined before
|
||||
|
||||
include ../../Makefile.mk
|
||||
|
||||
ifeq ($(OBJS_UI),)
|
||||
HAVE_DGL = false
|
||||
endif
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Set which plugin formats to build
|
||||
|
||||
BUILD_JACK = true
|
||||
ifeq ($(LINUX),true)
|
||||
BUILD_DSSI = true
|
||||
endif
|
||||
BUILD_LV2 = true
|
||||
BUILD_VST2 = true
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Basic setup
|
||||
|
||||
TARGET_DIR = ../../bin
|
||||
|
||||
BUILD_C_FLAGS += -I.
|
||||
BUILD_CXX_FLAGS += -I. -I../../dpf/distrho -I../../dpf/dgl
|
||||
|
||||
ifeq ($(HAVE_DGL),true)
|
||||
BASE_FLAGS += -DHAVE_DGL
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_JACK),true)
|
||||
BASE_FLAGS += -DHAVE_JACK
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_LIBLO),true)
|
||||
BASE_FLAGS += -DHAVE_LIBLO
|
||||
endif
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Set plugin binary file targets
|
||||
|
||||
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
|
||||
|
||||
DISTRHO_PLUGIN_FILES = ../../dpf/distrho/DistrhoPluginMain.cpp
|
||||
|
||||
ifeq ($(HAVE_DGL),true)
|
||||
DISTRHO_UI_FILES = ../../dpf/distrho/DistrhoUIMain.cpp ../../dpf/libdgl.a
|
||||
endif
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Handle plugins without UI
|
||||
|
||||
ifneq ($(HAVE_DGL),true)
|
||||
dssi_ui =
|
||||
lv2_ui =
|
||||
DISTRHO_UI_FILES =
|
||||
DGL_LIBS =
|
||||
OBJS_UI =
|
||||
endif
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# all needs to be first
|
||||
|
||||
all:
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Common
|
||||
|
||||
%.c.o: %.c
|
||||
$(CC) $< $(BUILD_C_FLAGS) -MD -MP -c -o $@
|
||||
|
||||
%.cpp.o: %.cpp
|
||||
$(CXX) $< $(BUILD_CXX_FLAGS) -MD -MP -c -o $@
|
||||
|
||||
clean:
|
||||
rm -f *.d *.o
|
||||
rm -rf $(TARGET_DIR)/$(NAME) $(TARGET_DIR)/$(NAME)-* $(TARGET_DIR)/$(NAME).lv2/
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# JACK
|
||||
|
||||
jack: $(jack)
|
||||
|
||||
$(jack): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES)
|
||||
mkdir -p $(shell dirname $@)
|
||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(DGL_LIBS) $(shell pkg-config --cflags --libs jack) -DDISTRHO_PLUGIN_TARGET_JACK -o $@
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# LADSPA
|
||||
|
||||
ladspa: $(ladspa_dsp)
|
||||
|
||||
$(ladspa_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES)
|
||||
mkdir -p $(shell dirname $@)
|
||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_LADSPA -o $@
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# DSSI
|
||||
|
||||
dssi: $(dssi_dsp) $(dssi_ui)
|
||||
dssi_dsp: $(dssi_dsp)
|
||||
dssi_ui: $(dssi_ui)
|
||||
|
||||
$(dssi_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES)
|
||||
mkdir -p $(shell dirname $@)
|
||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_DSSI -o $@
|
||||
|
||||
$(dssi_ui): $(OBJS_UI) $(DISTRHO_UI_FILES)
|
||||
mkdir -p $(shell dirname $@)
|
||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --cflags --libs liblo) -DDISTRHO_PLUGIN_TARGET_DSSI -o $@
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# LV2
|
||||
|
||||
lv2_one: $(lv2)
|
||||
lv2_dsp: $(lv2_dsp)
|
||||
lv2_sep: $(lv2_dsp) $(lv2_ui)
|
||||
|
||||
$(lv2): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES)
|
||||
mkdir -p $(shell dirname $@)
|
||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@
|
||||
|
||||
$(lv2_dsp): $(OBJS_DSP) $(DISTRHO_PLUGIN_FILES)
|
||||
mkdir -p $(shell dirname $@)
|
||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@
|
||||
|
||||
$(lv2_ui): $(OBJS_UI) $(DISTRHO_UI_FILES)
|
||||
mkdir -p $(shell dirname $@)
|
||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# VST
|
||||
|
||||
vst: $(vst)
|
||||
|
||||
$(vst): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES)
|
||||
mkdir -p $(shell dirname $@)
|
||||
$(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) -lpthread $(DGL_LIBS) $(SHARED) -DDISTRHO_PLUGIN_TARGET_VST -o $@
|
||||
|
||||
# --------------------------------------------------------------
|
||||
|
||||
-include $(OBJS_DSP:%.o=%.d)
|
||||
ifeq ($(HAVE_DGL),true)
|
||||
-include $(OBJS_UI:%.o=%.d)
|
||||
endif
|
||||
|
||||
# --------------------------------------------------------------
|
|
@ -12,47 +12,44 @@ NAME = Nekobi
|
|||
# --------------------------------------------------------------
|
||||
# Files to build
|
||||
|
||||
OBJS_DSP = \
|
||||
DistrhoPluginNekobi.cpp.o
|
||||
FILES_DSP = \
|
||||
DistrhoPluginNekobi.cpp
|
||||
|
||||
OBJS_UI = \
|
||||
DistrhoArtworkNekobi.cpp.o \
|
||||
DistrhoUINekobi.cpp.o
|
||||
FILES_UI = \
|
||||
DistrhoArtworkNekobi.cpp \
|
||||
DistrhoUINekobi.cpp
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Do some magic
|
||||
|
||||
include ../Makefile.mk
|
||||
include ../../dpf/Makefile.plugins.mk
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Extra flags
|
||||
|
||||
LINK_FLAGS += -lpthread
|
||||
|
||||
# --------------------------------------------------------------
|
||||
# Enable all possible plugin types
|
||||
|
||||
ifeq ($(BUILD_JACK),true)
|
||||
ifeq ($(HAVE_JACK),true)
|
||||
TARGETS += jack
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_DSSI),true)
|
||||
TARGETS += dssi_dsp
|
||||
ifeq ($(HAVE_DGL),true)
|
||||
ifeq ($(HAVE_LIBLO),true)
|
||||
TARGETS += dssi_ui
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_LV2),true)
|
||||
ifeq ($(HAVE_DGL),true)
|
||||
TARGETS += lv2_sep
|
||||
else
|
||||
TARGETS += lv2_dsp
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD_VST2),true)
|
||||
TARGETS += vst
|
||||
endif
|
||||
|
||||
all: $(TARGETS)
|
||||
|
||||
|
|
Loading…
Reference in New Issue