Annotation of embedaddon/libiconv/srcm4/relocatable.m4, revision 1.1.1.2
1.1.1.2 ! misho 1: # relocatable.m4 serial 17
! 2: dnl Copyright (C) 2003, 2005-2007, 2009-2011 Free Software Foundation, Inc.
1.1 misho 3: dnl This file is free software; the Free Software Foundation
4: dnl gives unlimited permission to copy and/or distribute it,
5: dnl with or without modifications, as long as this notice is preserved.
6:
7: dnl From Bruno Haible.
8:
9: dnl gl_RELOCATABLE([RELOCWRAPPER-DIR])
10: dnl ----------------------------------------------------------
11: dnl Support for relocatable programs.
12: dnl Supply RELOCWRAPPER-DIR as the directory where relocwrapper.c may be found.
13: AC_DEFUN([gl_RELOCATABLE],
14: [
15: AC_REQUIRE([gl_RELOCATABLE_BODY])
16: gl_RELOCATABLE_LIBRARY
17: : ${RELOCATABLE_CONFIG_H_DIR='$(top_builddir)'}
18: RELOCATABLE_SRC_DIR="\$(top_srcdir)/$gl_source_base"
19: RELOCATABLE_BUILD_DIR="\$(top_builddir)/$gl_source_base"
20: ])
21: dnl The guts of gl_RELOCATABLE. Needs to be expanded only once.
22: AC_DEFUN([gl_RELOCATABLE_BODY],
23: [
24: AC_REQUIRE([AC_PROG_INSTALL])
25: dnl This AC_BEFORE invocation leads to unjustified autoconf warnings
26: dnl when gl_RELOCATABLE_BODY is invoked more than once.
27: dnl We need this AC_BEFORE because AC_PROG_INSTALL is documented to
28: dnl overwrite earlier settings of INSTALL and INSTALL_PROGRAM (even
29: dnl though in autoconf-2.52..2.60 it doesn't do so), but we want this
30: dnl macro's setting of INSTALL_PROGRAM to persist.
31: AC_BEFORE([AC_PROG_INSTALL],[gl_RELOCATABLE_BODY])
32: AC_REQUIRE([AC_LIB_LIBPATH])
33: AC_REQUIRE([gl_RELOCATABLE_LIBRARY_BODY])
34: is_noop=no
35: use_elf_origin_trick=no
1.1.1.2 ! misho 36: use_wrapper=no
1.1 misho 37: if test $RELOCATABLE = yes; then
38: # --enable-relocatable implies --disable-rpath
39: enable_rpath=no
40: AC_CHECK_HEADERS([mach-o/dyld.h])
41: AC_CHECK_FUNCS([_NSGetExecutablePath])
42: case "$host_os" in
43: mingw*) is_noop=yes ;;
44: linux*) use_elf_origin_trick=yes ;;
45: esac
46: if test $is_noop = yes; then
47: RELOCATABLE_LDFLAGS=:
48: AC_SUBST([RELOCATABLE_LDFLAGS])
49: else
50: if test $use_elf_origin_trick = yes; then
51: dnl Use the dynamic linker's support for relocatable programs.
52: case "$ac_aux_dir" in
53: /*) reloc_ldflags="$ac_aux_dir/reloc-ldflags" ;;
54: *) reloc_ldflags="\$(top_builddir)/$ac_aux_dir/reloc-ldflags" ;;
55: esac
56: RELOCATABLE_LDFLAGS="\"$reloc_ldflags\" \"\$(host)\" \"\$(RELOCATABLE_LIBRARY_PATH)\""
57: AC_SUBST([RELOCATABLE_LDFLAGS])
58: else
1.1.1.2 ! misho 59: use_wrapper=yes
1.1 misho 60: dnl Unfortunately we cannot define INSTALL_PROGRAM to a command
61: dnl consisting of more than one word - libtool doesn't support this.
62: dnl So we abuse the INSTALL_PROGRAM_ENV hook, originally meant for the
63: dnl 'install-strip' target.
64: INSTALL_PROGRAM_ENV="RELOC_LIBRARY_PATH_VAR=\"$shlibpath_var\" RELOC_LIBRARY_PATH_VALUE=\"\$(RELOCATABLE_LIBRARY_PATH)\" RELOC_PREFIX=\"\$(prefix)\" RELOC_DESTDIR=\"\$(DESTDIR)\" RELOC_COMPILE_COMMAND=\"\$(CC) \$(CPPFLAGS) \$(CFLAGS) \$(LDFLAGS)\" RELOC_SRCDIR=\"\$(RELOCATABLE_SRC_DIR)\" RELOC_BUILDDIR=\"\$(RELOCATABLE_BUILD_DIR)\" RELOC_CONFIG_H_DIR=\"\$(RELOCATABLE_CONFIG_H_DIR)\" RELOC_EXEEXT=\"\$(EXEEXT)\" RELOC_STRIP_PROG=\"\$(RELOCATABLE_STRIP)\" RELOC_INSTALL_PROG=\"$INSTALL_PROGRAM\""
65: AC_SUBST([INSTALL_PROGRAM_ENV])
66: case "$ac_aux_dir" in
67: /*) INSTALL_PROGRAM="$ac_aux_dir/install-reloc" ;;
68: *) INSTALL_PROGRAM="\$(top_builddir)/$ac_aux_dir/install-reloc" ;;
69: esac
70: fi
71: fi
72: fi
73: AM_CONDITIONAL([RELOCATABLE_VIA_LD],
74: [test $is_noop = yes || test $use_elf_origin_trick = yes])
1.1.1.2 ! misho 75: AM_CONDITIONAL([RELOCATABLE_VIA_WRAPPER], [test $use_wrapper = yes])
1.1 misho 76:
77: dnl RELOCATABLE_LIBRARY_PATH can be set in configure.ac. Default is empty.
78: AC_SUBST([RELOCATABLE_LIBRARY_PATH])
1.1.1.2 ! misho 79:
1.1 misho 80: AC_SUBST([RELOCATABLE_CONFIG_H_DIR])
81: AC_SUBST([RELOCATABLE_SRC_DIR])
82: AC_SUBST([RELOCATABLE_BUILD_DIR])
1.1.1.2 ! misho 83:
! 84: dnl Ensure RELOCATABLE_STRIP is defined in Makefiles (at least those
! 85: dnl generated by automake), with value ':'.
! 86: RELOCATABLE_STRIP=':'
! 87: AC_SUBST([RELOCATABLE_STRIP])
1.1 misho 88: ])
89:
90: dnl Determine the platform dependent parameters needed to use relocatability:
91: dnl shlibpath_var.
92: AC_DEFUN([AC_LIB_LIBPATH],
93: [
94: AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD
95: AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
96: AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
97: AC_CACHE_CHECK([for shared library path variable], [acl_cv_libpath], [
98: LD="$LD" \
99: ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.libpath" "$host" > conftest.sh
100: . ./conftest.sh
101: rm -f ./conftest.sh
102: acl_cv_libpath=${acl_cv_shlibpath_var:-none}
103: ])
104: shlibpath_var="$acl_cv_shlibpath_var"
105: ])
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>