## ############################################################################ ## 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) ## ############################################################################