Build plugins as proper .bundles
This commit is contained in:
parent
4c0591c56f
commit
f4f8be325a
2 changed files with 55 additions and 17 deletions
|
@ -293,7 +293,7 @@ ${MORPHOS_LIB} ${MORPHOS_LIB_NOINST}: ${EXT_DEPS} ${MORPHOS_LIB_OBJS} ${MORPHOS_
|
||||||
${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
|
${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
|
||||||
${LINK_STATUS}
|
${LINK_STATUS}
|
||||||
out="$@"; \
|
out="$@"; \
|
||||||
if ${LD} -o $@ ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}; then \
|
if @LINK_PLUGIN@; then \
|
||||||
${LINK_OK}; \
|
${LINK_OK}; \
|
||||||
else \
|
else \
|
||||||
${LINK_FAILED}; \
|
${LINK_FAILED}; \
|
||||||
|
@ -718,7 +718,7 @@ install: all install-extra
|
||||||
for i in "" ${PLUGIN}; do \
|
for i in "" ${PLUGIN}; do \
|
||||||
test x"$$i" = x"" && continue; \
|
test x"$$i" = x"" && continue; \
|
||||||
${INSTALL_STATUS}; \
|
${INSTALL_STATUS}; \
|
||||||
if ${MKDIR_P} ${DESTDIR}${plugindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i; then \
|
if ${MKDIR_P} ${DESTDIR}${plugindir} && @INSTALL_PLUGIN@; then \
|
||||||
${INSTALL_OK}; \
|
${INSTALL_OK}; \
|
||||||
else \
|
else \
|
||||||
${INSTALL_FAILED}; \
|
${INSTALL_FAILED}; \
|
||||||
|
@ -850,8 +850,8 @@ uninstall: uninstall-extra
|
||||||
|
|
||||||
for i in "" ${PLUGIN}; do \
|
for i in "" ${PLUGIN}; do \
|
||||||
test x"$$i" = x"" && continue; \
|
test x"$$i" = x"" && continue; \
|
||||||
if test -f ${DESTDIR}${plugindir}/$$i; then \
|
if test -e ${DESTDIR}${plugindir}/$$i; then \
|
||||||
if rm -f ${DESTDIR}${plugindir}/$$i; then \
|
if @UNINSTALL_PLUGIN@; then \
|
||||||
${DELETE_OK}; \
|
${DELETE_OK}; \
|
||||||
else \
|
else \
|
||||||
${DELETE_FAILED}; \
|
${DELETE_FAILED}; \
|
||||||
|
|
|
@ -121,6 +121,29 @@ AC_DEFUN([BUILDSYS_INIT], [
|
||||||
])
|
])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([BUILDSYS_CHECK_IOS], [
|
||||||
|
case "$host_os" in
|
||||||
|
darwin*)
|
||||||
|
AC_MSG_CHECKING(whether host is iOS)
|
||||||
|
AC_EGREP_CPP(yes, [
|
||||||
|
#include <TargetConditionals.h>
|
||||||
|
|
||||||
|
#if (defined(TARGET_OS_IPHONE) && \
|
||||||
|
TARGET_OS_IPHONE) || \
|
||||||
|
(defined(TARGET_OS_SIMULATOR) && \
|
||||||
|
TARGET_OS_SIMULATOR)
|
||||||
|
yes
|
||||||
|
#endif
|
||||||
|
], [
|
||||||
|
host_is_ios="yes"
|
||||||
|
], [
|
||||||
|
host_is_ios="no"
|
||||||
|
])
|
||||||
|
AC_MSG_RESULT($host_is_ios)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
])
|
||||||
|
|
||||||
AC_DEFUN([BUILDSYS_PROG_IMPLIB], [
|
AC_DEFUN([BUILDSYS_PROG_IMPLIB], [
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
AC_MSG_CHECKING(whether we need an implib)
|
AC_MSG_CHECKING(whether we need an implib)
|
||||||
|
@ -143,6 +166,7 @@ AC_DEFUN([BUILDSYS_PROG_IMPLIB], [
|
||||||
|
|
||||||
AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
|
AC_REQUIRE([BUILDSYS_CHECK_IOS])
|
||||||
AC_MSG_CHECKING(for shared library system)
|
AC_MSG_CHECKING(for shared library system)
|
||||||
|
|
||||||
case "$host_os" in
|
case "$host_os" in
|
||||||
|
@ -157,8 +181,15 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
||||||
PLUGIN_CFLAGS='-fPIC -DPIC'
|
PLUGIN_CFLAGS='-fPIC -DPIC'
|
||||||
PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup'
|
PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup'
|
||||||
PLUGIN_SUFFIX='.bundle'
|
PLUGIN_SUFFIX='.bundle'
|
||||||
|
AS_IF([test x"$host_is_ios" = x"yes"], [
|
||||||
|
LINK_PLUGIN='rm -fr $$out && ${MKDIR_P} $$out && ${LD} -o $$out/$${out%${PLUGIN_SUFFIX}} ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS} && ${CODESIGN} -fs ${CODESIGN_IDENTITY} --timestamp=none $$out'
|
||||||
|
], [
|
||||||
|
LINK_PLUGIN='rm -fr $$out && ${MKDIR_P} $$out/Contents/MacOS && ${LD} -o $$out/Contents/MacOS/$${out%${PLUGIN_SUFFIX}} ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS} && ${CODESIGN} -fs ${CODESIGN_IDENTITY} --timestamp=none $$out'
|
||||||
|
])
|
||||||
INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i'
|
INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i'
|
||||||
UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
|
UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
|
||||||
|
INSTALL_PLUGIN='rm -fr ${DESTDIR}${plugindir}/$$i && cp -R $$i ${DESTDIR}${plugindir}/'
|
||||||
|
UNINSTALL_PLUGIN='rm -fr ${DESTDIR}${plugindir}/$$i'
|
||||||
CLEAN_LIB=''
|
CLEAN_LIB=''
|
||||||
;;
|
;;
|
||||||
mingw* | cygwin*)
|
mingw* | cygwin*)
|
||||||
|
@ -172,8 +203,11 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
||||||
PLUGIN_CFLAGS=''
|
PLUGIN_CFLAGS=''
|
||||||
PLUGIN_LDFLAGS='-shared'
|
PLUGIN_LDFLAGS='-shared'
|
||||||
PLUGIN_SUFFIX='.dll'
|
PLUGIN_SUFFIX='.dll'
|
||||||
|
LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
|
||||||
INSTALL_LIB='${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
|
INSTALL_LIB='${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
|
||||||
UNINSTALL_LIB='rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
|
UNINSTALL_LIB='rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
|
||||||
|
INSTALL_PLUGIN='${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
|
||||||
|
UNINSTALL_PLUGIN='rm -f ${DESTDIR}${plugindir}/$$i'
|
||||||
CLEAN_LIB='${SHARED_LIB}.a'
|
CLEAN_LIB='${SHARED_LIB}.a'
|
||||||
;;
|
;;
|
||||||
openbsd* | mirbsd*)
|
openbsd* | mirbsd*)
|
||||||
|
@ -187,8 +221,11 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
||||||
PLUGIN_CFLAGS='-fPIC -DPIC'
|
PLUGIN_CFLAGS='-fPIC -DPIC'
|
||||||
PLUGIN_LDFLAGS='-shared'
|
PLUGIN_LDFLAGS='-shared'
|
||||||
PLUGIN_SUFFIX='.so'
|
PLUGIN_SUFFIX='.so'
|
||||||
|
LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
|
||||||
INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i'
|
INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i'
|
||||||
UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i'
|
UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i'
|
||||||
|
INSTALL_PLUGIN='${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
|
||||||
|
UNINSTALL_PLUGIN='rm -f ${DESTDIR}${plugindir}/$$i'
|
||||||
CLEAN_LIB=''
|
CLEAN_LIB=''
|
||||||
;;
|
;;
|
||||||
solaris*)
|
solaris*)
|
||||||
|
@ -202,8 +239,11 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
||||||
PLUGIN_CFLAGS='-fPIC -DPIC'
|
PLUGIN_CFLAGS='-fPIC -DPIC'
|
||||||
PLUGIN_LDFLAGS='-shared'
|
PLUGIN_LDFLAGS='-shared'
|
||||||
PLUGIN_SUFFIX='.so'
|
PLUGIN_SUFFIX='.so'
|
||||||
|
LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
|
||||||
INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
|
INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
|
||||||
UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
|
UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
|
||||||
|
INSTALL_PLUGIN='${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
|
||||||
|
UNINSTALL_PLUGIN='rm -f ${DESTDIR}${plugindir}/$$i'
|
||||||
CLEAN_LIB=''
|
CLEAN_LIB=''
|
||||||
;;
|
;;
|
||||||
*-android*)
|
*-android*)
|
||||||
|
@ -217,8 +257,11 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
||||||
PLUGIN_CFLAGS='-fPIC -DPIC'
|
PLUGIN_CFLAGS='-fPIC -DPIC'
|
||||||
PLUGIN_LDFLAGS='-shared'
|
PLUGIN_LDFLAGS='-shared'
|
||||||
PLUGIN_SUFFIX='.so'
|
PLUGIN_SUFFIX='.so'
|
||||||
|
LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
|
||||||
INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
|
INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
|
||||||
UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
|
UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
|
||||||
|
INSTALL_PLUGIN='${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
|
||||||
|
UNINSTALL_PLUGIN='rm -f ${DESTDIR}${plugindir}/$$i'
|
||||||
CLEAN_LIB=''
|
CLEAN_LIB=''
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
@ -232,8 +275,11 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
||||||
PLUGIN_CFLAGS='-fPIC -DPIC'
|
PLUGIN_CFLAGS='-fPIC -DPIC'
|
||||||
PLUGIN_LDFLAGS='-shared'
|
PLUGIN_LDFLAGS='-shared'
|
||||||
PLUGIN_SUFFIX='.so'
|
PLUGIN_SUFFIX='.so'
|
||||||
|
LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
|
||||||
INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
|
INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
|
||||||
UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
|
UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
|
||||||
|
INSTALL_PLUGIN='${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
|
||||||
|
UNINSTALL_PLUGIN='rm -f ${DESTDIR}${plugindir}/$$i'
|
||||||
CLEAN_LIB=''
|
CLEAN_LIB=''
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -247,35 +293,27 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
||||||
AC_SUBST(PLUGIN_CFLAGS)
|
AC_SUBST(PLUGIN_CFLAGS)
|
||||||
AC_SUBST(PLUGIN_LDFLAGS)
|
AC_SUBST(PLUGIN_LDFLAGS)
|
||||||
AC_SUBST(PLUGIN_SUFFIX)
|
AC_SUBST(PLUGIN_SUFFIX)
|
||||||
|
AC_SUBST(LINK_PLUGIN)
|
||||||
AC_SUBST(INSTALL_LIB)
|
AC_SUBST(INSTALL_LIB)
|
||||||
AC_SUBST(UNINSTALL_LIB)
|
AC_SUBST(UNINSTALL_LIB)
|
||||||
|
AC_SUBST(INSTALL_PLUGIN)
|
||||||
|
AC_SUBST(UNINSTALL_PLUGIN)
|
||||||
AC_SUBST(CLEAN_LIB)
|
AC_SUBST(CLEAN_LIB)
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_DEFUN([BUILDSYS_FRAMEWORK], [
|
AC_DEFUN([BUILDSYS_FRAMEWORK], [
|
||||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||||
|
AC_REQUIRE([BUILDSYS_CHECK_IOS])
|
||||||
AC_REQUIRE([BUILDSYS_SHARED_LIB])
|
AC_REQUIRE([BUILDSYS_SHARED_LIB])
|
||||||
|
|
||||||
AC_CHECK_TOOL(CODESIGN, codesign)
|
AC_CHECK_TOOL(CODESIGN, codesign)
|
||||||
|
|
||||||
case "$host_os" in
|
case "$host_os" in
|
||||||
darwin*)
|
darwin*)
|
||||||
AC_MSG_CHECKING(whether host is iOS)
|
AS_IF([test x"$host_is_ios" = x"yes"], [
|
||||||
AC_EGREP_CPP(yes, [
|
|
||||||
#include <TargetConditionals.h>
|
|
||||||
|
|
||||||
#if (defined(TARGET_OS_IPHONE) && \
|
|
||||||
TARGET_OS_IPHONE) || \
|
|
||||||
(defined(TARGET_OS_SIMULATOR) && \
|
|
||||||
TARGET_OS_SIMULATOR)
|
|
||||||
yes
|
|
||||||
#endif
|
|
||||||
], [
|
|
||||||
AC_MSG_RESULT(yes)
|
|
||||||
FRAMEWORK_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
|
FRAMEWORK_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
|
||||||
FRAMEWORK_LDFLAGS_INSTALL_NAME='-Wl,-install_name,@executable_path/Frameworks/$$out/$${out%.framework}'
|
FRAMEWORK_LDFLAGS_INSTALL_NAME='-Wl,-install_name,@executable_path/Frameworks/$$out/$${out%.framework}'
|
||||||
], [
|
], [
|
||||||
AC_MSG_RESULT(no)
|
|
||||||
FRAMEWORK_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
|
FRAMEWORK_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
|
||||||
FRAMEWORK_LDFLAGS_INSTALL_NAME='-Wl,-install_name,@executable_path/../Frameworks/$$out/$${out%.framework}'
|
FRAMEWORK_LDFLAGS_INSTALL_NAME='-Wl,-install_name,@executable_path/../Frameworks/$$out/$${out%.framework}'
|
||||||
])
|
])
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue