diff options
Diffstat (limited to '')
| -rw-r--r-- | Makefile.am | 1 | ||||
| -rw-r--r-- | build-aux/libtool-patch.sed | 68 | ||||
| -rw-r--r-- | build-aux/ltmain.sh | 13 | ||||
| -rw-r--r-- | configure.ac | 38 | 
4 files changed, 107 insertions, 13 deletions
| diff --git a/Makefile.am b/Makefile.am index 18484022..71046b2f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -36,6 +36,7 @@ DISTCHECK_CONFIGURE_FLAGS =  EXTRA_DIST = autogen.sh autogen.rc gpgme.spec.in  \               ChangeLog-2011 m4/ChangeLog-2011     \ +             build-aux/libtool-patch.sed          \               conf/whatisthis VERSION LICENSES  # This artificial line is to put a dependency to conf/config.h for 'all' diff --git a/build-aux/libtool-patch.sed b/build-aux/libtool-patch.sed new file mode 100644 index 00000000..ac5a3bad --- /dev/null +++ b/build-aux/libtool-patch.sed @@ -0,0 +1,68 @@ +# +# This is a sed script to patch the generated libtool, +# which works well against both of libtool 2.4.2 and 2.4.7. +# +# You may use this work under the terms of a Creative Commons CC0 1.0 +# License/Waiver. +# +# CC0 Public Domain Dedication +# https://creativecommons.org/publicdomain/zero/1.0/ + +# +# This sed script applys two hunks of the patch: +# +#     Part1: after the comment "# bleh windows" +#     Part2: after the comment "#extension on DOS 8.3..." +# +# Only when those two parts are patched correctly, it exits with 0 or +# else, it exits with 1 +# + +# Find the part 1, by the comment +/^[ \t]*# bleh windows$/b part1_start +# Not found the part1, raise an error +$ q1 +b + +:part1_start +n +# The first line in the part 1 must be the begining of the case statement. +/^[ \t]*case \$host in$/! q1 +n +# Insert the entry for x86_64-*mingw32*, for modified versuffix. +i\ +	      x86_64-*mingw32*) +i\ +		func_arith $current - $age +i\ +		major=$func_arith_result +i\ +		versuffix="6-$major" +i\ +		;; +:part1_0 +# Find the end of the case statement +/^[ \t]*esac$/b find_part2 +# Not found the end of the case statement, raise an error +$ q1 +n +b part1_0 + +:find_part2 +/^[ \t]*# extension on DOS 8.3 file.*systems.$/b part2_process +# Not found the part2, raise an error +$ q1 +n +b find_part2 + +:part2_process +$ q1 +s/^[ \t]*\(versuffix=\)\(.*\)\(-$major\)\(.*\)$/\t  case \$host in\n\t  x86_64-*mingw32*)\n\t    \1\26\3\4\n\t    ;;\n\t  *)\n\t    \1\2\3\4\n\t    ;;\n\t  esac/ +t part2_done +n +b part2_process + +:part2_done +$ q0 +n +b part2_done diff --git a/build-aux/ltmain.sh b/build-aux/ltmain.sh index c3bcdc06..77963a93 100644 --- a/build-aux/ltmain.sh +++ b/build-aux/ltmain.sh @@ -6766,11 +6766,6 @@ func_mode_link ()  	    elif test -n "$soname_spec"; then  	      # bleh windows  	      case $host in -              x86_64-*mingw32*) -                func_arith $current - $age -		major=$func_arith_result -		versuffix="6-$major" -		;;  	      *cygwin* | mingw* | *cegcc*)  	        func_arith $current - $age  		major=$func_arith_result @@ -7504,14 +7499,6 @@ func_mode_link ()  	  func_arith $current - $age  	  major=$func_arith_result  	  versuffix="-$major" -          case $host in -          x86_64-*mingw32*) -             versuffix="6-$major" -             ;; -          *) -             versuffix="-$major" -             ;; -          esac  	  ;;  	*) diff --git a/configure.ac b/configure.ac index d7396a27..7ddb1b4f 100644 --- a/configure.ac +++ b/configure.ac @@ -206,6 +206,44 @@ esac  AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes") +# +# Specify how we support our local modification of libtool for Windows +# 64-bit.  Options are: +# +# (1) apply: when appying patch fails, it results failure of entire build +# (2) never: never apply the patch (no try) +# (3) try: use patched if it goes well, use original if fails +# +AC_ARG_WITH([libtool-modification], +  AS_HELP_STRING([--with-libtool-modification=apply|never|try], +                 [how to handle libtool modification (default=apply)]), +                 build_libtool_modification=$withval, +                 build_libtool_modification=apply) + +# +# Apply a patch (locally maintained one of ours) to libtool +# +case $host in +  x86_64-*mingw32*) +AC_CONFIG_COMMANDS([libtool-patch],[[ +  if test "$build_selection" = never; then +    echo "patch not applied" +  elif (mv -f libtool libtool.orig; \ +        sed -f $srcdir/build-aux/libtool-patch.sed libtool.orig >libtool); then +    echo "applied successfully" +  elif test "$build_selection" = try; then +    mv -f libtool.orig libtool +    echo "patch failed, thus, using original" +  else +    echo "patch failed" +    as_fn_exit 1 +  fi +]],[build_selection=$build_libtool_modification]) +  ;; +  *) +  ;; +esac +  GPG_DEFAULT=no  GPGSM_DEFAULT=no  GPGCONF_DEFAULT=no | 
