# ====================================================================
# Copyright (c) 1995 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.11 1996/10/15 13:02:05 dougm Exp $
#

SHELL = /bin/sh

INCDIR=../..

LIB=libmodperl.a

#on/off switches for Perl API hooks
#comment out to enable callbacks at a certain stage in the request
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_LOGGER = -DNO_PERL_LOGGER 

PERL_HOOKS = $(PERL_TRANS) $(PERL_AUTHEN) $(PERL_AUTHZ) \
 $(PERL_ACCESS) $(PERL_TYPE) $(PERL_FIXUP) $(PERL_LOGGER) 

#TRACE = -DPERL_TRACE
PERL = /usr/local/bin/perl
PERL5LIB=`$(PERL) -MConfig -e 'print $$Config{privlib}'`
EXTUTILS_EMBED = $(PERL) -MExtUtils::Embed
PERL_CCFLAGS = `$(EXTUTILS_EMBED) -e ccflags -e perl_inc` $(PERL_HOOKS) $(TRACE)
PERL_STATIC_EXTS = -std
XS_INIT = `$(EXTUTILS_EMBED) -e xsinit -- $(PERL_STATIC_EXTS) Apache`
LD_OPTS = `$(EXTUTILS_EMBED) -e ccdlflags -e ldopts -- $(PERL_STATIC_EXTS)`

# AUX_CFLAGS comes from higher level Makefile
CFLAGS=-I. -I$(INCDIR) $(AUX_CFLAGS) $(PERL_CCFLAGS)

default:	$(LIB)

ldopts:
	@echo $(LD_OPTS)
	
perlxsi.c:
	$(XS_INIT) 

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

PERLSRC=mod_perl.c mod_perl_fast.c Apache.c perlxsi.c

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_fast.o: perlxsi.c Apache.c 

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

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


