Makefile revision 1458
5d92fff82718cd018f0b61a10b9ad4d2b8064c95rpluem###############################################################################
09359a90ff115fc5eeb96e1e5c78a58dd9fc59d3jim# TigerVNC (Xvnc server & vncviewer) Makefile
09359a90ff115fc5eeb96e1e5c78a58dd9fc59d3jim# Based on Fedora's tigervnc.spec revision 1.20 from
b8c9229249804470a885a1a43f7f2dad15fb06a3rjung# http://cvs.fedoraproject.org/viewvc/rpms/tigervnc/devel/tigervnc.spec
b8c9229249804470a885a1a43f7f2dad15fb06a3rjung# Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.
ef3e19a9a27ca055dd20e971d5578f5510308023niq# Permission is hereby granted, free of charge, to any person obtaining a
ef3e19a9a27ca055dd20e971d5578f5510308023niq# copy of this software and associated documentation files (the "Software"),
ef3e19a9a27ca055dd20e971d5578f5510308023niq# to deal in the Software without restriction, including without limitation
099d298d417b68b3d11fb5934c404c60f518d69csf# the rights to use, copy, modify, merge, publish, distribute, sublicense,
099d298d417b68b3d11fb5934c404c60f518d69csf# and/or sell copies of the Software, and to permit persons to whom the
099d298d417b68b3d11fb5934c404c60f518d69csf# Software is furnished to do so, subject to the following conditions:
0d54de55e9fec3d9ac5989a5fe016f349b82ed05sf# The above copyright notice and this permission notice (including the next
0d54de55e9fec3d9ac5989a5fe016f349b82ed05sf# paragraph) shall be included in all copies or substantial portions of the
636d0d3e03f5f4f2fefae0f20c36e288755e79f6rjung# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
3f5968bf1059aebe846e121a6f3748dd03471ce4sf# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
3f5968bf1059aebe846e121a6f3748dd03471ce4sf# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
3f5968bf1059aebe846e121a6f3748dd03471ce4sf# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
3f5968bf1059aebe846e121a6f3748dd03471ce4sf# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
3f5968bf1059aebe846e121a6f3748dd03471ce4sf# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
3f5968bf1059aebe846e121a6f3748dd03471ce4sf# DEALINGS IN THE SOFTWARE.
ab86c68ce36c715e93f403dde41d0b9c1522c8b0sf# Package name used in tarballs
7c6f514f2ef9b98f58b8f8a5f534eb78a75f29f2jorton# Package metadata
533d85911f7e4914ee5f9d5c99a2421f4ab4208asf# Version number (used in path names)
533d85911f7e4914ee5f9d5c99a2421f4ab4208asf# Checksums for upstream tarball
78b046ee9f769d9609ea1157177d5467e4700c89covener# Source tarball
78b046ee9f769d9609ea1157177d5467e4700c89covenerSOURCE_TARBALL_NAME=$(MODULE_NAME)-$(MODULE_VERSION).tar.gz
5d1aa7e499fc511e937db7a7ce671add9a4d6702sf# Xorg server source tarball to use sources from
00f8426677a7975dc809e4ccb11241c543ec8a0esfXORG_TARBALL=$(TARBALLDIR)/xorg-server-$(XORGSERVER_VERS).tar.bz2
3ef519991d73cff6763052b5a44c206bda01541dsf# Java VNCviewer applet for connecting from a web browser
512bc8626ede860ea2ef329e6c2ffbd6ceba3903sf# Download site for source
512bc8626ede860ea2ef329e6c2ffbd6ceba3903sfSOURCE_URL=$(SF_DOWNLOADS_URL)/tigervnc/tigervnc/1.1.0/$(SOURCE_TARBALL_NAME)
f82baabbe731507742af2f7ba41463dbbc7911e9sf# Patches to apply to source after unpacking, in order
26d07dbe57cb2c8f49df541329a1653635988dbbsfSOURCE_PATCHES += $(SOURCE_DIR)/unix/xserver114.patch,'-p0 -d unix'
686555019e71b355e835166dfefbec33f7fb6f90rjungSOURCE_PATCHES += tigervnc11-xorg114.patch,'-p0 -d unix'
25cc406eca0c99de0dfbd6c8862bec2d5fb6c4farjung# Need to regenerate autoconf/automake files after patching
5b43275cebfb0ff9961ac462f3a96f7fe612d327rjung# TigerVNC 1.1 doesn't fully support out-of-tree builds, so clone the source
3bcb72c0b2797d2ec0b41bb9f4696e58be2c7043rjung# Disable parfait build with 1.3 - 17759056
dc610ff4888acc61dc6c8de2b8974a4dce9c074fsf# ARC cases that covered this module
dc610ff4888acc61dc6c8de2b8974a4dce9c074fsf# PSARC/2007/545 Xvnc
b08558bf6a64f9501ad3eca34eaf4d978bd928cfsf# LSARC/2007/625 vncviewer
b08558bf6a64f9501ad3eca34eaf4d978bd928cfsf# PSARC/2009/592 TigerVNC 1.0
70f553c56eda63b353598193c3afc238db9b3c78sf# Man pages to apply Sun footer to & attributes to list
3fa816e4832a1c70600bdfd6fc5ef60e9f1c18bbsf unix/xserver/hw/vnc/Xvnc.man unix/vncviewer/vncviewer.man \
3fa816e4832a1c70600bdfd6fc5ef60e9f1c18bbsf unix/vncconfig/vncconfig.man unix/vncpasswd/vncpasswd.man \
0c2193f47081b894ed16f4fc371f44564d28b334jorton# Additional pkg(5) package name used for vncviewer package
2ce2fc3287632e20f1b8759aa17e571f68c6fe6dsf# Override specific attributes for specific man pages
49aa87d735a13ae3d04012ee0df91ddb51f7c36esfSUNTOUCH_MAN_FLAGS_vncviewer = -o '{Availability, $(VNCVIEWER_PKGNAME)}' \
49aa87d735a13ae3d04012ee0df91ddb51f7c36esf -o '{Interface Stability, Path: Committed, Options: Volatile}'
b44ddab21bd6e44ba3c03f7ae8ed08dd23b68b48sf# Compiler to use
b44ddab21bd6e44ba3c03f7ae8ed08dd23b68b48sf# Make command to use
0ab15ffa17f588723d0c310af78b505bf4e8a953sf# Xvnc has to configure, build, and install in different directories due to
0ab15ffa17f588723d0c310af78b505bf4e8a953sf# the mixed codebases and unusual directory layout
9bec939825399ac2816ea0d912d2e3c3b2ed91f4sfINSTALL_TARGETS=Xvnc_install_server Xvnc_install_programs \
5cca2a55e4a1cabdc2ca0db3bee456f27cf4c69eminfrin# Environment variable options to GNU autoconf configure script
5cca2a55e4a1cabdc2ca0db3bee456f27cf4c69eminfrin# Have to remove CFLAGS entries from default LDFLAGS to avoid conflicts
33510984c759eb3da154ceb0db9b75fa0031d3b4sf# with the C++ compiler we use instead
33510984c759eb3da154ceb0db9b75fa0031d3b4sf LDFLAGS="$(DEFAULT_CONFIG_LDFLAGS) $(MODTYPE_LDFLAGS) $(MODULE_LDFLAGS)"
33510984c759eb3da154ceb0db9b75fa0031d3b4sf# Command line options to GNU autoconf configure script for vnc clients
33510984c759eb3da154ceb0db9b75fa0031d3b4sfMODULE_CONFIG_OPTS = --with-installed-zlib --with-system-jpeg --without-simd
6b15044d54a096e6323ff1540f1a491e8de7622dsf# Binaries that were linked to isaexec on x86 to choose 32-bit or 64-bit,
287b17b746df229d6211c624b8a3e1edda21cecdsf# now just symlinks from amd64 to parent directory
de2d327e43e0f17cdb64851beafecba96a0ed962sf# Merge in additional sources from Xorg tarball & sun-src directory
de2d327e43e0f17cdb64851beafecba96a0ed962sf# This step has to be done before default_source, so that patches applied
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf# in that step work correctly.
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf$(NO_RECURSE)XORG_SOURCE_INIT_TARGET = $(XORG_SOURCE_DIR)/$(SOURCE_INIT_TARGET_FILE)
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf$(NO_RECURSE)XORG_PATCHED_TARGET = $(XORG_SOURCE_DIR)/$(PATCHED_TARGET_FILE)
9d4ce88bcd21b01619a31c53db11a51c2a1e9717sf (cd $(XORG_SOURCE_DIR) && $(LNDIR) ../../../../xorg/sun-src)
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin SOURCE_PATCHES="$(XORG_SOURCE_PATCHES:%=../xorg/%)" \
b3e63c395d671f14a096d7e888dbfd2caf93a663sf# Command line options to GNU autoconf configure script for Xvnc
b3e63c395d671f14a096d7e888dbfd2caf93a663sfXVNC_CONFIG_OPTS = $(DEFAULT_CONFIG_OPTS) $(XSERVER_CONFIG_OPTS)
b3e63c395d671f14a096d7e888dbfd2caf93a663sf# Disable all the things we don't need in the Xvnc build since we
6f88aef8511bf8ccf170bec41b82b6346c8b1ac7sf# get them in the normal Xorg build instead
6f88aef8511bf8ccf170bec41b82b6346c8b1ac7sfXVNC_CONFIG_OPTS += --disable-builddocs --disable-xfree86-utils
6f88aef8511bf8ccf170bec41b82b6346c8b1ac7sfXVNC_CONFIG_OPTS += --disable-xorg --disable-xnest --disable-xvfb --disable-dmx
83c89da783ba8bdaef50ec1912443f7fad3556acjimXVNC_CONFIG_OPTS += --disable-xwin --disable-xephyr --disable-kdrive
83c89da783ba8bdaef50ec1912443f7fad3556acjim# Disable building Xorg hardware device support that Xvnc can't use
83c89da783ba8bdaef50ec1912443f7fad3556acjimXVNC_CONFIG_OPTS += --without-int10 --disable-config-hal --disable-dga
5152ceef718c8d39291557205cb2a98f436ce87frjung# The X server unit tests currently depend on the Xorg ddx being built
9c67ffea79ab184351b5d554b57814e13285e758jim# Include -lc as workaround for bug 17815318 so libm can actually go away
9c67ffea79ab184351b5d554b57814e13285e758jim# if -xlibmil manages to inline all math functions.
925a6d92173ab96cdb0a8976c7aac13ef809e218trawick# Needed by unix/xorg-x11-server-source/hw/vnc/Makefile.am to find libpixman
925a6d92173ab96cdb0a8976c7aac13ef809e218trawick# headers in proto area after solaris-port.patch is applied
e19d3a1e487aa73e0850658d3773f748aefba7f7sf# Run configure script for Xvnc
e19d3a1e487aa73e0850658d3773f748aefba7f7sf$(XORG_BUILD_DIR)/Makefile: $(SOURCE_TARGETS) $(BUILD_DIR)
e19d3a1e487aa73e0850658d3773f748aefba7f7sf $(CONFIG_ENV) $(CONFIG_SHELL) ./configure $(XVNC_CONFIG_OPTS) )
c447f5d2f2a21e8f2df49a113c4637b7f59a6feftrawick $(DEFAULT_INSTALL_COMMAND:@DIR@=$(XORG_BUILD_DIR)/hw/vnc) install
31eeb74b832eea054c7a42081c1afdeccd987e5etrawick rm -f $(PROTODIR)/$(X11_SERVERMODS_DIR)/extensions/libvnc.so
03502de2853fcebaf853ed3bcfd5033894c238bbjim $(INSTALL_SCRIPT) -m 0444 $(SOURCE_DIR)/unix/vncserver.man \
afee7998d5045107a7673f09bc3448a5dc1b6612jim $(INSTALL_SCRIPT) -m 0444 $(SOURCE_DIR)/unix/vncconfig/vncconfig.man \
6ec154950417d0b32082f6590ffa3acc3e0c3d49sf $(INSTALL_SCRIPT) -m 0444 $(SOURCE_DIR)/unix/vncpasswd/vncpasswd.man \
6ec154950417d0b32082f6590ffa3acc3e0c3d49sf $(INSTALL_SCRIPT) -m 0444 $(SOURCE_DIR)/unix/vncviewer/vncviewer.man \
027f7b141f164258b254c38319d06452b25d7660trawick# Java VNCviewer applet for connecting from a web browser
977c4527be5a21182f24fc22a40a79d576a52f86trawickJAVA_JAR_FILE = $(JAVA_BUILD_DIR)/vncviewer/VncViewer.jar
3770ed746d69c7a4111cba9966169bd5d7a509a6poirier $(DEFAULT_BUILD_COMMAND:@DIR@=$(JAVA_BUILD_DIR)/decoder)
3770ed746d69c7a4111cba9966169bd5d7a509a6poirier $(DEFAULT_BUILD_COMMAND:@DIR@=$(JAVA_BUILD_DIR)/vncviewer)
7bd92b29516bc4bf7351d35aa447dbe68f1e8bb4jorton $(DEFAULT_INSTALL_COMMAND:@DIR@=$(JAVA_BUILD_DIR)/vncviewer) \
a81c0c1ae464b2063a21b45f80c9da8d89bb840ecovener $(INSTALL_SCRIPT) -m 0444 $(JAVA_SOURCE_DIR)/vncviewer/README \
ffae06377667a5d8f9699ac7512134de7000a83dminfrin# Metadata for vncviewer package
efc81fe729a2b7401028387da184b4a98f0b854atrawickVNCVIEWER_PKG_METADATA_DIR = $(PROTOMETA)/desktop-remote-desktop-tigervnc
efc81fe729a2b7401028387da184b4a98f0b854atrawickVNCVIEWER_PKG_ATTRDATA_FILE = $(VNCVIEWER_PKG_METADATA_DIR)/$(ATTRDATA_FILE_NAME)
efc81fe729a2b7401028387da184b4a98f0b854atrawickVNCVIEWER_PKG_LICENSE_FILE = $(VNCVIEWER_PKG_METADATA_DIR)/$(LICENSE_FILE_NAME)