[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