From e881321bb08506a42198b1f78418d78fe469ba31 Mon Sep 17 00:00:00 2001 From: Martin Wilke Date: Sat, 30 Dec 2006 23:24:37 +0000 Subject: mod_cplusplus is a proper apache module which allows you to load cpp objects as handlers for Apache-2.0. It differs from other modules i've seen in that it manages the loading and calling of separate shared objects containing your handler classes. This allows you to easily and cleanly run an entire site with c++ handlers. WWW: http://modcplusplus.sourceforge.net/ PR: ports/107361 Submitted by: Michael Durian --- www/mod_cplusplus/Makefile | 47 ++++++++++++++++++++++++++++++ www/mod_cplusplus/distinfo | 3 ++ www/mod_cplusplus/files/patch-configure.in | 46 +++++++++++++++++++++++++++++ www/mod_cplusplus/files/pkg-message.in | 7 +++++ www/mod_cplusplus/pkg-descr | 7 +++++ www/mod_cplusplus/pkg-plist | 11 +++++++ 6 files changed, 121 insertions(+) create mode 100644 www/mod_cplusplus/Makefile create mode 100644 www/mod_cplusplus/distinfo create mode 100644 www/mod_cplusplus/files/patch-configure.in create mode 100644 www/mod_cplusplus/files/pkg-message.in create mode 100644 www/mod_cplusplus/pkg-descr create mode 100644 www/mod_cplusplus/pkg-plist (limited to 'www/mod_cplusplus') diff --git a/www/mod_cplusplus/Makefile b/www/mod_cplusplus/Makefile new file mode 100644 index 000000000000..a290a33211ee --- /dev/null +++ b/www/mod_cplusplus/Makefile @@ -0,0 +1,47 @@ +# Ports collection makefile for: mod_cplusplus for Apache 2.x +# Date created: Dec 29, 2006 +# Whom: Michael Durian +# +# $FreeBSD$ +# + +PORTNAME= mod_cplusplus +PORTVERSION= 1.5.2 +CATEGORIES= www +MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} +MASTER_SITE_SUBDIR= modcplusplus + +MAINTAINER= durian@shadetreesoftware.com +COMMENT= Apache module for loading C++ objects as handlers + +USE_APACHE= 2.0+ +USE_AUTOTOOLS= autoconf:259 autoheader:259 libtool:15 automake:19 aclocal:19 +# ${LOCALBASE}/share/aclocal19 does not contain libtool.m4 and that causes +# problems. Explicitly include ${LOCALBASE}/share/aclocal in the search +# patch since that directory does contain libtool.m4 +ACLOCAL_ARGS+= -I ${LOCALBASE}/share/aclocal +AUTOMAKE_ARGS+= -a +GNU_CONFIGURE= yes +CONFIGURE_ARGS+= --with-apxs=${APXS} + +SUB_FILES= pkg-message +SUB_LIST= "APACHEMODDIR=${APACHEMODDIR}" + +# Redefine the autotools run order to match what would happen in the +# autogen.sh script. We cannot use that script directly since it does +# not use the versioned autotools. +run-autotools: run-autotools-aclocal patch-autotools run-autotools-autoheader \ + run-libtoolize run-autotools-automake run-autotools-autoconf + +run-libtoolize: + @(cd ${CONFIGURE_WRKSRC} && ${SETENV} ${AUTOTOOLS_ENV} \ + ${LIBTOOLIZE} --force --copy) + +do-install: + ${INSTALL_DATA} ${WRKSRC}/include/*.h ${PREFIX}/${APACHEINCLUDEDIR} + ${INSTALL_DATA} ${WRKSRC}/src/.libs/libmod_cplusplus.so ${PREFIX}/${APACHEMODDIR}/mod_cplusplus.so + +post-install: + @${CAT} ${PKGMESSAGE} + +.include diff --git a/www/mod_cplusplus/distinfo b/www/mod_cplusplus/distinfo new file mode 100644 index 000000000000..996eee3d466f --- /dev/null +++ b/www/mod_cplusplus/distinfo @@ -0,0 +1,3 @@ +MD5 (mod_cplusplus-1.5.2.tar.gz) = b523636990c9212d50f0ba144fe65b09 +SHA256 (mod_cplusplus-1.5.2.tar.gz) = 0a7a4a32dd56062586db4f250954e058ce273e2f5f19bca8a32c88bc59863c0a +SIZE (mod_cplusplus-1.5.2.tar.gz) = 123912 diff --git a/www/mod_cplusplus/files/patch-configure.in b/www/mod_cplusplus/files/patch-configure.in new file mode 100644 index 000000000000..30a730368b35 --- /dev/null +++ b/www/mod_cplusplus/files/patch-configure.in @@ -0,0 +1,46 @@ +*** configure.in.orig Sat Dec 30 10:47:15 2006 +--- configure.in Sat Dec 30 10:56:16 2006 +*************** +*** 9,15 **** + dnl hack to get shlib extension + AC_MSG_CHECKING(what the shared library extension is) + eval SHLIB_EXT=\"$shrext\" +! if test "$SHLIB_EXT" == "" ; then + AC_MSG_RESULT(could not determine shared library extension. Defaulting to .so) + SHLIB_EXT=".so" + fi +--- 9,15 ---- + dnl hack to get shlib extension + AC_MSG_CHECKING(what the shared library extension is) + eval SHLIB_EXT=\"$shrext\" +! if test "x$SHLIB_EXT" = "x" ; then + AC_MSG_RESULT(could not determine shared library extension. Defaulting to .so) + SHLIB_EXT=".so" + fi +*************** +*** 58,69 **** + fi + ],) + +! if test "$INCLUDES" == "" ; then + AC_MSG_ERROR(could not generate includes with apxs set to "$APXS" - you must specify a valid path to apxs using the --with-apxs flag) + fi + + AC_CHECK_LIB(stdc++, __gxx_personality_v0, LIB_STDCPP="-lstdc++") +! if test "$LIB_STDCPP" == "" ; then + CPPFLAGS="$CPPFLAGS -DNO_STDCPP" + fi + CPLUSPLUS_BUILDDIR=`pwd` +--- 58,69 ---- + fi + ],) + +! if test "x$INCLUDES" = "x" ; then + AC_MSG_ERROR(could not generate includes with apxs set to "$APXS" - you must specify a valid path to apxs using the --with-apxs flag) + fi + + AC_CHECK_LIB(stdc++, __gxx_personality_v0, LIB_STDCPP="-lstdc++") +! if test "x$LIB_STDCPP" = "x" ; then + CPPFLAGS="$CPPFLAGS -DNO_STDCPP" + fi + CPLUSPLUS_BUILDDIR=`pwd` diff --git a/www/mod_cplusplus/files/pkg-message.in b/www/mod_cplusplus/files/pkg-message.in new file mode 100644 index 000000000000..f2507249cd67 --- /dev/null +++ b/www/mod_cplusplus/files/pkg-message.in @@ -0,0 +1,7 @@ +************************************************************ +To enable this module, add the following to your server +configuration file: + + LoadModule cplusplus_module %%APACHEMODDIR%%/mod_cplusplus.so + +************************************************************ diff --git a/www/mod_cplusplus/pkg-descr b/www/mod_cplusplus/pkg-descr new file mode 100644 index 000000000000..3f32419b0ee8 --- /dev/null +++ b/www/mod_cplusplus/pkg-descr @@ -0,0 +1,7 @@ +mod_cplusplus is a proper apache module which allows you to load cpp objects +as handlers for Apache-2.0. It differs from other modules i've seen in that +it manages the loading and calling of separate shared objects containing your +handler classes. This allows you to easily and cleanly run an entire site +with c++ handlers. + +WWW: http://modcplusplus.sourceforge.net/ diff --git a/www/mod_cplusplus/pkg-plist b/www/mod_cplusplus/pkg-plist new file mode 100644 index 000000000000..91af842dd896 --- /dev/null +++ b/www/mod_cplusplus/pkg-plist @@ -0,0 +1,11 @@ +%%APACHEINCLUDEDIR%%/apache_filters.h +%%APACHEINCLUDEDIR%%/apache_handler.h +%%APACHEINCLUDEDIR%%/apache_output_buffer.h +%%APACHEINCLUDEDIR%%/apache_protocol.h +%%APACHEINCLUDEDIR%%/cpp_request.h +%%APACHEINCLUDEDIR%%/cpp_server.h +%%APACHEINCLUDEDIR%%/env_hash.h +%%APACHEINCLUDEDIR%%/env_value.h +%%APACHEINCLUDEDIR%%/mod_cplusplus.h +%%APACHEINCLUDEDIR%%/request_env.h +%%APACHEMODDIR%%/mod_cplusplus.so -- cgit v1.2.3