[SCM] juce/master: starting to support both Release and Debug build
umlaeute at users.alioth.debian.org
umlaeute at users.alioth.debian.org
Wed Feb 10 20:53:48 UTC 2016
The following commit has been merged in the master branch:
commit c546c5ef234c0a8493cb1e567df7865567d87a6f
Author: IOhannes m zmölnig <zmoelnig at umlautQ.umlaeute.mur.at>
Date: Wed Feb 10 17:08:00 2016 +0100
starting to support both Release and Debug build
diff --git a/debian/libbuilder/Makefile b/debian/libbuilder/Makefile
index cf70334..c45e218 100644
--- a/debian/libbuilder/Makefile
+++ b/debian/libbuilder/Makefile
@@ -5,7 +5,7 @@ includedir = $(prefix)/include
SONAME=0.0.0
SHORTSONAME=0
-TARGET := libjuce.so
+
# (this disables dependency generation if multiple architectures are set)
@@ -50,6 +50,9 @@ JUCELIBS := $(JUCELIBS) libpng
JUCELIBS_CPPFLAGS := $(JUCELIBS_CPPFLAGS) -DJUCE_INCLUDE_PNGLIB_CODE=0 -DPNG_SKIP_SETJMP_CHECK
JUCELIBS := $(JUCELIBS) ogg vorbis vorbisfile vorbisenc
JUCELIBS_CPPFLAGS := $(JUCELIBS_CPPFLAGS) -DJUCE_INCLUDE_OGGVORBIS_CODE=0
+## Debian's libbox2d-dev is incompatible with JUCE's
+#JUCELIBS := $(JUCELIBS) box2d
+#JUCELIBS_CPPFLAGS := $(JUCELIBS_CPPFLAGS) -DJUCE_INCLUDE_BOX2D_CODE=0
JUCELIBS := $(JUCELIBS) zlib
JUCELIBS_CPPFLAGS := $(JUCELIBS_CPPFLAGS) -DJUCE_INCLUDE_ZLIB_CODE=0
JUCELIBS := $(JUCELIBS) freetype2
@@ -64,13 +67,32 @@ JUCELIBS_LIBS := $(JUCELIBS_LIBS) $(shell pkg-config --libs $(JUCELIBS))
BINDIR := build
LIBDIR := build
-OBJDIR := build/intermediate/Release
OUTDIR := build
-JUCE_CPPFLAGS := $(DEPFLAGS) \
+OBJDIR_DEBUG := build/intermediate/Debug
+TARGET_DEBUG := libjuce_d.so
+JUCE_CFLAGS_DEBUG = -D "DEBUG=1" -D "_DEBUG=1" -g -ggdb -O0
+JUCE_LDLAGS_DEBUG =
+
+OBJDIR_RELEASE := build/intermediate/Release
+TARGET_RELEASE := libjuce.so
+JUCE_CFLAGS_RELEASE = -D "NDEBUG=1" -D "DEBUG=0" -O3
+JUCE_LDLAGS_RELEASE = -fvisibility=hidden
+
+ifeq ($(CONFIG),Debug)
+TARGET := $(OUTDIR)/$(TARGET_DEBUG)
+endif
+
+ifeq ($(CONFIG),Release)
+TARGET := $(OUTDIR)/$(TARGET_RELEASE)
+endif
+
+ifndef CONFIG
+ TARGET := $(OUTDIR)/$(TARGET_DEBUG) $(OUTDIR)/$(TARGET_RELEASE)
+endif
+
+JUCE_CPPFLAGS := $(DEPFLAGS) $(JUCE_CPPFLAGS) \
-D "LINUX=1" \
- -D "NDEBUG=1" \
- -D "DEBUG=0" \
-D "JUCE_DLL_BUILD=1" \
$(JUCELIBS_CPPFLAGS) \
-I. \
@@ -78,37 +100,42 @@ JUCE_CPPFLAGS := $(DEPFLAGS) \
JUCE_CFLAGS += \
$(TARGET_ARCH) \
- -O3 \
-fPIC \
-fpermissive \
$(JUCELIBS_CFLAGS)
JUCE_CXXFLAGS += -std=c++11
JUCE_LDFLAGS += \
- -rdynamic -shared -Wl,-soname,$(TARGET).$(SHORTSONAME) \
+ -rdynamic -shared \
$(TARGET_ARCH) \
-fPIC \
$(JUCELIBS_LIBS) \
- -L$(BINDIR) \
- -L$(LIBDIR) \
-ldl \
-lpthread \
-lrt \
$(empty)
-OBJECTS=$(SOURCES:%.cpp=$(OBJDIR)/%.o)
+OBJECTS_RELEASE=$(SOURCES:%.cpp=$(OBJDIR_RELEASE)/%.o)
+OBJECTS_DEBUG=$(SOURCES:%.cpp=$(OBJDIR_DEBUG)/%.o)
.PHONY: all clean install install-lib install-headers install-pkgconfig test introjucer
-all: $(OUTDIR)/$(TARGET) introjucer
+all: $(TARGET) introjucer
-$(OUTDIR)/$(TARGET): $(OBJECTS) $(RESOURCES)
- @echo Linking juce_dll
+$(OUTDIR)/$(TARGET_RELEASE): $(OBJECTS) $(RESOURCES)
+ @echo Linking $(TARGET_RELEASE)
- at mkdir -p $(OUTDIR)
- $(CXX) -o $@ $^ $(JUCE_LDFLAGS) $(LDFLAGS) $(TARGET_ARCH)
+ $(CXX) -o $@ $^ -Wl,-soname,$(TARGET_RELEASE).$(SHORTSONAME) $(JUCE_LDFLAGS) $(JUCE_LDFLAGS_RELEASE) $(LDFLAGS) $(TARGET_ARCH)
+$(OBJDIR_RELEASE)/%.o: %.cpp libjuce_builddate.h
+ mkdir -p "$(OBJDIR_RELEASE)"
+ $(CXX) $(JUCE_CPPFLAGS) $(JUCE_CFLAGS_RELEASE) $(JUCE_CFLAGS) $(JUCE_CXXFLAGS) $(CPPFLAGS) $(CXXFLAGS) -o "$@" -c "$<"
-$(OBJDIR)/%.o: %.cpp libjuce_builddate.h
- mkdir -p "$(OBJDIR)"
- $(CXX) $(JUCE_CPPFLAGS) $(JUCE_CFLAGS) $(JUCE_CXXFLAGS) $(CPPFLAGS) $(CXXFLAGS) -o "$@" -c "$<"
+$(OUTDIR)/$(TARGET_DEBUG): $(OBJECTS) $(RESOURCES)
+ @echo Linking $(TARGET_DEBUG)
+ - at mkdir -p $(OUTDIR)
+ $(CXX) -o $@ $^ -Wl,-soname,$(TARGET_DEBUG).$(SHORTSONAME) $(JUCE_LDFLAGS) $(JUCE_LDFLAGS_DEBUG) $(LDFLAGS) $(TARGET_ARCH)
+$(OBJDIR_DEBUG)/%.o: %.cpp libjuce_builddate.h
+ mkdir -p "$(OBJDIR_DEBUG)"
+ $(CXX) $(JUCE_CPPFLAGS) $(JUCE_CFLAGS_DEBUG) $(JUCE_CFLAGS) $(JUCE_CXXFLAGS) $(CPPFLAGS) $(CXXFLAGS) -o "$@" -c "$<"
libjuce_builddate.h:
touch libjuce_builddate.h
@@ -143,7 +170,7 @@ install: install-headers install-lib install-pkgconfig
test:
$(MAKE) -C $(DEMO_PATH)
-introjucer: $(OUTDIR)/$(TARGET)
+introjucer: $(OUTDIR)/$(TARGET_RELEASE)
$(MAKE) -C $(INTROJUCER_PATH) CONFIG=Release CPPFLAGS="$(CPPFLAGS) $(JUCELIBS_CPPFLAGS)" CFLAGS="$(CFLAGS) $(JUCELIBS_CFLAGS)" LDFLAGS="$(LDFLAGS) $(JUCELIBS_LIBS)"
juce.pc: juce.pc.in
--
juce packaging
More information about the pkg-multimedia-commits
mailing list