Updated README.Debian
authorIOhannes m zmölnig <zmoelnig@umlautS.umlaeute.mur.at>
Thu, 9 Nov 2017 13:15:50 +0000 (14:15 +0100)
committerIOhannes m zmölnig <zmoelnig@umlautS.umlaeute.mur.at>
Thu, 9 Nov 2017 13:15:50 +0000 (14:15 +0100)
debian/README.Debian

index fbce86314a16f8435209390f4eb8d4c5d7a8f162..8c6619be4d5a41c15e37ed29f621c80f469c973f 100644 (file)
@@ -7,25 +7,8 @@ This is made explicit in the 'Projucer', JUCE's own software project
 management workbench, that will copy (or symlink, or include otherwise) the
 modules' source code into your project.
 
-For various reasons, Debian frowns upon static linking for distributed packages
-and instead encourages dynamic linking (see [1] for a discussion).
-
-Therefore, JUCE for Debian is built as a library ("libjuce") that has all
-(possible) features enabled.
-Debian packages of software that uses JUCE are encouraged to use this library.
-
-Developers who write their own JUCE-based applications will most likely not be
-able to use libjuce/libjuce-dev directly without concessions to the
-portability of their projects.
-
-
-[1] https://wiki.debian.org/StaticLinking
-
-
 # Projucer for Debian
 
-If you are developing your own JUCE application, you are of course free to
-follow upstream's advice.
 Installing the following packages will give you the 'Projucer' as Debian
 packages while keeping your embedded-module-code workflow:
  - juce-tools (contains the Projucer)
@@ -34,48 +17,22 @@ packages while keeping your embedded-module-code workflow:
 The 'Projucer' as shipped with Debian has the following modification regarding
 the once shipped by upstream:
 
-- The generated project Makefile will honour external *FLAGS (e.g. CXXFLAGS) by
-  appending them to the internally used JUCE_*FLAGS.
-
-     $ make CPPFLAGS="-Wdate-time -D_FORTIFY_SOURCE=2"
-
-- The generated project Makefile will allow verbose builds (showing you the
-  actualy compiler/linker invocation)
-
-      $ make V=1
-
-- The Projucer *itself* is linked against libjuce, rather than including the
-  modules statically. (Though you will hopefully never notice a difference here)
-
-
-
 # Debian packages that depend on JUCE
 
 This is a quick guideline for packaging upstream software that uses JUCE for
 Debian.
 
-- Build-Depend on 'libjuce-dev'.
-
-- Patch the project's (generated) Linux/Makefile:
-  - Remove all references to the juce-modules from OBJECTS.
-    AFAICT, these are the lines starting with "$(OBJDIR)/juce_".
-  - For "Release" builds:
-    - Add "$(shell pkg-config --cflags juce)" to the projects CFLAGS
-    - Add "$(shell pkg-config --libs juce)" to the projects LDFLAGS
-      (as a bonus, you can now remove *most* explicitly mentioned libraries,
-       e.g. "-lX11")
-  - For "Debug" builds use 'juce-dbg' instead of 'juce', but you probably don't
-    want Debug builds anyhow...
-
-
-### Notes on *FLAGS
-you are probably aware that JUCE Makefiles override your
-CPPFLAGS/CFLAGS/CXXFLAGS/LDFLAGS, making it hard to apply hardening flags.
-I usually prefix these flags with JUCE_ (e.g. "CPPFLAGS" becomes
-"JUCE_CPPFLAGS") and then append the external flag ("$(CPPFLAGS)") to these.
+- Build-Depend on 'juce-modules-source'
+- Add 'Built-Using: juce-modules-source (= <<version>>)' to debian/control
+  (replace '<<version>>' with the actual version of 'juce-modules-source', as
+  obtained with
 
-You could recreate the Makefiles by running the project's .jucer file through
-Debian's "Projucer" (the so-generated Makefiles allow both overriding of
-*FLAGS and building verbosely), but adding 'juce-tools' to the Build-Depends is
-probably an overkill.
+       dpkg-query --show --showformat='${source:Version}' juce-modules-source
 
+- If needed, dynamically link against the following libraries (as
+  "juce-modules-source" does not include their sources (as opposed to upstream):
+  - libjpeg
+  - libpng
+  - libflac
+  - libogg
+  - libvorbis