make-rules/attpackagemake.mk
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Wed, 18 Dec 2013 10:04:53 -0800
branchs11-update
changeset 2855 576d5a7857b7
parent 844 55358dcf0cb2
child 2022 d590db614c66
child 3996 20c0f21bbe1e
permissions -rw-r--r--
16404201 serialize pkglinting of components 16666374 userland misses opensolaris.org very much, but must move on to java.net's love 16703472 more userland components could benefit from resolve.deps files 16921386 move to parfait 1.2.0.1 16991973 some things ain't parfait'n 17361780 LD_Z_TEXT should, ya know, contain -z text not -z direct 17389915 default userland gcc should be gcc4 17621943 move to build 32 breaks userland-incorporation 17785723 gdb shouldn't override CC/CXX 17852021 userland-incorporator should detect duplicate packages 17899000 libtool doesn't build properly in non-C locale
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
789
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     1
#
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     2
# CDDL HEADER START
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     3
#
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     4
# The contents of this file are subject to the terms of the
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     5
# Common Development and Distribution License (the "License").
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     6
# You may not use this file except in compliance with the License.
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     7
#
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     8
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
     9
# or http://www.opensolaris.org/os/licensing.
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    10
# See the License for the specific language governing permissions
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    11
# and limitations under the License.
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    12
#
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    13
# When distributing Covered Code, include this CDDL HEADER in each
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    14
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    15
# If applicable, add the following below this CDDL HEADER, with the
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    16
# fields enclosed by brackets "[]" replaced with your own identifying
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    17
# information: Portions Copyright [yyyy] [name of copyright owner]
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    18
#
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    19
# CDDL HEADER END
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    20
#
2855
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 844
diff changeset
    21
# Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
789
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    22
#
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    23
#
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    24
# Rules and Macros for building opens source software that uses AT&T's package
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    25
# tool.
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    26
#
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    27
# To use these rules, include ../make-rules/attpackagemake.mk in your Makefile
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    28
# and define "build", "install" targets appropriate to building your component.
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    29
# Ex:
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    30
#
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    31
# 	build:		$(BUILD_32) \
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    32
#	 		$(BUILD_64)
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    33
# 
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    34
#	install:	$(INSTALL_32) \
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    35
#	 		$(INSTALL_64)
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    36
#
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    37
# Any additional pre/post configure, build, or install actions can be specified
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    38
# in your Makefile by setting them in on of the following macros:
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    39
#	COMPONENT_PRE_BUILD_ACTION, COMPONENT_POST_BUILD_ACTION
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    40
#	COMPONENT_PRE_INSTALL_ACTION, COMPONENT_POST_INSTALL_ACTION
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    41
#
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    42
# If component specific make targets need to be used for build or install, they
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    43
# can be specified in
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    44
#	COMPONENT_BUILD_TARGETS, COMPONENT_INSTALL_TARGETS
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    45
#
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    46
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    47
# Environment variables and arguments passed into the build and install
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    48
# environment(s).  These are the initial settings.
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    49
COMPONENT_BUILD_ENV += \
844
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    50
    CC_EXPLICIT="$(CC)" \
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    51
	PATH=$(shell dirname $(CC)):$(PATH) \
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    52
	CC=$(shell basename $(CC)) 
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    53
	NPROC="$(NPROC)" 
789
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    54
844
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    55
# This explicitly exports the build type for 32/64 bit distinction 
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    56
COMPONENT_BUILD_ARGS = \
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    57
						HOSTTYPE="$(HOSTTYPE$(BITS))" \
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    58
						CCFLAGS="$(CFLAGS)" \
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    59
						LDFLAGS="$(CXXFLAGS)" 
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    60
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    61
# The install and test process needs the same environment as the build
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    62
COMPONENT_INSTALL_ENV = $(COMPONENT_BUILD_ENV)
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    63
COMPONENT_TEST_ENV = $(COMPONENT_BUILD_ENV)
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    64
COMPONENT_INSTALL_ARGS = HOSTTYPE="$(HOSTTYPE$(BITS))"
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    65
COMPONENT_TEST_ARGS = HOSTTYPE="$(HOSTTYPE$(BITS))"
789
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    66
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    67
# build the configured source
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    68
$(BUILD_DIR)/%/.built:	$(SOURCE_DIR)/.prep
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    69
	$(RM) -r $(@D) ; $(MKDIR) $(@D)
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    70
	$(CLONEY) $(SOURCE_DIR) $(@D)
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    71
	$(COMPONENT_PRE_BUILD_ACTION)
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    72
	cd $(@D); $(ENV) $(COMPONENT_BUILD_ENV) \
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    73
   		bin/package make $(COMPONENT_BUILD_TARGETS) $(COMPONENT_BUILD_ARGS)
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    74
	$(COMPONENT_POST_BUILD_ACTION)
2855
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 844
diff changeset
    75
ifeq   ($(strip $(PARFAIT_BUILD)),yes)
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 844
diff changeset
    76
	-$(PARFAIT) $(@D)
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 844
diff changeset
    77
endif
789
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    78
	$(TOUCH) [email protected]
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    79
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    80
# install the built source into a prototype area
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    81
$(BUILD_DIR)/%/.installed:	$(BUILD_DIR)/%/.built
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    82
	$(COMPONENT_PRE_INSTALL_ACTION)
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    83
	$(RM) -r $(PROTO_DIR)/$(MACH$(BITS)); $(MKDIR) $(PROTO_DIR)/$(MACH$(BITS));
844
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    84
	cd $(@D); $(ENV) $(COMPONENT_INSTALL_ENV) \
789
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    85
		bin/package flat $(COMPONENT_INSTALL_TARGETS) \
844
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    86
		$(COMPONENT_INSTALL_ARGS) \
789
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    87
		$(PROTO_DIR)/$(MACH$(BITS)) $(COMPONENT_INSTALL_PACKAGES) 
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    88
	$(COMPONENT_POST_INSTALL_ACTION)
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    89
	$(TOUCH) [email protected]
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    90
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    91
# test the built source
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    92
$(BUILD_DIR)/%/.tested: $(BUILD_DIR)/%/.built
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    93
	$(COMPONENT_PRE_TEST_ACTION)
844
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    94
	cd $(@D); $(ENV) $(COMPONENT_TEST_ENV) \
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    95
		bin/package test $(COMPONENT_TEST_TARGETS) \
55358dcf0cb2 7169644 math functions in ksh93 behave differently from b15
Edwin Beasant <Edwin.Beasant@oracle.com>
parents: 789
diff changeset
    96
		$(COMPONENT_TEST_ARGS)
789
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    97
	$(COMPONENT_POST_TEST_ACTION)
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    98
	$(TOUCH) [email protected]
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
    99
2855
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 844
diff changeset
   100
ifeq   ($(strip $(PARFAIT_BUILD)),yes)
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 844
diff changeset
   101
parfait: build
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 844
diff changeset
   102
else
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 844
diff changeset
   103
parfait:
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 844
diff changeset
   104
	$(MAKE) PARFAIT_BUILD=yes parfait
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 844
diff changeset
   105
endif
576d5a7857b7 16404201 serialize pkglinting of components
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 844
diff changeset
   106
789
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
   107
clean::
5f074ca23733 7106955 move ksh93 from ON to userland
Edwin Beasant <Edwin.Beasant@oracle.com>
parents:
diff changeset
   108
	$(RM) -r $(BUILD_DIR) $(PROTO_DIR)