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>
549 lines
20 KiB
Makefile
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
|