Update buildsys
This commit is contained in:
parent
69a336682e
commit
a156dab77d
2 changed files with 144 additions and 81 deletions
|
@ -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
|
||||||
])
|
])
|
||||||
|
|
204
buildsys.mk.in
204
buildsys.mk.in
|
@ -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 \
|
||||||
|
|
Reference in a new issue