kumquat-buildroot/package/civetweb/civetweb.mk
John Faith db47bc9997 package/civetweb: bump version to 1.11
v1.11 now has library and header install targets for use by apps that
serve pages.  The config changes allow enabling the civetweb webserver
app binary and/or libs and headers.

The C++ interface option is automatically enabled if C++ support is
available.

The civetweb Makefile sets -fPIC in CFLAGS when linking shared
objects, but not when compiling the objects used in the library
resulting in a link failure, so add -fPIC to COPT which is added
to CFLAGS in its Makefile.

The typo patch has already been incorporated upstream, so it was
removed.

Signed-off-by: John Faith <jfaith@impinj.com>
[Thomas:
 - keep using "config", a "menuconfig" for just three sub-options is
   not relevant
 - move the BR2_PACKAGE_CIVETWEB_LIB option near the existing
   BR2_PACKAGE_CIVETWEB_SERVER option, since both allow to select what
   should be built/installed
 - remove BR2_PACKAGE_CIVETWEB_SHARED_LIB, the .mk file will use
   BR2_STATIC_LIBS/BR2_SHARED_LIBS/BR2_STATIC_SHARED_LIBS to know what
   to do
 - select BR2_PACKAGE_CIVETWEB_SERVER if BR2_PACKAGE_CIVETWEB_LIB is
   not enabled to ensure at least the server *or* the library is
   selected
 - introduce CIVETWEB_BUILD_TARGETS in the .mk file to properly use
   the appropriate make targets to build the server, static library
   and/or shared library
 - cleanup the use of CIVETWEB_INSTALL_TARGETS, and use it for both
   target and staging installation
 - factorize common installation options into a CIVETWEB_INSTALL_OPTS
   variable that is used for both the target and staging installation]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-11-26 22:21:13 +01:00

84 lines
2.3 KiB
Makefile

################################################################################
#
# civetweb
#
################################################################################
CIVETWEB_VERSION = v1.11
CIVETWEB_SITE = $(call github,civetweb,civetweb,$(CIVETWEB_VERSION))
CIVETWEB_LICENSE = MIT
CIVETWEB_LICENSE_FILES = LICENSE.md
CIVETWEB_CONF_OPTS = TARGET_OS=LINUX WITH_IPV6=1 \
$(if $(BR2_INSTALL_LIBSTDCPP),WITH_CPP=1)
CIVETWEB_COPT = -DHAVE_POSIX_FALLOCATE=0
CIVETWEB_LIBS = -lpthread -lm
CIVETWEB_SYSCONFDIR = /etc
CIVETWEB_HTMLDIR = /var/www
CIVETWEB_INSTALL_OPTS = \
DOCUMENT_ROOT="$(CIVETWEB_HTMLDIR)" \
CONFIG_FILE2="$(CIVETWEB_SYSCONFDIR)/civetweb.conf" \
HTMLDIR="$(TARGET_DIR)$(CIVETWEB_HTMLDIR)" \
SYSCONFDIR="$(TARGET_DIR)$(CIVETWEB_SYSCONFDIR)"
ifeq ($(BR2_PACKAGE_CIVETWEB_WITH_LUA),y)
CIVETWEB_CONF_OPTS += WITH_LUA=1
CIVETWEB_LIBS += -ldl
endif
ifeq ($(BR2_PACKAGE_OPENSSL),y)
CIVETWEB_COPT += -DNO_SSL_DL
CIVETWEB_LIBS += -lssl -lcrypto -lz
CIVETWEB_DEPENDENCIES += openssl
else
CIVETWEB_COPT += -DNO_SSL
endif
ifeq ($(BR2_PACKAGE_CIVETWEB_SERVER),y)
CIVETWEB_BUILD_TARGETS += build
CIVETWEB_INSTALL_TARGETS += install
endif
ifeq ($(BR2_PACKAGE_CIVETWEB_LIB),y)
CIVETWEB_INSTALL_STAGING = YES
CIVETWEB_INSTALL_TARGETS += install-headers
ifeq ($(BR2_STATIC_LIBS)$(BR2_STATIC_SHARED_LIBS),y)
CIVETWEB_BUILD_TARGETS += lib
CIVETWEB_INSTALL_TARGETS += install-lib
endif
ifeq ($(BR2_SHARED_LIBS)$(BR2_STATIC_SHARED_LIBS),y)
CIVETWEB_BUILD_TARGETS += slib
CIVETWEB_INSTALL_TARGETS += install-slib
CIVETWEB_COPT += -fPIC
endif
endif # BR2_PACKAGE_CIVETWEB_LIB
define CIVETWEB_BUILD_CMDS
$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(CIVETWEB_BUILD_TARGETS) \
$(CIVETWEB_CONF_OPTS) \
COPT="$(CIVETWEB_COPT)" LIBS="$(CIVETWEB_LIBS)"
endef
define CIVETWEB_INSTALL_STAGING_CMDS
mkdir -p $(STAGING_DIR)/usr/include
$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(CIVETWEB_INSTALL_TARGETS) \
PREFIX="$(STAGING_DIR)/usr" \
$(CIVETWEB_INSTALL_OPTS) \
$(CIVETWEB_CONF_OPTS) \
COPT='$(CIVETWEB_COPT)'
endef
define CIVETWEB_INSTALL_TARGET_CMDS
mkdir -p $(TARGET_DIR)/usr/include
$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(CIVETWEB_INSTALL_TARGETS) \
PREFIX="$(TARGET_DIR)/usr" \
$(CIVETWEB_INSTALL_OPTS) \
$(CIVETWEB_CONF_OPTS) \
COPT='$(CIVETWEB_COPT)'
endef
$(eval $(generic-package))