diff options
Diffstat (limited to 'Build/source/libs/cairo/cairo-1.14.2/build')
24 files changed, 3241 insertions, 0 deletions
diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.analysis b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.analysis new file mode 100644 index 00000000000..a44077ab453 --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.analysis @@ -0,0 +1,37 @@ +if CAIRO_HAS_LCOV +# use recursive makes in order to ignore errors during check/perf +lcov: + -$(MAKE) $(AM_MAKEFLAGS) check + $(MAKE) $(AM_MAKEFLAGS) genlcov +lcov-perf: + -$(MAKE) $(AM_MAKEFLAGS) perf + $(MAKE) $(AM_MAKEFLAGS) genlcov + +# we have to massage the lcov.info file slightly to hide the effect of libtool +# placing the objects files in the .libs/ directory separate from the *.c +genlcov: + $(LTP) --directory $(top_builddir) --path $(top_builddir) --capture --output-file cairo-lcov.info --test-name CAIRO_TEST --no-checksum + $(SED) -e 's#.libs/##' \ + -e 's#boilerplate/src#src#' \ + -e 's#$(shell pwd)#$(shell cd $(top_srcdir) && pwd)#' \ + < cairo-lcov.info > cairo-lcov.info.tmp + LANG=C $(LTP_GENHTML) --prefix $(top_builddir) --output-directory cairo-lcov --title "Cairo Code Coverage" --show-details cairo-lcov.info.tmp + $(RM) cairo-lcov.info.tmp + +html-local: lcov +else +lcov lcov-perf genlcov: + @echo You need to configure Cairo with support for gcov enabled. + @echo e.g, ./configure --enable-gcov +endif + +lcov-clean: +if CAIRO_HAS_LCOV + -$(LTP) --directory $(top_builddir) -z +endif + -$(RM) -r cairo-lcov.info cairo-lcov + -$(FIND) -name '*.gcda' -print | $(XARGS) $(RM) + +distclean-local: lcov-clean + +.PHONY: lcov lcov-perf genlcov lcov-clean diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.changelog b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.changelog new file mode 100644 index 00000000000..07e603695cf --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.changelog @@ -0,0 +1,82 @@ +# Creating ChangeLog files from git log: + +# We always create a ChangeLog that contains the most recent changes, and +# multiple others for changes between major releases (other than the last such +# segment that we put in 'ChangeLog'. The old ones are named +# ChangeLog.pre-X.Y where X.Y is the version number of the major release. + +CURR_CHANGELOG_VERSION=$(CAIRO_VERSION_MAJOR).$$(echo "($(CAIRO_VERSION_MINOR)+1)/2*2" | bc) +# examines $version +PREV_CHANGELOG_VERSION=$$(if test "x$$(echo "($$version-0.1)*2/2"|bc)" = "x$$(echo "$$version*2/2"|bc)"; \ + then echo "$$version-$$(echo "$$version" | sed 's/[0-9]/0/g;s/[0-9]$$/2/')"; \ + else echo "$$version-1.0"; \ + fi | bc | sed 's/[.]0*/./;s/^0[.]\?$$/initial/;s/[.]$$/.0/') + +CHANGELOGS = ChangeLog \ + `version=$(CURR_CHANGELOG_VERSION); \ + version=$(PREV_CHANGELOG_VERSION); \ + while test "x$$version" != xinitial; do \ + echo ChangeLog.pre-$$version; \ + version=$(PREV_CHANGELOG_VERSION); \ + done` + +MAINTAINERCLEANFILES += $(srcdir)/ChangeLog $(srcdir)/ChangeLog.pre-* +DISTCLEANFILES += $(srcdir)/ChangeLog.cache-* + +changelogs: + @$(MAKE) $(AM_MAKEFLAGS) $(CHANGELOGS) + +dist-hook: changelogs + changelogs="$(CHANGELOGS)"; \ + for changelog in $$changelogs; do \ + cp $(srcdir)/$$changelog $(distdir)/ 2>/dev/null || \ + cp $$changelog $(distdir)/; \ + done + +$(srcdir)/ChangeLog: + @if test -d "$(srcdir)/.git"; then \ + version=$(CURR_CHANGELOG_VERSION); \ + prev=$(PREV_CHANGELOG_VERSION).0; \ + nearest_tag=`git describe | sed 's/-.*//'`; \ + before=$(srcdir)/ChangeLog.cache-$$prev..$$nearest_tag; \ + after=$(srcdir)/ChangeLog.cache-$$nearest_tag..; \ + $(MAKE) $(AM_MAKEFLAGS) $$before $$after && \ + echo Creating $@ && \ + { echo '# Generated by configure. Do not edit.'; echo; \ + cat $$after; echo; cat $$before; } > $@; \ + else \ + test -f $@ || \ + (echo A git checkout is required to generate $@ >&2 && \ + echo A git checkout is required to generate this file >> $@); \ + fi + +DISTCLEANFILES += ChangeLog.cache-* + +ChangeLog.cache-*..: .git + +ChangeLog%: $(srcdir)/ChangeLog% + +$(srcdir)/ChangeLog.cache-% $(srcdir)/ChangeLog.pre-%: + @echo Creating $@ + @if test -d "$(srcdir)/.git"; then \ + (cd "$(srcdir)" && \ + version=$$(echo "$@" | sed 's/.*ChangeLog\([.].*-\)\?//'); \ + if echo "$@" | grep -q '^ChangeLog[.]cache'; then \ + spec=$$version; \ + else \ + to=$$version; \ + test "x$$version" = x && version=$(CURR_CHANGELOG_VERSION); \ + from=$(PREV_CHANGELOG_VERSION); \ + test "x$$to" = x || to=$$to.0; \ + test "x$$from" = xinitial || from=$$from.0; \ + spec=$$from..$$to; \ + fi; \ + $(top_srcdir)/build/missing --run git log --stat "$$spec") > $@.tmp \ + && mv -f $@.tmp $@ \ + || ($(RM) $@.tmp; \ + echo Failed to generate $@, your $@ may be outdated >&2); \ + else \ + echo A git checkout is required to generate $@ >&2; \ + fi + +.PHONY: changelogs ChangeLog $(srcdir)/ChangeLog diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.common b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.common new file mode 100644 index 00000000000..b955af58fdf --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.common @@ -0,0 +1,14 @@ +BUILT_SOURCES = +CLEANFILES = +DISTCLEANFILES = +EXTRA_DIST = +EXTRA_LTLIBRARIES = +EXTRA_PROGRAMS = +MAINTAINERCLEANFILES = +TESTS = +check_PROGRAMS = + +CLEANFILES += *.i *.s *.gch +CLEANFILES += $(EXTRA_LTLIBRARIES) $(EXTRA_PROGRAMS) $(check_PROGRAMS) +DISTCLEANFILES += $(BUILT_SOURCES) +MAINTAINERCLEANFILES += Makefile.in diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.gtk-doc b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.gtk-doc new file mode 100644 index 00000000000..c3d642b097b --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.gtk-doc @@ -0,0 +1,190 @@ +# BEFORE MODIFYING THIS FILE: +# +# This file is a descendant of an old copy of gtk-doc.make, modified for cairo minimally: +# +# - Moved to build/ +# - Made it append to EXTRA_DIST and CLEANFILES +# - Instead of all-local, make "doc" build docs, and err if gtk-doc not enabled +# - Some other changed introduced in 7f114b781f5c530d57530e5f76402e41cdabac6b +# +# Before changing it, check to see if a newer gtk-doc.make has fixed the issue you are facing. +# From time to time, it would be nice to udpate this to the latest copy of gtk-doc.make, but +# please do review all the differences and port our modifications forward. +# + +# -*- mode: makefile -*- + +#################################### +# Everything below here is generic # +#################################### + +if GTK_DOC_USE_LIBTOOL +GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +else +GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) +endif + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) + +EXTRA_DIST += \ + $(content_files) \ + $(HTML_IMAGES) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt + +DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \ + $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES += $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) + +if ENABLE_GTK_DOC +doc: html-build.stamp +else +doc: + @echo "*** gtk-doc must be installed (and --enable-gtk-doc) in order to make doc" + @false +endif + +docs: html-build.stamp + +#### scan #### + +scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) $(EXTRA_HFILES) + @echo 'gtk-doc: Scanning header files' + @-chmod -R u+w $(srcdir) + gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES) --output-dir=$(srcdir) + if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \ + else \ + cd $(srcdir) ; \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### templates #### + +tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt + @echo 'gtk-doc: Rebuilding template files' + @-chmod -R u+w $(srcdir) + cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) + touch tmpl-build.stamp + +tmpl.stamp: tmpl-build.stamp + @true + +tmpl/*.sgml: + @true + + +#### xml #### + +# gtkdoc-mkdb is broken and requires a --root-dir=$(srcdir) option +# The _srcdir diversion is fragile but works for make check; make distcheck +sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) + @echo 'gtk-doc: Building XML' + @-chmod -R u+w $(srcdir) + _srcdir="`pwd`/$(DOC_SOURCE_DIR)"; \ + cd $(srcdir) && gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$$_srcdir --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS) + touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo 'gtk-doc: Building HTML' + @-chmod -R u+w $(srcdir) + rm -rf $(srcdir)/html + mkdir $(srcdir)/html + cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html ) + @echo 'gtk-doc: Fixing cross-references' + cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + touch html-build.stamp + +############## + +clean-local: + rm -f *~ *.bak + rm -rf .libs + +distclean-local: + cd $(srcdir) && \ + rm -rf xml $(REPORT_FILES) \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + +maintainer-clean-local: clean + cd $(srcdir) && rm -rf xml html + +install-data-local: + -installfiles=`echo $(srcdir)/html/*`; \ + if test "$$installfiles" = '$(srcdir)/html/*'; \ + then echo '-- Nothing to install' ; \ + else \ + $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ + for i in $$installfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ + done; \ + echo '-- Installing $(srcdir)/html/index.sgml' ; \ + $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR) || :; \ + which gtkdoc-rebase >/dev/null && \ + gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) ; \ + fi + + +uninstall-local: + rm -f $(DESTDIR)$(TARGET_DIR)/* + +# +# Require gtk-doc when making dist +# +if ENABLE_GTK_DOC +dist-check-gtkdoc: +else +dist-check-gtkdoc: + @echo "*** gtk-doc must be installed (and --enable-gtk-doc) in order to make dist" + @false +endif + +dist-hook: dist-check-gtkdoc dist-hook-local + mkdir $(distdir)/tmpl + mkdir $(distdir)/xml + mkdir $(distdir)/html + -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl + -cp $(srcdir)/xml/*.xml $(distdir)/xml + cp $(srcdir)/html/* $(distdir)/html + -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ + -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ + cd $(distdir) && rm -f $(DISTCLEANFILES) + -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.releasing b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.releasing new file mode 100644 index 00000000000..b17faabce2f --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.am.releasing @@ -0,0 +1,194 @@ +# Some custom targets to make it easier to release things. +# +# To make real stable releases or devel snapshots, use either: +# make release-check +# or make release-publish +# +# To make a quick properly named (date and git hash stamped) tarball: +# make snapshot + + +TAR_OPTIONS = --owner=0 --group=0 + +dist-hook: dist-clear-sticky-bits + +# Clean up any sticky bits we may inherit from parent dir +dist-clear-sticky-bits: + chmod -R a-s $(distdir) + + +snapshot: + distdir="$(distdir)-`date '+%Y%m%d'`"; \ + test -d "$(srcdir)/.git" && distdir=$$distdir-`cd "$(srcdir)" && git rev-parse HEAD | cut -c 1-6`; \ + TAR_OPTIONS="$(TAR_OPTIONS)" $(MAKE) $(AM_MAKEFLAGS) distdir="$$distdir" snapshot-dist + +snapshot-dist: dist + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' + +RELEASE_OR_SNAPSHOT = $$(if test "x$(CAIRO_VERSION_MINOR)" = "x$$(echo "$(CAIRO_VERSION_MINOR)/2*2" | bc)" ; then echo release; else echo snapshot; fi) +RELEASE_UPLOAD_HOST = cairographics.org +RELEASE_UPLOAD_BASE = /srv/cairo.freedesktop.org/www +RELEASE_UPLOAD_DIR = $(RELEASE_UPLOAD_BASE)/$(RELEASE_OR_SNAPSHOT)s +RELEASE_URL_BASE = http://cairographics.org/$(RELEASE_OR_SNAPSHOT)s +RELEASE_ANNOUNCE_LIST = cairo-announce@cairographics.org (and CC gnome-announce-list@gnome.org) + +MANUAL_VERSIONED = manual-$(VERSION) +MANUAL_TAR_FILE = $(MANUAL_VERSIONED).tar.gz +MANUAL_UPLOAD_DIR = $(RELEASE_UPLOAD_BASE) + +tar_file = $(PACKAGE)-$(VERSION).tar.xz +sha1_file = $(tar_file).sha1 +gpg_file = $(sha1_file).asc + +$(sha1_file): $(tar_file) + sha1sum $^ > $@ + +$(gpg_file): $(sha1_file) + @echo "Please enter your GPG password to sign the checksum." + gpg --armor --sign $^ + +release-verify-sane-changelogs: changelogs + @echo -n "Checking that the ChangeLog files are sane..." + @if grep -q "is required to generate" $(CHANGELOGS); then \ + (echo "Ouch." && echo "Some of the ChangeLogs are not generated correctly." \ + && echo "Remove ChangeLog* and make changelogs" \ + && false); else :; fi + @echo "Good." + +release-verify-sane-tests: + @echo "Checking that the test suite is sane..." + @cd test && $(MAKE) $(AM_MAKEFLAGS) release-verify-sane-tests + +release-verify-even-micro: + @echo -n "Checking that $(VERSION) has an even micro component..." + @test "$(CAIRO_VERSION_MICRO)" = "`echo $(CAIRO_VERSION_MICRO)/2*2 | bc`" \ + || (echo "Ouch." && echo "The version micro component '$(CAIRO_VERSION_MICRO)' is not an even number." \ + && echo "The version in configure.in must be incremented before a new release." \ + && false) + @echo "Good." + +release-verify-newer: + @echo -n "Checking that no $(VERSION) release already exists..." + @ssh $(RELEASE_UPLOAD_HOST) test ! -e $(RELEASE_UPLOAD_DIR)/$(tar_file) \ + || (echo "Ouch." && echo "Found: $(RELEASE_UPLOAD_HOST):$(RELEASE_UPLOAD_DIR)/$(tar_file)" \ + && echo "Are you sure you have an updated checkout?" \ + && echo "This should never happen." \ + && false) + @echo "Good." + +release-remove-old: + $(RM) $(tar_file) $(sha1_file) $(gpg_file) + + +# Strict ordering enforced for parallel make to work +release-check: \ + release-verify-even-micro \ + release-verify-sane-changelogs \ + release-verify-sane-tests \ + release-verify-newer \ + $(NULL) + $(MAKE) $(AM_MAKEFLAGS) release-remove-old + TAR_OPTIONS="$(TAR_OPTIONS)" $(MAKE) $(AM_MAKEFLAGS) distcheck + +release-upload: $(tar_file) $(sha1_file) $(gpg_file) + mkdir -p releases + scp $(tar_file) $(sha1_file) $(gpg_file) $(RELEASE_UPLOAD_HOST):$(RELEASE_UPLOAD_DIR) + mv $(tar_file) $(sha1_file) $(gpg_file) releases + ssh $(RELEASE_UPLOAD_HOST) "rm -f $(RELEASE_UPLOAD_DIR)/LATEST-$(PACKAGE)-[0-9]* && ln -s $(tar_file) $(RELEASE_UPLOAD_DIR)/LATEST-$(PACKAGE)-$(VERSION)" + git tag -s -m "cairo $(CAIRO_VERSION_MAJOR).$(CAIRO_VERSION_MINOR).$(CAIRO_VERSION_MICRO) release" $(CAIRO_VERSION_MAJOR).$(CAIRO_VERSION_MINOR).$(CAIRO_VERSION_MICRO) + +release-publish-message: releases/$(sha1_file) + @echo "Please follow the instructions in RELEASING to push stuff out and" + @echo "send out the announcement mails. Here is the excerpt you need:" + @echo "" + @echo "Subject: $(PACKAGE) $(RELEASE_OR_SNAPSHOT) $(VERSION) now available" + @echo "" + @echo "============================== CUT HERE ==============================" + @echo "A new $(PACKAGE) $(RELEASE_OR_SNAPSHOT) $(VERSION) is now available from:" + @echo "" + @echo " $(RELEASE_URL_BASE)/$(tar_file)" + @echo "" + @echo " which can be verified with:" + @echo "" + @echo " $(RELEASE_URL_BASE)/$(sha1_file)" + @echo -n " " + @cat releases/$(sha1_file) + @echo "" + @echo " $(RELEASE_URL_BASE)/$(gpg_file)" + @echo " (signed by `getent passwd "$$USER" | cut -d: -f 5 | cut -d, -f 1`)" + @echo "" + @echo " Additionally, a git clone of the source tree:" + @echo "" + @echo " git clone git://git.cairographics.org/git/cairo" + @echo "" + @echo " will include a signed $(VERSION) tag which points to a commit named:" + @echo " `git cat-file tag $(VERSION) | grep ^object | sed -e 's,object ,,'`" + @echo "" + @echo " which can be verified with:" + @echo " git verify-tag $(VERSION)" + @echo "" + @echo " and can be checked out with a command such as:" + @echo " git checkout -b build $(VERSION)" + @echo "" + @echo "============================== CUT HERE ==============================" + +doc-publish-versioned: doc + rm -rf ./$(MANUAL_VERSIONED) + cp -a doc/public/html $(MANUAL_VERSIONED) + tar czf $(MANUAL_TAR_FILE) $(MANUAL_VERSIONED) + scp $(MANUAL_TAR_FILE) $(RELEASE_UPLOAD_HOST):$(MANUAL_UPLOAD_DIR) + ssh $(RELEASE_UPLOAD_HOST) "cd $(MANUAL_UPLOAD_DIR) && tar xzf $(MANUAL_TAR_FILE) && ln -sf $(MANUAL_TAR_FILE) cairo-$(MANUAL_TAR_FILE)" + +doc-publish-symlinks: + ssh $(RELEASE_UPLOAD_HOST) "cd $(MANUAL_UPLOAD_DIR) && rm -f manual && ln -s $(MANUAL_VERSIONED) manual && ln -sf $(MANUAL_TAR_FILE) cairo-manual.tar.gz" + +doc-publish: + $(MAKE) $(AM_MAKEFLAGS) doc-publish-versioned + @if test "$(RELEASE_OR_SNAPSHOT)" = release; then $(MAKE) $(AM_MAKEFLAGS) doc-publish-symlinks; fi + +# Strict ordering enforced for parallel make to work +release-publish: release-check + $(MAKE) $(AM_MAKEFLAGS) release-upload + $(MAKE) $(AM_MAKEFLAGS) doc-publish + $(MAKE) $(AM_MAKEFLAGS) release-publish-message + +if OS_WIN32 + +# Win32 package zipfiles +runtime_zip_file = $(PACKAGE)-$(VERSION).zip +developer_zip_file = $(PACKAGE)-dev-$(VERSION).zip + +$(runtime_zip_file): install + -$(RM) $@ + pwd=`pwd`; cd $(prefix); \ + zip "$$pwd"/$@ bin/libcairo-$(CAIRO_VERSION_SONUM).dll + +$(developer_zip_file): install + -$(RM) $@ + pwd=`pwd`; cd $(prefix); \ + zip -r "$$pwd"/$@ include/cairo lib/libcairo.dll.a lib/cairo.lib lib/pkgconfig/cairo.pc lib/pkgconfig/cairo-*.pc share/gtk-doc/html/cairo + +zips: $(runtime_zip_file) $(developer_zip_file) + +endif + + +.PHONY: \ + dist-clear-sticky-bits \ + doc-publish \ + doc-publish-symlinks \ + doc-publish-versioned \ + release-check \ + release-publish \ + release-publish-message \ + release-remove-old \ + release-upload \ + release-verify-even-micro \ + release-verify-newer \ + release-verify-sane-changelogs \ + release-verify-sane-tests \ + snapshot \ + snapshot-dist \ + $(NULL) diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.win32.common b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.win32.common new file mode 100644 index 00000000000..7d7e9735f15 --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.win32.common @@ -0,0 +1,74 @@ +default: all + +# +# Edit build/Makefile.win32.features to enable features to build +# +include $(top_srcdir)/build/Makefile.win32.inform +include $(top_srcdir)/build/Makefile.win32.features +include $(top_srcdir)/build/Makefile.win32.features-h + +ifeq ($(top_builddir),) +top_builddir = $(top_srcdir) +endif + +CC := cl +LD := link +AR := lib + +ifeq ($(CFG),debug) +CFG_CFLAGS := -MDd -Od -Zi +CFG_LDFLAGS := -DEBUG +else +CFG_CFLAGS := -MD -O2 +CFG_LDFLAGS := +endif + +ifeq ($(PIXMAN_PATH),) +PIXMAN_PATH := $(top_builddir)/../pixman +endif +PIXMAN_CFLAGS := -I$(PIXMAN_PATH)/pixman/ +PIXMAN_LIBS := $(PIXMAN_PATH)/pixman/$(CFG)/pixman-1.lib + +CAIRO_LIBS = gdi32.lib msimg32.lib user32.lib + +ifeq ($(CAIRO_HAS_PNG_FUNCTIONS),1) +ifeq ($(LIBPNG_PATH),) +LIBPNG_PATH := $(top_builddir)/../libpng +endif +LIBPNG_CFLAGS += -I$(LIBPNG_PATH)/ +CAIRO_LIBS += $(LIBPNG_PATH)/libpng.lib +endif + +ifeq ($(CAIRO_HAS_PS_SURFACE)$(CAIRO_HAS_PDF_SURFACE),00) +else +ifeq ($(ZLIB_PATH),) +ZLIB_PATH := $(top_builddir)/../zlib +endif +ZLIB_CFLAGS += -I$(ZLIB_PATH)/ +CAIRO_LIBS += $(ZLIB_PATH)/zdll.lib +endif + +DEFAULT_CFLAGS = -nologo $(CFG_CFLAGS) +DEFAULT_CFLAGS += -I. -I$(top_srcdir) -I$(top_srcdir)/src +DEFAULT_CFLAGS += $(PIXMAN_CFLAGS) $(LIBPNG_CFLAGS) $(ZLIB_CFLAGS) + +CAIRO_CFLAGS = $(DEFAULT_CFLAGS) $(CFLAGS) + +DEFAULT_LDFLAGS = -nologo $(CFG_LDFLAGS) +DEFAULT_ARFLAGS = -nologo + +CAIRO_LDFLAGS = $(DEFAULT_LDFLAGS) $(LDFLAGS) +CAIRO_ARFLAGS = $(DEFAULT_ARFLAGS) $(LDFLAGS) + +# Some generic rules + +$(CFG)/%.obj: %.c $(top_srcdir)/src/cairo-features.h + @mkdir -p $(CFG)/`dirname $<` + @$(CC) $(CAIRO_CFLAGS) -c -Fo"$@" $< + +$(CFG)/%-static.obj: %.c $(top_srcdir)/src/cairo-features.h + @mkdir -p $(CFG)/`dirname $<` + @$(CC) $(CAIRO_CFLAGS) -c -DCAIRO_WIN32_STATIC_BUILD=1 -Fo"$@" $< + +clean: + @rm -f $(CFG)/*.obj $(CFG)/*.dll $(CFG)/*.lib $(CFG)/*.pdb $(CFG)/*.ilk || exit 0 diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.win32.features b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.win32.features new file mode 100644 index 00000000000..8cb155dc084 --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.win32.features @@ -0,0 +1,41 @@ +# Generated by configure. Modify to customize. + +CAIRO_HAS_XLIB_SURFACE=0 +CAIRO_HAS_XLIB_XRENDER_SURFACE=0 +CAIRO_HAS_XCB_SURFACE=0 +CAIRO_HAS_XLIB_XCB_FUNCTIONS=0 +CAIRO_HAS_XCB_SHM_FUNCTIONS=0 +CAIRO_HAS_QT_SURFACE=0 +CAIRO_HAS_QUARTZ_SURFACE=0 +CAIRO_HAS_QUARTZ_FONT=0 +CAIRO_HAS_QUARTZ_IMAGE_SURFACE=0 +CAIRO_HAS_WIN32_SURFACE=1 +CAIRO_HAS_WIN32_FONT=1 +CAIRO_HAS_SKIA_SURFACE=0 +CAIRO_HAS_OS2_SURFACE=0 +CAIRO_HAS_BEOS_SURFACE=0 +CAIRO_HAS_DRM_SURFACE=0 +CAIRO_HAS_GALLIUM_SURFACE=0 +CAIRO_HAS_PNG_FUNCTIONS=1 +CAIRO_HAS_GL_SURFACE=0 +CAIRO_HAS_GLESV2_SURFACE=0 +CAIRO_HAS_COGL_SURFACE=0 +CAIRO_HAS_DIRECTFB_SURFACE=0 +CAIRO_HAS_VG_SURFACE=0 +CAIRO_HAS_EGL_FUNCTIONS=0 +CAIRO_HAS_GLX_FUNCTIONS=0 +CAIRO_HAS_WGL_FUNCTIONS=0 +CAIRO_HAS_SCRIPT_SURFACE=1 +CAIRO_HAS_FT_FONT=0 +CAIRO_HAS_FC_FONT=0 +CAIRO_HAS_PS_SURFACE=1 +CAIRO_HAS_PDF_SURFACE=1 +CAIRO_HAS_SVG_SURFACE=1 +CAIRO_HAS_TEST_SURFACES=0 +CAIRO_HAS_TEE_SURFACE=0 +CAIRO_HAS_XML_SURFACE=0 +CAIRO_HAS_PTHREAD=0 +CAIRO_HAS_GOBJECT_FUNCTIONS=0 +CAIRO_HAS_TRACE=0 +CAIRO_HAS_INTERPRETER=1 +CAIRO_HAS_SYMBOL_LOOKUP=0 diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.win32.features-h b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.win32.features-h new file mode 100644 index 00000000000..13904cfa9f0 --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.win32.features-h @@ -0,0 +1,130 @@ +# Generated by configure. Do not edit. + +$(top_srcdir)/src/cairo-features.h: $(top_srcdir)/build/Makefile.win32.features + @echo "Generating src/cairo-features.h" + @echo "/* Generated by Makefile.win32.features-h. Do not edit. */" > $(top_srcdir)/src/cairo-features.h + @echo "#ifndef CAIRO_FEATURES_H" >> $(top_srcdir)/src/cairo-features.h + @echo "#define CAIRO_FEATURES_H 1" >> $(top_srcdir)/src/cairo-features.h +ifeq ($(CAIRO_HAS_XLIB_SURFACE),1) + @echo "#define CAIRO_HAS_XLIB_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_XLIB_XRENDER_SURFACE),1) + @echo "#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_XCB_SURFACE),1) + @echo "#define CAIRO_HAS_XCB_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_XLIB_XCB_FUNCTIONS),1) + @echo "#define CAIRO_HAS_XLIB_XCB_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_XCB_SHM_FUNCTIONS),1) + @echo "#define CAIRO_HAS_XCB_SHM_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_QT_SURFACE),1) + @echo "#define CAIRO_HAS_QT_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_QUARTZ_SURFACE),1) + @echo "#define CAIRO_HAS_QUARTZ_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_QUARTZ_FONT),1) + @echo "#define CAIRO_HAS_QUARTZ_FONT 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_QUARTZ_IMAGE_SURFACE),1) + @echo "#define CAIRO_HAS_QUARTZ_IMAGE_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_WIN32_SURFACE),1) + @echo "#define CAIRO_HAS_WIN32_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_WIN32_FONT),1) + @echo "#define CAIRO_HAS_WIN32_FONT 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_SKIA_SURFACE),1) + @echo "#define CAIRO_HAS_SKIA_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_OS2_SURFACE),1) + @echo "#define CAIRO_HAS_OS2_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_BEOS_SURFACE),1) + @echo "#define CAIRO_HAS_BEOS_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_DRM_SURFACE),1) + @echo "#define CAIRO_HAS_DRM_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_GALLIUM_SURFACE),1) + @echo "#define CAIRO_HAS_GALLIUM_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_PNG_FUNCTIONS),1) + @echo "#define CAIRO_HAS_PNG_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_GL_SURFACE),1) + @echo "#define CAIRO_HAS_GL_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_GLESV2_SURFACE),1) + @echo "#define CAIRO_HAS_GLESV2_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_COGL_SURFACE),1) + @echo "#define CAIRO_HAS_COGL_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_DIRECTFB_SURFACE),1) + @echo "#define CAIRO_HAS_DIRECTFB_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_VG_SURFACE),1) + @echo "#define CAIRO_HAS_VG_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_EGL_FUNCTIONS),1) + @echo "#define CAIRO_HAS_EGL_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_GLX_FUNCTIONS),1) + @echo "#define CAIRO_HAS_GLX_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_WGL_FUNCTIONS),1) + @echo "#define CAIRO_HAS_WGL_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_SCRIPT_SURFACE),1) + @echo "#define CAIRO_HAS_SCRIPT_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_FT_FONT),1) + @echo "#define CAIRO_HAS_FT_FONT 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_FC_FONT),1) + @echo "#define CAIRO_HAS_FC_FONT 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_PS_SURFACE),1) + @echo "#define CAIRO_HAS_PS_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_PDF_SURFACE),1) + @echo "#define CAIRO_HAS_PDF_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_SVG_SURFACE),1) + @echo "#define CAIRO_HAS_SVG_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_TEST_SURFACES),1) + @echo "#define CAIRO_HAS_TEST_SURFACES 1" >> $(top_srcdir)/src/cairo-features.h +endif + @echo "#define CAIRO_HAS_IMAGE_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h + @echo "#define CAIRO_HAS_MIME_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h + @echo "#define CAIRO_HAS_RECORDING_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h + @echo "#define CAIRO_HAS_OBSERVER_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +ifeq ($(CAIRO_HAS_TEE_SURFACE),1) + @echo "#define CAIRO_HAS_TEE_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_XML_SURFACE),1) + @echo "#define CAIRO_HAS_XML_SURFACE 1" >> $(top_srcdir)/src/cairo-features.h +endif + @echo "#define CAIRO_HAS_USER_FONT 1" >> $(top_srcdir)/src/cairo-features.h +ifeq ($(CAIRO_HAS_PTHREAD),1) + @echo "#define CAIRO_HAS_PTHREAD 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1) + @echo "#define CAIRO_HAS_GOBJECT_FUNCTIONS 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_TRACE),1) + @echo "#define CAIRO_HAS_TRACE 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_INTERPRETER),1) + @echo "#define CAIRO_HAS_INTERPRETER 1" >> $(top_srcdir)/src/cairo-features.h +endif +ifeq ($(CAIRO_HAS_SYMBOL_LOOKUP),1) + @echo "#define CAIRO_HAS_SYMBOL_LOOKUP 1" >> $(top_srcdir)/src/cairo-features.h +endif + @echo "#endif" >> $(top_srcdir)/src/cairo-features.h diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.win32.inform b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.win32.inform new file mode 100644 index 00000000000..ba11165050a --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/Makefile.win32.inform @@ -0,0 +1,13 @@ +inform: + @echo +ifneq ($(CFG),release) +ifneq ($(CFG),debug) + @echo "Invalid configuration "$(CFG)" specified." + @echo -n "You must specify a configuration when " + @echo "running make, e.g. make CFG=debug" + @echo + @echo -n "Possible choices for configuration are " + @echo "'release' and 'debug'" + @exit 1 +endif +endif diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.cairo.m4 b/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.cairo.m4 new file mode 100644 index 00000000000..2f4873b043f --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.cairo.m4 @@ -0,0 +1,216 @@ +dnl ========================================================================== +dnl +dnl Cairo-specific macros +dnl + +dnl ========================================================================== + +dnl Usage: +dnl CAIRO_BIGENDIAN +dnl +AC_DEFUN([CAIRO_BIGENDIAN], +[dnl + case $host_os in + darwin*) + AH_VERBATIM([X_BYTE_ORDER], +[ +/* Deal with multiple architecture compiles on Mac OS X */ +#ifdef __APPLE_CC__ +#ifdef __BIG_ENDIAN__ +#define WORDS_BIGENDIAN 1 +#define FLOAT_WORDS_BIGENDIAN 1 +#else +#undef WORDS_BIGENDIAN +#undef FLOAT_WORDS_BIGENDIAN +#endif +#endif +]) + ;; + *) + AC_C_BIGENDIAN + AX_C_FLOAT_WORDS_BIGENDIAN + ;; + esac +]) + +dnl CAIRO_CHECK_FUNCS_WITH_FLAGS(FUNCTION..., CFLAGS, LIBS +dnl [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) +dnl Like AC_CHECK_FUNCS but with additional CFLAGS and LIBS +dnl -------------------------------------------------------------------- +AC_DEFUN([CAIRO_CHECK_FUNCS_WITH_FLAGS], +[dnl + _save_cflags="$CFLAGS" + _save_libs="$LIBS" + CFLAGS="$CFLAGS $2" + LIBS="$LIBS $3" + AC_CHECK_FUNCS($1, $4, $5) + CFLAGS="$_save_cflags" + LIBS="$_save_libs" +]) + +dnl CAIRO_CONFIG_COMMANDS is like AC_CONFIG_COMMANDS, except that: +dnl +dnl 1) It redirects the stdout of the command to the file. +dnl 2) It does not recreate the file if contents didn't change. +dnl +AC_DEFUN([CAIRO_CONFIG_COMMANDS], +[dnl + AC_CONFIG_COMMANDS($1, + [ + _config_file=$1 + _tmp_file=cairoconf.tmp + AC_MSG_NOTICE([creating $_config_file]) + { + $2 + } >> "$_tmp_file" || + AC_MSG_ERROR([failed to write to $_tmp_file]) + + if cmp -s "$_tmp_file" "$_config_file"; then + AC_MSG_NOTICE([$_config_file is unchanged]) + rm -f "$_tmp_file" + else + mv "$_tmp_file" "$_config_file" || + AC_MSG_ERROR([failed to update $_config_file]) + fi + ], $3) +]) + +dnl CAIRO_CC_TRY_LINK_WITH_ENV_SILENT(env-setup, program, +dnl true-action, false-action) +dnl +dnl Compile and link the program with the given environment setup. +dnl The global cairo_cc_flag is set to "yes" or "no" according as +dnl the link succeeded or not. The link step must complete without +dnl warnings or errors to stderr. +dnl +dnl Perform true-action on success and false-action on failure. +dnl The values of CFLAGS, LIBS, LDFLAGS are saved before env-setup +dnl is executed and restored right before the end of the macro. +AC_DEFUN([CAIRO_CC_TRY_LINK_WITH_ENV_SILENT],[dnl + # AC_LANG_PROGRAM() produces a main() w/o args, + # but -Wold-style-definition doesn't like that. + # We need _some_ program so that we don't get + # warnings about empty compilation units, so always + # append a reasonable main(). + _compile_program="$2"' + int main(int c, char **v) { (void)c; (void)v; return 0; }' + + _save_cflags="$CFLAGS" + _save_ldflags="$LDFLAGS" + _save_libs="$LIBS" + $1 + AC_LINK_IFELSE( + [AC_LANG_SOURCE([$_compile_program])], + [cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=yes], + [cairo_cc_stderr=`test -f conftest.err && cat conftest.err` + cairo_cc_flag=no]) + + if test "x$cairo_cc_stderr" != "x"; then + cairo_cc_flag=no + fi + + if test "x$cairo_cc_flag" = "xyes"; then + ifelse([$3], , :, [$3]) + else + ifelse([$4], , :, [$4]) + fi + CFLAGS="$_save_cflags" + LDFLAGS="$_save_ldflags" + LIBS="$_save_libs" +]) + +dnl check compiler flags with a program and no muttering. +AC_DEFUN([CAIRO_CC_TRY_FLAG_SILENT], +[dnl (flags..., optional program, true-action, false-action) + CAIRO_CC_TRY_LINK_WITH_ENV_SILENT([CFLAGS="$CFLAGS $1"], + [$2], [$3], [$4]) +]) + +dnl find a -Werror equivalent +AC_DEFUN([CAIRO_CC_CHECK_WERROR], +[dnl + _test_WERROR=${WERROR+set} + if test "z$_test_WERROR" != zset; then + WERROR="" + for _werror in -Werror -errwarn; do + AC_MSG_CHECKING([whether $CC supports $_werror]) + CAIRO_CC_TRY_FLAG_SILENT( + [$_werror],, + [WERROR="$WERROR $_werror"], + [:]) + AC_MSG_RESULT($cairo_cc_flag) + done + fi +]) + +dnl check compiler flags possibly using -Werror if available. +AC_DEFUN([CAIRO_CC_TRY_FLAG], +[dnl (flags..., optional program, true-action, false-action) + CAIRO_CC_CHECK_WERROR + AC_MSG_CHECKING([whether $CC supports $1]) + CAIRO_CC_TRY_FLAG_SILENT([$WERROR $1], [$2], [$3], [$4]) + AC_MSG_RESULT([$cairo_cc_flag]) +]) + +dnl Usage: +dnl CAIRO_CHECK_NATIVE_ATOMIC_PRIMITIVES +AC_DEFUN([CAIRO_CHECK_NATIVE_ATOMIC_PRIMITIVES], +[dnl + AC_CACHE_CHECK([for native atomic primitives], cairo_cv_atomic_primitives, + [ + cairo_cv_atomic_primitives="none" + + AC_TRY_LINK([ +int atomic_add(int i) { return __sync_fetch_and_add (&i, 1); } +int atomic_cmpxchg(int i, int j, int k) { return __sync_val_compare_and_swap (&i, j, k); } +], [], + cairo_cv_atomic_primitives="Intel" + ) + + if test "x$cairo_cv_atomic_primitives" = "xnone"; then + AC_CHECK_HEADER([atomic_ops.h], + cairo_cv_atomic_primitives="libatomic-ops") + fi + + if test "x$cairo_cv_atomic_primitives" = "xnone"; then + AC_CHECK_HEADER([libkern/OSAtomic.h], + cairo_cv_atomic_primitives="OSAtomic") + fi + ]) + if test "x$cairo_cv_atomic_primitives" = xIntel; then + AC_DEFINE(HAVE_INTEL_ATOMIC_PRIMITIVES, 1, + [Enable if your compiler supports the Intel __sync_* atomic primitives]) + fi + + if test "x$cairo_cv_atomic_primitives" = "xlibatomic-ops"; then + AC_DEFINE(HAVE_LIB_ATOMIC_OPS, 1, + [Enable if you have libatomic-ops-dev installed]) + fi + + if test "x$cairo_cv_atomic_primitives" = xOSAtomic; then + AC_DEFINE(HAVE_OS_ATOMIC_OPS, 1, + [Enable if you have MacOS X atomic operations]) + fi +]) + +dnl Usage: +dnl CAIRO_CHECK_ATOMIC_OP_NEEDS_MEMORY_BARRIER +AC_DEFUN([CAIRO_CHECK_ATOMIC_OP_NEEDS_MEMORY_BARRIER], +[dnl + AC_CACHE_CHECK([whether atomic ops require a memory barrier], cairo_cv_atomic_op_needs_memory_barrier, + [ + case $host_cpu in + i?86) cairo_cv_atomic_op_needs_memory_barrier="no" ;; + x86_64) cairo_cv_atomic_op_needs_memory_barrier="no" ;; + arm*) cairo_cv_atomic_op_needs_memory_barrier="no" ;; + *) cairo_cv_atomic_op_needs_memory_barrier="yes" ;; + esac + ]) + if test "x$cairo_cv_atomic_op_needs_memory_barrier" = "xyes"; then + AC_DEFINE_UNQUOTED(ATOMIC_OP_NEEDS_MEMORY_BARRIER, 1, + [whether memory barriers are needed around atomic operations]) + fi +]) + +AC_DEFUN([CAIRO_TEXT_WRAP], [m4_text_wrap([$1], [$2],, 78)]) diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.compare.m4 b/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.compare.m4 new file mode 100644 index 00000000000..bd6c51b289d --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.compare.m4 @@ -0,0 +1,162 @@ +dnl @synopsis AX_COMPARE_VERSION(VERSION_A, OP, VERSION_B, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) +dnl +dnl This macro compares two version strings. It is used heavily in the +dnl macro _AX_PATH_BDB for library checking. Due to the various number +dnl of minor-version numbers that can exist, and the fact that string +dnl comparisons are not compatible with numeric comparisons, this is +dnl not necessarily trivial to do in a autoconf script. This macro +dnl makes doing these comparisons easy. +dnl +dnl The six basic comparisons are available, as well as checking +dnl equality limited to a certain number of minor-version levels. +dnl +dnl The operator OP determines what type of comparison to do, and can +dnl be one of: +dnl +dnl eq - equal (test A == B) +dnl ne - not equal (test A != B) +dnl le - less than or equal (test A <= B) +dnl ge - greater than or equal (test A >= B) +dnl lt - less than (test A < B) +dnl gt - greater than (test A > B) +dnl +dnl Additionally, the eq and ne operator can have a number after it to +dnl limit the test to that number of minor versions. +dnl +dnl eq0 - equal up to the length of the shorter version +dnl ne0 - not equal up to the length of the shorter version +dnl eqN - equal up to N sub-version levels +dnl neN - not equal up to N sub-version levels +dnl +dnl When the condition is true, shell commands ACTION-IF-TRUE are run, +dnl otherwise shell commands ACTION-IF-FALSE are run. The environment +dnl variable 'ax_compare_version' is always set to either 'true' or +dnl 'false' as well. +dnl +dnl Examples: +dnl +dnl AX_COMPARE_VERSION([3.15.7],[lt],[3.15.8]) +dnl AX_COMPARE_VERSION([3.15],[lt],[3.15.8]) +dnl +dnl would both be true. +dnl +dnl AX_COMPARE_VERSION([3.15.7],[eq],[3.15.8]) +dnl AX_COMPARE_VERSION([3.15],[gt],[3.15.8]) +dnl +dnl would both be false. +dnl +dnl AX_COMPARE_VERSION([3.15.7],[eq2],[3.15.8]) +dnl +dnl would be true because it is only comparing two minor versions. +dnl +dnl AX_COMPARE_VERSION([3.15.7],[eq0],[3.15]) +dnl +dnl would be true because it is only comparing the lesser number of +dnl minor versions of the two values. +dnl +dnl Note: The characters that separate the version numbers do not +dnl matter. An empty string is the same as version 0. OP is evaluated +dnl by autoconf, not configure, so must be a string, not a variable. +dnl +dnl The author would like to acknowledge Guido Draheim whose advice +dnl about the m4_case and m4_ifvaln functions make this macro only +dnl include the portions necessary to perform the specific comparison +dnl specified by the OP argument in the final configure script. +dnl +dnl @category Misc +dnl @author Tim Toolan <toolan@ele.uri.edu> +dnl @version 2004-03-01 +dnl @license GPLWithACException + +dnl ######################################################################### +AC_DEFUN([AX_COMPARE_VERSION], [ + # Used to indicate true or false condition + ax_compare_version=false + + # Convert the two version strings to be compared into a format that + # allows a simple string comparison. The end result is that a version + # string of the form 1.12.5-r617 will be converted to the form + # 0001001200050617. In other words, each number is zero padded to four + # digits, and non digits are removed. + AS_VAR_PUSHDEF([A],[ax_compare_version_A]) + A=`echo "$1" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \ + -e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \ + -e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \ + -e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \ + -e 's/[[^0-9]]//g'` + + AS_VAR_PUSHDEF([B],[ax_compare_version_B]) + B=`echo "$3" | sed -e 's/\([[0-9]]*\)/Z\1Z/g' \ + -e 's/Z\([[0-9]]\)Z/Z0\1Z/g' \ + -e 's/Z\([[0-9]][[0-9]]\)Z/Z0\1Z/g' \ + -e 's/Z\([[0-9]][[0-9]][[0-9]]\)Z/Z0\1Z/g' \ + -e 's/[[^0-9]]//g'` + + dnl # In the case of le, ge, lt, and gt, the strings are sorted as necessary + dnl # then the first line is used to determine if the condition is true. + dnl # The sed right after the echo is to remove any indented white space. + m4_case(m4_tolower($2), + [lt],[ + ax_compare_version=`echo "x$A +x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/false/;s/x${B}/true/;1q"` + ], + [gt],[ + ax_compare_version=`echo "x$A +x$B" | sed 's/^ *//' | sort | sed "s/x${A}/false/;s/x${B}/true/;1q"` + ], + [le],[ + ax_compare_version=`echo "x$A +x$B" | sed 's/^ *//' | sort | sed "s/x${A}/true/;s/x${B}/false/;1q"` + ], + [ge],[ + ax_compare_version=`echo "x$A +x$B" | sed 's/^ *//' | sort -r | sed "s/x${A}/true/;s/x${B}/false/;1q"` + ],[ + dnl Split the operator from the subversion count if present. + m4_bmatch(m4_substr($2,2), + [0],[ + # A count of zero means use the length of the shorter version. + # Determine the number of characters in A and B. + ax_compare_version_len_A=`echo "$A" | awk '{print(length)}'` + ax_compare_version_len_B=`echo "$B" | awk '{print(length)}'` + + # Set A to no more than B's length and B to no more than A's length. + A=`echo "$A" | sed "s/\(.\{$ax_compare_version_len_B\}\).*/\1/"` + B=`echo "$B" | sed "s/\(.\{$ax_compare_version_len_A\}\).*/\1/"` + ], + [[0-9]+],[ + # A count greater than zero means use only that many subversions + A=`echo "$A" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"` + B=`echo "$B" | sed "s/\(\([[0-9]]\{4\}\)\{m4_substr($2,2)\}\).*/\1/"` + ], + [.+],[ + AC_WARNING( + [illegal OP numeric parameter: $2]) + ],[]) + + # Pad zeros at end of numbers to make same length. + ax_compare_version_tmp_A="$A`echo $B | sed 's/./0/g'`" + B="$B`echo $A | sed 's/./0/g'`" + A="$ax_compare_version_tmp_A" + + # Check for equality or inequality as necessary. + m4_case(m4_tolower(m4_substr($2,0,2)), + [eq],[ + test "x$A" = "x$B" && ax_compare_version=true + ], + [ne],[ + test "x$A" != "x$B" && ax_compare_version=true + ],[ + AC_WARNING([illegal OP parameter: $2]) + ]) + ]) + + AS_VAR_POPDEF([A])dnl + AS_VAR_POPDEF([B])dnl + + dnl # Execute ACTION-IF-TRUE / ACTION-IF-FALSE. + if test "$ax_compare_version" = "true" ; then + m4_ifvaln([$4],[$4],[:])dnl + m4_ifvaln([$5],[else $5])dnl + fi +]) dnl AX_COMPARE_VERSION diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.enable.m4 b/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.enable.m4 new file mode 100644 index 00000000000..f3522b9832c --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.enable.m4 @@ -0,0 +1,409 @@ +dnl +dnl These are the facilities for enable/disabling various features, +dnl and for collecting CFLAGS/LIBS and generating per feature .pc +dnl files, assembling list of source files to compile, creating +dnl cairo-features.h and other generated files, etc... +dnl + +dnl =========================================================================== + +dnl +dnl Define a macro to enable features +dnl - Macro: _CAIRO_ENABLE (ID, NAME, WHAT, DEFAULT, COMMANDS) +dnl +dnl where: +dnl +dnl ID is the sub-namespace in function names, eg. "ft" for cairo_ft_... +dnl NAME is the human-readable name of the feature, eg. "FreeType font" +dnl WHAT is the type of feature: +dnl "surface" for surface backends +dnl "font" for font backends +dnl "functions" for set of functions +dnl "" for private configurations +dnl DEFAULT is the default state of the feature: +dnl "no" for experimental features, eg. your favorite new backend +dnl "yes" for recommended features, eg. png functions +dnl "auto" for other supported features, eg. xlib surface backend +dnl "always" for mandatory features (can't be disabled), eg. image surface backend +dnl COMMANDS are run to check whether the feature can be enabled. +dnl They should set use_$(ID) to something other than yes if the +dnl feature cannot be built, eg. "no (requires SomeThing)". It then +dnl should also set $(ID)_REQUIRES/CFLAGS/LIBS/... +dnl appropriately. Look at the macro definition for more details, +dnl or ask if in doubt. +dnl +AC_DEFUN([_CAIRO_ENABLE], +[dnl + dnl Sanity check ID + m4_if( + [$1], + m4_tolower(AS_TR_SH([$1])), + , + [m4_fatal([invalid feature name `$1'])] + )dnl + m4_pushdef([cr_feature], [$1])dnl + m4_pushdef([cr_feature_name], m4_normalize([$2]))dnl + m4_pushdef([cr_feature_what], m4_normalize([$3]))dnl + m4_pushdef([cr_feature_default], m4_normalize([$4]))dnl + m4_pushdef([cr_feature_commands], [$5])dnl + dnl + m4_pushdef([cr_feature_arg], m4_translit([$1],_,-))dnl + dnl + dnl Sanity check default + m4_case( + cr_feature_default, + [no],, + [yes],, + [auto],, + [always],, + [m4_fatal([Invalid default value `]cr_feature_default[' for feature `]cr_feature['])] + )dnl + dnl + m4_if(cr_feature_default, [always], + [dnl + enable_$1=yes + ],[dnl + AC_ARG_ENABLE(cr_feature_arg, + AS_HELP_STRING([--enable-]cr_feature_arg[=@<:@no/auto/yes@:>@], + [Enable cairo's ]cr_feature_name[ feature @<:@default=]cr_feature_default[@:>@]), + enable_$1=$enableval, enable_$1=cr_feature_default) + ])dnl + dnl + AS_CASE([$enable_$1], + [no],[dnl + use_$1="no (disabled, use --enable-cr_feature_arg to enable)" + ],dnl + [yes|auto],[dnl + AC_MSG_CHECKING([for cairo's ]cr_feature_name[ feature]) + echo + + use_[]$1=yes + CAIRO_FEATURE_VARS_FOREACH(cr_var, [cr_feature[_]cr_var[=]_CAIRO_SH_ESCAPE_UNQUOTED(m4_do([cr_var_default_]cr_var[_value]))]m4_newline) + + cr_feature_commands + + AC_MSG_CHECKING([whether cairo's ]cr_feature_name[ feature could be enabled]) + AC_MSG_RESULT([$use_$1]) + + AS_IF([test "x$enable_$1" = "xyes" -a "x$use_$1" != xyes], + [dnl + AC_MSG_ERROR( + m4_case(cr_feature_default, + [always], [mandatory], + [yes], [recommended], + , [requested] + ) cr_feature_name[ feature could not be enabled]) + ])dnl + ],dnl + [dnl + AC_MSG_ERROR([invalid argument passed to --enable-]cr_feature_arg[: `$use_$1', should be one of @<:@no/auto/yes@:>@]) + ])dnl + + AS_IF([test "x$use_$1" = "xyes"], + [dnl + CAIRO_ACCUMULATED_FEATURE_VARS_FOREACH([cr_var], + [dnl + CAIRO_ACCUMULATE_UNQUOTED_BEFORE(cr_var, [$]cr_feature[_]cr_var) + ])dnl + ],[dnl + dnl If not enabled, empty the vars so no one accidentally uses them. + CAIRO_FEATURE_VARS_FOREACH([cr_var], [unset cr_feature[_]cr_var]m4_newline) + ])dnl + + _CAIRO_FEATURE_HOOKS(cr_feature, cr_feature_name, cr_feature_default, cr_feature_what)dnl + + m4_popdef([cr_feature])dnl + m4_popdef([cr_feature_name])dnl + m4_popdef([cr_feature_what])dnl + m4_popdef([cr_feature_default])dnl + m4_popdef([cr_feature_commands])dnl + m4_popdef([cr_feature_arg])dnl +]) + + +dnl =========================================================================== + +m4_define([_CAIRO_FEATURE_VARS]) + +dnl +dnl CAIRO_FEATURE_VARS_REGISTER(VARS, DEFAULT-VALUE=[]) +dnl +dnl Registers variables to be collected from feature-enabling code segments. +dnl VARS should be a whitespace-separate list of variable names. +dnl +dnl DEFAULT-VALUE is m4 macros to set default value of VARS +dnl +AC_DEFUN([CAIRO_FEATURE_VARS_REGISTER], +[dnl + m4_foreach_w([cr_var], [$1], + [m4_append_uniq([_CAIRO_FEATURE_VARS], cr_var, [ ],, + [m4_fatal([Feature variable `]cr_var[' already registered])])])dnl + m4_foreach_w([cr_var], [$1], + [dnl + m4_define([cr_var_default_]cr_var[_value], m4_default([$2],[[$ac_env_[]]cr_feature[[]_]]cr_var[[_value]]))dnl + ])dnl +]) + +dnl +dnl CAIRO_FEATURE_VARS_FOREACH(VAR, COMMANDS) +dnl +dnl Run COMMANDS for each registered feature variable. +dnl Defines VAR to the variable being processed. +dnl +AC_DEFUN([CAIRO_FEATURE_VARS_FOREACH], +[dnl + m4_foreach_w([$1], _CAIRO_FEATURE_VARS, [$2])dnl +]) + + +dnl =========================================================================== + +m4_define([_CAIRO_ACCUMULATORS])dnl + +m4_define([_CAIRO_ACCUMULATORS_REGISTER], +[dnl + m4_foreach_w([cr_var], [$1], + [m4_append_uniq([_CAIRO_ACCUMULATORS], cr_var, [ ],, + [m4_fatal([Accumulator `]cr_var[' already registered])])])dnl + m4_foreach_w([cr_var], [$1], [m4_define([cr_acc_]cr_var[_sep], [$2])])dnl + m4_foreach_w([cr_var], [$1], [[CAIRO_]cr_var[=$3]]m4_newline)dnl + m4_foreach_w([cr_var], [$1], [m4_pattern_allow([CAIRO_]cr_var)])dnl +])dnl + +m4_define([_CAIRO_SH_ESCAPE],['m4_bpatsubst([$1],['],[\\'])'])dnl +m4_define([_CAIRO_SH_ESCAPE_UNQUOTED],["m4_bpatsubst([$1],["],[\\"])"])dnl + +dnl +dnl CAIRO_ACCUMULATORS_REGISTER(VARS, SEPARATOR=[], INITIAL-VALUE=[]) +dnl +dnl Registers accumulators. An accumulator is a shell variable that can +dnl be accumulated to. The macros take care of adding a SEPARATOR between +dnl accumulated values. +dnl +dnl VARS should be a whitespace-separate list of variable names. The actual +dnl shell variable resulting for each variable is prefixed with CAIRO_. +dnl +AC_DEFUN([CAIRO_ACCUMULATORS_REGISTER], +[dnl + _CAIRO_ACCUMULATORS_REGISTER([$1],[$2],_CAIRO_SH_ESCAPE([$3]))dnl +])dnl + +dnl +dnl Like CAIRO_ACCUMULATORS_REGISTER but INITIAL-VALUE is left unquoted, +dnl so it can reference other shell variables for example. +dnl +AC_DEFUN([CAIRO_ACCUMULATORS_REGISTER_UNQUOTED], +[dnl + _CAIRO_ACCUMULATORS_REGISTER([$1],[$2],_CAIRO_SH_ESCAPE_UNQUOTED([$3]))dnl +])dnl + +m4_define([_CAIRO_ACCUMULATOR_CHECK], +[dnl + m4_ifdef([cr_acc_$1_sep],,[m4_fatal([Accumulator `]$1[' not defined.])])dnl +])dnl + +m4_define([_CAIRO_ACCUMULATE], +[dnl + _CAIRO_ACCUMULATOR_CHECK([$1])dnl + m4_ifval([$2], [$3]m4_newline)dnl +])dnl + +dnl +dnl CAIRO_ACCUMULATE(VAR, VALUE) +dnl +dnl Appends VALUE to accumulator VAR +dnl +AC_DEFUN([CAIRO_ACCUMULATE], +[dnl + _CAIRO_ACCUMULATE([$1], [$2], [CAIRO_$1="${CAIRO_$1}]m4_do([cr_acc_$1_sep])["_CAIRO_SH_ESCAPE([$2])])dnl +])dnl + +dnl +dnl CAIRO_ACCUMULATE_BEFORE(VAR, VALUE) +dnl +dnl Prepends VALUE to accumulator VAR +dnl +AC_DEFUN([CAIRO_ACCUMULATE_BEFORE], +[dnl + _CAIRO_ACCUMULATE([$1], [$2], [CAIRO_$1=_CAIRO_SH_ESCAPE([$2])"]m4_do([cr_acc_$1_sep])[${CAIRO_$1}"])dnl +])dnl + +m4_define([_CAIRO_ACCUMULATE_UNQUOTED], +[dnl + _CAIRO_ACCUMULATOR_CHECK([$1])dnl + m4_ifval([$2], [m4_bmatch([$2],[[$]],[test -n "$2" &&]) $3]m4_newline)dnl +])dnl + +dnl +dnl CAIRO_ACCUMULATE_UNQUOTED(VAR, VALUE) +dnl +dnl Like CAIRO_ACCUMULATE but VALUE is left unquoted, +dnl so it can reference other shell variables for example. +dnl +AC_DEFUN([CAIRO_ACCUMULATE_UNQUOTED], +[dnl + _CAIRO_ACCUMULATE_UNQUOTED([$1], [$2], [CAIRO_$1="${CAIRO_$1}]m4_do([cr_acc_$1_sep])["]_CAIRO_SH_ESCAPE_UNQUOTED([$2]))dnl +])dnl + +dnl +dnl CAIRO_ACCUMULATE_UNQUOTED_BEFORE(VAR, VALUE) +dnl +dnl Like CAIRO_ACCUMULATE_BEFORE but VALUE is left unquoted, +dnl so it can reference other shell variables for example. +dnl +AC_DEFUN([CAIRO_ACCUMULATE_UNQUOTED_BEFORE], +[dnl + _CAIRO_ACCUMULATE_UNQUOTED([$1], [$2], [CAIRO_$1=]_CAIRO_SH_ESCAPE_UNQUOTED([$2])["]m4_do([cr_acc_$1_sep])[${CAIRO_$1}"])dnl +])dnl + +dnl +dnl CAIRO_ACCUMULATE_UNQUOTED_UNCHECKED(VAR, VALUE) +dnl +dnl Like CAIRO_ACCUMULATE_UNQUOTED but VALUE is not tested for emptiness. +dnl +AC_DEFUN([CAIRO_ACCUMULATE_UNQUOTED_UNCHECKED], +[dnl + _CAIRO_ACCUMULATE([$1], [$2], [CAIRO_$1="${CAIRO_$1}]m4_do([cr_acc_$1_sep])["]_CAIRO_SH_ESCAPE_UNQUOTED([$2]))dnl +])dnl + +dnl +dnl CAIRO_ACCUMULATE_UNQUOTED_UNCHECKED_BEFORE(VAR, VALUE) +dnl +dnl Like CAIRO_ACCUMULATE_UNQUOTED_BEFORE but VALUE is not tested for emptiness. +dnl +AC_DEFUN([CAIRO_ACCUMULATE_UNQUOTED_BEFORE], +[dnl + _CAIRO_ACCUMULATE([$1], [$2], [CAIRO_$1=]_CAIRO_SH_ESCAPE_UNQUOTED([$2])["]m4_do([cr_acc_$1_sep])[${CAIRO_$1}"])dnl +])dnl + +dnl +dnl CAIRO_ACCUMULATORS_FOREACH(VAR, COMMANDS) +dnl +dnl Run COMMANDS for each registered accumulator. +dnl Defines VAR to the accumulator being processed. +dnl +AC_DEFUN([CAIRO_ACCUMULATORS_FOREACH], +[dnl + m4_foreach_w([$1], _CAIRO_ACCUMULATORS, [$2])dnl +])dnl + + +dnl =========================================================================== + +m4_define([_CAIRO_ACCUMULATED_FEATURE_VARS])dnl + +dnl +dnl CAIRO_ACCUMULATED_FEATURE_VARS_REGISTER(VARS, DEFAULT-VALUE=[], SEPARATOR=[], INITIAL-VALUE=[]) +dnl +dnl Defines VARS as feature variables and accumulators. Also accumulates +dnl (prepending, not appending) feature values for VARS. +dnl +AC_DEFUN([CAIRO_ACCUMULATED_FEATURE_VARS_REGISTER], +[dnl + m4_foreach_w([cr_var], [$1], + [m4_append_uniq([_CAIRO_ACCUMULATED_FEATURE_VARS], cr_var, [ ],, + [m4_fatal([Accumulated feature variable `]cr_var[' already registered])])])dnl + CAIRO_FEATURE_VARS_REGISTER([$1],[$2])dnl + CAIRO_ACCUMULATORS_REGISTER_UNQUOTED([$1],[$3],[$4])dnl +])dnl + +dnl +dnl CAIRO_ACCUMULATED_FEATURE_VARS_FOREACH(VAR, COMMANDS) +dnl +dnl Run COMMANDS for each registered accumulated feature variable. +dnl Defines VAR to the variable being processed. +dnl +AC_DEFUN([CAIRO_ACCUMULATED_FEATURE_VARS_FOREACH], +[dnl + m4_foreach_w([$1], _CAIRO_ACCUMULATED_FEATURE_VARS, [$2])dnl +])dnl + +dnl =========================================================================== + +dnl +dnl CAIRO_FEATURE_IF_ENABLED(FEATURE=cr_feature, COMMANDS) +dnl +dnl Run COMMANDS if FEATURE is enabled. +dnl +AC_DEFUN([CAIRO_FEATURE_IF_ENABLED], +[dnl + AS_IF([test "x$use_]m4_default([$1], cr_feature)[" = xyes], [$2], [$3])dnl +])dnl + +m4_define([_CAIRO_FEATURE_HOOK_MATCH_SH_BOOL], +[dnl + m4_case([$1], + [*], [$3], + [no], [AS_IF([test "x$2" != xyes], [:m4_newline()$3])], + [yes], [AS_IF([test "x$2" = xyes], [:m4_newline()$3])], + [m4_fatal([Invalid ENABLED value `]$1['])])dnl +])dnl + +m4_define([_CAIRO_FEATURE_HOOK_MATCH_M4], +[dnl + m4_case([$1], + [*], [$3], + [$2], [$3], + [!$2], , + [m4_bmatch([$1], [^!], [$3])])dnl +])dnl + +m4_define([_CAIRO_FEATURE_HOOKS])dnl + +dnl +dnl CAIRO_FEATURE_HOOK_REGISTER(ENABLED, DEFAULT, WHAT, COMMANDS) +dnl +dnl ENABLED is the feature enabledness to match +dnl DEFAULT is the default value of features to match +dnl WHAT is the type of features to match +dnl COMMANDS is commands to run for matched features. +dnl +dnl Runs COMMANDS for features matching ENABLED, DEFAULT, and WHAT. +dnl Hooks are run for each feature in the order they are added. +dnl +dnl DEFAULT and WHAT are matched like this: +dnl [*] matches all values +dnl [val] matches [val] +dnl [!val] matches anything other than [val] +dnl +dnl ENABLED is matched like this: +dnl [yes] matches enabled features +dnl [no] matches disabled features +dnl [*] matches all features +dnl +dnl The following macros can be used in COMMANDS: +dnl +dnl cr_feature expands to the feature id, eg "ft" +dnl cr_feature_name expands to the human-readable name of the feature, eg. "FreeType font" +dnl cr_feature_default expands to the default state of the feature: +dnl "no" for experimental features, eg. your favorite new backend +dnl "yes" for recommended features, eg. png functions +dnl "auto" for other supported features, eg. xlib surface backend +dnl "always" for mandatory features (can't be disabled), eg. image surface backend +dnl cr_what expands to the type of feature: +dnl "surface" for surface backends +dnl "font" for font backends +dnl "functions" for set of functions +dnl "" for private configurations +dnl +dnl These four values are also set as $1 to $4. To know if feature was +dnl enabled from within COMMANDS, use CAIRO_FEATURE_IF_ENABLED: +dnl +dnl CAIRO_FEATURE_IF_ENABLED($1, [IF-ENABLED], [IF-DISABLED]) +dnl +dnl or compare $use_$1 to string "yes". As in: +dnl +dnl AS_IF([test "x$use_$1" = "xyes"], [IF-ENABLED], [IF-DISABLED]) +dnl +AC_DEFUN([CAIRO_FEATURE_HOOK_REGISTER], +[dnl + m4_append([_CAIRO_FEATURE_HOOKS], + [dnl + _CAIRO_FEATURE_HOOK_MATCH_M4([$2], cr_feature_default, + [_CAIRO_FEATURE_HOOK_MATCH_M4([$3], cr_feature_what, + [_CAIRO_FEATURE_HOOK_MATCH_SH_BOOL([$1], [$use_]cr_feature, + [$4] + )])])dnl + ], m4_newline)dnl +])dnl + diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.float.m4 b/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.float.m4 new file mode 100644 index 00000000000..8f85f0862ba --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.float.m4 @@ -0,0 +1,65 @@ +# AX_C_FLOAT_WORDS_BIGENDIAN ([ACTION-IF-TRUE], [ACTION-IF-FALSE], +# [ACTION-IF-UNKNOWN]) +# +# Checks the ordering of words within a multi-word float. This check +# is necessary because on some systems (e.g. certain ARM systems), the +# float word ordering can be different from the byte ordering. In a +# multi-word float context, "big-endian" implies that the word containing +# the sign bit is found in the memory location with the lowest address. +# This implemenation was inspired by the AC_C_BIGENDIAN macro in autoconf. +# ------------------------------------------------------------------------- +AC_DEFUN([AX_C_FLOAT_WORDS_BIGENDIAN], + [AC_CACHE_CHECK(whether float word ordering is bigendian, + ax_cv_c_float_words_bigendian, [ + +# The endianess is detected by first compiling C code that contains a special +# double float value, then grepping the resulting object file for certain +# strings of ascii values. The double is specially crafted to have a +# binary representation that corresponds with a simple string. In this +# implementation, the string "noonsees" was selected because the individual +# word values ("noon" and "sees") are palindromes, thus making this test +# byte-order agnostic. If grep finds the string "noonsees" in the object +# file, the target platform stores float words in big-endian order. If grep +# finds "seesnoon", float words are in little-endian order. If neither value +# is found, the user is instructed to specify the ordering. + +ax_cv_c_float_words_bigendian=unknown +AC_LINK_IFELSE([AC_LANG_SOURCE([[ + +double d __attribute__((used)) = 90904234967036810337470478905505011476211692735615632014797120844053488865816695273723469097858056257517020191247487429516932130503560650002327564517570778480236724525140520121371739201496540132640109977779420565776568942592.0; +int main() { return 0; } + +]])], [ + +if strings - conftest$ac_exeext | grep noonsees >/dev/null ; then + ax_cv_c_float_words_bigendian=yes +fi +if strings - conftest$ac_exeext | grep seesnoon >/dev/null ; then + if test "$ax_cv_c_float_words_bigendian" = unknown; then + ax_cv_c_float_words_bigendian=no + else + ax_cv_c_float_words_bigendian=unknown + fi +fi + +])]) + +case $ax_cv_c_float_words_bigendian in + yes) + m4_default([$1], + [AC_DEFINE([FLOAT_WORDS_BIGENDIAN], 1, + [Define to 1 if your system stores words within floats + with the most significant word first])]) ;; + no) + $2 ;; + *) + m4_default([$3], + [AC_MSG_ERROR([ + +Unknown float word ordering. You need to manually preset +ax_cv_c_float_words_bigendian=no (or yes) according to your system. + + ])]) ;; +esac + +])# AX_C_FLOAT_WORDS_BIGENDIAN diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.makefile.m4 b/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.makefile.m4 new file mode 100644 index 00000000000..70777810d14 --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.makefile.m4 @@ -0,0 +1,234 @@ +dnl +dnl These are the facilities for generating Makefile.am.features and +dnl Makefile.win32.features files. +dnl + +dnl =========================================================================== + +dnl +dnl Define cr_feature_tag ala other cr_feature_* macros +dnl Expands to CAIRO_HAS_FEATURE_ID +dnl +m4_define([_CAIRO_BUILD_FEATURE_TAG_NORMALIZED], + [CAIRO_HAS_[$1]m4_bmatch([$1],[$2$],,[$2])])dnl +m4_define([_CAIRO_BUILD_FEATURE_TAG], + [_CAIRO_BUILD_FEATURE_TAG_NORMALIZED(AS_TR_CPP([$1]),AS_TR_CPP(m4_ifval([$2],[ $2])))])dnl +m4_define([cr_feature_tag], + [_CAIRO_BUILD_FEATURE_TAG(cr_feature,cr_feature_what)])dnl + + +dnl =========================================================================== +dnl +dnl CAIRO_INIT_MAKEFILES([AUX-DIR]) +dnl +dnl Sets up automake and win32 conditionals for all features +dnl +AC_DEFUN([CAIRO_INIT_MAKEFILES], +[dnl + dnl Allow feature tags in the output + m4_pattern_allow(^CAIRO_HAS_)dnl + + dnl Automake conditionals for non-builtin features + CAIRO_FEATURE_HOOK_REGISTER(*,!always,*, + [dnl + AM_CONDITIONAL(cr_feature_tag, [test "x$use_]cr_feature[" = xyes])dnl + ])dnl + + CAIRO_CONFIG_MAKEFILE_PRIVATE_WIN32([_],[$1],[],[[# Generated by configure. Modify to customize.]])dnl + CAIRO_MAKEFILE_ACCUMULATE_FEATURE([_],*,!always,*,[cr_feature_tag=m4_if(cr_feature_default,[yes],1,[m4_bmatch(cr_feature,[win32],1,0)])])dnl +])dnl + +dnl =========================================================================== + +m4_define([_CAIRO_MAKEFILES])dnl + +dnl +dnl CAIRO_CONFIG_MAKEFILE(TAG, DIR, [SUFFIX], [HEADER]) +dnl +dnl Create DIR/Makefile.{am,win32}.SUFFIX files +dnl TAG is a TAG used by other CAIRO_MAKEFILE_* macros to append to these +dnl Makefile's. +dnl +dnl HEADER is appended at the top of the Makefile's. If HEADER is not +dnl set, the generic "Generated by configure. Do not edit." comment +dnl is added. +dnl +AC_DEFUN([CAIRO_CONFIG_MAKEFILE], +[dnl + m4_append_uniq([_CAIRO_MAKEFILES], [$1], [ ])dnl + CAIRO_CONFIG_MAKEFILE_PRIVATE([$1], [$2], [$3], [$4])dnl +])dnl + +dnl Like CAIRO_CONFIG_MAKEFILE but only generate win32 makefile +AC_DEFUN([CAIRO_CONFIG_MAKEFILE_WIN32], +[dnl + m4_append_uniq([_CAIRO_MAKEFILES], [$1], [ ])dnl + CAIRO_CONFIG_MAKEFILE_PRIVATE_WIN32([$1], [$2], [$3], [$4])dnl +])dnl + +dnl Like CAIRO_CONFIG_MAKEFILE but only generate automake makefile +AC_DEFUN([CAIRO_CONFIG_MAKEFILE_AMAKE], +[dnl + m4_append_uniq([_CAIRO_MAKEFILES], [$1], [ ])dnl + CAIRO_CONFIG_MAKEFILE_PRIVATE_AMAKE([$1], [$2], [$3], [$4])dnl +])dnl + +dnl +dnl CAIRO_CONFIG_MAKEFILE_PRIVATE(TAG, DIR, [SUFFIX], [HEADER]) +dnl +dnl Like CAIRO_CONFIG_MAKEFILE but this makefile tag won't match +dnl against '*' in makefile accumulators. +dnl +AC_DEFUN([CAIRO_CONFIG_MAKEFILE_PRIVATE], +[dnl + m4_ifdef([cr_make_$1_dir], + [m4_fatal([Makefile `$1' already registered])])dnl + m4_define([cr_make_$1_dir],[$2])dnl + + CAIRO_CONFIG_MAKEFILE_PRIVATE_AMAKE([$1], [$2], [$3], [$4])dnl + CAIRO_CONFIG_MAKEFILE_PRIVATE_WIN32([$1], [$2], [$3], [$4])dnl +])dnl + +dnl Like CAIRO_CONFIG_MAKEFILE_PRIVATE but only generate automake makefile +AC_DEFUN([CAIRO_CONFIG_MAKEFILE_PRIVATE_AMAKE], +[dnl + m4_ifdef([cr_make_$1_dir_amake], + [m4_fatal([Automake makefile `$1' already registered])])dnl + m4_define([cr_make_$1_dir_amake],[$2])dnl + m4_define([cr_make_$1_dir_any],[$2])dnl + + dnl Accumulators + CAIRO_ACCUMULATORS_REGISTER(MAKEFILE_$1_AMAKE, m4_newline, m4_default([$4],[[# Generated by configure. Do not edit.]])m4_newline)dnl + + dnl Generate + CAIRO_CONFIG_COMMANDS([$srcdir/]m4_if([$2],[.],,[$2/])[Makefile.am.]m4_default([$3],[features]), + [echo "$CAIRO_MAKEFILE_$1_AMAKE"], + [CAIRO_MAKEFILE_$1_AMAKE='$CAIRO_MAKEFILE_$1_AMAKE'])dnl +])dnl + +dnl Like CAIRO_CONFIG_MAKEFILE_PRIVATE but only generate win32 makefile +AC_DEFUN([CAIRO_CONFIG_MAKEFILE_PRIVATE_WIN32], +[dnl + m4_ifdef([cr_make_$1_dir_win32], + [m4_fatal([Win32 makefile `$1' already registered])])dnl + m4_define([cr_make_$1_dir_win32],[$2])dnl + m4_define([cr_make_$1_dir_any],[$2])dnl + + dnl Accumulators + CAIRO_ACCUMULATORS_REGISTER(MAKEFILE_$1_WIN32, m4_newline, m4_default([$4],[[# Generated by configure. Do not edit.]])m4_newline)dnl + + dnl Generate + CAIRO_CONFIG_COMMANDS([$srcdir/]m4_if([$2],[.],,[$2/])[Makefile.win32.]m4_default([$3],[features]), + [echo "$CAIRO_MAKEFILE_$1_WIN32"], + [CAIRO_MAKEFILE_$1_WIN32='$CAIRO_MAKEFILE_$1_WIN32'])dnl +])dnl + + +m4_define([_CAIRO_MAKEFILE_CHECK], +[dnl + m4_ifdef([cr_make_$1_dir_any],,[m4_fatal([Makefile `]$1[' not defined.])])dnl +])dnl + + +dnl +dnl CAIRO_MAKEFILE_INCLUDE(TAG, FILE) +dnl +dnl Include FILE from Makefile's for TAG. FILE should be placed +dnl relative to directory for TAG. If TAG is *, FILE is included from +dnl all Makefile's. +dnl +AC_DEFUN([CAIRO_MAKEFILE_INCLUDE], +[dnl + m4_if([$1],[*],,[_CAIRO_MAKEFILE_CHECK([$1])])dnl + m4_foreach_w([cr_makefile], m4_if([$1],[*],_CAIRO_MAKEFILES,[$1]), + [dnl + m4_ifdef([cr_make_]cr_makefile[_dir_amake],dnl + [CAIRO_ACCUMULATE([MAKEFILE_]cr_makefile[_AMAKE],[include $(top_srcdir)/cr_make_]cr_makefile[_dir_amake/$2]m4_newline)] + )dnl + m4_ifdef([cr_make_]cr_makefile[_dir_win32],dnl + [CAIRO_ACCUMULATE([MAKEFILE_]cr_makefile[_WIN32],[ifeq ($(top_srcdir),)]m4_newline[include $2]m4_newline[else]m4_newline[include $(top_srcdir)/cr_make_]cr_makefile[_dir_win32/$2]m4_newline[endif]m4_newline)] + )dnl + ])dnl +])dnl + + +m4_pattern_allow([cr_make_tmp]) + +dnl +dnl CAIRO_MAKEFILE_ACCUMULATE(TAG, CONTENT) +dnl +dnl Accumulates CONTENT to Makefile's for TAG. If TAG is *, +dnl CONTENT is added to all Makefile's. +dnl +AC_DEFUN([CAIRO_MAKEFILE_ACCUMULATE], +[dnl + m4_if([$1],[*],,[_CAIRO_MAKEFILE_CHECK([$1])])dnl + m4_foreach_w([cr_makefile], m4_if([$1],[*],_CAIRO_MAKEFILES,[$1]), + [dnl + m4_pushdef([cr_make_acc_contents],[$2])dnl + cr_make_tmp=_CAIRO_SH_ESCAPE(cr_make_acc_contents(cr_makefile)) + m4_popdef([cr_make_acc_contents])dnl + m4_ifdef([cr_make_]cr_makefile[_dir_amake],dnl + [CAIRO_ACCUMULATE_UNQUOTED_UNCHECKED([MAKEFILE_]cr_makefile[_AMAKE], [$cr_make_tmp])] + )dnl + m4_ifdef([cr_make_]cr_makefile[_dir_win32],dnl + [CAIRO_ACCUMULATE_UNQUOTED_UNCHECKED([MAKEFILE_]cr_makefile[_WIN32], [$cr_make_tmp])] + )dnl + ])dnl +])dnl + +m4_define([_CAIRO_MAKEFILE_ACCUMULATE_FEATURE], +[dnl + dnl Don't do a conditional for default=always features + m4_pushdef([cr_mk_acc_feat_enabled],m4_if([$2],[yes],[m4_if(cr_feature_default,[always],[*],[$2])],[$2]))dnl + m4_case(cr_mk_acc_feat_enabled, + [*],, + [yes], [CAIRO_ACCUMULATE([$1], [$3])], + [no], [CAIRO_ACCUMULATE([$1], [$3]m4_newline[$4])], + [m4_fatal([Invalid ENABLED value `]$2['])])dnl + CAIRO_ACCUMULATE_UNQUOTED_UNCHECKED([$1], [$6])dnl + m4_case(cr_mk_acc_feat_enabled, + [*],, + [yes], [CAIRO_ACCUMULATE([$1], [$5])], + [no], [CAIRO_ACCUMULATE([$1], [$5])], + [m4_fatal([Invalid ENABLED value `]$2['])])dnl + m4_popdef([cr_mk_acc_feat_enabled])dnl +])dnl + +dnl +dnl CAIRO_MAKEFILE_ACCUMULATE_FEATURE(TAG, ENABLED, DEFAULT, WHAT, CONTENT) +dnl +dnl Accumulates CONTENT to Makefile's for TAG for each feature matching +dnl ENABLED, DEFAULT, and WHAT. Those parameters are similar to those +dnl passed to CAIRO_FEATURE_HOOK_REGISTER. +dnl If TAG is *, CONTENT is added to all Makefile's. +dnl +AC_DEFUN([CAIRO_MAKEFILE_ACCUMULATE_FEATURE], +[dnl + m4_if([$1],[*],,[_CAIRO_MAKEFILE_CHECK([$1])])dnl + m4_append([cr_make_acc_counter],[1],[])dnl + m4_define([cr_make_acc_contents]m4_len(cr_make_acc_counter), [$5])dnl + CAIRO_FEATURE_HOOK_REGISTER(*,[$3],[$4], + [dnl + m4_foreach_w([cr_makefile], m4_if([$1],[*],_CAIRO_MAKEFILES,[$1]), + [dnl + cr_make_tmp=_CAIRO_SH_ESCAPE(cr_make_acc_contents]]m4_len(cr_make_acc_counter)([[cr_makefile,]][$][1],[$][2],[$][3],[$][4])[[) + m4_ifdef([cr_make_]cr_makefile[_dir_amake], + [_CAIRO_MAKEFILE_ACCUMULATE_FEATURE( + [MAKEFILE_]cr_makefile[_AMAKE], + [$2], + [if ]cr_feature_tag, [else], [endif], + [$cr_make_tmp]) + ])dnl + m4_ifdef([cr_make_]cr_makefile[_dir_win32], + [_CAIRO_MAKEFILE_ACCUMULATE_FEATURE( + [MAKEFILE_]cr_makefile[_WIN32], + [$2], + [ifeq ($(]cr_feature_tag[),1)], [else], [endif], + [$cr_make_tmp])dnl + ])dnl + ])dnl + ])dnl +])dnl + +m4_define([cr_make_acc_counter])dnl diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.pkg.m4 b/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.pkg.m4 new file mode 100644 index 00000000000..cf90a967880 --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/aclocal.pkg.m4 @@ -0,0 +1,157 @@ +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# +# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi + +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# +# Similar to PKG_CHECK_MODULES, make sure that the first instance of +# this or PKG_CHECK_MODULES is called, or make sure to call +# PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_ifval([$2], [$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# ACTION-IF-NOT-FOUND is not allowed to be empty, that trigger PKG_CONFIG_PATH error message. +# Use : or set a dummy variable to avoid that behavior. +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + ifelse([$4], , [AC_MSG_ERROR(dnl +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT +])], + [AC_MSG_RESULT([no]) + $4]) +elif test $pkg_failed = untried; then + ifelse([$4], , [AC_MSG_FAILURE(dnl +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see <http://pkg-config.freedesktop.org/>.])], + [$4]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + ifelse([$3], , :, [$3]) +fi[]dnl +])# PKG_CHECK_MODULES diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.analysis b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.analysis new file mode 100644 index 00000000000..11c52e70d6e --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.analysis @@ -0,0 +1,106 @@ +dnl =========================================================================== +dnl +dnl LCOV +dnl +cairo_has_lcov=no +AC_ARG_ENABLE(gcov, + AS_HELP_STRING([--enable-gcov], + [Enable gcov]), + [use_gcov=$enableval], [use_gcov=no]) + +if test "x$use_gcov" = "xyes"; then + dnl we need gcc: + if test "$GCC" != "yes"; then + AC_MSG_ERROR([GCC is required for --enable-gcov]) + fi + + dnl Check if ccache is being used + AC_CHECK_PROG(SHTOOL, shtool, shtool) + case `$SHTOOL path $CC` in + *ccache*[)] gcc_ccache=yes;; + *[)] gcc_ccache=no;; + esac + + if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then + AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.]) + fi + + ltp_version_list="1.7 1.6 1.5 1.4" + AC_CHECK_PROG(LTP, lcov, lcov) + AC_CHECK_PROG(LTP_GENHTML, genhtml, genhtml) + + if test "$LTP"; then + AC_CACHE_CHECK([for ltp version], cairo_cv_ltp_version, [ + cairo_cv_ltp_version=invalid + ltp_version=`$LTP -v 2>/dev/null | $SED -e 's/^.* //'` + for ltp_check_version in $ltp_version_list; do + if test "$ltp_version" = "$ltp_check_version"; then + cairo_cv_ltp_version="$ltp_check_version (ok)" + fi + done + ]) + fi + + case $cairo_cv_ltp_version in + ""|invalid[)] + ;; + *) + cairo_has_lcov=yes + ;; + esac + + if test "x$cairo_has_lcov" != "xyes"; then + AC_MSG_ERROR([[To enable code coverage reporting you must have one of the following LTP versions installed: $ltp_version_list. +Please install the Linux Test Project [http://ltp.sourceforge.net/], and try again.]]) + fi + + if test -z "$LTP_GENHTML"; then + AC_MSG_ERROR([[Could not find genhtml from the LTP package. +Please install the Linux Test Project [http://ltp.sourceforge.net/], and try again.]]) + fi + + AC_DEFINE(HAVE_GCOV, 1, [Whether you have gcov]) +dnl PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/Makefile.gcov, $abs_srcdir) + + dnl Remove all optimization flags from CFLAGS + changequote({,}) + CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9]*//g'` + CAIRO_CFLAGS=`echo "$CAIRO_CFLAGS" | $SED -e 's/-O[0-9]*//g'` + changequote([,]) + + dnl Add the special gcc flags + dnl In order to workaround a debian bug in libtool where they strip + dnl $dependency_libs from the link line and CFLAGS, we need to pass + dnl --coverage via LDFLAGS. + CAIRO_CC_TRY_FLAG([--coverage],, + [ + CAIRO_CFLAGS="$CAIRO_CFLAGS -O0 --coverage" + CAIRO_LDFLAGS="$CAIRO_LDFLAGS -O0 --coverage" + ]) +fi +AM_CONDITIONAL(CAIRO_HAS_LCOV, test "x$cairo_has_lcov" = "xyes") + +dnl =========================================================================== +dnl Check for some custom valgrind modules +AC_ARG_ENABLE(valgrind, + AS_HELP_STRING([--disable-valgrind], + [Disable valgrind support]), + [use_valgrind=$enableval], [use_valgrind=yes]) + +if test "x$use_valgrind" = "xyes"; then + PKG_CHECK_MODULES(VALGRIND, valgrind, [ + _save_CFLAGS="$CFLAGS" + _save_CPPFLAGS="$CPPFLAGS" + CFLAGS="$CFLAGS $VALGRIND_CFLAGS" + CPPFLAGS="$CPPFLAGS $VALGRIND_CFLAGS" + AC_CHECK_HEADER([valgrind.h], [AC_DEFINE([HAVE_VALGRIND], [1], + [Define to 1 if you have Valgrind])]) + AC_CHECK_HEADER([lockdep.h], [AC_DEFINE([HAVE_LOCKDEP], [1], + [Define to 1 if you have the Valgrind lockdep tool])]) + AC_CHECK_HEADER([memfault.h], [AC_DEFINE([HAVE_MEMFAULT], [1], + [Define to 1 if you have the Valgrind memfault tool])]) + CAIRO_CFLAGS="$VALGRIND_CFLAGS $CAIRO_CFLAGS" + CFLAGS="$_save_CFLAGS" + CPPFLAGS="$_save_CPPFLAGS" + ], AC_MSG_RESULT(no)) +fi diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.features b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.features new file mode 100644 index 00000000000..e4a2aafcc82 --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.features @@ -0,0 +1,427 @@ + +dnl +dnl Define macros to enable various features. +dnl - Macro: CAIRO_ENABLE_* (ID, NAME, DEFAULT, COMMANDS) +dnl +dnl where: +dnl +dnl ID is the feature id, eg. "ft" for cairo_ft_... +dnl NAME is the human-readable name of the feature, eg. "FreeType" +dnl DEFAULT is the default state of the feature: +dnl "no" for experimental backends, eg. your favorite new backend +dnl "yes" for mandatory backends, eg. png +dnl "auto" for other supported backends, eg. xlib +dnl COMMANDS are run to check whether the feature can be enabled. Their +dnl result may be cached, so user should not count on them being run. +dnl They should set use_$(ID) to something other than yes if the +dnl feature cannot be built, eg. "no (requires SomeThing)". It then +dnl should also set $(ID)_REQUIRES/CFLAGS/LIBS/... +dnl appropriately. Look at the macro definition for more details, +dnl or ask if in doubt. +dnl + +AC_DEFUN([CAIRO_ENABLE], + [_CAIRO_ENABLE([$1], [$2], , [$3],[$4])])dnl + +AC_DEFUN([CAIRO_ENABLE_SURFACE_BACKEND], + [_CAIRO_ENABLE([$1], [$2 surface backend], surface, [$3],[$4])])dnl + +AC_DEFUN([CAIRO_ENABLE_FONT_BACKEND], + [_CAIRO_ENABLE([$1], [$2 font backend], font, [$3],[$4])])dnl + +AC_DEFUN([CAIRO_ENABLE_FUNCTIONS], + [_CAIRO_ENABLE([$1], [$2 functions], functions, [$3],[$4])])dnl + + +dnl +dnl Define cr_feature_pc and friends ala other cr_feature_* macros +dnl +m4_define([cr_pc_modname], + [[cairo-]m4_translit([$1],_,-)])dnl +m4_define([cr_feature_pc], + [cr_pc_modname(cr_feature)[.pc]])dnl +m4_define([cr_feature_uninstalled_pc], + [cr_pc_modname(cr_feature)[-uninstalled.pc]])dnl + + +dnl =========================================================================== +dnl +dnl Hooks +dnl +dnl =========================================================================== + + +dnl =========================================================================== +dnl +dnl Generate {src,boilerplate}/Makefile.{am,win32}.config +dnl + +CAIRO_INIT_MAKEFILES([build]) +CAIRO_CONFIG_MAKEFILE([cairo], [src])dnl +CAIRO_CONFIG_MAKEFILE([cairo_boilerplate], [boilerplate])dnl +CAIRO_MAKEFILE_INCLUDE(*,[Makefile.sources])dnl +dnl An empty line per feature for readability +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,*,*,*,[])dnl + + +dnl Collect list of all supported public headers +CAIRO_MAKEFILE_ACCUMULATE(*, +[supported_$1_headers = $($1_headers)]dnl +)dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,*,!no,!, +[supported_$1_headers += $($1_$2_headers)]dnl +)dnl + +dnl Collect list of all unsupported public headers +CAIRO_MAKEFILE_ACCUMULATE(*, +[unsupported_$1_headers =]dnl +)dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,*,no,!, +[unsupported_$1_headers += $($1_$2_headers)]dnl +)dnl + +dnl Collect list of source files for all public features +CAIRO_MAKEFILE_ACCUMULATE(*, +[dnl +all_$1_headers = $($1_headers) +all_$1_private = $($1_private) +all_$1_cxx_sources = $($1_cxx_sources) +all_$1_sources = $($1_sources) +])dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,*,*,!, +[dnl +all_$1_headers += $($1_$2_headers) +all_$1_private += $($1_$2_private) +all_$1_cxx_sources += $($1_$2_cxx_sources) +all_$1_sources += $($1_$2_sources)]dnl +)dnl + +dnl Collect list of source files for enabled public features +CAIRO_MAKEFILE_ACCUMULATE(*, +[dnl +enabled_$1_headers = $($1_headers) +enabled_$1_private = $($1_private) +enabled_$1_cxx_sources = $($1_cxx_sources) +enabled_$1_sources = $($1_sources) +])dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,yes,*,!, +[dnl +enabled_$1_headers += $($1_$2_headers) +enabled_$1_private += $($1_$2_private) +enabled_$1_cxx_sources += $($1_$2_cxx_sources) +enabled_$1_sources += $($1_$2_sources)]dnl +)dnl + +dnl No public headers for private features + +dnl Collect list of source files for all private features +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,*,*,, +[dnl +all_$1_private += $($1_$2_private) $($1_$2_headers) +all_$1_cxx_sources += $($1_$2_cxx_sources) +all_$1_sources += $($1_$2_sources)]dnl +)dnl + +dnl Collect list of source files for enabled private features +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,yes,*,, +[dnl +enabled_$1_private += $($1_$2_private) $($1_$2_headers) +enabled_$1_cxx_sources += $($1_$2_cxx_sources) +enabled_$1_sources += $($1_$2_sources)]dnl +)dnl + + +dnl =========================================================================== +dnl +dnl Generate .pc files +dnl + +dnl All .pc files are generated automatically except for this one +AC_CONFIG_FILES([src/cairo.pc])dnl +AC_CONFIG_FILES([cairo-uninstalled.pc:src/cairo-uninstalled.pc.in])dnl + +dnl pkg-config requires, non-pkgconfig cflags and libs, and total cflags and libs +CAIRO_FEATURE_VARS_REGISTER([BASE],[cairo])dnl +CAIRO_ACCUMULATED_FEATURE_VARS_REGISTER([REQUIRES],,[ ])dnl +CAIRO_ACCUMULATED_FEATURE_VARS_REGISTER([CFLAGS NONPKGCONFIG_CFLAGS],,[ ])dnl +CAIRO_ACCUMULATED_FEATURE_VARS_REGISTER([LIBS NONPKGCONFIG_LIBS],,[ ],[$LIBS])dnl +CAIRO_FEATURE_VARS_REGISTER([NONPKGCONFIG_EXTRA_LIBS])dnl +AC_SUBST(CAIRO_REQUIRES)dnl +AC_SUBST(CAIRO_CFLAGS)dnl +AC_SUBST(CAIRO_LDFLAGS)dnl +AC_SUBST(CAIRO_NONPKGCONFIG_CFLAGS)dnl +AC_SUBST(CAIRO_LIBS)dnl +AC_SUBST(CAIRO_NONPKGCONFIG_LIBS)dnl + +dnl add non-pkgconfig values +AC_CONFIG_COMMANDS_PRE( +[dnl +CAIRO_CFLAGS="$CAIRO_CFLAGS $CAIRO_NONPKGCONFIG_CFLAGS" +CAIRO_LIBS="$CAIRO_LIBS $CAIRO_NONPKGCONFIG_LIBS" +])dnl + +m4_define([_CAIRO_FEATURE_CONFIG_PKGCONFIG_FILE], +[dnl + AC_CONFIG_FILES([$3:$4], + [dnl + mv "$3" "$3.tmp" && + $SED "dnl + s%@FEATURE_PC@%]cr_pc_modname([$1])[%g;dnl + s%@FEATURE_NAME@%$2%g;dnl + s%@FEATURE_BASE@%$$1_BASE%g;dnl + s%@FEATURE_REQUIRES@%$$1_REQUIRES%g;dnl + s%@FEATURE_NONPKGCONFIG_LIBS@%$$1_NONPKGCONFIG_LIBS%g;dnl + s%@FEATURE_NONPKGCONFIG_EXTRA_LIBS@%$$1_NONPKGCONFIG_EXTRA_LIBS%g;dnl + s%@FEATURE_NONPKGCONFIG_CFLAGS@%$$1_NONPKGCONFIG_CFLAGS%g;dnl + " < "$3.tmp" > "$3" && rm -f "$3.tmp" || + AC_MSG_ERROR(failed to update $3) + ],[dnl + SED='$SED' + $1_BASE='$$1_BASE' + $1_REQUIRES='$$1_REQUIRES' + $1_NONPKGCONFIG_LIBS='$$1_NONPKGCONFIG_LIBS' + $1_NONPKGCONFIG_EXTRA_LIBS='$$1_NONPKGCONFIG_EXTRA_LIBS' + $1_NONPKGCONFIG_CFLAGS='$$1_NONPKGCONFIG_CFLAGS' + ])dnl +])dnl + +dnl Generate .pc files for enabled non-builtin public features +CAIRO_FEATURE_HOOK_REGISTER(yes,!always,!, +[dnl + _CAIRO_FEATURE_CONFIG_PKGCONFIG_FILE( + [$1], + cr_feature_name, + [src/]cr_feature_pc, + [src/cairo-features.pc.in] + )dnl +])dnl + +dnl Generate -uninstalled.pc files for enabled non-builtin public features +CAIRO_FEATURE_HOOK_REGISTER(yes,!always,!, +[dnl + _CAIRO_FEATURE_CONFIG_PKGCONFIG_FILE( + [$1], + cr_feature_name, + cr_feature_uninstalled_pc, + [src/cairo-features-uninstalled.pc.in] + )dnl +])dnl + + +dnl Collect list of .pc files for all non-builtin public features +CAIRO_MAKEFILE_ACCUMULATE(cairo, +[all_$1_pkgconf = cairo.pc])dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(cairo,*,!always,!, +[all_$1_pkgconf += cr_feature_pc])dnl + +dnl Collect list of .pc files for enabled non-builtin public features +CAIRO_MAKEFILE_ACCUMULATE(cairo, +[enabled_$1_pkgconf = cairo.pc])dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE(cairo,yes,!always,!, +[enabled_$1_pkgconf += cr_feature_pc])dnl + + +dnl =========================================================================== +dnl +dnl Generate src/cairo-features.h, src/cairo-supported-features.h, and +dnl src/cairo-features-win32.h +dnl + +dnl Collect list of enabled public features +CAIRO_ACCUMULATORS_REGISTER(FEATURES,[ ])dnl +CAIRO_FEATURE_HOOK_REGISTER(yes,*,!,dnl +[dnl + CAIRO_ACCUMULATE(FEATURES, cr_feature_tag)dnl +])dnl +dnl Collect list of all supported public features +CAIRO_ACCUMULATORS_REGISTER(SUPPORTED_FEATURES,[ ])dnl +CAIRO_FEATURE_HOOK_REGISTER(*,!no,!,dnl +[dnl + CAIRO_ACCUMULATE(SUPPORTED_FEATURES, cr_feature_tag) +])dnl +dnl Collect list of all supported disabled public features +CAIRO_ACCUMULATORS_REGISTER(NO_FEATURES,[ ])dnl +CAIRO_FEATURE_HOOK_REGISTER(no,!no,!, +[dnl + CAIRO_ACCUMULATE(NO_FEATURES, cr_feature_tag) +])dnl + +dnl Generate src/cairo-features.h +CAIRO_CONFIG_COMMANDS([src/cairo-features.h], +[dnl + echo '/* Generated by configure. Do not edit. */' + echo '#ifndef CAIRO_FEATURES_H' + echo '#define CAIRO_FEATURES_H' + echo '' + for FEATURE in $CAIRO_FEATURES; do + echo "#define $FEATURE 1" + done | LANG=C sort + echo '' + for FEATURE in $CAIRO_NO_FEATURES; do + echo "/*#undef $FEATURE */" + done | LANG=C sort + echo '' + echo '#endif' +],[dnl + CAIRO_FEATURES='$CAIRO_FEATURES' + CAIRO_NO_FEATURES='$CAIRO_NO_FEATURES' +])dnl +dnl Generate src/cairo-supported-features.h +CAIRO_CONFIG_COMMANDS([src/cairo-supported-features.h], +[dnl + echo '/* Generated by configure. Do not edit. */' + echo '#ifndef CAIRO_SUPPORTED_FEATURES_H' + echo '#define CAIRO_SUPPORTED_FEATURES_H' + echo '' + echo '/* This is a dummy header, to trick gtk-doc only */' + echo '' + for FEATURE in $CAIRO_SUPPORTED_FEATURES; do + echo "#define $FEATURE 1" + done + echo '' + echo '#endif' +],[dnl + CAIRO_SUPPORTED_FEATURES='$CAIRO_SUPPORTED_FEATURES' +])dnl + +dnl For enabled private features just define them in config.h. No fanfare! +CAIRO_FEATURE_HOOK_REGISTER(yes,*,, +[dnl + AC_DEFINE(cr_feature_tag, 1, [Define to 1 to enable cairo's ]cr_feature_name[ feature]) +])dnl + + +dnl Generate build/Makefile.win32.features-h that generates src/cairo-features.h +CAIRO_CONFIG_MAKEFILE_PRIVATE_WIN32([win32_features_h],[build],[features-h]) +dnl +CAIRO_MAKEFILE_ACCUMULATE([win32_features_h], +[$(top_srcdir)/src/cairo-features.h: $(top_srcdir)/build/Makefile.win32.features + @echo "Generating src/cairo-features.h" + @echo "/* Generated by Makefile.win32.features-h. Do not edit. */" > $(top_srcdir)/src/cairo-features.h + @echo "[#]ifndef CAIRO_FEATURES_H" >> $(top_srcdir)/src/cairo-features.h + @echo "[#]define CAIRO_FEATURES_H 1" >> $(top_srcdir)/src/cairo-features.h]dnl +) +AC_CONFIG_COMMANDS_PRE( +[dnl + CAIRO_MAKEFILE_ACCUMULATE([win32_features_h], [ @echo "[#]endif" >> $(top_srcdir)/src/cairo-features.h]) +])dnl +CAIRO_MAKEFILE_ACCUMULATE_FEATURE([win32_features_h],yes,*,*,dnl +[ @echo "[#]define cr_feature_tag 1" >> $(top_srcdir)/src/cairo-features.h]dnl +)dnl + + +dnl =========================================================================== +dnl +dnl Report +dnl + +CAIRO_ACCUMULATORS_REGISTER([WARNING_MESSAGE],m4_newline()m4_newline)dnl + +dnl Collect warning message for enabled unsupported public features +CAIRO_FEATURE_HOOK_REGISTER(yes,no,!, +[dnl + CAIRO_ACCUMULATE([WARNING_MESSAGE], CAIRO_TEXT_WRAP([The ]cr_feature_name[ feature is still under active development and is included in this release only as a preview. It does NOT fully work yet and incompatible changes may yet be made to ]cr_feature_name[ specific API.], [--- ])) +])dnl + +dnl Collect warning message for disabled recommended features +CAIRO_FEATURE_HOOK_REGISTER(no,yes,*, +[dnl + CAIRO_ACCUMULATE([WARNING_MESSAGE], CAIRO_TEXT_WRAP([It is strongly recommended that you do NOT disable the ]cr_feature_name[ feature.], [+++ ])) +])dnl + + +dnl Collect enabled native surface/font backend features +CAIRO_ACCUMULATORS_REGISTER([NATIVE_SURFACE_BACKENDS])dnl +CAIRO_ACCUMULATORS_REGISTER([NATIVE_FONT_BACKENDS])dnl +CAIRO_FEATURE_HOOK_REGISTER(yes,auto,surface, +[dnl + CAIRO_ACCUMULATE([NATIVE_SURFACE_BACKENDS], [$1]) +])dnl +CAIRO_FEATURE_HOOK_REGISTER(yes,auto,font, +[dnl + CAIRO_ACCUMULATE([NATIVE_FONT_BACKENDS], [$1]) +])dnl + +dnl Collect warning message if no native surface/font backend feature enabled +AC_CONFIG_COMMANDS_PRE(dnl +[dnl + AS_IF([test -z "$CAIRO_NATIVE_SURFACE_BACKENDS"],dnl + [dnl + CAIRO_ACCUMULATE([WARNING_MESSAGE], CAIRO_TEXT_WRAP([No native surface backends enabled for your platform. It is strongly recommended that you enable the native surface backend feature for your platform.], [*** ])) + ]) + AS_IF([test -z "$CAIRO_NATIVE_FONT_BACKENDS"],dnl + [dnl + CAIRO_ACCUMULATE([WARNING_MESSAGE], CAIRO_TEXT_WRAP([No native font backends enabled for your platform. It is strongly recommended that you enable the native font backend feature for your platform.], [*** ])) + ]) +])dnl + + +AC_DEFUN([CAIRO_REPORT], +[dnl + V="$CAIRO_VERSION_MAJOR.$CAIRO_VERSION_MINOR.$CAIRO_VERSION_MICRO" + echo "" + echo "cairo (version $V [[$CAIRO_RELEASE_STATUS]]) will be compiled with:" + echo "" + echo "The following surface backends:" + echo " Image: yes (always builtin)" + echo " Recording: yes (always builtin)" + echo " Observer: yes (always builtin)" + echo " Mime: yes (always builtin)" + echo " Tee: $use_tee" + echo " XML: $use_xml" + echo " Skia: $use_skia" + echo " Xlib: $use_xlib" + echo " Xlib Xrender: $use_xlib_xrender" + echo " Qt: $use_qt" + echo " Quartz: $use_quartz" + echo " Quartz-image: $use_quartz_image" + echo " XCB: $use_xcb" + echo " Win32: $use_win32" + echo " OS2: $use_os2" + echo " CairoScript: $use_script" + echo " PostScript: $use_ps" + echo " PDF: $use_pdf" + echo " SVG: $use_svg" + echo " OpenGL: $use_gl" + echo " OpenGL ES 2.0: $use_glesv2" + echo " BeOS: $use_beos" + echo " DirectFB: $use_directfb" + echo " OpenVG: $use_vg" + echo " DRM: $use_drm" + echo " Cogl: $use_cogl" + echo "" + echo "The following font backends:" + echo " User: yes (always builtin)" + echo " FreeType: $use_ft" + echo " Fontconfig: $use_fc" + echo " Win32: $use_win32_font" + echo " Quartz: $use_quartz_font" + echo "" + echo "The following functions:" + echo " PNG functions: $use_png" + echo " GLX functions: $use_glx" + echo " WGL functions: $use_wgl" + echo " EGL functions: $use_egl" + echo " X11-xcb functions: $use_xlib_xcb" + echo " XCB-shm functions: $use_xcb_shm" + echo "" + echo "The following features and utilities:" + echo " cairo-trace: $use_trace" + echo " cairo-script-interpreter: $use_interpreter" + echo "" + echo "And the following internal features:" + echo " pthread: $use_pthread" + echo " gtk-doc: $enable_gtk_doc" + echo " gcov support: $use_gcov" + echo " symbol-lookup: $use_symbol_lookup" + echo " test surfaces: $use_test_surfaces" + echo " ps testing: $test_ps" + echo " pdf testing: $test_pdf" + echo " svg testing: $test_svg" + if test x"$use_win32" = "xyes"; then + echo " win32 printing testing: $test_win32_printing" + fi + echo "$CAIRO_WARNING_MESSAGE" + echo "" +])dnl + diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.noversion b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.noversion new file mode 100644 index 00000000000..18c4bd5f7ae --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.noversion @@ -0,0 +1,23 @@ +dnl +dnl Version stuff +dnl + +dnl Disable autoconf's version macros. We try hard to not rebuild the entire +dnl library just because version changed. The PACKAGE_VERSION* stuff in +dnl config.h is negating all the effort. +dnl +dnl We're not actually supposed to be doing this, and indeed adding the +dnl AC_DEFINEs below causes confdefs.h to contain duplicate incompatible +dnl #defines for the same PACKAGE_* symbols. Those are provoking warnings +dnl from the compiler, and that throws our CAIRO_TRY_LINK_*_ checks off, +dnl because they think that there's something wrong with some flag they're +dnl testing rather than confdefs.h! So let's do the gross thing and puke +dnl into confdefs.h some #undefs. +echo '#undef PACKAGE_VERSION' >>confdefs.h +echo '#undef PACKAGE_STRING' >>confdefs.h +echo '#undef PACKAGE_NAME' >>confdefs.h +echo '#undef PACKAGE_TARNAME' >>confdefs.h +AC_DEFINE(PACKAGE_VERSION, [USE_cairo_version_OR_cairo_version_string_INSTEAD]) +AC_DEFINE(PACKAGE_STRING, [USE_cairo_version_OR_cairo_version_string_INSTEAD]) +AC_DEFINE(PACKAGE_NAME, [USE_cairo_INSTEAD]) +AC_DEFINE(PACKAGE_TARNAME, [USE_cairo_INSTEAD]) diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.pthread b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.pthread new file mode 100644 index 00000000000..29c930da932 --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.pthread @@ -0,0 +1,253 @@ +dnl Defines the macro CAIRO_CONFIGURE_PTHREAD to find a suitable +dnl pthread implementation. There are two levels of pthread conformance +dnl we are looking for: +dnl +dnl a) A minimal level denoted by -DCAIRO_HAS_PTHREAD=1: This level +dnl requires mutex and recursive mutexattr support. If possible we try +dnl to use weakly linked stubs from libc over the real pthread library. +dnl This level is required by the cairo library proper. If the user +dnl invokes configure with --enable-pthread=yes or +dnl --enable-pthread=always then we avoid trying to use weak stubs. +dnl +dnl b) A full level denoted by -DCAIRO_HAS_REAL_PTHREAD=1: This level +dnl requires full support from a real pthread library, including thread +dnl creation, joins, thread attribtues, etc. This level is required by +dnl multithreaded applications using cairo, such as the test suite +dnl binaries and cairo utilities. +dnl +dnl Usage: +dnl CAIRO_ENABLE(pthread, pthread, <default yes|no|auto|always>, +dnl [CAIRO_CONFIGURE_PTHREAD]) +dnl +dnl This should be invoked near the end of configure.ac so that +dnl the pthread specific CFLAGS and LIBS end up at the front +dnl of CAIRO_CFLAGS and CAIRO_LIBS -- this helps ensure that we +dnl really do get non-weak symbols from the actual pthread library +dnl rather than possible stubs in other libraries. +dnl +dnl The user can override the choices made by +dnl CAIRO_CONFIGURE_PTHREAD by using --enable-pthread=yes and +dnl giving PTHREAD_CFLAGS and PTHREAD_LIBS to configure. +dnl +dnl Sets environment variables: +dnl use_pthread="yes" | "no (<errmsg>)" +dnl have_pthread="yes" | "no (<errmsg)" +dnl have_real_pthread="yes" | "no (<errmsg)" +dnl pthread_{CFLAGS,LIBS,REQUIRES} +dnl real_pthread_{CFLAGS,LIBS} +dnl +dnl Autoconfigured defines in config.h (conditional): +dnl CAIRO_HAS_PTHREAD +dnl CAIRO_HAS_REAL_PTHREAD +dnl + +dnl ----------------------------------------------------------------------- +dnl A program to test all the pthread features we need to be able to +dnl compile libcairo itself. We could test the features independently, +dnl but we need all of them anyway. +m4_define([libcairo_pthread_program],[dnl +#ifndef _GNU_SOURCE +#define _GNU_SOURCE /* for PTHREAD_MUTEX_INITIALIZER under linux */ +#endif +#include <pthread.h> + +pthread_mutex_t test_mutex_initializer = PTHREAD_MUTEX_INITIALIZER; +int test_mutex (void) +{ + int x = 0; + pthread_mutex_t mutex; + x |= pthread_mutex_init (&mutex, NULL); + x |= pthread_mutex_lock (&mutex); + x |= pthread_mutex_unlock (&mutex); + x |= pthread_mutex_destroy (&mutex); + return 0; +} + +int test_mutex_attr (void) +{ + int x = 0; + pthread_mutexattr_t attr; + pthread_mutex_t mutex; + x |= pthread_mutexattr_init (&attr); + x |= pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE); + x |= pthread_mutex_init (&mutex, &attr); + x |= pthread_mutex_lock (&mutex); + x |= pthread_mutex_unlock (&mutex); + x |= pthread_mutex_destroy (&mutex); + x |= pthread_mutexattr_destroy (&attr); + return x; +}]) + +dnl ----------------------------------------------------------------------- +dnl A program to test all the features we want to be able to run the test +dnl suite or other thready cairo applications that want real threads. +m4_define([testsuite_pthread_program],[dnl +libcairo_pthread_program + +pthread_once_t once_control = PTHREAD_ONCE_INIT; +void test_once_init (void) {} +int test_once (void) +{ + return pthread_once (&once_control, test_once_init); +} + +pthread_key_t test_specific_key; +int test_specific (void) +{ + int x = 0; + x |= pthread_key_create (&test_specific_key, NULL); + x |= pthread_setspecific (test_specific_key, NULL); + x |= pthread_getspecific (test_specific_key) != NULL; + return x; +} + +void cleaner (void *arg) { (void)arg; } + +void * +test_thread_main (void *arg) +{ + pthread_cleanup_push (cleaner, arg); + pthread_exit (arg); + pthread_cleanup_pop (1); + return arg; +} + +int +test_threads (void) +{ + int x = 0; + pthread_t thread; + pthread_attr_t attr; + void *arg = NULL; + x |= pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED); + x |= pthread_create (&thread, &attr, test_thread_main, arg); + x |= pthread_equal (pthread_self(), thread); + x |= pthread_join (thread, &arg); + x |= pthread_attr_destroy (&attr); + return x; +}]) + +dnl ----------------------------------------------------------------------- + +dnl CAIRO_CHECK_PTHREAD(tag, cflags, libs, program, true-action, false-action) +dnl Set <tag>_{CFLAGS,LIBS} to {<cflags>,<libs>} if we can compile and link +dnl <program> with the given flags and libs. Execute <true-action> on +dnl success and <false-action> on failure. +AC_DEFUN([CAIRO_CHECK_PTHREAD],[dnl + CAIRO_CC_TRY_LINK_WITH_ENV_SILENT( + [CFLAGS="$CFLAGS $2"; + LIBS="$LIBS $3"], + [$4], + [$1_CFLAGS="$2"; + $1_LIBS="$3"; + $5], + [$1_CFLAGS=""; + $1_LIBS=""; + $6]) +]) + +dnl CAIRO_CONFIGURE_PTHREADS(): Look for pthreads. +dnl +dnl If the user specifies PTHREAD_CFLAGS and PTHREAD_LIBS then we use +dnl those. Otherwise we try CFLAGS=-D_REENTRANT and LIBS=-lpthread for +dnl full pthread support, and look for stubs in libc for the minimal +dnl pthread support. +dnl +dnl CFLAGS=-D_REENTRANT LIBS=-lpthread has been tested to work on: +dnl +dnl Solaris 9 (5.9) Sun C 5.8 Patch 121015-04 2007/01/10 +dnl OpenSolaris (5.11) Sun C 5.9 Patch 124868-08 2008/11/25 +dnl OpenSolaris (5.11) clang version 1.1 (trunk 90017) +dnl Tru64/OSF1 V5.1 Compaq C V6.5-003 +dnl Mac OS X 10.5.5 gcc 4.0.1 (Apple Inc. build 5465) +dnl Mac OS X 10.6 gcc 4.2.1 (Apple Inc. build 5659) +dnl FreeBSD 7.2 gcc 4.2 +dnl OpenBSD 4.5 gcc 3.3.5 (propolice) +dnl Debian Linux (Etch) gcc 4.3 +dnl +dnl Thread support is also in various libcs directly, so often using no +dnl flags at all works as well, but unfortunately Solaris 9 has +dnl practically _all_ of libpthread stubbed out in libc, so we cannot +dnl distinguish between a working libpthread and a stubbed out one by a +dnl link-only test. +dnl +dnl We also explicitly do not link to pthread-stubs or whatever other +dnl third-party stubs library, since that forces cairo clients to be +dnl extra careful when giving both libcairo and libpthread on the +dnl command line: the user would have to use "-lpthread -lcairo" rather +dnl than the more common "-lcairo -lpthread" to not accidentally use +dnl stubs pulled in by libcairo everywhere in the application. We +dnl might also need to have a way to teach pkg-config about library +dnl ordering constraints which aren't actual dependencies, and at this +dnl point it just starts doing my head in. +dnl +dnl If your unix-like doesn't work with the secret handshake +dnl -D_REENTRANT -lpthread and you can actually compile the rest of +dnl cairo just fine otherwise, please take a moment complain loudly +dnl to the cairo mailing list! +dnl +AC_DEFUN([CAIRO_CONFIGURE_PTHREAD],[dnl + dnl Try to use the user's PTHREAD_LIBS/CFLAGS + dnl if they're available. + if test "x$PTHREAD_CFLAGS" = "x"; then + PTHREAD_CFLAGS="-D_REENTRANT" + fi + if test "x$PTHREAD_LIBS" = "x"; then + PTHREAD_LIBS="-lpthread" + fi + + dnl First try to find the real pthreads. + CAIRO_CHECK_PTHREAD( + [real_pthread], [$PTHREAD_CFLAGS], [$PTHREAD_LIBS], + [testsuite_pthread_program], + [have_real_pthread=yes], + [have_real_pthread=no]) + if test "x$have_real_pthread" != "xyes"; then + dnl Give -pthread a go. + CAIRO_CHECK_PTHREAD( + [real_pthread], [-pthread], [], + [testsuite_pthread_program], + [have_real_pthread=yes], + [have_real_pthread="no (can't link with -lpthread or -pthread)"]) + fi + PTHREAD_CFLAGS= + PTHREAD_LIBS= + + dnl Check if we can use libc's stubs in libcairo. + dnl Only do this if the user hasn't explicitly enabled + dnl pthreads, but is relying on automatic configuration. + have_pthread="no" + if test "x$enable_pthread" != "xyes"; then + CAIRO_CHECK_PTHREAD( + [pthread], [-D_REENTRANT], [], + [libcairo_pthread_program], + [have_pthread=yes], + []) + fi + + dnl Default to using the real pthreads for libcairo. + if test "x$have_pthread" != "xyes"; then + have_pthread="$have_real_pthread"; + pthread_CFLAGS="$real_pthread_CFLAGS"; + pthread_LIBS="$real_pthread_LIBS"; + fi + + dnl Tell autoconf about the results. + if test "x$have_real_pthread" = "xyes"; then + AC_DEFINE([CAIRO_HAS_REAL_PTHREAD], 1, + [Define to 1 if we have full pthread support]) + fi + if test "x$have_pthread" = "xyes"; then + AC_DEFINE([CAIRO_HAS_PTHREAD], 1, + [Define to 1 f we have minimal pthread support]) + fi + + dnl Make sure we scored some pthreads. + if test "x$enable_pthread" = "xyes" -a "x$have_pthread" != "xyes"; then + AC_MSG_ERROR([pthread requested but not found]) + fi + + dnl Set the output variables for CAIRO_ENABLE. + use_pthread="$have_pthread" + pthread_REQUIRES="" +]) diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.system b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.system new file mode 100644 index 00000000000..b9d71c8d783 --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.system @@ -0,0 +1,160 @@ +dnl +dnl Non-failing checks for functions, headers, libraries, etc go here +dnl + +dnl ==================================================================== +dnl Feature checks +dnl ==================================================================== + +AM_CONDITIONAL(CROSS_COMPILING, test "x$cross_compiling" = "xyes") +CAIRO_BIGENDIAN +AC_ARG_ENABLE(atomic, + [AS_HELP_STRING([--disable-atomic], + [disable use of native atomic operations])], + [use_atomic=$enableval], [use_atomic=yes]) +AS_IF([test "x$use_atomic" = "xyes"], [ + CAIRO_CHECK_NATIVE_ATOMIC_PRIMITIVES + CAIRO_CHECK_ATOMIC_OP_NEEDS_MEMORY_BARRIER +]) +AC_CHECK_SIZEOF(void *) +AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(long) +AC_CHECK_SIZEOF(long long) +AC_CHECK_SIZEOF(size_t) + +AC_MSG_CHECKING([for native Win32]) +case "$host" in + *-*-mingw*) + cairo_os_win32=yes + ;; + *) + cairo_os_win32=no + ;; +esac +AC_MSG_RESULT([$cairo_os_win32]) +AM_CONDITIONAL(OS_WIN32, test "$cairo_os_win32" = "yes") + +AC_MSG_CHECKING([for Sun Solaris (non-POSIX ctime_r)]) +case "$host" in + *-*-solaris*) + CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS" + solaris_posix_pthread=yes + ;; + *) + solaris_posix_pthread=no + ;; +esac +AC_MSG_RESULT([$solaris_posix_pthread]) + +dnl ==================================================================== +dnl Library checks +dnl ==================================================================== + +AC_CHECK_LIBM +LIBS="$LIBS $LIBM" + +AC_CHECK_LIB(rt, sched_yield) + +has_shm_open= +AC_CHECK_LIB(rt, shm_open, [ + SHM_LIBS=-lrt + has_shm_open=yes + ], [SHM_LIBS=]) +AM_CONDITIONAL(HAVE_SHM, test "x$has_shm_open" = "xyes") +AC_SUBST(SHM_LIBS) + +AC_CHECK_LIB(socket, connect, [SOCKET_LIBS=-lsocket], [SOCKET_LIBS=]) +CAIROBOILERPLATE_LIBS=$SOCKET_LIBS +AC_SUBST(CAIROBOILERPLATE_LIBS) + +dnl ==================================================================== +dnl Header/function checks +dnl ==================================================================== + +dnl check if we have a __builtin_return_address for the cairo-trace +dnl utility. +AC_MSG_CHECKING([for __builtin_return_address(0)]) +AC_TRY_COMPILE([],[__builtin_return_address(0);], + [have_builtin_return_address=yes], + [have_builtin_return_address=no]) +AC_MSG_RESULT($have_builtin_return_address) +if test "x$have_builtin_return_address" = "xyes"; then + AC_DEFINE(HAVE_BUILTIN_RETURN_ADDRESS, 1, + [Define to 1 if your compiler supports the __builtin_return_address() intrinsic.]) +fi + +dnl Checks for precise integer types +AC_CHECK_HEADERS([stdint.h inttypes.h sys/int_types.h]) +AC_CHECK_TYPES([uint64_t, uint128_t, __uint128_t]) + +dnl Check for socket support for any2ppm daemon +AC_CHECK_HEADERS([fcntl.h unistd.h signal.h sys/stat.h sys/socket.h sys/poll.h sys/un.h]) + +dnl Check for infinite loops +AC_CHECK_FUNCS([alarm]) + +dnl check for CPU affinity support +AC_CHECK_HEADERS([sched.h], [AC_CHECK_FUNCS([sched_getaffinity])]) + +dnl check for mmap support +AC_CHECK_HEADERS([sys/mman.h], [AC_CHECK_FUNCS([mmap])]) + +dnl check for clock_gettime() support +AC_CHECK_HEADERS([time.h], [AC_CHECK_FUNCS([clock_gettime])]) + +dnl check for GNU-extensions to fenv +AC_CHECK_HEADER(fenv.h, + [AC_CHECK_FUNCS(feenableexcept fedisableexcept feclearexcept)]) + +dnl check for misc headers and functions +AC_CHECK_HEADERS([libgen.h byteswap.h signal.h setjmp.h fenv.h sys/wait.h]) +AC_CHECK_FUNCS([ctime_r drand48 flockfile funlockfile getline link strndup]) + +dnl check for win32 headers (this detects mingw as well) +AC_CHECK_HEADERS([windows.h], have_windows=yes, have_windows=no) + + +dnl Possible headers for mkdir +AC_CHECK_HEADERS([sys/stat.h io.h]) +AC_CHECK_FUNC(mkdir, + [AC_MSG_CHECKING([mkdir variant]) + mkdir_variant="unknown" + save_CFLAGS="$CFLAGS" + CFLAGS=$WARN_CFLAGS + AC_TRY_COMPILE([ +#ifdef HAVE_SYS_STAT_H +#include <sys/stat.h> +#endif +#ifdef HAVE_IO_H +#include <io.h> +#endif + ], + [mkdir ("hello.world", 0777)], + mkdir_variant="mkdir(path, mode)", + [AC_TRY_COMPILE([ +#ifdef HAVE_SYS_STAT_H +#include <sys/stat.h> +#endif +#ifdef HAVE_IO_H +#include <io.h> +#endif + ], + [mkdir ("hello.world")], + mkdir_variant="mkdir(path)")]) + AC_MSG_RESULT([$mkdir_variant]) + CFLAGS="$save_CFLAGS" + if test "x$mkdir_variant" = "xmkdir(path, mode)"; then + AC_DEFINE(HAVE_MKDIR, 2, + [Define to non-zero if your system has mkdir, and to 2 if your version of mkdir requires a mode parameter]) + else + AC_DEFINE(HAVE_MKDIR, 1, + [Define to non-zero if your system has mkdir, and to 2 if your version of mkdir requires a mode parameter]) + fi]) + +dnl =========================================================================== +dnl +dnl Test for the tools required for building one big test binary +dnl + +AC_CHECK_FUNCS(fork waitpid raise) + diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.tools b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.tools new file mode 100644 index 00000000000..a24dbcecb91 --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.tools @@ -0,0 +1,25 @@ + +AC_PATH_PROG(FIND, find) +AC_PATH_PROG(XARGS, xargs) + +AC_PROG_CC +AC_PROG_CPP +AC_PROG_CXX dnl required for BeOS (and cannot be a conditional dependency) +AM_PROG_CC_C_O +AC_C_INLINE + +dnl =========================================================================== + +PKG_PROG_PKG_CONFIG() +if test "x$PKG_CONFIG" = x; then + AC_MSG_ERROR([pkg-config >= $PKGCONFIG_REQUIRED required but not found (http://pkgconfig.freedesktop.org/)]) +fi + +dnl Check for recent pkg-config which supports Requires.private +case `$PKG_CONFIG --version` in +[0.?|0.?.?|0.1[0-7]|0.1[0-7].?]) PKGCONFIG_REQUIRES="Requires"; ;; +*) PKGCONFIG_REQUIRES="Requires.private"; ;; +esac + +AC_SUBST(PKGCONFIG_REQUIRES) + diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.version b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.version new file mode 100644 index 00000000000..a91cee39eef --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.version @@ -0,0 +1,42 @@ +dnl +dnl Version stuff +dnl + +dnl This macro expands to one of 'git', 'snapshot', or 'release' +m4_define([cairo_release_status], + [m4_if(m4_eval(cairo_version_micro % 2), [1], [git], + [m4_if(m4_eval(cairo_version_minor % 2), [1], [snapshot], + [release])])]) + +dnl This is the .so/dll number. 2 for cairo-1.x.x +m4_define([cairo_version_sonum], m4_eval(cairo_version_major + 1)) + +dnl The libtool shared library version stuff +m4_define([cairo_version], + m4_eval(cairo_version_major*10000 + cairo_version_minor*100 + cairo_version_micro)) +m4_if(m4_eval(cairo_version_minor % 2), [1], + [ + dnl for unstable releases + m4_define([cairo_libtool_revision], 0) + ], + [ + dnl for stable releases + m4_define([cairo_libtool_revision], cairo_version_micro) + ]) +m4_define([cairo_libtool_current], + m4_eval(cairo_version_sonum + cairo_version - cairo_libtool_revision)) +m4_define([cairo_libtool_age], + m4_eval(cairo_libtool_current - cairo_version_sonum)) + +CAIRO_VERSION_MAJOR=cairo_version_major +CAIRO_VERSION_MINOR=cairo_version_minor +CAIRO_VERSION_MICRO=cairo_version_micro +CAIRO_VERSION_SONUM=cairo_version_sonum +CAIRO_RELEASE_STATUS=cairo_release_status +CAIRO_LIBTOOL_VERSION_INFO=cairo_libtool_current:cairo_libtool_revision:cairo_libtool_age +AC_SUBST(CAIRO_VERSION_MAJOR) +AC_SUBST(CAIRO_VERSION_MINOR) +AC_SUBST(CAIRO_VERSION_MICRO) +AC_SUBST(CAIRO_VERSION_SONUM) +AC_SUBST(CAIRO_RELEASE_STATUS) +AC_SUBST(CAIRO_LIBTOOL_VERSION_INFO) diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.warnings b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.warnings new file mode 100644 index 00000000000..74e6634b29c --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/configure.ac.warnings @@ -0,0 +1,99 @@ +dnl Use lots of warning flags with with gcc and compatible compilers + +dnl Note: if you change the following variable, the cache is automatically +dnl skipped and all flags rechecked. So there's no need to do anything +dnl else. If for any reason you need to force a recheck, just change +dnl MAYBE_WARN in an ignorable way (like adding whitespace) + +# -Wcast-align generates lots of false positive reports we need to +# cast image data from uint8_t to uin32_t. + +# -Wlogical-op causes too much noise from strcmp("literal", str) + +MAYBE_WARN="-Wall -Wextra \ +-Wmissing-declarations -Werror-implicit-function-declaration \ +-Wpointer-arith -Wwrite-strings -Wsign-compare -Wpacked +-Wswitch-enum -Wmissing-format-attribute -Wvolatile-register-var \ +-Wstrict-aliasing=2 -Winit-self -Wunsafe-loop-optimizations \ +-Wno-missing-field-initializers -Wno-unused-parameter \ +-Wno-attributes -Wno-long-long -Winline" + +MAYBE_C_SPECIFIC_WARN="-Wold-style-definition \ +-Wdeclaration-after-statement -Wstrict-prototypes \ +-Wmissing-prototypes -Wbad-function-cast -Wnested-externs" + +# New -Wno options should be added here +# gcc-4.4 and later accept every -Wno- option but may complain later that this +# option is unknow each time another warning happen. +# -Wunused-but-set-variable is too noisy at present +NO_WARN="unused-but-set-variable" + +dnl Sun Studio 12 likes to rag at us for abusing enums like +dnl having cairo_status_t variables hold cairo_int_status_t +dnl values. It's bad, we know. Now please be quiet. +MAYBE_WARN="$MAYBE_WARN -erroff=E_ENUM_TYPE_MISMATCH_ARG \ + -erroff=E_ENUM_TYPE_MISMATCH_OP" + +dnl We also abuse the warning-flag facility to enable other compiler +dnl options. Namely, the following: +MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common" + +dnl Also to turn various gcc/glibc-specific preprocessor checks +MAYBE_WARN="$MAYBE_WARN -Wp,-D_FORTIFY_SOURCE=2" + +# invalidate cached value if MAYBE_WARN has changed +if test "x$cairo_cv_warn_maybe" != "x$MAYBE_WARN"; then + unset cairo_cv_warn_cflags +fi +AC_CACHE_CHECK([for supported warning flags], cairo_cv_warn_cflags, [ + echo + WARN_CFLAGS="" + + # Some warning options are not supported by all versions of + # gcc, so test all desired options against the current + # compiler. + # + # Note that there are some order dependencies + # here. Specifically, an option that disables a warning will + # have no net effect if a later option then enables that + # warnings, (perhaps implicitly). So we put some grouped + # options (-Wall and -Wextra) up front and the -Wno options + # last. + + for W in $MAYBE_WARN; do + CAIRO_CC_TRY_FLAG([$W],, [WARN_CFLAGS="$WARN_CFLAGS $W"]) + done + for W in $NO_WARN; do + CAIRO_CC_TRY_FLAG([-W$W -Wno-$W],, [WARN_CFLAGS="$WARN_CFLAGS -Wno-$W"]) + done + cairo_cv_warn_cflags=$WARN_CFLAGS + cairo_cv_warn_maybe="$MAYBE_WARN $MAYBE_C_SPECIFIC_WARN" + + AC_MSG_CHECKING([which warning flags were supported]) +]) +WARN_CFLAGS="$cairo_cv_warn_cflags" +CAIRO_CFLAGS="$CAIRO_CFLAGS $WARN_CFLAGS" + +# We only wish to enable attribute(warn_unused_result) if we can prevent +# gcc from generating thousands of warnings about the misapplication of the +# attribute to void functions and variables. +AC_CACHE_CHECK([how to enable unused result warnings], cairo_cv_warn_unused_result, [ + AC_REQUIRE([AC_PROG_GREP]) + cairo_cv_warn_unused_result="" + if echo $WARN_CFLAGS | $GREP -e '-Wno-attributes' >/dev/null; then + CAIRO_CC_TRY_FLAG_SILENT( + [-Wno-attributes], + [__attribute__((__warn_unused_result__)) void f (void) {} + __attribute__((__warn_unused_result__)) int g;], + [cairo_cv_warn_unused_result="__attribute__((__warn_unused_result__))"]) + fi +]) +AC_DEFINE_UNQUOTED([WARN_UNUSED_RESULT], [$cairo_cv_warn_unused_result], + [Define to the value your compiler uses to support the warn-unused-result attribute]) + +dnl check linker flags +AC_CACHE_CHECK([how to allow undefined symbols in shared libraries used by test suite], cairo_cv_test_undefined_ldflags, + [CAIRO_CC_TRY_FLAG_SILENT([-Wl,--allow-shlib-undefined], [], + [cairo_cv_test_undefined_ldflags="-Wl,--allow-shlib-undefined]")]) +CAIRO_TEST_UNDEFINED_LDFLAGS="$cairo_cv_test_undefined_ldflags" +AC_SUBST(CAIRO_TEST_UNDEFINED_LDFLAGS) diff --git a/Build/source/libs/cairo/cairo-1.14.2/build/gtk-doc.m4 b/Build/source/libs/cairo/cairo-1.14.2/build/gtk-doc.m4 new file mode 100644 index 00000000000..36755432b50 --- /dev/null +++ b/Build/source/libs/cairo/cairo-1.14.2/build/gtk-doc.m4 @@ -0,0 +1,88 @@ +dnl -*- mode: autoconf -*- + +# serial 2 + +dnl Usage: +dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +AC_DEFUN([GTK_DOC_CHECK], +[ + AC_REQUIRE([PKG_PROG_PKG_CONFIG]) + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + + ifelse([$1],[],[gtk_doc_requires="gtk-doc"],[gtk_doc_requires="gtk-doc >= $1"]) + AC_MSG_CHECKING([for gtk-doc]) + PKG_CHECK_EXISTS([$gtk_doc_requires],[have_gtk_doc=yes],[have_gtk_doc=no]) + AC_MSG_RESULT($have_gtk_doc) + + if test "$have_gtk_doc" = "no"; then + AC_MSG_WARN([ + You will not be able to create source packages with 'make dist' + because $gtk_doc_requires is not found.]) + fi + + dnl check for tools we added during development + dnl Use AC_CHECK_PROG to avoid the check target using an absolute path that + dnl may not be writable by the user. Currently, automake requires that the + dnl test name must end in '.test'. + dnl https://bugzilla.gnome.org/show_bug.cgi?id=701638 + AC_CHECK_PROG([GTKDOC_CHECK],[gtkdoc-check],[gtkdoc-check.test]) + AC_PATH_PROG([GTKDOC_CHECK_PATH],[gtkdoc-check]) + AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) + AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) + + dnl for overriding the documentation installation directory + AC_ARG_WITH([html-dir], + AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, + [with_html_dir='${datadir}/gtk-doc/html']) + HTML_DIR="$with_html_dir" + AC_SUBST([HTML_DIR]) + + dnl enable/disable documentation building + AC_ARG_ENABLE([gtk-doc], + AS_HELP_STRING([--enable-gtk-doc], + [use gtk-doc to build documentation [[default=no]]]),, + [enable_gtk_doc=no]) + + AC_MSG_CHECKING([whether to build gtk-doc documentation]) + AC_MSG_RESULT($enable_gtk_doc) + + if test "x$enable_gtk_doc" = "xyes" && test "$have_gtk_doc" = "no"; then + AC_MSG_ERROR([ + You must have $gtk_doc_requires installed to build documentation for + $PACKAGE_NAME. Please install gtk-doc or disable building the + documentation by adding '--disable-gtk-doc' to '[$]0'.]) + fi + + dnl don't check for glib if we build glib + if test "x$PACKAGE_NAME" != "xglib"; then + dnl don't fail if someone does not have glib + PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,[:]) + fi + + dnl enable/disable output formats + AC_ARG_ENABLE([gtk-doc-html], + AS_HELP_STRING([--enable-gtk-doc-html], + [build documentation in html format [[default=yes]]]),, + [enable_gtk_doc_html=yes]) + AC_ARG_ENABLE([gtk-doc-pdf], + AS_HELP_STRING([--enable-gtk-doc-pdf], + [build documentation in pdf format [[default=no]]]),, + [enable_gtk_doc_pdf=no]) + + if test -z "$GTKDOC_MKPDF"; then + enable_gtk_doc_pdf=no + fi + + if test -z "$AM_DEFAULT_VERBOSITY"; then + AM_DEFAULT_VERBOSITY=1 + fi + AC_SUBST([AM_DEFAULT_VERBOSITY]) + + AM_CONDITIONAL([HAVE_GTK_DOC], [test x$have_gtk_doc = xyes]) + AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) + AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) + AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) + AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) +]) |