[pacman-dev] [PATCH 2/2] Split prepare_buildenv() to libmakepkg scripts
Que Quotion
quequotion at gmail.com
Sun Nov 4 14:35:07 UTC 2018
>> + if check_option "debug" "y"; then
>> + DEBUG_CFLAGS+=" -fdebug-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}"
>> + DEBUG_CXXFLAGS+=" -fdebug-prefix-map=$srcdir=${DBGSRCDIR:-/usr/src/debug}"
>> + CFLAGS+=" $DEBUG_CFLAGS"
>> + CXXFLAGS+=" $DEBUG_CXXFLAGS"
>> + fi
>> +
>> + # ensure all necessary build variables are exported
>> + export CPPFLAGS CFLAGS CXXFLAGS LDFLAGS MAKEFLAGS CHOST
>> +}
>
>Why is this on its own, not in a dropin?
I needed feedback on this; since the debugflags don't have a corresponding build_option I wasn't sure what to do with them. Your feedback on the ccache/distcc section
gave me an idea.
>> +build_options+=('buildflags')
>
>If you look at the way we do this in other sections, this should
>probably be namespaced as buildenv_buildflags
I've kept the name as it was in the original implementation to avoid upsetting anyone who might be using this flag in a PKGBUILD or makepkg.conf.
>> +ccache() {
>> + if check_buildoption "ccache" "y"; then
>> + if ! type -p ccache >/dev/null; then
>> + error "$(gettext "Cannot find the %s binary required for compiler cache usage.")" "ccache"
>> + return 1
>> + fi
>> +
>> + if [ -d /usr/lib/ccache/bin ]; then
>> + export PATH="/usr/lib/ccache/bin:$PATH"
>> + ccache=1
>> + fi
>> + fi
>> +}
>
>ccache is now both a function name and a variable name...
>
>And the variable is declared as local, but outside of a function --
>instead, it's relying on the fact that libmakepkg typically sources this
>file while inside another function. I don't know whether we should be
>doing this...
>
>I'm inclined to think that at least ccache and distcc should be in the
>same dropin file and parsed as the same buildenv function as a result.
>Maybe buildenv_compiler.
I'd rather have them separate, as they may be used separately, but then I don't know how to ensure the ccache macro would be called before the distcc macro, so I put
them into compiler.sh.in
Attached patch is succesive, and should be applied after the previous. I can resubmit if you want a single patch.
More information about the pacman-dev
mailing list