Andreas Wacknitz
2024-04-05 ac4c8f5b8ab57563cc350482b75a32a55871d58c
make-rules/justmake.mk
@@ -18,7 +18,7 @@
#
# CDDL HEADER END
#
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
#
#
# Rules and Macros for building opens source software that just uses their
@@ -44,30 +44,67 @@
#   COMPONENT_BUILD_TARGETS, COMPONENT_INSTALL_TARGETS
#
COMPONENT_INSTALL_ARGS += DESTDIR=$(PROTO_DIR)
COMPONENT_INSTALL_ARGS += $(COMPONENT_INSTALL_ARGS.$(BITS))
COMPONENT_COPY_ACTION ?= \
   $(ENV) $(CLONEY_ARGS) $(CLONEY) $(SOURCE_DIR) $(@D)
COMPONENT_BUILD_ACTION ?= \
   cd $(@D); $(ENV) $(COMPONENT_BUILD_ENV) \
   $(GMAKE) $(COMPONENT_BUILD_GMAKE_ARGS) $(COMPONENT_BUILD_ARGS) $(COMPONENT_BUILD_TARGETS)
# build the configured source
$(BUILD_DIR)/%/.built:   $(SOURCE_DIR)/.prep
   $(RM) -r $(@D) ; $(MKDIR) $(@D)
   $(CLONEY) $(SOURCE_DIR) $(@D)
   $(COMPONENT_COPY_ACTION)
   $(COMPONENT_PRE_BUILD_ACTION)
   (cd $(@D) ; $(ENV) $(COMPONENT_BUILD_ENV) \
      $(GMAKE) $(COMPONENT_BUILD_ARGS) $(COMPONENT_BUILD_TARGETS))
   ($(COMPONENT_BUILD_ACTION))
   $(COMPONENT_POST_BUILD_ACTION)
   $(TOUCH) $@
COMPONENT_INSTALL_ACTION ?= \
   cd $(@D) ; $(ENV) $(COMPONENT_INSTALL_ENV) \
   $(GMAKE) $(COMPONENT_INSTALL_ARGS) $(COMPONENT_INSTALL_TARGETS)
# install the built source into a prototype area
$(BUILD_DIR)/%/.installed:   $(BUILD_DIR)/%/.built
   $(COMPONENT_PRE_INSTALL_ACTION)
   (cd $(@D) ; $(ENV) $(COMPONENT_INSTALL_ENV) $(GMAKE) \
         $(COMPONENT_INSTALL_ARGS) $(COMPONENT_INSTALL_TARGETS))
   ($(COMPONENT_INSTALL_ACTION))
   $(COMPONENT_POST_INSTALL_ACTION)
   $(TOUCH) $@
# test the built source
$(BUILD_DIR)/%/.tested: $(BUILD_DIR)/%/.built
$(BUILD_DIR)/%/.tested-and-compared:    $(COMPONENT_TEST_DEP)
   $(RM) -rf $(COMPONENT_TEST_BUILD_DIR)
   $(MKDIR) $(COMPONENT_TEST_BUILD_DIR)
   $(COMPONENT_PRE_TEST_ACTION)
   (cd $(@D) ; $(ENV) $(COMPONENT_TEST_ENV) $(GMAKE) \
      $(COMPONENT_TEST_ARGS) $(COMPONENT_TEST_TARGETS))
   -(cd $(COMPONENT_TEST_DIR) ; \
      $(COMPONENT_TEST_ENV_CMD) $(COMPONENT_TEST_ENV) \
      $(COMPONENT_TEST_CMD) \
      $(COMPONENT_TEST_ARGS) $(COMPONENT_TEST_TARGETS)) \
      &> $(COMPONENT_TEST_OUTPUT)
   $(COMPONENT_POST_TEST_ACTION)
   $(COMPONENT_TEST_CREATE_TRANSFORMS)
   $(COMPONENT_TEST_PERFORM_TRANSFORM)
   $(COMPONENT_TEST_COMPARE)
   $(COMPONENT_TEST_CLEANUP)
   $(TOUCH) $@
$(BUILD_DIR)/%/.tested:    SHELLOPTS=pipefail
$(BUILD_DIR)/%/.tested:    $(COMPONENT_TEST_DEP)
   $(RM) -rf $(COMPONENT_TEST_BUILD_DIR)
   $(MKDIR) $(COMPONENT_TEST_BUILD_DIR)
   $(COMPONENT_PRE_TEST_ACTION)
   (cd $(COMPONENT_TEST_DIR) ; \
      $(COMPONENT_TEST_ENV_CMD) $(COMPONENT_TEST_ENV) \
      $(COMPONENT_TEST_CMD) \
      $(COMPONENT_TEST_ARGS) $(COMPONENT_TEST_TARGETS)) \
      |& $(TEE) $(COMPONENT_TEST_OUTPUT)
   $(COMPONENT_POST_TEST_ACTION)
   $(COMPONENT_TEST_CREATE_TRANSFORMS)
   $(COMPONENT_TEST_PERFORM_TRANSFORM)
   $(COMPONENT_TEST_CLEANUP)
   $(TOUCH) $@
clean::