All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 5m32s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 5m49s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 5m13s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 5m28s
CI / Packaging test (push) Successful in 0s
defs.mk derives WHICH from the external which binary, first from a hardcoded /usr/bin/which path and then with a `which which` fallback, while the probes for time, ruff, pyright, and python3 call which directly. Systems that do not ship the which package, such as minimal containers, are left to the shell's PATH search. Define WHICH once in common.mk as the POSIX command -v builtin and drop the old definition from defs.mk. Route the remaining direct which calls through $(WHICH): - projects-dir.mk: TIME probe - py-check.mk: PY_CHECK_RUFF and PY_CHECK_PYRIGHT probes - py-version.mk: PYTHON lookup command -v runs in the /bin/sh that $(shell) already uses, so the build no longer depends on the which package. The builtin names that command -v reports for echo, test, pwd, and printf are safe, because every use of those variables runs through the shell, and the bash time keyword keeps the -p output format identical to the GNU time binary. Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v1.3.0 Signed-off-by: Jan Lindemann <jan@janware.com>
541 lines
20 KiB
Makefile
541 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
|
|
|
|
include $(JWBDIR)/make/projects.mk
|
|
|
|
# ----- Executables
|
|
|
|
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
|
|
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
|
|
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
|
|
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) -f $(PKG_FORMAT) $(LOG_INSTALL_EXTRA_OPTS)
|
|
LINK_LIB = $(LOG_INSTALL_SH) -L -l $(INSTALL_LOG) -f $(PKG_FORMAT) $(LOG_INSTALL_EXTRA_OPTS)
|
|
else
|
|
ifndef INSTALL
|
|
ifeq ($(DEVELOPMENT),false)
|
|
INSTALL = $(SUDO) $(LOG_INSTALL_SH) -p $(LOG_INSTALL_EXTRA_OPTS)
|
|
else
|
|
INSTALL = $(LOG_INSTALL_SH)
|
|
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 0.1.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))
|
|
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
|
|
INSTALLATION_FILE_TYPES += PREFIX
|
|
|
|
# -- CFG
|
|
INSTALLATION_FILE_TYPES += CFG
|
|
CONFIG_FILE ?= $(CONFIG_DIR)/$(PROJECT).conf
|
|
BUILD_CFGDIR = $(TOPDIR)/conf
|
|
ifeq ($(CONFIG_SUBDIR),)
|
|
INSTALL_CFGDIR ?= $(CONFIG_DIR)
|
|
else
|
|
INSTALL_CFGTOPDIR ?= $(CONFIG_DIR)
|
|
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 $(sort VERSION README* CHANGES TODO* LICENSE AUTHORS CREDITS RELEASES *.pdf *.txt *.html *.md))
|
|
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 \
|
|
*.container *.pod *.network *.volume *.image *.kube))
|
|
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 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
|