Makefile revision 618
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson#
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# CDDL HEADER START
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson#
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# The contents of this file are subject to the terms of the
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# Common Development and Distribution License (the "License").
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# You may not use this file except in compliance with the License.
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson#
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# or http://www.opensolaris.org/os/licensing.
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# See the License for the specific language governing permissions
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# and limitations under the License.
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson#
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# When distributing Covered Code, include this CDDL HEADER in each
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# If applicable, add the following below this CDDL HEADER, with the
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# fields enclosed by brackets "[]" replaced with your own identifying
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# information: Portions Copyright [yyyy] [name of copyright owner]
2fbc38f7b94704e1147137ed30638b60a37b0be1Andreas Gustafsson#
ef491b68cd4d65839f09171df243aeaf013247bfAndreas Gustafsson# CDDL HEADER END
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson#
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson#
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafssoninclude ../../../make-rules/shared-macros.mk
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonPATH=/usr/bin:/usr/gnu/bin:/usr/sbin
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCOMPONENT_NAME= Python
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCOMPONENT_VERSION= 2.7.1
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCOMPONENT_PROJECT_URL= http://python.org/
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCOMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCOMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.bz2
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCOMPONENT_ARCHIVE_HASH= sha1:fbe1894322ff91b80726e269c97454f4129fc2a3
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCOMPONENT_ARCHIVE_URL= $(COMPONENT_PROJECT_URL)ftp/python/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafssoninclude $(WS_TOP)/make-rules/prep.mk
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafssoninclude $(WS_TOP)/make-rules/configure.mk
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafssoninclude $(WS_TOP)/make-rules/ips.mk
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafssoninclude $(WS_TOP)/make-rules/lint-libraries.mk
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson# We patch auto* files, so regenerate headers and configure
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCOMPONENT_PREP_ACTION = \
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson (cd $(@D) ; autoheader ; autoconf)
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson# to find the ncurses headers
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCPPFLAGS += -I/usr/include/ncurses
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson# libffi for _ctypes
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCPPFLAGS += $(shell pkg-config --cflags-only-I libffi)
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson# because python links with $(CC) ... $(LDFLAGS) ...
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonLDFLAGS = $(CC_BITS) $(CC_PIC)
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson# build pic
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCFLAGS += $(CC_PIC)
2fbc38f7b94704e1147137ed30638b60a37b0be1Andreas Gustafsson
2fbc38f7b94704e1147137ed30638b60a37b0be1Andreas Gustafsson# add /usr/gnu/lib to the library search/run path
2fbc38f7b94704e1147137ed30638b60a37b0be1Andreas GustafssonLDFLAGS.32 = -R/usr/gnu/lib -L/usr/gnu/lib
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonLDFLAGS.64 = -R/usr/gnu/lib/$(MACH64) -L/usr/gnu/lib/$(MACH64)
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonLDFLAGS += $(LDFLAGS.$(BITS))
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson# Python puts its header files in a special place.
2fbc38f7b94704e1147137ed30638b60a37b0be1Andreas GustafssonLINT_FLAGS += -I$(SOURCE_DIR)/Include
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCONFIGURE_OPTIONS += --infodir=$(CONFIGURE_INFODIR)
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCONFIGURE_OPTIONS += --enable-shared
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCONFIGURE_OPTIONS += --with-system-expat
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCONFIGURE_OPTIONS += --with-system-ffi
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCONFIGURE_OPTIONS += --without-gcc
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCONFIGURE_OPTIONS += --enable-ipv6
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCONFIGURE_OPTIONS += ac_cv_opt_olimit_ok=no
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCONFIGURE_OPTIONS += ac_cv_olimit_ok=no
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS)"
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCONFIGURE_OPTIONS += BASECFLAGS="$(CFLAGS)"
2fbc38f7b94704e1147137ed30638b60a37b0be1Andreas GustafssonCONFIGURE_OPTIONS += LDFLAGS="$(LDFLAGS)"
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCONFIGURE_OPTIONS += DFLAGS="-$(BITS)"
2fbc38f7b94704e1147137ed30638b60a37b0be1Andreas Gustafsson
2fbc38f7b94704e1147137ed30638b60a37b0be1Andreas GustafssonCOMPONENT_BUILD_ENV += DFLAGS="-$(BITS)"
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson# patches/00-bits.patch removes some AC_CHECK_SIZEOF tests in order to
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson# generate a pyconfig.h that is both 32 and 64 bit compatible. We add this
2fbc38f7b94704e1147137ed30638b60a37b0be1Andreas Gustafsson# back to the environment so that configure can still work. configure.in and
2fbc38f7b94704e1147137ed30638b60a37b0be1Andreas Gustafsson# pyconfig.h.in should probably be rewhacked to do this more cleanly in the
2fbc38f7b94704e1147137ed30638b60a37b0be1Andreas Gustafsson# future.
2fbc38f7b94704e1147137ed30638b60a37b0be1Andreas GustafssonCONFIGURE_OPTIONS.32 += ac_cv_sizeof_long=4
2fbc38f7b94704e1147137ed30638b60a37b0be1Andreas GustafssonCONFIGURE_OPTIONS.64 += ac_cv_sizeof_long=8
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson# 64 bit shared objects need to go in a 64-bit directory
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCOMPONENT_INSTALL_ARGS.64 += DESTSHARED=$(CONFIGURE_PREFIX)/lib/python2.7/lib-dynload
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson# common targets
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafssonbuild: $(BUILD_32_and_64)
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson$(INSTALL_32): $(INSTALL_64)
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafssoninstall: $(INSTALL_32_and_64)
89beab759407cc76083deb7a2c5215f00bf9a82eAndreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonCOMPONENT_TEST_TARGETS = test
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafssontest: $(TEST_32_and_64)
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas GustafssonBUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS)
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafssoninclude $(WS_TOP)/make-rules/depend.mk
22aa1c0bc258e6c2c7491e2e330e3c363daa2b80Andreas Gustafsson