From 5611c2fc78f0696e1e5715c08502d0a09696c02a Mon Sep 17 00:00:00 2001 From: Marko Karppinen Date: Tue, 6 Aug 2002 16:01:34 +0000 Subject: [PATCH] Support compiling and linking against Darwin / Mac OS X frameworks --- Makefile.global | 2 +- acinclude.m4 | 69 ++++++++++++++++++++++++++++++++++++++++++++++ configure.in | 1 + sapi/cgi/config.m4 | 2 +- sapi/cli/config.m4 | 2 +- 5 files changed, 73 insertions(+), 3 deletions(-) diff --git a/Makefile.global b/Makefile.global index ea8c9d262c..f159e3e2cd 100644 --- a/Makefile.global +++ b/Makefile.global @@ -14,7 +14,7 @@ libphp4.la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ libs/libphp4.bundle: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) - $(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@ libs/libphp4.so + $(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(PHP_FRAMEWORKS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@ libs/libphp4.so php: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(BUILD_CGI) diff --git a/acinclude.m4 b/acinclude.m4 index 71a7423c4d..0995d3681e 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1017,6 +1017,55 @@ ifelse($3,,[ ]) ]) +dnl +dnl PHP_ADD_FRAMEWORK(framework [,before]) +dnl +dnl add a (Darwin / Mac OS X) framework to the link +dnl line. if before is 1, the framework is added +dnl to the beginning of the line. + +AC_DEFUN(PHP_ADD_FRAMEWORK, [ + AC_PHP_ONCE(FRAMEWORK, $1, [ + if test "$2"; then + PHP_FRAMEWORKS="-framework $1 $PHP_FRAMEWORKS" + else + PHP_FRAMEWORKS="$PHP_FRAMEWORKS -framework $1" + fi + ]) +]) + +dnl +dnl PHP_ADD_FRAMEWORKPATH(path [,before]) +dnl +dnl add a (Darwin / Mac OS X) framework path to the link +dnl and include lines. default paths include (but are +dnl not limited to) /Local/Library/Frameworks and +dnl /System/Library/Frameworks, so these don't need +dnl to be specifically added. if before is 1, the +dnl framework path is added to the beginning of the +dnl relevant lines. + +AC_DEFUN(PHP_ADD_FRAMEWORKPATH, [ + PHP_EXPAND_PATH($1, ai_p) + AC_PHP_ONCE(FRAMEWORKPATH, $ai_p, [ + if test "$2"; then + PHP_FRAMEWORKS="-F$ai_p $PHP_FRAMEWORKS" + else + PHP_FRAMEWORKS="$PHP_FRAMEWORKS -F$ai_p" + fi + ]) +]) + +dnl +dnl PHP_ADD_FRAMEWORK_WITH_PATH(framework, path) +dnl +dnl add a (Darwin / Mac OS X) framework path and the +dnl framework itself to the link and include lines. +AC_DEFUN(PHP_ADD_FRAMEWORK_WITH_PATH, [ + PHP_ADD_FRAMEWORKPATH($2) + PHP_ADD_FRAMEWORK($1) +]) + dnl dnl Set libtool variable dnl @@ -1403,6 +1452,26 @@ AC_DEFUN(PHP_CHECK_LIBRARY, [ ])dnl ]) +dnl +dnl PHP_CHECK_FRAMEWORK(framework, function [, action-found [, action-not-found ]]) +dnl +dnl El cheapo wrapper for AC_CHECK_LIB +dnl +AC_DEFUN(PHP_CHECK_FRAMEWORK, [ + save_old_LDFLAGS=$LDFLAGS + LDFLAGS="-framework $1 $LDFLAGS" + dnl supplying "c" to AC_CHECK_LIB is technically cheating, but + dnl rewriting AC_CHECK_LIB is overkill and this only affects + dnl the "checking.." output anyway. + AC_CHECK_LIB(c,[$2],[ + LDFLAGS=$save_old_LDFLAGS + $3 + ],[ + LDFLAGS=$save_old_LDFLAGS + $4 + ]) +]) + dnl dnl PHP_SETUP_ICONV(shared-add [, action-found [, action-not-found]]) dnl diff --git a/configure.in b/configure.in index 7809ed3614..7f6b0fa7e9 100644 --- a/configure.in +++ b/configure.in @@ -976,6 +976,7 @@ PHP_SUBST(SHARED_LIBTOOL) PHP_SUBST(TSRM_DIR) PHP_SUBST(TSRM_LIB) PHP_SUBST(WARNING_LEVEL) +PHP_SUBST(PHP_FRAMEWORKS) PHP_SUBST_OLD(YACC) PHP_SUBST_OLD(SHLIB_SUFFIX_NAME) diff --git a/sapi/cgi/config.m4 b/sapi/cgi/config.m4 index 0cd2d3d9a4..4eaf71bb29 100644 --- a/sapi/cgi/config.m4 +++ b/sapi/cgi/config.m4 @@ -100,7 +100,7 @@ PHP_SUBST(FHTTPD_TARGET) case $host_alias in *darwin*) - BUILD_CGI="\$(CC) \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_SAPI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o php" + BUILD_CGI="\$(CC) \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_SAPI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o php" ;; *) BUILD_CGI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o php" diff --git a/sapi/cli/config.m4 b/sapi/cli/config.m4 index 010ce775c7..b3fb87cfc5 100644 --- a/sapi/cli/config.m4 +++ b/sapi/cli/config.m4 @@ -16,7 +16,7 @@ AC_ARG_ENABLE(cli, if test "$PHP_SAPI_CLI" != "no"; then case $host_alias in *darwin*) - BUILD_CLI="\$(CC) \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o sapi/cli/php" + BUILD_CLI="\$(CC) \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o sapi/cli/php" ;; *) BUILD_CLI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(COMMON_FLAGS) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o sapi/cli/php" -- 2.40.0