commit 205e0215af944870f282888e75eca5fd8d634df8
parent 1314c25f14fb42d3ababa70f05be69bd7a971f85
Author: falkTX <falktx@falktx.com>
Date: Thu, 29 Dec 2022 00:55:38 +0000
Improve handling of custom build dirs when using Makefiles
Signed-off-by: falkTX <falktx@falktx.com>
Diffstat:
M | Makefile.plugins.mk | | | 58 | ++++++++++++++++++++++++++++++++++------------------------ |
M | dgl/Makefile | | | 166 | ++++++++++++++++++++++++++++++++++++++++--------------------------------------- |
2 files changed, 119 insertions(+), 105 deletions(-)
diff --git a/Makefile.plugins.mk b/Makefile.plugins.mk
@@ -6,11 +6,18 @@
# NOTE: NAME, FILES_DSP and FILES_UI must have been defined before including this file!
-
ifeq ($(DPF_PATH),)
-ifeq (,$(wildcard ../../Makefile.base.mk))
+ifneq (,$(wildcard dpf/Makefile.base.mk))
+BASE_PATH=.
+DPF_PATH=dpf
+else ifneq (,$(wildcard ../dpf/Makefile.base.mk))
+BASE_PATH=..
+DPF_PATH=../dpf
+else ifneq (,$(wildcard ../../dpf/Makefile.base.mk))
+BASE_PATH=../..
DPF_PATH=../../dpf
else
+BASE_PATH=../..
DPF_PATH=../..
endif
endif
@@ -20,17 +27,20 @@ include $(DPF_PATH)/Makefile.base.mk
# ---------------------------------------------------------------------------------------------------------------------
# Basic setup
-ifeq ($(DPF_TARGET_DIR),)
-TARGET_DIR = ../../bin
+ifneq ($(DPF_BUILD_DIR),)
+BUILD_DIR = $(DPF_BUILD_DIR)
else
-TARGET_DIR = $(DPF_TARGET_DIR)
+BUILD_DIR = $(BASE_PATH)/build/$(NAME)
endif
-ifeq ($(DPF_BUILD_DIR),)
-BUILD_DIR = ../../build/$(NAME)
+
+ifneq ($(DPF_TARGET_DIR),)
+TARGET_DIR = $(DPF_TARGET_DIR)
else
-BUILD_DIR = $(DPF_BUILD_DIR)
+TARGET_DIR = $(BASE_PATH)/bin
endif
+DGL_BUILD_DIR = $(DPF_PATH)/build
+
BUILD_C_FLAGS += -I.
BUILD_CXX_FLAGS += -I. -I$(DPF_PATH)/distrho -I$(DPF_PATH)/dgl
@@ -147,7 +157,7 @@ ifeq ($(HAVE_CAIRO),true)
DGL_FLAGS += -DDGL_CAIRO -DHAVE_DGL
DGL_FLAGS += $(CAIRO_FLAGS)
DGL_LIBS += $(CAIRO_LIBS)
-DGL_LIB = $(DPF_PATH)/build/libdgl-cairo.a
+DGL_LIB = $(DGL_BUILD_DIR)/libdgl-cairo.a
HAVE_DGL = true
else
HAVE_DGL = false
@@ -159,7 +169,7 @@ ifeq ($(HAVE_OPENGL),true)
DGL_FLAGS += -DDGL_OPENGL -DHAVE_DGL
DGL_FLAGS += $(OPENGL_FLAGS)
DGL_LIBS += $(OPENGL_LIBS)
-DGL_LIB = $(DPF_PATH)/build/libdgl-opengl.a
+DGL_LIB = $(DGL_BUILD_DIR)/libdgl-opengl.a
HAVE_DGL = true
else
HAVE_DGL = false
@@ -171,7 +181,7 @@ ifeq ($(HAVE_OPENGL),true)
DGL_FLAGS += -DDGL_OPENGL -DDGL_USE_OPENGL3 -DHAVE_DGL
DGL_FLAGS += $(OPENGL_FLAGS)
DGL_LIBS += $(OPENGL_LIBS)
-DGL_LIB = $(DPF_PATH)/build/libdgl-opengl3.a
+DGL_LIB = $(DGL_BUILD_DIR)/libdgl-opengl3.a
HAVE_DGL = true
else
HAVE_DGL = false
@@ -183,7 +193,7 @@ ifeq ($(HAVE_VULKAN),true)
DGL_FLAGS += -DDGL_VULKAN -DHAVE_DGL
DGL_FLAGS += $(VULKAN_FLAGS)
DGL_LIBS += $(VULKAN_LIBS)
-DGL_LIB = $(DPF_PATH)/build/libdgl-vulkan.a
+DGL_LIB = $(DGL_BUILD_DIR)/libdgl-vulkan.a
HAVE_DGL = true
else
HAVE_DGL = false
@@ -197,7 +207,7 @@ endif
ifeq ($(UI_TYPE),stub)
ifeq ($(HAVE_STUB),true)
-DGL_LIB = $(DPF_PATH)/build/libdgl-stub.a
+DGL_LIB = $(DGL_BUILD_DIR)/libdgl-stub.a
HAVE_DGL = true
else
HAVE_DGL = false
@@ -364,32 +374,32 @@ all:
# Common
$(BUILD_DIR)/%.S.o: %.S
- -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
+ -@mkdir -p "$(shell dirname $@)"
@echo "Compiling $<"
@$(CC) $< $(BUILD_C_FLAGS) -c -o $@
$(BUILD_DIR)/%.c.o: %.c
- -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
+ -@mkdir -p "$(shell dirname $@)"
@echo "Compiling $<"
$(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@
$(BUILD_DIR)/%.cc.o: %.cc
- -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
+ -@mkdir -p "$(shell dirname $@)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
$(BUILD_DIR)/%.cpp.o: %.cpp
- -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
+ -@mkdir -p "$(shell dirname $@)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
$(BUILD_DIR)/%.m.o: %.m
- -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
+ -@mkdir -p "$(shell dirname $@)"
@echo "Compiling $<"
$(SILENT)$(CC) $< $(BUILD_C_FLAGS) -ObjC -c -o $@
$(BUILD_DIR)/%.mm.o: %.mm
- -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
+ -@mkdir -p "$(shell dirname $@)"
@echo "Compiling $<"
$(SILENT)$(CC) $< $(BUILD_CXX_FLAGS) -ObjC++ -c -o $@
@@ -405,19 +415,19 @@ clean:
# ---------------------------------------------------------------------------------------------------------------------
# DGL
-$(DPF_PATH)/build/libdgl-cairo.a:
+$(DGL_BUILD_DIR)/libdgl-cairo.a:
$(MAKE) -C $(DPF_PATH)/dgl cairo
-$(DPF_PATH)/build/libdgl-opengl.a:
+$(DGL_BUILD_DIR)/libdgl-opengl.a:
$(MAKE) -C $(DPF_PATH)/dgl opengl
-$(DPF_PATH)/build/libdgl-opengl3.a:
+$(DGL_BUILD_DIR)/libdgl-opengl3.a:
$(MAKE) -C $(DPF_PATH)/dgl opengl3
-$(DPF_PATH)/build/libdgl-stub.a:
+$(DGL_BUILD_DIR)/libdgl-stub.a:
$(MAKE) -C $(DPF_PATH)/dgl stub
-$(DPF_PATH)/build/libdgl-vulkan.a:
+$(DGL_BUILD_DIR)/libdgl-vulkan.a:
$(MAKE) -C $(DPF_PATH)/dgl vulkan
# ---------------------------------------------------------------------------------------------------------------------
diff --git a/dgl/Makefile b/dgl/Makefile
@@ -26,58 +26,62 @@ endif
# ---------------------------------------------------------------------------------------------------------------------
+BUILD_DIR = ../build
+
+# ---------------------------------------------------------------------------------------------------------------------
+
OBJS_common = \
- ../build/dgl/Application.cpp.o \
- ../build/dgl/ApplicationPrivateData.cpp.o \
- ../build/dgl/Color.cpp.o \
- ../build/dgl/EventHandlers.cpp.o \
- ../build/dgl/Geometry.cpp.o \
- ../build/dgl/ImageBase.cpp.o \
- ../build/dgl/ImageBaseWidgets.cpp.o \
- ../build/dgl/Layout.cpp.o \
- ../build/dgl/Resources.cpp.o \
- ../build/dgl/SubWidget.cpp.o \
- ../build/dgl/SubWidgetPrivateData.cpp.o \
- ../build/dgl/TopLevelWidget.cpp.o \
- ../build/dgl/TopLevelWidgetPrivateData.cpp.o \
- ../build/dgl/Widget.cpp.o \
- ../build/dgl/WidgetPrivateData.cpp.o \
- ../build/dgl/Window.cpp.o \
- ../build/dgl/WindowPrivateData.cpp.o
+ $(BUILD_DIR)/dgl/Application.cpp.o \
+ $(BUILD_DIR)/dgl/ApplicationPrivateData.cpp.o \
+ $(BUILD_DIR)/dgl/Color.cpp.o \
+ $(BUILD_DIR)/dgl/EventHandlers.cpp.o \
+ $(BUILD_DIR)/dgl/Geometry.cpp.o \
+ $(BUILD_DIR)/dgl/ImageBase.cpp.o \
+ $(BUILD_DIR)/dgl/ImageBaseWidgets.cpp.o \
+ $(BUILD_DIR)/dgl/Layout.cpp.o \
+ $(BUILD_DIR)/dgl/Resources.cpp.o \
+ $(BUILD_DIR)/dgl/SubWidget.cpp.o \
+ $(BUILD_DIR)/dgl/SubWidgetPrivateData.cpp.o \
+ $(BUILD_DIR)/dgl/TopLevelWidget.cpp.o \
+ $(BUILD_DIR)/dgl/TopLevelWidgetPrivateData.cpp.o \
+ $(BUILD_DIR)/dgl/Widget.cpp.o \
+ $(BUILD_DIR)/dgl/WidgetPrivateData.cpp.o \
+ $(BUILD_DIR)/dgl/Window.cpp.o \
+ $(BUILD_DIR)/dgl/WindowPrivateData.cpp.o
# ---------------------------------------------------------------------------------------------------------------------
OBJS_cairo = $(OBJS_common) \
- ../build/dgl/Cairo.cpp.cairo.o
+ $(BUILD_DIR)/dgl/Cairo.cpp.cairo.o
ifeq ($(MACOS),true)
-OBJS_cairo += ../build/dgl/pugl.mm.cairo.o
+OBJS_cairo += $(BUILD_DIR)/dgl/pugl.mm.cairo.o
else
-OBJS_cairo += ../build/dgl/pugl.cpp.cairo.o
+OBJS_cairo += $(BUILD_DIR)/dgl/pugl.cpp.cairo.o
endif
# ---------------------------------------------------------------------------------------------------------------------
OBJS_opengl = $(OBJS_common) \
- ../build/dgl/OpenGL.cpp.opengl.o \
- ../build/dgl/NanoVG.cpp.opengl.o
+ $(BUILD_DIR)/dgl/OpenGL.cpp.opengl.o \
+ $(BUILD_DIR)/dgl/NanoVG.cpp.opengl.o
ifeq ($(MACOS),true)
-OBJS_opengl += ../build/dgl/pugl.mm.opengl.o
+OBJS_opengl += $(BUILD_DIR)/dgl/pugl.mm.opengl.o
else
-OBJS_opengl += ../build/dgl/pugl.cpp.opengl.o
+OBJS_opengl += $(BUILD_DIR)/dgl/pugl.cpp.opengl.o
endif
# ---------------------------------------------------------------------------------------------------------------------
OBJS_opengl3 = $(OBJS_common) \
- ../build/dgl/OpenGL.cpp.opengl3.o \
- ../build/dgl/NanoVG.cpp.opengl3.o
+ $(BUILD_DIR)/dgl/OpenGL.cpp.opengl3.o \
+ $(BUILD_DIR)/dgl/NanoVG.cpp.opengl3.o
ifeq ($(MACOS),true)
-OBJS_opengl3 += ../build/dgl/pugl.mm.opengl3.o
+OBJS_opengl3 += $(BUILD_DIR)/dgl/pugl.mm.opengl3.o
else
-OBJS_opengl3 += ../build/dgl/pugl.cpp.opengl3.o
+OBJS_opengl3 += $(BUILD_DIR)/dgl/pugl.cpp.opengl3.o
endif
# ---------------------------------------------------------------------------------------------------------------------
@@ -85,170 +89,170 @@ endif
OBJS_stub = $(OBJS_common)
ifeq ($(MACOS),true)
-OBJS_stub += ../build/dgl/pugl.mm.o
+OBJS_stub += $(BUILD_DIR)/dgl/pugl.mm.o
else
-OBJS_stub += ../build/dgl/pugl.cpp.o
+OBJS_stub += $(BUILD_DIR)/dgl/pugl.cpp.o
endif
# ---------------------------------------------------------------------------------------------------------------------
OBJS_vulkan = $(OBJS_common) \
- ../build/dgl/Vulkan.cpp.vulkan.o
+ $(BUILD_DIR)/dgl/Vulkan.cpp.vulkan.o
ifeq ($(MACOS),true)
-OBJS_vulkan += ../build/dgl/pugl.mm.vulkan.o
+OBJS_vulkan += $(BUILD_DIR)/dgl/pugl.mm.vulkan.o
else
-OBJS_vulkan += ../build/dgl/pugl.cpp.vulkan.o
+OBJS_vulkan += $(BUILD_DIR)/dgl/pugl.cpp.vulkan.o
endif
# ---------------------------------------------------------------------------------------------------------------------
ifeq ($(HAVE_CAIRO),true)
-TARGETS += ../build/libdgl-cairo.a
+TARGETS += $(BUILD_DIR)/libdgl-cairo.a
endif
ifeq ($(HAVE_OPENGL),true)
-TARGETS += ../build/libdgl-opengl.a
+TARGETS += $(BUILD_DIR)/libdgl-opengl.a
# Compat name, to be removed soon
-TARGETS += ../build/libdgl.a
+TARGETS += $(BUILD_DIR)/libdgl.a
endif
ifeq ($(HAVE_STUB),true)
-TARGETS += ../build/libdgl-stub.a
+TARGETS += $(BUILD_DIR)/libdgl-stub.a
endif
ifeq ($(HAVE_VULKAN),true)
-TARGETS += ../build/libdgl-vulkan.a
+TARGETS += $(BUILD_DIR)/libdgl-vulkan.a
endif
# ---------------------------------------------------------------------------------------------------------------------
all: $(TARGETS)
-cairo: ../build/libdgl-cairo.a
-opengl: ../build/libdgl-opengl.a
-opengl3: ../build/libdgl-opengl3.a
-stub: ../build/libdgl-stub.a
-vulkan: ../build/libdgl-vulkan.a
+cairo: $(BUILD_DIR)/libdgl-cairo.a
+opengl: $(BUILD_DIR)/libdgl-opengl.a
+opengl3: $(BUILD_DIR)/libdgl-opengl3.a
+stub: $(BUILD_DIR)/libdgl-stub.a
+vulkan: $(BUILD_DIR)/libdgl-vulkan.a
# ---------------------------------------------------------------------------------------------------------------------
-../build/libdgl-cairo.a: $(OBJS_cairo)
- -@mkdir -p ../build
+$(BUILD_DIR)/libdgl-cairo.a: $(OBJS_cairo)
+ -@mkdir -p $(BUILD_DIR)
@echo "Creating libdgl-cairo.a"
$(SILENT)rm -f $@
$(SILENT)$(AR) crs $@ $^
-../build/libdgl-opengl.a: $(OBJS_opengl)
- -@mkdir -p ../build
+$(BUILD_DIR)/libdgl-opengl.a: $(OBJS_opengl)
+ -@mkdir -p $(BUILD_DIR)
@echo "Creating libdgl-opengl.a"
$(SILENT)rm -f $@
$(SILENT)$(AR) crs $@ $^
-../build/libdgl-opengl3.a: $(OBJS_opengl3)
- -@mkdir -p ../build
+$(BUILD_DIR)/libdgl-opengl3.a: $(OBJS_opengl3)
+ -@mkdir -p $(BUILD_DIR)
@echo "Creating libdgl-opengl3.a"
$(SILENT)rm -f $@
$(SILENT)$(AR) crs $@ $^
-../build/libdgl-stub.a: $(OBJS_stub)
- -@mkdir -p ../build
+$(BUILD_DIR)/libdgl-stub.a: $(OBJS_stub)
+ -@mkdir -p $(BUILD_DIR)
@echo "Creating libdgl-stub.a"
$(SILENT)rm -f $@
$(SILENT)$(AR) crs $@ $^
-../build/libdgl-vulkan.a: $(OBJS_vulkan)
- -@mkdir -p ../build
+$(BUILD_DIR)/libdgl-vulkan.a: $(OBJS_vulkan)
+ -@mkdir -p $(BUILD_DIR)
@echo "Creating libdgl-vulkan.a"
$(SILENT)rm -f $@
$(SILENT)$(AR) crs $@ $^
# Compat name, to be removed soon
-../build/libdgl.a: ../build/libdgl-opengl.a
+$(BUILD_DIR)/libdgl.a: $(BUILD_DIR)/libdgl-opengl.a
@echo "Symlinking libdgl.a"
$(SILENT)ln -sf $< $@
# ---------------------------------------------------------------------------------------------------------------------
-../build/dgl/%.c.o: src/%.c
- -@mkdir -p ../build/dgl
+$(BUILD_DIR)/dgl/%.c.o: src/%.c
+ -@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $<"
$(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@
-../build/dgl/%.cpp.o: src/%.cpp
- -@mkdir -p ../build/dgl
+$(BUILD_DIR)/dgl/%.cpp.o: src/%.cpp
+ -@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@
-../build/dgl/%.mm.o: src/%.mm
- -@mkdir -p ../build/dgl
+$(BUILD_DIR)/dgl/%.mm.o: src/%.mm
+ -@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -ObjC++ -o $@
# ---------------------------------------------------------------------------------------------------------------------
-../build/dgl/pugl.cpp.o: src/pugl.cpp
- -@mkdir -p ../build/dgl
+$(BUILD_DIR)/dgl/pugl.cpp.o: src/pugl.cpp
+ -@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) -c -o $@
-../build/dgl/pugl.mm.o: src/pugl.mm
- -@mkdir -p ../build/dgl
+$(BUILD_DIR)/dgl/pugl.mm.o: src/pugl.mm
+ -@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) -c -ObjC++ -o $@
# ---------------------------------------------------------------------------------------------------------------------
-../build/dgl/%.cpp.cairo.o: src/%.cpp
- -@mkdir -p ../build/dgl
+$(BUILD_DIR)/dgl/%.cpp.cairo.o: src/%.cpp
+ -@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $< (Cairo variant)"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -o $@
-../build/dgl/%.mm.cairo.o: src/%.mm
- -@mkdir -p ../build/dgl
+$(BUILD_DIR)/dgl/%.mm.cairo.o: src/%.mm
+ -@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $< (Cairo variant)"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(CAIRO_FLAGS) -DDGL_CAIRO -c -ObjC++ -o $@
# ---------------------------------------------------------------------------------------------------------------------
-../build/dgl/%.cpp.opengl.o: src/%.cpp
- -@mkdir -p ../build/dgl
+$(BUILD_DIR)/dgl/%.cpp.opengl.o: src/%.cpp
+ -@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $< (OpenGL variant)"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -o $@
-../build/dgl/%.mm.opengl.o: src/%.mm
- -@mkdir -p ../build/dgl
+$(BUILD_DIR)/dgl/%.mm.opengl.o: src/%.mm
+ -@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $< (OpenGL variant)"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -c -ObjC++ -o $@
# ---------------------------------------------------------------------------------------------------------------------
-../build/dgl/%.cpp.opengl3.o: src/%.cpp
- -@mkdir -p ../build/dgl
+$(BUILD_DIR)/dgl/%.cpp.opengl3.o: src/%.cpp
+ -@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $< (OpenGL3 variant)"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -DDGL_USE_OPENGL3 -c -o $@
-../build/dgl/%.mm.opengl3.o: src/%.mm
- -@mkdir -p ../build/dgl
+$(BUILD_DIR)/dgl/%.mm.opengl3.o: src/%.mm
+ -@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $< (OpenGL3 variant)"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(OPENGL_FLAGS) -DDGL_OPENGL -DDGL_USE_OPENGL3 -c -ObjC++ -o $@
# ---------------------------------------------------------------------------------------------------------------------
-../build/dgl/%.cpp.vulkan.o: src/%.cpp
- -@mkdir -p ../build/dgl
+$(BUILD_DIR)/dgl/%.cpp.vulkan.o: src/%.cpp
+ -@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $< (Vulkan variant)"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -o $@
-../build/dgl/%.mm.vulkan.o: src/%.mm
- -@mkdir -p ../build/dgl
+$(BUILD_DIR)/dgl/%.mm.vulkan.o: src/%.mm
+ -@mkdir -p $(BUILD_DIR)/dgl
@echo "Compiling $< (Vulkan variant)"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) $(PUGL_EXTRA_FLAGS) $(VULKAN_FLAGS) -DDGL_VULKAN -c -ObjC++ -o $@
# ---------------------------------------------------------------------------------------------------------------------
clean:
- rm -rf ../build/dgl ../build/libdgl*.*
+ rm -rf $(BUILD_DIR)/dgl $(BUILD_DIR)/libdgl*.*
debug:
$(MAKE) DEBUG=true