public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in dev-util/lafilefixer/files: lafilefixer-0.0.1
@ 2009-04-19 15:48 Peter Alfredsen (loki_val)
  0 siblings, 0 replies; only message in thread
From: Peter Alfredsen (loki_val) @ 2009-04-19 15:48 UTC (permalink / raw
  To: gentoo-commits

loki_val    09/04/19 15:48:22

  Added:                lafilefixer-0.0.1
  Log:
  Initial commit. Script and ebuild by me.
  (Portage version: 2.2_rc28/cvs/Linux x86_64)

Revision  Changes    Path
1.1                  dev-util/lafilefixer/files/lafilefixer-0.0.1

file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-util/lafilefixer/files/lafilefixer-0.0.1?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-util/lafilefixer/files/lafilefixer-0.0.1?rev=1.1&content-type=text/plain

Index: lafilefixer-0.0.1
===================================================================
#!/bin/bash

# Libtool does not support spaces in dependency_libs entries
# so we won't worry overly about them either.

fix_la_files() {
	if ! grep --help &> /dev/null
	then
		echo "Grep not functional. Aborting."
		return 1
	elif ! sed --help &> /dev/null
	then
		echo "Sed not functional. Aborting."
		return 1
	elif ! uniq --help &> /dev/null
	then
		echo "Uniq not functional. Aborting."
	elif ! sort --help &> /dev/null
	then
		echo "Sort not functional. Aborting."
	fi
	declare lafile
	for lafile in "$@"
	do
		local dependency_libs=""
		local inh_link_flags=""
		local new_dep_libs=""
		local libladir=""
		local librpath=""
		local dep_libs=""
		local lib=""

		dep_libs="$(grep '^dependency_libs=' $lafile)"
		dep_libs="${dep_libs#dependency_libs=\'}"
		dep_libs="${dep_libs%\'}"

		inh_link_flags="$(grep '^inherited_linker_flags=' $lafile)"
		inh_link_flags="${inh_link_flags#inherited_linker_flags=\'}"
		inh_link_flags="${inh_link_flags%\'}"


		for entry in $dep_libs
		do
			if [[ "${entry#-L}" != "${entry}" ]]
			then
				[[ ${entry/X11R6\/lib} != ${entry} ]] && entry="${entry/X11R6\/}"
				[[ ${entry/local\/lib} != ${entry} ]] && entry="${entry/local\/}"
				[[ ${entry/usr\/lib*\/pkgconfig\/..\/..} != ${entry} ]] && entry="${entry/\/lib*\/pkgconfig\/..\/..}"
				[[ ${entry/usr\/lib*\/pkgconfig\/..} != ${entry} ]] && entry="${entry/\/pkgconfig\/..}"
				libladir="${libladir} ${entry}"
			elif [[ "${entry#-R}" != "${entry}" ]]
			then
				librpath="${librpath} ${entry}"
			elif [[ "${entry#-l}" != "${entry}" ]]
			then
				new_dep_libs="${new_dep_libs} ${entry}"
			elif [[ "${entry%.la}" != "${entry}" ]]
			then
				libladir="${libladir} -L${entry%/*.la}"
				lib="${entry%.la}"
				lib="${lib##*\/lib}"
				lib="-l${lib}"
				new_dep_libs="${new_dep_libs} ${lib}"

			elif [[ "${entry}" == "-pthread" ]]
			then
				if [[ ${inh_link_flags} != *-pthread* ]]
				then
					inh_link_flags="${inh_link_flags} -pthread"
				fi
			else
				echo $lafile
				echo "${entry}"
				echo "Holy Moley, Dorothy, we ain't in Kansas and Luke, I'm not your father"
				return 1
			fi
		done
		libladir=( $(printf '%s' "$(for i in ${libladir}; do printf '%s\n' $i; done)"|sort|uniq) )
		librpath=( $(printf '%s' "$(for i in ${librpath}; do printf '%s\n' $i; done)"|sort|uniq) )
		new_dep_libs=( ${librpath[@]} ${libladir[@]} ${new_dep_libs} )
		new_dep_libs=" ${new_dep_libs[@]}"
		sed -i \
			-e "/^dependency_libs/ c\dependency_libs='${new_dep_libs}'" \
			-e "/^inherited_linker_flags/ c\inherited_linker_flags='${inh_link_flags}'" \
			${lafile}
	done
}

fix_la_files "$@"






^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2009-04-19 15:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-19 15:48 [gentoo-commits] gentoo-x86 commit in dev-util/lafilefixer/files: lafilefixer-0.0.1 Peter Alfredsen (loki_val)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox