summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2012-09-23 09:06:34 +0200
committerAllan McRae <allan@archlinux.org>2012-11-27 06:16:15 +0100
commit6c22ef2c8287ef16f57fba08077520ad0c68dff8 (patch)
tree4cb4e729d613f7178510e5757b0113274e777214
parent7199fb3b1aab6ec36e56af8a3ab1949c7510c767 (diff)
downloadpacman-6c22ef2c8287ef16f57fba08077520ad0c68dff8.tar.gz
pacman-6c22ef2c8287ef16f57fba08077520ad0c68dff8.tar.xz
makepkg: add option to include debugging compiler flags
Add a "debug" option that appends the compiler flags specified in the variables DEBUG_CFLAGS and DEBUG_CXXFLAGS in makepkg.conf to their counterpart buildflags. Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--doc/PKGBUILD.5.txt3
-rw-r--r--doc/makepkg.conf.5.txt12
-rw-r--r--etc/makepkg.conf.in8
-rw-r--r--scripts/makepkg.sh.in8
4 files changed, 28 insertions, 3 deletions
diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
index 19bae634..28c4868d 100644
--- a/doc/PKGBUILD.5.txt
+++ b/doc/PKGBUILD.5.txt
@@ -274,6 +274,9 @@ A normal sync or upgrade will not use its value.
`!makeflags` with select packages that have problems building with
custom makeflags such as `-j2` (or higher).
+ *debug*;;
+ Add the user-specified debug flags (DEBUG_CFLAGS, DEBUG_CXXFLAGS) to
+ their counterpart buildflags as specified in linkman:makepkg.conf[5].
build() Function
----------------
diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
index cf9da732..1a24641a 100644
--- a/doc/makepkg.conf.5.txt
+++ b/doc/makepkg.conf.5.txt
@@ -77,6 +77,14 @@ Options
This is often used to set the number of jobs used, for example, `-j2`.
Other flags that make accepts can also be passed.
+**DEBUG_CFLAGS=**"debug_cflags"::
+ Additional compiler flags appended to CFLAGS for use in debugging. Usually
+ this would include: ``-g''. Read gcc(1) for more details on the wide
+ variety of compiler flags available.
+
+**DEBUG_CXXFLAGS=**"debug_cxxflags"::
+ Debug flags used for the C++ compiler; see DEBUG_CFLAGS for more info.
+
**BUILDENV=(**fakeroot !distcc color !ccache check !sign**)**::
This array contains options that affect the build environment, the defaults
are shown here. All options should always be left in the array; to enable
@@ -167,6 +175,10 @@ Options
Compress binary executable files using UPX. Additional options
can be passed to UPX by specifying the `UPXFLAGS` variable.
+ *debug*;;
+ Add the user-specified debug flags as specified in DEBUG_CFLAGS and
+ DEBUG_CXXFLAGS to their counterpart buildflags.
+
**INTEGRITY_CHECK=(**check1 ...**)**::
File integrity checks to use. Multiple checks may be specified; this
affects both generation and checking. The current valid options are:
diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in
index dcec6f5c..0de85c95 100644
--- a/etc/makepkg.conf.in
+++ b/etc/makepkg.conf.in
@@ -33,6 +33,9 @@ CHOST="@CHOST@"
#LDFLAGS=""
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"
+#-- Debugging flags
+#DEBUG_CFLAGS="-g"
+#DEBUG_CXXFLAGS="-g"
#########################################################################
# BUILD ENVIRONMENT
@@ -62,7 +65,7 @@ BUILDENV=(fakeroot !distcc color !ccache check !sign)
# These are default values for the options=() settings
#########################################################################
#
-# Default: OPTIONS=(strip docs libtool emptydirs zipman purge !upx)
+# Default: OPTIONS=(strip docs libtool emptydirs zipman purge !upx !debug)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
@@ -72,8 +75,9 @@ BUILDENV=(fakeroot !distcc color !ccache check !sign)
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS
#-- upx: Compress binary executable files using UPX
+#-- debug: Add debugging flags as specified in DEBUG_* variables
#
-OPTIONS=(strip docs libtool emptydirs zipman purge !upx)
+OPTIONS=(strip docs libtool emptydirs zipman purge !upx !debug)
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
INTEGRITY_CHECK=(md5)
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index d4d435f0..238d3408 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -44,7 +44,8 @@ declare -r confdir='@sysconfdir@'
declare -r BUILDSCRIPT='@BUILDSCRIPT@'
declare -r startdir="$PWD"
-packaging_options=('strip' 'docs' 'libtool' 'emptydirs' 'zipman' 'purge' 'upx')
+packaging_options=('strip' 'docs' 'libtool' 'emptydirs' 'zipman' 'purge' 'upx' \
+ 'debug')
other_options=('ccache' 'distcc' 'buildflags' 'makeflags')
splitpkg_overrides=('pkgver' 'pkgrel' 'epoch' 'pkgdesc' 'arch' 'url' 'license' \
'groups' 'depends' 'optdepends' 'provides' 'conflicts' \
@@ -1340,6 +1341,11 @@ run_function() {
unset CPPFLAGS CFLAGS CXXFLAGS LDFLAGS
fi
+ if check_option "debug" "y"; then
+ CFLAGS+=" $DEBUG_CFLAGS"
+ CXXFLAGS+=" $DEBUG_CXXFLAGS"
+ fi
+
# clear user-specified makeflags if requested
if check_option "makeflags" "n"; then
unset MAKEFLAGS