Makefile.inc revision 1088
6ae232055d4d8a97267517c5e50074c2c819941and# -*- Makefile -*- rules commonly shared among X consolidation open source dirs
6ae232055d4d8a97267517c5e50074c2c819941and# Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
6ae232055d4d8a97267517c5e50074c2c819941and# Permission is hereby granted, free of charge, to any person obtaining a
6ae232055d4d8a97267517c5e50074c2c819941and# copy of this software and associated documentation files (the "Software"),
6ae232055d4d8a97267517c5e50074c2c819941and# to deal in the Software without restriction, including without limitation
6ae232055d4d8a97267517c5e50074c2c819941and# the rights to use, copy, modify, merge, publish, distribute, sublicense,
6ae232055d4d8a97267517c5e50074c2c819941and# and/or sell copies of the Software, and to permit persons to whom the
6ae232055d4d8a97267517c5e50074c2c819941and# Software is furnished to do so, subject to the following conditions:
6ae232055d4d8a97267517c5e50074c2c819941and# The above copyright notice and this permission notice (including the next
6ae232055d4d8a97267517c5e50074c2c819941and# paragraph) shall be included in all copies or substantial portions of the
6ae232055d4d8a97267517c5e50074c2c819941and# Software.
3f08db06526d6901aa08c110b5bc7dde6bc39905nd# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6ae232055d4d8a97267517c5e50074c2c819941and# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
6ae232055d4d8a97267517c5e50074c2c819941and# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
6ae232055d4d8a97267517c5e50074c2c819941and# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
b43f840409794ed298e8634f6284741f193b6c4ftakashi# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
6ae232055d4d8a97267517c5e50074c2c819941and# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
6ae232055d4d8a97267517c5e50074c2c819941and# DEALINGS IN THE SOFTWARE.
6ae232055d4d8a97267517c5e50074c2c819941and### Default rules
b43f840409794ed298e8634f6284741f193b6c4ftakashi# Which compiler to use to build module
b43f840409794ed298e8634f6284741f193b6c4ftakashiMODTYPE_COMPILER_DEFAULT = $(MODTYPE_COMPILER_SET:yes=$(POUND_SIGN))
b43f840409794ed298e8634f6284741f193b6c4ftakashi$(MODTYPE_COMPILER_DEFAULT) MODTYPE_COMPILER = $(DEFAULT_COMPILER)
6ae232055d4d8a97267517c5e50074c2c819941andMODULE_COMPILER_DEFAULT = $(MODULE_COMPILER_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(MODULE_COMPILER_DEFAULT) MODULE_COMPILER = $(MODTYPE_COMPILER)
6ae232055d4d8a97267517c5e50074c2c819941and# Which make to use to build module
e5ce3ac0e9b720c0fa23782e29168a0810697fdetakashiMODTYPE_MAKE_DEFAULT = $(MODTYPE_MAKE_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(MODTYPE_MAKE_DEFAULT) MODTYPE_MAKE = $(MAKE)
6ae232055d4d8a97267517c5e50074c2c819941andMODULE_MAKE_DEFAULT = $(MODULE_MAKE_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(MODULE_MAKE_DEFAULT) MODULE_MAKE = $(MODTYPE_MAKE)
6ae232055d4d8a97267517c5e50074c2c819941and# Where to install files
6ae232055d4d8a97267517c5e50074c2c819941andMODTYPE_PREFIX_DEFAULT = $(MODTYPE_PREFIX_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(MODTYPE_PREFIX_DEFAULT) MODTYPE_PREFIX=$(X11_DIR)
6ae232055d4d8a97267517c5e50074c2c819941andMODULE_PREFIX_DEFAULT = $(MODULE_PREFIX_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(MODULE_PREFIX_DEFAULT) MODULE_PREFIX=$(MODTYPE_PREFIX)
6ae232055d4d8a97267517c5e50074c2c819941and# Where to install documentation files
6ae232055d4d8a97267517c5e50074c2c819941andMODTYPE_DOC_DIR_DEFAULT = $(MODTYPE_DOC_DIR_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(MODTYPE_DOC_DIR_DEFAULT) MODTYPE_DOC_DIR=$(MODULE_PREFIX)/share/doc/$(MODULE_NAME)
6ae232055d4d8a97267517c5e50074c2c819941andMODULE_DOC_DIR_DEFAULT = $(MODULE_DOC_DIR_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(MODULE_DOC_DIR_DEFAULT) MODULE_DOC_DIR=$(MODTYPE_DOC_DIR)
6ae232055d4d8a97267517c5e50074c2c819941and# Where to install pkgconfig files
6ae232055d4d8a97267517c5e50074c2c819941andMODTYPE_PKGCONFIG_DIR_DEFAULT = $(MODTYPE_PKGCONFIG_DIR_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(MODTYPE_PKGCONFIG_DIR_DEFAULT) MODTYPE_PKGCONFIG_DIR=$(PKGCONFIG_DIR)
6ae232055d4d8a97267517c5e50074c2c819941andMODULE_PKGCONFIG_DIR_DEFAULT = $(MODULE_PKGCONFIG_DIR_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(MODULE_PKGCONFIG_DIR_DEFAULT) MODULE_PKGCONFIG_DIR=$(MODTYPE_PKGCONFIG_DIR)
6ae232055d4d8a97267517c5e50074c2c819941and# Package files will be delivered in
6ae232055d4d8a97267517c5e50074c2c819941andMODTYPE_PKGHIER_DEFAULT = $(MODTYPE_PKGHIER_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(MODTYPE_PKGHIER_DEFAULT) MODTYPE_PKGHIER=x11/$(MODTYPE)
6ae232055d4d8a97267517c5e50074c2c819941andMODULE_PKGTAIL_DEFAULT = $(MODULE_PKGTAIL_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(MODULE_PKGTAIL_DEFAULT) MODULE_PKGTAIL_CMD=print $(MODULE_NAME) | \
6ae232055d4d8a97267517c5e50074c2c819941and$(MODULE_PKGTAIL_DEFAULT) MODULE_PKGTAIL=$(MODULE_PKGTAIL_CMD:sh)
6ae232055d4d8a97267517c5e50074c2c819941andMODULE_PKGNAME_DEFAULT = $(MODULE_PKGNAME_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(MODULE_PKGNAME_DEFAULT) MODULE_PKGNAME=$(MODTYPE_PKGHIER)/$(MODULE_PKGTAIL)
6ae232055d4d8a97267517c5e50074c2c819941and# Package manifest file
6ae232055d4d8a97267517c5e50074c2c819941andPKG_SRC_DIR = $(TOP)/pkg
6ae232055d4d8a97267517c5e50074c2c819941andPKG_MANIFEST_DIR = $(PKG_SRC_DIR)/manifests
6ae232055d4d8a97267517c5e50074c2c819941andPKG_LICENSE_DIR = $(PKG_SRC_DIR)/license_files
6ae232055d4d8a97267517c5e50074c2c819941andMODULE_PKG_MANIFEST_NAME_CMD = print $(MODULE_PKGNAME) | tr '/' '-'
6ae232055d4d8a97267517c5e50074c2c819941andMODULE_PKG_MANIFEST_NAME = $(MODULE_PKG_MANIFEST_NAME_CMD:sh)
6ae232055d4d8a97267517c5e50074c2c819941andMODULE_PKG_MANIFEST = $(PKG_MANIFEST_DIR)/$(MODULE_PKG_MANIFEST_NAME).mf
6ae232055d4d8a97267517c5e50074c2c819941and# Package classification - must be a valid value recognized by pkg gui
6ae232055d4d8a97267517c5e50074c2c819941andMODULE_PKGCLASS_DEFAULT = $(MODULE_PKGCLASS_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(MODULE_PKGCLASS_DEFAULT) MODULE_PKGCLASS=System/X11
6ae232055d4d8a97267517c5e50074c2c819941and# Directory created by unpacking source, if not set in module makefile
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_DIRNAME_DEFAULT = $(SOURCE_DIRNAME_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(SOURCE_DIRNAME_DEFAULT) SOURCE_DIRNAME=$(MODULE_NAME)-$(MODULE_VERSION)
6ae232055d4d8a97267517c5e50074c2c819941andBUILD_DIR_$(BUILD_TYPE) = build-$(BUILD_TYPE)
6ae232055d4d8a97267517c5e50074c2c819941and# Special cases for 32-bit & 64-bit directory names to allow building
6ae232055d4d8a97267517c5e50074c2c819941and# both architectures in the same tree (serially - building both in
6ae232055d4d8a97267517c5e50074c2c819941and# parallel is likely to have race conditions)
6ae232055d4d8a97267517c5e50074c2c819941andBUILD_DIR_32 = build-$(MACH32)
6ae232055d4d8a97267517c5e50074c2c819941andBUILD_DIR_64 = build-$(MACH64)
6ae232055d4d8a97267517c5e50074c2c819941andBUILD_DIR = $(BUILD_DIR_$(BUILD_TYPE))
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_DIR = $(BUILD_DIR)/$(SOURCE_DIRNAME)
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_DIR_32 = $(BUILD_DIR_32)/$(SOURCE_DIRNAME)
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_DIR_64 = $(BUILD_DIR_64)/$(SOURCE_DIRNAME)
6ae232055d4d8a97267517c5e50074c2c819941and# Set default tarball if not set in module makefile
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_TARBALL_NAME_DEFAULT = $(SOURCE_TARBALL_NAME_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(SOURCE_TARBALL_NAME_DEFAULT) SOURCE_TARBALL_NAME=$(SOURCE_DIRNAME).tar.bz2
6ae232055d4d8a97267517c5e50074c2c819941and# Tarballs for most modules built here are found in the X.Org archives/repos
6ae232055d4d8a97267517c5e50074c2c819941and# in a directory with the same name as what we use in our tree
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_TARBALL_DIR_DEFAULT = $(SOURCE_TARBALL_DIR_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(SOURCE_TARBALL_DIR_DEFAULT) SOURCE_TARBALL_DIR=$(MODTYPE)
6ae232055d4d8a97267517c5e50074c2c819941and# Set default download location if not set in module makefile
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_URL_DEFAULT = $(SOURCE_URL_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(SOURCE_URL_DEFAULT) SOURCE_URL=$(XORG_RELEASES_URL)/$(SOURCE_TARBALL_DIR)/$(SOURCE_TARBALL_NAME)
6ae232055d4d8a97267517c5e50074c2c819941and# Set default git repo location if not set in module makefile
6ae232055d4d8a97267517c5e50074c2c819941andGIT_URL_DEFAULT = $(GIT_URL_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(GIT_URL_DEFAULT) GIT_URL=$(XORG_GIT_URL)/$(SOURCE_TARBALL_DIR)/$(MODULE_NAME).git
6ae232055d4d8a97267517c5e50074c2c819941and# Set default build type to 32-bit if not set in module makefile
6ae232055d4d8a97267517c5e50074c2c819941andBUILD_TYPES_DEFAULT = $(BUILD_TYPES_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(BUILD_TYPES_DEFAULT) BUILD_TYPES=32
6ae232055d4d8a97267517c5e50074c2c819941and# Set default rules if not set in module/modtype Makefile
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_TARGETS_DEFAULT = $(SOURCE_TARGETS_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(SOURCE_TARGETS_DEFAULT) SOURCE_TARGETS=$(UNPACK_TARGET) \
6ae232055d4d8a97267517c5e50074c2c819941andCONFIGURE_TARGETS_DEFAULT = $(CONFIGURE_TARGETS_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(CONFIGURE_TARGETS_DEFAULT) CONFIGURE_TARGETS=default_configure \
6ae232055d4d8a97267517c5e50074c2c819941andBUILD_TARGETS_DEFAULT = $(BUILD_TARGETS_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(BUILD_TARGETS_DEFAULT) BUILD_TARGETS=default_build \
6ae232055d4d8a97267517c5e50074c2c819941andINSTALL_TARGETS_DEFAULT = $(INSTALL_TARGETS_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(INSTALL_TARGETS_DEFAULT) INSTALL_TARGETS=default_install \
4b3a8afbfcea8b265d179a122bf40dfedd1ce280takashi# Additional flags to pass to make in 32-bit & 64-bit builds
6ae232055d4d8a97267517c5e50074c2c819941andBUILD_32_FLAGS= ARCH_FLAGS="$(ARCH32_FLAGS)" \
6ae232055d4d8a97267517c5e50074c2c819941andBUILD_64_FLAGS= ARCH_FLAGS="$(ARCH64_FLAGS)" \
6ae232055d4d8a97267517c5e50074c2c819941andall: $(BUILD_TYPES:%=build_%)
6ae232055d4d8a97267517c5e50074c2c819941andall_%: build_%
6ae232055d4d8a97267517c5e50074c2c819941andCLEAN_RULES = $(BUILD_TYPES:%=clean_%)
6ae232055d4d8a97267517c5e50074c2c819941andclean: $(CLEAN_RULES)
6ae232055d4d8a97267517c5e50074c2c819941and.PARALLEL: $(CLEAN_RULES)
6ae232055d4d8a97267517c5e50074c2c819941and# Remove directories with both styles of naming
6ae232055d4d8a97267517c5e50074c2c819941and$(CLEAN_RULES):
6ae232055d4d8a97267517c5e50074c2c819941and -rm -rf $(BUILD_DIR_$(@:clean_%=%)) $(@:clean_%=build_%) $(@:clean_%=build-%)
6ae232055d4d8a97267517c5e50074c2c819941and# Tell dmake not to remove and create source in parallel
6ae232055d4d8a97267517c5e50074c2c819941and.NOPARALLEL: clean source
6ae232055d4d8a97267517c5e50074c2c819941and.NOPARALLEL: clean_$(BUILD_TYPE) source_$(BUILD_TYPE)
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_RULES = $(BUILD_TYPES:%=source_%)
6ae232055d4d8a97267517c5e50074c2c819941andsource: $(SOURCE_RULES)
6ae232055d4d8a97267517c5e50074c2c819941and.PARALLEL: $(SOURCE_RULES)
6ae232055d4d8a97267517c5e50074c2c819941andsource-gen: $(SOURCE_TARGETS)
6ae232055d4d8a97267517c5e50074c2c819941and$(SOURCE_RULES):
6ae232055d4d8a97267517c5e50074c2c819941and $(MAKE) $(MAKEFLAGS) BUILD_TYPE="$(@:source_%=%)" source-gen
6ae232055d4d8a97267517c5e50074c2c819941andCONFIGURE_RULES = $(BUILD_TYPES:%=configure_%)
6ae232055d4d8a97267517c5e50074c2c819941andconfigure: $(CONFIGURE_RULES)
6ae232055d4d8a97267517c5e50074c2c819941and.PARALLEL: $(CONFIGURE_RULES)
6ae232055d4d8a97267517c5e50074c2c819941andconfigure-gen: source-gen $(CONFIGURE_TARGETS)
6ae232055d4d8a97267517c5e50074c2c819941and$(CONFIGURE_RULES):
6ae232055d4d8a97267517c5e50074c2c819941andBUILD_RULES = $(BUILD_TYPES:%=build_%)
6ae232055d4d8a97267517c5e50074c2c819941andbuild: $(BUILD_RULES)
6ae232055d4d8a97267517c5e50074c2c819941and.PARALLEL: $(BUILD_RULES)
6ae232055d4d8a97267517c5e50074c2c819941andbuild-gen: configure-gen $(BUILD_TARGETS)
6ae232055d4d8a97267517c5e50074c2c819941and$(BUILD_RULES):
6ae232055d4d8a97267517c5e50074c2c819941andINSTALL_RULES = $(BUILD_TYPES:%=install_%)
6ae232055d4d8a97267517c5e50074c2c819941andinstall: $(INSTALL_RULES)
6ae232055d4d8a97267517c5e50074c2c819941andinstall-gen: build-gen $(INSTALL_TARGETS) install_metadata
6ae232055d4d8a97267517c5e50074c2c819941andinstall-gen: install_pkgconfig_uninstalled install_X11_compat_links
6ae232055d4d8a97267517c5e50074c2c819941and$(INSTALL_RULES):
6ae232055d4d8a97267517c5e50074c2c819941and$(PROTODIR)$(MODULE_DOC_DIR):
6ae232055d4d8a97267517c5e50074c2c819941andDEBUG_BUILD_FLAGS = BUILD_DEBUG=yes
6ae232055d4d8a97267517c5e50074c2c819941and# Allow adding "debug-" prefix to rules like build_32, install, etc.
6ae232055d4d8a97267517c5e50074c2c819941and# Allow debug_XX to run "make all_XX" with debug flags (including without _XX)
6ae232055d4d8a97267517c5e50074c2c819941and $(MAKE) $(MAKEFLAGS) $(@:debug%=all%) $(DEBUG_BUILD_FLAGS)
6ae232055d4d8a97267517c5e50074c2c819941and### Source tarballs & downloading if necessary
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_TARBALL=$(TARBALLDIR)/$(SOURCE_TARBALL_NAME)
6ae232055d4d8a97267517c5e50074c2c819941and# Allow downloading from local archive/mirror
6ae232055d4d8a97267517c5e50074c2c819941and# TARBALL_ARCHIVE is now set in Makefile.options
6ae232055d4d8a97267517c5e50074c2c819941andARCHIVE_URL=$(TARBALL_ARCHIVE)/$(SOURCE_TARBALL_DIR)/$(SOURCE_TARBALL_NAME)
6ae232055d4d8a97267517c5e50074c2c819941andGIT_CLONE_DIR=$(MODULE_NAME)-git
6ae232055d4d8a97267517c5e50074c2c819941and# Download if SOURCE_TARBALL_NAME is not set to NONE and the file either
6ae232055d4d8a97267517c5e50074c2c819941and# doesn't exist or is empty
6ae232055d4d8a97267517c5e50074c2c819941and# If MODULE_VERSION is git, checkout source from git repo instead of
6ae232055d4d8a97267517c5e50074c2c819941and# a tarball
6ae232055d4d8a97267517c5e50074c2c819941anddownload: $(SOURCE_TARBALL)
6ae232055d4d8a97267517c5e50074c2c819941and$(SOURCE_TARBALL): $(TARBALLDIR)
6ae232055d4d8a97267517c5e50074c2c819941and if [[ ! -d $(GIT_CLONE_DIR) ]] ; then \
6ae232055d4d8a97267517c5e50074c2c819941and if [[ ! -z "$(GIT_BRANCH)" ]] ; then \
6ae232055d4d8a97267517c5e50074c2c819941and if [[ ! -z "$(TARBALL_ARCHIVE)" ]] ; then \
6ae232055d4d8a97267517c5e50074c2c819941and exit $${status} ) ; \
6ae232055d4d8a97267517c5e50074c2c819941andCHECKSUM_TARGET = .checksum_done.$(MODULE_VERSION)
6ae232055d4d8a97267517c5e50074c2c819941andcheck-checksums: $(CHECKSUM_TARGET)
6ae232055d4d8a97267517c5e50074c2c819941and$(CHECKSUM_TARGET): $(SOURCE_TARBALL)
6ae232055d4d8a97267517c5e50074c2c819941and print -u2 "ERROR: MD5 sum mismatch on ${SOURCE_TARBALL}\n" \
6ae232055d4d8a97267517c5e50074c2c819941and "$${ACTUAL_MD5} != ${TARBALL_MD5}" ; \
6ae232055d4d8a97267517c5e50074c2c819941and print -u2 "ERROR: SHA1 sum mismatch on ${SOURCE_TARBALL}\n" \
6ae232055d4d8a97267517c5e50074c2c819941and "$${ACTUAL_SHA1} != ${TARBALL_SHA1}" ; \
6ae232055d4d8a97267517c5e50074c2c819941andclean: clean-checksums
6ae232055d4d8a97267517c5e50074c2c819941andclean-checksums:
6ae232055d4d8a97267517c5e50074c2c819941and# Submit a tarball to the archive
6ae232055d4d8a97267517c5e50074c2c819941andARCHIVE_SUBMIT=/ws/x11/tarballs/bin/archive-tarballs
6ae232055d4d8a97267517c5e50074c2c819941andarchive-tarball:
6ae232055d4d8a97267517c5e50074c2c819941and$(TARBALLDIR):
6ae232055d4d8a97267517c5e50074c2c819941and# Update a git cloned repo
6ae232055d4d8a97267517c5e50074c2c819941andgit-update:
6ae232055d4d8a97267517c5e50074c2c819941and if [[ -d $(GIT_CLONE_DIR) ]] ; then \
6ae232055d4d8a97267517c5e50074c2c819941and if [[ ! -z "$(GIT_BRANCH)" ]] ; then \
6ae232055d4d8a97267517c5e50074c2c819941and# Create a local git repo from tarball and patches, to ease generating
6ae232055d4d8a97267517c5e50074c2c819941and# patches for submission to upstream git or rebasing to new tarballs
6ae232055d4d8a97267517c5e50074c2c819941andgit-import:
6ae232055d4d8a97267517c5e50074c2c819941and $(MAKE) BUILD_DIR="$(GIT_CLONE_DIR)" SOURCE_DIR="$(GIT_CLONE_DIR)" \
6ae232055d4d8a97267517c5e50074c2c819941and git commit -a -m 'Initialized from $(SOURCE_TARBALL_NAME)' \
6ae232055d4d8a97267517c5e50074c2c819941and p=$${f%,*} ; \
6ae232055d4d8a97267517c5e50074c2c819941and print '=================' $$p ; \
6ae232055d4d8a97267517c5e50074c2c819941and (cd $(GIT_CLONE_DIR) ; $(START_CMD_ECHO) ; git am $(PWD)/$$p) ; \
6ae232055d4d8a97267517c5e50074c2c819941and $(MAKE) SOURCE_PATCHES="$$f" BUILD_DIR="$(GIT_CLONE_DIR)" \
6ae232055d4d8a97267517c5e50074c2c819941and /^diff -u/ {exit} \
6ae232055d4d8a97267517c5e50074c2c819941and### Unpack source and apply patches
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_DEPS = $(SOURCE_TARBALL) $(CHECKSUM_TARGET) \
6ae232055d4d8a97267517c5e50074c2c819941and# Step 1: Initialize source dir with upstream sources
6ae232055d4d8a97267517c5e50074c2c819941and# - if there's a tarball, unpack it.
6ae232055d4d8a97267517c5e50074c2c819941and# - if using a git master, copy it.
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_INIT_TARGET_FILE=.source.init.done
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_INIT_TARGET=$(SOURCE_DIR)/$(SOURCE_INIT_TARGET_FILE)
6ae232055d4d8a97267517c5e50074c2c819941andinit_source: $(SOURCE_INIT_TARGET)
6ae232055d4d8a97267517c5e50074c2c819941and$(SOURCE_INIT_TARGET): $(SOURCE_DEPS)
6ae232055d4d8a97267517c5e50074c2c819941and SOURCE_CMD='gtar --exclude=.git* -cf - $(GIT_CLONE_DIR)' ; \
6ae232055d4d8a97267517c5e50074c2c819941and gtar --directory="$(BUILD_DIR)" $(ADD_TAR_FLAGS) -xf - ; \
6ae232055d4d8a97267517c5e50074c2c819941and# Step 2: Add in any additional local sources from $(ADDITIONAL_SOURCE_DIR)
6ae232055d4d8a97267517c5e50074c2c819941and# (done after init source to avoid races in directory/file creation)
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_ADD_TARGET_FILE=.source.add.done
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_ADD_TARGET=$(SOURCE_DIR)/$(SOURCE_ADD_TARGET_FILE)
6ae232055d4d8a97267517c5e50074c2c819941andadd_source: $(SOURCE_ADD_TARGET)
6ae232055d4d8a97267517c5e50074c2c819941and$(SOURCE_ADD_TARGET): $(SOURCE_INIT_TARGET)
6ae232055d4d8a97267517c5e50074c2c819941and if [[ ! -x $(LNDIR) ]] ; then \
6ae232055d4d8a97267517c5e50074c2c819941and (cd $(TOP)/open-src/util/lndir && $(MAKE) $(MAKEFLAGS) install) ; \
6ae232055d4d8a97267517c5e50074c2c819941and cd $(SOURCE_DIR) && $(LNDIR) ../../$(ADDITIONAL_SOURCE_DIR) ; \
6ae232055d4d8a97267517c5e50074c2c819941and# Step 3: Apply any local patches (may be done in parallel to add_source,
6ae232055d4d8a97267517c5e50074c2c819941and# but must come after init_source is finished)
6ae232055d4d8a97267517c5e50074c2c819941and# SOURCE_PATCHES is a list in the format: filename[,flags]
6ae232055d4d8a97267517c5e50074c2c819941and# $${p/*,} is ksh93 syntax to remove the comma and everything before it in $p
6ae232055d4d8a97267517c5e50074c2c819941and# $${p%,*} is ksh93 syntax to remove the comma and everything after it in $p
6ae232055d4d8a97267517c5e50074c2c819941andPATCHED_TARGET_FILE=.patches.done
6ae232055d4d8a97267517c5e50074c2c819941andPATCHED_TARGET=$(SOURCE_DIR)/$(PATCHED_TARGET_FILE)
6ae232055d4d8a97267517c5e50074c2c819941andpatched_source: $(PATCHED_TARGET)
6ae232055d4d8a97267517c5e50074c2c819941and$(PATCHED_TARGET): $(SOURCE_INIT_TARGET)
6ae232055d4d8a97267517c5e50074c2c819941and gpatch -d $(SOURCE_DIR) $${patch_flags} < "$${patch_file}" ) ; \
6ae232055d4d8a97267517c5e50074c2c819941and# Step 4: Apply common Solaris changes to man pages in $(SUNTOUCHED_MANPAGES)
6ae232055d4d8a97267517c5e50074c2c819941andFIXED_MAN_SUFFIX=mantouch.done
1d980e5489836e977ba59b419e27b0ec875c4bd3takashiFIXED_MAN_TARGET=$(SUNTOUCHED_MANPAGES:%=$(SOURCE_DIR)/%.$(FIXED_MAN_SUFFIX))
1d980e5489836e977ba59b419e27b0ec875c4bd3takashifixed_man: $(FIXED_MAN_TARGET)
1d980e5489836e977ba59b419e27b0ec875c4bd3takashiCOMMON_SUNTOUCH_MAN_FLAGS = \
6ae232055d4d8a97267517c5e50074c2c819941and -a '{Availability, $(MODULE_PKGNAME)}' \
1d980e5489836e977ba59b419e27b0ec875c4bd3takashi -a '{Interface Stability, $(MODULE_STABILITY)}'
1d980e5489836e977ba59b419e27b0ec875c4bd3takashiDEFAULT_SUNTOUCH_MAN_FLAGS = \
1d980e5489836e977ba59b419e27b0ec875c4bd3takashiSUNTOUCH_MAN_FLAGS_DEFAULT = $(SUNTOUCH_MAN_FLAGS_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(SUNTOUCH_MAN_FLAGS_DEFAULT) SUNTOUCH_MAN_FLAGS = $(DEFAULT_SUNTOUCH_MAN_FLAGS)
1d980e5489836e977ba59b419e27b0ec875c4bd3takashi$(FIXED_MAN_TARGET): $(PATCHED_TARGET) $(SOURCE_ADD_TARGET)
6ae232055d4d8a97267517c5e50074c2c819941and $(PERL) $(TOP)/open-src/common/suntouch-manpages.pl $(SUNTOUCH_MAN_FLAGS) \
6ae232055d4d8a97267517c5e50074c2c819941and# Step 5: Apply common Solaris changes to pkg-config *.pc files listed in
6ae232055d4d8a97267517c5e50074c2c819941and# $(FIX_PC_FILES)
6ae232055d4d8a97267517c5e50074c2c819941andSOURCE_PC_FILES = $(FIX_PC_FILES:%=$(SOURCE_DIR)/%)
6ae232055d4d8a97267517c5e50074c2c819941andORIG_PC_FILES = $(SOURCE_PC_FILES:%=%.orig)
6ae232055d4d8a97267517c5e50074c2c819941andFIXED_PC_TARGET = $(ORIG_PC_FILES)
6ae232055d4d8a97267517c5e50074c2c819941andfixed_pc: $(FIXED_PC_TARGET)
6ae232055d4d8a97267517c5e50074c2c819941andFIX_PC_OPS= \
6ae232055d4d8a97267517c5e50074c2c819941and -e 's|-L\$${libdir}|-L\$${libdir} -R\$${libdir}|;' \
4b3a8afbfcea8b265d179a122bf40dfedd1ce280takashi -e 's|-R\$${libdir}( .*)? -R\$${libdir}|-R\$${libdir}$$1|g;' \
6ae232055d4d8a97267517c5e50074c2c819941and$(ORIG_PC_FILES): $(PATCHED_TARGET)
6ae232055d4d8a97267517c5e50074c2c819941and# Tie them all together
6ae232055d4d8a97267517c5e50074c2c819941andUNPACK_TARGETS = $(SOURCE_INIT_TARGET) $(PATCHED_TARGET) \
6ae232055d4d8a97267517c5e50074c2c819941and $(SOURCE_ADD_TARGET) $(FIXED_MAN_TARGET) $(FIXED_PC_TARGET)
6ae232055d4d8a97267517c5e50074c2c819941anddefault_source: $(UNPACK_TARGET)
6ae232055d4d8a97267517c5e50074c2c819941and$(UNPACK_TARGET): $(SOURCE_DEPS) $(UNPACK_TARGETS)
6ae232055d4d8a97267517c5e50074c2c819941and### Run configure scripts
6ae232055d4d8a97267517c5e50074c2c819941and# Include Xorg autoconf macros when rebuilding configure scripts
6ae232055d4d8a97267517c5e50074c2c819941and# and use automake 1.10 instead of the older 1.9.
1d980e5489836e977ba59b419e27b0ec875c4bd3takashiACLOCAL_PATH=/usr/bin/aclocal-1.10
6ae232055d4d8a97267517c5e50074c2c819941andACLOCAL_INCLUDES = -I $(PROTODIR)$(X11_ACLOCAL_DIR) \
6ae232055d4d8a97267517c5e50074c2c819941andAUTOMAKE_PATH=/usr/bin/automake-1.10
6ae232055d4d8a97267517c5e50074c2c819941andAUTORECONF_ENV= ACLOCAL="$(ACLOCAL_PATH) $(ACLOCAL_INCLUDES)" \
6ae232055d4d8a97267517c5e50074c2c819941and# Dependencies for running configure to make a Makefile
6ae232055d4d8a97267517c5e50074c2c819941andCONFIGURE_DEPS = $(SOURCE_TARGETS) \
6ae232055d4d8a97267517c5e50074c2c819941and# Command line options to GNU autoconf configure script
6ae232055d4d8a97267517c5e50074c2c819941andDEFAULT_CONFIG_OPTS = --prefix=$(MODULE_PREFIX) \
6ae232055d4d8a97267517c5e50074c2c819941andCONFIG_OPTS = $(DEFAULT_CONFIG_OPTS) \
6ae232055d4d8a97267517c5e50074c2c819941and# Environment variable options to GNU autoconf configure script
6ae232055d4d8a97267517c5e50074c2c819941and$(USE_DEFAULT_CONFIG_CPPFLAGS:no=$(POUND_SIGN)) DEFAULT_CONFIG_CPPFLAGS= \
6ae232055d4d8a97267517c5e50074c2c819941and -I$(PROTODIR)/usr/include -I$(PROTODIR)/usr/include/freetype2
6ae232055d4d8a97267517c5e50074c2c819941and$(USE_DEFAULT_CONFIG_LDFLAGS:no=$(POUND_SIGN)) DEFAULT_CONFIG_LDFLAGS= \
6ae232055d4d8a97267517c5e50074c2c819941andDEFAULT_PKG_CONFIG_PATH=$(TOP)/open-src/common/pc-files/$(BUILD_DIR):$(PROTODIR)$(PKGCONFIG_DIR):$(PROTODIR)$(PKGCONFIG_DIR_SHARE):$(PKGCONFIG_DIR):$(PKGCONFIG_DIR_SHARE)
6ae232055d4d8a97267517c5e50074c2c819941and# Set USE_DEFAULT_CONFIG_ENV=no in a Makefile to not use this default
6ae232055d4d8a97267517c5e50074c2c819941and# autoconfig environment
6ae232055d4d8a97267517c5e50074c2c819941and$(USE_DEFAULT_CONFIG_ENV:no=$(POUND_SIGN)) DEFAULT_CONFIG_ENV = \
6ae232055d4d8a97267517c5e50074c2c819941and CPPFLAGS="$(DEFAULT_CONFIG_CPPFLAGS) $(MODTYPE_CPPFLAGS) $(MODULE_CPPFLAGS)" \
6ae232055d4d8a97267517c5e50074c2c819941and LDFLAGS="$(DEFAULT_CONFIG_LDFLAGS) $(MODTYPE_CFLAGS) $(MODTYPE_LDFLAGS) $(MODULE_CFLAGS) $(MODULE_LDFLAGS)" \
6ae232055d4d8a97267517c5e50074c2c819941andCONFIG_ENV = $(DEFAULT_CONFIG_ENV) $(MODTYPE_CONFIG_ENV) $(MODULE_CONFIG_ENV)
6ae232055d4d8a97267517c5e50074c2c819941and# File created by running configure - defaults to the top-level Makefile
6ae232055d4d8a97267517c5e50074c2c819941and# in a source directory unless AUTOCONF_TARGET_SET=yes is set
6ae232055d4d8a97267517c5e50074c2c819941andAUTOCONF_TARGET_DEFAULT = $(AUTOCONF_TARGET_SET:yes=$(POUND_SIGN))
6ae232055d4d8a97267517c5e50074c2c819941and$(AUTOCONF_TARGET_DEFAULT) AUTOCONF_TARGET=$(SOURCE_DIR)/Makefile
6ae232055d4d8a97267517c5e50074c2c819941and$(AUTOCONF_TARGET): $(CONFIGURE_DEPS)
6ae232055d4d8a97267517c5e50074c2c819941and if [[ "$(AUTORECONF)" = "yes" || "$(MODULE_VERSION)" = "git" ]] ; then \
6ae232055d4d8a97267517c5e50074c2c819941and chmod a+x configure ; \
6ae232055d4d8a97267517c5e50074c2c819941and $(TOP)/open-src/common/delibtoolize.pl $(DELIBTOOLIZE_FLAGS) . ; \
6ae232055d4d8a97267517c5e50074c2c819941anddefault_configure: $(AUTOCONF_TARGET)
6ae232055d4d8a97267517c5e50074c2c819941and# Additional rule used in xserver/Makefile.inc & driver/Makefile.inc to
6ae232055d4d8a97267517c5e50074c2c819941and# edit the Makefiles generated by configure to override module subdirs
6ae232055d4d8a97267517c5e50074c2c819941and# for 64-bit x86 modules to be modules/xxx/amd64, not modules/amd64/xxx
6ae232055d4d8a97267517c5e50074c2c819941andFIXEDMODS_TARGET = $(AUTOCONF_TARGET).fixedmods
6ae232055d4d8a97267517c5e50074c2c819941andCONFIGURE_FIXEDMODS_/amd64 = $(FIXEDMODS_TARGET)
6ae232055d4d8a97267517c5e50074c2c819941andCONFIGURE_FIXEDMODS_TARGET = $(CONFIGURE_FIXEDMODS_$(SERVERMOD_subdir))
6ae232055d4d8a97267517c5e50074c2c819941andfix-moduledirs: $(CONFIGURE_FIXEDMODS_TARGET)
b43f840409794ed298e8634f6284741f193b6c4ftakashiFIXEDMODS_SUBSTS = \
f086b4b402fa9a2fefc7dda85de2a3cc1cd0a654rjung-e 's{\$$\(moduledir\)/(\w+|\$$\(\w+\))}{$(X11_SERVERMODS_DIR)/$$1$(SERVERMOD_subdir)}g;' \
6ae232055d4d8a97267517c5e50074c2c819941and-e 's{$(X11_SERVERMODS_DIR)$(SERVERMOD_subdir)/([^\s/]+)}{$(X11_SERVERMODS_DIR)/$$1$(SERVERMOD_subdir)}g;'
6ae232055d4d8a97267517c5e50074c2c819941and$(FIXEDMODS_TARGET): $(AUTOCONF_TARGET)
BUILD_DEPS = $(SOURCE_TARGETS) $(CONFIGURE_TARGETS) $(MODTYPE_BUILD_DEPS) $(MODULE_BUILD_DEPS) $(MODULE_MAKE)
$(subdir_cmd) )
$(subdir_cmd))
($(START_CMD_ECHO) ; \
done ; \
mkdir -p $@
@rm -f $@
@rm -f $@
$(SOURCE_DIR)
> $(MANIFEST_TMP)
>> new/$$p ; \
fi ; \
done ; \
mkdir -p $@
-rm -f $@
$(START_CMD_ECHO) ; \
$(START_CMD_ECHO) ; \
$(START_CMD_ECHO) ; \
$(START_CMD_ECHO) ; \
@ $(START_CMD_ECHO) ; \
fi ; \