Makefile revision 1351
d5b7ba26785d7494166d48876362ba30ff30b98awrowe###############################################################################
c30ef289fe64ac7fedc44cfcc6b439f0f8458b4cgregames# Xorg server Makefile
a50a8fc12e93712557f53418c3b3c53fa459cdf5rederpj# Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
a50a8fc12e93712557f53418c3b3c53fa459cdf5rederpj# Permission is hereby granted, free of charge, to any person obtaining a
a50a8fc12e93712557f53418c3b3c53fa459cdf5rederpj# copy of this software and associated documentation files (the "Software"),
a50a8fc12e93712557f53418c3b3c53fa459cdf5rederpj# to deal in the Software without restriction, including without limitation
a50a8fc12e93712557f53418c3b3c53fa459cdf5rederpj# the rights to use, copy, modify, merge, publish, distribute, sublicense,
cda7c69f374fb272aaf10ca80c63b0700b61a509rederpj# and/or sell copies of the Software, and to permit persons to whom the
cda7c69f374fb272aaf10ca80c63b0700b61a509rederpj# Software is furnished to do so, subject to the following conditions:
f8dd393b2c60c61282a46c51f82fdb9b89cd9aferederpj# The above copyright notice and this permission notice (including the next
f8dd393b2c60c61282a46c51f82fdb9b89cd9aferederpj# paragraph) shall be included in all copies or substantial portions of the
f8dd393b2c60c61282a46c51f82fdb9b89cd9aferederpj# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
f8dd393b2c60c61282a46c51f82fdb9b89cd9aferederpj# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1fbf6ba0f5207e6637b49f9a9dfcc779bbe952a9trawick# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
1fbf6ba0f5207e6637b49f9a9dfcc779bbe952a9trawick# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
922d495b709b0dc09a7d918fdf8874dc23c1aef0nd# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
922d495b709b0dc09a7d918fdf8874dc23c1aef0nd# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
922d495b709b0dc09a7d918fdf8874dc23c1aef0nd# DEALINGS IN THE SOFTWARE.
679cafe33462d8c6bd0a74cc4359e561d19a0aafnd# Package name used in tarballs
81ef3d132c8f335006465f297c42319f8734825dnd# Package metadata
fba8c07e02a9af436c79ada0e2ba891717a9c333nd# Version number (used in path names) - set in open-src/common/Makefile.init
925932040ee7871b6a2418edc3b4b6f4378bbe2and# Checksums for upstream tarball
73291de2e17c97d3549f2f8aa085ca43d27e108andTARBALL_SHA256= a5adb02571efb7d7459dde83286a3adb77dfd1a52a7348e75d2dc72d6f8d28aa
73291de2e17c97d3549f2f8aa085ca43d27e108and# Patches to apply to source after unpacking, in order
3caed8f01e7d67f3ad5d47cb28bb4e43131652fdjerenkrantz# *** Moved to patch-list file so they can be shared between Xorg & Xvnc builds
238e707c9022eaa8332a702dd6913dd0d1fb3df8jerenkrantz# Used in rules shared between Xorg & Xvnc builds in Makefile.inc
238e707c9022eaa8332a702dd6913dd0d1fb3df8jerenkrantz# to allow for different source layouts
e127d82e8afc2f885fe2183b68d4a110580d21dfjwoolley# ARC cases that covered this module
e127d82e8afc2f885fe2183b68d4a110580d21dfjwoolley# PSARC/2004/187 Xorg Server for Solaris
5b953b9aeef5b38cae481e062a7b5ac209a6170end# PSARC/2004/685 Xorg server upgrade to X11R6.8 release
5b953b9aeef5b38cae481e062a7b5ac209a6170end# PSARC/2004/829 Xorg 6.8.2 server upgrade for Solaris
fd99717a52886f7d9f9f73be2080d3fdc2ec4bd6nd# PSARC/2005/450 Xorg 6.9 for Solaris
fd99717a52886f7d9f9f73be2080d3fdc2ec4bd6nd# PSARC/2006/609 Xserver provider for DTrace
5c76205ce580dbac0020fbba74bcf211de3923d3nd# PSARC/2007/051 Xorg server upgrade to 7.2
5c76205ce580dbac0020fbba74bcf211de3923d3nd# PSARC/2007/434 Xorg server 1.3
5fb2e8564729922524cd011b11e2d4f5d76f5a8dnd# PSARC/2007/500 X11 MIT-SHM Extension across zones
b7cbb2495d82008f9fa72226b9213d639362feabjorton# PSARC/2008/294 Xorg driver selection based on VIS_GETIDENTIFIER
b7cbb2495d82008f9fa72226b9213d639362feabjorton# PSARC/2009/021 Xorg server 1.5
7d851311462dce44df8469009f98ba66d7f7f18end# PSARC/2009/292 Xorg server 1.6
7d851311462dce44df8469009f98ba66d7f7f18end# PSARC/2009/679 Xorg server 1.7
987c2c2ff2f19f306357f79d3280b347d96c470fnd# PSARC/2010/109 Introduce libXcb in Solaris
987c2c2ff2f19f306357f79d3280b347d96c470fnd# PSARC/2011/008 Xorg server 1.9
99c475e760470ab8ca3d17da82a2f6158466f918rederpj# PSARC/2010/382 Removal of 32-bit X servers
99c475e760470ab8ca3d17da82a2f6158466f918rederpj# PSARC/2011/214 Xorg server 1.10
c2d16e88f6a997b9174b5596db5e03cee5f46a8brederpj# PSARC/2012/144 Xorg server 1.12
7edcfe02796a70f2a5eac12b6766d11067c629a3rederpj# PSARC/2012/320 Xorg server 1.13
c2d16e88f6a997b9174b5596db5e03cee5f46a8brederpj# PSARC/2013/091 Xorg server 1.14
a4dd3688dd6645faf0c1c1bfb22017c8f03d5b24nd# Man pages to apply Sun footer to & attributes to list
a81c9e8561ebd18177a87fecf1226ac654b873f1rederpj# Override specific attributes for specific man pages
a81c9e8561ebd18177a87fecf1226ac654b873f1rederpj $(SUNTOUCH_MAN_FLAGS_$(@F:%.man.$(FIXED_MAN_SUFFIX)=%))
a81c9e8561ebd18177a87fecf1226ac654b873f1rederpj# Xephyr, Xvfb, and Xdmx are split out into their own packages
d1c46782edbd6bd5ae4592c0174969950c5ca8aetrawickSUNTOUCH_MAN_FLAGS_Xephyr = -o '{Availability, $(MODULE_PKGNAME:%xorg=%xephyr)}'
d1c46782edbd6bd5ae4592c0174969950c5ca8aetrawickSUNTOUCH_MAN_FLAGS_Xvfb = -o '{Availability, $(MODULE_PKGNAME:%xorg=%xvfb)}'
d1c46782edbd6bd5ae4592c0174969950c5ca8aetrawickSUNTOUCH_MAN_FLAGS_Xdmx = -o '{Availability, $(MODULE_PKGNAME:%xorg=%xdmx)}'
ab56518227d474ee08f039e4c5540011c1b8a913trawickSUNTOUCH_MAN_FLAGS_Xserver = -o '{Availability, $(MODULE_PKGNAME:%xorg=%xserver-common)}'
ab56518227d474ee08f039e4c5540011c1b8a913trawick# Binary built in tree
4e330708371c3e9b04d1043f0a1ac9368bfbd768coarBUILD_TARGETS=$(XORGSERVER_BIN) build_mdb set-elf-comments \
a98959721afc481c7f3a941f85c462f0b90defdathommay# Need to convert dtrace docs from xml to text/html ourselves, since
219e31b849ef108cd8f58ba0eedae03414e5edb1thommay# Solaris doesn't bundle the xmlto tool used upstream
9efe68be3c81ee85225972195fb725dbfc2e8b24trawick# Need to regenerate autoconf/automake files after patching
9098f795fab5db41a52b6b82fa475e8f9b3850f0trawick# Command line options to GNU autoconf configure script
9efe68be3c81ee85225972195fb725dbfc2e8b24trawick# XXX: --disable-dga
92a2439559cf1161742650ed9c50c6483bd029cemadhum# Pass linker mapfile listing symbols that modules can count on resolving
92a2439559cf1161742650ed9c50c6483bd029cemadhum# from the Xorg binary itself
92a2439559cf1161742650ed9c50c6483bd029cemadhumXORG_EXTERNS_FLAG = -Wl,-M,$(PWD)/$(XORG_EXTERNS_FILE)
ebecc16986604cce1369d5075eff65032e3dd0deianhMODULE_BUILD_ENV = XORG_EXTERNS_FLAG='$(XORG_EXTERNS_FLAG)'
764315969cef40e50cdc6a5e9638454e10c1c06end# Optimization doesn't always remove unused inline functions, leaving many
764315969cef40e50cdc6a5e9638454e10c1c06end# binaries referencing pixman symbols that normally don't need them. Using
764315969cef40e50cdc6a5e9638454e10c1c06end# -z ignore should ensure that it's not added when not really needed.
764315969cef40e50cdc6a5e9638454e10c1c06end# Adding -z muldefs for 16418361 - which should be removed once we fix that
bfb54bd96690887dcdf184fd9083c2e167898ce2ndMODULE_CONFIG_OPTS += LIBS="-z ignore -lpixman-1 -z muldefs"
a2c036f0ca71e35c085b4cd9451a6d3718bc65daake# pkg-config files that need to have -R added
a2c036f0ca71e35c085b4cd9451a6d3718bc65daake# Remove compiler specific visibility flag that breaks builds of drivers
b92cba59a0890be43b14aaf1ce30606140be9593nd# with other compilers
b92cba59a0890be43b14aaf1ce30606140be9593nd# Need to use GNU Make to build due to hw/xfree86/loader
4caa28863a3418d26cc20a998dc368c3de3b7e19jerenkrantz# Additional configure time targets beyond the defaults
a3f2646ef3d8a3a5234a5601de0f95f10308c2a6jerenkrantz# Additional install targets beyond the defaults
a3f2646ef3d8a3a5234a5601de0f95f10308c2a6jerenkrantzMODULE_ADD_INSTALL_TARGETS=install_extras install_mdb install_pc_common \
9e398d701dd430f073ff5418fb720642e064046ajerenkrantz# Have to avoid dependency loop between install_pc_common and
9e398d701dd430f073ff5418fb720642e064046ajerenkrantz# install_pkgconfig_uninstalled
1a5b9e0071f0c662036250b482d566ad87ff0b4bjerenkrantzINSTALL_PCU_DEPS = $(INSTALL_TARGETS:install_pc_common=)
a7ac9b52c3d9f7ce937f078a0d585023db626c55jerenkrantz# Merge in additional sources from sun-src directory
ba6c07204bd224fa5d4cd0e6b8bf256d6daffb74nd# Only needed for programs that were in /usr/X11/bin before we moved
db5837bbc9bef214303e755fa52122140366cb6fianhMODULE_X11_BINCOMPAT_LINKS += $(MODULE_X11_BINCOMPAT_LINKS_$(MACH))
aac2b82fe4f1ac117e2a0702438d6615542642dand# Binaries that were linked to isaexec on x86 to choose 32-bit or 64-bit,
aac2b82fe4f1ac117e2a0702438d6615542642dand# now just symlinks from amd64 to parent directory
a793d402c74e50326a2401cfbdc562c5781948fdnd# Don't include build date & time in delivered binaries as it just causes
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz# unnecessary binary differences to be pulled into package updates, but
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz# leave it in debug builds for developer convenience
99d360dcbb5ac2be27694be74cc6124dbadf3315jerenkrantz$(BUILD_DEBUG:yes=$(POUND_SIGN)) CBD_TARGET = actually_clear_build_date
4567cfc6a65328bd3e8dd2b758ca926b389c7058brianp sed -e 's%#define XF86DRI 1%/* #define XF86DRI 1 */%' \
4567cfc6a65328bd3e8dd2b758ca926b389c7058brianp $(SOURCE_DIR)/include/xorg-server.h > $(SDK_INCLUDES_DIR)/xorg-server.h
4cdc5446050c19b9d519a273a129188586e8d445jerenkrantz $(SOURCE_DIR)/hw/xfree86/os-support/bus/xf86Sbus.h \
4cdc5446050c19b9d519a273a129188586e8d445jerenkrantz $(SOURCE_DIR)/hw/xfree86/dri/*.h $(SDK_INCLUDES_DIR)/
2f408250e9111c4b85b2b4b9b8836e83987efdefstoddard mkdir -p $(PROTODIR)/etc/hal/fdi/preprobe/10osvendor
47fe07199bddec6124ab7251c6be5c6c9ac00485jerenkrantz $(PROTODIR)/etc/hal/fdi/preprobe/10osvendor/10-x11-input.fdi
6646a289c2d4778c8cd43d62b5a1cc966a356f85jerenkrantz cp -pf 90-zap.conf $(PROTODIR)/etc/X11/xorg.conf.avail
aec70520ebe1e33e0d5e83c3626649d2a41dbe68wrowe# Workaround bug in installing pkgconfig file to wrong directory in 64-bit
aec70520ebe1e33e0d5e83c3626649d2a41dbe68wrowe# builds, and install xorg-server.pc in 32-bit pkgconfig dir too
aec70520ebe1e33e0d5e83c3626649d2a41dbe68wroweinstall_pc_common: default_install install_pkgconfig_uninstalled
59b910556d04c82e951d6c6f7a413ab8fed21467trawick -rm -f $(PROTODIR)$(PKGCONFIG_DIR_32)/xorg-server.pc \
59b910556d04c82e951d6c6f7a413ab8fed21467trawick $(PROTODIR)$(PKGCONFIG_DIR_32)/xorg-server-uninstalled.pc
acba1dfc9d36dbd7d307769f0f7c74f776d2458btrawick ln -s ../$(SUBDIR64)$(PKGCONFIG_DIR_suffix)/xorg-server.pc \
acba1dfc9d36dbd7d307769f0f7c74f776d2458btrawick ../$(SUBDIR64)$(PKGCONFIG_DIR_suffix)/xorg-server-uninstalled.pc \
acba1dfc9d36dbd7d307769f0f7c74f776d2458btrawick# Generate a list of exported functions & data objects so that we can verify
acba1dfc9d36dbd7d307769f0f7c74f776d2458btrawick# loadable modules don't reference symbols that have been deleted or renamed.
acba1dfc9d36dbd7d307769f0f7c74f776d2458btrawick'BEGIN { print "\043 Functions exported by Xorg server to loadable modules" ; \
acba1dfc9d36dbd7d307769f0f7c74f776d2458btrawick print "\n\044mapfile_version 2\n\nSYMBOL_SCOPE {\n\tglobal:" } \
acba1dfc9d36dbd7d307769f0f7c74f776d2458btrawick END { print "};" } \
ec7254c302703353d73d8d69d83cdeb0c580c8cetrawick $$7 ~ /UNDEF|\.tdata/ { next } \
ec7254c302703353d73d8d69d83cdeb0c580c8cetrawick $$5 !~ /GLOB/ { next } \
ec7254c302703353d73d8d69d83cdeb0c580c8cetrawick $$8 ~ /^(__|_edata|_end|_etext|_start|_environ|_lib_version)/ { next } \
ba5e097fd39f0937be37ae32d65e1d3339e07f43trawick $$4 ~ /FUNC/ && $$7 ~ /\.text/ { printf "\t\t%-40s { FLAGS = EXTERN };\n", $$8 } \
ba5e097fd39f0937be37ae32d65e1d3339e07f43trawick $$4 ~ /OBJT/ && $$7 ~ /data|bss/ { printf "\t\t%-40s { FLAGS = EXTERN };\n", $$8}'
26280128921459eadd3f76a44aee9ba2f7f941c2trawick# Fix paths in proto area to match paths in packages / installed systems
dd4dfb1a26f821768f4174cf0465fee13556b68ejerenkrantzMESA_MODULE_DIR = /usr/lib/mesa/modules/extensions
dd4dfb1a26f821768f4174cf0465fee13556b68ejerenkrantzEXT_MODULE_DIR = $(X11_SERVERMODS_DIR)/extensions
acba1dfc9d36dbd7d307769f0f7c74f776d2458btrawick ln -s ../../../../../system/volatile/opengl/server/libglx.so \
f2af12bd7c7b0506678b4dc981482d59e49f08d3nd# Install metadata for Xephyr, Xvfb, Xdmx, & xtsol packages too
f2af12bd7c7b0506678b4dc981482d59e49f08d3ndXCOMMON_PKG_METADATA_DIR = $(MODULE_PKG_METADATA_DIR:%-xorg=%-xserver-common)
f2af12bd7c7b0506678b4dc981482d59e49f08d3ndXEPHYR_PKG_METADATA_DIR = $(MODULE_PKG_METADATA_DIR:%-xorg=%-xephyr)
f2af12bd7c7b0506678b4dc981482d59e49f08d3ndXVFB_PKG_METADATA_DIR = $(MODULE_PKG_METADATA_DIR:%-xorg=%-xvfb)
f2af12bd7c7b0506678b4dc981482d59e49f08d3ndXDMX_PKG_METADATA_DIR = $(MODULE_PKG_METADATA_DIR:%-xorg=%-xdmx)
f2af12bd7c7b0506678b4dc981482d59e49f08d3ndXTSOL_PKG_METADATA_DIR = $(MODULE_PKG_METADATA_DIR:%-server-xorg=%-trusted-trusted-xorg)
321f88f4de9d60b5f846555b10f866348b7d598cjerenkrantzEXTRA_METADATA_DIRS = $(XCOMMON_PKG_METADATA_DIR) \
321f88f4de9d60b5f846555b10f866348b7d598cjerenkrantzEXTRA_ATTRDATA_FILES = $(EXTRA_METADATA_DIRS:%=%/$(ATTRDATA_FILE_NAME))
321f88f4de9d60b5f846555b10f866348b7d598cjerenkrantzEXTRA_LICENSE_FILES = $(EXTRA_METADATA_DIRS:%=%/$(LICENSE_FILE_NAME))
6830e61f24984184ce3095c204935d06963dcc51nd$(EXTRA_ATTRDATA_FILES) $(EXTRA_LICENSE_FILES): $(EXTRA_METADATA_DIRS)
85bf271a2a8d88736575e93504528639f5971f97nd# Xtsol module is covered only by Oracle copyright/license
5c457d20a708ef42b0824290d0feda1852a37493rederpjXTSOL_LICENSE = $(XTSOL_PKG_METADATA_DIR)/$(LICENSE_FILE_NAME)
5c457d20a708ef42b0824290d0feda1852a37493rederpj$(XTSOL_LICENSE):= LICENSE_NAME = $(ORACLE_LICENSE_NAME)
5c457d20a708ef42b0824290d0feda1852a37493rederpj$(XTSOL_LICENSE):= LICENSE_APPEND = $(ORACLE_LICENSE_APPEND)
13590409a89cdf7e5dc52516919ccee94edad59brederpj# Special compatibility links from /usr/X11/include to /usr/include
cde00ab9085ea6e93db4a27bf6fe9a9b6eda4addndX11_INCLUDE_COMPAT_LINKS = $(X11_INCLUDE_COMPAT_DIR)/drm \
159d95df05b3100bbef7a60cb5f5d7d8d5a3328etrawick$(X11_INCLUDE_COMPAT_LINKS): $(X11_INCLUDE_COMPAT_DIR)
59b910556d04c82e951d6c6f7a413ab8fed21467trawick## mdb module rules
59b910556d04c82e951d6c6f7a413ab8fed21467trawick# Build & install mdb modules & scripts that aren't integrated to
59b910556d04c82e951d6c6f7a413ab8fed21467trawick# normal build process.
611d2f4e86b4eceb640a5301bd88a23cb459e5a8strikerBUILT_MDB_MODULE=$(MDB_SOURCE_DIR)/modules/Xserver.so
611d2f4e86b4eceb640a5301bd88a23cb459e5a8strikerBUILT_MDB_SCRIPTS=$(MDB_SCRIPTS:%=$(MDB_SOURCE_DIR)/scripts/%)
611d2f4e86b4eceb640a5301bd88a23cb459e5a8strikerINSTALLED_MDB_LINKS=$(MDB_MODULE_NAMES:%=$(PROTODIR)$(MDB_MODULE_DIR)/%.so)
611d2f4e86b4eceb640a5301bd88a23cb459e5a8strikerINSTALLED_MDB_MODULE=$(PROTODIR)$(MDB_MODULE_DIR)/Xserver.so
f59888906d0566361498848fa95b4c416fad976cstrikerINSTALLED_MDB_SCRIPTS=$(MDB_SCRIPTS:%=$(PROTODIR)$(MDB_SCRIPT_DIR)/%)
f59888906d0566361498848fa95b4c416fad976cstrikerINSTALLED_MDB_ALL=$(INSTALLED_MDB_MODULE) $(INSTALLED_MDB_LINKS) \
f59888906d0566361498848fa95b4c416fad976cstriker# Since configure options aren't used to build the mdb modules, pass
6a3078c438bee65f22004ac65cd2eb4fa521bbfastriker# those variables at build time
6a3078c438bee65f22004ac65cd2eb4fa521bbfastrikerMDB_BUILD_ENV += CFLAGS="$(LIB_CFLAGS)" LDFLAGS="$(LIB_LDFLAGS)"
29ecc0949b383793b24cdd0741cb86c02138ab36striker $(MDB_BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS))
c97f8ff3a7479c838545de0c59770938b50ab6d3gstein$(PROTODIR)$(MDB_MODULE_DIR) $(PROTODIR)$(MDB_SCRIPT_DIR):
6fb9d10c529c2be3bb1833b0eefdd27ba4df1610trawick$(INSTALLED_MDB_MODULE): $(PROTODIR)$(MDB_MODULE_DIR) $(BUILT_MDB_MODULE)
368a950bc36b428b737d079f77e8962c831f88aand$(INSTALLED_MDB_SCRIPTS): $(BUILT_MDB_SCRIPTS) $(PROTODIR)$(MDB_SCRIPT_DIR)
368a950bc36b428b737d079f77e8962c831f88aand $(INSTALL_SCRIPT) -c -m 0555 $(MDB_SOURCE_DIR)/scripts/$(@F) \
1005ad40d72c4a1df2c0f1b95b770a4c43c49a47mjc## Dtrace docs rules
1005ad40d72c4a1df2c0f1b95b770a4c43c49a47mjcinstall_docs: $(DTRACE_DOCS) $(PROTODIR)$(MODULE_DOC_DIR)
1005ad40d72c4a1df2c0f1b95b770a4c43c49a47mjc $(INSTALL_SCRIPT) -c -m 0444 $(DTRACE_DOCS) $(PROTODIR)$(MODULE_DOC_DIR)