Browse Source

Use root folder common Makefile to build DGL

pull/72/head
falkTX 5 years ago
parent
commit
da2ef996e1
3 changed files with 48 additions and 175 deletions
  1. +2
    -2
      README.md
  2. +46
    -46
      dgl/Makefile
  3. +0
    -127
      dgl/Makefile.mk

+ 2
- 2
README.md View File

@@ -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/).

+ 46
- 46
dgl/Makefile View File

@@ -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)

# --------------------------------------------------------------
# ---------------------------------------------------------------------------------------------------------------------

+ 0
- 127
dgl/Makefile.mk View File

@@ -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

# --------------------------------------------------------------

Loading…
Cancel
Save