Use Apple libtool if build and host are Darwin
This allows combining fat .a files.
This commit is contained in:
parent
d49633ffc4
commit
408f3121a3
2 changed files with 98 additions and 66 deletions
151
buildsys.mk.in
151
buildsys.mk.in
|
@ -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,78 +303,96 @@ ${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 $@
|
||||||
out="$@"; \
|
if test x"${BUILD_AND_HOST_ARE_DARWIN}" = x"yes"; then \
|
||||||
objs=""; \
|
if /usr/bin/libtool -static -o $@ ${OBJS} ${OBJS_EXTRA}; then \
|
||||||
ars=""; \
|
${LINK_OK}; \
|
||||||
for i in ${OBJS} ${OBJS_EXTRA}; do \
|
else \
|
||||||
case $$i in \
|
${LINK_FAILED}; \
|
||||||
*.a) \
|
rm -f $@; \
|
||||||
ars="$$ars $$i" \
|
fi; \
|
||||||
;; \
|
|
||||||
*.o) \
|
|
||||||
objs="$$objs $$i" \
|
|
||||||
;; \
|
|
||||||
esac \
|
|
||||||
done; \
|
|
||||||
for i in $$ars; do \
|
|
||||||
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
|
|
||||||
rm -fr $$dir; \
|
|
||||||
mkdir -p $$dir; \
|
|
||||||
cd $$dir; \
|
|
||||||
${AR} x ../$$i; \
|
|
||||||
for j in *.o; do \
|
|
||||||
objs="$$objs $$dir/$$j"; \
|
|
||||||
done; \
|
|
||||||
cd ..; \
|
|
||||||
done; \
|
|
||||||
if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
|
|
||||||
${LINK_OK}; \
|
|
||||||
else \
|
else \
|
||||||
${LINK_FAILED}; \
|
out="$@"; \
|
||||||
rm -f $@; \
|
objs=""; \
|
||||||
fi; \
|
ars=""; \
|
||||||
for i in $$ars; do \
|
for i in ${OBJS} ${OBJS_EXTRA}; do \
|
||||||
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
|
case $$i in \
|
||||||
rm -fr $$dir; \
|
*.a) \
|
||||||
done
|
ars="$$ars $$i" \
|
||||||
|
;; \
|
||||||
|
*.o) \
|
||||||
|
objs="$$objs $$i" \
|
||||||
|
;; \
|
||||||
|
esac \
|
||||||
|
done; \
|
||||||
|
for i in $$ars; do \
|
||||||
|
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
|
||||||
|
rm -fr $$dir; \
|
||||||
|
mkdir -p $$dir; \
|
||||||
|
cd $$dir; \
|
||||||
|
${AR} x ../$$i; \
|
||||||
|
for j in *.o; do \
|
||||||
|
objs="$$objs $$dir/$$j"; \
|
||||||
|
done; \
|
||||||
|
cd ..; \
|
||||||
|
done; \
|
||||||
|
if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
|
||||||
|
${LINK_OK}; \
|
||||||
|
else \
|
||||||
|
${LINK_FAILED}; \
|
||||||
|
rm -f $@; \
|
||||||
|
fi; \
|
||||||
|
for i in $$ars; do \
|
||||||
|
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
|
||||||
|
rm -fr $$dir; \
|
||||||
|
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 $@
|
||||||
out="$@"; \
|
if test x"${BUILD_AND_HOST_ARE_DARWIN}" = x"yes"; then \
|
||||||
objs=""; \
|
if /usr/bin/libtool -static -o $@ ${OBJS} ${OBJS_EXTRA}; then \
|
||||||
ars=""; \
|
${LINK_OK}; \
|
||||||
for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \
|
else \
|
||||||
case $$i in \
|
${LINK_FAILED}; \
|
||||||
*.a) \
|
rm -f $@; \
|
||||||
ars="$$ars $$i" \
|
fi; \
|
||||||
;; \
|
|
||||||
*.o) \
|
|
||||||
objs="$$objs $$i" \
|
|
||||||
;; \
|
|
||||||
esac \
|
|
||||||
done; \
|
|
||||||
for i in $$ars; do \
|
|
||||||
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
|
|
||||||
rm -fr $$dir; \
|
|
||||||
mkdir -p $$dir; \
|
|
||||||
cd $$dir; \
|
|
||||||
${AR} x ../$$i; \
|
|
||||||
for j in *.o; do \
|
|
||||||
objs="$$objs $$dir/$$j"; \
|
|
||||||
done; \
|
|
||||||
cd ..; \
|
|
||||||
done; \
|
|
||||||
if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
|
|
||||||
${LINK_OK}; \
|
|
||||||
else \
|
else \
|
||||||
${LINK_FAILED}; \
|
out="$@"; \
|
||||||
rm -f $@; \
|
objs=""; \
|
||||||
fi; \
|
ars=""; \
|
||||||
for i in $$ars; do \
|
for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \
|
||||||
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
|
case $$i in \
|
||||||
rm -fr $$dir; \
|
*.a) \
|
||||||
done
|
ars="$$ars $$i" \
|
||||||
|
;; \
|
||||||
|
*.o) \
|
||||||
|
objs="$$objs $$i" \
|
||||||
|
;; \
|
||||||
|
esac \
|
||||||
|
done; \
|
||||||
|
for i in $$ars; do \
|
||||||
|
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
|
||||||
|
rm -fr $$dir; \
|
||||||
|
mkdir -p $$dir; \
|
||||||
|
cd $$dir; \
|
||||||
|
${AR} x ../$$i; \
|
||||||
|
for j in *.o; do \
|
||||||
|
objs="$$objs $$dir/$$j"; \
|
||||||
|
done; \
|
||||||
|
cd ..; \
|
||||||
|
done; \
|
||||||
|
if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
|
||||||
|
${LINK_OK}; \
|
||||||
|
else \
|
||||||
|
${LINK_FAILED}; \
|
||||||
|
rm -f $@; \
|
||||||
|
fi; \
|
||||||
|
for i in $$ars; do \
|
||||||
|
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
|
||||||
|
rm -fr $$dir; \
|
||||||
|
done; \
|
||||||
|
fi
|
||||||
|
|
||||||
locales: ${MO_FILES}
|
locales: ${MO_FILES}
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue