kumquat-buildroot/package/civetweb/civetweb.mk

93 lines
2.5 KiB
Makefile
Raw Normal View History

################################################################################
#
# civetweb
#
################################################################################
CIVETWEB_VERSION = 1.13
CIVETWEB_SITE = $(call github,civetweb,civetweb,v$(CIVETWEB_VERSION))
CIVETWEB_LICENSE = MIT
CIVETWEB_LICENSE_FILES = LICENSE.md
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-09-26 01:29:42 +02:00
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
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-09-26 01:29:42 +02:00
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_TOOLCHAIN_HAS_SYNC_4),)
CIVETWEB_COPT += -DNO_ATOMICS=1
endif
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 += `$(PKG_CONFIG_HOST_BINARY) --libs openssl`
CIVETWEB_DEPENDENCIES += openssl host-pkgconf
else
CIVETWEB_COPT += -DNO_SSL
endif
ifeq ($(BR2_PACKAGE_ZLIB),y)
CIVETWEB_CONF_OPTS += WITH_ZLIB=1
CIVETWEB_LIBS += -lz
CIVETWEB_DEPENDENCIES += zlib
endif
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-09-26 01:29:42 +02:00
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
endif
endif # BR2_PACKAGE_CIVETWEB_LIB
define CIVETWEB_BUILD_CMDS
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-09-26 01:29:42 +02:00
$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(CIVETWEB_BUILD_TARGETS) \
$(CIVETWEB_CONF_OPTS) \
COPT="$(CIVETWEB_COPT)" LIBS="$(CIVETWEB_LIBS)"
endef
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-09-26 01:29:42 +02:00
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
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-09-26 01:29:42 +02:00
mkdir -p $(TARGET_DIR)/usr/include
$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) $(CIVETWEB_INSTALL_TARGETS) \
PREFIX="$(TARGET_DIR)/usr" \
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-09-26 01:29:42 +02:00
$(CIVETWEB_INSTALL_OPTS) \
$(CIVETWEB_CONF_OPTS) \
COPT='$(CIVETWEB_COPT)'
endef
$(eval $(generic-package))