Makefile.inc revision 536
0N/A# -*- Makefile -*- rules commonly shared among X consolidation open source dirs
606N/A#
0N/A# Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
0N/A# Use subject to license terms.
0N/A#
0N/A# Permission is hereby granted, free of charge, to any person obtaining a
0N/A# copy of this software and associated documentation files (the
0N/A# "Software"), to deal in the Software without restriction, including
0N/A# without limitation the rights to use, copy, modify, merge, publish,
0N/A# distribute, and/or sell copies of the Software, and to permit persons
0N/A# to whom the Software is furnished to do so, provided that the above
0N/A# copyright notice(s) and this permission notice appear in all copies of
0N/A# the Software and that both the above copyright notice(s) and this
0N/A# permission notice appear in supporting documentation.
0N/A#
0N/A# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
0N/A# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
0N/A# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
0N/A# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
0N/A# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
0N/A# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
0N/A# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
0N/A# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
0N/A# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
0N/A#
0N/A# Except as contained in this notice, the name of a copyright holder
0N/A# shall not be used in advertising or otherwise to promote the sale, use
0N/A# or other dealings in this Software without prior written authorization
0N/A# of the copyright holder.
606N/A#
0N/A# @(#)Makefile.inc 1.93 08/09/15
0N/A#
0N/A
0N/A### Default rules
0N/A
0N/A# Which compiler to use to build module
0N/AMODTYPE_COMPILER_DEFAULT = $(MODTYPE_COMPILER_SET:yes=$(POUND_SIGN))
0N/A$(MODTYPE_COMPILER_DEFAULT) MODTYPE_COMPILER = $(DEFAULT_COMPILER)
0N/AMODULE_COMPILER_DEFAULT = $(MODULE_COMPILER_SET:yes=$(POUND_SIGN))
0N/A$(MODULE_COMPILER_DEFAULT) MODULE_COMPILER = $(MODTYPE_COMPILER)
0N/A
0N/A# Which make to use to build module
0N/AMODTYPE_MAKE_DEFAULT = $(MODTYPE_MAKE_SET:yes=$(POUND_SIGN))
0N/A$(MODTYPE_MAKE_DEFAULT) MODTYPE_MAKE = $(MAKE)
0N/AMODULE_MAKE_DEFAULT = $(MODULE_MAKE_SET:yes=$(POUND_SIGN))
0N/A$(MODULE_MAKE_DEFAULT) MODULE_MAKE = $(MODTYPE_MAKE)
98N/A
98N/A# Where to install files
98N/AMODTYPE_PREFIX_DEFAULT = $(MODTYPE_PREFIX_SET:yes=$(POUND_SIGN))
98N/A$(MODULE_PREFIX_DEFAULT) MODTYPE_PREFIX=$(X11_DIR)
0N/AMODULE_PREFIX_DEFAULT = $(MODULE_PREFIX_SET:yes=$(POUND_SIGN))
0N/A$(MODULE_PREFIX_DEFAULT) MODULE_PREFIX=$(MODTYPE_PREFIX)
0N/A
0N/A# Directory created by unpacking source, if not set in module makefile
0N/ASOURCE_DIRNAME_DEFAULT = $(SOURCE_DIRNAME_SET:yes=$(POUND_SIGN))
0N/A$(SOURCE_DIRNAME_DEFAULT) SOURCE_DIRNAME=$(MODULE_NAME)-$(MODULE_VERSION)
0N/A
0N/ASOURCE_DIR = $(BUILD_DIR)/$(SOURCE_DIRNAME)
0N/A
0N/A# Set default tarball if not set in module makefile
0N/ASOURCE_TARBALL_NAME_DEFAULT = $(SOURCE_TARBALL_NAME_SET:yes=$(POUND_SIGN))
0N/A$(SOURCE_TARBALL_NAME_DEFAULT) SOURCE_TARBALL_NAME=$(SOURCE_DIRNAME).tar.bz2
0N/A
0N/A# Tarballs for most modules built here are found in the X.Org archives/repos
0N/A# in a directory with the same name as what we use in our tree
0N/ASOURCE_TARBALL_DIR_DEFAULT = $(SOURCE_TARBALL_DIR_SET:yes=$(POUND_SIGN))
0N/A$(SOURCE_TARBALL_DIR_DEFAULT) SOURCE_TARBALL_DIR=$(MODTYPE)
0N/A
0N/A# Set default download location if not set in module makefile
0N/ASOURCE_URL_DEFAULT = $(SOURCE_URL_SET:yes=$(POUND_SIGN))
0N/A$(SOURCE_URL_DEFAULT) SOURCE_URL=$(XORG_RELEASES_URL)/$(SOURCE_TARBALL_DIR)/$(SOURCE_TARBALL_NAME)
0N/A
0N/A# Set default git repo location if not set in module makefile
0N/AGIT_URL_DEFAULT = $(GIT_URL_SET:yes=$(POUND_SIGN))
0N/A$(GIT_URL_DEFAULT) GIT_URL=$(XORG_GIT_URL)/$(SOURCE_TARBALL_DIR)/$(MODULE_NAME).git
0N/A
0N/A
606N/ABUILD_DIR_32 = build_32
606N/ABUILD_DIR_64 = build_64
606N/A
606N/A# Set default build type to 32-bit if not set in module makefile
606N/ABUILD_TYPES_DEFAULT = $(BUILD_TYPES_SET:yes=$(POUND_SIGN))
0N/A$(BUILD_TYPES_DEFAULT) BUILD_TYPES=32
606N/A
606N/A# Set default rules if not set in module/modtype Makefile
606N/ASOURCE_TARGETS_DEFAULT = $(SOURCE_TARGETS_SET:yes=$(POUND_SIGN))
606N/A$(SOURCE_TARGETS_DEFAULT) SOURCE_TARGETS=default_source
0N/A
0N/ACONFIGURE_TARGETS_DEFAULT = $(CONFIGURE_TARGETS_SET:yes=$(POUND_SIGN))
0N/A$(CONFIGURE_TARGETS_DEFAULT) CONFIGURE_TARGETS=default_configure
0N/A
0N/ABUILD_TARGETS_DEFAULT = $(BUILD_TARGETS_SET:yes=$(POUND_SIGN))
0N/A$(BUILD_TARGETS_DEFAULT) BUILD_TARGETS=default_build
0N/A
0N/AINSTALL_TARGETS_DEFAULT = $(INSTALL_TARGETS_SET:yes=$(POUND_SIGN))
0N/A$(INSTALL_TARGETS_DEFAULT) INSTALL_TARGETS=default_install
0N/A
0N/A# Additional flags to pass to make in 32-bit & 64-bit builds
606N/ABUILD_32_FLAGS= BUILD_DIR=$(BUILD_DIR_32) ARCH_FLAGS="$(ARCH32_FLAGS)" \
0N/A $(MODTYPE_BUILD_32_FLAGS) $(MODULE_BUILD_32_FLAGS)
0N/A
0N/ABUILD_64_FLAGS= BUILD_DIR=$(BUILD_DIR_64) ARCH_FLAGS="$(ARCH64_FLAGS)" \
606N/A $(MODTYPE_BUILD_64_FLAGS) $(MODULE_BUILD_64_FLAGS)
0N/A
0N/Aall: $(BUILD_TYPES:%=source_%) $(BUILD_TYPES:%=build_%)
0N/Aall_32: source_32 configure_32 build_32
0N/Aall_64: source_64 configure_64 build_64
0N/A
0N/Aclean:: $(BUILD_TYPES:%=clean_%)
0N/A
0N/Aclean_32::
0N/A -rm -rf $(BUILD_DIR_32)
0N/A
0N/Aclean_64::
0N/A -rm -rf $(BUILD_DIR_64)
606N/A
0N/Asource: $(BUILD_TYPES:%=source_%)
0N/A
0N/Asource_gen:: $(SOURCE_TARGETS)
0N/A
606N/Asource_32: $(BUILD_DIR_32)/.unpack_done
606N/A$(BUILD_DIR_32)/.unpack_done:
606N/A $(MAKE) $(MAKEFLAGS) BUILD_DIR=$(BUILD_DIR_32) source_gen
606N/A
606N/Asource_64: $(BUILD_DIR_64)/.unpack_done
0N/A$(BUILD_DIR_64)/.unpack_done:
606N/A $(MAKE) $(MAKEFLAGS) BUILD_DIR=$(BUILD_DIR_64) source_gen
606N/A
606N/Aconfigure: $(BUILD_TYPES:%=configure_%)
606N/A
0N/Aconfigure_gen: $(CONFIGURE_TARGETS)
606N/A
606N/Aconfigure_32::
606N/A $(MAKE) $(MAKEFLAGS) $(BUILD_32_FLAGS) configure_gen
606N/A
606N/Aconfigure_64::
606N/A $(MAKE) $(MAKEFLAGS) LIBSUBDIR=/$(SUBDIR64) ARCHLIBSUBDIR=/$(SUBDIR64) $(BUILD_64_FLAGS) configure_gen
0N/A
0N/Abuild: $(BUILD_TYPES:%=build_%)
0N/A
0N/Abuild_gen: $(BUILD_TARGETS)
0N/A
0N/Abuild_32::
0N/A $(MAKE) $(MAKEFLAGS) $(BUILD_32_FLAGS) build_gen
0N/A
0N/Abuild_64::
0N/A $(MAKE) $(MAKEFLAGS) LIBSUBDIR=/$(SUBDIR64) ARCHLIBSUBDIR=/$(SUBDIR64) $(BUILD_64_FLAGS) build_gen
0N/A
0N/Ainstall: $(BUILD_TYPES:%=install_%)
0N/A
606N/Ainstall_gen:: $(INSTALL_TARGETS) install_license
606N/A
606N/Ainstall_32:: build_32
0N/A $(MAKE) $(MAKEFLAGS) $(BUILD_32_FLAGS) install_gen
606N/A
606N/Ainstall_64:: build_64
0N/A $(MAKE) $(MAKEFLAGS) LIBSUBDIR=/64 ARCHLIBSUBDIR=/$(SUBDIR64) $(BUILD_64_FLAGS) install_gen
0N/A
0N/ADEBUG_BUILD_FLAGS = BUILD_DEBUG=yes
0N/A
606N/Adebug:
0N/A $(MAKE) $(MAKEFLAGS) all $(DEBUG_BUILD_FLAGS)
0N/A
0N/Adebug_32:
0N/A $(MAKE) $(MAKEFLAGS) all_32 $(DEBUG_BUILD_FLAGS)
606N/A
0N/Adebug_64:
0N/A $(MAKE) $(MAKEFLAGS) all_64 $(DEBUG_BUILD_FLAGS)
606N/A
0N/Adebug-install:
0N/A $(MAKE) $(MAKEFLAGS) install $(DEBUG_BUILD_FLAGS)
0N/A
0N/Adebug-install_32:
0N/A $(MAKE) $(MAKEFLAGS) install_32 $(DEBUG_BUILD_FLAGS)
0N/A
0N/Adebug-install_64:
0N/A $(MAKE) $(MAKEFLAGS) install $(DEBUG_BUILD_FLAGS)
0N/A
606N/A
606N/A### Source tarballs & downloading if necessary
0N/A
0N/ASOURCE_TARBALL=$(TARBALLDIR)/$(SOURCE_TARBALL_NAME)
0N/A
0N/AGIT_CLONE_DIR=$(MODULE_NAME)-$(MODULE_VERSION)
0N/A
0N/A# Download if SOURCE_TARBALL_NAME is not set to NONE and the file either
0N/A# doesn't exist or is empty
606N/A# If MODULE_VERSION is xgit, checkout source from git repo instead of
0N/A# a tarball
0N/Adownload:
0N/A @case '$(MAKEFLAGS)' in *[ik]*) set +e;; esac; set -x ; \
606N/A if [[ "$(MODULE_VERSION)" = "git" ]] ; then \
606N/A if [[ ! -d $(GIT_CLONE_DIR) ]] ; then \
606N/A $(GIT) clone $(GIT_URL) $(GIT_CLONE_DIR) ; \
606N/A if [[ ! -z "$(GIT_BRANCH)" ]] ; then \
606N/A cd $(GIT_CLONE_DIR) && $(GIT) checkout $(GIT_BRANCH) ; \
606N/A fi ; \
606N/A fi ; \
606N/A else \
606N/A if [[ "$(SOURCE_TARBALL_NAME)" != "NONE" ]] ; then \
606N/A if [[ ! -s $(SOURCE_TARBALL) ]] ; then \
606N/A $(WGET) -O $(SOURCE_TARBALL) $(SOURCE_URL) ; \
606N/A fi ; \
606N/A fi ; \
606N/A fi
606N/A
606N/A# Update a git cloned repo
606N/Agit-update:
606N/A if [[ "$(MODULE_VERSION)" = "git" ]] ; then \
606N/A if [[ -d $(GIT_CLONE_DIR) ]] ; then \
606N/A cd $(GIT_CLONE_DIR) ; \
606N/A if [[ ! -z "$(GIT_BRANCH)" ]] ; then \
606N/A $(GIT) checkout master && \
606N/A $(GIT) fetch && \
606N/A $(GIT) checkout $(GIT_BRANCH) ; \
606N/A else \
606N/A $(GIT) fetch ; \
606N/A fi ; \
0N/A fi ; \
0N/A fi
0N/A
0N/A
0N/A### Unpack source and apply patches
0N/A
0N/AFIX_PC_OPS= \
0N/A -e 's|-L\$${libdir}|-L\$${libdir} -R\$${libdir}|;' \
606N/A -e 's|Requires.private: .*$$||;'
0N/A
0N/A# -e 's|(Requires: .*)\bx11\b|$$1|;' \
606N/A# -e 's|^prefix=@prefix@|prefix=\$$\{top_builddir\}@prefix@|'
0N/A
0N/ASUNTOUCH_MAN_FLAGS = \
0N/A -a '{Availability, $(SUN_PACKAGE)}' \
0N/A -a '{Interface Stability, $(MODULE_STABILITY)}' \
0N/A $(MODTYPE_SUNTOUCH_MAN_FLAGS) \
0N/A $(MODULE_SUNTOUCH_MAN_FLAGS)
0N/A
0N/Adefault_source: $(MODULE_SOURCE_DEPS) $(MODTYPE_SOURCE_DEPS)
0N/A mkdir -p $(BUILD_DIR)
0N/A @ if [[ "$(SOURCE_TARBALL_NAME)" != "NONE" ]] ; then \
0N/A if [[ "$(MODULE_VERSION)" = "git" ]] ; then \
0N/A SOURCE_CMD='gtar --exclude=.git* -cf - $(GIT_CLONE_DIR)' ; \
0N/A else \
0N/A UNCOMP_CMD="$(SOURCE_UNCOMPRESS)" ; \
0N/A SOURCE_CMD="$${UNCOMP_CMD:-bzcat} $(SOURCE_TARBALL)" ; \
606N/A fi ; \
0N/A print "$${SOURCE_CMD} | (cd $(BUILD_DIR) ; gtar -xf - )" ; \
0N/A $${SOURCE_CMD} | (cd $(BUILD_DIR) ; gtar -xf - ) ; \
606N/A else \
606N/A print "mkdir -p $(SOURCE_DIR)" ; \
606N/A mkdir -p $(SOURCE_DIR) ; \
606N/A fi ; \
606N/A if [[ "$(ADDITIONAL_SOURCE_DIR)" != "" ]] ; then \
606N/A if [[ ! -x $(LNDIR) ]] ; then \
606N/A (cd $(TOP)/util/lndir && $(MAKE) $(MAKEFLAGS) install) ; \
0N/A fi ; \
606N/A print "cd $(SOURCE_DIR) && $(LNDIR) ../../$(ADDITIONAL_SOURCE_DIR)" ; \
0N/A (cd $(SOURCE_DIR) && $(LNDIR) ../../$(ADDITIONAL_SOURCE_DIR) ) ; \
606N/A fi ; \
606N/A if [[ "$(SOURCE_PATCHES)" != "" ]] ; then \
606N/A for p in $(SOURCE_PATCHES) x ; do \
606N/A if [[ "$$p" != "x" ]] ; then \
0N/A PATCH_CMD="$$(print $$p | awk -F, '{if (NF > 1) FLAGS = $$2; else FLAGS="-p0" ; printf "gpatch -d $(SOURCE_DIR) %s < %s\n", FLAGS, $$1}')" ; \
0N/A print "$${PATCH_CMD}" ; \
606N/A eval $${PATCH_CMD} ; \
606N/A fi ; \
606N/A done ; \
606N/A fi ; \
606N/A if [[ "$(SUNTOUCHED_MANPAGES)" != "" ]] ; then \
606N/A print "/usr/perl5/bin/perl $(TOP)/common/suntouch-manpages.pl \
606N/A $(SUNTOUCH_MAN_FLAGS) $(SUNTOUCHED_MANPAGES)" ; \
0N/A (cd $(SOURCE_DIR) && \
606N/A /usr/perl5/bin/perl $(TOP)/common/suntouch-manpages.pl \
606N/A $(SUNTOUCH_MAN_FLAGS) $(SUNTOUCHED_MANPAGES) ) ; \
606N/A fi ; \
0N/A if [[ "$(FIX_PC_FILES)" != "" ]] ; then \
606N/A print "/usr/perl5/bin/perl -i.orig -p \
0N/A $(FIX_PC_OPS) $(FIX_PC_FILES)" ; \
606N/A (cd $(SOURCE_DIR) && \
0N/A /usr/perl5/bin/perl -i.orig -p \
0N/A $(FIX_PC_OPS) $(FIX_PC_FILES) ); \
0N/A fi
0N/A touch $(BUILD_DIR)/$(UNPACK_FILE)
0N/A
0N/A### Run configure scripts
0N/A
0N/A# Include Xorg autoconf macros when rebuilding configure scripts
0N/AACLOCAL_PATH=aclocal -I $(PROTODIR)$(X11_ACLOCAL_DIR)
0N/A
0N/A# Dependencies for running configure to make a Makefile
0N/ACONFIGURE_DEPS = $(UNPACK_TARGET) \
0N/A $(MODTYPE_CONFIGURE_DEPS) $(MODULE_CONFIGURE_DEPS)
0N/A
0N/A# Command line options to GNU autoconf configure script
0N/ADEFAULT_CONFIG_OPTS = --prefix=$(MODULE_PREFIX) \
0N/A --mandir='$${prefix}/share/man' --localstatedir=/var \
0N/A --disable-libtool-lock
0N/A
0N/ACONFIG_OPTS = $(DEFAULT_CONFIG_OPTS) \
0N/A $(MODTYPE_CONFIG_OPTS) $(MODULE_CONFIG_OPTS)
0N/A
0N/A# Environment variable options to GNU autoconf configure script
0N/A$(USE_DEFAULT_CONFIG_CPPFLAGS:no=$(POUND_SIGN)) DEFAULT_CONFIG_CPPFLAGS= \
0N/A -I$(PROTODIR)$(X11_INCLUDES_DIR) \
0N/A -I$(PROTODIR)/usr/include -I$(PROTODIR)/usr/include/freetype2
0N/A$(USE_DEFAULT_CONFIG_LDFLAGS:no=$(POUND_SIGN)) DEFAULT_CONFIG_LDFLAGS= \
0N/A -L$(PROTODIR)/usr/lib$(ARCHLIBSUBDIR) \
0N/A -L$(PROTODIR)$(X11_DIR)/lib$(ARCHLIBSUBDIR)
0N/ADEFAULT_PKG_CONFIG_PATH=$(PROTODIR)/usr/lib/$(ARCHLIBSUBDIR)/pkgconfig:$(TOP)/common/pc-files/$(BUILD_DIR):/usr/lib$(ARCHLIBSUBDIR)/pkgconfig
0N/A
0N/A# Set USE_DEFAULT_CONFIG_ENV=no in a Makefile to not use this default
0N/A# autoconfig environment
0N/A$(USE_DEFAULT_CONFIG_ENV:no=$(POUND_SIGN)) DEFAULT_CONFIG_ENV = \
0N/A CC="$(CC)" CXX="$(CXX)" \
0N/A LD="$(CC) $(LDFLAGS)" \
0N/A CFLAGS="$(MODTYPE_CFLAGS) $(MODULE_CFLAGS)" \
0N/A CXXFLAGS="$(MODTYPE_CXXFLAGS) $(MODULE_CXXFLAGS)" \
0N/A CPPFLAGS="$(DEFAULT_CONFIG_CPPFLAGS) $(MODTYPE_CPPFLAGS) $(MODULE_CPPFLAGS)" \
0N/A LDFLAGS="$(DEFAULT_CONFIG_LDFLAGS) $(MODTYPE_CFLAGS) $(MODTYPE_LDFLAGS) $(MODULE_CFLAGS) $(MODULE_LDFLAGS)" \
0N/A PKG_CONFIG_PATH="$(DEFAULT_PKG_CONFIG_PATH)" \
0N/A INSTALL="$(INSTALL_SCRIPT)" CPPROG="cp -p" \
0N/A MAKE="$(MODULE_MAKE)" CONFIG_SHELL="$(SHELL)"
0N/A
0N/ACONFIG_ENV = $(DEFAULT_CONFIG_ENV) $(MODTYPE_CONFIG_ENV) $(MODULE_CONFIG_ENV)
0N/A
0N/A# File created by running configure - defaults to the top-level Makefile
183N/A# in a source directory unless AUTOCONF_TARGET_SET=yes is set
0N/AAUTOCONF_TARGET_DEFAULT = $(AUTOCONF_TARGET_SET:yes=$(POUND_SIGN))
0N/A$(AUTOCONF_TARGET_DEFAULT) AUTOCONF_TARGET=$(SOURCE_DIR)/Makefile
0N/A
183N/A$(AUTOCONF_TARGET): $(CONFIGURE_DEPS)
0N/A cd $(SOURCE_DIR) ; \
0N/A if [[ "$(AUTORECONF)" = "yes" ]] ; then \
0N/A ACLOCAL="$(ACLOCAL_PATH)" autoreconf -v --install --force ; \
0N/A fi ; \
0N/A chmod a+x configure ; \
606N/A $(CONFIG_ENV) $(SHELL) ./configure $(CONFIG_OPTS) ; \
0N/A if [[ "$(DELIBTOOLIZE)" = "yes" ]] ; then \
0N/A $(TOP)/common/delibtoolize.pl $(DELIBTOOLIZE_FLAGS) . ; \
0N/A fi
0N/A
0N/Adefault_configure:: $(AUTOCONF_TARGET)
0N/A
0N/A
0N/A### Remove libtool from build process when needed
0N/A
0N/Adelibtoolize:
0N/A $(TOP)/common/delibtoolize.pl $(DELIBTOOLIZE_FLAGS) $(SOURCE_DIR)
0N/A
0N/A
0N/A### Generate mapfiles to limit/version exported symbols in libraries
0N/A
0N/ASPEC2MAP= /usr/lib/abi/spec2map
606N/A
606N/ASPECMAP= mapfile.vers.$(LIBNAME)
0N/ASPECFILE= spec/$(LIBNAME).spec
0N/AVERSFILE= spec/versions
606N/A
606N/A$(BUILD_DIR_32)/$(SPECMAP): $(SPECFILE) $(VERSFILE)
0N/A $(MAKE) $(MAKEFLAGS) BUILD_DIR=$(BUILD_DIR_32) MACH=$(MACH32) spec_gen
0N/A
0N/A$(BUILD_DIR_64)/$(SPECMAP): $(SPECFILE) $(VERSFILE)
0N/A $(MAKE) $(MAKEFLAGS) BUILD_DIR=$(BUILD_DIR_64) MACH=$(MACH64) spec_gen
0N/A
0N/Aspec_gen:
606N/A $(SPEC2MAP) -a $(MACH) -v $(VERSFILE) -p -l $(LIBNAME) \
606N/A -o $(BUILD_DIR)/$(SPECMAP) $(SPECFILE)
606N/A
606N/A### Default rules for common build pattern
606N/A
606N/ALD_OPTIONS = -L$(PROTODIR)$(X11_DIR)/lib$(LIBSUBDIR) \
606N/A $(MODTYPE_LD_OPTIONS) $(MODULE_LD_OPTIONS)
606N/A
606N/ABUILD_ENV = LD_OPTIONS='$(LD_OPTIONS)' \
0N/A $(MODTYPE_BUILD_ENV) $(MODULE_BUILD_ENV)
0N/A
0N/ADEFAULT_BUILD_MAKEFLAGS=$(MODTYPE_MAKEFLAGS) $(MODULE_MAKEFLAGS) \
0N/A $(MODTYPE_BUILD_MAKEFLAGS) $(MODULE_BUILD_MAKEFLAGS)
0N/A
0N/Adefault_build:: $(UNPACK_TARGET) $(CONFIGURE_TARGETS) $(MODTYPE_BUILD_DEPS) $(MODULE_BUILD_DEPS) $(MODULE_MAKE)
0N/A (cd $(SOURCE_DIR) ; \
0N/A $(BUILD_ENV) $(MODULE_MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS))
0N/A
0N/Aprint_default_build_flags:
0N/A @print "BUILD_ENV='$(BUILD_ENV)'" ; \
0N/A print "MAKE='$(MODULE_MAKE)'" ; \
0N/A print "MAKE_FLAGS='$(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS)'"
0N/A
0N/Abuild-in-subdir:
606N/A (cd $(subdir) ; \
0N/A $(BUILD_ENV) $(MODULE_MAKE) $(MAKEFLAGS) $(DEFAULT_BUILD_MAKEFLAGS) \
0N/A $(subdir_cmd) )
0N/A
0N/ADEFAULT_INSTALL_MAKEFLAGS= -e DESTDIR=$(PROTODIR) \
0N/A pkgconfigdir=/usr/lib$(ARCHLIBSUBDIR)/pkgconfig \
0N/A $(MODTYPE_MAKEFLAGS) $(MODULE_MAKEFLAGS) \
0N/A $(MODTYPE_INSTALL_MAKEFLAGS) $(MODULE_INSTALL_MAKEFLAGS) \
0N/A
0N/Adefault_install:: $(BUILD_TARGETS)
0N/A (cd $(SOURCE_DIR) ; \
0N/A $(BUILD_ENV) $(MODULE_MAKE) $(MAKEFLAGS) $(DEFAULT_INSTALL_MAKEFLAGS) \
0N/A install)
0N/A
0N/Aprint_default_install_flags:
0N/A @print "BUILD_ENV='$(BUILD_ENV)'" ; \
0N/A print "MAKE='$(MODULE_MAKE)'" ; \
0N/A print "MAKE_FLAGS='$(MAKEFLAGS) $(DEFAULT_INSTALL_MAKEFLAGS)'"
0N/A
0N/Ainstall-in-subdir:
0N/A (cd $(subdir) ; \
0N/A $(BUILD_ENV) $(MODULE_MAKE) $(MAKEFLAGS) $(DEFAULT_INSTALL_MAKEFLAGS) \
0N/A $(subdir_cmd))
0N/A
0N/A
0N/A### Other tools/dependencies needed to build
0N/A
0N/A# Some modules (such as FreeType 2) require GNU make
0N/A$(GNUMAKE):
0N/A @print -n "Building with GNU make from $$(whence gmake): "
0N/A @$(GNUMAKE) --version
0N/A
0N/A$(MAKE):
0N/A @print "Building with make from $$(whence $(MAKE))"
0N/A
0N/A# Some modules use lndir to merge in sources from Sun specific directories
0N/A$(LNDIR):
0N/A (cd $(TOP)/util/lndir && $(MAKE) $(MAKEFLAGS) install)
0N/A
0N/A# Some modules use these tools to convert DocBook docs to text or html
0N/A$(DOCBOOK2HTML) $(DOCBOOK2TEXT):
0N/A cd $(TOP)/doc/docbook-utils && $(MAKE) $(MAKEFLAGS) install
0N/A
0N/A$(XORG_DEFS_ENT):
0N/A cd $(TOP)/doc/xorg-sgml-doctools && $(MAKE) $(MAKEFLAGS) install
0N/A
0N/A# Almost everything depends on the headers in xproto
0N/A$(XPROTO_DEP):
0N/A @print "$(XPROTO_DEP) not found..."
0N/A @print "Installing dependency proto/x11proto"
0N/A (cd $(TOP)/proto/x11proto ; make install)
0N/A
0N/A### Useful rules for maintaining patch sets
0N/A
0N/A# regenerate patches against new baseline to reduce messages about hunks
0N/A# having fuzz or offsets when applying patches - new patches will be in new/
0N/A
0N/Aregen-patches:
0N/A CUR_LIST=""
0N/A rm -rf tmp-regen
0N/A make SOURCE_PATCHES="$(CUR_LIST)" BUILD_DIR=tmp-regen source_gen
0N/A mkdir -p new
606N/A for f in $(SOURCE_PATCHES) ; do \
0N/A p=$$(print $$f | sed 's/,.*$$//') ; \
606N/A print '=================' $$p ; \
0N/A rm -rf prev ; \
0N/A mv tmp-regen prev ; \
606N/A $(MAKE) SOURCE_PATCHES="$${CUR_LIST} $$f" BUILD_DIR=tmp-regen source_gen ; \
0N/A awk '/^--- / {exit} \
0N/A /^diff -u/ {exit} \
606N/A {print}' $$p > new/$$p ; \
0N/A gdiff -urp -x '*~' -x '*.orig' ./prev ./tmp-regen \
0N/A | sed -e 's% \./prev$(SOURCE_DIR)/% %' -e 's% \./tmp-regen$(SOURCE_DIR)/% %' \
0N/A | grep -v '^Common subdirectories:' \
606N/A | grep -v '^Only in ' \
606N/A >> new/$$p ; \
606N/A CUR_LIST="$${CUR_LIST} new/$$p" ; \
0N/A done
0N/A rm -rf tmp-regen
0N/A
606N/A### Licensing files
606N/A
0N/A# Default license file name is COPYING (X.Org & GNU autoconf default)
606N/A# For other license file names, set LICENSE_FILE to the file name
606N/A# and set LICENSE_FILE_SET=yes
0N/A# A file in the same directory as the Makefile takes precedence
606N/A# over one that is delivered in the package.
0N/ALICENSE_FILE_DEFAULT = $(LICENSE_FILE_SET:yes=$(POUND_SIGN))
606N/A$(LICENSE_FILE_DEFAULT) LICENSE_FILE=COPYING
606N/A
606N/Ainstall_license:
606N/A @THIS_MODULE=`echo $(PWD) | sed 's|.*/open-src/||'` ; \
606N/A if [[ -f $(LICENSE_FILE) ]] ; then \
606N/A LICENSE_TO_COPY="$(LICENSE_FILE)" ; \
606N/A elif [[ -f $(SOURCE_DIR)/$(LICENSE_FILE) ]] ; then \
606N/A LICENSE_TO_COPY="$(SOURCE_DIR)/$(LICENSE_FILE)" ; \
606N/A fi ; \
606N/A if [[ "$${LICENSE_TO_COPY}" != "" ]] ; then \
606N/A set -x ; \
606N/A mkdir -p $(LICENSE_DEST)/$${THIS_MODULE}/ ; \
606N/A cp -pf $${LICENSE_TO_COPY} \
606N/A $(LICENSE_DEST)/$${THIS_MODULE}/COPYING ; \
0N/A fi
606N/A