summaryrefslogtreecommitdiffhomepage
path: root/auto
diff options
context:
space:
mode:
Diffstat (limited to 'auto')
-rw-r--r--auto/cc/gcc2
-rw-r--r--auto/install16
-rw-r--r--auto/lib/conf4
-rw-r--r--auto/lib/make4
-rw-r--r--auto/lib/perl/conf53
-rw-r--r--auto/lib/perl/make33
-rw-r--r--auto/make2
-rw-r--r--auto/modules10
-rw-r--r--auto/options25
-rw-r--r--auto/sources6
10 files changed, 152 insertions, 3 deletions
diff --git a/auto/cc/gcc b/auto/cc/gcc
index 5c5f61cd8..21a73406e 100644
--- a/auto/cc/gcc
+++ b/auto/cc/gcc
@@ -172,3 +172,5 @@ CFLAGS="$CFLAGS -g"
if [ ".$CPP" = "." ]; then
CPP="$CC -E"
fi
+
+NGX_PERL_CFLAGS="$CFLAGS"
diff --git a/auto/install b/auto/install
index 55f868a1d..07535b745 100644
--- a/auto/install
+++ b/auto/install
@@ -2,9 +2,23 @@
# Copyright (C) Igor Sysoev
+if [ $USE_PERL = YES ]; then
+
+ cat << END >> $NGX_MAKEFILE
+
+install_perl_modules:
+ cd $NGX_OBJS/src/http/modules/perl && make install
+END
+
+ NGX_INSTALL_PERL_MODULES=install_perl_modules
+
+fi
+
+
cat << END >> $NGX_MAKEFILE
-install: $NGX_OBJS${ngx_dirsep}nginx${ngx_binext}
+install: $NGX_OBJS${ngx_dirsep}nginx${ngx_binext} \
+ $NGX_INSTALL_PERL_MODULES
test -d '$NGX_PREFIX' || mkdir -p '$NGX_PREFIX'
test -d '`dirname "$NGX_SBIN_PATH"`' \
diff --git a/auto/lib/conf b/auto/lib/conf
index 70053b554..62d6029bb 100644
--- a/auto/lib/conf
+++ b/auto/lib/conf
@@ -26,3 +26,7 @@ fi
if [ $USE_ZLIB = YES ]; then
. auto/lib/zlib/conf
fi
+
+if [ $USE_PERL = YES ]; then
+ . auto/lib/perl/conf
+fi
diff --git a/auto/lib/make b/auto/lib/make
index ef571c5b8..60cd7bcd2 100644
--- a/auto/lib/make
+++ b/auto/lib/make
@@ -17,3 +17,7 @@ fi
if [ $ZLIB != NONE -a $ZLIB != NO -a $ZLIB != YES ]; then
. auto/lib/zlib/make
fi
+
+if [ $USE_PERL = YES ]; then
+ . auto/lib/perl/make
+fi
diff --git a/auto/lib/perl/conf b/auto/lib/perl/conf
new file mode 100644
index 000000000..1d7fe3bde
--- /dev/null
+++ b/auto/lib/perl/conf
@@ -0,0 +1,53 @@
+
+# Copyright (C) Igor Sysoev
+
+
+echo "checking for perl"
+
+
+NGX_PERL_VER=`$NGX_PERL -v 2>&1 | grep '^This is perl' 2>&1 \
+ | sed -e 's/^This is perl, \(.*\)/\1/'`
+
+if test -n "$NGX_PERL_VER"; then
+ echo " + perl version: $NGX_PERL_VER"
+
+ if [ "`echo 'use 5.006001; print "OK"' | $NGX_PERL 2>&1`" != OK ]; then
+ echo
+ echo "$0: error: perl 5.6.1 or higher is required"
+ echo
+
+ exit 1;
+ fi
+
+ CFLAGS="$CFLAGS `$NGX_PERL -MExtUtils::Embed -e ccopts`"
+ ngx_perl_ldopts=`$NGX_PERL -MExtUtils::Embed -e ldopts`
+
+ if $NGX_PERL -V:usemultiplicity | grep define > /dev/null; then
+ have=NGX_HAVE_PERL_MULTIPLICITY . auto/have
+ echo " + perl interpreter multiplicity found"
+ fi
+
+ if $NGX_PERL -V:useithreads | grep define > /dev/null; then
+ have=NGX_HAVE_PERL_CLONE . auto/have
+ echo " + perl_clone() found"
+
+ else
+ # FreeBSD port wants to link with -pthread non-threaded perl
+ ngx_perl_ldopts=`echo $ngx_perl_ldopts | sed 's/ -pthread//'`
+ fi
+
+ CORE_LINK="$CORE_LINK $ngx_perl_ldopts"
+ LINK_DEPS="$LINK_DEPS $NGX_OBJS/src/http/modules/perl/blib/arch/auto/nginx/nginx.so"
+
+ if test -n "$NGX_PERL_MODULES"; then
+ have=NGX_PERL_MODULES value="(u_char *) \"$NGX_PERL_MODULES\""
+ . auto/define
+ fi
+
+else
+ echo
+ echo "$0: error: perl 5.6.1 or higher is required"
+ echo
+
+ exit 1;
+fi
diff --git a/auto/lib/perl/make b/auto/lib/perl/make
new file mode 100644
index 000000000..36544223a
--- /dev/null
+++ b/auto/lib/perl/make
@@ -0,0 +1,33 @@
+
+# Copyright (C) Igor Sysoev
+
+
+cat << END >> $NGX_MAKEFILE
+
+$NGX_OBJS/src/http/modules/perl/blib/arch/auto/nginx/nginx.so: \
+ src/http/modules/perl/nginx.pm \
+ src/http/modules/perl/nginx.xs \
+ src/http/modules/perl/ngx_http_perl_module.h \
+ $NGX_OBJS/src/http/modules/perl/Makefile
+
+ cp -p src/http/modules/perl/nginx.* $NGX_OBJS/src/http/modules/perl/
+
+ cd $NGX_OBJS/src/http/modules/perl && make
+
+
+$NGX_OBJS/src/http/modules/perl/Makefile: src/http/modules/perl/Makefile.PL
+
+ cp -p src/http/modules/perl/nginx.* $NGX_OBJS/src/http/modules/perl/
+ cp -p src/http/modules/perl/typemap $NGX_OBJS/src/http/modules/perl/
+ cp -p src/http/modules/perl/Makefile.PL $NGX_OBJS/src/http/modules/perl/
+
+ cd $NGX_OBJS/src/http/modules/perl \
+ && NGX_PERL_CFLAGS="$NGX_PERL_CFLAGS" \
+ NGX_PCRE=$PCRE \
+ NGX_ZLIB=$ZLIB \
+ NGX_OBJS=$NGX_OBJS \
+ $NGX_PERL Makefile.PL \
+ LIB=$NGX_PERL_MODULES
+
+
+END
diff --git a/auto/make b/auto/make
index e5c5efb92..3031653c0 100644
--- a/auto/make
+++ b/auto/make
@@ -5,7 +5,7 @@
mkdir -p $NGX_OBJS/src/core $NGX_OBJS/src/event $NGX_OBJS/src/event/modules \
$NGX_OBJS/src/os/unix $NGX_OBJS/src/os/win32 \
$NGX_OBJS/src/http $NGX_OBJS/src/http/modules \
- $NGX_OBJS/src/http/modules/proxy \
+ $NGX_OBJS/src/http/modules/perl \
$NGX_OBJS/src/imap
diff --git a/auto/modules b/auto/modules
index 8a6741415..ef3a35d94 100644
--- a/auto/modules
+++ b/auto/modules
@@ -191,7 +191,6 @@ if [ $HTTP_PROXY = YES ]; then
have=NGX_HTTP_PROXY . auto/have
#USE_MD5=YES
HTTP_MODULES="$HTTP_MODULES $HTTP_PROXY_MODULE"
- HTTP_INCS="$HTTP_INCS $HTTP_PROXY_INCS"
HTTP_DEPS="$HTTP_DEPS $HTTP_PROXY_DEPS"
HTTP_SRCS="$HTTP_SRCS $HTTP_PROXY_SRCS"
fi
@@ -201,6 +200,15 @@ if [ $HTTP_FASTCGI = YES ]; then
HTTP_SRCS="$HTTP_SRCS $HTTP_FASTCGI_SRCS"
fi
+if [ $HTTP_PERL = YES ]; then
+ USE_PERL=YES
+ have=NGX_HTTP_PERL . auto/have
+ HTTP_MODULES="$HTTP_MODULES $HTTP_PERL_MODULE"
+ HTTP_INCS="$HTTP_INCS $HTTP_PERL_INCS"
+ HTTP_DEPS="$HTTP_DEPS $HTTP_PERL_DEPS"
+ HTTP_SRCS="$HTTP_SRCS $HTTP_PERL_SRCS"
+fi
+
if [ $HTTP_MEMCACHED = YES ]; then
HTTP_MODULES="$HTTP_MODULES $HTTP_MEMCACHED_MODULE"
HTTP_SRCS="$HTTP_SRCS $HTTP_MEMCACHED_SRCS"
diff --git a/auto/options b/auto/options
index da00edf47..6b991a955 100644
--- a/auto/options
+++ b/auto/options
@@ -62,6 +62,7 @@ HTTP_REFERER=YES
HTTP_REWRITE=YES
HTTP_PROXY=YES
HTTP_FASTCGI=YES
+HTTP_PERL=NO
HTTP_MEMCACHED=YES
HTTP_EMPTY_GIF=YES
@@ -90,6 +91,9 @@ ZLIB=NONE
ZLIB_OPT=
ZLIB_ASM=NO
+USE_PERL=NO
+NGX_PERL=perl
+
NGX_CPU_CACHE_LINE=
@@ -150,6 +154,10 @@ do
--without-http_memcached_module) HTTP_MEMCACHED=NO ;;
--without-http_empty_gif_module) HTTP_EMPTY_GIF=NO ;;
+ --with-http_perl_module) HTTP_PERL=YES ;;
+ --with-perl_modules_path=*) NGX_PERL_MODULES="$value" ;;
+ --with-perl=*) NGX_PERL="$value" ;;
+
# STUB
--with-http_stub_status_module) HTTP_STUB_STATUS=YES ;;
@@ -235,6 +243,10 @@ cat << END
--without-http_memcached_module disable ngx_http_memcached_module
--without-http_empty_gif_module disable ngx_http_empty_gif_module
+ --with-http_perl_module enable ngx_http_perl_module
+ --with-perl_modules_path=PATH set path to the perl modules
+ --with-perl=PATH set path to the perl binary
+
--http-log-path=PATH set path to the http access log
--http-client-body-temp-path=PATH set path to the http client request body
temporary files path
@@ -414,3 +426,16 @@ case ".$NGX_HTTP_FASTCGI_TEMP_PATH" in
NGX_HTTP_FASTCGI_TEMP_PATH=$NGX_PREFIX/$NGX_HTTP_FASTCGI_TEMP_PATH
;;
esac
+
+
+case ".$NGX_PERL_MODULES" in
+ ./*)
+ ;;
+
+ .)
+ ;;
+
+ *)
+ NGX_PERL_MODULES=$NGX_PREFIX/$NGX_PERL_MODULES
+ ;;
+esac
diff --git a/auto/sources b/auto/sources
index c352da324..5ffbc6c98 100644
--- a/auto/sources
+++ b/auto/sources
@@ -360,6 +360,12 @@ HTTP_FASTCGI_MODULE=ngx_http_fastcgi_module
HTTP_FASTCGI_SRCS=src/http/modules/ngx_http_fastcgi_module.c
+HTTP_PERL_MODULE=ngx_http_perl_module
+HTTP_PERL_INCS=src/http/modules/perl
+HTTP_PERL_DEPS=src/http/modules/perl/ngx_http_perl_module.h
+HTTP_PERL_SRCS=src/http/modules/perl/ngx_http_perl_module.c
+
+
HTTP_MEMCACHED_MODULE=ngx_http_memcached_module
HTTP_MEMCACHED_SRCS=src/http/modules/ngx_http_memcached_module.c