1
0
mirror of https://github.com/php/php-src.git synced 2026-04-04 06:32:49 +02:00
Files
archived-php-src/scripts/preconfig
Stig Bakken 2a854ca8b9 Generalized server-API build process on UNIX. Each SAPI
implementation now has its own directory under sapi/, just like
extensions have theirs under ext/.  To make the final targets appear
in the main dir, the top-level Makefile includes sapi/NN/Makefile.inc
from the selected sapi backend.  This is a plan Makefile stub without
any autoconf substitutions.  Each SAPI backend also has its own
config.m4 like extensions (read at the end of diversion 2) and
config.h.stub files.

Each SAPI backend has to contain:

config.m4: just like for extensions, this file contains
autoconf/automake directives that end up in the configure script.  The
only difference is that the sapi config.m4 files are read in diversion
(output block) 2 instead of 3.  The sapi config.m4 files should set
two variables: PHP_SAPI (which sapi backend to choose) and SAPI_TARGET
(the name of the resulting library or program, previously BINNAME).
If they are not specified, they will default to "cgi" and "php",
respectively.

Makefile.inc: has to exist, has to define "INSTALL_IT" to the command
used to install the final target (or ":" for no operation).  It also
has to define a plain Makefile rule (without autoconf substitutions)
to build $(SAPI_TARGET)

Makefile.am: just what you think.  Make sure your target is called
"libphpsapi_NNN.a", where NNN is the value of PHP_SAPI.

Some testing and fixing probably remains.  To make everything hang
together, I've done some ugly tricks that I can imagine causing some
problems.  I've built and run the CGI version and built the Apache
DSO.
1999-09-27 16:34:28 +00:00

44 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
#
# $Id$
disclaimer="Do NOT edit - this file is generated by preconfig"
# security check - simply overwriting existing files could be harmful
if test -w configure.in.new || test -w acconfig.h.new ; then
echo "Please remove the *.new files and rerun this command"
exit 1
fi
makefileams=`find ext sapi -name Makefile.am -print | sort`
makefiles=`echo $makefileams | sed -e 's/\.am//g'`
echo "dnl $disclaimer" > configure.in.new
sed -e "s#@@EXT_MAKEFILES@@#$makefiles#" configure.in.in >> configure.in.new
cmp configure.in configure.in.new > /dev/null 2>&1
if test $? -ne 0 ; then
mv configure.in.new configure.in
else
rm -f configure.in.new
fi
echo "/* $disclaimer */" > acconfig.h.new
cat acconfig.h.in >> acconfig.h.new
confighfiles=`echo ext/*/config.h.stub`
if test "$confighfiles" != "ext/*/config.h.stub"; then
for file in $confighfiles; do
cat $file >> acconfig.h.new
done
fi
confighfiles=`echo sapi/*/config.h.stub`
if test "$confighfiles" != "sapi/*/config.h.stub"; then
for file in $confighfiles; do
cat $file >> acconfig.h.new
done
fi
cmp acconfig.h acconfig.h.new > /dev/null 2>&1
if test $? -ne 0 ; then
mv acconfig.h.new acconfig.h
else
rm -f acconfig.h.new
fi