All pastes #285161 Raw Edit

Unnamed

public text v1 · immutable
#285161 ·published 2006-12-19 17:33 UTC
rendered paste body
append-cflags() {
	export CFLAGS="${CFLAGS} $*"
	export CXXFLAGS="${CXXFLAGS} $*"
	return 0
}

package-cflags() {
	local target flags flag i;

	# bail if file does not exist or is not readable.
	[ -r ${ROOT}/etc/portage/package.cflags ] || return 0

	# need bash >= 3
	if [ "${BASH_VERSINFO[0]}" -le 2 ]; then
		eecho "Need bash3 for this bashrc script to work"
		return 0
	fi

	while read -a target; do
		if [[ ${target[@]%%#*} ]]; then

			# valid syntax no >=<! operators
			# category CFLAGS
			# category/packagename CFLAGS
			if [[ ${target%%#*} && ${target%% *} =~ "^(${CATEGORY}|${CATEGORY}/${PN})\>" ]]; then
				skip=0
				if [[ ${target} != ${CATEGORY} ]] ; then
					if [[ ${target} != ${CATEGORY}/${PN} ]] ; then
						skip=1
					fi
				fi
				if [ "${skip}" == 0 ] ; then
					flags=(${target[@]:1})
					if [[ ${flags[@]} =~ 'CFLAGS' ]]; then
						for (( i = 0; i < ${#flags[@]}; i++ )); do
							if [[ ${flags[$i]} =~ 'CFLAGS' ]]; then
								appened-cflags $(eval echo "${flags[$i]}")
								unset flags[$i]
							fi
						done
					fi
					for flag in ${flags[@]}; do
						if [[ ${CFLAGS} =~ ${flag} ]]; then
							continue 1
						else
							append-cflags "${flag}"
						fi
					done
					export -n C{,XX}FLAGS
					#eecho "Using package.cflags entry for target ${target} for ${CATEGORY}/${PN}"
				fi
			fi
		fi
	done < ${ROOT}/etc/portage/package.cflags
}