Use Apple libtool if build and host are Darwin

This allows combining fat .a files.
This commit is contained in:
Jonathan Schleifer 2018-01-19 01:17:05 +01:00
parent d49633ffc4
commit 408f3121a3
No known key found for this signature in database
GPG key ID: 28D65178B37F33E3
2 changed files with 98 additions and 66 deletions

View file

@ -80,6 +80,7 @@ JAVAC = @JAVAC@
JAVACFLAGS = @JAVACFLAGS@ JAVACFLAGS = @JAVACFLAGS@
JAR = @JAR@ JAR = @JAR@
WINDRES = @WINDRES@ WINDRES = @WINDRES@
BUILD_AND_HOST_ARE_DARWIN = @BUILD_AND_HOST_ARE_DARWIN@
prefix = @prefix@ prefix = @prefix@
exec_prefix = @exec_prefix@ exec_prefix = @exec_prefix@
bindir = @bindir@ bindir = @bindir@
@ -302,6 +303,14 @@ ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA} ${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
${LINK_STATUS} ${LINK_STATUS}
rm -f $@ rm -f $@
if test x"${BUILD_AND_HOST_ARE_DARWIN}" = x"yes"; then \
if /usr/bin/libtool -static -o $@ ${OBJS} ${OBJS_EXTRA}; then \
${LINK_OK}; \
else \
${LINK_FAILED}; \
rm -f $@; \
fi; \
else \
out="$@"; \ out="$@"; \
objs=""; \ objs=""; \
ars=""; \ ars=""; \
@ -335,11 +344,20 @@ ${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
for i in $$ars; do \ for i in $$ars; do \
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \ dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
rm -fr $$dir; \ rm -fr $$dir; \
done done; \
fi
${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
${LINK_STATUS} ${LINK_STATUS}
rm -f $@ rm -f $@
if test x"${BUILD_AND_HOST_ARE_DARWIN}" = x"yes"; then \
if /usr/bin/libtool -static -o $@ ${OBJS} ${OBJS_EXTRA}; then \
${LINK_OK}; \
else \
${LINK_FAILED}; \
rm -f $@; \
fi; \
else \
out="$@"; \ out="$@"; \
objs=""; \ objs=""; \
ars=""; \ ars=""; \
@ -373,7 +391,8 @@ ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_E
for i in $$ars; do \ for i in $$ars; do \
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \ dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
rm -fr $$dir; \ rm -fr $$dir; \
done done; \
fi
locales: ${MO_FILES} locales: ${MO_FILES}

View file

@ -22,6 +22,19 @@ dnl POSSIBILITY OF SUCH DAMAGE.
dnl dnl
AC_DEFUN([BUILDSYS_INIT], [ AC_DEFUN([BUILDSYS_INIT], [
AC_REQUIRE([AC_CANONICAL_BUILD])
AC_REQUIRE([AC_CANONICAL_HOST])
case "$build_os" in
darwin*)
case "$host_os" in
darwin*)
AC_SUBST(BUILD_AND_HOST_ARE_DARWIN, yes)
;;
esac
;;
esac
AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS_PRE([
AC_SUBST(CC_DEPENDS, $GCC) AC_SUBST(CC_DEPENDS, $GCC)
AC_SUBST(CXX_DEPENDS, $GXX) AC_SUBST(CXX_DEPENDS, $GXX)