Makefile revision 949
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper###############################################################################
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# TigerVNC (Xvnc server & vncviewer) Makefile
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Based on Fedora's tigervnc.spec revision 1.20 from
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# http://cvs.fedoraproject.org/viewvc/rpms/tigervnc/devel/tigervnc.spec
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Permission is hereby granted, free of charge, to any person obtaining a
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# copy of this software and associated documentation files (the "Software"),
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# to deal in the Software without restriction, including without limitation
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# the rights to use, copy, modify, merge, publish, distribute, sublicense,
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# and/or sell copies of the Software, and to permit persons to whom the
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Software is furnished to do so, subject to the following conditions:
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# The above copyright notice and this permission notice (including the next
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# paragraph) shall be included in all copies or substantial portions of the
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# DEALINGS IN THE SOFTWARE.
8f2e32e3c8f43b9b84cfd30b36477d4fb69acb71Mark de Reeper# Package name used in tarballs
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Version number (used in path names)
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Checksums for upstream tarball
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperTARBALL_MD5 = 622c6689a66651419b5431efdee99d5a
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperTARBALL_SHA1 = 2435ea2e3c34a4055350f7680a94cea580b92979
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Source tarball
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperSOURCE_TARBALL_NAME=$(MODULE_NAME)-$(MODULE_VERSION).tar.gz
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Xorg server source tarball to use sources from
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperXORG_TARBALL=$(TARBALLDIR)/xorg-server-$(XORGSERVER_VERS).tar.bz2
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperXORG_SOURCE_DIR=$(BUILD_DIR)/xorg-server-$(XORGSERVER_VERS)
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Download site for source
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperSOURCE_URL=$(SF_DOWNLOADS_URL)/project/tigervnc/tigervnc/$(MODULE_VERSION)/$(SOURCE_TARBALL_NAME)
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Patches to apply to source after unpacking, in order
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Man pages to apply Sun footer to & attributes to list
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper unix/xserver/hw/vnc/Xvnc.man unix/vncviewer/vncviewer.man \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper unix/vncconfig/vncconfig.man unix/vncpasswd/vncpasswd.man \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper unix/vncserver.man unix/x0vncserver/x0vncserver.man
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Additional package name used for vncviewer package
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Override specific attributes for specific man pages
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper $(SUNTOUCH_MAN_FLAGS_$(@F:%.man.$(FIXED_MAN_SUFFIX)=%))
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperSUNTOUCH_MAN_FLAGS_vncviewer = -o '{Availability, $(VNCVIEWER_PKGNAME)}' \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper -o '{Interface Stability, Path: Committed, Options: Volatile}'
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Compiler to use
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Xvnc has to configure, build, and install in different directories due to
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# the mixed codebases and unusual directory layout
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperCONFIGURE_TARGETS=$(SOURCE_DIR)/unix/Makefile $(XORG_BUILD_DIR)/Makefile
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperBUILD_TARGETS_common=Xvnc_build set-elf-comments
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperBUILD_TARGETS=$(BUILD_TARGETS_common) $(BUILD_TARGETS_$(BUILD_TYPE))
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperINSTALL_TARGETS_32=Xvnc_install_programs java_install
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperINSTALL_TARGETS=$(INSTALL_TARGETS_common) $(INSTALL_TARGETS_$(BUILD_TYPE))
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Since we only build 64-bit versions of the Xorg servers on SPARC,
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# need to build a 32-bit version of the Xserver mdb module to allow
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# use with Xvnc on SPARC
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Merge in additional sources from Xorg tarball & sun-src directory
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# This step has to be done before default_source, so that patches applied
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# in that step work correctly.
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperXORG_SOURCE_INIT_TARGET = $(XORG_BUILD_DIR)/$(SOURCE_INIT_TARGET_FILE)
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperXORG_PATCHED_TARGET = $(XORG_BUILD_DIR)/$(PATCHED_TARGET_FILE)
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper (cd ../xorg && $(MAKE) $(MAKEFLAGS) download)
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper (cd $(XORG_BUILD_DIR) && $(LNDIR) ../../../../../xorg/sun-src)
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper$(XORG_PATCHED_TARGET): $(XORG_SOURCE_INIT_TARGET)
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper SOURCE_PATCHES="$(XORG_SOURCE_PATCHES:%=../xorg/%)" \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Command line options to GNU autoconf configure script for vnc clients
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperVNC_CONFIG_OPTS= --with-installed-zlib --prefix=/usr \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper --mandir='$${prefix}/share/man' --libdir='$${exec_prefix}/lib/vnc' \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper --localstatedir=/var --with-system-jpeg --without-simd
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Command line options to GNU autoconf configure script for Xvnc
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperXVNC_CONFIG_OPTS = $(DEFAULT_CONFIG_OPTS) $(XSERVER_CONFIG_OPTS) \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper --disable-dga --disable-xfree86-utils --disable-config-hal \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper --disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper --disable-xwin --disable-xephyr --disable-kdrive
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Environment variable options to GNU autoconf configure script
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper LDFLAGS="$(DEFAULT_CONFIG_LDFLAGS) $(MODTYPE_LDFLAGS) $(MODULE_LDFLAGS)"
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper -L$(PROTODIR)$(X11_SERVERMODS_DIR)/extensions$(ARCHLIBSUBDIR) \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper -R$(X11_SERVERMODS_DIR)/extensions$(ARCHLIBSUBDIR)
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper -L$(PROTODIR)$(X11_SERVERMODS_DIR)/extensions$(ARCHLIBSUBDIR) \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper -R$(X11_SERVERMODS_DIR)/extensions$(ARCHLIBSUBDIR)
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Needed by unix/xorg-x11-server-source/hw/vnc/Makefile.am to find libpixman
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# headers in proto area after solaris-port.patch is applied
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Run configure scripts for vnc sources
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper$(SOURCE_DIR)/unix/Makefile: $(SOURCE_TARGETS)
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper $(AUTORECONF_ENV) autoreconf --install --force && \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper $(CONFIG_ENV) $(SHELL) ./configure $(VNC_CONFIG_OPTS) )
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper $(AUTORECONF_ENV) autoreconf --install --force && \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper $(CONFIG_ENV) $(SHELL) ./configure $(VNC_CONFIG_OPTS) )
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Run configure script for Xvnc
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper $(AUTORECONF_ENV) autoreconf --install --force && \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper $(CONFIG_ENV) $(SHELL) ./configure $(XVNC_CONFIG_OPTS) )
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper $(BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS))
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper $(BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS))
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper && $(BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_INSTALL_MAKEFLAGS) \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper mkdir -p $(PROTODIR)/usr/bin/$(ARCHLIBSUBDIR) \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper cp -pf $(SOURCE_DIR)/unix/vncconfig/vncconfig.man \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper cp -pf $(SOURCE_DIR)/unix/vncpasswd/vncpasswd.man \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper cp -pf $(SOURCE_DIR)/unix/vncviewer/vncviewer.man \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper cp -pf $(SOURCE_DIR)/unix/x0vncserver/x0vncserver.man \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper cp -pf xvnc-inetd.xml $(PROTODIR)/var/svc/manifest/application/x11/
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Java VNCviewer applet for connecting from a web browser
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperJAVA_INSTALL_DIR = $(PROTODIR)/usr/share/vnc/classes
80c77071c6700660c39046da32a0d7953620f608Mark de ReeperJAVA_JAR_FILE = $(JAVA_SOURCE_DIR)/VncViewer.jar
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper# Temporary special handling of Java build fix submitted upstream
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper cp $(JAVA_SOURCE_DIR)/com/tigervnc/vncviewer/Makefile $@
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper gpatch -d $(SOURCE_DIR) -p0 < applet-build.patch
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper$(JAVA_JAR_FILE): $(SOURCE_TARGETS) $(JAVA_MAKEFILE)
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper $(BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS))
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper $(BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS) \
80c77071c6700660c39046da32a0d7953620f608Mark de Reeper cp -pf $(JAVA_SOURCE_DIR)/com/tigervnc/vncviewer/README \