Makefile revision 1231
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrews###############################################################################
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
f0aad5341752aefe5059832f6cf3abc3283c6e16Tinderbox User# xterm Makefile
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User#
5347c0fcb04eaea19d9f39795646239f487c6207Tinderbox User# Permission is hereby granted, free of charge, to any person obtaining a
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# copy of this software and associated documentation files (the "Software"),
d6fa26d0adaec6c910115be34fe7a5a5f402c14fMark Andrews# to deal in the Software without restriction, including without limitation
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# the rights to use, copy, modify, merge, publish, distribute, sublicense,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and/or sell copies of the Software, and to permit persons to whom the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Software is furnished to do so, subject to the following conditions:
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# The above copyright notice and this permission notice (including the next
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# paragraph) shall be included in all copies or substantial portions of the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Software.
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# DEALINGS IN THE SOFTWARE.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Package name used in tarballs
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMODULE_NAME=xterm
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# pkg(5) name we deliver the files in (override default)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMODULE_PKGNAME=terminal/xterm
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserMODULE_PKGNAME_SET=yes
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# resize goes into a separate package so it can be installed in zones without
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# X, but which you login to from a resizable GUI terminal window.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinRESIZE_PKGNAME=terminal/resize
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
af40ebed6257e4ac1996144530b3de317cf4da11Tinderbox User# Package classification (override default)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserMODULE_PKGCLASS=Applications/System Utilities
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserMODULE_PKGCLASS_SET=yes
af40ebed6257e4ac1996144530b3de317cf4da11Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Package metadata
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinUPSTREAM = Thomas Dickey
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserUPSTREAM_URL = http://invisible-island.net/xterm/
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinUPSTREAM_SET = yes
af40ebed6257e4ac1996144530b3de317cf4da11Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Version number (used in path names)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMODULE_VERSION=271
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Checksums for upstream tarball
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinTARBALL_MD5 = e07b05bd3d3a666a8cf086fcc8d227f3
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinTARBALL_SHA1 = 53586916147cb88e71b3d620a7d1b80f1696749b
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Source tarball
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSOURCE_URL=ftp://invisible-island.net/xterm/$(SOURCE_TARBALL_NAME:.tar.gz=.tgz)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSOURCE_URL_SET=yes
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Source tarball
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserSOURCE_TARBALL_NAME=$(MODULE_NAME)-$(MODULE_VERSION).tar.gz
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinSOURCE_TARBALL_NAME_SET=yes
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Patches to apply to source after unpacking, in order
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark AndrewsSOURCE_PATCHES = resize.man.patch,-p1 desktop-icon.patch,-p1
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark AndrewsSOURCE_PATCHES += solaris-ia.patch,-p1
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews# Man pages to apply Sun footer to & attributes to list
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark AndrewsSUNTOUCHED_MANPAGES=koi8rxterm.man resize.man uxterm.man xterm.man
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark AndrewsMODULE_STABILITY=Committed
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews# Fix man page footers to not say "Last changed: X Window System"
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark AndrewsXORGRELSTRING = $(MODULE_NAME) $(MODULE_VERSION)
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews XORGMANNAME = X Version 11
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein XVENDORVERS = "$(XORGRELSTRING)" "$(XORGMANNAME)"
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserMODULE_SUNTOUCH_MAN_FLAGS = -r '{__vendorversion__, $(XVENDORVERS)}'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Override specific attributes for specific man pages
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMODULE_SUNTOUCH_MAN_FLAGS += \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(SUNTOUCH_MAN_FLAGS_$(@F:%.man.$(FIXED_MAN_SUFFIX)=%))
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserSUNTOUCH_MAN_FLAGS_resize = -o '{Availability, $(RESIZE_PKGNAME)}'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Paths to find Xft/fontconfig/freetype headers libraries at build time
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and run time
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinFT_CFLAGS= -I$(PROTODIR)/usr/include -I$(PROTODIR)/usr/include/freetype2
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinFT_LIBS= \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User -L$(PROTODIR)/usr/lib$(LIBSUBDIR) -R/usr/lib$(LIBSUBDIR) -lXft -lfontconfig
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Override the flags xterm's configure script generates, since it incorrectly
af40ebed6257e4ac1996144530b3de317cf4da11Tinderbox User# adds -R flags pointing to the build proto area, which are not wanted.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserMODULE_BUILD_MAKEFLAGS = \
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews LDFLAGS="$(DEFAULT_CONFIG_LDFLAGS) $(MODTYPE_CFLAGS) $(MODTYPE_LDFLAGS)"
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews# Additional flags to pass to configure script
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMODULE_CONFIG_OPTS = --enable-256-color --enable-88-color --enable-wide-chars \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews --with-freetype-cflags="$(FT_CFLAGS)" --with-freetype-libs="$(FT_LIBS)" \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein --disable-setuid --disable-setgid --enable-luit --disable-imake \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein --x-includes=$(PROTODIR)$(X11_INCLUDES_DIR) --x-libraries=$(X11_LIB_DIR) \
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews --with-app-defaults=/usr/share/X11/app-defaults \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein --with-icondir=/usr/share/pixmaps --enable-logging
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews# Sort-of emulate automake silent rules - run make configure V=1 to see
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# full compiler flags
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserMODULE_CONFIG_OPTS_VERBOSE_0 = --disable-echo
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMODULE_CONFIG_OPTS_VERBOSE_1 = --enable-echo
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserMODULE_CONFIG_OPTS_VERBOSE_ = $(MODULE_CONFIG_OPTS_VERBOSE_0)
71c66a876ecca77923638d3f94cc0783152b2f03Mark AndrewsMODULE_CONFIG_OPTS += $(MODULE_CONFIG_OPTS_VERBOSE_$(V))
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Tell configure where to find luit binary
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMODULE_CONFIG_ENV = LUIT=$(X11_BIN_DIR)/luit
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Compatibility links from /usr/X11/bin to /usr/bin
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMODULE_X11_BINCOMPAT_LINKS = xterm resize
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMODULE_ADD_INSTALL_TARGETS=install_docs install_desktop
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude ../Makefile.inc
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Install documentation of xterm control sequences for packaging
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinMODULE_DOCDIR=/usr/share/doc/xterm
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinPROTO_CTLSEQS=$(PROTODIR)$(MODULE_DOCDIR)/ctlseqs.txt
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall_docs: $(PROTO_CTLSEQS)
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Install desktop file to allow starting xterm from GNOME menu
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox UserDESKTOP_DIR=/usr/share/applications
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinPROTO_DESKTOP=$(PROTODIR)$(DESKTOP_DIR)/xterm.desktop
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall_desktop: $(PROTO_DESKTOP)
1ca759b3f5c0672b2a66bc02288fe010cabbfe37Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein$(PROTO_CTLSEQS) $(PROTO_DESKTOP): $(UNPACK_TARGET)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein mkdir -p $(@D)
cp -pf $(SOURCE_DIR)/$(@F) $@
# Metadata for separate package for resize
RESIZE_PKG_METADATA_DIR = $(MODULE_PKG_METADATA_DIR:%xterm=%resize)
RESIZE_PKG_ATTRDATA_FILE = $(RESIZE_PKG_METADATA_DIR)/$(ATTRDATA_FILE_NAME)
RESIZE_PKG_LICENSE_FILE = $(RESIZE_PKG_METADATA_DIR)/$(LICENSE_FILE_NAME)
RESIZE_METADATA_TARGETS = \
$(RESIZE_PKG_METADATA_DIR) \
$(RESIZE_PKG_ATTRDATA_FILE) \
$(RESIZE_PKG_LICENSE_FILE)
install_metadata: $(RESIZE_METADATA_TARGETS)
$(RESIZE_PKG_METADATA_DIR):
mkdir -p $@
$(RESIZE_PKG_ATTRDATA_FILE) $(RESIZE_PKG_LICENSE_FILE): $(RESIZE_PKG_METADATA_DIR)