components/hplip/Makefile
author Jiri Sasek <Jiri.Sasek@Oracle.COM>
Wed, 13 Jan 2016 06:39:34 -0800
branchs11u3-sru
changeset 5296 fe5e30c5a9ac
parent 4348 2ecf8ab90281
child 7811 9126e6f58cd8
permissions -rw-r--r--
21696841 Update HPLIP to 3.15.7

#
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
#
include ../../make-rules/shared-macros.mk

COMPONENT_NAME=         hplip
COMPONENT_VERSION=      3.15.7
TPNO=			24589
COMPONENT_ARCHIVE_HASH= sha256:d310903048f3600f93422e5a8c39ddd682511e0849cd9abc5e943f9a10bdd49d
COMPONENT_SRC=          $(COMPONENT_NAME)-$(COMPONENT_VERSION)
COMPONENT_ARCHIVE=      $(COMPONENT_SRC).tar.gz
COMPONENT_ARCHIVE_URL=	http://prdownloads.sourceforge.net/hplip/$(COMPONENT_ARCHIVE)
COMPONENT_PROJECT_URL=	http://hplipopensource.com/hplip-web/index.html
COMPONENT_BUGDB=	utility/hplip

include $(WS_MAKE_RULES)/prep.mk
include $(WS_MAKE_RULES)/configure.mk
include $(WS_MAKE_RULES)/ips.mk

PKG_OPTIONS += -I $(COMPONENT_DIR)

# Enable ASLR for this component
ASLR_MODE = $(ASLR_ENABLE)

# We need to be able to return from void functions
CC += $(studio_FEATURES_EXTENSIONS)
CXX += $(studio_FEATURES_EXTENSIONS) $(studio_NORUNPATH) $(studio_CXXLIB_CSTD) 

ROOTPPDCACHE =  $(PROTO_DIR)/usr/lib/lp/caches/SUNWhpijs.cache

# version aligned with 12.0
PYTHON_VERSION = 2.7

# common configure options
CONFIGURE_OPTIONS +=	--localedir=$(CONFIGURE_LOCALEDIR)
CONFIGURE_OPTIONS +=	--disable-pp-build
CONFIGURE_OPTIONS +=	--disable-gui-build
CONFIGURE_OPTIONS +=	--disable-qt4
CONFIGURE_OPTIONS +=	am_cv_python_pythondir="$(PYTHON_VENDOR_PACKAGES)"
CONFIGURE_OPTIONS +=	am_cv_python_pyexecdir="$(PYTHON_VENDOR_PACKAGES)"

CONFIGURE_ENV +=	LDFLAGS=" -lnsl"

HPLIP_VARIANT = $(BUILD_DIR)/$(MACH32)-hplip
HPIJS_VARIANT = $(BUILD_DIR)/$(MACH32)-hpijs

VARIANTS = $(HPLIP_VARIANT) $(HPIJS_VARIANT)

# We build two variants: for the CUPS/SANE support
# and for the HPIJS only support

# use these options for the CUPS/SANE support
$(HPLIP_VARIANT)/.configured: CONFIGURE_OPTIONS += --with-hpppddir=/usr/share/cups/model/SUNWhplip
$(HPLIP_VARIANT)/.configured: CONFIGURE_OPTIONS += --enable-libusb01_build
$(HPLIP_VARIANT)/.configured: CONFIGURE_OPTIONS += --enable-fax-build
$(HPLIP_VARIANT)/.configured: CONFIGURE_OPTIONS += --enable-hpcups-install
$(HPLIP_VARIANT)/.configured: CONFIGURE_OPTIONS += --disable-new-hpcups
$(HPLIP_VARIANT)/.configured: CONFIGURE_OPTIONS += --enable-cups-drv-install

# use these options for the HPIJS only support
$(HPIJS_VARIANT)/.configured: CONFIGURE_OPTIONS += --enable-foomatic-ppd-install
$(HPIJS_VARIANT)/.configured: CONFIGURE_OPTIONS += --with-hpppddir=/usr/share/ppd/SUNWhpijs/HP
$(HPIJS_VARIANT)/.configured: CONFIGURE_OPTIONS += --disable-cups-drv-install
$(HPIJS_VARIANT)/.configured: CONFIGURE_OPTIONS += --disable-hpcups-install
$(HPIJS_VARIANT)/.configured: CONFIGURE_OPTIONS += --disable-doc-build
$(HPIJS_VARIANT)/.configured: CONFIGURE_OPTIONS += --enable-hpijs-only-build
$(HPIJS_VARIANT)/.configured: CONFIGURE_OPTIONS += --enable-hpijs-install

install: COMPONENT_INSTALL_ENV += halpredir=/etc/hal/fdi/preprobe/10osvendor

COMPONENT_INSTALL_ARGS += -e

COMPONENT_PRE_CONFIGURE_ACTION = \
	($(CLONEY) $(SOURCE_DIR) $(@D))

# Generate configuration scripts
$(HPLIP_VARIANT)/.built: COMPONENT_PREP_ACTION = \
		(cd $(@D) ; autoconf )


$(BUILD_DIR)/.allvariantsinstalled: $(VARIANTS:%=%/.installed)
	$(RM) $(ROOTPPDCACHE)
	$(MKDIR) $(PROTO_DIR)/usr/lib/lp/caches
	($(ENV) VER="$(BUILD_DIR)/$(MACH32)-hpijs" \
		PPDSRC="$(PROTO_DIR)/usr/share/ppd/SUNWhpijs" \
		DONOTINSTALL="/dev/null" \
		CACHE="$(ROOTPPDCACHE)" \
		IPATH="/usr/share/ppd/$(BUILD_DIR)/" \
		$(KSH93) cache.ksh)
	# set version of python interpreter to calm the pkglint
	find $(PROTO_DIR) -name \*.py -print0 | \
	   while IFS= read -r -d $$'\0' file; do \
		/usr/bin/sed -e '1,1s&^#!.*python[:blank:]\{0,\}$$&#!$(PYTHON.$(PYTHON_VERSION))&' \
		   $$file > $$file.pyverset ; \
	   done
	find $(PROTO_DIR) -name \*.py.pyverset -print0 | \
	   while IFS= read -r -d $$'\0' file; do \
		$(MV) $$file `echo $$file | sed -e 's/[.]pyverset$$//'` ; \
	   done
	$(PYTHON.$(PYTHON_VERSION)) -m compileall $(PROTO_DIR)/usr/share/hplip/
	$(TOUCH) $@

PKG_MACROS +=	PYVER=$(PYTHON_VERSION)
#
# Since it looks like you can't build HPLIP with both HPIJS and CUPS support
# and seperate the HPIJS and CUPS PPD data, we need to replicate the code and
# build it twice.  Once for the HPIJS support used by LP and once for the rest
# of the support used for CUPS and SANE.
#
configure: $(VARIANTS:%=%/.configured)

build: $(VARIANTS:%=%/.built)

install: $(BUILD_DIR)/.allvariantsinstalled

# empty test target
test:	$(NO_TESTS)

REQUIRED_PACKAGES += image/library/libjpeg
REQUIRED_PACKAGES += image/scanner/xsane/sane-backends
REQUIRED_PACKAGES += library/print/cups-libs
REQUIRED_PACKAGES += runtime/python-27
REQUIRED_PACKAGES += system/library
REQUIRED_PACKAGES += system/library/c++-runtime
REQUIRED_PACKAGES += system/library/libdbus
REQUIRED_PACKAGES += system/library/math
REQUIRED_PACKAGES += system/library/usb/libusb
REQUIRED_PACKAGES += system/linker
REQUIRED_PACKAGES += system/management/snmp/net-snmp