Makefile revision 913
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder###############################################################################
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder# Xorg server Makefile
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder# Copyright 2010 Sun Microsystems, Inc. All rights reserved.
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# Use is subject to license terms.
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# Permission is hereby granted, free of charge, to any person obtaining a
43b4c41fbb07705c9df321221ab9cb9832460407Christian Maeder# copy of this software and associated documentation files (the
5191fa24c532d1f67e7a642e9aece65efb8a0975Christian Maeder# "Software"), to deal in the Software without restriction, including
f4a2a20e49f41b2afa657e5e64d9e349c7faa091Christian Maeder# without limitation the rights to use, copy, modify, merge, publish,
f2f9df2e17e70674f0bf426ed1763c973ee4cde0Christian Maeder# distribute, and/or sell copies of the Software, and to permit persons
c9a7e6af169a2adfb92f42331cd578065ed83a2bChristian Maeder# to whom the Software is furnished to do so, provided that the above
c9a7e6af169a2adfb92f42331cd578065ed83a2bChristian Maeder# copyright notice(s) and this permission notice appear in all copies of
e7757995211bd395dc79d26fe017d99375f7d2a6Christian Maeder# the Software and that both the above copyright notice(s) and this
e7757995211bd395dc79d26fe017d99375f7d2a6Christian Maeder# permission notice appear in supporting documentation.
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
a1ed34933c266ce85066acb0d7b20c90cb8eb213Christian Maeder# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
c0c2380bced8159ff0297ece14eba948bd236471Christian Maeder# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
404166b9366552e9ec5abb87a37c76ec8a815fb7Klaus Luettich# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
b1f59a4ea7c96f4c03a4d7cfcb9c5e66871cfbbbChristian Maeder# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
ad270004874ce1d0697fb30d7309f180553bb315Christian Maeder# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
4d56f2fa72e4aec20eb827c11ed49c8cbb7014bdChristian Maeder# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
4cb215739e9ab13447fa21162482ebe485b47455Christian Maeder# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
8ef75f1cc0437656bf622cec5ac9e8ea221da8f2Christian Maeder# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# Except as contained in this notice, the name of a copyright holder
74eed04be26f549d2f7ca35c370e1c03879b28b1Christian Maeder# shall not be used in advertising or otherwise to promote the sale, use
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian Maeder# or other dealings in this Software without prior written authorization
3e8b136f23ed57d40ee617f49bcac37830b58cabChristian Maeder# of the copyright holder.
ef9e8535c168d3f774d9e74368a2317a9eda5826Christian Maeder# Build 32-bit or 64-bit?
dcbd32289a7bdf1e6edd06c6ab0698c6a9dbf37aChristian Maeder# Package name used in tarballs
dcbd32289a7bdf1e6edd06c6ab0698c6a9dbf37aChristian Maeder# Version number (used in path names)
1aee4aaddde105264c1faf394d88e302c05094ffChristian Maeder# Checksums for upstream tarball
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian MaederTARBALL_MD5 = 2856130aebf56e3df7b7d9be419bfb28
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian MaederTARBALL_SHA1 = c385293b66a6b0bc6bad648588f611d844c26ee7
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian Maeder# Patches to apply to source after unpacking, in order
8b767d09a78927b111f5596fdff9ca7d2c1a439fChristian Maeder# *** Moved to patch-list file so they can be shared between Xorg & Xvnc builds
d54cd08a4cfa26256c38d8ed12c343adbfe1a0e3Christian Maeder# Man pages to apply Sun footer to & attributes to list
23b4e542dca35852f58d1fb3f7d9078c1de5ab06Christian Maeder# XXX: Need to adjust some of these to correct packages/stability
feca1d35123d8c31aee238c9ce79947b0bf65494Christian MaederMODULE_SUNTOUCH_MAN_FLAGS= -p $(MODULE_PREFIX)/bin/
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian Maeder# Binary built in tree
db675e8302ddb0d6528088ce68f5e98a00e890e3Christian MaederXORGSERVER_BIN=$(SOURCE_DIR)/hw/xfree86/Xorg
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian MaederBUILD_TARGETS=$(XORGSERVER_BIN) build_mdb set-elf-comments \
23ffcc44ca8612feccbd8fda63fa5be7ab5f9dc3Christian Maeder# Need to regenerate autoconf/automake files after patching
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# Command line options to GNU autoconf configure script
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# Need to override LD setting to add -xarch flags that libtool strips
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# XXX: --disable-dga
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian MaederMODULE_CONFIG_OPTS = $(XSERVER_CONFIG_OPTS) \
9e748851c150e1022fb952bab3315e869aaf0214Christian Maeder --enable-kdrive --enable-xephyr --disable-xsdl \
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder# pkg-config files that need to have -R added
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder# Remove compiler specific visibility flag that breaks builds of drivers
a5e5b8c3e5c11177e5034ef2423813a5d28979edChristian Maeder# with other compilers
bc8cbf12aa172bf5673b92a9e7a0151d4aa4c315Christian MaederMODULE_FIX_PC_FLAGS= -e 's|\@symbol_visibility\@||'
2d130d212db7208777ca896a7ecad619a8944971Christian Maeder# Need to use GNU Make to build due to hw/xfree86/loader
a42fbfe7becf0eae2d624123eb0db73a794593f0Christian Maeder# Additional install targets beyond the defaults
b363eb04791e7f735633b9b4088502c2bc50ebfcChristian MaederMODULE_ADD_INSTALL_TARGETS=install_extras install_mdb install_pc_common
1cd4f6541984962658add5cfaa9f28a93879881bChristian MaederMODULE_ADD_INSTALL_TARGETS += $(EXTRA_INSTALL_$(MACH))
6a79849bed67264c396dddb3e9c184bdfc1a1bc9Christian Maeder# Have to avoid dependency loop between install_pc_copy and
6ff7a91875597d6e4dfaa68c79187d01473e8341Christian Maeder# install_pkgconfig_uninstalled
6ff7a91875597d6e4dfaa68c79187d01473e8341Christian MaederINSTALL_PCU_DEPS = $(INSTALL_TARGETS:install_pc_copy=)
4017ebc0f692820736d796af3110c3b3018c108aChristian Maeder# Merge in additional sources from sun-src directory
a3c6d8e0670bf2aa71bc8e2a3b1f45d56dd65e4cChristian MaederSDK_INCLUDES_DIR=$(PROTODIR)$(X11_INCLUDES_DIR)/xorg/
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder sed -e 's%#define XF86DRI 1%/* #define XF86DRI 1 */%' \
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder -e 's%^.* _XSERVER64 .*$$%#include <sys/isa_defs.h>\
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder#define _XSERVER64 1\
b568982efd0997d877286faa592d81b03c8c67b8Christian Maeder $(SOURCE_DIR)/include/xorg-server.h > $(SDK_INCLUDES_DIR)/xorg-server.h
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder cp -pf $(SOURCE_DIR)/mi/mioverlay.h $(SDK_INCLUDES_DIR)/mioverlay.h
0be0db405c49906bd7057255069bf6df53395ac9Klaus Luettich cp -pf $(SOURCE_DIR)/hw/xfree86/os-support/bus/xf86Sbus.h $(SDK_INCLUDES_DIR)/xf86Sbus.h
ca074a78b8dcccbb8c419586787882f98d0c6163Christian Maeder cp -pf $(SOURCE_DIR)/hw/xfree86/dri/*.h $(SDK_INCLUDES_DIR)/
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder -rm -f $(SDK_INCLUDES_DIR)/xf1bpp.h $(SDK_INCLUDES_DIR)/xf4bpp.h
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder cp -pf $(SOURCE_DIR)/hw/xfree86/doc/README.* $(PROTODIR)$(X11_DOC_DIR)/
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian Maeder $(SOURCE_DIR)/hw/xfree86/doc/man/xorgcfg.1 \
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian Maeder $(SOURCE_DIR)/hw/xfree86/doc/man/xorgconfig.1 \
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian Maeder mkdir -p $(PROTODIR)$(X11_DIR)/share/hal/fdi/policy/10osvendor
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder cp -pf $(SOURCE_DIR)/config/x11-input.fdi \
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian Maeder $(PROTODIR)$(X11_DIR)/share/hal/fdi/policy/10osvendor/10-x11-input.fdi
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder# Workaround bug in installing pkgconfig file to wrong directory in 64-bit
63f0e65a37b95621334db9ee4ba0cd9d826f5c0fChristian Maeder -rm -f $(PROTODIR)$(PKGCONFIG_DIR)/xorg-server.pc
d23b0cc79c0d204e6ec758dff8d0ba71c9f693f7Christian Maeder# Install xorg-server.pc in 32-bit pkgconfig dir on SPARC too
3e8b136f23ed57d40ee617f49bcac37830b58cabChristian Maederinstall_pc_copy: install_pc_common install_pkgconfig_uninstalled
f1541d4a151dbd08002dbd14e7eb1d5dde253689Christian Maeder cp -pf $(PROTODIR)$(PKGCONFIG_DIR_64)/xorg-server.pc \
6dc9bc98d0854fe2e3dd3bfc4275096a0c28ee1cChristian Maeder $(PROTODIR)$(PKGCONFIG_DIR_32)/xorg-server.pc
d946c1bfdd7d58aa7c023efe864d5999eb44a61bChristian Maeder cp -pf $(PROTODIR)$(PKGCONFIG_DIR_64)/xorg-server-uninstalled.pc \
e6d5dbbc3308f05197868806e0b860f4f53875f1Christian Maeder $(PROTODIR)$(PKGCONFIG_DIR_32)/xorg-server-uninstalled.pc
e4f4d096e5e6d60dd91c746d0e833d0ac7a29c50Christian Maeder$(BUILD_DIR)/mapfile-Xorg-externs: $(XORGSERVER_BIN)
eb74267cf39e4e95f9eeb5c765f4c8dac33971b4Christian Maeder printf '# Functions exported by Xorg server to loadable modules\n\n' > $@
61fa0ac06ede811c7aad54ec4c4202346727368eChristian Maeder /usr/ccs/bin/nm -g $(XORGSERVER_BIN) $(PROTODIR)$(X11_SERVERLIBS_DIR)$(ARCHLIBSUBDIR)/libXfont.so | grep -v UNDEF | sed -n -e 's/^.*\|FUNC \|GLOB \|.*\|\([A-Za-z].*\)$$/ \1 = FUNCTION extern;/p' -e 's/^.*\|OBJT \|GLOB \|.*\|\([A-Za-z].*\)$$/ \1 = DATA extern;/p' >> $@
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder# Build & install mdb modules & scripts that aren't integrated to
6cd33d6101fb1b93baa6d86fac158af18a115108Christian Maeder# normal build process
6cd33d6101fb1b93baa6d86fac158af18a115108Christian MaederMDB_MODULE_DIR=/usr/lib/mdb/proc/$(ARCHLIBSUBDIR)
b2ac5a92cf36382e8deea5661c1964566caf72b3Christian Maeder# Since configure options aren't used to build the mdb modules, pass
6cd33d6101fb1b93baa6d86fac158af18a115108Christian Maeder# those variables at build tie
c9a7e6af169a2adfb92f42331cd578065ed83a2bChristian Maederbuild_mdb: $(MDB_SOURCE_DIR)/modules/Xserver.so
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder$(MDB_SOURCE_DIR)/modules/Xserver.so: $(CONFIGURE_TARGETS)
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder $(MDB_BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS))
f1a913f880e409e7327b5deae95738b5448379a1Christian Maederinstall_mdb: $(MDB_SOURCE_DIR)/modules/Xserver.so
f1a913f880e409e7327b5deae95738b5448379a1Christian Maeder mkdir -p $(PROTODIR)$(MDB_MODULE_DIR) $(PROTODIR)$(MDB_SCRIPT_DIR)
f1a913f880e409e7327b5deae95738b5448379a1Christian Maeder cp -pf $(MDB_SOURCE_DIR)/modules/Xserver.so \
f1a913f880e409e7327b5deae95738b5448379a1Christian Maeder cp -pf $(MDB_SCRIPTS:%=$(MDB_SOURCE_DIR)/scripts/%) \
456238178f89e5a3de2988ee6c8af924297d52d9Christian Maeder chmod 0755 $(MDB_SCRIPTS:%=$(PROTODIR)$(MDB_SCRIPT_DIR)/%)