[pacman-dev] [PATCH] makepkg: Add CPPFLAGS support

Dave Reisner d at falconindy.com
Tue May 8 10:34:43 EDT 2012


On Tue, May 08, 2012 at 09:11:55AM -0500, Dan McGee wrote:
> On Tue, May 8, 2012 at 1:05 AM, Allan McRae <allan at archlinux.org> wrote:
> > Add CPPFLAGS support in addition to the current CFLAGS and CXXFLAGS.
> > This keeps compiler flags split up in the same logical way done
> > everywhere else.
> +1
> 
> >
> > Signed-off-by: Allan McRae <allan at archlinux.org>
> > ---
> >
> > This will allow a certian disrtibution to put -D_FORTIFY_SOURCE where
> "certain distribution" :P
> 
> > it should be...
> >
> >  doc/PKGBUILD.5.txt     |    8 ++++----
> >  doc/makepkg.conf.5.txt |    3 +++
> >  etc/makepkg.conf.in    |    1 +
> >  scripts/makepkg.sh.in  |    4 ++--
> >  4 files changed, 10 insertions(+), 6 deletions(-)
> >
> > diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
> > index eefdbd4..384af7c 100644
> > --- a/doc/PKGBUILD.5.txt
> > +++ b/doc/PKGBUILD.5.txt
> > @@ -254,10 +254,10 @@ A normal sync or upgrade will not use its value.
> >                with distcc.
> >
> >        *buildflags*;;
> > -               Allow the use of user-specific buildflags (CFLAGS, CXXFLAGS, LDFLAGS)
> > -               during build as specified in linkman:makepkg.conf[5]. More useful in
> > -               its negative form `!buildflags` with select packages that have problems
> > -               building with custom buildflags.
> > +               Allow the use of user-specific buildflags (CPPFLAGS, CFLAGS, CXXFLAGS,
> > +               LDFLAGS) during build as specified in linkman:makepkg.conf[5]. More
> > +               useful in its negative form `!buildflags` with select packages that
> > +               have problems building with custom buildflags.
> >
> >        *makeflags*;;
> >                Allow the use of user-specific makeflags during build as specified
> > diff --git a/doc/makepkg.conf.5.txt b/doc/makepkg.conf.5.txt
> > index 5970946..de2b4b4 100644
> > --- a/doc/makepkg.conf.5.txt
> > +++ b/doc/makepkg.conf.5.txt
> > @@ -51,6 +51,9 @@ Options
> >        A string such as ``i686-pc-linux-gnu'', do not touch unless you know what
> >        you are doing. This can be commented out by most users if desired.
> >
> > +**CPPFLAGS=**"cppflags"::
> > +       Flags used for the C preprocessor; see CFLAGS for more info.
> > +
> >  **CFLAGS=**"cflags"::
> >        Flags used for the C compiler. This is a key part to the use of makepkg.
> >        Usually several options are specified, and the most common string resembles
> The organization/readability of this is getting kinda crappy. CPPFLAGS
> refers down, CXXFLAGS refers up, etc. Also, where the heck did this
> "key part to the user of makepkg" come from? That seems a bit
> overzealous.
> 
> We may just want to stop trying to do too much here and say "read the
> documentation of your C compiler for more info." (or C++ in the CXX
> case).
> 

Nitpicking, but CFLAGS and such are an artifact of make, not the
compiler. Sadly, neither gcc(1) or make(1) mention any of these.
make(1p) mentions _some_ of these without ever really explaining what
purpose they serve. I'm all for cleaning this up and saying "look at X
for more detail", but we need to actually have an X for people to look
at.

> > diff --git a/etc/makepkg.conf.in b/etc/makepkg.conf.in
> > index d8117a3..51df493 100644
> > --- a/etc/makepkg.conf.in
> > +++ b/etc/makepkg.conf.in
> > @@ -27,6 +27,7 @@ CARCH="@CARCH@"
> >  CHOST="@CHOST@"
> >
> >  #-- Compiler and Linker Flags
> > +#CPPFLAGS=""
> >  #CFLAGS="-O2 -pipe"
> >  #CXXFLAGS="-O2 -pipe"
> >  #LDFLAGS=""
> > diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> > index d36dbd6..c7baa97 100644
> > --- a/scripts/makepkg.sh.in
> > +++ b/scripts/makepkg.sh.in
> > @@ -955,7 +955,7 @@ run_function() {
> >
> >        # clear user-specified buildflags if requested
> >        if check_option "buildflags" "n"; then
> > -               unset CFLAGS CXXFLAGS LDFLAGS
> > +               unset CPPFLAGS CFLAGS CXXFLAGS LDFLAGS
> >        fi
> >
> >        # clear user-specified makeflags if requested
> > @@ -967,7 +967,7 @@ run_function() {
> >        cd_safe "$srcdir"
> >
> >        # ensure all necessary build variables are exported
> > -       export CFLAGS CXXFLAGS LDFLAGS MAKEFLAGS CHOST
> > +       export CPPFLAGS CFLAGS CXXFLAGS LDFLAGS MAKEFLAGS CHOST
> >        # save our shell options so pkgfunc() can't override what we need
> >        local shellopts=$(shopt -p)
> >
> > --
> > 1.7.10.1
> >
> >
> 


More information about the pacman-dev mailing list