jw-pkg/make/defs.mk
Jan Lindemann f70b14e92b
defs.mk: Disable BUILD_PKG_CONFIG
BUILD_PKG_CONFIG installs files across project directories into
$(JWBDIR) because of this:

   BUILD_PKG_CONFIGDIR      = $(JWBDIR)/pkgconfig

The concept is currently not used by any downstream project anymore,
hence it lacks sufficient testing at this point. Moreover, it breaks
building repos which are sandboxed to their own root directory,
because it tries to install the generated .pc file back into
$(JWBDIR). The concept itself isn't entirely off, so leave the code
in, disabled, with a comment.

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-08-11 16:45:14 +02:00

549 lines
20 KiB
Makefile

# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
ifndef JW_PKG_DEF_MK_INCLUDED
JW_PKG_DEF_MK_INCLUDED = true
MAKEFLAGS += -r
empty :=
space := $(empty) $(empty)
comma := ,
Q ?= @
# ----- Executables
include $(JWBDIR)/make/projects.mk
ifndef WHICH
WHICH := $(firstword $(wildcard /usr/bin/which) $(shell which which))
endif
ifndef GREP
GREP := $(shell $(WHICH) grep)
endif
ifndef ECHO
ECHO := $(shell $(WHICH) echo)
endif
ifndef TEST
TEST := $(shell $(WHICH) test)
endif
ifndef SED
SED := $(shell $(WHICH) sed)
endif
ifndef CAT
CAT := $(shell $(WHICH) cat)
endif
ifndef BROWSER
BROWSER := $(shell $(WHICH) xdg-open)
endif
ifeq ($(origin RM),default)
RM := $(shell $(WHICH) rm)
endif
ifndef AR
AR := $(shell $(WHICH) ar)
endif
#ifndef PWD
PWD := $(shell $(WHICH) pwd)
#endif
ifndef CWD
CWD := $(shell $(PWD))
endif
ifndef BIN_INSTALL
BIN_INSTALL := $(shell $(WHICH) install)
endif
ifndef SUDO
SUDO := $(shell $(WHICH) sudo)
endif
ifndef MY_SHELL
MY_SHELL := /bin/bash
endif
ifndef ID
ID := $(shell $(WHICH) id)
endif
ifndef CUT
CUT := $(shell $(WHICH) cut)
endif
ifndef TR
TR := $(shell $(WHICH) tr)
endif
ifndef AWK
AWK := $(shell $(WHICH) awk)
endif
ifndef GETENT
GETENT := $(shell $(WHICH) getent)
endif
ifndef XARGS
XARGS := $(shell $(WHICH) xargs)
endif
ifndef FIND
FIND := $(shell $(WHICH) find)
endif
ifndef PRINTF
PRINTF := $(shell $(WHICH) printf)
endif
ifndef MINIMAL_MAKEFLAGS
MINIMAL_MAKEFLAGS :=
endif
ifndef MINIMAL_PATH
MINIMAL_PATH := /usr/sbin:/usr/bin:/sbin:/bin
endif
ifndef MINIMAL_LD_LIBRARY_PATH
MINIMAL_LD_LIBRARY_PATH :=
endif
ifndef MINIMAL_UMASK
MINIMAL_UMASK := 0002
endif
ifndef PRISTINE_MAKE
PRISTINE_MAKE := umask $(MINIMAL_UMASK) && MAKEFLAGS=$(MINIMAL_MAKEFLAGS) LD_LIBRARY_PATH=$(MINIMAL_LD_LIBRARY_PATH) PATH=$(MINIMAL_PATH) $(MAKE)
endif
ifndef SHELLCHECK
SHELLCHECK := $(shell $(WHICH) shellcheck)
endif
ifdef SHELLCHECK
SHELLCHECK += -f gcc
else
SHELLCHECK := bash -n
endif
# ----- Function definitions
reverse = $(if $(wordlist 2,2,$(1)),$(call reverse,$(wordlist 2,$(words $(1)),$(1))) $(firstword $(1)),$(1))
make_subdirs = set -e; for D in $(SUBDIRS) ; do make -C $$D ; done
make_subdirs_target = set -e; for D in $(SUBDIRS) ; do make -C $$D $@; done
install_local_cfg = $(INSTALL) -p -o $(CFGOWNER) -g $(CFGGROUP) -m $(CFGMODE) $< $@
cvs_files = sh $(JWB_SCRIPT_DIR)/scm.sh ls-files -f
add_flavour_prefix = $(SED) "s/\([^ ][^ ]*\) *\([<>=]*\) *\([^ ]*\)/$(FLAVOUR_PREFIX)\1 \2 \3/g"
beautify_lib_path = $(SED) 's/:/\n + /g'
find_files = $(wildcard $(addsuffix /$(1),$(patsubst :, ,$(2))))
find_file = $(firstword $(call find_files,$(1),$(2)) $(1)-not-found)
define install_links
cwd="$(CWD)"; \
$(ECHO) "o in $(INSTALL_$(1)DIR):" ;\
for f in $(notdir $(INSTALLED_$(1))); do \
cd $(INSTALL_$(1)DIR); \
$(ECHO) " $(SUDO) ln -sf $$cwd/$$f" ; \
$(SUDO) ln -sf $$cwd/$$f; \
done;
endef
uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1)))
# ----- Standard variables
ifeq ($(PROJECT),)
PROJECT := $(shell $(ECHO) $(patsubst $(FLAVOUR_PREFIX)%,%,$(notdir $(realpath $(TOPDIR)))) | $(SED) 's/-[0-9]\+\..*//')
endif
ifneq ($(wildcard $(TOPDIR)/.git),)
VCS ?= git
else ifneq ($(wildcard $(TOPDIR)/CVS),)
VCS ?= cvs
endif
ifndef BUILD_TOOLS_PREFIX
ifdef BUILD_LIBS_PREFIX
BUILD_TOOLS_PREFIX = $(BUILD_LIBS_PREFIX)
endif
endif
ifdef BUILD_LIBS_PREFIX
ifndef BUILD_TOOLS_PREFIX
BUILD_LIBS_PREFIX = $(BUILD_TOOLS_PREFIX)
endif
endif
# ----- User and organization
ifndef BUILD_USER
BUILD_USER := $(shell $(ID) -un)
endif
ifndef BUILD_GROUP
BUILD_GROUP := $(shell $(ID) -gn)
endif
JANWARE_USER ?= $(BUILD_USER)
export JANWARE_USER
ifndef FULL_NAME
FULL_NAME := $(shell $(ID) -nu | $(XARGS) $(GETENT) passwd | $(CUT) -d: -f5)
endif
JANWARE_CLIENT ?= jw
CUSTOMER ?= $(JANWARE_CLIENT)
ifeq ($(JANWARE_CLIENT),jw)
JANWARE_WIKI ?= priv
else
JANWARE_WIKI ?= $(JANWARE_CLIENT)
endif
JANWARE_URL_DOC_MODULE ?= https://janware.com/wiki/$(JANWARE_WIKI)/assets/types/data/sw/$(PROJECT)/$(notdir $(CWD))
JANWARE_URL_DOC_PROJECT ?= https://janware.com/wiki/$(JANWARE_WIKI)/assets/types/data/sw/$(PROJECT)/start
PUBLIC_PATH_DEVEL_DOC = /doc/devel
UPLOAD_URL_DEVEL_DOC = rsync_ssh://$(JANWARE_USER)@janware.com:/srv/dav/pub/clients/$(JANWARE_CLIENT)/$(PUBLIC_PATH_DEVEL_DOC)
PKG_VENDOR ?= janware GmbH
# ----- Packaging variables
PKG_SH_EXE := /bin/bash $(JWB_SCRIPT_DIR)/pkg.sh
LOG_INSTALL_SH := $(PKG_SH_EXE) log-install -f $(PKG_FORMAT)
UPDATE_REPO_SH := /opt/packager-server/bin/packager-server schedule-rebuild
ifdef INSTALL_LINK
INSTALL = $(SUDO) $(LOG_INSTALL_SH) -WA $(LOG_INSTALL_EXTRA_OPTS)
LINK_LIB = $(SUDO) $(LOG_INSTALL_SH) -LA $(LOG_INSTALL_EXTRA_OPTS)
else ifdef INSTALL_SYMLINK
INSTALL = $(SUDO) $(LOG_INSTALL_SH) -LA $(LOG_INSTALL_EXTRA_OPTS)
LINK_LIB = $(SUDO) $(LOG_INSTALL_SH) -LA $(LOG_INSTALL_EXTRA_OPTS)
else
ifdef INSTALL_LOG
INSTALL = $(LOG_INSTALL_SH) -p -l $(INSTALL_LOG) $(LOG_INSTALL_EXTRA_OPTS)
LINK_LIB = $(LOG_INSTALL_SH) -L -l $(INSTALL_LOG) $(LOG_INSTALL_EXTRA_OPTS)
else
ifndef INSTALL
ifeq ($(DEVELOPMENT),false)
INSTALL = $(SUDO) install
else
INSTALL = install
endif
endif
ifndef LINK_LIB
LINK_LIB = $(LOG_INSTALL_SH) -L
endif
endif
endif
ifeq ($(PKG_FORMAT),debian)
RPM ?= /bin/bash $(JWB_SCRIPT_DIR)/dpm.sh
PKG_ARCH := $(shell dpkg --print-architecture)
PKG_SUFFIX ?= deb
else
RPM ?= /bin/rpm
PKG_ARCH ?= $(TARGET_ARCH)
PKG_SUFFIX ?= rpm
endif
ifeq ($(PKG_FORMAT),debian)
export INCLUDE_REV_IN_VERSIONS = true
endif
PROJECT_DESCR_FILE ?= $(wildcard $(TOPDIR)/make/project.conf)
PROJECT_SHORT_NAME ?= $(PROJECT)
PROJECT_CAPNAME := $(shell $(ECHO) $(PROJECT) | $(TR) "[a-z]" "[A-Z]" | $(SED) 's/-/_/g')
PROJECT_DESCR ?= $(call proj_query, summary $(PROJECT))
PROJECT_SUMMARY ?= $(PROJECT_DESCR)
ifneq ($(PROJECT_DESCR_FILE),)
ifeq ($(shell $(GREP) "^ *subpackages * = .*devel" $(PROJECT_DESCR_FILE)),)
CREATE_DEVEL = false
endif
endif
CREATE_DEVEL ?= true
PACKAGE_INSTALL_DIR ?= true
ifeq ($(VERSION),)
ifneq ($(wildcard $(VERSION_FILE)),)
VERSION := $(shell $(CAT) $(VERSION_FILE))
else
VERSION := $(shell echo 1.0.0-0-dev | tee $(VERSION_FILE))
$(warning Automatically created missing $(VERSION_FILE).)
endif
endif
DIST_VERSION ?= $(patsubst %-dev,%,$(VERSION))
HEX_VERSION := $(shell $(ECHO) $(DIST_VERSION) | \
$(SED) 's/-dev//; s/pre[^\.]*//; s/F[^\.]//; s/[\.-]/ /g' | $(XARGS) $(PRINTF) "0x%02x%02x%02x%02x")
BINARY_VERSION := $(shell $(ECHO) $(PROJECT)_$(DIST_VERSION) | $(TR) "[a-z]" "[A-Z]" | $(SED) 's/-[^-]*$$//; s/-/_/g')
WINVERSION = $(subst .,_,$(VERSION))
LOCAL_VERSION = $(VERSION)
LOCAL_WINVERSION = $(subst .,_,$(VERSION))
DIST_VERSION = $(patsubst %-dev,%,$(VERSION))
DIST_WINVERSION = $(patsubst %-dev,%,$(WINVERSION))
LOCAL_DIST_VERSION = $(patsubst %-dev,%,$(LOCAL_VERSION))
LOCAL_DIST_WINVERSION = $(patsubst %-dev,%,$(LOCAL_WINVERSION))
DIST_VERSION_WORDS = $(subst ., ,$(subst -, ,$(DIST_VERSION)))
MAJOR_VERSION = $(word 1,$(DIST_VERSION_WORDS))
MINOR_VERSION = $(word 2,$(DIST_VERSION_WORDS))
RELEASE_VERSION = $(word 2,$(DIST_VERSION_WORDS))
BUILD_NUMBER = $(word 4,$(DIST_VERSION_WORDS))
MAJOR_MINOR_RELEASE = $(MAJOR_VERSION).$(MINOR_VERSION).$(RELEASE_VERSION)
CVS_RSH ?= /usr/bin/ssh
# ----- Input dirs
JW_PKG_DIR = $(JWBDIR)
JW_PKG_CONF_BASE_DIR ?= $(firstword $(wildcard $(JW_PKG_DIR)/conf /etc/opt/jw-pkg))
JW_PKG_CONF_DIR ?= $(firstword $(wildcard $(JW_PKG_CONF_BASE_DIR)/project $(JW_PKG_CONF_BASE_DIR)))
JW_PKG_TMPL_DIR ?= $(JW_PKG_CONF_BASE_DIR)/templates
PROJECT_STEM = $(PROJECT)-$(DIST_VERSION)
# only works if checked out true to CVS, i.e. below proj
ifeq ($(VCS),cvs)
CVS_MODULE = $(shell $(SED) "s%/$$%%" CVS/Repository)
CVS_ROOT_DIR = $(patsubst %/$(CVS_MODULE),%,$(CWD))
endif
REV_SUBDIRS = $(call reverse $(SUBDIRS))
PCKG_DEFS_DIR = $(JWBDIR)/make/defs.d
HDRDIR_SCOPE_SUFFIX ?= $(PROJECT)
CONTRIB_MOD += $(addprefix contrib/,$(CONTRIB_LIBS))
REQUIRED := $(CONTRIB_MOD) $(REQUIRED)
ifeq ($(DEVELOPMENT),true)
-include $(JWBDIR)/make/defs-dev.mk
ifneq ($(wildcard $(TOPDIR)/make/cfg_dev.mk),)
include $(TOPDIR)/make/cfg_dev.mk
endif
else
-include $(JWBDIR)/make/defs-dist.mk
ifneq ($(wildcard $(TOPDIR)/make/cfg_dist.mk),)
include $(TOPDIR)/make/cfg_dist.mk
endif
endif
IMAGES += $(wildcard *.png *.jpg *.bmp *.gif *.ico *.svg)
FONTS += $(wildcard *.woff *.svg)
OPTS_PID_FILE ?= $(PIDDIR)/$(PROJECT).pid
LOCAL_MKFILES ?= $(wildcard GNUmakefile makefile Makefile *.mk)
LOG_QUAL_PREFIX ?= $(LOGID):
# -- standard dirs and files for build and install
# -- CFG
INSTALLATION_FILE_TYPES += CFG
CONFIG_FILE ?= $(CONFIG_DIR)/$(PROJECT).conf
BUILD_CFGDIR = $(TOPDIR)/conf
ifeq ($(CONFIG_SUBDIR),)
INSTALL_CFGDIR ?= $(CONFIG_DIR)
else
INSTALL_CFGDIR ?= $(CONFIG_DIR)/$(CONFIG_SUBDIR)
endif
LOCAL_CFG ?= $(filter-out %.site.conf, $(filter-out rsyslog-%, $(wildcard *.conf *.xml *.bprof *.jw-tmpl *.ini *.yaml *.toml))) $(LOCAL_EXTRA_CFG)
INSTALLED_CFG ?= $(addprefix $(INSTALL_CFGDIR)/,$(LOCAL_CFG))
# -- TMPFILES
INSTALLATION_FILE_TYPES += TMPFILES
TMPFILES += $(filter-out $(DONT_INSTALL),$(wildcard *.tmpfiles))
BUILD_TMPFILESDIR = $(TOPDIR)/bin/tmpfiles/conf.d
INSTALL_TMPFILESDIR = $(TMPFILES_DIR)
INSTALLED_TMPFILES = $(addprefix $(INSTALL_TMPFILESDIR)/,$(patsubst %.tmpfiles,%.conf,$(TMPFILES)))
# -- SYSCFG
INSTALLATION_FILE_TYPES += SYSCFG
SYSCFG_DIR ?= /etc/sysconfig
SYSCFG_FILE ?= $(SYSCFG_DIR)/$(PROJECT)
SYSCFG_FILES += $(basename $(wildcard *.sysconf))
BUILD_SYSCFG = $(TOPDIR)/conf
BUILD_SYSCFGDIR = $(BUILD_SYSCFG)
INSTALL_SYSCFGDIR ?= $(SYSCFG_DIR)
INSTALLED_SYSCFG ?= $(addprefix $(INSTALL_SYSCFGDIR)/,$(SYSCFG_FILES))
# -- HDR
INSTALLATION_FILE_TYPES += HDR
BUILD_HDRDIR_BASE ?= $(TOPDIR)/include
BUILD_HDRDIR ?= $(BUILD_HDRDIR_BASE)/$(HDRDIR_SCOPE_SUFFIX)
SRC_H += $(filter %.h %.H %.hpp %.hh, $(SRC_ALL_CPP))
BUILD_HDR += $(addprefix $(BUILD_HDRDIR)/,$(SRC_H))
INSTALL_HDRDIR ?= $(PREFIX)/include
INSTALLED_HDR += $(addprefix $(INSTALL_HDRDIR)/,$(SRC_H))
# -- DOC
INSTALLATION_FILE_TYPES += DOC
DOCS += $(wildcard VERSION README* CHANGES TODO* LICENSE AUTHORS CREDITS RELEASES *.pdf *.txt *.html)
DOCSUBDIRS += $(wildcard html tex info examples src)
BUILD_DOCDIR ?= $(TOPDIR)/doc
BUILD_DOC ?= $(DOC_PREFIX)
INSTALL_DOCDIR ?= $(DOC_PREFIX)
INSTALLED_DOC ?= $(addprefix $(INSTALL_DOCDIR)/,$(DOCS))
## -- PI
#BUILD_PIDIR = $(BUILD_LIBDIR)
#BUILD_PI = $(addprefix $(BUILD_PIDIR)/,$(PLUGIN))
#INSTALL_PIDIR = $(INSTALL_LIBDIR)
#INSTALLED_PI = $(addprefix $(INSTALL_PIDIR)/,$(PLUGIN))
# -- EXE
INSTALLATION_FILE_TYPES += EXE
EXE_SH += $(wildcard *.sh)
EXE_SH += $(patsubst %.sh.tmpl,%.sh,$(filter-out $(DONT_INSTALL),$(wildcard *.sh.tmpl)))
EXE_SCRIPTS += $(EXE_SH) $(filter-out $(DONT_INSTALL),$(wildcard *.pl *.pm *.py *.bat *.feedfs))
#EXE_ALL += $(EXE) $(wildcard *.a *.dll *.so *.so.*)
BUILD_EXE_BIN += $(addprefix $(BUILD_EXEDIR)/,$(EXE) $(EXE_SCRIPTS))
INSTALLED_EXE_BIN += $(addprefix $(INSTALL_EXEDIR)/,$(EXE_BIN))
BUILD_EXEDIR = $(TOPDIR)/bin
INSTALL_EXEDIR ?= $(EXE_PREFIX)/bin
BUILD_EXE += $(BUILD_EXE_BIN)
INSTALLED_EXE += $(addprefix $(INSTALL_EXEDIR)/,$(EXE) $(EXE_SCRIPTS)) $(INSTALLED_EXE_BIN)
# -- CGI
INSTALLATION_FILE_TYPES += CGI
EXE_CGI += $(filter-out $(DONT_INSTALL),$(wildcard *.cgi))
EXE_CGI += $(patsubst %.cgi.tmpl,%.cgi,$(filter-out $(DONT_INSTALL),$(wildcard *.cgi.tmpl)))
BUILD_CGIDIR = $(TOPDIR)/bin
INSTALL_CGIDIR = $(CGI_DIR)
BUILD_CGI += $(addprefix $(BUILD_CGIDIR)/,$(EXE_CGI))
INSTALLED_CGI += $(addprefix $(INSTALL_CGIDIR)/,$(EXE_CGI))
# -- SYSTEMD
INSTALLATION_FILE_TYPES += SYSTEMD
BUILD_SYSTEMDDIR = $(TOPDIR)/bin/systemd
LOCAL_SYSTEMD += $(filter-out $(DONT_INSTALL),$(wildcard *.service *.mount *.target *.timer *.socket *.slice))
INSTALL_SYSTEMDDIR = $(SYSTEMD_DIR)
INSTALLED_SYSTEMD += $(addprefix $(INSTALL_SYSTEMDDIR)/,$(LOCAL_SYSTEMD))
# -- INIT
INSTALLATION_FILE_TYPES += INIT
BUILD_INITDIR = $(TOPDIR)/bin
INSTALL_INITDIR = $(INIT_PREFIX)/init.d
_INIT_SCRIPTS = $(basename $(filter-out $(DONT_INSTALL),$(wildcard *.init)))
INIT_SCRIPTS += $(_INIT_SCRIPTS)
BUILD_INIT += $(addprefix $(BUILD_INITDIR)/,$(INIT_SCRIPTS))
INSTALLED_INIT += $(addprefix $(INSTALL_INITDIR)/,$(INIT_SCRIPTS))
# -- MAKE
INSTALLATION_FILE_TYPES += MAKE
#BUILD_MAKEDIR is currently not used anywhere and costs performance. Disabled for the time being.
#BUILD_MAKEDIR = $(TOPDIR)/make
MKFILES += $(filter-out pckg-defs.mk pckg-deps.mk local.mk,$(filter-out $(DONT_INSTALL),$(wildcard *.mk)))
INSTALL_MAKEDIR ?= $(PREFIX)/make
INSTALLED_MAKE += $(addprefix $(INSTALL_MAKEDIR)/,$(MKFILES))
# -- IMG
INSTALLATION_FILE_TYPES += IMG
BUILD_IMG ?=
BUILD_IMGDIR ?= $(TOPDIR)/images
INSTALL_IMGDIR ?= $(IMG_PREFIX)/images
INSTALLED_IMG ?= $(addprefix $(INSTALL_IMGDIR)/,$(IMAGES))
# -- MO
INSTALLATION_FILE_TYPES += MO
BUILD_MO ?=
BUILD_MODIR ?= $(CWD)
INSTALL_MODIR ?= $(ENV_PREFIX)/usr/share/locale/$(GETTEXT_LOCALE)/LC_MESSAGES
INSTALLED_MO ?= $(addprefix $(INSTALL_MODIR)/,$(wildcard *.mo))
# -- LOG
INSTALLATION_FILE_TYPES += LOG
BUILD_LOGDIR ?= $(TOPDIR)/log
BUILD_LOG ?=
INSTALL_LOGDIR ?= $(LOG_PREFIX)/$(PROJECT)
INSTALLED_LOG ?=
# -- PROFILE
INSTALLATION_FILE_TYPES += PROFILE
# TODO: path_ file is omnipresent
BUILD_PROFILEDIR = $(TOPDIR)/profile.d
#PROFILE += path_$(PROJECT).sh
INSTALL_PROFILEDIR ?= $(PROFILE_DIR)
INSTALLED_PROFILE ?= $(addprefix $(INSTALL_PROFILEDIR)/,$(PROFILE))
# -- JAVA
INSTALLATION_FILE_TYPES += JAVA
BUILD_JAVADIR = $(TOPDIR)/share/java
BUILD_JAVADIR_CLASSES = classes
JAVA_JARS ?= $(filter-out $(DONT_INSTALL),$(wildcard *.jar))
INSTALL_JAVADIR ?= $(JAVADIR)
INSTALLED_JAVA ?= $(addprefix $(INSTALL_JAVADIR)/,$(JAVA_JARS))
# -- LD_CONF
ifneq ($(findstring $(TARGET_OS),linux),)
INSTALLATION_FILE_TYPES += LD_CONF
LD_CONF += $(filter-out $(DONT_INSTALL),ld-$(PROJECT).conf)
BUILD_LD_CONFDIR = $(TOPDIR)/lib/ld.so.conf.d
INSTALL_LD_CONFDIR = $(LD_CONF_DIR)
INSTALLED_LD_CONF = $(addprefix $(INSTALL_LD_CONFDIR)/,$(LD_CONF))
endif
# -- LOGROT
ifneq ($(findstring $(TARGET_OS),linux),)
INSTALLATION_FILE_TYPES += LOGROT
LOGROT += $(basename $(filter-out $(DONT_INSTALL),$(wildcard *.logrotate)))
BUILD_LOGROTDIR = $(TOPDIR)/bin/logrotate.d
INSTALL_LOGROTDIR = $(LOGROT_DIR)
INSTALLED_LOGROT = $(addprefix $(INSTALL_LOGROTDIR)/,$(LOGROT))
endif
# -- APACHE_CONF
ifneq ($(findstring $(TARGET_OS),linux),)
INSTALLATION_FILE_TYPES += APACHE_CONF
APACHE_CONF += $(filter-out $(DONT_INSTALL),$(wildcard *.apache-conf))
BUILD_APACHE_CONFDIR = $(TOPDIR)/bin/apache/conf.d
INSTALL_APACHE_CONFDIR = $(APACHE_CONF_DIR)
INSTALLED_APACHE_CONF = $(addprefix $(INSTALL_APACHE_CONFDIR)/,$(patsubst %.apache-conf,%.conf,$(APACHE_CONF)))
endif
# -- RSYSLOG
ifneq ($(findstring $(TARGET_OS),linux),)
INSTALLATION_FILE_TYPES += RSYSLOG
RSYSLOG += $(filter-out $(DONT_INSTALL),$(wildcard *.rsyslog rsyslog-*.bprof))
BUILD_RSYSLOGDIR = $(TOPDIR)/bin/rsyslog.d
INSTALL_RSYSLOGDIR = $(RSYSLOG_DIR)
INSTALLED_RSYSLOG = $(addprefix $(INSTALL_RSYSLOGDIR)/,$(sort $(patsubst %.rsyslog,%.conf,$(subst rsyslog-,,$(RSYSLOG)))))
endif
# -- CRONTAB
ifneq ($(findstring $(TARGET_OS),linux),)
INSTALLATION_FILE_TYPES += CRONTAB
CRONTAB += $(filter-out $(DONT_INSTALL),$(wildcard *.crontab))
BUILD_CRONTABDIR = $(TOPDIR)/cron.d
INSTALLED_CRONTAB = $(addprefix $(INSTALL_CRONTABDIR)/,$(CRONTAB))
endif
# -- PKG_CONFIG
ifneq ($(findstring $(TARGET_OS),linux),)
CREATE_PKG_CONFIG ?= true
endif
ifeq ($(CREATE_PKG_CONFIG),true)
INSTALLATION_FILE_TYPES += PKG_CONFIG
PKG_CONFIG += $(sort $(filter-out $(DONT_INSTALL),$(wildcard *.pc) $(LOCAL_PKG_CONFIG)))
ifeq ($(DEVELOPMENT),true)
BUILD_PKG_CONFIGDIR = $(JWBDIR)/pkgconfig
else
BUILD_PKG_CONFIGDIR = $(TOPDIR)/make
endif
LOCAL_PKG_CONFIG = $(PROJECT).pc
# As of now, this is not used by any downstream project, so disable it to reduce complexity.
#BUILD_PKG_CONFIG = $(BUILD_PKG_CONFIGDIR)/$(LOCAL_PKG_CONFIG)
INSTALLED_PKG_CONFIG = $(addprefix $(INSTALL_PKG_CONFIGDIR)/,$(PKG_CONFIG))
endif
INSTALL_FILE ?= $(INSTALL)
INSTALL_DIR ?= $(INSTALL)
ifeq ($(origin PREREQ_BUILD),undefined)
PREREQ_BUILD := $(call proj_query, pkg-requires --no-subpackages --subsections=jw --syntax names-only --delimiter ' ' 'build devel' $(PROJECT))
endif
ifeq ($(origin PREREQ_RUN),undefined)
PREREQ_RUN := $(call proj_query, pkg-requires --no-subpackages --subsections=jw --syntax names-only --delimiter ' ' 'run' $(PROJECT))
endif
ifeq ($(origin PREREQ),undefined)
PREREQ := $(sort $(PREREQ_BUILD) $(PREREQ_RUN))
endif
# ----- local.mk
$(eval $(call try_include,$(JWBDIR)/make/local.mk))
$(eval $(call try_include,$(TOPDIR)/make/local.mk))
$(eval $(call try_include,local.mk))
# ----- Omnipresent rules
all:
nothing:
doc-module:
$(BROWSER) $(JANWARE_URL_DOC_MODULE)
doc-project:
$(BROWSER) $(JANWARE_URL_DOC_PROJECT)
echo-targets:
$(Q)make -pqR | sed '/^[a-zA-Z-]\+:/!d; s/:.*//' | sort
endif # ifndef JW_PKG_DEF_MK_INCLUDED