Makefile revision 578
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder#
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# CDDL HEADER START
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder#
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# The contents of this file are subject to the terms of the
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# Common Development and Distribution License (the "License").
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# You may not use this file except in compliance with the License.
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder#
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# or http://www.opensolaris.org/os/licensing.
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# See the License for the specific language governing permissions
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# and limitations under the License.
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder#
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# When distributing Covered Code, include this CDDL HEADER in each
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# If applicable, add the following below this CDDL HEADER, with the
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# fields enclosed by brackets "[]" replaced with your own identifying
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# information: Portions Copyright [yyyy] [name of copyright owner]
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder#
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# CDDL HEADER END
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder#
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder#
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder#
ecf28362cd00cbc3fe87c086fed5ead1e5d5f5aecmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederinclude ../../make-rules/shared-macros.mk
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederPATH=/usr/bin:/usr/gnu/bin
671f2fe36761d67297d2d39a7b2a70896f8c7b1bcmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCOMPONENT_NAME= vim
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCOMPONENT_VERSION= 7.3
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederIPS_COMPONENT_VERSION= $(shell echo $(COMPONENT_HG_REV) | sed -e 's/-/./g' -e 's/v//')
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCOMPONENT_SRC= vim-$(COMPONENT_HG_REV)
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCOMPONENT_PROJECT_URL= http://www.vim.org/
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCOMPONENT_ARCHIVE= vim-$(COMPONENT_HG_REV).tar.bz2
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCOMPONENT_ARCHIVE_URL= $(EXTERNAL_ARCHIVE_MIRROR)/$(COMPONENT_ARCHIVE)
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCOMPONENT_ARCHIVE_HASH= sha1:19df428d07dfbbe771923871cde609becdf6992e
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCOMPONENT_HG_URL= https://vim.googlecode.com/hg
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCOMPONENT_HG_REV= v7-3-254
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederinclude ../../make-rules/prep.mk
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederinclude ../../make-rules/configure.mk
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederinclude ../../make-rules/ips.mk
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederHGREPODIR= $(COMPONENT_NAME).hg
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederTARBALLDIR= $(COMPONENT_NAME)-$(COMPONENT_HG_REV)
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder$(HGREPODIR)/.hg:
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder hg clone -U $(COMPONENT_HG_URL) $(@D)
671f2fe36761d67297d2d39a7b2a70896f8c7b1bcmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# Create the tarball. It should contain the working directory of the repo at
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# the desired revision, but not the .hg directory. Note that the digest will
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# be different every time because .hg doesn't set the timestamps of the files
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# in the working directory.
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederhgball: $(HGREPODIR)/.hg
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder hg -R $(HGREPODIR) pull
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder hg -R $(HGREPODIR) tags | awk '$$1 ~ /^v7-/ {print $$1; exit}'
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder rm -rf $(TARBALLDIR)
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder hg clone -u $(COMPONENT_HG_REV) $(HGREPODIR) $(TARBALLDIR)
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder rm -rf $(TARBALLDIR)/.hg
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder tar jcf $(COMPONENT_ARCHIVE) $(TARBALLDIR)
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder digest -a sha1 $(COMPONENT_ARCHIVE)
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
671f2fe36761d67297d2d39a7b2a70896f8c7b1bcmaederPATCH_LEVEL = 0
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
671f2fe36761d67297d2d39a7b2a70896f8c7b1bcmaederPKG_MACROS += VIMVER=vim73
671f2fe36761d67297d2d39a7b2a70896f8c7b1bcmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederX_VARIANT = $(BUILD_DIR)/$(MACH32)-gvim
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederNOX_VARIANT = $(BUILD_DIR)/$(MACH32)-vim
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederVARIANTS = $(X_VARIANT) $(NOX_VARIANT)
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
ecf28362cd00cbc3fe87c086fed5ead1e5d5f5aecmaeder$(VARIANTS:%=%/.configured): BITS=32
ecf28362cd00cbc3fe87c086fed5ead1e5d5f5aecmaeder
15893b786c5136470fbfc2c03024834731e9d8decmaederBUILD_32 = $(VARIANTS:%=%/.built)
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# Only install the non-X variant. We will cherry-pick gvim out of the build
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# directory to avoid re-installing everything.
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederINSTALL_32 = $(NOX_VARIANT)/.installed
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederTEST_32 = $(NOX_VARIANT)/.tested
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# Override a broken imake that's always providing a 64-bit library directory.
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCONFIGURE_OPTIONS += --x-libraries=$(CONFIGURE_LIBDIR.$(BITS))
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCONFIGURE_OPTIONS += --with-features=huge
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCONFIGURE_OPTIONS += --with-compiledby="the Solaris Userland build environment"
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCONFIGURE_OPTIONS += --with-modified-by="Solaris Userland <userland-discuss@opensolaris.org>"
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCONFIGURE_OPTIONS += --enable-luainterp=dynamic
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# XXX Perl compilation fails, for some reason.
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# - Perl_croak_nocontext is redefined (embed.h, line 5157), having something to
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# do with PERL_IMPLICIT_CONTEXT, which is discussed in perlguts(1). This is
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# just a warning, but looks like it might have nasty consequences.
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# - The declaration of Perl_Gthr_key_ptr() has a problem with its argument of
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# type pTHX. if_perl.xs defines that to void if it's not already defined,
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# but perl.h probably does something else to it, not sure what yet. This
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# also appears to have something to do with PERL_IMPLICIT_CONTEXT.
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# CONFIGURE_OPTIONS += --enable-perlinterp=dynamic
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCONFIGURE_OPTIONS += --enable-pythoninterp=dynamic
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCONFIGURE_OPTIONS += --enable-rubyinterp=dynamic
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# We build two variants: with and without X support.
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder$(NOX_VARIANT)/.configured: CONFIGURE_OPTIONS += --without-x
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder$(NOX_VARIANT)/.configured: CONFIGURE_OPTIONS += --disable-gui
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder$(NOX_VARIANT)/.configured: CONFIGURE_OPTIONS += --disable-gtktest
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder$(X_VARIANT)/.configured: CONFIGURE_OPTIONS += --with-vim-name=gvim
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder$(X_VARIANT)/.configured: CONFIGURE_OPTIONS += --with-x
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder$(X_VARIANT)/.configured: CONFIGURE_OPTIONS += --enable-gui=gtk2
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder$(X_VARIANT)/.configured: CONFIGURE_OPTIONS += --enable-gtk2-check
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# Vim's build is too smart for itself and configure can't run outside of a
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# complete source tree.
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederCOMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder$(SOURCE_DIR)/runtime/doc/uganda.txt: prep
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder$(BUILD_DIR)/license: $(SOURCE_DIR)/runtime/doc/uganda.txt
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder nawk '/begin of license/ {p=1; getline; next} /end of license/ {p=0} p == 1 {print}' $< > $@
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder# common targets
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederbuild: $(BUILD_32)
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederinstall: $(INSTALL_32) $(X_VARIANT)/.built $(BUILD_DIR)/license
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaedertest: $(TEST_32)
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaederBUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS)
671f2fe36761d67297d2d39a7b2a70896f8c7b1bcmaeder
671f2fe36761d67297d2d39a7b2a70896f8c7b1bcmaederinclude ../../make-rules/depend.mk
bcc5d40208f7f9ae746d4270937b5f4c72beb2d0cmaeder