# +----------------------------------------------------------------------+
# | PHP HTML Embedded Scripting Language Version 4.0                     |
# +----------------------------------------------------------------------+
# | Copyright (c) 1997-1999 PHP Development Team (See Credits file)      |
# +----------------------------------------------------------------------+
# | This program is free software; you can redistribute it and/or modify |
# | it under the terms of one of the following licenses:                 |
# |                                                                      |
# |  A) the GNU General Public License as published by the Free Software |
# |     Foundation; either version 2 of the License, or (at your option) |
# |     any later version.                                               |
# |                                                                      |
# |  B) the PHP License as published by the PHP Development Team and     |
# |     included in the distribution in the file: LICENSE                |
# |                                                                      |
# | This program is distributed in the hope that it will be useful,      |
# | but WITHOUT ANY WARRANTY; without even the implied warranty of       |
# | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        |
# | GNU General Public License for more details.                         |
# |                                                                      |
# | You should have received a copy of both licenses referred to here.   |
# | If you did not, or have any questions about PHP licensing, please    |
# | contact core@php.net.                                                |
# +----------------------------------------------------------------------+

#
# $Id$
#

prefix = @prefix@
exec_prefix = @exec_prefix@
srcdir = @srcdir@
VPATH = @srcdir@
bindir = @bindir@

top_builddir = .

ZEND_DIR = $(srcdir)/libzend
TSRM_DIR = @TSRM_DIR@
SUBDIRS=libzend ext $(TSRM_DIR) sapi

PACKAGE = @PACKAGE@
VERSION = @VERSION@
LN_S = @LN_S@
CC = @CC@
AR = ar rc
PHP_SAPI = @PHP_SAPI@
SAPI_TARGET = @SAPI_TARGET@
INSTALL_IT = @INSTALL_IT@
EXTRA_LIBS = @EXTRA_LIBS@
EXT_LIBS = @EXT_LIBS@
INCLUDES = @INCLUDES@
INCLUDE = -I$(srcdir) -I. -I$(ZEND_DIR) -I$(srcdir)/TSRM $(INCLUDES)
PROF_CFLAGS =
CFLAGS_SHLIB = @CFLAGS_SHLIB@
LDFLAGS_SHLIB = @LDFLAGS_SHLIB@
LDFLAGS_SHLIB_EXPORT = @LDFLAGS_SHLIB_EXPORT@
CPPFLAGS = @CPPFLAGS@
DEFS = @DEFS@
VERSION_SCRIPT = @VERSION_SCRIPT@
RPATHS = @RPATHS@
CFLAGS = @CFLAGS@ @DEBUG_CFLAGS@ $(PROF_CFLAGS)
COMPILE = $(CC) $(CFLAGS) $(CFLAGS_SHLIB) $(CPPFLAGS) $(INCLUDE) $(DEFS) @STRONGHOLD@ 
LDFLAGS = $(VERSION_SCRIPT) $(RPATHS) @LDFLAGS@ $(LDFLAGS_SHLIB) $(LDFLAGS_SHLIB_EXPORT) -L$(ZEND_DIR)
REGCFLAGS = $(CFLAGS)
RANLIB = @RANLIB@
YACC = @YACC@
MAINT = @MAINT@
APXS = @APXS@
APXS_LDFLAGS = $(EXTRA_LIBS) $(LIBS)
APXS_EXP = @APXS_EXP@
WARNING_LEVEL = @WARNING_LEVEL@
LEX_CFLAGS = -w$(WARNING_LEVEL) @LEX_CFLAGS@
EXT_SHARED = @EXT_SHARED@
LIBOBJS = @LIBOBJS@
REGEX_LIB = @REGEX_LIB@
FHTTPD_LIB = @FHTTPD_LIB@
TSRM_LIB = @TSRM_LIB@
APACHE_INSTALL = @APACHE_INSTALL@

SOURCE = main.c internal_functions.c snprintf.c php3_sprintf.c \
       configuration-parser.c configuration-scanner.c request_info.c \
       safe_mode.c fopen-wrappers.c php3_realpath.c alloca.c output.c \
       php_ini.c SAPI.c rfc1867.c dlist.c php_content_types.c

OBJS = $(SOURCE:.c=.o) $(LIBOBJS)
PHPLIBS = -Llibzend -lzend -Lext -lphpext
LIBS = $(PHPLIBS) $(EXTRA_LIBS) @LIBS@

all: $(SAPI_TARGET)

all-recursive clean-recursive distclean-recursive \
maintainer-clean-depend-recursive:
	@set fnord $(MAKEFLAGS); amf=$$2; \
	for subdir in $(SUBDIRS); do \
		target=`echo $@ | sed s/-recursive//`; \
		echo "Making $$target in $$subdir"; \
		(cd $$subdir && $(MAKE) $$target) || fail=yes; \
	done && test -z "$$fail"

include $(srcdir)/sapi/$(PHP_SAPI)/Makefile.inc

regex/libregex.a:
	(cd regex; $(MAKE) lib)

configuration-parser.h configuration-parser.c:	$(srcdir)/configuration-parser.y
	bison -p cfg -v -d $(srcdir)/configuration-parser.y -o configuration-parser.c

configuration-scanner.o:	configuration-scanner.c
	$(COMPILE) $(LEX_CFLAGS) -c configuration-scanner.c

configuration-scanner.c:	$(srcdir)/configuration-scanner.l
	flex -Pcfg -oconfiguration-scanner.c -i $(srcdir)/configuration-scanner.l

clean: clean-recursive
	-rm -f libphp4.a libmodphp4.a libphp4.so php *.o
	-rm -f test/php.desc test/php.in test/php.out test/php.test
	-rm -f test/a.tmp test/b.tmp test/test.dbm*

distclean: clean distclean-recursive
	-rm -f *-parser.[ch] *-scanner.c *.output
	-rm -f config.status config.cache config.log
	-rm -f Makefile Makefile.depend php_config.h build-defs.h
	-rm -f libphp4.module stamp-h buildconf.stamp
	-rm -f regex/*.o regex/*.a regex/*.ih
	-rm -f doc/checkdoc doc/funcparse doc/version.ent
	-rm -f do-conf test/test.log
	-rm -f doc/Makefile regex/Makefile

distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)

dist: distdir
	-chmod -R a+r $(distdir)
	tar chozf $(distdir).tar.gz $(distdir)
	-rm -rf $(distdir)

distdir:
	-rm -rf $(distdir)
	files=`echo *` ;\
	mkdir $(distdir) ;\
	for file in $$files ; do \
		d=$(srcdir); \
		if test -d $$d/$$file ; then \
			cp -pr $$d/$$file $(distdir)/$$file; \
		else \
			test -f $(distdir)/$$file \
			|| ln $$d/$$file $(distdir)/$$file 2> /dev/null \
			|| cp -p $$d/$$file $(distdir)/$$file || :; \
		fi; \
	done
	(cd $(distdir) ; $(MAKE) distclean)
	cd $(distdir)/libzend ;\
	flex -Pzend -ozend-scanner.c -i zend-scanner.l ;\
	bison -p zend -v -d zend-parser.y -o zend-parser.c
	cd $(distdir) ;\
	flex -Pcfg -oconfiguration-scanner.c -i configuration-scanner.l ;\
	bison -p cfg -v -d configuration-parser.y -o configuration-parser.c
	find $(distdir) -name CVS -o -name .cvsignore | xargs rm -rf

maintainer-clean-depend: maintainer-clean-depend-recursive

bench: php
	./php -c. tests/bench.phtml

# can't use a single rule for this because 'test' is a directory
test: regression
regression check: php
	cd test && ./testall

config.status: configure
	./config.status --recheck

build-defs.h php_config.h: stamp-h
stamp-h: php_config.h.in config.status
	CONFIG_FILES='build-defs.h stamp-h' ./config.status

Makefile: Makefile.in config.status
	CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status

#
# You must use '--enable-maintainer-mode' with configure to enable
# these rules, which requires autoconf be installed.
#
configure: @MAINT@ configure.in aclocal.m4
	cd $(srcdir) && autoconf

php_config.h.in: @MAINT@ stamp-h.in
stamp-h.in: configure.in aclocal.m4 acconfig.h
	cd ${srcdir} && autoheader && touch ${srcdir}/stamp-h.in

install: install-recursive $(SAPI_TARGET)
	$(INSTALL_IT)

install-recursive:
	if test "$(EXT_SHARED)" != ""; then \
		for dir in X $(EXT_SHARED); do \
			test -d ext/$$dir && (cd ext/$$dir; $(MAKE) install); \
		done; \
	fi

indent:	clean
	indent -v -kr -cli4 -ts4 \
	-T pval -T HashTable -T Bucket -T Token -T TokenCache -T TokenCacheManager \
	-T switch_expr -T internal_function -T control_structure_data \
	-T MemoryHashTable -T MemoryBucket \
	-T pvalue_value -T Stack *.c *.h
	rm -f *~

.c.o:
	$(COMPILE) -c $< 

parser-scanner:	configuration-parser.c configuration-scanner.c

depend:	parser-scanner
	$(CC) $(CFLAGS) -MM $(SOURCE) | perl -pe 's|regex/regex.h||;' > Makefile.depend
	$(CC) $(CFLAGS) -MM $(FUNCTIONS_SOURCE) | perl -pe 's|^(.+\.o)|functions/$$1|; s|regex/regex.h||;' >> Makefile.depend

# Local Variables:
# tab-width: 4
# End: