# ====================================================================
# Copyright (c) 1995-1997 The Apache Group.  All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in
#    the documentation and/or other materials provided with the
#    distribution.
#
# 3. All advertising materials mentioning features or use of this
#    software must display the following acknowledgment:
#    "This product includes software developed by the Apache Group
#    for use in the Apache HTTP server project (http://www.apache.org/)."
#
# 4. The names "Apache Server" and "Apache Group" must not be used to
#    endorse or promote products derived from this software without
#    prior written permission.
#
# 5. Redistributions of any form whatsoever must retain the following
#    acknowledgment:
#    "This product includes software developed by the Apache Group
#    for use in the Apache HTTP server project (http://www.apache.org/)."
#
# THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY
# EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE APACHE GROUP OR
# ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
# OF THE POSSIBILITY OF SUCH DAMAGE.
# ====================================================================
#
# This software consists of voluntary contributions made by many
# individuals on behalf of the Apache Group and was originally based
# on public domain software written at the National Center for
# Supercomputing Applications, University of Illinois, Urbana-Champaign.
# For more information on the Apache Group and the Apache HTTP server
# project, please see <http://www.apache.org/>.
# 
# Makefile for the Apache mod_perl library
# 
# $Id: Makefile,v 1.23 1997/04/30 03:00:43 dougm Exp $
#

#__ORIGINAL__

SHELL = /bin/sh

INCDIR=../../
RANLIB=ranlib
LIB=libmodperl.a

#on/off switches for Perl API hooks
#comment out to enable callbacks at a certain stage in the request
PERL_INIT    = -DNO_PERL_INIT
PERL_CLEANUP = -DNO_PERL_CLEANUP
PERL_TRANS   = -DNO_PERL_TRANS
PERL_AUTHEN  = -DNO_PERL_AUTHEN
PERL_AUTHZ   = -DNO_PERL_AUTHZ
PERL_ACCESS  = -DNO_PERL_ACCESS
PERL_TYPE    = -DNO_PERL_TYPE 
PERL_FIXUP   = -DNO_PERL_FIXUP 
PERL_LOG     = -DNO_PERL_LOG 
PERL_HEADER_PARSER = -DNO_PERL_HEADER_PARSER

PERL_STACKED_HANDLERS = -DNO_PERL_STACKED_HANDLERS
PERL_SECTIONS         = -DNO_PERL_SECTIONS
PERL_METHOD_HANDLERS  = -DNO_PERL_METHOD_HANDLERS

PERL_HOOKS = $(PERL_TRANS) $(PERL_AUTHEN) $(PERL_AUTHZ) \
 $(PERL_ACCESS) $(PERL_TYPE) $(PERL_FIXUP) $(PERL_LOG) \
 $(PERL_HEADER_PARSER) $(PERL_INIT) $(PERL_CLEANUP) \
 $(PERL_STACKED_HANDLERS) $(PERL_SECTIONS) $(PERL_METHOD_HANDLERS)

#STATIC_SRC = Apache.c
#STATIC_EXTS = Apache

#TRACE = -DPERL_TRACE
#APACHE_SSL = -DAPACHE_SSL
PERL=/usr/bin/perl
PERL_STATIC_EXTS =
PERL5LIB=`$(PERL) -MConfig -e 'print $$Config{privlibexp}'`
EXTUTILS_EMBED = $(PERL) -MExtUtils::Embed
PERL_CCFLAGS = `$(EXTUTILS_EMBED) -e ccflags -e perl_inc` $(PERL_HOOKS) $(TRACE)

XS_INIT = `$(EXTUTILS_EMBED) -e xsinit -- -std $(PERL_STATIC_EXTS) $(STATIC_EXTS)`
LD_OPTS = `$(EXTUTILS_EMBED) -e ccdlflags -e ldopts -- $(PERL_STATIC_EXTS)`

CC=`$(PERL) -MConfig -e 'print $$Config{cc}'`

# AUX_CFLAGS comes from higher level Makefile
CFLAGS=-I. -I$(INCDIR) -I$(INCDIR)/regex $(AUX_CFLAGS) $(APACHE_SSL) $(PERL_CCFLAGS) -DPERL_VERSION=$(PERL_VERSION)

default:	$(LIB)

perlxsi.c:
	$(XS_INIT) 

Apache.c: Apache.xs
	$(PERL) $(PERL5LIB)/ExtUtils/xsubpp -typemap $(PERL5LIB)/ExtUtils/typemap Apache.xs >Apache.c

PERLSRC=mod_perl.c perlxsi.c $(STATIC_SRC)

OBJS=$(PERLSRC:.c=.o)

.c.a:
	$(MAKE) $(CFLAGS) $<

$(LIB):	$(OBJS)
	rm -f $@
	ar crv $@ $(OBJS)
	$(RANLIB) $@

# dependencies
$(OBJS): mod_perl.h $(INCDIR)/httpd.h $(INCDIR)/http_config.h 
mod_perl.o: $(PERLSRC)

# various forms of cleanup
tidy:
	rm -f *.out

clean:	tidy
	rm -f *.o libmodperl.a perlxsi.c Apache.c


