From e303ca5a352231c5c5995ac40e1e6ac7912f195a Mon Sep 17 00:00:00 2001 From: Jonathan Schleifer Date: Sun, 21 Jan 2018 23:44:58 +0100 Subject: [PATCH] Add support for building as a .framework --- configure.ac | 10 ++++++++-- extra.mk.in | 6 ++++++ src/Makefile | 3 +++ tests/Makefile | 4 +++- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index e8098c1..c8adaf7 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,8 @@ CPP="$OBJCPP" CPPFLAGS="$CPPFLAGS $OBJCPPFLAGS $($OBJFW_CONFIG --cppflags)" OBJCFLAGS="$OBJCFLAGS -Wall $($OBJFW_CONFIG --objcflags)" LDFLAGS="$LDFLAGS $($OBJFW_CONFIG --ldflags)" -LIBS="$LIBS $($OBJFW_CONFIG --libs)" +AC_SUBST(OBJFW_LIBS, "$LIBS $($OBJFW_CONFIG --libs)") +AC_SUBST(OBJFW_FRAMEWORK_LIBS, "$LIBS $($OBJFW_CONFIG --framework-libs)") AX_CHECK_COMPILER_FLAGS(-Watomic-properties, [OBJCFLAGS="$OBJCFLAGS -Watomic-properties"]) @@ -35,6 +36,10 @@ AC_ARG_ENABLE(shared, AS_IF([test x"$enable_shared" != x"no"], [ BUILDSYS_SHARED_LIB AC_SUBST(OBJXMPP_SHARED_LIB, "${LIB_PREFIX}objxmpp${LIB_SUFFIX}") + + BUILDSYS_FRAMEWORK([ + AC_SUBST(OBJXMPP_FRAMEWORK, "ObjXMPP.framework") + ]) ]) AC_ARG_ENABLE(static, AS_HELP_STRING([--enable-static], [build static library])) AS_IF([test x"$enable_static" = x"yes" -o x"$enable_shared" = x"no"], [ @@ -87,7 +92,8 @@ AC_TRY_LINK([ ]) AC_CHECK_LIB(objopenssl, main, [ - LIBS="$LIBS -lobjopenssl -lcrypto" + AC_SUBST(OBJOPENSSL_LIBS, "-lobjopenssl -lcrypto") + AC_SUBST(OBJOPENSSL_FRAMEWORK_LIBS, "-framework ObjOpenSSL -lcrypto") ], [ AC_MSG_ERROR(You need ObjOpenSSL installed!) ]) diff --git a/extra.mk.in b/extra.mk.in index 4b3f9c3..ce721a8 100644 --- a/extra.mk.in +++ b/extra.mk.in @@ -1,2 +1,8 @@ OBJXMPP_SHARED_LIB = @OBJXMPP_SHARED_LIB@ OBJXMPP_STATIC_LIB = @OBJXMPP_STATIC_LIB@ +OBJXMPP_FRAMEWORK = @OBJXMPP_FRAMEWORK@ + +OBJFW_FRAMEWORK_LIBS = @OBJFW_FRAMEWORK_LIBS@ +OBJFW_LIBS = @OBJFW_LIBS@ +OBJOPENSSL_FRAMEWORK_LIBS = @OBJOPENSSL_FRAMEWORK_LIBS@ +OBJOPENSSL_LIBS = @OBJOPENSSL_LIBS@ diff --git a/src/Makefile b/src/Makefile index a71a089..db7c852 100644 --- a/src/Makefile +++ b/src/Makefile @@ -2,6 +2,7 @@ include ../extra.mk SHARED_LIB = ${OBJXMPP_SHARED_LIB} STATIC_LIB = ${OBJXMPP_STATIC_LIB} +FRAMEWORK = ${OBJXMPP_FRAMEWORK} LIB_MAJOR = 0 LIB_MINOR = 0 @@ -39,3 +40,5 @@ include ../buildsys.mk CPPFLAGS += -I.. -DHAVE_CONFIG_H LD = ${OBJC} +FRAMEWORK_LIBS := ${OBJOPENSSL_FRAMEWORK_LIBS} ${OBJFW_FRAMEWORK_LIBS} ${LIBS} +LIBS := ${OBJOPENSSL_LIBS} ${OBJFW_LIBS} ${LIBS} diff --git a/tests/Makefile b/tests/Makefile index a0ad6b1..8d8b593 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,8 +1,10 @@ +include ../extra.mk + PROG_NOINST = tests${PROG_SUFFIX} SRCS = test.m include ../buildsys.mk CPPFLAGS += -I../src -LIBS := -L../src -lobjxmpp ${LIBS} +LIBS := -L../src -lobjxmpp ${OBJOPENSSL_LIBS} ${OBJFW_LIBS} ${LIBS} LD = ${OBJC}