make-rules/setup.py.mk
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Thu, 19 Mar 2015 16:10:56 -0700
changeset 3993 0d77bb4904f8
parent 3864 77a09e73626b
child 3998 5bd484384122
permissions -rw-r--r--
20460079 bison should have some master test results to compare against 20460105 bzip should have some master test results to compare against 20460798 gnu make should have some master test results to compare against 20461231 tcsh should have some master test results to compare against
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     1
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     2
# CDDL HEADER START
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     3
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     4
# The contents of this file are subject to the terms of the
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     5
# Common Development and Distribution License (the "License").
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     6
# You may not use this file except in compliance with the License.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     7
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     8
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
     9
# or http://www.opensolaris.org/os/licensing.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    10
# See the License for the specific language governing permissions
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    11
# and limitations under the License.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    12
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    13
# When distributing Covered Code, include this CDDL HEADER in each
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    14
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    15
# If applicable, add the following below this CDDL HEADER, with the
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    16
# fields enclosed by brackets "[]" replaced with your own identifying
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    17
# information: Portions Copyright [yyyy] [name of copyright owner]
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    18
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    19
# CDDL HEADER END
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    20
#
3817
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
    21
# Copyright (c) 2010, 2015, Oracle and/or its affiliates. All rights reserved.
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    22
#
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    23
3817
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
    24
# $ (foreach suffix,$(VERSIONS),$(eval include $(WS_MAKE_RULES)/python-$(suffix).mk))
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
    25
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
    26
59
7500d63edb42 7012375 userland build and proto areas should be outside of unpacked source dirs
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 58
diff changeset
    27
$(BUILD_DIR)/%-2.6/.built:		PYTHON_VERSION=2.6
706
6e61f0012046 7108059 Userland should have python2.7 version of its python modules
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 247
diff changeset
    28
$(BUILD_DIR)/%-2.7/.built:		PYTHON_VERSION=2.7
1907
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    29
$(BUILD_DIR)/%-3.4/.built:		PYTHON_VERSION=3.4
59
7500d63edb42 7012375 userland build and proto areas should be outside of unpacked source dirs
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 58
diff changeset
    30
$(BUILD_DIR)/$(MACH32)-%/.built:	BITS=32
7500d63edb42 7012375 userland build and proto areas should be outside of unpacked source dirs
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 58
diff changeset
    31
$(BUILD_DIR)/$(MACH64)-%/.built:	BITS=64
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    32
181
87e11e685b1f 7003927 userland should postprocess packaged files
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 146
diff changeset
    33
$(BUILD_DIR)/%-2.6/.installed:		PYTHON_VERSION=2.6
706
6e61f0012046 7108059 Userland should have python2.7 version of its python modules
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 247
diff changeset
    34
$(BUILD_DIR)/%-2.7/.installed:		PYTHON_VERSION=2.7
1907
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    35
$(BUILD_DIR)/%-3.4/.installed:		PYTHON_VERSION=3.4
59
7500d63edb42 7012375 userland build and proto areas should be outside of unpacked source dirs
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 58
diff changeset
    36
$(BUILD_DIR)/$(MACH32)-%/.installed:	BITS=32
7500d63edb42 7012375 userland build and proto areas should be outside of unpacked source dirs
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 58
diff changeset
    37
$(BUILD_DIR)/$(MACH64)-%/.installed:	BITS=64
31
90e0c3ea3281 Implement support for builds with multiple versions of python.
Danek Duvall <danek.duvall@oracle.com>
parents: 30
diff changeset
    38
1845
caa6e0a2a2e4 PSARC/2014/108 pycparser: complete C99 parser in pure Python
Danek Duvall <danek.duvall@oracle.com>
parents: 1352
diff changeset
    39
$(BUILD_DIR)/%-2.6/.tested:		PYTHON_VERSION=2.6
caa6e0a2a2e4 PSARC/2014/108 pycparser: complete C99 parser in pure Python
Danek Duvall <danek.duvall@oracle.com>
parents: 1352
diff changeset
    40
$(BUILD_DIR)/%-2.7/.tested:		PYTHON_VERSION=2.7
1907
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    41
$(BUILD_DIR)/%-3.4/.tested:		PYTHON_VERSION=3.4
1845
caa6e0a2a2e4 PSARC/2014/108 pycparser: complete C99 parser in pure Python
Danek Duvall <danek.duvall@oracle.com>
parents: 1352
diff changeset
    42
$(BUILD_DIR)/$(MACH32)-%/.tested:	BITS=32
caa6e0a2a2e4 PSARC/2014/108 pycparser: complete C99 parser in pure Python
Danek Duvall <danek.duvall@oracle.com>
parents: 1352
diff changeset
    43
$(BUILD_DIR)/$(MACH64)-%/.tested:	BITS=64
caa6e0a2a2e4 PSARC/2014/108 pycparser: complete C99 parser in pure Python
Danek Duvall <danek.duvall@oracle.com>
parents: 1352
diff changeset
    44
3558
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
    45
$(BUILD_DIR)/%-2.6/.tested-and-compared:	PYTHON_VERSION=2.6
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
    46
$(BUILD_DIR)/%-2.7/.tested-and-compared:	PYTHON_VERSION=2.7
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
    47
$(BUILD_DIR)/%-3.4/.tested-and-compared:	PYTHON_VERSION=3.4
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
    48
$(BUILD_DIR)/$(MACH32)-%/.tested-and-compared:	BITS=32
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
    49
$(BUILD_DIR)/$(MACH64)-%/.tested-and-compared:	BITS=64
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
    50
1907
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    51
BUILD_32 = $(PYTHON2_VERSIONS:%=$(BUILD_DIR)/$(MACH32)-%/.built)
59
7500d63edb42 7012375 userland build and proto areas should be outside of unpacked source dirs
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 58
diff changeset
    52
BUILD_64 = $(PYTHON_VERSIONS:%=$(BUILD_DIR)/$(MACH64)-%/.built)
1310
ed3f9d06a78b 16828763 Pure python should build with its own macros, not _32/_64
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1293
diff changeset
    53
BUILD_NO_ARCH = $(PYTHON_VERSIONS:%=$(BUILD_DIR)/$(MACH)-%/.built)
1907
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    54
ifeq ($(PYTHON_VERSION),3.4)
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    55
BUILD_32_and_64 = $(BUILD_64)
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    56
endif
31
90e0c3ea3281 Implement support for builds with multiple versions of python.
Danek Duvall <danek.duvall@oracle.com>
parents: 30
diff changeset
    57
1907
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    58
INSTALL_32 = $(PYTHON2_VERSIONS:%=$(BUILD_DIR)/$(MACH32)-%/.installed)
59
7500d63edb42 7012375 userland build and proto areas should be outside of unpacked source dirs
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 58
diff changeset
    59
INSTALL_64 = $(PYTHON_VERSIONS:%=$(BUILD_DIR)/$(MACH64)-%/.installed)
1310
ed3f9d06a78b 16828763 Pure python should build with its own macros, not _32/_64
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1293
diff changeset
    60
INSTALL_NO_ARCH = $(PYTHON_VERSIONS:%=$(BUILD_DIR)/$(MACH)-%/.installed)
1907
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    61
ifeq ($(PYTHON_VERSION),3.4)
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    62
INSTALL_32_and_64 = $(INSTALL_64)
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    63
endif
1310
ed3f9d06a78b 16828763 Pure python should build with its own macros, not _32/_64
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1293
diff changeset
    64
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 62
diff changeset
    65
PYTHON_ENV =	CC="$(CC)"
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 62
diff changeset
    66
PYTHON_ENV +=	CFLAGS="$(CFLAGS)"
3497
091183b2cc24 16837431 /usr/lib/python2.7/config/Makefile is incorrect
John Beck <John.Beck@Oracle.COM>
parents: 2164
diff changeset
    67
PYTHON_ENV +=	PATH="$(PATH):$(SPRO_VROOT)/bin"
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 62
diff changeset
    68
1310
ed3f9d06a78b 16828763 Pure python should build with its own macros, not _32/_64
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1293
diff changeset
    69
COMPONENT_BUILD_ENV += $(PYTHON_ENV)
ed3f9d06a78b 16828763 Pure python should build with its own macros, not _32/_64
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1293
diff changeset
    70
COMPONENT_INSTALL_ENV += $(PYTHON_ENV)
ed3f9d06a78b 16828763 Pure python should build with its own macros, not _32/_64
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1293
diff changeset
    71
COMPONENT_TEST_ENV += $(PYTHON_ENV)
ed3f9d06a78b 16828763 Pure python should build with its own macros, not _32/_64
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1293
diff changeset
    72
1907
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    73
# If we are building Python 2.7 or 3.4 support, build them and install them
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    74
# before Python 2.6, so 2.6 is installed last and is the canonical version.
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    75
# When we change the default, the new default should go last.
706
6e61f0012046 7108059 Userland should have python2.7 version of its python modules
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 247
diff changeset
    76
ifneq ($(findstring 2.7,$(PYTHON_VERSIONS)),)
1907
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    77
$(BUILD_DIR)/%-2.6/.built:     $(BUILD_DIR)/%-2.7/.built
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    78
$(BUILD_DIR)/%-2.6/.installed: $(BUILD_DIR)/%-2.7/.installed
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    79
endif
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    80
ifneq ($(findstring 3.4,$(PYTHON_VERSIONS)),)
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    81
$(BUILD_DIR)/%-2.6/.built:     $(BUILD_DIR)/%-3.4/.built
446472de62e9 PSARC 2014/151 Python 3.4
John Beck <John.Beck@Oracle.COM>
parents: 1846
diff changeset
    82
$(BUILD_DIR)/%-2.6/.installed: $(BUILD_DIR)/%-3.4/.installed
706
6e61f0012046 7108059 Userland should have python2.7 version of its python modules
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 247
diff changeset
    83
endif
6e61f0012046 7108059 Userland should have python2.7 version of its python modules
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 247
diff changeset
    84
1057
e04f97962a3d 15791665 SUNBT7168800 python build turds go in the wrong place
Danek Duvall <danek.duvall@oracle.com>
parents: 774
diff changeset
    85
# Create a distutils config file specific to the combination of build
e04f97962a3d 15791665 SUNBT7168800 python build turds go in the wrong place
Danek Duvall <danek.duvall@oracle.com>
parents: 774
diff changeset
    86
# characteristics (bittedness x Python version), and put it in its own
e04f97962a3d 15791665 SUNBT7168800 python build turds go in the wrong place
Danek Duvall <danek.duvall@oracle.com>
parents: 774
diff changeset
    87
# directory.  We can set $HOME to point distutils at it later, allowing
e04f97962a3d 15791665 SUNBT7168800 python build turds go in the wrong place
Danek Duvall <danek.duvall@oracle.com>
parents: 774
diff changeset
    88
# the install phase to find the temporary build directories.
e04f97962a3d 15791665 SUNBT7168800 python build turds go in the wrong place
Danek Duvall <danek.duvall@oracle.com>
parents: 774
diff changeset
    89
CFG=.pydistutils.cfg
e04f97962a3d 15791665 SUNBT7168800 python build turds go in the wrong place
Danek Duvall <danek.duvall@oracle.com>
parents: 774
diff changeset
    90
$(BUILD_DIR)/config-%/$(CFG):
e04f97962a3d 15791665 SUNBT7168800 python build turds go in the wrong place
Danek Duvall <danek.duvall@oracle.com>
parents: 774
diff changeset
    91
	$(MKDIR) $(@D)
e04f97962a3d 15791665 SUNBT7168800 python build turds go in the wrong place
Danek Duvall <danek.duvall@oracle.com>
parents: 774
diff changeset
    92
	echo "[build]\nbuild_base = $(BUILD_DIR)/$*" > $@
e04f97962a3d 15791665 SUNBT7168800 python build turds go in the wrong place
Danek Duvall <danek.duvall@oracle.com>
parents: 774
diff changeset
    93
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    94
# build the configured source
1057
e04f97962a3d 15791665 SUNBT7168800 python build turds go in the wrong place
Danek Duvall <danek.duvall@oracle.com>
parents: 774
diff changeset
    95
$(BUILD_DIR)/%/.built:	$(SOURCE_DIR)/.prep $(BUILD_DIR)/config-%/$(CFG)
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    96
	$(RM) -r $(@D) ; $(MKDIR) $(@D)
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
    97
	$(COMPONENT_PRE_BUILD_ACTION)
1310
ed3f9d06a78b 16828763 Pure python should build with its own macros, not _32/_64
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 1293
diff changeset
    98
	(cd $(SOURCE_DIR) ; $(ENV) HOME=$(BUILD_DIR)/config-$* $(COMPONENT_BUILD_ENV) \
1057
e04f97962a3d 15791665 SUNBT7168800 python build turds go in the wrong place
Danek Duvall <danek.duvall@oracle.com>
parents: 774
diff changeset
    99
		$(PYTHON.$(BITS)) ./setup.py build)
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   100
	$(COMPONENT_POST_BUILD_ACTION)
774
d0cbca26a17c 7035978 parfait support for userland bits
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 706
diff changeset
   101
ifeq   ($(strip $(PARFAIT_BUILD)),yes)
1352
1358a1e1ff4c 16921386 move to parfait 1.2.0.1
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 1310
diff changeset
   102
	-$(PARFAIT) $(@D)
774
d0cbca26a17c 7035978 parfait support for userland bits
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 706
diff changeset
   103
endif
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   104
	$(TOUCH) $@
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   105
30
440b6ca0641d Removed $(PUBLISHER) from pkg.fmri package attributes. Renamed package
Danek Duvall <danek.duvall@oracle.com>
parents: 25
diff changeset
   106
62
519e6e3788ce 7013265 userland could use a tool to aid in SUNW package generation
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 59
diff changeset
   107
COMPONENT_INSTALL_ARGS +=	--root $(PROTO_DIR) 
519e6e3788ce 7013265 userland could use a tool to aid in SUNW package generation
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 59
diff changeset
   108
COMPONENT_INSTALL_ARGS +=	--install-lib=$(PYTHON_LIB)
706
6e61f0012046 7108059 Userland should have python2.7 version of its python modules
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 247
diff changeset
   109
COMPONENT_INSTALL_ARGS +=	--install-purelib=$(PYTHON_LIB)
6e61f0012046 7108059 Userland should have python2.7 version of its python modules
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 247
diff changeset
   110
COMPONENT_INSTALL_ARGS +=	--install-platlib=$(PYTHON_LIB)
6e61f0012046 7108059 Userland should have python2.7 version of its python modules
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 247
diff changeset
   111
COMPONENT_INSTALL_ARGS +=	--install-data=$(PYTHON_DATA)
6e61f0012046 7108059 Userland should have python2.7 version of its python modules
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 247
diff changeset
   112
COMPONENT_INSTALL_ARGS +=	--force
62
519e6e3788ce 7013265 userland could use a tool to aid in SUNW package generation
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 59
diff changeset
   113
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   114
# install the built source into a prototype area
1057
e04f97962a3d 15791665 SUNBT7168800 python build turds go in the wrong place
Danek Duvall <danek.duvall@oracle.com>
parents: 774
diff changeset
   115
$(BUILD_DIR)/%/.installed:	$(BUILD_DIR)/%/.built $(BUILD_DIR)/config-%/$(CFG)
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   116
	$(COMPONENT_PRE_INSTALL_ACTION)
1057
e04f97962a3d 15791665 SUNBT7168800 python build turds go in the wrong place
Danek Duvall <danek.duvall@oracle.com>
parents: 774
diff changeset
   117
	(cd $(SOURCE_DIR) ; $(ENV) HOME=$(BUILD_DIR)/config-$* $(COMPONENT_INSTALL_ENV) \
62
519e6e3788ce 7013265 userland could use a tool to aid in SUNW package generation
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 59
diff changeset
   118
		$(PYTHON.$(BITS)) ./setup.py install $(COMPONENT_INSTALL_ARGS))
2
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   119
	$(COMPONENT_POST_INSTALL_ACTION)
125cd5d2cd9e include gmake example
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents:
diff changeset
   120
	$(TOUCH) $@
62
519e6e3788ce 7013265 userland could use a tool to aid in SUNW package generation
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 59
diff changeset
   121
3558
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   122
# Define bit specific and Python version specific filenames.
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   123
COMPONENT_TEST_MASTER =	$(COMPONENT_TEST_RESULTS_DIR)/results-$(PYTHON_VERSION)-$(BITS).master
3864
77a09e73626b 20548962 generated test files should be in the build directory for clobbering time
Rich Burridge <rich.burridge@oracle.com>
parents: 3817
diff changeset
   124
COMPONENT_TEST_OUTPUT =	$(COMPONENT_TEST_BUILD_DIR)/test-$(PYTHON_VERSION)-$(BITS)-results
77a09e73626b 20548962 generated test files should be in the build directory for clobbering time
Rich Burridge <rich.burridge@oracle.com>
parents: 3817
diff changeset
   125
COMPONENT_TEST_DIFFS =	$(COMPONENT_TEST_BUILD_DIR)/test-$(PYTHON_VERSION)-$(BITS)-diffs
77a09e73626b 20548962 generated test files should be in the build directory for clobbering time
Rich Burridge <rich.burridge@oracle.com>
parents: 3817
diff changeset
   126
COMPONENT_TEST_SNAPSHOT = $(COMPONENT_TEST_BUILD_DIR)/results-$(PYTHON_VERSION)-$(BITS).snapshot
77a09e73626b 20548962 generated test files should be in the build directory for clobbering time
Rich Burridge <rich.burridge@oracle.com>
parents: 3817
diff changeset
   127
COMPONENT_TEST_TRANSFORM_CMD = $(COMPONENT_TEST_BUILD_DIR)/transform-$(PYTHON_VERSION)-$(BITS)-results
3558
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   128
247
c57f32335aee 7043992 move pylint from SFW to userland
April Chin <april.chin@oracle.com>
parents: 181
diff changeset
   129
COMPONENT_TEST_DEP =	$(BUILD_DIR)/%/.installed
c57f32335aee 7043992 move pylint from SFW to userland
April Chin <april.chin@oracle.com>
parents: 181
diff changeset
   130
COMPONENT_TEST_DIR =	$(COMPONENT_SRC)/test
2164
b580bc10e31a 19824924 Various Userland component test: Makefile targets should be standardized
Rich Burridge <rich.burridge@oracle.com>
parents: 1907
diff changeset
   131
COMPONENT_TEST_ENV_CMD =	$(ENV)
247
c57f32335aee 7043992 move pylint from SFW to userland
April Chin <april.chin@oracle.com>
parents: 181
diff changeset
   132
COMPONENT_TEST_ENV +=	PYTHONPATH=$(PROTO_DIR)$(PYTHON_VENDOR_PACKAGES)
c57f32335aee 7043992 move pylint from SFW to userland
April Chin <april.chin@oracle.com>
parents: 181
diff changeset
   133
COMPONENT_TEST_CMD =	$(PYTHON)
c57f32335aee 7043992 move pylint from SFW to userland
April Chin <april.chin@oracle.com>
parents: 181
diff changeset
   134
COMPONENT_TEST_ARGS +=	./runtests.py
c57f32335aee 7043992 move pylint from SFW to userland
April Chin <april.chin@oracle.com>
parents: 181
diff changeset
   135
3558
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   136
# determine the type of tests we want to run.
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   137
ifeq ($(strip $(wildcard $(COMPONENT_TEST_RESULTS_DIR)/results-*.master)),)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   138
TEST_32 = $(PYTHON2_VERSIONS:%=$(BUILD_DIR)/$(MACH32)-%/.tested)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   139
TEST_64 = $(PYTHON_VERSIONS:%=$(BUILD_DIR)/$(MACH64)-%/.tested)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   140
TEST_NO_ARCH = $(PYTHON_VERSIONS:%=$(BUILD_DIR)/$(MACH)-%/.tested)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   141
else
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   142
TEST_32 = $(PYTHON2_VERSIONS:%=$(BUILD_DIR)/$(MACH32)-%/.tested-and-compared)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   143
TEST_64 = $(PYTHON_VERSIONS:%=$(BUILD_DIR)/$(MACH64)-%/.tested-and-compared)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   144
TEST_NO_ARCH = $(PYTHON_VERSIONS:%=$(BUILD_DIR)/$(MACH)-%/.tested-and-compared)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   145
endif
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   146
ifeq ($(PYTHON_VERSION),3.4)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   147
TEST_32_and_64 = $(TEST_64)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   148
endif
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   149
247
c57f32335aee 7043992 move pylint from SFW to userland
April Chin <april.chin@oracle.com>
parents: 181
diff changeset
   150
# test the built source
3558
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   151
$(BUILD_DIR)/%/.tested-and-compared:    $(COMPONENT_TEST_DEP)
3864
77a09e73626b 20548962 generated test files should be in the build directory for clobbering time
Rich Burridge <rich.burridge@oracle.com>
parents: 3817
diff changeset
   152
	$(RM) -rf $(COMPONENT_TEST_BUILD_DIR)
77a09e73626b 20548962 generated test files should be in the build directory for clobbering time
Rich Burridge <rich.burridge@oracle.com>
parents: 3817
diff changeset
   153
	$(MKDIR) $(COMPONENT_TEST_BUILD_DIR)
247
c57f32335aee 7043992 move pylint from SFW to userland
April Chin <april.chin@oracle.com>
parents: 181
diff changeset
   154
	$(COMPONENT_PRE_TEST_ACTION)
3558
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   155
	-(cd $(COMPONENT_TEST_DIR) ; \
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   156
		$(COMPONENT_TEST_ENV_CMD) $(COMPONENT_TEST_ENV) \
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   157
		$(COMPONENT_TEST_CMD) $(COMPONENT_TEST_ARGS)) \
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   158
		&> $(COMPONENT_TEST_OUTPUT)
247
c57f32335aee 7043992 move pylint from SFW to userland
April Chin <april.chin@oracle.com>
parents: 181
diff changeset
   159
	$(COMPONENT_POST_TEST_ACTION)
3558
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   160
	$(COMPONENT_TEST_CREATE_TRANSFORMS)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   161
	$(COMPONENT_TEST_PERFORM_TRANSFORM)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   162
	$(COMPONENT_TEST_COMPARE)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   163
	$(COMPONENT_TEST_CLEANUP)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   164
	$(TOUCH) $@
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   165
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   166
$(BUILD_DIR)/%/.tested:    $(COMPONENT_TEST_DEP)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   167
	$(COMPONENT_PRE_TEST_ACTION)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   168
	(cd $(COMPONENT_TEST_DIR) ; \
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   169
		$(COMPONENT_TEST_ENV_CMD) $(COMPONENT_TEST_ENV) \
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   170
		$(COMPONENT_TEST_CMD) $(COMPONENT_TEST_ARGS))
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   171
	$(COMPONENT_POST_TEST_ACTION)
2cec274f17fc 20222479 Need a method to compare test results against a master in Userland
Rich Burridge <rich.burridge@oracle.com>
parents: 3497
diff changeset
   172
	$(COMPONENT_TEST_CLEANUP)
247
c57f32335aee 7043992 move pylint from SFW to userland
April Chin <april.chin@oracle.com>
parents: 181
diff changeset
   173
	$(TOUCH) $@
c57f32335aee 7043992 move pylint from SFW to userland
April Chin <april.chin@oracle.com>
parents: 181
diff changeset
   174
774
d0cbca26a17c 7035978 parfait support for userland bits
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 706
diff changeset
   175
ifeq   ($(strip $(PARFAIT_BUILD)),yes)
1352
1358a1e1ff4c 16921386 move to parfait 1.2.0.1
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 1310
diff changeset
   176
parfait: build
774
d0cbca26a17c 7035978 parfait support for userland bits
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 706
diff changeset
   177
else
d0cbca26a17c 7035978 parfait support for userland bits
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 706
diff changeset
   178
parfait:
d0cbca26a17c 7035978 parfait support for userland bits
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 706
diff changeset
   179
	$(MAKE) PARFAIT_BUILD=yes parfait
d0cbca26a17c 7035978 parfait support for userland bits
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 706
diff changeset
   180
endif
d0cbca26a17c 7035978 parfait support for userland bits
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents: 706
diff changeset
   181
99
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 62
diff changeset
   182
clean::
c15c9099bb44 6841644 OpenSolaris Python should support gdbm
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents: 62
diff changeset
   183
	$(RM) -r $(SOURCE_DIR) $(BUILD_DIR)
1293
98e5300bb391 PSARC/2013/114 decorator
John Beck <John.Beck@Oracle.COM>
parents: 1057
diff changeset
   184
98e5300bb391 PSARC/2013/114 decorator
John Beck <John.Beck@Oracle.COM>
parents: 1057
diff changeset
   185
# Make it easy to construct a URL for a pypi source download.
98e5300bb391 PSARC/2013/114 decorator
John Beck <John.Beck@Oracle.COM>
parents: 1057
diff changeset
   186
PYPI_BASE = http://pypi.python.org/packages/source
98e5300bb391 PSARC/2013/114 decorator
John Beck <John.Beck@Oracle.COM>
parents: 1057
diff changeset
   187
pypi_url = $(PYPI_BASE)/$(shell echo $(COMPONENT_NAME) | cut -c1)/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
3817
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
   188
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
   189
ifneq ($(findstring 2.6, $(PYTHON_VERSIONS)),)
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
   190
REQUIRED_PACKAGES += runtime/python-26
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
   191
endif
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
   192
ifneq ($(findstring 2.7, $(PYTHON_VERSIONS)),)
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
   193
REQUIRED_PACKAGES += runtime/python-27
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
   194
endif
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
   195
ifneq ($(findstring 3.4, $(PYTHON_VERSIONS)),)
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
   196
REQUIRED_PACKAGES += runtime/python-34
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
   197
endif
30b42c38bbc4 15786608 SUNBT7162754 create new meta package developer/opensolaris/userland
Norm Jacobs <Norm.Jacobs@Sun.COM>
parents: 3558
diff changeset
   198
REQUIRED_PACKAGES += library/python/setuptools