You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

191 lines
5.7 KiB

#
# Copyright (C) 2007-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=apache
PKG_VERSION:=2.4.37
PKG_RELEASE:=1
PKG_SOURCE_NAME:=httpd
PKG_SOURCE:=$(PKG_SOURCE_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=@APACHE/httpd/
PKG_HASH:=3498dc5c6772fac2eb7307dc7963122ffe243b5e806e0be4fb51974ff759d726
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_NAME)-$(PKG_VERSION)
PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
PKG_LICENSE:=Apache License
PKG_CPE_ID:=cpe:/a:apache:http_server
PKG_INSTALL:=1
PKG_CONFIG_DEPENDS:= \
CONFIG_APACHE_HTTP2
ADDITIONAL_MODULES:=
ifeq ($(CONFIG_APACHE_HTTP2),y)
ADDITIONAL_MODULES += --enable-http2
endif
ifneq ($(CONFIG_APACHE_HTTP2),y)
ADDITIONAL_MODULES += --enable-http2=no
endif
include $(INCLUDE_DIR)/package.mk
define Package/apache/Default
SECTION:=net
CATEGORY:=Network
SUBMENU:=Web Servers/Proxies
TITLE:=The Apache Web Server
URL:=https://httpd.apache.org/
endef
define Package/apache/Default/description
The Apache Web Server is a powerful and flexible HTTP/1.1 compliant
web server. Originally designed as a replacement for the NCSA HTTP
Server, it has grown to be the most popular web server on the Internet.
endef
define Package/apache/config
source "$(SOURCE)/Config.in"
endef
define Package/apache
$(call Package/apache/Default)
DEPENDS:=+libapr +libaprutil +libpcre +libopenssl +unixodbc +zlib +APACHE_HTTP2:libnghttp2
endef
define Package/apache/description
$(call Package/apache/Default/description)
.
This package contains the Apache web server and utility programs.
.
Take care that you don't include apache at the moment into your image
please select it only as module because busybox will override
/usr/sbin/httpd. It'll be solved soon. If you need to include this
package in the image anyway, remove httpd from busybox
(Base system --> Configuration --> Networking Utilities --> httpd).
Also you should take care for the initscripts, apache's httpd isn't
compatible with the one from busybox, so if you want to use apache
for running your webif, you'll need to change the parameters in the
scripts and configure the rest in /etc/httpd.conf.
endef
define Package/apache/conffiles
/etc/apache/httpd.conf
/etc/apache/extra/httpd-autoindex.conf
/etc/apache/extra/httpd-dav.conf
/etc/apache/extra/httpd-default.conf
/etc/apache/extra/httpd-info.conf
/etc/apache/extra/httpd-languages.conf
/etc/apache/extra/httpd-manual.conf
/etc/apache/extra/httpd-mpm.conf
/etc/apache/extra/httpd-multilang-errordoc.conf
/etc/apache/extra/httpd-ssl.conf
/etc/apache/extra/httpd-userdir.conf
/etc/apache/extra/httpd-vhosts.conf
/etc/apache/magic
/etc/apache/mime.types
endef
define Package/apache-icons
$(call Package/apache/Default)
TITLE:=Icons from Apache
DEPENDS:=apache
endef
define Package/apache-icons/description
$(call Package/apache/Default/description)
.
This package contains the icons from Apache.
endef
TARGET_CFLAGS += $(FPIC) -Wno-error
TARGET_CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
TARGET_LDFLAGS += -lpthread
define Build/Configure
$(call Build/Configure/Default, \
--with-apr="$(STAGING_DIR)/usr/bin/apr-1-config" \
--with-apr-util="$(STAGING_DIR)/usr/bin/apu-1-config" \
--with-pcre="$(STAGING_DIR)/usr/bin/pcre-config" \
$(ADDITIONAL_MODULES) \
--enable-http \
--with-crypto \
--with-sqlit3="$(STAGING_DIR)/usr" \
--with-openssl="$(STAGING_DIR)/usr" \
--enable-ssl \
--enable-proxy \
--disable-disk-cache \
--enable-maintainer-mode \
--with-mpm=prefork \
--with-mpm=worker \
--enable-mime-magic \
--without-suexec-bin \
--sysconfdir=/etc/apache \
ap_cv_void_ptr_lt_long=no \
logfiledir="/var/log" \
runtimedir="/var/run" \
EXTRA_LIBS="-ldl -lpthread -lcrypto -lrt -lssl" \
)
endef
define Build/InstallDev
rm -rf $(PKG_INSTALL_DIR)/usr/man/ \
$(PKG_INSTALL_DIR)/usr/share/manual/
# if you need docs take a look into the build-dir :)
$(INSTALL_DIR) $(1)/etc
$(CP) $(PKG_INSTALL_DIR)/etc/* \
$(1)/etc
$(INSTALL_DIR) $(1)/usr/include/apache
$(CP) $(PKG_INSTALL_DIR)/usr/include/* \
$(1)/usr/include/apache
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/httpd.exp \
$(1)/usr/lib
$(INSTALL_DIR) $(1)/usr/sbin
$(CP) $(PKG_INSTALL_DIR)/usr/sbin/* \
$(1)/usr/sbin
$(INSTALL_DIR) $(1)/usr/share
$(CP) $(PKG_INSTALL_DIR)/usr/share/* \
$(1)/usr/share
endef
define Package/apache/preinst
rm /usr/sbin/httpd
echo -e "You should take a look in the initscripts, busybox's httpd \n\
uses some parameters which are maybe unsupported by apache."
endef
define Package/apache/install
$(INSTALL_DIR) $(1)/usr/sbin
# we don't need apxs on the router, it's just for building apache modules.
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/{ab,dbmmanage,htdbm,htdigest,htpasswd,httxt2dbm,logresolve} $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/{apachectl,checkgid,envvars,envvars-std,htcacheclean,httpd,rotatelogs} $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/httpd.exp $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/share
$(CP) $(PKG_INSTALL_DIR)/usr/share/{error,htdocs,cgi-bin,build} $(1)/usr/share/
$(INSTALL_DIR) $(1)/etc/apache
$(CP) $(PKG_INSTALL_DIR)/etc/apache/{httpd.conf,magic,mime.types,extra} $(1)/etc/apache/
endef
define Package/apache/postrm
rm -rf /usr/sbin/httpd
ln -s /bin/busybox /usr/sbin/httpd
echo -e "You may need to change your initscripts back for the use \n\
with busybox's httpd."
endef
define Package/apache-icons/install
$(INSTALL_DIR) $(1)/usr/share
$(CP) $(PKG_INSTALL_DIR)/usr/share/icons $(1)/usr/share/
endef
$(eval $(call BuildPackage,apache))
$(eval $(call BuildPackage,apache-icons))