Skip to content
This repository was archived by the owner on Dec 2, 2024. It is now read-only.

Commit a156dab

Browse files
committed
Update buildsys
1 parent 69a3366 commit a156dab

2 files changed

Lines changed: 144 additions & 81 deletions

File tree

build-aux/m4/buildsys.m4

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
dnl
2-
dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017
3-
dnl Jonathan Schleifer <js@heap.zone>
2+
dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017,
3+
dnl 2018
4+
dnl Jonathan Schleifer <js@heap.zone>
45
dnl
56
dnl https://heap.zone/git/?p=buildsys.git
67
dnl
@@ -22,6 +23,19 @@ dnl POSSIBILITY OF SUCH DAMAGE.
2223
dnl
2324

2425
AC_DEFUN([BUILDSYS_INIT], [
26+
AC_REQUIRE([AC_CANONICAL_BUILD])
27+
AC_REQUIRE([AC_CANONICAL_HOST])
28+
29+
case "$build_os" in
30+
darwin*)
31+
case "$host_os" in
32+
darwin*)
33+
AC_SUBST(BUILD_AND_HOST_ARE_DARWIN, yes)
34+
;;
35+
esac
36+
;;
37+
esac
38+
2539
AC_CONFIG_COMMANDS_PRE([
2640
AC_SUBST(CC_DEPENDS, $GCC)
2741
AC_SUBST(CXX_DEPENDS, $GXX)
@@ -267,6 +281,9 @@ AC_DEFUN([BUILDSYS_FRAMEWORK], [
267281
268282
AC_SUBST(FRAMEWORK_LDFLAGS)
269283
AC_SUBST(FRAMEWORK_LDFLAGS_INSTALL_NAME)
284+
285+
$1
286+
270287
;;
271288
esac
272289
])

buildsys.mk.in

Lines changed: 125 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#
22
# Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
3-
# 2017
4-
# Jonathan Schleifer <js@heap.zone>
3+
# 2017, 2018
4+
# Jonathan Schleifer <js@heap.zone>
55
#
66
# https://heap.zone/git/?p=buildsys.git
77
#
@@ -80,6 +80,7 @@ JAVAC = @JAVAC@
8080
JAVACFLAGS = @JAVACFLAGS@
8181
JAR = @JAR@
8282
WINDRES = @WINDRES@
83+
BUILD_AND_HOST_ARE_DARWIN = @BUILD_AND_HOST_ARE_DARWIN@
8384
prefix = @prefix@
8485
exec_prefix = @exec_prefix@
8586
bindir = @bindir@
@@ -89,6 +90,7 @@ datarootdir = @datarootdir@
8990
datadir = @datadir@
9091
includedir = @includedir@
9192
includesubdir ?= ${PACKAGE_NAME}
93+
INSTALL_INCLUDES ?= yes
9294
localedir = @localedir@
9395
localename ?= ${PACKAGE_NAME}
9496
mandir = @mandir@
@@ -122,7 +124,7 @@ all:
122124
${MAKE} pre-all
123125
${MAKE} subdirs
124126
${MAKE} depend
125-
${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
127+
${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
126128
${MAKE} subdirs-after
127129
${MAKE} post-all
128130

@@ -251,7 +253,7 @@ ${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
251253
${LINK_FAILED}; \
252254
fi
253255

254-
${FRAMEWORK}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
256+
${FRAMEWORK} ${FRAMEWORK_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
255257
rm -fr $@
256258
${MKDIR_P} $@
257259
${MAKE} INSTALL_INCLUDES_IF_SUBDIR=${includesubdir} INSTALL_INCLUDES_DESTINATION=$$PWD/$@/Headers install-includes
@@ -302,78 +304,96 @@ ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
302304
${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS} ${OBJS_EXTRA}
303305
${LINK_STATUS}
304306
rm -f $@
305-
out="$@"; \
306-
objs=""; \
307-
ars=""; \
308-
for i in ${OBJS} ${OBJS_EXTRA}; do \
309-
case $$i in \
310-
*.a) \
311-
ars="$$ars $$i" \
312-
;; \
313-
*.o) \
314-
objs="$$objs $$i" \
315-
;; \
316-
esac \
317-
done; \
318-
for i in $$ars; do \
319-
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
320-
rm -fr $$dir; \
321-
mkdir -p $$dir; \
322-
cd $$dir; \
323-
${AR} x ../$$i; \
324-
for j in *.o; do \
325-
objs="$$objs $$dir/$$j"; \
326-
done; \
327-
cd ..; \
328-
done; \
329-
if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
330-
${LINK_OK}; \
307+
if test x"${BUILD_AND_HOST_ARE_DARWIN}" = x"yes"; then \
308+
if /usr/bin/libtool -static -o $@ ${OBJS} ${OBJS_EXTRA}; then \
309+
${LINK_OK}; \
310+
else \
311+
${LINK_FAILED}; \
312+
rm -f $@; \
313+
fi; \
331314
else \
332-
${LINK_FAILED}; \
333-
rm -f $@; \
334-
fi; \
335-
for i in $$ars; do \
336-
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
337-
rm -fr $$dir; \
338-
done
315+
out="$@"; \
316+
objs=""; \
317+
ars=""; \
318+
for i in ${OBJS} ${OBJS_EXTRA}; do \
319+
case $$i in \
320+
*.a) \
321+
ars="$$ars $$i" \
322+
;; \
323+
*.o) \
324+
objs="$$objs $$i" \
325+
;; \
326+
esac \
327+
done; \
328+
for i in $$ars; do \
329+
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
330+
rm -fr $$dir; \
331+
mkdir -p $$dir; \
332+
cd $$dir; \
333+
${AR} x ../$$i; \
334+
for j in *.o; do \
335+
objs="$$objs $$dir/$$j"; \
336+
done; \
337+
cd ..; \
338+
done; \
339+
if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
340+
${LINK_OK}; \
341+
else \
342+
${LINK_FAILED}; \
343+
rm -f $@; \
344+
fi; \
345+
for i in $$ars; do \
346+
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
347+
rm -fr $$dir; \
348+
done; \
349+
fi
339350

340351
${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
341352
${LINK_STATUS}
342353
rm -f $@
343-
out="$@"; \
344-
objs=""; \
345-
ars=""; \
346-
for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \
347-
case $$i in \
348-
*.a) \
349-
ars="$$ars $$i" \
350-
;; \
351-
*.o) \
352-
objs="$$objs $$i" \
353-
;; \
354-
esac \
355-
done; \
356-
for i in $$ars; do \
357-
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
358-
rm -fr $$dir; \
359-
mkdir -p $$dir; \
360-
cd $$dir; \
361-
${AR} x ../$$i; \
362-
for j in *.o; do \
363-
objs="$$objs $$dir/$$j"; \
364-
done; \
365-
cd ..; \
366-
done; \
367-
if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
368-
${LINK_OK}; \
354+
if test x"${BUILD_AND_HOST_ARE_DARWIN}" = x"yes"; then \
355+
if /usr/bin/libtool -static -o $@ ${LIB_OBJS} ${LIB_OBJS_EXTRA}; then \
356+
${LINK_OK}; \
357+
else \
358+
${LINK_FAILED}; \
359+
rm -f $@; \
360+
fi; \
369361
else \
370-
${LINK_FAILED}; \
371-
rm -f $@; \
372-
fi; \
373-
for i in $$ars; do \
374-
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
375-
rm -fr $$dir; \
376-
done
362+
out="$@"; \
363+
objs=""; \
364+
ars=""; \
365+
for i in ${LIB_OBJS} ${LIB_OBJS_EXTRA}; do \
366+
case $$i in \
367+
*.a) \
368+
ars="$$ars $$i" \
369+
;; \
370+
*.o) \
371+
objs="$$objs $$i" \
372+
;; \
373+
esac \
374+
done; \
375+
for i in $$ars; do \
376+
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
377+
rm -fr $$dir; \
378+
mkdir -p $$dir; \
379+
cd $$dir; \
380+
${AR} x ../$$i; \
381+
for j in *.o; do \
382+
objs="$$objs $$dir/$$j"; \
383+
done; \
384+
cd ..; \
385+
done; \
386+
if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
387+
${LINK_OK}; \
388+
else \
389+
${LINK_FAILED}; \
390+
rm -f $@; \
391+
fi; \
392+
for i in $$ars; do \
393+
dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
394+
rm -fr $$dir; \
395+
done; \
396+
fi
377397

378398
locales: ${MO_FILES}
379399

@@ -676,6 +696,17 @@ install: all install-extra
676696
fi \
677697
done
678698

699+
for i in "" ${FRAMEWORK}; do \
700+
test x"$$i" = x"" && continue; \
701+
${INSTALL_STATUS}; \
702+
rm -fr ${DESTDIR}${prefix}/Library/Frameworks/$$i; \
703+
if ${MKDIR_P} ${DESTDIR}${prefix}/Library/Frameworks && cp -R $$i ${DESTDIR}${prefix}/Library/Frameworks/; then \
704+
${INSTALL_OK}; \
705+
else \
706+
${INSTALL_FAILED}; \
707+
fi \
708+
done
709+
679710
for i in "" ${STATIC_LIB} ${STATIC_PIC_LIB}; do \
680711
test x"$$i" = x"" && continue; \
681712
${INSTALL_STATUS}; \
@@ -716,15 +747,17 @@ install: all install-extra
716747
fi \
717748
done
718749

719-
for i in "" ${INCLUDES}; do \
720-
test x"$$i" = x"" && continue; \
721-
${INSTALL_STATUS}; \
722-
if ${MKDIR_P} ${DESTDIR}${includedir}/${includesubdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${includedir}/${includesubdir}/$$i; then \
723-
${INSTALL_OK}; \
724-
else \
725-
${INSTALL_FAILED}; \
726-
fi \
727-
done
750+
if test x"${INSTALL_INCLUDES}" = x"yes"; then \
751+
for i in "" ${INCLUDES}; do \
752+
test x"$$i" = x"" && continue; \
753+
${INSTALL_STATUS}; \
754+
if ${MKDIR_P} ${DESTDIR}${includedir}/${includesubdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${includedir}/${includesubdir}/$$i; then \
755+
${INSTALL_OK}; \
756+
else \
757+
${INSTALL_FAILED}; \
758+
fi \
759+
done \
760+
fi
728761

729762
for i in "" ${MO_FILES}; do \
730763
test x"$$i" = x"" && continue; \
@@ -793,6 +826,19 @@ uninstall: uninstall-extra
793826
fi; \
794827
done
795828

829+
for i in "" ${FRAMEWORK}; do \
830+
test x"$$i" = x"" && continue; \
831+
if test -d ${DESTDIR}${prefix}/Library/Frameworks/$$i; then \
832+
if rm -fr ${DESTDIR}${prefix}/Library/Frameworks/$$i; then \
833+
${DELETE_OK}; \
834+
else \
835+
${DELETE_FAILED}; \
836+
fi \
837+
fi \
838+
done
839+
-rmdir ${DESTDIR}${prefix}/Library/Frameworks >/dev/null 2>&1
840+
-rmdir ${DESTDIR}${prefix}/Library >/dev/null 2>&1
841+
796842
for i in "" ${STATIC_LIB} ${STATIC_PIC_LIB}; do \
797843
test x"$$i" = x"" && continue; \
798844
if test -f ${DESTDIR}${libdir}/$$i; then \

0 commit comments

Comments
 (0)