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@
8080JAVACFLAGS = @JAVACFLAGS@
8181JAR = @JAR@
8282WINDRES = @WINDRES@
83+ BUILD_AND_HOST_ARE_DARWIN = @BUILD_AND_HOST_ARE_DARWIN@
8384prefix = @prefix@
8485exec_prefix = @exec_prefix@
8586bindir = @bindir@
@@ -89,6 +90,7 @@ datarootdir = @datarootdir@
8990datadir = @datadir@
9091includedir = @includedir@
9192includesubdir ?= ${PACKAGE_NAME}
93+ INSTALL_INCLUDES ?= yes
9294localedir = @localedir@
9395localename ?= ${PACKAGE_NAME}
9496mandir = @mandir@
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
378398locales: ${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