Makefile revision 1339
7f007e36bec06aba6b3a0f84a64f2abf99edfcd8gstein###############################################################################
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# TigerVNC (Xvnc server & vncviewer) Makefile
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# Based on Fedora's tigervnc.spec revision 1.20 from
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# http://cvs.fedoraproject.org/viewvc/rpms/tigervnc/devel/tigervnc.spec
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
a548c09e6a8ca1b059d0e93b5256c6ccb2b3c3cdrbb# Permission is hereby granted, free of charge, to any person obtaining a
b876b7bcf0ce3d232da723246d709e8dbbfe8762rbb# copy of this software and associated documentation files (the "Software"),
cf6bf6c34c936e6a6fe731dbce4a5c3c8bf8e9a3gstein# to deal in the Software without restriction, including without limitation
35330e0d79ceb8027223bbb8330a381b1f989d6etrawick# the rights to use, copy, modify, merge, publish, distribute, sublicense,
6f6f4a4bca281779d196acbdd5c017bb90858305trawick# and/or sell copies of the Software, and to permit persons to whom the
8dd4618c4709236b4ea297d7250d282e463ce2d8rbb# Software is furnished to do so, subject to the following conditions:
2deb319e6b3de239f45c16a3e9e836d44f1f7108rbb# The above copyright notice and this permission notice (including the next
bd929c73ef04789b7183b840d8db6e01d03a4d86rbb# paragraph) shall be included in all copies or substantial portions of the
2a4b7a53f3573605d4f5686f03a67c37425dc22bgregames# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2a4b7a53f3573605d4f5686f03a67c37425dc22bgregames# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
5ac928b7a71a12bc1a6b42194c47edbff1dcc02fgregames# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
5ac928b7a71a12bc1a6b42194c47edbff1dcc02fgregames# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2a4b7a53f3573605d4f5686f03a67c37425dc22bgregames# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
f467b575e2698cfeb818b357b00b2a13873eb309trawick# DEALINGS IN THE SOFTWARE.
f467b575e2698cfeb818b357b00b2a13873eb309trawick# Package name used in tarballs
f467b575e2698cfeb818b357b00b2a13873eb309trawick# Package metadata
f467b575e2698cfeb818b357b00b2a13873eb309trawickMODULE_LICENSE_DESC = portions of the TigerVNC software
f467b575e2698cfeb818b357b00b2a13873eb309trawick# Version number (used in path names)
f467b575e2698cfeb818b357b00b2a13873eb309trawick# Checksums for upstream tarball
f467b575e2698cfeb818b357b00b2a13873eb309trawickTARBALL_SHA1 = a678745c231a37eea92c7c7c259f7495061a9a0d
f467b575e2698cfeb818b357b00b2a13873eb309trawick# Source tarball
f467b575e2698cfeb818b357b00b2a13873eb309trawickSOURCE_TARBALL_NAME=$(MODULE_NAME)-$(MODULE_VERSION).tar.gz
f467b575e2698cfeb818b357b00b2a13873eb309trawick# Xorg server source tarball to use sources from
f467b575e2698cfeb818b357b00b2a13873eb309trawickXORG_TARBALL=$(TARBALLDIR)/xorg-server-$(XORGSERVER_VERS).tar.bz2
f467b575e2698cfeb818b357b00b2a13873eb309trawickXORG_SOURCE_DIR=$(BUILD_DIR)/xorg-server-$(XORGSERVER_VERS)
f467b575e2698cfeb818b357b00b2a13873eb309trawick# Java VNCviewer applet for connecting from a web browser
f467b575e2698cfeb818b357b00b2a13873eb309trawickJAVA_SOURCE_DIR = $(SOURCE_DIR)/java/src/com/tigervnc/vncviewer
2b4a4e1af8497e0f4600ef7b79d284e71f374052trawick# Download site for source
2b4a4e1af8497e0f4600ef7b79d284e71f374052trawickSOURCE_URL=$(SF_DOWNLOADS_URL)/tigervnc/tigervnc/1.1.0/$(SOURCE_TARBALL_NAME)
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick# Patches to apply to source after unpacking, in order
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawickSOURCE_PATCHES += $(SOURCE_DIR)/unix/xserver110.patch,'-p0 -d unix'
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawickSOURCE_PATCHES += tigervnc11-xorg112.patch,'-p0 -d unix'
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick# Need to regenerate autoconf/automake files after patching
e5d1a36ad35f809c6f1bd3339aae78569abdd48ctrawick# ARC cases that covered this module
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick# PSARC/2007/545 Xvnc
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick# LSARC/2007/625 vncviewer
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick# PSARC/2009/592 TigerVNC 1.0
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick# Man pages to apply Sun footer to & attributes to list
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick unix/xserver/hw/vnc/Xvnc.man unix/vncviewer/vncviewer.man \
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick unix/vncconfig/vncconfig.man unix/vncpasswd/vncpasswd.man \
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawick# Additional pkg(5) package name used for vncviewer package
5b233db661cfc7c8c420dfe63d8e7058bc5d3e62trawickVNCVIEWER_PKGNAME=desktop/remote-desktop/$(MODULE_NAME)
2a6c49cfaef5979a5a06098f3ce987cd76769409manoj# Override specific attributes for specific man pages
50298555098049d0ebddd539668502fb5b796de0wrowe $(SUNTOUCH_MAN_FLAGS_$(@F:%.man.$(FIXED_MAN_SUFFIX)=%))
50298555098049d0ebddd539668502fb5b796de0wroweSUNTOUCH_MAN_FLAGS_vncviewer = -o '{Availability, $(VNCVIEWER_PKGNAME)}' \
39438c11bd2fb9e6d9e79c97b08abb8d5f1167f3stoddard -o '{Interface Stability, Path: Committed, Options: Volatile}'
39438c11bd2fb9e6d9e79c97b08abb8d5f1167f3stoddard# Compiler to use
39438c11bd2fb9e6d9e79c97b08abb8d5f1167f3stoddard# Make command to use
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolley# Xvnc has to configure, build, and install in different directories due to
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolley# the mixed codebases and unusual directory layout
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolley$(NO_RECURSE)MODULE_ADD_SOURCE_TARGETS = Xvnc_source_init
39438c11bd2fb9e6d9e79c97b08abb8d5f1167f3stoddardMODULE_ADD_CONFIGURE_TARGETS = $(XORG_BUILD_DIR)/Makefile
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolleyBUILD_TARGETS=Xvnc_build set-elf-comments java_build
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolleyINSTALL_TARGETS=Xvnc_install_server Xvnc_install_programs \
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolley# Environment variable options to GNU autoconf configure script
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolley# Have to remove CFLAGS entries from default LDFLAGS to avoid conflicts
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolley# with the C++ compiler we use instead
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolley LDFLAGS="$(DEFAULT_CONFIG_LDFLAGS) $(MODTYPE_LDFLAGS) $(MODULE_LDFLAGS)"
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolley# Command line options to GNU autoconf configure script for vnc clients
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolleyMODULE_CONFIG_OPTS = --with-installed-zlib --with-system-jpeg --without-simd
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolleyMODULE_CONFIG_OPTS += --libdir='$${exec_prefix}/lib/vnc'
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolley# Binaries that were linked to isaexec on x86 to choose 32-bit or 64-bit,
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolley# now just symlinks from amd64 to parent directory
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolley# Merge in additional sources from Xorg tarball & sun-src directory
1f13e103435b26e5288d7404e9a0a0cf5613521cjwoolley# This step has to be done before default_source, so that patches applied
08280f41c84b9240578ce46c50903941dec1466ejwoolley# in that step work correctly.
bf9acc131271d18db51d30ace549d3c3b6a2b9fbrbb$(NO_RECURSE)XORG_SOURCE_INIT_TARGET = $(XORG_BUILD_DIR)/$(SOURCE_INIT_TARGET_FILE)
bf9acc131271d18db51d30ace549d3c3b6a2b9fbrbb$(NO_RECURSE)XORG_PATCHED_TARGET = $(XORG_BUILD_DIR)/$(PATCHED_TARGET_FILE)
863ec32e13d6c9619414c48b51109f3dca99cbc6wrowe (cd $(XORG_BUILD_DIR) && $(LNDIR) ../../../../../xorg/sun-src)
75960f20f88dad6bc67892c711c429946063d133stoddard SOURCE_PATCHES="$(XORG_SOURCE_PATCHES:%=../xorg/%)" \
10b386767f6c87b45937244371cb751f0b454d16wrowe# Command line options to GNU autoconf configure script for Xvnc
10b386767f6c87b45937244371cb751f0b454d16wroweXVNC_CONFIG_OPTS = $(DEFAULT_CONFIG_OPTS) $(XSERVER_CONFIG_OPTS)
10b386767f6c87b45937244371cb751f0b454d16wrowe# Disable all the things we don't need in the Xvnc build since we
50298555098049d0ebddd539668502fb5b796de0wrowe# get them in the normal Xorg build instead
10b386767f6c87b45937244371cb751f0b454d16wroweXVNC_CONFIG_OPTS += --disable-builddocs --disable-xfree86-utils
a9e07e4f90adcc7bc768db3055431c3dcd560cd1manojXVNC_CONFIG_OPTS += --disable-xorg --disable-xnest --disable-xvfb --disable-dmx
f6a6245816cd866361da8c576b1f47c7a54b6610fanfXVNC_CONFIG_OPTS += --disable-xwin --disable-xephyr --disable-kdrive
f6a6245816cd866361da8c576b1f47c7a54b6610fanf# Disable building Xorg hardware device support that Xvnc can't use
97b758d0b174d7b7c5a1de1a583f5840ec3fc910trawickXVNC_CONFIG_OPTS += --without-int10 --disable-config-hal --disable-dga
db3ccce11afac4fc1d4f51a65424412f7480c46cgstein# The X server unit tests currently depend on the Xorg ddx being built
79d5106a9b65b956d646f5daae4b94bc79e315b8trawick# Workaround libtool dropping -R paths
79d5106a9b65b956d646f5daae4b94bc79e315b8trawickMODULE_LDFLAGS += -Wl,-R,$(X11_SERVERLIBS_DIR)$(ARCHLIBSUBDIR)
750fcd3495b59eff6d4844409ae1dfb46d026059gstein# Needed by unix/xorg-x11-server-source/hw/vnc/Makefile.am to find libpixman
750fcd3495b59eff6d4844409ae1dfb46d026059gstein# headers in proto area after solaris-port.patch is applied
750fcd3495b59eff6d4844409ae1dfb46d026059gstein# Run configure script for Xvnc
e9cfc70fceb74521ba0814cdc88808c7d4d00c97gstein $(CONFIG_ENV) $(CONFIG_SHELL) ./configure $(XVNC_CONFIG_OPTS) )
26ef89f716a43048630e73f527dd2f0ee84f72c2rbb $(BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS))
281da4c02cf40c663298ded7e4e5b913a8f8b814gstein $(BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS))
ec75f189410513ab8f6e1173a9d9d277ebec9ce7gstein && $(BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_INSTALL_MAKEFLAGS) \
ec75f189410513ab8f6e1173a9d9d277ebec9ce7gstein rm -f $(PROTODIR)/$(X11_SERVERMODS_DIR)/extensions/libvnc.so
ec75f189410513ab8f6e1173a9d9d277ebec9ce7gstein $(INSTALL_SCRIPT) -m 0755 $(SOURCE_DIR)/unix/vncserver \
7bce59d998f2e5ca1cb60038ef6c1d0817605d62stoddard $(INSTALL_SCRIPT) -m 0444 $(SOURCE_DIR)/unix/vncserver.man \
b08eb15d0f6fc054bc997b4ba52b2e3b1eda3a92stoddard $(INSTALL_SCRIPT) -m 0444 $(SOURCE_DIR)/unix/vncconfig/vncconfig.man \
b08eb15d0f6fc054bc997b4ba52b2e3b1eda3a92stoddard $(INSTALL_SCRIPT) -m 0444 $(SOURCE_DIR)/unix/vncpasswd/vncpasswd.man \
b08eb15d0f6fc054bc997b4ba52b2e3b1eda3a92stoddard $(INSTALL_SCRIPT) -m 0444 $(SOURCE_DIR)/unix/vncviewer/vncviewer.man \
b08eb15d0f6fc054bc997b4ba52b2e3b1eda3a92stoddard# Java VNCviewer applet for connecting from a web browser
b08eb15d0f6fc054bc997b4ba52b2e3b1eda3a92stoddardJAVA_INSTALL_DIR = $(PROTODIR)/usr/share/vnc/classes
d180ec1b29106f4fec480ef7fcdb04df078010cerse $(BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS))
d180ec1b29106f4fec480ef7fcdb04df078010cerse $(BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS))
d180ec1b29106f4fec480ef7fcdb04df078010cerse $(BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS) \
d180ec1b29106f4fec480ef7fcdb04df078010cerse# Metadata for vncviewer package
d180ec1b29106f4fec480ef7fcdb04df078010cerseVNCVIEWER_PKG_METADATA_DIR = $(PROTOMETA)/desktop-remote-desktop-tigervnc
d180ec1b29106f4fec480ef7fcdb04df078010cerseVNCVIEWER_PKG_ATTRDATA_FILE = $(VNCVIEWER_PKG_METADATA_DIR)/$(ATTRDATA_FILE_NAME)
d180ec1b29106f4fec480ef7fcdb04df078010cerseVNCVIEWER_PKG_LICENSE_FILE = $(VNCVIEWER_PKG_METADATA_DIR)/$(LICENSE_FILE_NAME)