configure.ac: Do the dolt
Use dolt instead of libtool whereever practical. See: http://lists.debian.org/debian-devel/2008/04/msg00286.html
This commit is contained in:
		
							parent
							
								
									b19027fbae
								
							
						
					
					
						commit
						6d031cbdef
					
				
							
								
								
									
										141
									
								
								acinclude.m4
								
								
								
								
							
							
						
						
									
										141
									
								
								acinclude.m4
								
								
								
								
							|  | @ -1,3 +1,144 @@ | |||
| dnl dolt, a replacement for libtool | ||||
| dnl Copyright © 2007-2008 Josh Triplett <josh@freedesktop.org> | ||||
| dnl Copying and distribution of this file, with or without modification, | ||||
| dnl are permitted in any medium without royalty provided the copyright | ||||
| dnl notice and this notice are preserved. | ||||
| 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: 198a3026b347b9220a2f2e2ae23a3049c35af262 | ||||
| 
 | ||||
| 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 | ||||
|     dolt_supported=no | ||||
| fi | ||||
| if test x$GCC != xyes; then | ||||
|     dolt_supported=no | ||||
| fi | ||||
| case $host in | ||||
| i?86-*-linux*|x86_64-*-linux*) ;; | ||||
| *) dolt_supported=no ;; | ||||
| esac | ||||
| if test x$dolt_supported = xno ; then | ||||
|     AC_MSG_RESULT([no, falling back to libtool]) | ||||
| else | ||||
|     AC_MSG_RESULT([yes, replacing libtool]) | ||||
| 
 | ||||
| dnl Start writing out doltcompile. | ||||
|     cat <<__DOLTCOMPILE__EOF__ >doltcompile | ||||
| #!$DOLT_BASH | ||||
| __DOLTCOMPILE__EOF__ | ||||
|     cat <<'__DOLTCOMPILE__EOF__' >>doltcompile | ||||
| args=("$[]@") | ||||
| for ((arg=0; arg<${#args@<:@@@:>@}; arg++)) ; do | ||||
|     if test x"${args@<:@$arg@:>@}" = x-o ; then | ||||
|         objarg=$((arg+1)) | ||||
|         break | ||||
|     fi | ||||
| done | ||||
| if test x$objarg = x ; then | ||||
|     echo 'Error: no -o on compiler command line' 1>&2 | ||||
|     exit 1 | ||||
| fi | ||||
| lo="${args@<:@$objarg@:>@}" | ||||
| obj="${lo%.lo}" | ||||
| if test x"$lo" = x"$obj" ; then | ||||
|     echo "Error: libtool object file name \"$lo\" does not end in .lo" 1>&2 | ||||
|     exit 1 | ||||
| fi | ||||
| objbase="${obj##*/}" | ||||
| __DOLTCOMPILE__EOF__ | ||||
| 
 | ||||
| dnl Write out shared compilation code. | ||||
|     if test x$enable_shared = xyes; then | ||||
|         cat <<'__DOLTCOMPILE__EOF__' >>doltcompile | ||||
| libobjdir="${obj%$objbase}.libs" | ||||
| if test ! -d "$libobjdir" ; then | ||||
|     mkdir "$libobjdir" | ||||
|     mkdir_ret=$? | ||||
|     if test "$mkdir_ret" -ne 0 && test ! -d "$libobjdir" ; then | ||||
|         exit $mkdir_ret | ||||
|     fi | ||||
| fi | ||||
| pic_object="$libobjdir/$objbase.o" | ||||
| args@<:@$objarg@:>@="$pic_object" | ||||
| "${args@<:@@@:>@}" -fPIC -DPIC | ||||
| __DOLTCOMPILE__EOF__ | ||||
|     fi | ||||
| 
 | ||||
| dnl Write out static compilation code. | ||||
| dnl Avoid duplicate compiler output if also building shared objects. | ||||
|     if test x$enable_static = xyes; then | ||||
|         cat <<'__DOLTCOMPILE__EOF__' >>doltcompile | ||||
| non_pic_object="$obj.o" | ||||
| args@<:@$objarg@:>@="$non_pic_object" | ||||
| __DOLTCOMPILE__EOF__ | ||||
|         if test x$enable_shared = xyes; then | ||||
|             cat <<'__DOLTCOMPILE__EOF__' >>doltcompile | ||||
| "${args@<:@@@:>@}" >/dev/null 2>&1 | ||||
| __DOLTCOMPILE__EOF__ | ||||
|         else | ||||
|             cat <<'__DOLTCOMPILE__EOF__' >>doltcompile | ||||
| "${args@<:@@@:>@}" | ||||
| __DOLTCOMPILE__EOF__ | ||||
|         fi | ||||
|     fi | ||||
| 
 | ||||
| dnl Write out the code to write the .lo file. | ||||
| dnl The second line of the .lo file must match "^# Generated by .*libtool" | ||||
|     cat <<'__DOLTCOMPILE__EOF__' >>doltcompile | ||||
| { | ||||
| echo "# $lo - a libtool object file" | ||||
| echo "# Generated by doltcompile, not libtool" | ||||
| __DOLTCOMPILE__EOF__ | ||||
| 
 | ||||
|     if test x$enable_shared = xyes; then | ||||
|         cat <<'__DOLTCOMPILE__EOF__' >>doltcompile | ||||
| echo "pic_object='$pic_object'" | ||||
| __DOLTCOMPILE__EOF__ | ||||
|     else | ||||
|         cat <<'__DOLTCOMPILE__EOF__' >>doltcompile | ||||
| echo pic_object=none | ||||
| __DOLTCOMPILE__EOF__ | ||||
|     fi | ||||
| 
 | ||||
|     if test x$enable_static = xyes; then | ||||
|         cat <<'__DOLTCOMPILE__EOF__' >>doltcompile | ||||
| echo "non_pic_object='$non_pic_object'" | ||||
| __DOLTCOMPILE__EOF__ | ||||
|     else | ||||
|         cat <<'__DOLTCOMPILE__EOF__' >>doltcompile | ||||
| echo non_pic_object=none | ||||
| __DOLTCOMPILE__EOF__ | ||||
|     fi | ||||
| 
 | ||||
|     cat <<'__DOLTCOMPILE__EOF__' >>doltcompile | ||||
| } > "$lo" | ||||
| __DOLTCOMPILE__EOF__ | ||||
| 
 | ||||
| dnl Done writing out doltcompile; substitute it for libtool compilation. | ||||
|     chmod +x doltcompile | ||||
|     LTCOMPILE='$(top_builddir)/doltcompile $(COMPILE)' | ||||
|     AC_SUBST(LTCOMPILE) | ||||
|     LTCXXCOMPILE='$(top_builddir)/doltcompile $(CXXCOMPILE)' | ||||
|     AC_SUBST(LTCXXCOMPILE) | ||||
| fi | ||||
| # end dolt | ||||
| ]) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ##### http://autoconf-archive.cryp.to/ac_define_dir.html | ||||
| # | ||||
| # SYNOPSIS | ||||
|  |  | |||
|  | @ -58,6 +58,7 @@ AC_PROG_LN_S | |||
| AC_LIBTOOL_WIN32_DLL | ||||
| AC_DISABLE_STATIC | ||||
| AC_PROG_LIBTOOL | ||||
| DOLT | ||||
| AC_PROG_MAKE_SET | ||||
| PKG_PROG_PKG_CONFIG | ||||
| AC_PROG_LEX | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue