diff options
author | Eric Anholt <eric@anholt.net> | 2009-03-13 15:29:45 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-03-13 16:15:44 -0700 |
commit | c3a82106a1a1a94c9e1e465c7dc0d828c1cbf50d (patch) | |
tree | afe86173fa7bfcce8d69eb9a69d8b757c217c98d | |
parent | e0aba04da0323efc079ce0a2b78139c4d0d49fa5 (diff) |
Move contributed m4 (dolt) to a subdirectory so we can include it with others.
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | m4/dolt.m4 (renamed from acinclude.m4) | 58 |
3 files changed, 50 insertions, 10 deletions
@@ -19,6 +19,7 @@ configure configure.lineno depcomp doltcompile +doltlibtool install-sh libtool ltmain.sh diff --git a/Makefile.am b/Makefile.am index d1118fe9..45b0c423 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,6 +19,7 @@ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. AUTOMAKE_OPTIONS = foreign +ACLOCAL_AMFLAGS = -I m4 SUBDIRS = uxa src man diff --git a/acinclude.m4 b/m4/dolt.m4 index 254b3529..1109bdb0 100644 --- a/acinclude.m4 +++ b/m4/dolt.m4 @@ -7,15 +7,12 @@ dnl dnl To use dolt, invoke the DOLT macro immediately after the libtool macros. dnl Optionally, copy this file into acinclude.m4, to avoid the need to have it dnl installed when running autoconf on your project. -dnl -dnl git snapshot: d91f2b4e9041538400e2703a2a6fbeecdb8ee27d + AC_DEFUN([DOLT], [ AC_REQUIRE([AC_CANONICAL_HOST]) # dolt, a replacement for libtool # Josh Triplett <josh@freedesktop.org> AC_PATH_PROG(DOLT_BASH, bash) -AC_MSG_CHECKING([if libtool sucks]) -AC_MSG_RESULT([yup, it does]) AC_MSG_CHECKING([if dolt supports this host]) dolt_supported=yes if test x$DOLT_BASH = x; then @@ -25,9 +22,16 @@ if test x$GCC != xyes; then dolt_supported=no fi case $host in -i?86-*-linux*|x86_64-*-linux*|powerpc-*-linux*) ;; -amd64-*-freebsd*|i?86-*-freebsd*|ia64-*-freebsd*) ;; -*) dolt_supported=no ;; +i?86-*-linux*|x86_64-*-linux*|powerpc-*-linux* \ +|amd64-*-freebsd*|i?86-*-freebsd*|ia64-*-freebsd*) + pic_options='-fPIC' + ;; +i?86-apple-darwin*) + pic_options='-fno-common' + ;; +*) + dolt_supported=no + ;; esac if test x$dolt_supported = xno ; then AC_MSG_RESULT([no, falling back to libtool]) @@ -75,7 +79,9 @@ if test ! -d "$libobjdir" ; then fi pic_object="$libobjdir/$objbase.o" args@<:@$objarg@:>@="$pic_object" -"${args@<:@@@:>@}" -fPIC -DPIC || exit $? +__DOLTCOMPILE__EOF__ + cat <<__DOLTCOMPILE__EOF__ >>doltcompile +"\${args@<:@@@:>@}" $pic_options -DPIC || exit \$? __DOLTCOMPILE__EOF__ fi @@ -107,7 +113,7 @@ __DOLTCOMPILE__EOF__ if test x$enable_shared = xyes; then cat <<'__DOLTCOMPILE__EOF__' >>doltcompile -echo "pic_object='$pic_object'" +echo "pic_object='.libs/${objbase}.o'" __DOLTCOMPILE__EOF__ else cat <<'__DOLTCOMPILE__EOF__' >>doltcompile @@ -117,7 +123,7 @@ __DOLTCOMPILE__EOF__ if test x$enable_static = xyes; then cat <<'__DOLTCOMPILE__EOF__' >>doltcompile -echo "non_pic_object='$non_pic_object'" +echo "non_pic_object='${objbase}.o'" __DOLTCOMPILE__EOF__ else cat <<'__DOLTCOMPILE__EOF__' >>doltcompile @@ -133,6 +139,38 @@ dnl Done writing out doltcompile; substitute it for libtool compilation. chmod +x doltcompile LTCOMPILE='$(top_builddir)/doltcompile $(COMPILE)' LTCXXCOMPILE='$(top_builddir)/doltcompile $(CXXCOMPILE)' + +dnl automake ignores LTCOMPILE and LTCXXCOMPILE when it has separate CFLAGS for +dnl a target, so write out a libtool wrapper to handle that case. +dnl Note that doltlibtool does not handle inferred tags or option arguments +dnl without '=', because automake does not use them. + cat <<__DOLTLIBTOOL__EOF__ > doltlibtool +#!$DOLT_BASH +__DOLTLIBTOOL__EOF__ + cat <<'__DOLTLIBTOOL__EOF__' >>doltlibtool +top_builddir_slash="${0%%doltlibtool}" +: ${top_builddir_slash:=./} +args=() +modeok=false +tagok=false +for arg in "$[]@"; do + case "$arg" in + --silent) ;; + --mode=compile) modeok=true ;; + --tag=CC|--tag=CXX) tagok=true ;; + *) args@<:@${#args[@]}@:>@="$arg" ;; + esac +done +if $modeok && $tagok ; then + . ${top_builddir_slash}doltcompile "${args@<:@@@:>@}" +else + exec ${top_builddir_slash}libtool "$[]@" +fi +__DOLTLIBTOOL__EOF__ + +dnl Done writing out doltlibtool; substitute it for libtool. + chmod +x doltlibtool + LIBTOOL='$(top_builddir)/doltlibtool' fi AC_SUBST(LTCOMPILE) AC_SUBST(LTCXXCOMPILE) |