setup.py revision 2390
290N/A# The contents of this file are subject to the terms of the 290N/A# Common Development and Distribution License (the "License"). 290N/A# You may not use this file except in compliance with the License. 290N/A# See the License for the specific language governing permissions 290N/A# and limitations under the License. 290N/A# When distributing Covered Code, include this CDDL HEADER in each 290N/A# If applicable, add the following below this CDDL HEADER, with the 290N/A# fields enclosed by brackets "[]" replaced with your own identifying 290N/A# information: Portions Copyright [yyyy] [name of copyright owner] 849N/A# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved. 708N/A# 3rd party software required for the build 290N/A# Unbuffer stdout and stderr. This helps to ensure that subprocess output 290N/A# is properly interleaved with output from this program. 395N/A# A list of source, destination tuples of modules which should be hardlinked 395N/A# together if the os supports it and otherwise copied. 395N/A 'pkg.client.linkedimage',
395N/A 'pkg.client.transport',
290N/A 'pkg.client.linkedimage',
395N/A# Runs lint on the extension module source code 290N/A # Make string shell-friendly 395N/A # Insert tests directory onto sys.path so any custom checkers 506N/A # assumes pylint is accessible on the sys.path 506N/A # For some reason, the load-plugins option, when used in the 506N/A # rcfile, does not work, so we put it here instead, to load 506N/A # Unfortunately, pylint seems pretty fragile and will crash if 506N/A # we try to run it over all the current pkg source. Hence for 513N/A # now we only run it over a subset of the source. As source 506N/A # files are made pylint clean they should be added to the 506N/A# Runs lint on the extension module source code 1191N/A # Make string shell-friendly 1391N/A # assumes lint is on the $PATH 883N/A# Runs both C and Python lint 883N/A # Make string shell-friendly 1099N/A # PRIVATE_BUILD set in the environment tells us to put the build 1099N/A # directory into the .pyc files, rather than the final 1191N/A # This is used when installing scripts, below, but it isn't a 1191N/A # standard distutils variable. 1191N/A At the end of the install function, we need to rename some files 1191N/A because distutils provides no way to rename files as they are 1191N/A placed in their install locations. 1191N/A Also, make sure that cherrypy and other external dependencies 395N/A # make scripts executable 395N/A # to ensure that this builds and runs on older 1391N/A # Remove some bits that we're not going to package, but be sure 1391N/A # not to complain if we try to remove them twice. 383N/A "Please retrieve the file " \
383N/A # remove a partial download or error message from proxy 849N/A # extractall doesn't exist until python 2.5 849N/A # If there are patches, apply them now. 290N/A "install failed and returned %d." %
ret 290N/A """ Run python's compiler over the file, and discard the results. 1101N/A Arrange to generate an exception if the file does not compile. 290N/A This is needed because distutil's own use of pycompile (in the 1101N/A distutils.utils module) is broken, and doesn't stop on error. """ 448N/A # Assume it's a tuple of (filename, lineno, col, code) 290N/A # override the build_module method to do VERSION substitution on pkg/__init__.py 613N/A # Grab the previously-built version out of the build 395N/A # If the versions haven't changed, there's no need to 395N/A print "doing version substitution: ", v
290N/A # Will raise a DistutilsError on failure. 430N/A # list of options stored in initialize_options below. The first entry 395N/A # in each tuple must be the exact name of a member variable. 395N/A (
"archivedir=",
'a',
"archive failed tests <dir>"),
395N/A (
"baselinefile=",
'b',
"baseline file <file>"),
395N/A (
"coverage",
"c",
"collect code coverage data"),
395N/A (
"genbaseline",
'g',
"generate test baseline"),
691N/A (
"only=",
"o",
"only <regex>"),
691N/A (
"parseable",
'p',
"parseable output"),
691N/A (
"port=",
"z",
"lowest port to start a depot on"),
691N/A (
"timing",
"t",
"timing file <file>"),
691N/A (
"verbosemode",
'v',
"run tests in verbose mode"),
691N/A (
"enableguitests",
'u',
"enable IPS GUI tests, disabled by default"),
691N/A (
"stoponerr",
'x',
"stop when a baseline mismatch occurs"),
691N/A (
"debugoutput",
'd',
"emit debugging output"),
395N/A (
"showonexpectedfail",
'f',
395N/A "show all failure info, even for expected fails"),
395N/A (
"startattest=",
's',
"start at indicated test"),
# Reconstruct the cmdline and send that to run.py (
"pkg=",
None,
"Component package name")
print "-D SOURCE_VER=%s -D PKG_VER=%s " \
# These are set to real values based on the platform, down below if osname in (
"sunos",
"linux",
"darwin"):
# all builds of IPS should have manpages # Solaris-specific extensions are added here # Unix platforms which the elf extension has been ported to # are specified here, so they are built automatically # Solaris has built-in md library and Solaris-specific arch extension # All others use OpenSSL and cross-platform arch module