@@ -28,8 +28,8 @@ List of plugins made with DPF:<br/> | |||
- [ZamAudio Suite](https://github.com/zamaudio/zam-plugins) | |||
Plugin examples are available [here](https://github.com/DISTRHO/plugin-examples).<br/> | |||
OpenGL UI examples are available [here](https://github.com/DISTRHO/gl-examples). | |||
Plugin examples are available in the `example/` folder inside this repo.<br/> | |||
Extra OpenGL UI examples are available [here](https://github.com/DISTRHO/gl-examples). | |||
Online documentation is available at [https://distrho.github.io/DPF/](https://distrho.github.io/DPF/). |
@@ -1,86 +1,86 @@ | |||
#!/usr/bin/make -f | |||
# Makefile for dgl # | |||
# Makefile for DGL # | |||
# ---------------- # | |||
# Created by falkTX | |||
# | |||
include Makefile.mk | |||
include ../Makefile.mk | |||
# -------------------------------------------------------------- | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
BUILD_C_FLAGS += $(DGL_FLAGS) -I. -Isrc | |||
BUILD_CXX_FLAGS += $(DGL_FLAGS) -I. -Isrc | |||
LINK_FLAGS += $(DGL_LIBS) | |||
ifneq ($(MACOS_OLD),true) | |||
# ifneq ($(MACOS_OLD),true) | |||
# needed by sofd right now, fix later | |||
BUILD_CXX_FLAGS += -Wno-type-limits -fpermissive | |||
endif | |||
# BUILD_CXX_FLAGS += -Wno-type-limits -fpermissive | |||
# endif | |||
# -------------------------------------------------------------- | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
OBJS = \ | |||
src/Application.cpp.o \ | |||
src/Color.cpp.o \ | |||
src/Geometry.cpp.o \ | |||
src/Image.cpp.o \ | |||
src/ImageWidgets.cpp.o \ | |||
src/NanoVG.cpp.o \ | |||
src/Resources.cpp.o \ | |||
src/Widget.cpp.o | |||
../build/dgl/Application.cpp.o \ | |||
../build/dgl/Color.cpp.o \ | |||
../build/dgl/Geometry.cpp.o \ | |||
../build/dgl/Image.cpp.o \ | |||
../build/dgl/ImageWidgets.cpp.o \ | |||
../build/dgl/NanoVG.cpp.o \ | |||
../build/dgl/Resources.cpp.o \ | |||
../build/dgl/Widget.cpp.o | |||
ifeq ($(MACOS),true) | |||
OBJS += src/Window.mm.o | |||
OBJS += ../build/dgl/Window.mm.o | |||
else | |||
OBJS += src/Window.cpp.o | |||
OBJS += ../build/dgl/Window.cpp.o | |||
endif | |||
TARGET = ../libdgl.a | |||
TARGET = ../build/libdgl.a | |||
# -------------------------------------------------------------- | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
all: $(TARGET) | |||
# -------------------------------------------------------------- | |||
../libdgl.a: $(OBJS) | |||
rm -f $@ | |||
$(AR) crs $@ $^ | |||
../libdgl.dll: $(OBJS) | |||
# -Wl,--output-def,$@.def,--out-implib,$@.a | |||
$(CXX) $^ -shared $(LINK_FLAGS) -o $@ | |||
../libdgl.dylib: $(OBJS) | |||
$(CXX) $^ -dynamiclib $(LINK_FLAGS) -o $@ | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
../libdgl.so: $(OBJS) | |||
$(CXX) $^ -shared $(LINK_FLAGS) -o $@ | |||
../build/libdgl.a: $(OBJS) | |||
-@mkdir -p ../build | |||
@echo "Creating libdgl.a" | |||
@rm -f $@ | |||
@$(AR) crs $@ $^ | |||
# -------------------------------------------------------------- | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
%.c.o: %.c | |||
$(CC) $< $(BUILD_C_FLAGS) -c -o $@ | |||
../build/dgl/%.c.o: src/%.c | |||
-@mkdir -p ../build/dgl | |||
@echo "Compiling $<" | |||
@$(CC) $< $(BUILD_C_FLAGS) -c -o $@ | |||
%.cpp.o: %.cpp | |||
$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||
../build/dgl/%.cpp.o: src/%.cpp | |||
-@mkdir -p ../build/dgl | |||
@echo "Compiling $<" | |||
@$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||
src/Window.cpp.o: src/Window.cpp src/pugl/* | |||
$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||
../build/dgl/Window.cpp.o: src/Window.cpp src/sofd/* src/pugl/* | |||
-@mkdir -p ../build/dgl | |||
@echo "Compiling $<" | |||
@$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ | |||
src/Window.mm.o: src/Window.cpp src/pugl/* | |||
$(CXX) $< $(BUILD_CXX_FLAGS) -ObjC++ -c -o $@ | |||
../build/dgl/Window.mm.o: src/Window.cpp src/sofd/* src/pugl/* | |||
-@mkdir -p ../build/dgl | |||
@echo "Compiling $<" | |||
@$(CXX) $< $(BUILD_CXX_FLAGS) -ObjC++ -c -o $@ | |||
# -------------------------------------------------------------- | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
clean: | |||
rm -f src/*.d src/*.o ../libdgl.* | |||
rm -rf ../build/dgl ../build/libdgl.* | |||
debug: | |||
$(MAKE) DEBUG=true | |||
# -------------------------------------------------------------- | |||
# --------------------------------------------------------------------------------------------------------------------- | |||
-include $(OBJS:%.o=%.d) | |||
# -------------------------------------------------------------- | |||
# --------------------------------------------------------------------------------------------------------------------- |
@@ -1,127 +0,0 @@ | |||
#!/usr/bin/make -f | |||
# Makefile for dgl # | |||
# ---------------- # | |||
# 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 -MD -MP | |||
BASE_OPTS = -O2 -mtune=generic -msse -msse2 -fdata-sections -ffunction-sections | |||
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 optimization flags | |||
BASE_OPTS = -O2 -march=armv6 -mfpu=vfp -mfloat-abi=hard | |||
LINK_OPTS = -Wl,-O1 -Wl,--as-needed -Wl,--strip-all | |||
endif | |||
ifeq ($(NOOPT),true) | |||
# No optimization flags | |||
BASE_OPTS = -O2 -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 $(CFLAGS) | |||
BUILD_CXX_FLAGS = $(BASE_FLAGS) -std=c++11 $(CXXFLAGS) $(CPPFLAGS) | |||
ifeq ($(MACOS),true) | |||
# 'no-undefined' is always enabled | |||
LINK_FLAGS = $(LINK_OPTS) $(LDFLAGS) | |||
else | |||
# Specify 'no-undefined' | |||
LINK_FLAGS = $(LINK_OPTS) -Wl,--no-undefined $(LDFLAGS) | |||
endif | |||
ifeq ($(MACOS_OLD),true) | |||
# No C++11 support | |||
BUILD_CXX_FLAGS = $(BASE_FLAGS) $(CXXFLAGS) $(CPPFLAGS) | |||
endif | |||
# -------------------------------------------------------------- | |||
# Strict test build | |||
ifeq ($(TESTBUILD),true) | |||
BASE_FLAGS += -Werror -Wcast-qual -Wconversion -Wformat -Wformat-security -Wredundant-decls -Wshadow -Wstrict-overflow -fstrict-overflow -Wundef -Wwrite-strings | |||
BASE_FLAGS += -Wpointer-arith -Wabi -Winit-self -Wuninitialized -Wstrict-overflow=5 | |||
# BASE_FLAGS += -Wfloat-equal | |||
ifeq ($(CC),clang) | |||
BASE_FLAGS += -Wdocumentation -Wdocumentation-unknown-command | |||
BASE_FLAGS += -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-padded -Wno-exit-time-destructors -Wno-float-equal | |||
else | |||
BASE_FLAGS += -Wcast-align -Wunsafe-loop-optimizations | |||
endif | |||
ifneq ($(MACOS),true) | |||
BASE_FLAGS += -Wmissing-declarations -Wsign-conversion | |||
ifneq ($(CC),clang) | |||
BASE_FLAGS += -Wlogical-op | |||
endif | |||
endif | |||
CFLAGS += -Wold-style-definition -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes | |||
CXXFLAGS += -Weffc++ -Wnon-virtual-dtor -Woverloaded-virtual | |||
endif | |||
# -------------------------------------------------------------- | |||
# Check for required libs | |||
ifeq ($(LINUX),true) | |||
ifneq ($(shell pkg-config --exists gl && echo true),true) | |||
$(error OpenGL missing, cannot continue) | |||
endif | |||
ifneq ($(shell pkg-config --exists x11 && echo true),true) | |||
$(error X11 missing, cannot continue) | |||
endif | |||
endif | |||
# -------------------------------------------------------------- | |||
# Set libs stuff | |||
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 | |||
# -------------------------------------------------------------- |