shouldn't autotools take care about these differences?

On 4/30/08, Christopher Thompson <[EMAIL PROTECTED]> wrote:
> Please be gentle, I have very little experience developing on OS X.  To be
> honest, the whole dylib thing seems messy and confusing to me, compared to
> the fairly straight-forward Linux style .so approach.
>
>
>  Expected behavior:
>  Able to configure and build on OS X with:
>  ./configure --enable-embed
>
>  Actual behavior:
>  http://bugs.php.net/bug.php?id=44462
>
>  Suspected problem:
>  Trying to build .so instead of .dylib on OS X.
>
>  Suggested solution:
>  See patch below.  This makes it possible to do:
>  ./configure --enable-embed=dylib
>  I did this instead of fixing --enable-embed=shared because the build
> process appears to be fundamentally different.
>
>  NOTE!  Once applying the patch, you need to do:
>  aclocal
>  autoconf
>  ./configure --enable-embed=dylib
>
>  If you don't do aclocal to regenerate the necessary files, things break.
>
>
>  diff -urN php-5.2.5.clean/Makefile.global php-5.2.5/Makefile.global
>  --- php-5.2.5.clean/Makefile.global     2007-08-03 08:01:56.000000000 -0600
>  +++ php-5.2.5/Makefile.global   2008-04-29 16:44:36.000000000 -0600
>  @@ -17,6 +17,10 @@
>         $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -rpath
> $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS)
> $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
>         [EMAIL PROTECTED](LIBTOOL) --silent --mode=install cp $@ 
> $(phptempdir)/$@
> >/dev/null 2>&1
>
>  +libphp$(PHP_MAJOR_VERSION).dylib: $(PHP_GLOBAL_OBJS)
> $(PHP_SAPI_OBJS)
>  +       $(LIBTOOL) --mode=link $(CC) -dynamiclib -install_name
> $(INSTALL_ROOT)$(prefix)/lib/$@ -current_version $(PHP_VERSION)
> -compatibility_version $(PHP_MAJOR_VERSION) -undefined dynamic_lookup
> $(PHP_RPATHS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o)
> $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
>  +       [EMAIL PROTECTED](LIBTOOL) --silent --mode=install cp $@ 
> $(phptempdir)/$@
> >/dev/null 2>&1
>  +
>   libs/libphp$(PHP_MAJOR_VERSION).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)
> $(PHP_FRAMEWORKS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@
> libs/libphp$(PHP_MAJOR_VERSION).so
>
>  diff -urN php-5.2.5.clean/acinclude.m4 php-5.2.5/acinclude.m4
>  --- php-5.2.5.clean/acinclude.m4        2007-08-20 08:28:45.000000000 -0600
>  +++ php-5.2.5/acinclude.m4      2008-04-29 16:44:44.000000000 -0600
>  @@ -799,6 +799,15 @@
>   ])
>
>   dnl
>  +dnl PHP_BUILD_DYLIB
>  +dnl
>  +AC_DEFUN([PHP_BUILD_DYLIB],[
>  +  PHP_BUILD_PROGRAM
>  +  OVERALL_TARGET=libphp[]$PHP_MAJOR_VERSION[.dylib]
>  +  php_build_target=static
>  +])
>  +
>  +dnl
>   dnl PHP_BUILD_BUNDLE
>   dnl
>   AC_DEFUN([PHP_BUILD_BUNDLE],[
>  @@ -885,6 +894,7 @@
>    case "$2" in
>    static[)] PHP_BUILD_STATIC;;
>    shared[)] PHP_BUILD_SHARED;;
>  +  dylib[)]  PHP_BUILD_DYLIB;;
>    bundle[)] PHP_BUILD_BUNDLE;;
>    program[)] PHP_BUILD_PROGRAM($5);;
>    esac
>  diff -urN php-5.2.5.clean/configure.in php-5.2.5/configure.in
>  --- php-5.2.5.clean/configure.in        2007-11-08 07:44:11.000000000 -0600
>  +++ php-5.2.5/configure.in      2008-04-29 16:44:52.000000000 -0600
>  @@ -252,6 +252,7 @@
>   dnl paths to the targets are relative to the build directory
>
> SAPI_SHARED=libs/libphp[]$PHP_MAJOR_VERSION[.]$SHLIB_DL_SUFFIX_NAME
>   SAPI_STATIC=libs/libphp[]$PHP_MAJOR_VERSION[.a]
> +SAPI_DYLIB=libs/libphp[]$PHP_MAJOR_VERSION[.]$SHLIB_SUFFIX_NAME
>   SAPI_LIBTOOL=libphp[]$PHP_MAJOR_VERSION[.la]
>
>   PHP_CONFIGURE_PART(Configuring SAPI modules)
>  diff -urN php-5.2.5.clean/sapi/embed/config.m4
> php-5.2.5/sapi/embed/config.m4
>  --- php-5.2.5.clean/sapi/embed/config.m4        2007-07-11
> 17:20:36.000000000 -0600
>  +++ php-5.2.5/sapi/embed/config.m4      2008-04-29 16:45:06.000000000 -0600
>  @@ -4,7 +4,7 @@
>
>   PHP_ARG_ENABLE(embed,,
>   [  --enable-embed[=TYPE]   EXPERIMENTAL: Enable building of embedded SAPI
> library
>  -                          TYPE is either 'shared' or 'static'.
> [TYPE=shared]], no, no)
>  +                          TYPE is 'shared', 'static', or 'dylib'.
> [TYPE=shared]], no, no)
>
>   AC_MSG_CHECKING([for embedded SAPI library support])
>
>  @@ -18,6 +18,10 @@
>        PHP_EMBED_TYPE=static
>        INSTALL_IT="\$(mkinstalldirs) \$(INSTALL_ROOT)\$(prefix)/lib;
> \$(INSTALL) -m 0644 $SAPI_STATIC \$(INSTALL_ROOT)\$(prefix)/lib"
>        ;;
>  +    dylib)
>  +      PHP_EMBED_TYPE=dylib
>  +      INSTALL_IT="\$(mkinstalldirs) \$(INSTALL_ROOT)\$(prefix)/lib;
> \$(INSTALL) -m 0644 $SAPI_DYLIB \$(INSTALL_ROOT)\$(prefix)/lib"
>  +      ;;
>      *)
>        PHP_EMBED_TYPE=no
>        ;;
>
>
>  --
>  PHP Internals - PHP Runtime Development Mailing List
>  To unsubscribe, visit: http://www.php.net/unsub.php
>
>


-- 
Alexey Zakhlestin
http://blog.milkfarmsoft.com/

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to