Update buildsys

This commit is contained in:
Jonathan Schleifer 2018-01-21 21:52:58 +01:00
parent 69a336682e
commit a156dab77d
No known key found for this signature in database
GPG key ID: 28D65178B37F33E3
2 changed files with 144 additions and 81 deletions

View file

@ -1,6 +1,7 @@
dnl dnl
dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017 dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017,
dnl Jonathan Schleifer <js@heap.zone> dnl 2018
dnl Jonathan Schleifer <js@heap.zone>
dnl dnl
dnl https://heap.zone/git/?p=buildsys.git dnl https://heap.zone/git/?p=buildsys.git
dnl dnl
@ -22,6 +23,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)
@ -267,6 +281,9 @@ AC_DEFUN([BUILDSYS_FRAMEWORK], [
AC_SUBST(FRAMEWORK_LDFLAGS) AC_SUBST(FRAMEWORK_LDFLAGS)
AC_SUBST(FRAMEWORK_LDFLAGS_INSTALL_NAME) AC_SUBST(FRAMEWORK_LDFLAGS_INSTALL_NAME)
$1
;; ;;
esac esac
]) ])

View file

@ -1,7 +1,7 @@
# #
# Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, # Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
# 2017 # 2017, 2018
# Jonathan Schleifer <js@heap.zone> # Jonathan Schleifer <js@heap.zone>
# #
# https://heap.zone/git/?p=buildsys.git # https://heap.zone/git/?p=buildsys.git
# #
@ -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@
@ -89,6 +90,7 @@ datarootdir = @datarootdir@
datadir = @datadir@ datadir = @datadir@
includedir = @includedir@ includedir = @includedir@
includesubdir ?= ${PACKAGE_NAME} includesubdir ?= ${PACKAGE_NAME}
INSTALL_INCLUDES ?= yes
localedir = @localedir@ localedir = @localedir@
localename ?= ${PACKAGE_NAME} localename ?= ${PACKAGE_NAME}
mandir = @mandir@ mandir = @mandir@
@ -122,7 +124,7 @@ all:
${MAKE} pre-all ${MAKE} pre-all
${MAKE} subdirs ${MAKE} subdirs
${MAKE} depend ${MAKE} depend
${MAKE} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${SHARED_LIB} ${SHARED_LIB_NOINST} ${MORPHOS_LIB} ${MORPHOS_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} ${JARFILE} locales ${MAKE} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${SHARED_LIB} ${SHARED_LIB_NOINST} ${FRAMEWORK} ${FRAMEWORK_NOINST} ${MORPHOS_LIB} ${MORPHOS_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} ${JARFILE} locales
${MAKE} subdirs-after ${MAKE} subdirs-after
${MAKE} post-all ${MAKE} post-all
@ -251,7 +253,7 @@ ${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
${LINK_FAILED}; \ ${LINK_FAILED}; \
fi fi
${FRAMEWORK}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA} ${FRAMEWORK} ${FRAMEWORK_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
rm -fr $@ rm -fr $@
${MKDIR_P} $@ ${MKDIR_P} $@
${MAKE} INSTALL_INCLUDES_IF_SUBDIR=${includesubdir} INSTALL_INCLUDES_DESTINATION=$$PWD/$@/Headers install-includes ${MAKE} INSTALL_INCLUDES_IF_SUBDIR=${includesubdir} INSTALL_INCLUDES_DESTINATION=$$PWD/$@/Headers install-includes
@ -302,78 +304,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 $@ ${LIB_OBJS} ${LIB_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}
@ -676,6 +696,17 @@ install: all install-extra
fi \ fi \
done done
for i in "" ${FRAMEWORK}; do \
test x"$$i" = x"" && continue; \
${INSTALL_STATUS}; \
rm -fr ${DESTDIR}${prefix}/Library/Frameworks/$$i; \
if ${MKDIR_P} ${DESTDIR}${prefix}/Library/Frameworks && cp -R $$i ${DESTDIR}${prefix}/Library/Frameworks/; then \
${INSTALL_OK}; \
else \
${INSTALL_FAILED}; \
fi \
done
for i in "" ${STATIC_LIB} ${STATIC_PIC_LIB}; do \ for i in "" ${STATIC_LIB} ${STATIC_PIC_LIB}; do \
test x"$$i" = x"" && continue; \ test x"$$i" = x"" && continue; \
${INSTALL_STATUS}; \ ${INSTALL_STATUS}; \
@ -716,15 +747,17 @@ install: all install-extra
fi \ fi \
done done
for i in "" ${INCLUDES}; do \ if test x"${INSTALL_INCLUDES}" = x"yes"; then \
test x"$$i" = x"" && continue; \ for i in "" ${INCLUDES}; do \
${INSTALL_STATUS}; \ test x"$$i" = x"" && continue; \
if ${MKDIR_P} ${DESTDIR}${includedir}/${includesubdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${includedir}/${includesubdir}/$$i; then \ ${INSTALL_STATUS}; \
${INSTALL_OK}; \ if ${MKDIR_P} ${DESTDIR}${includedir}/${includesubdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${includedir}/${includesubdir}/$$i; then \
else \ ${INSTALL_OK}; \
${INSTALL_FAILED}; \ else \
fi \ ${INSTALL_FAILED}; \
done fi \
done \
fi
for i in "" ${MO_FILES}; do \ for i in "" ${MO_FILES}; do \
test x"$$i" = x"" && continue; \ test x"$$i" = x"" && continue; \
@ -793,6 +826,19 @@ uninstall: uninstall-extra
fi; \ fi; \
done done
for i in "" ${FRAMEWORK}; do \
test x"$$i" = x"" && continue; \
if test -d ${DESTDIR}${prefix}/Library/Frameworks/$$i; then \
if rm -fr ${DESTDIR}${prefix}/Library/Frameworks/$$i; then \
${DELETE_OK}; \
else \
${DELETE_FAILED}; \
fi \
fi \
done
-rmdir ${DESTDIR}${prefix}/Library/Frameworks >/dev/null 2>&1
-rmdir ${DESTDIR}${prefix}/Library >/dev/null 2>&1
for i in "" ${STATIC_LIB} ${STATIC_PIC_LIB}; do \ for i in "" ${STATIC_LIB} ${STATIC_PIC_LIB}; do \
test x"$$i" = x"" && continue; \ test x"$$i" = x"" && continue; \
if test -f ${DESTDIR}${libdir}/$$i; then \ if test -f ${DESTDIR}${libdir}/$$i; then \