jw-pkg/make/make.mk
Jan Lindemann 9e245c986e make: Further improve build time
This commit sees several improvements to the build performance:

- Introduce cache.mk, which creates makefiles caching often used
  variables, per tree and per project.
- Define more variables with := enclosed in condistions, instead of
  defining them with ?=, because the RHS of ?= is expanded deferredly.
- Add more definitions for executables.
- Move some more specialized definitions out into specialized makefiles,
  notably htdocs.mk and tmpl.mk

Signed-off-by: Jan Lindemann <jan@janware.com>
2019-02-28 13:22:12 +00:00

77 lines
2 KiB
Makefile

# generic utility modules
# (c) 2001 jannet it services
# contact@jannet.de
# $Id$
include $(MODDIR)/make/defs.mk
CACHED_FILES ?= $(VERSION_FILE)
CACHED_VARS ?= VERSION HEX_VERSION PROJECT
include $(MODDIR)/make/cache.mk
ifneq ($(CREATE_DEVEL),false)
MKFILES += $(wildcard project.conf)
DEVEL_TARGETS += install_MAKE $(INSTALLED_PKG_MK) install_PKG_CONFIG
endif
include $(MODDIR)/make/rules.mk
#LOCAL_PKG_CONFIG = $(PROJECT).pc
# BUILD_PKG_CONFIG = $(MODDIR)/pkgconfig/$(LOCAL_PKG_CONFIG)
INSTALL_PCKG_DEPS_DIR = $(ENV_PREFIX)$(MODDIR)/make/deps.d
ifneq ($(wildcard pckg-deps.mk),)
INSTALLED_PKG_MK += $(INSTALL_PCKG_DEPS_DIR)/$(PROJECT).mk
endif
INSTALL_PCKG_DEFS_DIR = $(MODDIR)/make/defs.d
ifneq ($(wildcard pckg-defs.mk),)
INSTALLED_PKG_MK += $(INSTALL_PCKG_DEFS_DIR)/$(PROJECT).mk
endif
#all: $(BUILD_PKG_CONFIG)
all: build_PKG_CONFIG
install: $(DEVEL_TARGETS)
clean: textclean localclean doneclean clean.pkg-config
test:
$(INSTALL_PCKG_DEPS_DIR)/$(PROJECT).mk: pckg-deps.mk
mkdir -p $(dir $@)
$(INSTALL) -p -m $(MAKEMODE) -o $(MAKEOWNER) -g $(MAKEGROUP) $< $@
$(INSTALL_PCKG_DEFS_DIR)/$(PROJECT).mk: pckg-defs.mk
mkdir -p $(dir $@)
$(INSTALL) -p -m $(MAKEMODE) -o $(MAKEOWNER) -g $(MAKEGROUP) $< $@
install-links:
DEVELOPMENT=false make do-install-links
do-install-links:
@$(call install_links,MAKE)
ifeq ($(EXPORT_PROJECT_LIB),true)
CREATE_PKG_CONFIG_OPTS += -c "-I$(PROJECT_DIRPATH)/include"
CREATE_PKG_CONFIG_OPTS += -l "-L$(PROJECT_DIRPATH)/lib -l$(PROJECT)"
endif
$(LOCAL_PKG_CONFIG): $(PROJECT_DESCR_FILE) $(MODDIR)/make/make.mk $(MOD_SCRIPT_DIR)/create-pkg-config.sh
/bin/bash $(MOD_SCRIPT_DIR)/create-pkg-config.sh \
-F $< \
-n $(PROJECT) \
-v $(DIST_VERSION) \
-p $(PROJECT_DIRPATH) \
-V $(shell echo $(PROJECT) | tr a-z- A-Z_)_DIR=$(PROJECT_DIRPATH) \
-r "$(RPM_REQUIRES_RUN)" \
-R "$(RPM_REQUIRES_DEVEL)" \
-l "-L$(PROJECT_DIRPATH)/lib -l$(LIBNAME)" \
$(CREATE_PKG_CONFIG_OPTS) \
> $@.tmp
mv $@.tmp $@
$(BUILD_PKG_CONFIG): $(LOCAL_PKG_CONFIG)
clean.pkg-config:
$(RM) -f *.pc $(BUILD_PKG_CONFIG)