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>
This commit is contained in:
Allan McRae 2012-09-23 17:06:34 +10:00
parent 7199fb3b1a
commit 6c22ef2c82
4 changed files with 28 additions and 3 deletions

View file

@ -274,6 +274,9 @@ A normal sync or upgrade will not use its value.
`!makeflags` with select packages that have problems building with `!makeflags` with select packages that have problems building with
custom makeflags such as `-j2` (or higher). 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 build() Function
---------------- ----------------

View file

@ -77,6 +77,14 @@ Options
This is often used to set the number of jobs used, for example, `-j2`. This is often used to set the number of jobs used, for example, `-j2`.
Other flags that make accepts can also be passed. 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**)**:: **BUILDENV=(**fakeroot !distcc color !ccache check !sign**)**::
This array contains options that affect the build environment, the defaults 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 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 Compress binary executable files using UPX. Additional options
can be passed to UPX by specifying the `UPXFLAGS` variable. 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 ...**)**:: **INTEGRITY_CHECK=(**check1 ...**)**::
File integrity checks to use. Multiple checks may be specified; this File integrity checks to use. Multiple checks may be specified; this
affects both generation and checking. The current valid options are: affects both generation and checking. The current valid options are:

View file

@ -33,6 +33,9 @@ CHOST="@CHOST@"
#LDFLAGS="" #LDFLAGS=""
#-- Make Flags: change this for DistCC/SMP systems #-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2" #MAKEFLAGS="-j2"
#-- Debugging flags
#DEBUG_CFLAGS="-g"
#DEBUG_CXXFLAGS="-g"
######################################################################### #########################################################################
# BUILD ENVIRONMENT # BUILD ENVIRONMENT
@ -62,7 +65,7 @@ BUILDENV=(fakeroot !distcc color !ccache check !sign)
# These are default values for the options=() settings # 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. # A negated option will do the opposite of the comments below.
# #
#-- strip: Strip symbols from binaries/libraries #-- 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 #-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS #-- purge: Remove files specified by PURGE_TARGETS
#-- upx: Compress binary executable files using UPX #-- 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 #-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
INTEGRITY_CHECK=(md5) INTEGRITY_CHECK=(md5)

View file

@ -44,7 +44,8 @@ declare -r confdir='@sysconfdir@'
declare -r BUILDSCRIPT='@BUILDSCRIPT@' declare -r BUILDSCRIPT='@BUILDSCRIPT@'
declare -r startdir="$PWD" 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') other_options=('ccache' 'distcc' 'buildflags' 'makeflags')
splitpkg_overrides=('pkgver' 'pkgrel' 'epoch' 'pkgdesc' 'arch' 'url' 'license' \ splitpkg_overrides=('pkgver' 'pkgrel' 'epoch' 'pkgdesc' 'arch' 'url' 'license' \
'groups' 'depends' 'optdepends' 'provides' 'conflicts' \ 'groups' 'depends' 'optdepends' 'provides' 'conflicts' \
@ -1340,6 +1341,11 @@ run_function() {
unset CPPFLAGS CFLAGS CXXFLAGS LDFLAGS unset CPPFLAGS CFLAGS CXXFLAGS LDFLAGS
fi fi
if check_option "debug" "y"; then
CFLAGS+=" $DEBUG_CFLAGS"
CXXFLAGS+=" $DEBUG_CXXFLAGS"
fi
# clear user-specified makeflags if requested # clear user-specified makeflags if requested
if check_option "makeflags" "n"; then if check_option "makeflags" "n"; then
unset MAKEFLAGS unset MAKEFLAGS