Andreas Wacknitz
2024-04-05 5a9394761a76843883ab7b09d15c336324e2be13
make-rules/attpackagemake.mk
@@ -18,7 +18,7 @@
#
# CDDL HEADER END
#
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
#
#
# Rules and Macros for building opens source software that uses AT&T's package
@@ -47,26 +47,27 @@
# Environment variables and arguments passed into the build and install
# environment(s).  These are the initial settings.
COMPONENT_BUILD_ENV += \
   CC="$(CC)" \
   CCFLAGS="$(CFLAGS)" \
   CCFLAGS.FORCE="$(CXXFLAGS)" \
   CC.RUNPATH="$(CC.RUNPATH)" \
   CC.LD.RUNPATH="$(CC.LD.RUNPATH)" \
   CC.LD.ORIGIN="$(CC.LD.ORIGIN)" \
   CC.DLL.ORIGIN="$(CC.DLL.ORIGIN)" \
   CCLDFLAGS="$(CXXFLAGS)" \
   LDOPTIONS="$(CXXFLAGS)" \
   NPROCS="$(NPROCS)" \
   LDFLAGS="$(CXXFLAGS)"
    CC_EXPLICIT="$(CC)" \
   PATH=$(shell dirname $(CC)):$(PATH) \
   CC=$(shell basename $(CC))
   NPROC="$(NPROC)"
# This is a workaround for the AT&T nmake failing to always use
# the environmental CCFLAGS in sub-compiles
COMPONENT_BUILD_ARGS= $(COMPONENT_BUILD_ENV)
# This explicitly exports the build type for 32/64 bit distinction
COMPONENT_BUILD_ARGS = \
                  HOSTTYPE="$(HOSTTYPE$(BITS))" \
                  CCFLAGS="$(CFLAGS)" \
                  LDFLAGS="$(CXXFLAGS)"
# The install and test process needs the same environment as the build
COMPONENT_INSTALL_ENV = $(COMPONENT_BUILD_ENV)
COMPONENT_TEST_ENV = $(COMPONENT_BUILD_ENV)
COMPONENT_INSTALL_ARGS = HOSTTYPE="$(HOSTTYPE$(BITS))"
COMPONENT_TEST_ARGS = HOSTTYPE="$(HOSTTYPE$(BITS))"
# build the configured source
$(BUILD_DIR)/%/.built:   $(SOURCE_DIR)/.prep
   $(RM) -r $(@D) ; $(MKDIR) $(@D)
   $(CLONEY) $(SOURCE_DIR) $(@D)
   $(ENV) $(CLONEY_ARGS) $(CLONEY) $(SOURCE_DIR) $(@D)
   $(COMPONENT_PRE_BUILD_ACTION)
   cd $(@D); $(ENV) $(COMPONENT_BUILD_ENV) \
         bin/package make $(COMPONENT_BUILD_TARGETS) $(COMPONENT_BUILD_ARGS)
@@ -77,18 +78,44 @@
$(BUILD_DIR)/%/.installed:   $(BUILD_DIR)/%/.built
   $(COMPONENT_PRE_INSTALL_ACTION)
   $(RM) -r $(PROTO_DIR)/$(MACH$(BITS)); $(MKDIR) $(PROTO_DIR)/$(MACH$(BITS));
   cd $(@D) ; $(ENV) $(COMPONENT_INSTALL_ENV) \
   cd $(@D); $(ENV) $(COMPONENT_INSTALL_ENV) \
      bin/package flat $(COMPONENT_INSTALL_TARGETS) \
      $(COMPONENT_INSTALL_ARGS) \
      $(PROTO_DIR)/$(MACH$(BITS)) $(COMPONENT_INSTALL_PACKAGES) 
   $(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) bin/package \
      test $(COMPONENT_TEST_TARGETS)
   -(cd $(COMPONENT_TEST_DIR) ; \
      $(COMPONENT_TEST_ENV_CMD) $(COMPONENT_TEST_ENV) \
      bin/package test $(COMPONENT_TEST_TARGETS) \
      $(COMPONENT_TEST_ARGS)) \
      &> $(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) \
      bin/package test $(COMPONENT_TEST_TARGETS) \
      $(COMPONENT_TEST_ARGS)) \
      |& $(TEE) $(COMPONENT_TEST_OUTPUT)
   $(COMPONENT_POST_TEST_ACTION)
   $(COMPONENT_TEST_CREATE_TRANSFORMS)
   $(COMPONENT_TEST_PERFORM_TRANSFORM)
   $(COMPONENT_TEST_CLEANUP)
   $(TOUCH) $@
clean::