make introjucer produce nicer makefiles
authorIOhannes m zmölnig <zmoelnig@umlautQ.umlaeute.mur.at>
Wed, 10 Feb 2016 15:46:47 +0000 (16:46 +0100)
committerIOhannes m zmölnig <zmoelnig@umlautQ.umlaeute.mur.at>
Wed, 10 Feb 2016 15:46:47 +0000 (16:46 +0100)
debian/patches/introjucer-makegenerator.patch [new file with mode: 0644]

diff --git a/debian/patches/introjucer-makegenerator.patch b/debian/patches/introjucer-makegenerator.patch
new file mode 100644 (file)
index 0000000..560f1a4
--- /dev/null
@@ -0,0 +1,121 @@
+Description: introjucer fixes
+ introjucer creates Linux Makefiles, but they do silent builds and do not allow
+ to override CPP/C/CXXFLAGS.
+ this patch changes introjucer to honor the "V" build variable, so "V=1" will
+ build verbosely.
+ it also renames *FLAGS to JUCE_*FLAGS and appends the ordinary *FLAGS to them.
+Author: IOhannes m zmölnig
+Origin: Debian
+Last-Update: 2015-02-10
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- "juce.orig/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Make.h"
++++ "juce/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Make.h"
+@@ -169,15 +169,16 @@
\r
+     void writeCppFlags (OutputStream& out, const BuildConfiguration& config) const\r
+     {\r
+-        out << "  CPPFLAGS := $(DEPFLAGS)";\r
++        out << "  JUCE_CPPFLAGS := $(DEPFLAGS)";\r
+         writeDefineFlags (out, config);\r
+         writeHeaderPathFlags (out, config);\r
+-        out << newLine;\r
++        out << " $(CPPFLAGS)"\r
++            << newLine;\r
+     }\r
\r
+     void writeLinkerFlags (OutputStream& out, const BuildConfiguration& config) const\r
+     {\r
+-        out << "  LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR)";\r
++        out << "  JUCE_LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR)";\r
\r
+         {\r
+             StringArray flags (makefileExtraLinkerFlags);\r
+@@ -207,7 +208,8 @@
+         if (libraries.size() != 0)\r
+             out << " -l" << replacePreprocessorTokens (config, libraries.joinIntoString (" -l")).trim();\r
\r
+-        out << " " << replacePreprocessorTokens (config, getExtraLinkerFlagsString()).trim()\r
++        out << " " << replacePreprocessorTokens (config, getExtraLinkerFlagsString()).trim();\r
++        out << " $(LDFLAGS)"\r
+             << newLine;\r
+     }\r
\r
+@@ -236,7 +238,7 @@
\r
+         writeCppFlags (out, config);\r
\r
+-        out << "  CFLAGS += $(CPPFLAGS) $(TARGET_ARCH)";\r
++        out << "  JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH)";\r
\r
+         if (config.isDebug())\r
+             out << " -g -ggdb";\r
+@@ -246,6 +248,7 @@
\r
+         out << " -O" << config.getGCCOptimisationFlag()\r
+             << (" "  + replacePreprocessorTokens (config, getExtraCompilerFlagsString())).trimEnd()\r
++            << " $(CFLAGS)"\r
+             << newLine;\r
\r
+         String cppStandardToUse (getCppStandardString());\r
+@@ -253,8 +256,9 @@
+         if (cppStandardToUse.isEmpty())\r
+             cppStandardToUse = "-std=c++11";\r
\r
+-        out << "  CXXFLAGS += $(CFLAGS) "\r
++        out << "  JUCE_CXXFLAGS += $(JUCE_CFLAGS) "\r
+             << cppStandardToUse\r
++            << " $(CXXFLAGS)"\r
+             << newLine;\r
\r
+         writeLinkerFlags (out, config);\r
+@@ -273,7 +277,7 @@
+         if (projectType.isStaticLibrary())\r
+             out << "  BLDCMD = ar -rcs $(OUTDIR)/$(TARGET) $(OBJECTS)" << newLine;\r
+         else\r
+-            out << "  BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)" << newLine;\r
++            out << "  BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(JUCE_LDFLAGS) $(RESOURCES) $(TARGET_ARCH)" << newLine;\r
\r
+         out << "  CLEANCMD = rm -rf $(OUTDIR)/$(TARGET) $(OBJDIR)" << newLine\r
+             << "endif" << newLine\r
+@@ -297,6 +301,14 @@
+             << "# Don't edit this file! Your changes will be overwritten when you re-save the Introjucer project!" << newLine\r
+             << newLine;\r
\r
++        out << "# build with \"V=1\" for verbose builds" << newLine\r
++            << "ifeq ($(V), 1)" << newLine\r
++            << "V_AT =" << newLine\r
++            << "else" << newLine\r
++            << "V_AT = @" << newLine\r
++            << "endif" << newLine\r
++            << newLine;\r
++\r
+         out << "# (this disables dependency generation if multiple architectures are set)" << newLine\r
+             << "DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)" << newLine\r
+             << newLine;\r
+@@ -319,12 +331,12 @@
+             << "\t-@mkdir -p $(BINDIR)" << newLine\r
+             << "\t-@mkdir -p $(LIBDIR)" << newLine\r
+             << "\t-@mkdir -p $(OUTDIR)" << newLine\r
+-            << "\t@$(BLDCMD)" << newLine\r
++            << "\t$(V_AT)$(BLDCMD)" << newLine\r
+             << newLine;\r
\r
+         out << "clean:" << newLine\r
+             << "\t@echo Cleaning " << projectName << newLine\r
+-            << "\t@$(CLEANCMD)" << newLine\r
++            << "\t$(V_AT)$(CLEANCMD)" << newLine\r
+             << newLine;\r
\r
+         out << "strip:" << newLine\r
+@@ -342,8 +354,8 @@
+                     << ": " << escapeSpaces (files.getReference(i).toUnixStyle()) << newLine\r
+                     << "\t-@mkdir -p $(OBJDIR)" << newLine\r
+                     << "\t@echo \"Compiling " << files.getReference(i).getFileName() << "\"" << newLine\r
+-                    << (files.getReference(i).hasFileExtension ("c;s;S") ? "\t@$(CC) $(CFLAGS) -o \"$@\" -c \"$<\""\r
+-                                                                         : "\t@$(CXX) $(CXXFLAGS) -o \"$@\" -c \"$<\"")\r
++                    << (files.getReference(i).hasFileExtension ("c;s;S") ? "\t$(V_AT)$(CC) $(JUCE_CFLAGS) -o \"$@\" -c \"$<\""\r
++                                                                         : "\t$(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o \"$@\" -c \"$<\"")\r
+                     << newLine << newLine;\r
+             }\r
+         }\r