Makefile revision 1193
5d92fff82718cd018f0b61a10b9ad4d2b8064c95rpluem###############################################################################
09359a90ff115fc5eeb96e1e5c78a58dd9fc59d3jim# Xorg server Makefile
533d85911f7e4914ee5f9d5c99a2421f4ab4208asf# Copyright (c) 2006, 2011, Oracle and/or its affiliates. All rights reserved.
533d85911f7e4914ee5f9d5c99a2421f4ab4208asf# Permission is hereby granted, free of charge, to any person obtaining a
533d85911f7e4914ee5f9d5c99a2421f4ab4208asf# copy of this software and associated documentation files (the "Software"),
533d85911f7e4914ee5f9d5c99a2421f4ab4208asf# to deal in the Software without restriction, including without limitation
533d85911f7e4914ee5f9d5c99a2421f4ab4208asf# the rights to use, copy, modify, merge, publish, distribute, sublicense,
533d85911f7e4914ee5f9d5c99a2421f4ab4208asf# and/or sell copies of the Software, and to permit persons to whom the
78b046ee9f769d9609ea1157177d5467e4700c89covener# Software is furnished to do so, subject to the following conditions:
78b046ee9f769d9609ea1157177d5467e4700c89covener# The above copyright notice and this permission notice (including the next
5d1aa7e499fc511e937db7a7ce671add9a4d6702sf# paragraph) shall be included in all copies or substantial portions of the
5d1aa7e499fc511e937db7a7ce671add9a4d6702sf# Software.
00f8426677a7975dc809e4ccb11241c543ec8a0esf# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00f8426677a7975dc809e4ccb11241c543ec8a0esf# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00f8426677a7975dc809e4ccb11241c543ec8a0esf# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
3ef519991d73cff6763052b5a44c206bda01541dsf# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
3ef519991d73cff6763052b5a44c206bda01541dsf# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
3ef519991d73cff6763052b5a44c206bda01541dsf# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
3ef519991d73cff6763052b5a44c206bda01541dsf# DEALINGS IN THE SOFTWARE.
f82baabbe731507742af2f7ba41463dbbc7911e9sf# Package name used in tarballs
26d07dbe57cb2c8f49df541329a1653635988dbbsf# Version number (used in path names)
686555019e71b355e835166dfefbec33f7fb6f90rjung# Checksums for upstream tarball
686555019e71b355e835166dfefbec33f7fb6f90rjungTARBALL_SHA1 = 1699be5c0edeca553cfa3ee6caa228483465136b
eda40bb2debf78c913552346127358797665cf7frjungTARBALL_SHA256 = 05ec05fbc8ec336127071db38cfb61c618e43b720edbd8d51d171c0cd359e290
eda40bb2debf78c913552346127358797665cf7frjung# Patches to apply to source after unpacking, in order
eda40bb2debf78c913552346127358797665cf7frjung# *** Moved to patch-list file so they can be shared between Xorg & Xvnc builds
53b3e9f9937ca992fb149d02d19223674c81c5a4rjung# Used in rules shared between Xorg & Xvnc builds in Makefile.inc
53b3e9f9937ca992fb149d02d19223674c81c5a4rjung# to allow for different source layouts
25cc406eca0c99de0dfbd6c8862bec2d5fb6c4farjung# ARC cases that covered this module
25cc406eca0c99de0dfbd6c8862bec2d5fb6c4farjung# PSARC/2004/187 Xorg Server for Solaris
5b43275cebfb0ff9961ac462f3a96f7fe612d327rjung# PSARC/2004/685 Xorg server upgrade to X11R6.8 release
3bcb72c0b2797d2ec0b41bb9f4696e58be2c7043rjung# PSARC/2004/829 Xorg 6.8.2 server upgrade for Solaris
3bcb72c0b2797d2ec0b41bb9f4696e58be2c7043rjung# PSARC/2005/450 Xorg 6.9 for Solaris
4acb0cd5536553055c7c6996414cec00b0191e1djim# PSARC/2006/609 Xserver provider for DTrace
dc610ff4888acc61dc6c8de2b8974a4dce9c074fsf# PSARC/2007/051 Xorg server upgrade to 7.2
b08558bf6a64f9501ad3eca34eaf4d978bd928cfsf# PSARC/2007/434 Xorg server 1.3
b08558bf6a64f9501ad3eca34eaf4d978bd928cfsf# PSARC/2007/500 X11 MIT-SHM Extension across zones
70f553c56eda63b353598193c3afc238db9b3c78sf# PSARC/2008/294 Xorg driver selection based on VIS_GETIDENTIFIER
3fa816e4832a1c70600bdfd6fc5ef60e9f1c18bbsf# PSARC/2009/021 Xorg server 1.5
3fa816e4832a1c70600bdfd6fc5ef60e9f1c18bbsf# PSARC/2009/292 Xorg server 1.6
950e3163cb42ba1e9c8f9d93f4505f580cbc71f4jorton# PSARC/2009/679 Xorg server 1.7
0c2193f47081b894ed16f4fc371f44564d28b334jorton# PSARC/2010/109 Introduce libXcb in Solaris
55929f765b95e354092ac17238718e471c252ebbsf# PSARC/2011/008 Xorg server 1.9
2ce2fc3287632e20f1b8759aa17e571f68c6fe6dsf# PSARC/2010/382 Removal of 32-bit X servers
49aa87d735a13ae3d04012ee0df91ddb51f7c36esf# PSARC/2011/214 Xorg server 1.10
b44ddab21bd6e44ba3c03f7ae8ed08dd23b68b48sf# Man pages to apply Sun footer to & attributes to list
9f478b1ce1e6296ad7a244d9d2eaa6af79cfdfbfsf# Override specific attributes for specific man pages
9bec939825399ac2816ea0d912d2e3c3b2ed91f4sf# Xephyr, Xvfb, and Xdmx are split out into their own packages
9bec939825399ac2816ea0d912d2e3c3b2ed91f4sfSUNTOUCH_MAN_FLAGS_Xephyr = -o '{Availability, $(MODULE_PKGNAME:%xorg=%xephyr)}'
9bec939825399ac2816ea0d912d2e3c3b2ed91f4sfSUNTOUCH_MAN_FLAGS_Xvfb = -o '{Availability, $(MODULE_PKGNAME:%xorg=%xvfb)}'
5cca2a55e4a1cabdc2ca0db3bee456f27cf4c69eminfrinSUNTOUCH_MAN_FLAGS_Xdmx = -o '{Availability, $(MODULE_PKGNAME:%xorg=%xdmx)}'
5cca2a55e4a1cabdc2ca0db3bee456f27cf4c69eminfrinSUNTOUCH_MAN_FLAGS_Xserver = -o '{Availability, $(MODULE_PKGNAME:%xorg=%xserver-common)}'
33510984c759eb3da154ceb0db9b75fa0031d3b4sf# Binary built in tree
33510984c759eb3da154ceb0db9b75fa0031d3b4sfBUILD_TARGETS=$(XORGSERVER_BIN) build_mdb set-elf-comments \
33510984c759eb3da154ceb0db9b75fa0031d3b4sf# Need to regenerate autoconf/automake files after patching
6b15044d54a096e6323ff1540f1a491e8de7622dsf# Command line options to GNU autoconf configure script
6b15044d54a096e6323ff1540f1a491e8de7622dsf# XXX: --disable-dga
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf# pkg-config files that need to have -R added
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf# Remove compiler specific visibility flag that breaks builds of drivers
c1ea0100af157a0d4e4a3de323f32dbfac4e5b6esf# with other compilers
b44565f239485673d9486068588a5fb3af008be9sf# Need to use GNU Make to build due to hw/xfree86/loader
bf99d597a964add76124fc185892e04733a02969sf# Additional configure time targets beyond the defaults
876167dba234e2c7065895c87b77a8c57bdcf754sf# Additional install targets beyond the defaults
9d4ce88bcd21b01619a31c53db11a51c2a1e9717sfMODULE_ADD_INSTALL_TARGETS=install_extras install_mdb install_pc_common \
2792ea4d5c772a6bc19dece2e098b8125bf7184cjim# Have to avoid dependency loop between install_pc_common and
2792ea4d5c772a6bc19dece2e098b8125bf7184cjim# install_pkgconfig_uninstalled
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin# Merge in additional sources from sun-src directory
59a3c1e7880d3eab0d182735ff47758b9860411fminfrin# Only needed for programs that were in /usr/X11/bin before we moved
b3e63c395d671f14a096d7e888dbfd2caf93a663sfMODULE_X11_BINCOMPAT_LINKS += $(MODULE_X11_BINCOMPAT_LINKS_$(MACH))
6f88aef8511bf8ccf170bec41b82b6346c8b1ac7sf# Binaries that were linked to isaexec on x86 to choose 32-bit or 64-bit,
6f88aef8511bf8ccf170bec41b82b6346c8b1ac7sf# now just symlinks from amd64 to parent directory
5152ceef718c8d39291557205cb2a98f436ce87frjung# Debug builds disable optimization that removes unused inline functions,
5152ceef718c8d39291557205cb2a98f436ce87frjung# leaving many binaries referencing pixman symbols that normally don't
4acb0cd5536553055c7c6996414cec00b0191e1djim# need them.
9c67ffea79ab184351b5d554b57814e13285e758jim$(BUILD_DEBUG:yes=) DEBUG_CONFIG_OPTS = LIBS="-lpixman-1"
3eb3f27d2d93942bd4230c231aab4eb16a316384jim# Don't include build date & time in delivered binaries as it just causes
0a2424312d9f02479a38e96dcbb170a77c218852rjung# unnecessary binary differences to be pulled into package updates, but
0a2424312d9f02479a38e96dcbb170a77c218852rjung# leave it in debug builds for developer convenience
6137a8d5cdc62f1d4dad8cbf720feaa35f42a596covener$(BUILD_DEBUG:yes=$(POUND_SIGN)) CBD_TARGET = actually_clear_build_date
b8e5134b5779bf5505a9e5241cf8c930cc4aac5esf $(SOURCE_DIR)/include/xorg-server.h > $(SDK_INCLUDES_DIR)/xorg-server.h
c447f5d2f2a21e8f2df49a113c4637b7f59a6feftrawick mkdir -p $(PROTODIR)/etc/hal/fdi/preprobe/10osvendor
31eeb74b832eea054c7a42081c1afdeccd987e5etrawick $(PROTODIR)/etc/hal/fdi/preprobe/10osvendor/10-x11-input.fdi
575cc52562c51c0c8bb8de0c6eaa55a60f7f895bsf# Workaround bug in installing pkgconfig file to wrong directory in 64-bit
575cc52562c51c0c8bb8de0c6eaa55a60f7f895bsf# builds, and install xorg-server.pc in 32-bit pkgconfig dir too
490993ea2eda52d4fdacff247eb2657296c86f71trawickinstall_pc_common: default_install install_pkgconfig_uninstalled
afee7998d5045107a7673f09bc3448a5dc1b6612jim $(PROTODIR)$(PKGCONFIG_DIR_32)/xorg-server-uninstalled.pc
6ec154950417d0b32082f6590ffa3acc3e0c3d49sf ln -s ../$(SUBDIR64)$(PKGCONFIG_DIR_suffix)/xorg-server.pc \
6ec154950417d0b32082f6590ffa3acc3e0c3d49sf ../$(SUBDIR64)$(PKGCONFIG_DIR_suffix)/xorg-server-uninstalled.pc \
b38e1e2f118f67818f88faee827f4b3a2881e908sf# Generate a list of exported functions & data objects so that we can verify
3d636d91428f2c0a74012c89a94ec7d5b40aa52esf# loadable modules don't reference symbols that have been deleted or renamed.
33e53d7c6aa5d004d96ea11d7f3ca35b30e82544trawick'BEGIN { print "\043 Functions exported by Xorg server to loadable modules" ; \
33e53d7c6aa5d004d96ea11d7f3ca35b30e82544trawick print "\n{\n global:" } \
20e0c71be778348516719e1e58a9f55c8e78c570trawick END { print "};" } \
027f7b141f164258b254c38319d06452b25d7660trawick $$7 ~ /UNDEF|\.tdata/ { next } \
027f7b141f164258b254c38319d06452b25d7660trawick $$5 !~ /GLOB/ { next } \
977c4527be5a21182f24fc22a40a79d576a52f86trawick $$8 ~ /^(__|_end|_etext|_start|_environ|_lib_version)/ { next } \
977c4527be5a21182f24fc22a40a79d576a52f86trawick $$4 ~ /FUNC/ && $$7 ~ /\.text/ { printf " %s = FUNCTION extern;\n", $$8 } \
977c4527be5a21182f24fc22a40a79d576a52f86trawick $$4 ~ /OBJT/ && $$7 ~ /data|bss/ { printf " %s = DATA extern;\n", $$8}'
3770ed746d69c7a4111cba9966169bd5d7a509a6poirier $(PROTODIR)$(X11_SERVERLIBS_DIR)$(ARCHLIBSUBDIR)/libXfont.so | \
3770ed746d69c7a4111cba9966169bd5d7a509a6poirier# Fix paths in proto area to match paths in packages / installed systems
8f066564bfc0fd6ddc6ca4b2f2410615554597d1jim ln -s ../../../../../system/volatile/opengl/server/libglx.so \
cfd376e3e25eb609c30773a0897c97b2a9a76130fuankg# Install metadata for Xephyr, Xvfb, Xdmx, & xtsol packages too
4acc1efe19ac2e6f2df0abb4d5bf99bd8ae3c5c6jimXCOMMON_PKG_METADATA_DIR = $(MODULE_PKG_METADATA_DIR:%-xorg=%-xserver-common)
4acc1efe19ac2e6f2df0abb4d5bf99bd8ae3c5c6jimXEPHYR_PKG_METADATA_DIR = $(MODULE_PKG_METADATA_DIR:%-xorg=%-xephyr)
4acc1efe19ac2e6f2df0abb4d5bf99bd8ae3c5c6jimXVFB_PKG_METADATA_DIR = $(MODULE_PKG_METADATA_DIR:%-xorg=%-xvfb)
29ecbd9db1622e74964264d078336f7604d65093jimXDMX_PKG_METADATA_DIR = $(MODULE_PKG_METADATA_DIR:%-xorg=%-xdmx)
29ecbd9db1622e74964264d078336f7604d65093jimXTSOL_PKG_METADATA_DIR = $(MODULE_PKG_METADATA_DIR:%-server-xorg=%-trusted-trusted-xorg)
59d316b83d42d2a07e25c20d8c35a07b369618bdsfEXTRA_ATTRDATA_FILES = $(EXTRA_METADATA_DIRS:%=%/$(ATTRDATA_FILE_NAME))
59d316b83d42d2a07e25c20d8c35a07b369618bdsfEXTRA_LICENSE_FILES = $(EXTRA_METADATA_DIRS:%=%/$(LICENSE_FILE_NAME))
4acc1efe19ac2e6f2df0abb4d5bf99bd8ae3c5c6jim$(EXTRA_ATTRDATA_FILES) $(EXTRA_LICENSE_FILES): $(EXTRA_METADATA_DIRS)
4acc1efe19ac2e6f2df0abb4d5bf99bd8ae3c5c6jim# Xtsol module is covered only by Oracle copyright/license
3e2582713ed6883683272fbc628a27419d0ed543minfrinXTSOL_LICENSE = $(XTSOL_PKG_METADATA_DIR)/$(LICENSE_FILE_NAME)
3e2582713ed6883683272fbc628a27419d0ed543minfrin$(XTSOL_LICENSE):= LICENSE_NAME = $(ORACLE_LICENSE_NAME)
3e2582713ed6883683272fbc628a27419d0ed543minfrin$(XTSOL_LICENSE):= LICENSE_APPEND = $(ORACLE_LICENSE_APPEND)
2c132b1e3610da2fb9e6b3594a313efa3ff29e22minfrin# Special compatibility links from /usr/X11/include to /usr/include
a46801e6532423aa7bd184471eb49158d7c9ae62sfX11_INCLUDE_COMPAT_LINKS = $(X11_INCLUDE_COMPAT_DIR)/drm \
6f9bf764bc79571d1da19dfbbd78527fca278a8eminfrin$(X11_INCLUDE_COMPAT_LINKS): $(X11_INCLUDE_COMPAT_DIR)
7d59a9f282af9dce031b61062a0d941641101237rpluem## mdb module rules
e63e8b4b886d2144fed7946d0fbe8d27386be2dcjorton# Build & install mdb modules & scripts that aren't integrated to
e63e8b4b886d2144fed7946d0fbe8d27386be2dcjorton# normal build process.
93cf7fc650197b941ae31a7c7e51e901b129e954igalicBUILT_MDB_SCRIPTS=$(MDB_SCRIPTS:%=$(MDB_SOURCE_DIR)/scripts/%)
a1b1c78faf7969affb320f5c8eb270ffa21314c4rjungINSTALLED_MDB_LINKS=$(MDB_MODULE_NAMES:%=$(PROTODIR)$(MDB_MODULE_DIR)/%.so)
a1b1c78faf7969affb320f5c8eb270ffa21314c4rjungINSTALLED_MDB_MODULE=$(PROTODIR)$(MDB_MODULE_DIR)/Xserver.so
a1b1c78faf7969affb320f5c8eb270ffa21314c4rjungINSTALLED_MDB_SCRIPTS=$(MDB_SCRIPTS:%=$(PROTODIR)$(MDB_SCRIPT_DIR)/%)
a2558ec3af4391b7da7fe61e1e53383bbd0174b9jortonINSTALLED_MDB_ALL=$(INSTALLED_MDB_MODULE) $(INSTALLED_MDB_LINKS) \
a2558ec3af4391b7da7fe61e1e53383bbd0174b9jorton# Since configure options aren't used to build the mdb modules, pass
8d6b3720340d0bd7f8d25e2a8563527e97a48df8jorton# those variables at build time
8d6b3720340d0bd7f8d25e2a8563527e97a48df8jortonMDB_BUILD_ENV += CFLAGS="$(LIB_CFLAGS)" LDFLAGS="$(LIB_LDFLAGS)"
47ae8ca3c79d279b2e5424d6b8cf5e4e61ea968fjim $(MDB_BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS))
47ae8ca3c79d279b2e5424d6b8cf5e4e61ea968fjim$(PROTODIR)$(MDB_MODULE_DIR) $(PROTODIR)$(MDB_SCRIPT_DIR):
397df70abe0bdd78a84fb6c38c02641bcfeadceasf$(INSTALLED_MDB_MODULE): $(PROTODIR)$(MDB_MODULE_DIR) $(BUILT_MDB_MODULE)
dd9f60fdfeb73f829fe0b260b7975b4b22be0838sf$(INSTALLED_MDB_SCRIPTS): $(BUILT_MDB_SCRIPTS) $(PROTODIR)$(MDB_SCRIPT_DIR)
dd9f60fdfeb73f829fe0b260b7975b4b22be0838sf $(INSTALL_SCRIPT) -c -m 0555 $(MDB_SOURCE_DIR)/scripts/$(@F) \