[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