apache-build/Makefile

260 lines
7.7 KiB
Makefile

## ############################################################################
## common targets:
## make apache-fe (worker, mod_proxy, mod_rewrite)
## make apache-be (prefork, mod_rpaf, php4)
##
## build-requirements:
## build-essential, bzip2
## libz-dev, libxml2-dev, libpng-dev, libjpeg-dev, libmysqlclient-dev, libfreetype6-dev
DESTDIR=/opt
MAKE_FLAGS=-j2
## ############################################################################
WGET := /usr/bin/wget --passive-ftp -nd
_SRCBASE=$(shell /bin/pwd)
_DOWNLOADS=$(_SRCBASE)/download
_SOURCES=$(_SRCBASE)/source
## ############################################################################
VERSION_APACHE=2.2.14
PACKAGE_APACHE=httpd-$(VERSION_APACHE).tar.bz2
DOWNLOAD_APACHE=http://apache.speedbone.de/httpd/$(PACKAGE_APACHE)
SOURCE_APACHE=$(_SOURCES)/httpd-$(VERSION_APACHE)
VERSION_RPAF=0.5
PACKAGE_RPAF=mod_rpaf-$(VERSION_RPAF).tar.gz
DOWNLOAD_RPAF=http://stderr.net/apache/rpaf/download/$(PACKAGE_RPAF)
SOURCE_RPAF=$(_SOURCES)/mod_rpaf-$(VERSION_RPAF)
VERSION_PHP=5.2.12
PACKAGE_PHP=php-$(VERSION_PHP).tar.bz2
DOWNLOAD_PHP=http://de3.php.net/get/$(PACKAGE_PHP)/from/this/mirror
SOURCE_PHP=$(_SOURCES)/php-$(VERSION_PHP)
VERSION_EACCELERATOR=0.9.5.3
PACKAGE_EACCELERATOR=eaccelerator-$(VERSION_EACCELERATOR).tar.bz2
DOWNLOAD_EACCELERATOR=http://bart.eaccelerator.net/source/$(VERSION_EACCELERATOR)/$(PACKAGE_EACCELERATOR)
SOURCE_EACCELERATOR=$(_SOURCES)/eaccelerator-$(VERSION_EACCELERATOR)
## ############################################################################
all: apache-fe apache-dav apache-be
fetch: $(_DOWNLOADS)/$(PACKAGE_APACHE) \
$(_DOWNLOADS)/$(PACKAGE_RPAF) \
$(_DOWNLOADS)/$(PACKAGE_PHP) \
$(_DOWNLOADS)/$(PACKAGE_EACCELERATOR)
$(_DOWNLOADS)/$(PACKAGE_APACHE):
$(WGET) -P $(_DOWNLOADS) $(DOWNLOAD_APACHE)
$(SOURCE_APACHE)/.unpacked: $(_DOWNLOADS)/$(PACKAGE_APACHE)
mkdir -p $(SOURCE_APACHE)
tar -C $(_SOURCES) -xjf $(_DOWNLOADS)/$(PACKAGE_APACHE)
cat apache-layouts >> $(SOURCE_APACHE)/config.layout
touch $@
$(_DOWNLOADS)/$(PACKAGE_RPAF):
$(WGET) -P $(_DOWNLOADS) $(DOWNLOAD_RPAF)
$(SOURCE_RPAF)/.unpacked: $(_DOWNLOADS)/$(PACKAGE_RPAF)
mkdir -p $(SOURCE_RPAF)
tar -C $(_SOURCES) -xzf $(_DOWNLOADS)/$(PACKAGE_RPAF)
touch $@
$(_DOWNLOADS)/$(PACKAGE_PHP):
$(WGET) -P $(_DOWNLOADS) $(DOWNLOAD_PHP)
$(SOURCE_PHP)/.unpacked: $(_DOWNLOADS)/$(PACKAGE_PHP)
mkdir -p $(SOURCE_PHP)
tar -C $(_SOURCES) -xjf $(_DOWNLOADS)/$(PACKAGE_PHP)
touch $@
$(_DOWNLOADS)/$(PACKAGE_EACCELERATOR):
$(WGET) -P $(_DOWNLOADS) $(DOWNLOAD_EACCELERATOR)
$(SOURCE_EACCELERATOR)/.unpacked: $(_DOWNLOADS)/$(PACKAGE_EACCELERATOR)
mkdir -p $(SOURCE_EACCELERATOR)
tar -C $(_SOURCES) -xjf $(_DOWNLOADS)/$(PACKAGE_EACCELERATOR)
touch $@
## ############################################################################
_APACHE_DAV_BUILD=$(_SOURCES)/apache22-webdav
_APACHE_DAV_DEST=$(DESTDIR)/apache22-webdav
_APACHE_DAV_CONF=/etc/apache22-dav
apache-dav: $(_APACHE_DAV_BUILD)/.installed
$(_APACHE_DAV_BUILD)/.configured: $(SOURCE_APACHE)/.unpacked
mkdir -p $(_APACHE_DAV_BUILD)
( cd $(_APACHE_DAV_BUILD); \
$(SOURCE_APACHE)/configure \
--enable-layout=Webdav \
--with-mpm=worker \
--enable-dav \
--enable-dav-fs \
);
touch $@
$(_APACHE_DAV_BUILD)/.compiled: $(_APACHE_DAV_BUILD)/.configured
make $(MAKE_FLAGS) -C $(_APACHE_DAV_BUILD) all
touch $@
$(_APACHE_DAV_BUILD)/.installed: $(_APACHE_DAV_BUILD)/.compiled
make -C $(_APACHE_DAV_BUILD) install
rm -rf $(_APACHE_DAV_CONF)/original
touch $@
apache-dav-clean:
rm -rf $(_APACHE_DAV_BUILD)
## ############################################################################
_APACHE_FE_BUILD=$(_SOURCES)/apache22-frontend
_APACHE_FE_DEST=$(DESTDIR)/apache22-frontend
_APACHE_FE_CONF=/etc/apache22-fe
apache-fe: $(_APACHE_FE_BUILD)/.installed
$(_APACHE_FE_BUILD)/.configured: $(SOURCE_APACHE)/.unpacked
mkdir -p $(_APACHE_FE_BUILD)
( cd $(_APACHE_FE_BUILD); \
$(SOURCE_APACHE)/configure \
--enable-layout=Frontend \
--with-mpm=worker \
--enable-proxy \
--enable-proxy-http \
--enable-proxy-balancer \
--enable-rewrite \
);
touch $@
$(_APACHE_FE_BUILD)/.compiled: $(_APACHE_FE_BUILD)/.configured
make $(MAKE_FLAGS) -C $(_APACHE_FE_BUILD) all
touch $@
$(_APACHE_FE_BUILD)/.installed: $(_APACHE_FE_BUILD)/.compiled
make -C $(_APACHE_FE_BUILD) install
rm -rf $(_APACHE_FE_CONF)/original
touch $@
apache-fe-clean:
rm -rf $(_APACHE_FE_BUILD)
## ############################################################################
_APACHE_BE_BUILD=$(_SOURCES)/apache22-backend
_APACHE_BE_DEST=$(DESTDIR)/apache22-backend
_APACHE_BE_CONF=/etc/apache22-be
_APACHE_BE_LOG=/var/log/apache22-be
_PHP_BE_BUILD=$(_SOURCES)/apache22-backend-php
_PHP_BE_DEST=$(DESTDIR)/apache22-backend-php
_PHP_BE_CONF=/etc/apache22-be
apache-be: $(_APACHE_BE_BUILD)/.installed \
$(SOURCE_RPAF)/.installed \
$(_PHP_BE_BUILD)/.installed \
$(SOURCE_EACCELERATOR)/.installed
$(_APACHE_BE_BUILD)/.configured: $(SOURCE_APACHE)/.unpacked
mkdir -p $(_APACHE_BE_BUILD)
( cd $(_APACHE_BE_BUILD); \
$(SOURCE_APACHE)/configure \
--enable-layout=Backend \
--with-mpm=prefork \
--enable-so \
);
touch $@
$(_APACHE_BE_BUILD)/.compiled: $(_APACHE_BE_BUILD)/.configured
make $(MAKE_FLAGS) -C $(_APACHE_BE_BUILD) all
touch $@
$(_APACHE_BE_BUILD)/.installed: $(_APACHE_BE_BUILD)/.compiled
make -C $(_APACHE_BE_BUILD) install
rm -rf $(_APACHE_BE_CONF)/original
touch $@
$(SOURCE_RPAF)/.compiled: $(SOURCE_RPAF)/.unpacked $(_APACHE_BE_BUILD)/.installed
make -C $(SOURCE_RPAF) APXS=$(_APACHE_BE_DEST)/bin/apxs rpaf-2.0
touch $@
$(SOURCE_RPAF)/.installed: $(SOURCE_RPAF)/.compiled
make -C $(SOURCE_RPAF) APXS=$(_APACHE_BE_DEST)/bin/apxs install-2.0
touch $@
$(_PHP_BE_BUILD)/.configured: $(SOURCE_PHP)/.unpacked $(_APACHE_BE_BUILD)/.installed
mkdir -p $(_PHP_BE_BUILD)
( cd $(_PHP_BE_BUILD); \
$(SOURCE_PHP)/configure \
--prefix=$(_PHP_BE_DEST) \
--with-apxs2=$(_APACHE_BE_DEST)/bin/apxs \
--with-config-file-path=$(_PHP_BE_CONF) \
--disable-cgi \
--with-layout=GNU \
--disable-rpath \
--disable-ipv6 \
--disable-static \
--enable-sockets \
--enable-inline-optimization \
--with-zlib \
--with-regex=system \
--with-gd \
--with-png-dir=/usr \
--with-jpeg-dir=/usr \
--with-freetype-dir=/usr/include/freetype2 \
--with-mysql=/usr \
);
touch $@
$(_PHP_BE_BUILD)/.compiled: $(_PHP_BE_BUILD)/.configured
make $(MAKE_FLAGS) -C $(_PHP_BE_BUILD) all
touch $@
$(_PHP_BE_BUILD)/.installed: $(_PHP_BE_BUILD)/.compiled
make -C $(_PHP_BE_BUILD) install
# copy default php.ini
cp $(SOURCE_PHP)/php.ini-dist $(_PHP_BE_CONF)/php.ini.dist
# set extension-dir
sed -i $(_PHP_BE_CONF)/php.ini.dist \
-e 's:^extension_dir.*$$:extension_dir = $(shell $(_PHP_BE_DEST)/bin/php-config --extension-dir):'
touch $@
$(SOURCE_EACCELERATOR)/.configured: $(SOURCE_EACCELERATOR)/.unpacked $(_PHP_BE_BUILD)/.installed
( cd $(SOURCE_EACCELERATOR); \
$(_PHP_BE_DEST)/bin/phpize; \
./configure \
--with-eaccelerator=shared \
--with-php-config=$(_PHP_BE_DEST)/bin/php-config \
);
touch $@
$(SOURCE_EACCELERATOR)/.compiled: $(SOURCE_EACCELERATOR)/.configured
make $(MAKE_FLAGS) -C $(SOURCE_EACCELERATOR) all
touch $@
$(SOURCE_EACCELERATOR)/.installed: $(SOURCE_EACCELERATOR)/.compiled
make -C $(SOURCE_EACCELERATOR) install
# enable eaccelerator
sed $(SOURCE_EACCELERATOR)/eaccelerator.ini \
-e 's:^zend_extension:;zend_extension:' \
-e 's:;extension="eaccelerator.so":extension="eaccelerator.so":' \
-e 's:^eaccelerator.log_file.*$$:eaccelerator.log_file = "$(_APACHE_BE_LOG)/eaccelerator.log":' \
>> $(_PHP_BE_CONF)/php.ini.dist
touch $@
apache-be-clean:
rm -rf $(_APACHE_BE_BUILD)
rm -rf $(SOURCE_RPAF)
rm -rf $(_PHP_BE_BUILD)
rm -rf $(SOURCE_EACCELERATOR)
## ############################################################################