summaryrefslogtreecommitdiff
path: root/dynlib.m4
diff options
context:
space:
mode:
Diffstat (limited to 'dynlib.m4')
-rw-r--r--dynlib.m464
1 files changed, 64 insertions, 0 deletions
diff --git a/dynlib.m4 b/dynlib.m4
new file mode 100644
index 0000000000..fb3c70a701
--- /dev/null
+++ b/dynlib.m4
@@ -0,0 +1,64 @@
+
+
+
+AC_DEFUN(LIB_SHARED_CONVENIENCE,[
+ lib_target="\$(LTLIBRARY_NAME)"
+ cat >>$1<<EOF
+\$(LTLIBRARY_NAME): \$(LTLIBRARY_SHARED_OBJECTS) \$(LTLIBRARY_DEPENDENCIES)
+ \$(SHARED_LIBTOOL) --mode=link \$(CCLD) \$(CFLAGS) \$(EXTRA_CFLAGS) \$(LDFLAGS) -o \[$]@ \$(LTLIBRARY_LDFLAGS) \$(LTLIBRARY_OBJECTS) \$(LTLIBRARY_SHARED_LIBADD)
+
+EOF
+])
+
+AC_DEFUN(LIB_SHARED_MODULE,[
+ lib_target="\$(LTLIBRARY_SHARED_NAME)"
+ cat >>$1<<EOF
+\$(LTLIBRARY_SHARED_NAME): \$(LTLIBRARY_SHARED_OBJECTS) \$(LTLIBRARY_DEPENDENCIES)
+ \$(SHARED_LIBTOOL) --mode=link \$(CCLD) \$(CFLAGS) \$(EXTRA_CFLAGS) \$(LDFLAGS) -o \[$]@ -avoid-version -module -rpath \$(phplibdir) \$(LTLIBRARY_LDFLAGS) \$(LTLIBRARY_OBJECTS) \$(LTLIBRARY_SHARED_LIBADD)
+ \$(SHARED_LIBTOOL) --mode=install cp \[$]@ \$(phplibdir)
+
+EOF
+])
+
+AC_DEFUN(LIB_STATIC_CONVENIENCE,[
+ lib_target="\$(LTLIBRARY_NAME)"
+ cat >>$1<<EOF
+\$(LTLIBRARY_NAME): \$(LTLIBRARY_OBJECTS) \$(LTLIBRARY_DEPENDENCIES)
+ \$(LINK) \$(LTLIBRARY_LDFLAGS) \$(LTLIBRARY_OBJECTS) \$(LTLIBRARY_LIBADD)
+
+EOF
+])
+
+dnl LIB_BUILD(path, shared, convenience)
+dnl sets up path to build a shared/static convenience/module
+AC_DEFUN(LIB_BUILD,[
+ lib_makefile="$1/libs.mk"
+ lib_target=""
+
+ test -d $1 || $php_shtool mkdir -p $1
+ cat >$lib_makefile<<EOF
+LTLIBRARY_OBJECTS = \$(LTLIBRARY_SOURCES:.c=.lo)
+LTLIBRARY_SHARED_OBJECTS = \$(LTLIBRARY_OBJECTS:.lo=.slo)
+EOF
+
+ if test "$2" = "shared" || test "$2" = "yes"; then
+ lib_build_shared=yes
+ if test -n "$3"; then
+dnl ---------------------------------------- Shared Convenience
+ LIB_SHARED_CONVENIENCE($lib_makefile)
+ else
+dnl ---------------------------------------- Shared Module
+ LIB_SHARED_MODULE($lib_makefile)
+ fi
+ else
+dnl ---------------------------------------- Static Convenience = Static Module
+ LIB_STATIC_CONVENIENCE($lib_makefile)
+ fi
+
+dnl ---------------------------------------- Generate build targets
+ if test -n "$lib_target"; then
+ cat >>$lib_makefile<<EOF
+targets = $lib_target
+EOF
+ fi
+])