mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2025-12-24 20:40:10 +01:00
Remove autotools build
This commit is contained in:
parent
387d2f0739
commit
efe303d9db
73 changed files with 0 additions and 8059 deletions
|
|
@ -98,20 +98,6 @@ fedora image:
|
||||||
google-noto-emoji-color-fonts
|
google-noto-emoji-color-fonts
|
||||||
fonttools
|
fonttools
|
||||||
|
|
||||||
fedora autotools build:
|
|
||||||
extends:
|
|
||||||
- '.fdo.distribution-image@fedora'
|
|
||||||
- '.ccache_setup'
|
|
||||||
stage: 'build'
|
|
||||||
script:
|
|
||||||
- ./autogen.sh
|
|
||||||
- make V=1 VERBOSE=1 -j $(nproc)
|
|
||||||
artifacts:
|
|
||||||
when: 'always'
|
|
||||||
expire_in: '2 days'
|
|
||||||
paths:
|
|
||||||
- "*"
|
|
||||||
|
|
||||||
.test fedora meson:
|
.test fedora meson:
|
||||||
dependencies:
|
dependencies:
|
||||||
- 'fedora meson build'
|
- 'fedora meson build'
|
||||||
|
|
|
||||||
184
INSTALL
184
INSTALL
|
|
@ -1,184 +0,0 @@
|
||||||
Quick-start build instructions
|
|
||||||
------------------------------
|
|
||||||
1) Configure the package:
|
|
||||||
|
|
||||||
./configure
|
|
||||||
|
|
||||||
2) Compile it:
|
|
||||||
|
|
||||||
make
|
|
||||||
|
|
||||||
3) Install it:
|
|
||||||
|
|
||||||
make install
|
|
||||||
|
|
||||||
This final step may require temporary root access (eg. with sudo) if
|
|
||||||
you don't have write permission to the directory in which cairo will
|
|
||||||
be installed.
|
|
||||||
|
|
||||||
NOTE: If you are working with source from git/cvs rather than from a tar
|
|
||||||
file, then you should use ./autogen.sh in place of ./configure
|
|
||||||
anywhere it is mentioned in these instructions.
|
|
||||||
|
|
||||||
More detailed build instructions
|
|
||||||
--------------------------------
|
|
||||||
1) Configure the package
|
|
||||||
|
|
||||||
The first step in building cairo is to configure the package by
|
|
||||||
running the configure script. [Note: if you don't have a configure
|
|
||||||
script, skip down below to the Extremely detailed build
|
|
||||||
instructions.]
|
|
||||||
|
|
||||||
The configure script attempts to automatically detect as much as
|
|
||||||
possible about your system. So, you should primarily just accept
|
|
||||||
its defaults by running:
|
|
||||||
|
|
||||||
./configure
|
|
||||||
|
|
||||||
The configure script does accept a large number of options for
|
|
||||||
fine-tuning its behavior. See "./configure --help" for a complete
|
|
||||||
list. The most commonly used options are discussed here.
|
|
||||||
|
|
||||||
--prefix=PREFIX
|
|
||||||
|
|
||||||
This option specifies the directory under which the software
|
|
||||||
should be installed. By default configure will choose a
|
|
||||||
directory such as /usr/local. If you would like to install
|
|
||||||
cairo to some other location, pass the director to configure
|
|
||||||
with the --prefix option. For example:
|
|
||||||
|
|
||||||
./configure --prefix=/opt/cairo
|
|
||||||
|
|
||||||
would install cairo into the /opt/cairo directory. You could
|
|
||||||
also choose a prefix directory within your home directory if
|
|
||||||
you don't have write access to any system-wide directory.
|
|
||||||
|
|
||||||
After installing into a custom prefix, you will need to set
|
|
||||||
some environment variables to allow the software to be
|
|
||||||
found. Assuming the /opt/cairo prefix and assuming you are
|
|
||||||
using the bash shell, the following environment variables
|
|
||||||
should be set:
|
|
||||||
|
|
||||||
PKG_CONFIG_PATH=/opt/cairo/lib/pkgconfig
|
|
||||||
LD_LIBRARY_PATH=/opt/cairo/lib
|
|
||||||
export PKG_CONFIG_PATH LD_LIBRARY_PATH
|
|
||||||
|
|
||||||
(NOTE: On Mac OS X, at least, use DYLD_LIBRARY_PATH in place
|
|
||||||
of LD_LIBRARY_PATH above.)
|
|
||||||
|
|
||||||
--enable-XYZ
|
|
||||||
--enable-XYZ=yes
|
|
||||||
--enable-XYZ=auto
|
|
||||||
--enable-XYZ=no
|
|
||||||
--disable-XYZ
|
|
||||||
|
|
||||||
Cairo's various font and surface backends and other features can be
|
|
||||||
enabled or disabled at configure time. Features can be divided into
|
|
||||||
three categories based on their default state:
|
|
||||||
|
|
||||||
* default=yes: These are the recommended features like PNG functions
|
|
||||||
and PS/PDF/SVG backends. It is highly recommended to not disable
|
|
||||||
these features but if that's really what one wants, they can be
|
|
||||||
disabled using --disable-XYZ.
|
|
||||||
|
|
||||||
* default=auto: These are the "native" features, that is, they are
|
|
||||||
platform specific, like the Xlib surface backend. You probably
|
|
||||||
want one or two of these. They will be automatically enabled if
|
|
||||||
all their required facilities are available. Or you can use
|
|
||||||
--enable-XYZ or --disable-XYZ to make your desire clear, and then
|
|
||||||
cairo errs during configure if your intention cannot be followed.
|
|
||||||
|
|
||||||
* default=no: These are the "experimental" features, and hence by
|
|
||||||
default off. Use --enable-XYZ to enable them.
|
|
||||||
|
|
||||||
The list of all features and their default state can be seen in the
|
|
||||||
output of ./configure --help.
|
|
||||||
|
|
||||||
2) Compile the package:
|
|
||||||
|
|
||||||
This step is very simple. Just:
|
|
||||||
|
|
||||||
make
|
|
||||||
|
|
||||||
The Makefiles included with cairo are designed to work on as many
|
|
||||||
different systems as possible.
|
|
||||||
|
|
||||||
When cairo is compiled, you can also run some automated tests of
|
|
||||||
cairo with:
|
|
||||||
|
|
||||||
make check
|
|
||||||
|
|
||||||
NOTE: Some versions of X servers will cause the -xlib tests to
|
|
||||||
report failures in make check even when cairo is working just
|
|
||||||
fine. If you see failures in nothing but -xlib tests, please
|
|
||||||
examine the corresponding -xlib-out.png images and compare them to
|
|
||||||
the -ref.png reference images (the -xlib-diff.png images might also
|
|
||||||
be useful). If the results seem "close enough" please do not report
|
|
||||||
a bug against cairo as the "failures" you are seeing are just due
|
|
||||||
to subtle variations in X server implementations.
|
|
||||||
|
|
||||||
3) Install the package:
|
|
||||||
|
|
||||||
The final step is to install the package with:
|
|
||||||
|
|
||||||
make install
|
|
||||||
|
|
||||||
If you are installing to a system-wide location you may need to
|
|
||||||
temporarily acquire root access in order to perform this
|
|
||||||
operation. A good way to do this is to use the sudo program:
|
|
||||||
|
|
||||||
sudo make install
|
|
||||||
|
|
||||||
Extremely detailed build instructions
|
|
||||||
-------------------------------------
|
|
||||||
So you want to build cairo but it didn't come with a configure
|
|
||||||
script. This is probably because you have checked out the latest
|
|
||||||
in-development code via git. If you need to be on the bleeding edge,
|
|
||||||
(for example, because you're wanting to develop some aspect of cairo
|
|
||||||
itself), then you're in the right place and should read on.
|
|
||||||
|
|
||||||
However, if you don't need such a bleeding-edge version of cairo, then
|
|
||||||
you might prefer to start by building the latest stable cairo release:
|
|
||||||
|
|
||||||
https://cairographics.org/releases
|
|
||||||
|
|
||||||
or perhaps the latest (unstable) development snapshot:
|
|
||||||
|
|
||||||
https://cairographics.org/snapshots
|
|
||||||
|
|
||||||
There you'll find nicely packaged tar files that include a configure
|
|
||||||
script so you can go back the the simpler instructions above.
|
|
||||||
|
|
||||||
But you're still reading, so you're someone that loves to
|
|
||||||
learn. Excellent! We hope you'll learn enough to make some excellent
|
|
||||||
contributions to cairo. Since you're not using a packaged tar file,
|
|
||||||
you're going to need some additional tools beyond just a C compiler in
|
|
||||||
order to compile cairo. Specifically, you need the following utilities:
|
|
||||||
|
|
||||||
automake
|
|
||||||
autoconf
|
|
||||||
autoheader
|
|
||||||
aclocal
|
|
||||||
libtoolize
|
|
||||||
pkg-config [at least version 0.16]
|
|
||||||
gtk-doc (recommended)
|
|
||||||
|
|
||||||
Hopefully your platform of choice has packages readily available so
|
|
||||||
that you can easily install things with your system's package
|
|
||||||
management tool, (such as "apt-get install automake" on Debian or "yum
|
|
||||||
install automake" on Fedora, etc.). Note that Mac OS X ships with
|
|
||||||
glibtoolize instead of libtoolize.
|
|
||||||
|
|
||||||
Once you have all of those packages installed, the next step is to run
|
|
||||||
the autogen.sh script. That can be as simple as:
|
|
||||||
|
|
||||||
./autogen.sh
|
|
||||||
|
|
||||||
But before you run that command, note that the autogen.sh script
|
|
||||||
accepts all the same arguments as the configure script, (and in fact,
|
|
||||||
will generate the configure script and run it with the arguments you
|
|
||||||
provide). So go back up to step (1) above and see what additional
|
|
||||||
arguments you might want to pass, (such as prefix). Then continue with
|
|
||||||
the instructions, simply using ./autogen.sh in place of ./configure.
|
|
||||||
|
|
||||||
Happy hacking!
|
|
||||||
118
Makefile.am
118
Makefile.am
|
|
@ -1,118 +0,0 @@
|
||||||
include $(top_srcdir)/build/Makefile.am.common
|
|
||||||
|
|
||||||
EXTRA_DIST += \
|
|
||||||
KNOWN_ISSUES \
|
|
||||||
README.win32 \
|
|
||||||
Makefile.win32 \
|
|
||||||
build/Makefile.win32.common \
|
|
||||||
build/Makefile.win32.inform \
|
|
||||||
build/Makefile.win32.features \
|
|
||||||
build/Makefile.win32.features-h \
|
|
||||||
$(NULL)
|
|
||||||
#MAINTAINERCLEANFILES += \
|
|
||||||
# $(srcdir)/build/Makefile.win32.features \
|
|
||||||
# $(srcdir)/build/Makefile.win32.features-h \
|
|
||||||
# $(NULL)
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I build ${ACLOCAL_FLAGS}
|
|
||||||
|
|
||||||
DIST_SUBDIRS = src doc util boilerplate test perf
|
|
||||||
SUBDIRS = src doc util
|
|
||||||
# libpng is required for our test programs
|
|
||||||
if CAIRO_HAS_PNG_FUNCTIONS
|
|
||||||
SUBDIRS += boilerplate test perf
|
|
||||||
endif
|
|
||||||
|
|
||||||
doc:
|
|
||||||
cd doc && $(MAKE) $(AM_MAKEFLAGS) $@
|
|
||||||
test retest recheck: all
|
|
||||||
cd test && $(MAKE) $(AM_MAKEFLAGS) $@
|
|
||||||
perf: all
|
|
||||||
cd perf && $(MAKE) $(AM_MAKEFLAGS) $@
|
|
||||||
check-valgrind: all
|
|
||||||
cd test && $(MAKE) $(AM_MAKEFLAGS) check-valgrind
|
|
||||||
cd perf && $(MAKE) $(AM_MAKEFLAGS) check-valgrind
|
|
||||||
.PHONY: doc test retest recheck perf check-valgrind
|
|
||||||
|
|
||||||
|
|
||||||
EXTRA_DIST += \
|
|
||||||
AUTHORS \
|
|
||||||
BIBLIOGRAPHY \
|
|
||||||
BUGS \
|
|
||||||
CODING_STYLE \
|
|
||||||
COPYING \
|
|
||||||
COPYING-LGPL-2.1 \
|
|
||||||
COPYING-MPL-1.1 \
|
|
||||||
HACKING \
|
|
||||||
INSTALL \
|
|
||||||
NEWS \
|
|
||||||
PORTING_GUIDE \
|
|
||||||
README \
|
|
||||||
RELEASING \
|
|
||||||
autogen.sh \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
# Meson build system files
|
|
||||||
EXTRA_DIST += \
|
|
||||||
meson.build \
|
|
||||||
meson_options.txt \
|
|
||||||
version.py \
|
|
||||||
boilerplate/make-cairo-boilerplate-constructors.py \
|
|
||||||
boilerplate/meson.build \
|
|
||||||
doc/public/meson.build \
|
|
||||||
doc/public/version.xml.in \
|
|
||||||
src/meson.build \
|
|
||||||
test/make-cairo-test-constructors.py \
|
|
||||||
test/meson.build \
|
|
||||||
test/pdiff/meson.build \
|
|
||||||
util/cairo-fdr/meson.build \
|
|
||||||
util/cairo-gobject/meson.build \
|
|
||||||
util/cairo-missing/meson.build \
|
|
||||||
util/cairo-script/meson.build \
|
|
||||||
util/cairo-sphinx/meson.build \
|
|
||||||
util/cairo-trace/meson.build \
|
|
||||||
util/meson.build \
|
|
||||||
meson-cc-tests/atomic-ops-cxx11.c \
|
|
||||||
meson-cc-tests/atomic-ops-gcc-legacy.c \
|
|
||||||
meson-cc-tests/bfd-section-flags.c \
|
|
||||||
meson-cc-tests/check-unused-result.c \
|
|
||||||
meson-cc-tests/ft_has_color.c \
|
|
||||||
meson-cc-tests/ipc_rmid_deferred_release.c \
|
|
||||||
meson-cc-tests/mkdir-variant-1.c \
|
|
||||||
meson-cc-tests/mkdir-variant-2.c \
|
|
||||||
meson-cc-tests/pthread.c \
|
|
||||||
subprojects/expat.wrap \
|
|
||||||
subprojects/fontconfig.wrap \
|
|
||||||
subprojects/freetype2.wrap \
|
|
||||||
subprojects/glib.wrap \
|
|
||||||
subprojects/libpng.wrap \
|
|
||||||
subprojects/pixman.wrap \
|
|
||||||
subprojects/zlib.wrap \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
DISTCLEANFILES += config.cache
|
|
||||||
|
|
||||||
MAINTAINERCLEANFILES += \
|
|
||||||
$(srcdir)/aclocal.m4 \
|
|
||||||
$(srcdir)/autoscan.log \
|
|
||||||
$(srcdir)/build/compile \
|
|
||||||
$(srcdir)/build/config.guess \
|
|
||||||
$(srcdir)/build/config.sub \
|
|
||||||
$(srcdir)/build/depcomp \
|
|
||||||
$(srcdir)/build/install-sh \
|
|
||||||
$(srcdir)/build/ltmain.sh \
|
|
||||||
$(srcdir)/build/missing \
|
|
||||||
$(srcdir)/build/mkinstalldirs \
|
|
||||||
$(srcdir)/config.h.in \
|
|
||||||
$(srcdir)/configure.scan \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
DISTCHECK_CONFIGURE_FLAGS = \
|
|
||||||
--enable-gtk-doc \
|
|
||||||
--enable-test-surfaces \
|
|
||||||
--enable-full-testing \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
include $(srcdir)/build/Makefile.am.changelog
|
|
||||||
include $(srcdir)/build/Makefile.am.releasing
|
|
||||||
include $(srcdir)/build/Makefile.am.analysis
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
default: all
|
|
||||||
|
|
||||||
# Do not edit this file.
|
|
||||||
# Edit build/Makefile.win32.common for customization
|
|
||||||
|
|
||||||
top_srcdir = .
|
|
||||||
include $(top_srcdir)/build/Makefile.win32.inform
|
|
||||||
|
|
||||||
all: cairo
|
|
||||||
|
|
||||||
cairo: inform
|
|
||||||
@$(MAKE) -C src -f Makefile.win32
|
|
||||||
|
|
||||||
perf: inform
|
|
||||||
@$(MAKE) -C perf -f Makefile.win32 perf
|
|
||||||
|
|
||||||
test: inform
|
|
||||||
@$(MAKE) -C test -f Makefile.win32 test
|
|
||||||
|
|
||||||
clean:
|
|
||||||
@$(MAKE) -C boilerplate -f Makefile.win32 clean
|
|
||||||
@$(MAKE) -C perf -f Makefile.win32 clean
|
|
||||||
@$(MAKE) -C src -f Makefile.win32 clean
|
|
||||||
@$(MAKE) -C test -f Makefile.win32 clean
|
|
||||||
55
acinclude.m4
55
acinclude.m4
|
|
@ -1,55 +0,0 @@
|
||||||
dnl -*- mode: autoconf -*-
|
|
||||||
|
|
||||||
dnl [m4_newline] didn't appear until autoconf 2.62
|
|
||||||
m4_ifdef([m4_newline],,[m4_define([m4_newline],[
|
|
||||||
])])
|
|
||||||
|
|
||||||
dnl These are not available in autoconf 2.59
|
|
||||||
|
|
||||||
m4_ifdef([m4_foreach_w],,[m4_define([m4_foreach_w],
|
|
||||||
[m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])])
|
|
||||||
|
|
||||||
m4_ifdef([AS_CASE],,[
|
|
||||||
m4_define([_AS_CASE],
|
|
||||||
[m4_if([$#], 0, [m4_fatal([$0: too few arguments: $#])],
|
|
||||||
[$#], 1, [ *) $1 ;;],
|
|
||||||
[$#], 2, [ $1) m4_default([$2], [:]) ;;],
|
|
||||||
[ $1) m4_default([$2], [:]) ;;
|
|
||||||
$0(m4_shift2($@))])dnl
|
|
||||||
])
|
|
||||||
m4_defun([AS_CASE],
|
|
||||||
[m4_ifval([$2$3],
|
|
||||||
[case $1 in
|
|
||||||
_AS_CASE(m4_shift($@))
|
|
||||||
esac
|
|
||||||
])dnl
|
|
||||||
])# AS_CASE
|
|
||||||
])
|
|
||||||
|
|
||||||
m4_ifdef([m4_shift2],, [m4_define([m4_shift2], [m4_shift(m4_shift($@))])])
|
|
||||||
|
|
||||||
|
|
||||||
dnl ==========================================================================
|
|
||||||
|
|
||||||
dnl This has to be in acinclude.m4 as it includes other files
|
|
||||||
|
|
||||||
dnl Parse Version.mk and declare m4 variables out of it
|
|
||||||
m4_define([CAIRO_PARSE_VERSION],dnl
|
|
||||||
m4_translit(dnl
|
|
||||||
m4_bpatsubst(m4_include(src/cairo-version.h),
|
|
||||||
[^.define \([a-zA-Z0-9_]*\) *\([0-9][0-9]*\)],
|
|
||||||
[[m4_define(\1, \2)]]),
|
|
||||||
[A-Z], [a-z])dnl
|
|
||||||
)dnl
|
|
||||||
|
|
||||||
dnl ==========================================================================
|
|
||||||
|
|
||||||
m4_pattern_forbid([^cr_])
|
|
||||||
|
|
||||||
dnl AC_AUTOCONF_VERSION was introduced in 2.62, so its definition works as
|
|
||||||
dnl a conditional on version >= 2.62. Older versions did not call
|
|
||||||
dnl m4_pattern_allow from AC_DEFINE and friends. To avoid lots of warnings we
|
|
||||||
dnl only forbid CAIRO_ if autoconf is recent enough.
|
|
||||||
m4_ifdef([AC_AUTOCONF_VERSION],
|
|
||||||
[m4_pattern_forbid([CAIRO])],
|
|
||||||
[m4_pattern_forbid([_CAIRO])])
|
|
||||||
31
autogen.sh
31
autogen.sh
|
|
@ -1,31 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# Run this to generate all the initial makefiles, etc.
|
|
||||||
|
|
||||||
test -n "$srcdir" || srcdir=`dirname "$0"`
|
|
||||||
test -n "$srcdir" || srcdir=.
|
|
||||||
|
|
||||||
ORIGDIR=`pwd`
|
|
||||||
cd $srcdir
|
|
||||||
|
|
||||||
AUTORECONF=`which autoreconf`
|
|
||||||
if test -z $AUTORECONF; then
|
|
||||||
echo "*** No autoreconf found, please install it ***"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
GTKDOCIZE=`which gtkdocize`
|
|
||||||
if test -z $GTKDOCIZE; then
|
|
||||||
echo "*** No GTK-Doc found, documentation won't be generated ***"
|
|
||||||
else
|
|
||||||
gtkdocize || exit $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# create dummy */Makefile.am.features and ChangeLog to make automake happy
|
|
||||||
> boilerplate/Makefile.am.features
|
|
||||||
> src/Makefile.am.features
|
|
||||||
touch ChangeLog
|
|
||||||
|
|
||||||
autoreconf --install --verbose || exit $?
|
|
||||||
|
|
||||||
cd $ORIGDIR
|
|
||||||
test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
||||||
# Note: All source files are listed in Makefile.sources.
|
|
||||||
|
|
||||||
include $(top_srcdir)/build/Makefile.am.common
|
|
||||||
include $(srcdir)/Makefile.am.features
|
|
||||||
|
|
||||||
EXTRA_DIST += Makefile.win32 Makefile.win32.features
|
|
||||||
#MAINTAINERCLEANFILES += $(srcdir)/Makefile.win32.features
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I$(srcdir) \
|
|
||||||
-I$(top_builddir)/src \
|
|
||||||
-I$(top_srcdir)/src \
|
|
||||||
$(CAIRO_CFLAGS) \
|
|
||||||
$(NULL)
|
|
||||||
AM_LDFLAGS = $(CAIRO_LDFLAGS)
|
|
||||||
|
|
||||||
EXTRA_LTLIBRARIES += libcairoboilerplate.la
|
|
||||||
|
|
||||||
|
|
||||||
libcairoboilerplate_la_SOURCES = \
|
|
||||||
$(enabled_cairo_boilerplate_headers) \
|
|
||||||
$(enabled_cairo_boilerplate_private) \
|
|
||||||
$(enabled_cairo_boilerplate_sources) \
|
|
||||||
cairo-boilerplate-constructors.c \
|
|
||||||
$(NULL)
|
|
||||||
libcairoboilerplate_la_LIBADD = $(top_builddir)/src/libcairo.la \
|
|
||||||
$(CAIRO_LIBS) \
|
|
||||||
$(CAIROBOILERPLATE_LIBS) \
|
|
||||||
$(NULL)
|
|
||||||
libcairoboilerplate_la_DEPENDENCIES = \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
if CAIRO_HAS_DL
|
|
||||||
libcairoboilerplate_la_LIBADD += -ldl
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_WIN32_SURFACE
|
|
||||||
libcairoboilerplate_la_LIBADD += -lwinspool
|
|
||||||
endif
|
|
||||||
|
|
||||||
cairo-boilerplate-constructors.c: Makefile $(enabled_cairo_boilerplate_sources) make-cairo-boilerplate-constructors.sh
|
|
||||||
(cd $(srcdir) && sh ./make-cairo-boilerplate-constructors.sh $(enabled_cairo_boilerplate_sources)) > $@
|
|
||||||
|
|
||||||
BUILT_SOURCES += cairo-boilerplate-constructors.c
|
|
||||||
EXTRA_DIST += $(BUILT_SOURCES) make-cairo-boilerplate-constructors.sh
|
|
||||||
CLEANFILES += $(BUILT_SOURCES)
|
|
||||||
|
|
||||||
test: check
|
|
||||||
|
|
||||||
if CROSS_COMPILING
|
|
||||||
else
|
|
||||||
TESTS += check-link$(EXEEXT)
|
|
||||||
endif
|
|
||||||
|
|
||||||
check_PROGRAMS += check-link
|
|
||||||
check_link_LDADD = libcairoboilerplate.la
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
# Makefile.sources
|
|
||||||
#
|
|
||||||
# This file is pretty similar to $(top_srcdir)/src/Makefile.sources,
|
|
||||||
# but for boilerplate. Unlike that file, there are no special headers.
|
|
||||||
#
|
|
||||||
|
|
||||||
cairo_boilerplate_headers = \
|
|
||||||
cairo-boilerplate-getopt.h \
|
|
||||||
cairo-boilerplate-scaled-font.h \
|
|
||||||
cairo-boilerplate-system.h \
|
|
||||||
cairo-boilerplate.h \
|
|
||||||
$(NULL)
|
|
||||||
cairo_boilerplate_sources = \
|
|
||||||
cairo-boilerplate-getopt.c \
|
|
||||||
cairo-boilerplate-system.c \
|
|
||||||
cairo-boilerplate.c \
|
|
||||||
$(NULL)
|
|
||||||
cairo_boilerplate_private = \
|
|
||||||
cairo-boilerplate-private.h \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
cairo_boilerplate_glx_sources = cairo-boilerplate-glx.c
|
|
||||||
cairo_boilerplate_wgl_sources = cairo-boilerplate-wgl.c
|
|
||||||
cairo_boilerplate_egl_sources = cairo-boilerplate-egl.c
|
|
||||||
cairo_boilerplate_pdf_sources = cairo-boilerplate-pdf.c
|
|
||||||
cairo_boilerplate_ps_sources = cairo-boilerplate-ps.c
|
|
||||||
cairo_boilerplate_quartz_sources = cairo-boilerplate-quartz.c
|
|
||||||
cairo_boilerplate_script_sources = cairo-boilerplate-script.c
|
|
||||||
cairo_boilerplate_svg_sources = cairo-boilerplate-svg.c
|
|
||||||
cairo_boilerplate_test_surfaces_sources = cairo-boilerplate-test-surfaces.c
|
|
||||||
cairo_boilerplate_win32_sources = cairo-boilerplate-win32.c cairo-boilerplate-win32-printing.c
|
|
||||||
cairo_boilerplate_xcb_sources = cairo-boilerplate-xcb.c
|
|
||||||
cairo_boilerplate_xlib_headers = cairo-boilerplate-xlib.h
|
|
||||||
cairo_boilerplate_xlib_sources = cairo-boilerplate-xlib.c
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
top_srcdir = ..
|
|
||||||
include $(top_srcdir)/build/Makefile.win32.common
|
|
||||||
include Makefile.win32.features
|
|
||||||
|
|
||||||
HEADERS = \
|
|
||||||
$(enabled_cairo_boilerplate_headers) \
|
|
||||||
$(enabled_cairo_boilerplate_private) \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
SOURCES = \
|
|
||||||
$(enabled_cairo_boilerplate_sources) \
|
|
||||||
cairo-boilerplate-constructors.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
OBJECTS = $(patsubst %.c, $(CFG)/%-static.obj, $(SOURCES))
|
|
||||||
|
|
||||||
cairo-boilerplate-constructors.c: Makefile.sources Makefile.win32 $(enabled_cairo_boilerplate_sources) make-cairo-boilerplate-constructors.sh
|
|
||||||
sh ./make-cairo-boilerplate-constructors.sh $(enabled_cairo_boilerplate_sources) > $@
|
|
||||||
|
|
||||||
all: $(CFG)/boiler.lib
|
|
||||||
|
|
||||||
|
|
||||||
$(CFG)/boiler.lib: $(OBJECTS)
|
|
||||||
@$(AR) $(CAIRO_ARFLAGS) -OUT:$@ $(OBJECTS)
|
|
||||||
|
|
@ -1,353 +0,0 @@
|
||||||
# Generated by configure. Do not edit.
|
|
||||||
|
|
||||||
ifeq ($(top_srcdir),)
|
|
||||||
include Makefile.sources
|
|
||||||
else
|
|
||||||
include $(top_srcdir)/boilerplate/Makefile.sources
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers = $(cairo_boilerplate_headers)
|
|
||||||
unsupported_cairo_boilerplate_headers =
|
|
||||||
all_cairo_boilerplate_headers = $(cairo_boilerplate_headers)
|
|
||||||
all_cairo_boilerplate_private = $(cairo_boilerplate_private)
|
|
||||||
all_cairo_boilerplate_sources = $(cairo_boilerplate_sources)
|
|
||||||
|
|
||||||
enabled_cairo_boilerplate_headers = $(cairo_boilerplate_headers)
|
|
||||||
enabled_cairo_boilerplate_private = $(cairo_boilerplate_private)
|
|
||||||
enabled_cairo_boilerplate_sources = $(cairo_boilerplate_sources)
|
|
||||||
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_xlib_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_xlib_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_XLIB_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_xlib_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_xlib_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_xrender_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_xrender_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_xlib_xrender_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_xlib_xrender_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_XLIB_XRENDER_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_xrender_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_xlib_xrender_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_xlib_xrender_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_xcb_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_xcb_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_xcb_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_xcb_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_XCB_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_xcb_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_xcb_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_xcb_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_xcb_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_xcb_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_xlib_xcb_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_xlib_xcb_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_XLIB_XCB_FUNCTIONS),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_xlib_xcb_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_xlib_xcb_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_xlib_xcb_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_xcb_shm_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_xcb_shm_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_xcb_shm_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_xcb_shm_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_XCB_SHM_FUNCTIONS),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_xcb_shm_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_xcb_shm_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_xcb_shm_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_quartz_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_quartz_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_QUARTZ_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_quartz_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_quartz_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_font_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_font_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_quartz_font_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_quartz_font_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_QUARTZ_FONT),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_font_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_quartz_font_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_quartz_font_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_image_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_image_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_quartz_image_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_quartz_image_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_QUARTZ_IMAGE_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_quartz_image_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_quartz_image_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_quartz_image_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_win32_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_win32_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_win32_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_win32_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_WIN32_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_win32_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_win32_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_win32_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_win32_font_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_win32_font_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_win32_font_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_win32_font_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_WIN32_FONT),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_win32_font_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_win32_font_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_win32_font_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_png_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_png_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_png_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_png_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_PNG_FUNCTIONS),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_png_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_png_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_png_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_gl_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_gl_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_gl_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_gl_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_GL_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_gl_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_gl_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_gl_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_glesv2_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_glesv2_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_glesv2_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_glesv2_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_GLESV2_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_glesv2_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_glesv2_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_glesv2_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_glesv3_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_glesv3_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_glesv3_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_glesv3_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_GLESV3_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_glesv3_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_glesv3_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_glesv3_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_egl_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_egl_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_egl_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_egl_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_EGL_FUNCTIONS),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_egl_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_egl_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_egl_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_glx_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_glx_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_glx_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_glx_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_GLX_FUNCTIONS),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_glx_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_glx_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_glx_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_wgl_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_wgl_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_wgl_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_wgl_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_WGL_FUNCTIONS),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_wgl_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_wgl_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_wgl_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_script_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_script_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_script_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_script_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_SCRIPT_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_script_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_script_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_script_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_ft_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_ft_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_ft_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_ft_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_FT_FONT),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_ft_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_ft_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_ft_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_fc_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_fc_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_fc_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_fc_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_FC_FONT),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_fc_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_fc_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_fc_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_ps_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_ps_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_ps_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_ps_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_PS_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_ps_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_ps_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_ps_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_pdf_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_pdf_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_pdf_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_pdf_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_PDF_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_pdf_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_pdf_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_pdf_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_svg_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_svg_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_svg_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_svg_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_SVG_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_svg_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_svg_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_svg_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_test_surfaces_private) $(cairo_boilerplate_test_surfaces_headers)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_test_surfaces_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_TEST_SURFACES),1)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_test_surfaces_private) $(cairo_boilerplate_test_surfaces_headers)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_test_surfaces_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_image_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_image_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_image_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_image_sources)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_image_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_image_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_image_sources)
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_mime_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_mime_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_mime_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_mime_sources)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_mime_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_mime_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_mime_sources)
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_recording_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_recording_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_recording_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_recording_sources)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_recording_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_recording_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_recording_sources)
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_observer_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_observer_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_observer_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_observer_sources)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_observer_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_observer_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_observer_sources)
|
|
||||||
|
|
||||||
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_tee_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_tee_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_tee_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_tee_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_TEE_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_tee_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_tee_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_tee_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_xml_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_xml_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_xml_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_xml_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_XML_SURFACE),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_xml_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_xml_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_xml_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_user_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_user_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_user_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_user_sources)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_user_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_user_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_user_sources)
|
|
||||||
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_pthread_private) $(cairo_boilerplate_pthread_headers)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_pthread_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_PTHREAD),1)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_pthread_private) $(cairo_boilerplate_pthread_headers)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_pthread_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_boilerplate_headers += $(cairo_boilerplate_gobject_headers)
|
|
||||||
all_cairo_boilerplate_headers += $(cairo_boilerplate_gobject_headers)
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_gobject_private)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_gobject_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)
|
|
||||||
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_gobject_headers)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_gobject_private)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_gobject_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_trace_private) $(cairo_boilerplate_trace_headers)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_trace_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_TRACE),1)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_trace_private) $(cairo_boilerplate_trace_headers)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_trace_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_interpreter_private) $(cairo_boilerplate_interpreter_headers)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_interpreter_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_INTERPRETER),1)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_interpreter_private) $(cairo_boilerplate_interpreter_headers)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_interpreter_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
all_cairo_boilerplate_private += $(cairo_boilerplate_symbol_lookup_private) $(cairo_boilerplate_symbol_lookup_headers)
|
|
||||||
all_cairo_boilerplate_sources += $(cairo_boilerplate_symbol_lookup_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_SYMBOL_LOOKUP),1)
|
|
||||||
enabled_cairo_boilerplate_private += $(cairo_boilerplate_symbol_lookup_private) $(cairo_boilerplate_symbol_lookup_headers)
|
|
||||||
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_symbol_lookup_sources)
|
|
||||||
endif
|
|
||||||
16
build/.gitignore
vendored
16
build/.gitignore
vendored
|
|
@ -1,16 +0,0 @@
|
||||||
ar-lib
|
|
||||||
compile
|
|
||||||
config.guess
|
|
||||||
config.sub
|
|
||||||
depcomp
|
|
||||||
install-sh
|
|
||||||
ltmain.sh
|
|
||||||
missing
|
|
||||||
mkinstalldirs
|
|
||||||
#Makefile.win32.features
|
|
||||||
#Makefile.win32.features-h
|
|
||||||
libtool.m4
|
|
||||||
lt*.m4
|
|
||||||
gtk-doc.m4
|
|
||||||
test-driver
|
|
||||||
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
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
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
||||||
# 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
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
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
|
|
||||||
|
|
@ -1,173 +0,0 @@
|
||||||
# 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 update 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 sgml-build.stamp html-build.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
|
|
||||||
|
|
||||||
#### 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: $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(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=$(DOC_MODULE) --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)/xml
|
|
||||||
mkdir $(distdir)/html
|
|
||||||
-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
|
|
||||||
|
|
@ -1,194 +0,0 @@
|
||||||
# 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 = cairo.freedesktop.org
|
|
||||||
RELEASE_UPLOAD_BASE = /srv/cairo.freedesktop.org/www
|
|
||||||
RELEASE_UPLOAD_DIR = $(RELEASE_UPLOAD_BASE)/$(RELEASE_OR_SNAPSHOT)s
|
|
||||||
RELEASE_URL_BASE = https://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..."
|
|
||||||
@if curl --head --fail --silent "$(RELEASE_URL_BASE)/LATEST-$(PACKAGE)-$(VERSION)" >/dev/null; then \
|
|
||||||
(echo "Ouch." && echo "Found: $(RELEASE_URL_BASE)/LATEST-$(PACKAGE)-$(VERSION)" \
|
|
||||||
&& echo "Are you sure you have an updated checkout?" \
|
|
||||||
&& echo "This should never happen." \
|
|
||||||
&& false); else :; fi
|
|
||||||
@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)
|
|
||||||
|
|
@ -1,74 +0,0 @@
|
||||||
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
|
|
||||||
|
|
@ -1,33 +0,0 @@
|
||||||
# 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_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_PNG_FUNCTIONS=1
|
|
||||||
CAIRO_HAS_GL_SURFACE=0
|
|
||||||
CAIRO_HAS_GLESV2_SURFACE=0
|
|
||||||
CAIRO_HAS_GLESV3_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
|
|
||||||
|
|
@ -1,106 +0,0 @@
|
||||||
# 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_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_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_GLESV3_SURFACE),1)
|
|
||||||
@echo "#define CAIRO_HAS_GLESV3_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
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
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
|
|
||||||
|
|
@ -1,228 +0,0 @@
|
||||||
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_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
||||||
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="gcc-legacy" ], []
|
|
||||||
)
|
|
||||||
|
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
|
||||||
int atomic_add(int i) { return __atomic_fetch_add(&i, 1, __ATOMIC_SEQ_CST); }
|
|
||||||
int atomic_cmpxchg(int i, int j, int k) { return __atomic_compare_exchange_n(&i, &j, k, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); }
|
|
||||||
]], [[]])],
|
|
||||||
[ cairo_cv_atomic_primitives="cxx11" ], []
|
|
||||||
)
|
|
||||||
|
|
||||||
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" = xcxx11; then
|
|
||||||
AC_DEFINE(HAVE_CXX11_ATOMIC_PRIMITIVES, 1,
|
|
||||||
[Enable if your compiler supports the GCC __atomic_* atomic primitives])
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$cairo_cv_atomic_primitives" = xgcc-legacy; then
|
|
||||||
AC_DEFINE(HAVE_GCC_LEGACY_ATOMICS, 1,
|
|
||||||
[Enable if your compiler supports the legacy GCC __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="yes" ;;
|
|
||||||
*) 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)])
|
|
||||||
|
|
@ -1,162 +0,0 @@
|
||||||
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
|
|
||||||
|
|
@ -1,409 +0,0 @@
|
||||||
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
|
|
||||||
|
|
||||||
|
|
@ -1,68 +0,0 @@
|
||||||
# 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 implementation 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 endianness 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; }
|
|
||||||
|
|
||||||
]])], [
|
|
||||||
|
|
||||||
# allow users to override default 'strings' with 'llvm-strings'
|
|
||||||
# or ${CHOST}-strings.
|
|
||||||
AC_CHECK_TOOL(STRINGS, strings)
|
|
||||||
if $STRINGS -a conftest$ac_exeext | grep noonsees >/dev/null ; then
|
|
||||||
ax_cv_c_float_words_bigendian=yes
|
|
||||||
fi
|
|
||||||
if $STRINGS -a 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
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
dnl -*- mode: autoconf -*-
|
|
||||||
|
|
||||||
# serial 1
|
|
||||||
|
|
||||||
dnl Usage:
|
|
||||||
dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
|
|
||||||
AC_DEFUN([GTK_DOC_CHECK],
|
|
||||||
[
|
|
||||||
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
|
|
||||||
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
|
|
||||||
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])
|
|
||||||
|
|
||||||
if test x$enable_gtk_doc = xyes; then
|
|
||||||
ifelse([$1],[],
|
|
||||||
[PKG_CHECK_EXISTS([gtk-doc],,
|
|
||||||
AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
|
|
||||||
[PKG_CHECK_EXISTS([gtk-doc >= $1],,
|
|
||||||
AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build gtk-doc]))])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to build gtk-doc documentation])
|
|
||||||
AC_MSG_RESULT($enable_gtk_doc)
|
|
||||||
|
|
||||||
AC_PATH_PROGS(GTKDOC_CHECK,gtkdoc-check,)
|
|
||||||
|
|
||||||
AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
|
|
||||||
AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
|
|
||||||
])
|
|
||||||
|
|
@ -1,234 +0,0 @@
|
||||||
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
|
|
||||||
|
|
@ -1,157 +0,0 @@
|
||||||
# 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 <https://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
|
|
||||||
|
|
@ -1,106 +0,0 @@
|
||||||
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
|
|
||||||
|
|
@ -1,416 +0,0 @@
|
||||||
|
|
||||||
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_sources = $($1_sources)
|
|
||||||
])dnl
|
|
||||||
CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,*,*,!,
|
|
||||||
[dnl
|
|
||||||
all_$1_headers += $($1_$2_headers)
|
|
||||||
all_$1_private += $($1_$2_private)
|
|
||||||
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_sources = $($1_sources)
|
|
||||||
])dnl
|
|
||||||
CAIRO_MAKEFILE_ACCUMULATE_FEATURE(*,yes,*,!,
|
|
||||||
[dnl
|
|
||||||
enabled_$1_headers += $($1_$2_headers)
|
|
||||||
enabled_$1_private += $($1_$2_private)
|
|
||||||
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_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_sources += $($1_$2_sources)]dnl
|
|
||||||
)dnl
|
|
||||||
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
dnl
|
|
||||||
dnl Generate .pc files
|
|
||||||
dnl
|
|
||||||
|
|
||||||
dnl All .pc files are generated automatically except for these
|
|
||||||
AC_CONFIG_FILES([src/cairo.pc])dnl
|
|
||||||
AC_CONFIG_FILES([cairo-uninstalled.pc:src/cairo-uninstalled.pc.in])dnl
|
|
||||||
AC_CONFIG_FILES([util/cairo-script/cairo-script-interpreter.pc])dnl
|
|
||||||
AC_CONFIG_FILES([util/cairo-script/cairo-script-interpreter-uninstalled.pc:util/cairo-script/cairo-script-interpreter-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,*,!,
|
|
||||||
[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 " Xlib: $use_xlib"
|
|
||||||
echo " Xlib Xrender: $use_xlib_xrender"
|
|
||||||
echo " Quartz: $use_quartz"
|
|
||||||
echo " Quartz-image: $use_quartz_image"
|
|
||||||
echo " XCB: $use_xcb"
|
|
||||||
echo " Win32: $use_win32"
|
|
||||||
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 " OpenGL ES 3.0: $use_glesv3"
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
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])
|
|
||||||
|
|
@ -1,253 +0,0 @@
|
||||||
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=""
|
|
||||||
])
|
|
||||||
|
|
@ -1,170 +0,0 @@
|
||||||
|
|
||||||
dnl Non-failing checks for functions, headers, libraries, etc go here
|
|
||||||
|
|
||||||
|
|
||||||
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 ====================================================================
|
|
||||||
|
|
||||||
LT_LIB_M
|
|
||||||
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_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[__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 poll.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 localtime_r gmtime_r drand48 flockfile funlockfile getline link strndup])
|
|
||||||
|
|
||||||
dnl Check if the runtime platform is a native Win32 host.
|
|
||||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
|
|
||||||
#ifdef _WIN32
|
|
||||||
choke me
|
|
||||||
#endif
|
|
||||||
]])], [have_windows=no], [have_windows=yes])
|
|
||||||
|
|
||||||
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_COMPILE_IFELSE(
|
|
||||||
[
|
|
||||||
AC_LANG_PROGRAM([[
|
|
||||||
#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_COMPILE_IFELSE(
|
|
||||||
[AC_LANG_PROGRAM([[
|
|
||||||
#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 Test for the tools required for building one big test binary
|
|
||||||
|
|
||||||
|
|
||||||
AC_CHECK_FUNCS(fork waitpid raise)
|
|
||||||
|
|
||||||
|
|
@ -1,24 +0,0 @@
|
||||||
|
|
||||||
AC_PATH_PROG(FIND, find)
|
|
||||||
AC_PATH_PROG(XARGS, xargs)
|
|
||||||
|
|
||||||
AC_PROG_CC
|
|
||||||
AC_PROG_CPP
|
|
||||||
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 (https://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)
|
|
||||||
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
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)
|
|
||||||
|
|
@ -1,99 +0,0 @@
|
||||||
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 unknown each time another warning happens.
|
|
||||||
# -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)
|
|
||||||
819
configure.ac
819
configure.ac
|
|
@ -1,819 +0,0 @@
|
||||||
AC_PREREQ([2.63])
|
|
||||||
CAIRO_PARSE_VERSION
|
|
||||||
AC_INIT([cairo],
|
|
||||||
[cairo_version_major.cairo_version_minor.cairo_version_micro],
|
|
||||||
[https://gitlab.freedesktop.org/cairo/cairo/-/issues],
|
|
||||||
[cairo],
|
|
||||||
[https://cairographics.org/])
|
|
||||||
AC_CONFIG_AUX_DIR(build)
|
|
||||||
AC_CONFIG_MACRO_DIR(build)
|
|
||||||
AC_USE_SYSTEM_EXTENSIONS
|
|
||||||
AC_CONFIG_SRCDIR(src/cairo.h)
|
|
||||||
AC_CONFIG_HEADERS(config.h)
|
|
||||||
|
|
||||||
AC_CHECK_HEADERS([unistd.h sys/ioctl.h])
|
|
||||||
AC_C_TYPEOF
|
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([1.11 foreign -Wall no-define no-dist-gzip dist-xz serial-tests subdir-objects])
|
|
||||||
AM_SILENT_RULES([yes])
|
|
||||||
m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) dnl Workaround for Automake 1.12
|
|
||||||
|
|
||||||
# Initialize libtool
|
|
||||||
LT_PREREQ([2.2])
|
|
||||||
LT_INIT([win32-dll])
|
|
||||||
|
|
||||||
# Api documentation
|
|
||||||
GTK_DOC_CHECK([1.15],[--flavour no-tmpl])
|
|
||||||
|
|
||||||
AC_SYS_LARGEFILE
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
dnl
|
|
||||||
dnl The order of the includes here is rather important
|
|
||||||
dnl
|
|
||||||
m4_include(build/configure.ac.version) dnl macros setting up various version declares
|
|
||||||
m4_include(build/configure.ac.tools) dnl checks for tools we use
|
|
||||||
m4_include(build/configure.ac.features) dnl macros for backend/feature handling
|
|
||||||
m4_include(build/configure.ac.warnings) dnl checks for compiler warning
|
|
||||||
m4_include(build/configure.ac.system) dnl checks for system functions, headers, libs
|
|
||||||
m4_include(build/configure.ac.analysis) dnl checks for analysis tools (lcov, etc)
|
|
||||||
m4_include(build/configure.ac.noversion) dnl disable builtin libtool versioning
|
|
||||||
m4_include(build/configure.ac.pthread) dnl checks for pthreads
|
|
||||||
AC_CACHE_SAVE
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
AC_CHECK_LIB(z, compress,
|
|
||||||
[AC_CHECK_HEADER(zlib.h, [
|
|
||||||
have_libz=yes
|
|
||||||
AC_DEFINE(HAVE_ZLIB, 1, [Define to 1 if you have zlib available])
|
|
||||||
],
|
|
||||||
[have_libz="no (requires zlib http://www.gzip.org/zlib/)"])],
|
|
||||||
[have_libz="no (requires zlib http://www.gzip.org/zlib/)"])
|
|
||||||
|
|
||||||
save_LIBS="$LIBS"
|
|
||||||
AC_CHECK_LIB(lzo2, lzo2a_decompress,
|
|
||||||
[AC_CHECK_HEADER(lzo/lzo2a.h, [
|
|
||||||
have_lzo=yes
|
|
||||||
AC_DEFINE(HAVE_LZO, 1, [Define to 1 if you have lzo available])
|
|
||||||
lzo_LIBS="-llzo2"
|
|
||||||
],
|
|
||||||
[have_lzo="no (requires lzpo http://www.oberhumer.com/opensource/lzo/)"])],
|
|
||||||
[have_lzo="no (requires lzpo http://www.oberhumer.com/opensource/lzo/)"])
|
|
||||||
AC_SUBST(lzo_LIBS)
|
|
||||||
LIBS="$save_LIBS"
|
|
||||||
|
|
||||||
AC_CHECK_LIB(dl, dlsym,
|
|
||||||
[have_dlsym=yes; have_dl=yes],
|
|
||||||
[have_dlsym=no; have_dl=no])
|
|
||||||
if test "x$have_dlsym" = "xno"; then
|
|
||||||
AC_CHECK_FUNC(dlsym, [have_dlsym=yes], [have_dlsym=no])
|
|
||||||
fi
|
|
||||||
AC_CHECK_HEADERS(dlfcn.h, [have_dlsym=yes], [have_dlsym=no])
|
|
||||||
AM_CONDITIONAL(CAIRO_HAS_DL, test "x$have_dl" = "xyes")
|
|
||||||
if test "x$have_dlsym" = "xyes"; then
|
|
||||||
AC_DEFINE([CAIRO_HAS_DLSYM], 1, [Define to 1 if dlsym is available])
|
|
||||||
fi
|
|
||||||
AM_CONDITIONAL(CAIRO_HAS_DLSYM, test "x$have_dlsym" = "xyes")
|
|
||||||
|
|
||||||
AC_CHECK_HEADERS(xlocale.h)
|
|
||||||
AC_CHECK_FUNCS(newlocale strtod_l)
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(xlib, Xlib, auto, [
|
|
||||||
xlib_REQUIRES="x11 xext"
|
|
||||||
PKG_CHECK_MODULES(xlib, $xlib_REQUIRES, ,
|
|
||||||
[xlib_REQUIRES=""
|
|
||||||
AC_PATH_XTRA
|
|
||||||
if test "x$no_x" = xyes; then
|
|
||||||
use_xlib="no (requires X development libraries)"
|
|
||||||
else
|
|
||||||
xlib_NONPKGCONFIG_LIBS="$X_PRE_LIBS $X_LIBS -lX11 -lXext $X_EXTRA_LIBS"
|
|
||||||
xlib_NONPKGCONFIG_CFLAGS=$X_CFLAGS
|
|
||||||
fi])
|
|
||||||
|
|
||||||
AC_CHECK_HEADER(sys/ipc.h)
|
|
||||||
AC_CHECK_HEADER(sys/shm.h)
|
|
||||||
|
|
||||||
if test "$ac_cv_header_sys_ipc_h" = "yes" -a "$ac_cv_header_sys_shm_h" = "yes"; then
|
|
||||||
AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches)
|
|
||||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/ipc.h>
|
|
||||||
#include <sys/shm.h>
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
char *shmaddr;
|
|
||||||
int id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0600);
|
|
||||||
if (id == -1) return 2;
|
|
||||||
shmaddr = shmat (id, 0, 0);
|
|
||||||
shmctl (id, IPC_RMID, 0);
|
|
||||||
if ((char*) shmat (id, 0, 0) == (char*) -1) {
|
|
||||||
shmdt (shmaddr);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
shmdt (shmaddr);
|
|
||||||
shmdt (shmaddr);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
]])],
|
|
||||||
[
|
|
||||||
AC_DEFINE(IPC_RMID_DEFERRED_RELEASE, 1, Define to 1 if shared memory segments are released deferred.)
|
|
||||||
AC_MSG_RESULT(yes)],
|
|
||||||
[AC_MSG_RESULT(no)],[AC_MSG_RESULT(assuming no)])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_CHECK_HEADERS([X11/extensions/XShm.h X11/extensions/shmproto.h X11/extensions/shmstr.h], [], [],
|
|
||||||
[#include <X11/Xlibint.h>
|
|
||||||
#include <X11/Xproto.h>])
|
|
||||||
])
|
|
||||||
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(xlib_xrender, Xlib Xrender, auto, [
|
|
||||||
if test "x$use_xlib" != "xyes"; then
|
|
||||||
use_xlib_xrender="no (requires --enable-xlib)"
|
|
||||||
else
|
|
||||||
dnl Check for Xrender header files if the Xrender package is not installed:
|
|
||||||
xlib_xrender_BASE=cairo-xlib
|
|
||||||
dnl Keep in sync with meson.build!
|
|
||||||
xlib_xrender_REQUIRES="xrender >= 0.6"
|
|
||||||
PKG_CHECK_MODULES(xlib_xrender, $xlib_xrender_REQUIRES, ,
|
|
||||||
[xlib_xrender_REQUIRES=""
|
|
||||||
old_CPPFLAGS=$CPPFLAGS
|
|
||||||
CPPFLAGS="$CPPFLAGS $xlib_CFLAGS $xlib_NONPKGCONFIG_CFLAGS"
|
|
||||||
AC_CHECK_HEADER(X11/extensions/Xrender.h,
|
|
||||||
[xlib_xrender_NONPKGCONFIG_LIBS="-lXrender"],
|
|
||||||
[use_xlib_xrender="no (requires $xlib_xrender_REQUIRES https://freedesktop.org/Software/xlibs)"],
|
|
||||||
[#include <X11/X.h>])
|
|
||||||
CPPFLAGS=$old_CPPFLAGS
|
|
||||||
])
|
|
||||||
|
|
||||||
old_CFLAGS=$CFLAGS
|
|
||||||
old_LIBS=$LIBS
|
|
||||||
CFLAGS="$CFLAGS $xlib_CFLAGS $xlib_NONPKGCONFIG_CFLAGS $xlib_xrender_CFLAGS $xlib_xrender_NONPKGCONFIG_CFLAGS"
|
|
||||||
LIBS="$LIBS $xlib_LIBS $xlib_NONPKGCONFIG_LIBS $xlib_xrender_LIBS $xlib_xrender_NONPKGCONFIG_LIBS"
|
|
||||||
AC_CHECK_FUNCS([XRenderCreateSolidFill XRenderCreateLinearGradient XRenderCreateRadialGradient XRenderCreateConicalGradient])
|
|
||||||
CFLAGS=$old_CFLAGS
|
|
||||||
LIBS=$old_LIBS
|
|
||||||
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(xcb, XCB, auto, [
|
|
||||||
dnl Keep in sync with meson.build!
|
|
||||||
xcb_REQUIRES="xcb >= 1.6 xcb-render >= 1.6"
|
|
||||||
PKG_CHECK_MODULES(xcb, $xcb_REQUIRES, ,
|
|
||||||
[use_xcb="no (requires $xcb_REQUIRES https://xcb.freedesktop.org)"])
|
|
||||||
])
|
|
||||||
|
|
||||||
CAIRO_ENABLE_FUNCTIONS(xlib_xcb, Xlib/XCB, no, [
|
|
||||||
if test "x$use_xcb" = "xyes" -a "x$use_xlib" = "xyes"; then
|
|
||||||
xlib_xcb_REQUIRES="x11-xcb"
|
|
||||||
PKG_CHECK_MODULES(xlib_xcb, $xlib_xcb_REQUIRES, ,
|
|
||||||
[use_xlib_xcb="no (requires $xlib_xcb_REQUIRES https://xcb.freedesktop.org)"])
|
|
||||||
else
|
|
||||||
use_xlib_xcb="no (requires both --enable-xlib and --enable-xcb)"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
CAIRO_ENABLE_FUNCTIONS(xcb_shm, XCB/SHM, auto, [
|
|
||||||
if test "x$use_xcb" = "xyes"; then
|
|
||||||
xcb_shm_REQUIRES="xcb-shm"
|
|
||||||
PKG_CHECK_MODULES(xcb_shm, $xcb_shm_REQUIRES, ,
|
|
||||||
[use_xcb_shm="no (requires $xcb_shm https://xcb.freedesktop.org)"])
|
|
||||||
else
|
|
||||||
use_xcb_shm="no (requires --enable-xcb)"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(quartz, Quartz, auto, [
|
|
||||||
dnl There is no pkgconfig for quartz; lets do a header check
|
|
||||||
AC_CHECK_HEADER(ApplicationServices/ApplicationServices.h, , [use_quartz="no (requires ApplicationServices framework)"])
|
|
||||||
AC_CHECK_FUNC([CTFontDrawGlyphs],,[use_quartz_fonts="no (requires Mac OS X 10.7 or later)"])
|
|
||||||
if test "x$use_quartz" = "xyes" ; then
|
|
||||||
quartz_LIBS="-Xlinker -framework -Xlinker ApplicationServices"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
CAIRO_ENABLE_FONT_BACKEND(quartz_font, Quartz, auto, [
|
|
||||||
use_quartz_font=$use_quartz
|
|
||||||
])
|
|
||||||
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(quartz_image, Quartz Image, no, [
|
|
||||||
use_quartz_image=$use_quartz
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(win32, Microsoft Windows, auto, [
|
|
||||||
if test "x$have_windows" != xyes; then
|
|
||||||
use_win32="no (requires a Win32 platform)"
|
|
||||||
fi
|
|
||||||
win32_LIBS="-lgdi32 -lmsimg32"
|
|
||||||
])
|
|
||||||
|
|
||||||
CAIRO_ENABLE_FONT_BACKEND(win32_font, Microsoft Windows, auto, [
|
|
||||||
use_win32_font=$use_win32
|
|
||||||
])
|
|
||||||
|
|
||||||
test_win32_printing=no
|
|
||||||
if test "x$use_win32" = "xyes"; then
|
|
||||||
AC_CHECK_PROG(GS, gs, gs)
|
|
||||||
if test "$GS"; then
|
|
||||||
AC_DEFINE([CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE], 1, [Define to 1 if the Win32 Printing backend can be tested (needs ghostscript)])
|
|
||||||
test_win32_printing="yes"
|
|
||||||
else
|
|
||||||
AC_MSG_WARN([Win32 Printing backend will not be tested since ghostscript is not available])
|
|
||||||
test_win32_printing="no (requires ghostscript)"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE, test "x$test_win32_printing" = "xyes")
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
CAIRO_ENABLE_FUNCTIONS(png, PNG, yes, [
|
|
||||||
use_png=no
|
|
||||||
AC_ARG_VAR([png_REQUIRES], [module name for libpng to search for using pkg-config])
|
|
||||||
if test "x$png_REQUIRES" = x; then
|
|
||||||
# libpng13 is GnuWin32's libpng-1.2.8 :-(
|
|
||||||
for l in libpng libpng14 libpng12 libpng13 libpng10; do
|
|
||||||
if $PKG_CONFIG --exists $l ; then
|
|
||||||
png_REQUIRES=$l
|
|
||||||
use_png=yes
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
else
|
|
||||||
use_png=yes
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$use_png" = "xyes" ; then
|
|
||||||
PKG_CHECK_MODULES(png, $png_REQUIRES, , : )
|
|
||||||
else
|
|
||||||
AC_MSG_WARN([Could not find libpng in the pkg-config search path])
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(gl, OpenGL, no, [
|
|
||||||
gl_REQUIRES="gl"
|
|
||||||
PKG_CHECK_MODULES(gl, $gl_REQUIRES,, [
|
|
||||||
dnl Fallback to searching for headers
|
|
||||||
AC_CHECK_HEADER(GL/gl.h,, [use_gl="no (gl.pc nor OpenGL headers not found)"])
|
|
||||||
if test "x$use_gl" = "xyes"; then
|
|
||||||
gl_NONPKGCONFIG_CFLAGS=
|
|
||||||
gl_NONPKGCONFIG_LIBS="-lGL"
|
|
||||||
fi])
|
|
||||||
|
|
||||||
if test "x$have_dl" = "xyes" -a "x$have_dlsym" = "xyes"; then
|
|
||||||
gl_LIBS="$gl_LIBS -ldl"
|
|
||||||
fi
|
|
||||||
|
|
||||||
need_glx_functions=yes
|
|
||||||
need_wgl_functions=yes
|
|
||||||
need_egl_functions=yes
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(glesv2, OpenGLESv2, no, [
|
|
||||||
glesv2_REQUIRES="glesv2"
|
|
||||||
PKG_CHECK_MODULES(glesv2, $glesv2_REQUIRES,, [
|
|
||||||
dnl Fallback to searching for headers
|
|
||||||
AC_CHECK_HEADER(GLES2/gl2.h,, [use_glesv2="no (glesv2.pc nor OpenGL ES 2.0 headers not found)"])
|
|
||||||
if test "x$use_glesv2" = "xyes"; then
|
|
||||||
glesv2_NONPKGCONFIG_CFLAGS=
|
|
||||||
glesv2_NONPKGCONFIG_LIBS="-lGLESv2"
|
|
||||||
fi])
|
|
||||||
|
|
||||||
if test "x$have_dl" = "xyes" -a "x$have_dlsym" = "xyes"; then
|
|
||||||
glesv2_LIBS="$glesv2_LIBS -ldl"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$use_glesv2" = "xyes" -a "x$use_gl" = "xyes"; then
|
|
||||||
AC_MSG_ERROR([use either --enable-gl=yes or --enable-glesv2=yes. Not both at the same time.])
|
|
||||||
fi
|
|
||||||
|
|
||||||
need_egl_functions=yes
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(glesv3, OpenGLESv3, no, [
|
|
||||||
dnl glesv3 is provided via libGLESv2.so, so require glesv2.pc (there is no libGLESv3, nor glesv3.pc)
|
|
||||||
glesv3_REQUIRES="glesv2"
|
|
||||||
PKG_CHECK_MODULES(glesv3, $glesv3_REQUIRES,, [
|
|
||||||
use_glesv3="no (glesv2.pc not found, required for glesv3)"
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl Since there is no glesv3.pc, need to search for header files
|
|
||||||
AC_CHECK_HEADER(GLES3/gl3.h,, [use_glesv3="no (OpenGL ES 3.0 headers not found)"])
|
|
||||||
if test "x$use_glesv3" = "xyes"; then
|
|
||||||
glesv3_NONPKGCONFIG_CFLAGS=
|
|
||||||
glesv3_NONPKGCONFIG_LIBS="-lGLESv2"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$have_dl" = "xyes" -a "x$have_dlsym" = "xyes"; then
|
|
||||||
glesv3_LIBS="$glesv3_LIBS -ldl"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$use_glesv3" = "xyes" -a "x$use_gl" = "xyes"; then
|
|
||||||
AC_MSG_ERROR([use either --enable-gl=yes or --enable-glesv3=yes. Not both at the same time.])
|
|
||||||
fi
|
|
||||||
|
|
||||||
need_egl_functions=yes
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
CAIRO_ENABLE_FUNCTIONS(egl, EGL, auto, [
|
|
||||||
if test "x$need_egl_functions" = "xyes"; then
|
|
||||||
egl_REQUIRES="egl"
|
|
||||||
PKG_CHECK_MODULES(egl, $egl_REQUIRES, ,
|
|
||||||
[egl_REQUIRES=""
|
|
||||||
AC_CHECK_HEADER(EGL/egl.h,, [use_egl="no (EGL headers not found)"])
|
|
||||||
if test "x$use_egl" = "xyes"; then
|
|
||||||
egl_NONPKGCONFIG_CFLAGS=
|
|
||||||
egl_NONPKGCONFIG_LIBS=
|
|
||||||
save_LIBS="$LIBS"
|
|
||||||
other_egl_LIBS=""
|
|
||||||
# Temporary workaround for missing link from egl13
|
|
||||||
AC_CHECK_LIB(csi, csi_stream_attachresource, other_egl_LIBS="-lcsi")
|
|
||||||
LIBS="$other_egl_LIBS $LIBS"
|
|
||||||
for egl_lib in EGL egl13 egl12 egl11; do
|
|
||||||
if test -z "$egl_NONPKGCONFIG_LIBS"; then
|
|
||||||
AC_CHECK_LIB($egl_lib, eglGetError, egl_NONPKGCONFIG_LIBS="-l$egl_lib")
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test -z "$egl_NONPKGCONFIG_LIBS"; then
|
|
||||||
use_egl="no (EGL library not found)"
|
|
||||||
else
|
|
||||||
egl_NONPKGCONFIG_LIBS="$egl_NONPKGCONFIG_LIBS $other_egl_LIBS"
|
|
||||||
fi
|
|
||||||
LIBS="$save_LIBS"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
else
|
|
||||||
use_egl="no (not required by any backend)"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
CAIRO_ENABLE_FUNCTIONS(glx, GLX, auto, [
|
|
||||||
if test "x$need_glx_functions" = "xyes"; then
|
|
||||||
save_CFLAGS="$CFLAGS"
|
|
||||||
CFLAGS="$CFLAGS $gl_CFLAGS $gl_NONPKGCONFIG_CFLAGS"
|
|
||||||
AC_CHECK_HEADER(GL/glx.h,, [use_glx="no (GLX headers not found)"])
|
|
||||||
glx_NONPKGCONFIG_CFLAGS=
|
|
||||||
glx_NONPKGCONFIG_LIBS="-lGL"
|
|
||||||
CFLAGS="$save_CFLAGS"
|
|
||||||
else
|
|
||||||
use_glx="no (not required by any backend)"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
CAIRO_ENABLE_FUNCTIONS(wgl, WGL, auto, [
|
|
||||||
if test "x$need_wgl_functions" = "xyes"; then
|
|
||||||
AC_CHECK_HEADER(windows.h,, [use_wgl="no (WGL headers not found)"])
|
|
||||||
else
|
|
||||||
use_wgl="no (not required by any backend)"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
any2ppm_cs=no
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(script, script, yes, [
|
|
||||||
any2ppm_cs=yes
|
|
||||||
# The script backend requires zlib.
|
|
||||||
use_script=$have_libz
|
|
||||||
script_NONPKGCONFIG_LIBS=-lz
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
# We use pkg-config to look for freetype2, but fall back to
|
|
||||||
# freetype-config if it fails. We prefer pkg-config, since we can
|
|
||||||
# then just put freetype2 >= $FREETYPE_MIN_VERSION in
|
|
||||||
# Requires.private, but at least up to 2003-06-07, there was no
|
|
||||||
# freetype2.pc in the release.
|
|
||||||
#
|
|
||||||
# FreeType versions come in three forms:
|
|
||||||
# release (such as 2.1.9)
|
|
||||||
# libtool (such as 9.7.3) (returned by freetype-config and pkg-config)
|
|
||||||
# platform-specific/soname (such as 6.3.4)
|
|
||||||
# and they recommend you never use the platform-specific version
|
|
||||||
# (see docs/VERSION.DLL in freetype2 sources)
|
|
||||||
#
|
|
||||||
# Set these as appropriate:
|
|
||||||
|
|
||||||
# release number - for information only
|
|
||||||
FREETYPE_MIN_RELEASE=2.1.9
|
|
||||||
# libtool-specific version - this is what is checked
|
|
||||||
# Keep in sync with meson.build!
|
|
||||||
FREETYPE_MIN_VERSION=9.7.3
|
|
||||||
|
|
||||||
CAIRO_ENABLE_FONT_BACKEND(ft, FreeType, auto, [
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES(FREETYPE, freetype2 >= $FREETYPE_MIN_VERSION,
|
|
||||||
[freetype_pkgconfig=yes],
|
|
||||||
[freetype_pkgconfig=no])
|
|
||||||
|
|
||||||
if test "x$freetype_pkgconfig" = "xyes"; then
|
|
||||||
ft_REQUIRES="freetype2 >= $FREETYPE_MIN_VERSION $ft_REQUIRES"
|
|
||||||
else
|
|
||||||
|
|
||||||
if test -z "$FREETYPE_CONFIG"; then
|
|
||||||
AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
|
|
||||||
fi
|
|
||||||
if test "x$FREETYPE_CONFIG" = "xno" ; then
|
|
||||||
use_ft='no (freetype-config not found in path or $FREETYPE_CONFIG)'
|
|
||||||
else
|
|
||||||
AC_MSG_CHECKING(freetype2 libtool version)
|
|
||||||
|
|
||||||
FREETYPE_VERSION=`$FREETYPE_CONFIG --version`
|
|
||||||
AX_COMPARE_VERSION([$FREETYPE_VERSION], [gt], [$FREETYPE_MIN_VERSION],
|
|
||||||
[AC_MSG_RESULT($FREETYPE_VERSION - OK)
|
|
||||||
ft_NONPKGCONFIG_CFLAGS=`$FREETYPE_CONFIG --cflags`
|
|
||||||
ft_NONPKGCONFIG_LIBS=`$FREETYPE_CONFIG --libs`],
|
|
||||||
[AC_MSG_RESULT($FREETYPE_VERSION - Too old)
|
|
||||||
use_ft="no ($FREETYPE_VERSION found; version $FREETYPE_MIN_VERSION from release $FREETYPE_MIN_RELEASE required)"])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
ft_CFLAGS="$FREETYPE_CFLAGS"
|
|
||||||
ft_LIBS="$FREETYPE_LIBS"
|
|
||||||
])
|
|
||||||
|
|
||||||
# Keep in sync with meson.build!
|
|
||||||
FONTCONFIG_MIN_VERSION=2.2.95
|
|
||||||
CAIRO_ENABLE_FONT_BACKEND(fc, Fontconfig, auto, [
|
|
||||||
use_fc=$use_ft
|
|
||||||
if test "x$use_fc" = "xyes"; then
|
|
||||||
fc_REQUIRES="fontconfig >= $FONTCONFIG_MIN_VERSION"
|
|
||||||
PKG_CHECK_MODULES(FONTCONFIG, $fc_REQUIRES,,
|
|
||||||
[use_fc="no (requires $fc_REQUIRES)"])
|
|
||||||
fi
|
|
||||||
fc_CFLAGS="$FONTCONFIG_CFLAGS"
|
|
||||||
fc_LIBS="$FONTCONFIG_LIBS"
|
|
||||||
])
|
|
||||||
|
|
||||||
if test "x$use_ft" = "xyes"; then
|
|
||||||
_save_libs="$LIBS"
|
|
||||||
_save_cflags="$CFLAGS"
|
|
||||||
LIBS="$LIBS $ft_LIBS"
|
|
||||||
CFLAGS="$CFLAGS $ft_CFLAGS"
|
|
||||||
|
|
||||||
AC_CHECK_FUNCS(FT_Get_X11_Font_Format FT_GlyphSlot_Embolden FT_GlyphSlot_Oblique FT_Load_Sfnt_Table FT_Library_SetLcdFilter FT_Get_Var_Design_Coordinates FT_Done_MM_Var FT_Palette_Select)
|
|
||||||
|
|
||||||
AC_CHECK_TYPES([FT_SVG_Document], [have_ft_svg=yes], [have_ft_svg=no], [[#include <freetype/otsvg.h>]])
|
|
||||||
AM_CONDITIONAL(HAVE_FT_SVG_DOCUMENT, test "x$have_ft_svg=" = "xyes")
|
|
||||||
|
|
||||||
AC_MSG_CHECKING(for FT_HAS_COLOR)
|
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([
|
|
||||||
#include <ft2build.h>
|
|
||||||
#include FT_FREETYPE_H
|
|
||||||
],[
|
|
||||||
FT_Long has_color = FT_HAS_COLOR( ((FT_Face)NULL) );
|
|
||||||
])],[AC_MSG_RESULT([yes])],[
|
|
||||||
AC_DEFINE([FT_HAS_COLOR(x)], [(0)], [Define to (0) if freetype2 does not support color fonts])
|
|
||||||
AC_MSG_RESULT([no, disable color font (freetype2 >= 2.5.1 is required)])
|
|
||||||
])
|
|
||||||
|
|
||||||
LIBS="$_save_libs"
|
|
||||||
CFLAGS="$_save_cflags"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$use_fc" = "xyes"; then
|
|
||||||
CAIRO_CHECK_FUNCS_WITH_FLAGS(FcInit FcFini, [$FONTCONFIG_CFLAGS], [$FONTCONFIG_LIBS])
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(ps, PostScript, yes, [
|
|
||||||
# The ps backend requires zlib.
|
|
||||||
use_ps=$have_libz
|
|
||||||
ps_NONPKGCONFIG_LIBS=-lz
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
# Keep in sync with meson.build!
|
|
||||||
SPECTRE_VERSION_REQUIRED=0.2.0
|
|
||||||
test_ps=no
|
|
||||||
any2ppm_ps=no
|
|
||||||
if test "x$use_ps" = "xyes"; then
|
|
||||||
AC_CHECK_PROG(GS, gs, gs)
|
|
||||||
if test "$GS"; then
|
|
||||||
AC_DEFINE([CAIRO_CAN_TEST_PS_SURFACE], 1, [Define to 1 if the PS backend can be tested (needs ghostscript)])
|
|
||||||
test_ps="yes"
|
|
||||||
else
|
|
||||||
AC_MSG_WARN([PS backend will not be tested since ghostscript is not available])
|
|
||||||
test_ps="no (requires ghostscript)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
libspectre_DEPENDENCY="libspectre >= $SPECTRE_VERSION_REQUIRED"
|
|
||||||
PKG_CHECK_MODULES(LIBSPECTRE, $libspectre_DEPENDENCY,
|
|
||||||
[any2ppm_ps=yes],
|
|
||||||
[test_ps="no (requires libspectre)"])
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(CAIRO_CAN_TEST_PS_SURFACE, test "x$test_ps" = "xyes")
|
|
||||||
AM_CONDITIONAL(CAIRO_HAS_SPECTRE, test "x$any2ppm_ps" = "xyes")
|
|
||||||
if test "x$any2ppm_ps" = "xyes"; then
|
|
||||||
AC_DEFINE([CAIRO_HAS_SPECTRE], 1, [Define to 1 if libspectre is available])
|
|
||||||
fi
|
|
||||||
AC_SUBST(LIBSPECTRE_CFLAGS)
|
|
||||||
AC_SUBST(LIBSPECTRE_LIBS)
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(pdf, PDF, yes, [
|
|
||||||
# The pdf backend requires zlib.
|
|
||||||
use_pdf=$have_libz
|
|
||||||
pdf_NONPKGCONFIG_LIBS=-lz
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
# poppler-0.17.4 fixes text-pattern and text-transform
|
|
||||||
# Keep in sync with meson.build!
|
|
||||||
POPPLER_VERSION_REQUIRED=0.17.4
|
|
||||||
test_pdf=no
|
|
||||||
any2ppm_pdf=no
|
|
||||||
if test "x$use_pdf" = "xyes"; then
|
|
||||||
poppler_DEPENDENCY="poppler-glib >= $POPPLER_VERSION_REQUIRED"
|
|
||||||
PKG_CHECK_MODULES(POPPLER, $poppler_DEPENDENCY,
|
|
||||||
[CAIRO_CHECK_FUNCS_WITH_FLAGS(poppler_page_render, [$POPPLER_CFLAGS], [$POPPLER_LIBS],
|
|
||||||
[test_pdf=yes; any2ppm_pdf=yes],
|
|
||||||
[test_pdf="no (requires $poppler_DEPENDENCY)"])],
|
|
||||||
[test_pdf="no (requires $poppler_DEPENDENCY)"])
|
|
||||||
if test "x$test_pdf" = "xyes"; then
|
|
||||||
AC_DEFINE([CAIRO_CAN_TEST_PDF_SURFACE], 1, [Define to 1 if the PDF backend can be tested (need poppler and other dependencies for pdf2png)])
|
|
||||||
else
|
|
||||||
AC_MSG_WARN([PDF backend will not be tested since poppler >= $POPPLER_VERSION_REQUIRED is not available])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(CAIRO_CAN_TEST_PDF_SURFACE, test "x$test_pdf" = "xyes")
|
|
||||||
AC_SUBST(POPPLER_CFLAGS)
|
|
||||||
AC_SUBST(POPPLER_LIBS)
|
|
||||||
|
|
||||||
AM_CONDITIONAL(CAIRO_HAS_MULTI_PAGE_SURFACES, test "x$use_ps" = "xyes" -o "x$use_pdf" = "xyes")
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(svg, SVG, yes, [
|
|
||||||
if test "x$use_png" != "xyes"; then
|
|
||||||
use_svg="no (requires --enable-png)"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl Keep in sync with meson.build!
|
|
||||||
LIBRSVG_VERSION_REQUIRED=2.35.0
|
|
||||||
test_svg=no
|
|
||||||
any2ppm_svg=no
|
|
||||||
if test "x$use_svg" = "xyes"; then
|
|
||||||
librsvg_DEPENDENCY="librsvg-2.0 >= $LIBRSVG_VERSION_REQUIRED"
|
|
||||||
PKG_CHECK_MODULES(LIBRSVG, $librsvg_DEPENDENCY gdk-2.0,
|
|
||||||
[CAIRO_CHECK_FUNCS_WITH_FLAGS(rsvg_pixbuf_from_file, [$LIBRSVG_CFLAGS], [$LIBRSVG_LIBS],
|
|
||||||
[test_svg=yes; any2ppm_svg=yes],
|
|
||||||
[test_svg="no (requires $librsvg_DEPENDENCY)"])],
|
|
||||||
[test_svg="no (requires $librsvg_DEPENDENCY)"])
|
|
||||||
if test "x$test_svg" = "xyes"; then
|
|
||||||
AC_DEFINE([CAIRO_CAN_TEST_SVG_SURFACE], 1, [Define to 1 if the SVG backend can be tested])
|
|
||||||
else
|
|
||||||
AC_MSG_WARN([SVG backend will not be tested since librsvg >= $LIBRSVG_VERSION_REQUIRED is not available])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(CAIRO_CAN_TEST_SVG_SURFACE, test "x$test_svg" = "xyes")
|
|
||||||
AC_SUBST(LIBRSVG_CFLAGS)
|
|
||||||
AC_SUBST(LIBRSVG_LIBS)
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
dnl XXX make this a private feature?
|
|
||||||
CAIRO_ENABLE(test_surfaces, test surfaces, no)
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(image, image, always, [
|
|
||||||
dnl Keep in sync with meson.build!
|
|
||||||
pixman_REQUIRES="pixman-1 >= 0.36.0"
|
|
||||||
PKG_CHECK_MODULES(pixman, $pixman_REQUIRES, ,
|
|
||||||
[use_image="no (requires $pixman_REQUIRES https://cairographics.org/releases/)"])
|
|
||||||
image_REQUIRES=$pixman_REQUIRES
|
|
||||||
image_CFLAGS=$pixman_CFLAGS
|
|
||||||
image_LIBS=$pixman_LIBS
|
|
||||||
])
|
|
||||||
|
|
||||||
if pkg-config --exists 'pixman-1 >= 0.27.1'; then
|
|
||||||
AC_DEFINE([HAS_PIXMAN_GLYPHS], 1, [Enable pixman glyph cache])
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(mime, mime, always)
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(recording, recording, always)
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(observer, observer, always)
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(tee, tee, no)
|
|
||||||
CAIRO_ENABLE_SURFACE_BACKEND(xml, xml, no, [
|
|
||||||
if test "x$use_png" != "xyes"; then
|
|
||||||
use_xml="no (requires --enable-png)"
|
|
||||||
else
|
|
||||||
use_xml=$have_libz
|
|
||||||
xml_NONPKGCONFIG_LIBS=-lz
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
CAIRO_ENABLE_FONT_BACKEND(user, user, always)
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
dnl
|
|
||||||
dnl This needs to be last on our list of features so that the pthread libs and flags
|
|
||||||
dnl gets prefixed in front of everything else in CAIRO_{CFLAGS,LIBS}.
|
|
||||||
dnl
|
|
||||||
have_real_pthread=no
|
|
||||||
have_pthread=no
|
|
||||||
CAIRO_ENABLE(pthread, pthread, auto, [CAIRO_CONFIGURE_PTHREAD])
|
|
||||||
AM_CONDITIONAL(HAVE_REAL_PTHREAD, test "x$use_pthread" = "xyes" -a "x$have_real_pthread" = "xyes")
|
|
||||||
AM_CONDITIONAL(HAVE_PTHREAD, test "x$use_pthread" = "xyes")
|
|
||||||
AC_SUBST(pthread_CFLAGS)
|
|
||||||
AC_SUBST(pthread_LIBS)
|
|
||||||
AC_SUBST(real_pthread_CFLAGS)
|
|
||||||
AC_SUBST(real_pthread_LIBS)
|
|
||||||
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
dnl Build gobject integration library
|
|
||||||
|
|
||||||
CAIRO_ENABLE_FUNCTIONS(gobject, gobject, auto, [
|
|
||||||
dnl Keep in sync with meson.build!
|
|
||||||
gobject_REQUIRES="gobject-2.0 glib-2.0 >= 2.14"
|
|
||||||
PKG_CHECK_MODULES(GOBJECT, $gobject_REQUIRES, ,
|
|
||||||
[use_gobject="no (requires $gobject_REQUIRES https://download.gnome.org/pub/GNOME/sources/glib/)"])
|
|
||||||
gobject_NONPKGCONFIG_EXTRA_LIBS="-L\${libdir} -lcairo-gobject"
|
|
||||||
])
|
|
||||||
dnl I'm too lazy to fix the caching properly
|
|
||||||
if test "x$use_gobject" = "xyes"; then
|
|
||||||
PKG_CHECK_MODULES(GOBJECT, $gobject_REQUIRES, : )
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
dnl Default to quick testing during development, but force a full test before
|
|
||||||
dnl release
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(full-testing,
|
|
||||||
AS_HELP_STRING([--enable-full-testing],
|
|
||||||
[Sets the test suite to perform full testing by default, which
|
|
||||||
will dramatically slow down make check, but is a
|
|
||||||
*requirement* before release.]), [
|
|
||||||
if test "x$enableval" = "xyes"; then
|
|
||||||
CAIRO_TEST_MODE=full
|
|
||||||
AC_SUBST(CAIRO_TEST_MODE)
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
dnl Build the external converter if we have any of the test backends
|
|
||||||
AM_CONDITIONAL(BUILD_ANY2PPM,
|
|
||||||
test "x$any2ppm_svg" = "xyes" \
|
|
||||||
-o "x$any2ppm_pdf" = "xyes" \
|
|
||||||
-o "x$any2ppm_ps" = "xyes" \
|
|
||||||
-o "x$any2ppm_cs" = "xyes")
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
dnl Some utilities need to dlopen the shared libraries, so they need to
|
|
||||||
dnl know how libtools will name them
|
|
||||||
|
|
||||||
case $host in
|
|
||||||
*-*-darwin*)
|
|
||||||
SHLIB_EXT="dylib"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
SHLIB_EXT="so"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
AC_DEFINE_UNQUOTED(SHARED_LIB_EXT, "${SHLIB_EXT}", [Shared library file extension])
|
|
||||||
AC_SUBST(SHLIB_EXT)
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
dnl The tracing utility requires LD_PRELOAD, so only build it for systems
|
|
||||||
dnl that are known to work.
|
|
||||||
|
|
||||||
case $host in
|
|
||||||
*-linux*|*-*bsd*|*-solaris*|*-*-darwin*|*-dragonfly*|*-*-gnu*)
|
|
||||||
have_ld_preload="yes"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
have_ld_preload="no"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
CAIRO_ENABLE(trace, cairo-trace, auto, [
|
|
||||||
if test "x$have_ld_preload" != "xyes" -o \
|
|
||||||
"x$have_libz" != "xyes" -o \
|
|
||||||
"x$have_real_pthread" != "xyes" -o \
|
|
||||||
"x$have_dlsym" != "xyes"; then
|
|
||||||
use_trace="no (requires dynamic linker and zlib and real pthreads)"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
CAIRO_ENABLE(interpreter, cairo-script-interpreter, yes, [
|
|
||||||
if test "x$have_libz" != "xyes"; then
|
|
||||||
use_interpreter="no (requires zlib)"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_CHECK_LIB(bfd, bfd_openr,
|
|
||||||
[AC_CHECK_HEADER(bfd.h, [have_bfd=yes],
|
|
||||||
[have_bfd=no])], [have_bfd=no])
|
|
||||||
dnl bfd_section_flags is an inline func so we don't bother with linking the lib in
|
|
||||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([
|
|
||||||
#include <bfd.h>
|
|
||||||
asection *s;
|
|
||||||
],[
|
|
||||||
return bfd_section_flags(s) == 0;
|
|
||||||
])],[],[have_bfd=no])
|
|
||||||
if test "x$have_bfd" = "xyes"; then
|
|
||||||
AC_DEFINE([HAVE_BFD], [1], [Define to 1 if you have the binutils development files installed])
|
|
||||||
BFD_LIBS=-lbfd
|
|
||||||
AC_SUBST(BFD_LIBS)
|
|
||||||
fi
|
|
||||||
|
|
||||||
CAIRO_ENABLE(symbol_lookup, symbol-lookup, auto, [
|
|
||||||
if test "x$have_bfd" != "xyes"; then
|
|
||||||
use_symbol_lookup="no (requires bfd)"
|
|
||||||
fi
|
|
||||||
])
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES(glib, glib-2.0, have_glib=yes, have_glib=no)
|
|
||||||
AC_SUBST(glib_CFLAGS)
|
|
||||||
AC_SUBST(glib_LIBS)
|
|
||||||
AM_CONDITIONAL(BUILD_SPHINX, test "x$have_glib" = "xyes" -a "x$have_windows" = "xno" -a "x$use_png" = "xyes")
|
|
||||||
|
|
||||||
save_LIBS="$LIBS"
|
|
||||||
AC_CHECK_LIB(rt, shm_open, shm_LIBS="-lrt")
|
|
||||||
AC_SUBST(shm_LIBS)
|
|
||||||
LIBS="$save_LIBS"
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(some-floating-point,
|
|
||||||
AS_HELP_STRING([--disable-some-floating-point],
|
|
||||||
[Disable certain code paths that rely heavily on double precision
|
|
||||||
floating-point calculation. This option can improve
|
|
||||||
performance on systems without a double precision floating-point
|
|
||||||
unit, but might degrade performance on those that do.]), [
|
|
||||||
if test "x$enableval" = "xno"; then
|
|
||||||
# A value of 'no' for $enableval means that they want to disable, which
|
|
||||||
# means 'yes' for $disable_some_floating_point.
|
|
||||||
disable_some_floating_point=yes
|
|
||||||
fi
|
|
||||||
], [disable_some_floating_point=no])
|
|
||||||
|
|
||||||
AM_CONDITIONAL(DISABLE_SOME_FLOATING_POINT,
|
|
||||||
test "x$disable_some_floating_point" = "xyes")
|
|
||||||
if test "x$disable_some_floating_point" = "xyes"; then
|
|
||||||
AC_DEFINE(DISABLE_SOME_FLOATING_POINT, 1,
|
|
||||||
[Define to 1 to disable certain code paths that rely heavily on
|
|
||||||
double precision floating-point calculation])
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl ===========================================================================
|
|
||||||
|
|
||||||
# We use GTK+ for some utility/debugging tools
|
|
||||||
PKG_CHECK_MODULES(gtk, "gtk+-2.0",have_gtk=yes, have_gtk=no)
|
|
||||||
AM_CONDITIONAL(HAVE_GTK, test "x$have_gtk" = "xyes")
|
|
||||||
|
|
||||||
AC_CONFIG_FILES([
|
|
||||||
Makefile
|
|
||||||
boilerplate/Makefile
|
|
||||||
src/Makefile
|
|
||||||
test/Makefile
|
|
||||||
test/pdiff/Makefile
|
|
||||||
perf/Makefile
|
|
||||||
perf/micro/Makefile
|
|
||||||
util/Makefile
|
|
||||||
util/cairo-fdr/Makefile
|
|
||||||
util/cairo-gobject/Makefile
|
|
||||||
util/cairo-missing/Makefile
|
|
||||||
util/cairo-script/Makefile
|
|
||||||
util/cairo-script/examples/Makefile
|
|
||||||
util/cairo-sphinx/Makefile
|
|
||||||
util/cairo-trace/Makefile
|
|
||||||
util/cairo-trace/cairo-trace
|
|
||||||
doc/Makefile
|
|
||||||
doc/public/Makefile
|
|
||||||
])
|
|
||||||
AC_CONFIG_COMMANDS([cairo-trace],
|
|
||||||
[chmod a+x util/cairo-trace/cairo-trace])
|
|
||||||
|
|
||||||
AC_OUTPUT
|
|
||||||
CAIRO_REPORT
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
include $(top_srcdir)/build/Makefile.am.common
|
|
||||||
|
|
||||||
SUBDIRS=public
|
|
||||||
|
|
||||||
doc:
|
|
||||||
cd public && $(MAKE) $(AM_MAKEFLAGS) doc
|
|
||||||
.PHONY: doc
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
include $(top_srcdir)/build/Makefile.am.common
|
|
||||||
include $(top_srcdir)/src/Makefile.am.features
|
|
||||||
|
|
||||||
# The name of the module.
|
|
||||||
DOC_MODULE=cairo
|
|
||||||
|
|
||||||
# The top-level SGML file.
|
|
||||||
DOC_MAIN_SGML_FILE=cairo-docs.xml
|
|
||||||
|
|
||||||
# Extra options to supply to gtkdoc-scan
|
|
||||||
SCAN_OPTIONS=--deprecated-guards="CAIRO_DISABLE_DEPRECATED" --ignore-decorators="cairo_public|cairo_private"
|
|
||||||
|
|
||||||
# The directory containing the source code.
|
|
||||||
DOC_SOURCE_DIR=$(top_srcdir)/src
|
|
||||||
|
|
||||||
# Used for dependencies
|
|
||||||
HFILE_GLOB=$(top_srcdir)/src/cairo*.h
|
|
||||||
CFILE_GLOB=$(top_srcdir)/src/cairo*.c
|
|
||||||
EXTRA_HFILES=$(top_builddir)/src/cairo-supported-features.h
|
|
||||||
|
|
||||||
# Headers to ignore
|
|
||||||
IGNORE_HFILES= \
|
|
||||||
cairo-features.h \
|
|
||||||
cairo-features-win32.h \
|
|
||||||
$(all_cairo_private) \
|
|
||||||
$(unsupported_cairo_headers) \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
# Extra options to supply to gtkdoc-mkdb
|
|
||||||
MKDB_OPTIONS=--sgml-mode --output-format=xml --name-space=cairo
|
|
||||||
|
|
||||||
# Non-autogenerated SGML files to be included in $(DOC_MAIN_SGML_FILE)
|
|
||||||
content_files = \
|
|
||||||
language-bindings.xml \
|
|
||||||
version.xml \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
version.xml: $(top_srcdir)/src/cairo-version.h
|
|
||||||
echo $(CAIRO_VERSION_MAJOR).$(CAIRO_VERSION_MINOR).$(CAIRO_VERSION_MICRO) > $@
|
|
||||||
|
|
||||||
# Images to copy into HTML directory
|
|
||||||
HTML_IMAGES =
|
|
||||||
|
|
||||||
# Extra options to supply to gtkdoc-fixref
|
|
||||||
FIXXREF_OPTIONS=
|
|
||||||
|
|
||||||
include $(top_srcdir)/build/Makefile.am.gtk-doc
|
|
||||||
|
|
||||||
dist-hook: doc
|
|
||||||
|
|
||||||
# This line really belongs in gtk-doc.mk
|
|
||||||
$(REPORT_FILES): sgml-build.stamp
|
|
||||||
|
|
||||||
if ENABLE_GTK_DOC
|
|
||||||
TESTS += check-doc-coverage.sh
|
|
||||||
endif
|
|
||||||
|
|
||||||
TESTS += check-doc-syntax.sh
|
|
||||||
EXTRA_DIST += check-doc-coverage.sh check-doc-syntax.sh
|
|
||||||
TESTS_ENVIRONMENT = srcdir="$(srcdir)" top_srcdir="$(top_srcdir)" MAKE="$(MAKE) $(AM_MAKEFLAGS)" DOC_MODULE="$(DOC_MODULE)" REPORT_FILES="$(REPORT_FILES)"
|
|
||||||
154
perf/Makefile.am
154
perf/Makefile.am
|
|
@ -1,154 +0,0 @@
|
||||||
include $(top_srcdir)/build/Makefile.am.common
|
|
||||||
|
|
||||||
include $(top_srcdir)/perf/Makefile.sources
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I$(srcdir) \
|
|
||||||
-I$(top_srcdir)/boilerplate \
|
|
||||||
-I$(top_srcdir)/src \
|
|
||||||
-I$(top_srcdir)/util/cairo-missing \
|
|
||||||
-I$(top_srcdir)/util/cairo-script \
|
|
||||||
-I$(top_builddir)/src \
|
|
||||||
$(CAIRO_CFLAGS)
|
|
||||||
|
|
||||||
AM_LDFLAGS = $(CAIRO_LDFLAGS)
|
|
||||||
|
|
||||||
SUBDIRS = micro
|
|
||||||
|
|
||||||
noinst_PROGRAMS = \
|
|
||||||
cairo-analyse-trace \
|
|
||||||
cairo-perf-trace \
|
|
||||||
cairo-perf-micro \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
EXTRA_PROGRAMS += \
|
|
||||||
cairo-analyse-trace \
|
|
||||||
cairo-perf-micro \
|
|
||||||
cairo-perf-trace \
|
|
||||||
cairo-perf-diff-files \
|
|
||||||
cairo-perf-print \
|
|
||||||
cairo-perf-chart \
|
|
||||||
cairo-perf-compare-backends \
|
|
||||||
cairo-perf-graph-files \
|
|
||||||
$(NULL)
|
|
||||||
EXTRA_DIST += cairo-perf-diff COPYING
|
|
||||||
EXTRA_LTLIBRARIES += libcairoperf.la
|
|
||||||
|
|
||||||
LDADD = libcairoperf.la \
|
|
||||||
$(top_builddir)/boilerplate/libcairoboilerplate.la \
|
|
||||||
$(top_builddir)/src/libcairo.la
|
|
||||||
|
|
||||||
cairo_perf_micro_SOURCES = $(cairo_perf_micro_sources)
|
|
||||||
cairo_perf_micro_LDADD = \
|
|
||||||
$(top_builddir)/perf/micro/libcairo-perf-micro.la \
|
|
||||||
$(LDADD)
|
|
||||||
cairo_perf_micro_DEPENDENCIES = \
|
|
||||||
$(top_builddir)/perf/micro/libcairo-perf-micro.la \
|
|
||||||
$(LDADD)
|
|
||||||
|
|
||||||
libcairoperf_la_SOURCES = \
|
|
||||||
$(libcairoperf_sources) \
|
|
||||||
$(libcairoperf_external_sources) \
|
|
||||||
$(libcairoperf_headers) \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
cairo_analyse_trace_SOURCES = \
|
|
||||||
$(cairo_analyse_trace_sources) \
|
|
||||||
$(cairo_analyse_trace_external_sources)
|
|
||||||
cairo_analyse_trace_LDADD = \
|
|
||||||
$(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
|
|
||||||
$(top_builddir)/util/cairo-missing/libcairo-missing.la \
|
|
||||||
$(LDADD)
|
|
||||||
cairo_analyse_trace_DEPENDENCIES = \
|
|
||||||
$(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
|
|
||||||
$(top_builddir)/util/cairo-missing/libcairo-missing.la \
|
|
||||||
$(LDADD)
|
|
||||||
|
|
||||||
cairo_perf_trace_SOURCES = \
|
|
||||||
$(cairo_perf_trace_sources) \
|
|
||||||
$(cairo_perf_trace_external_sources)
|
|
||||||
cairo_perf_trace_LDADD = \
|
|
||||||
$(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
|
|
||||||
$(top_builddir)/util/cairo-missing/libcairo-missing.la \
|
|
||||||
$(LDADD)
|
|
||||||
cairo_perf_trace_DEPENDENCIES = \
|
|
||||||
$(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
|
|
||||||
$(top_builddir)/util/cairo-missing/libcairo-missing.la \
|
|
||||||
$(LDADD)
|
|
||||||
|
|
||||||
cairo_perf_diff_files_SOURCES = $(cairo_perf_diff_files_sources)
|
|
||||||
cairo_perf_print_SOURCES = $(cairo_perf_print_sources)
|
|
||||||
cairo_perf_chart_SOURCES = $(cairo_perf_chart_sources)
|
|
||||||
cairo_perf_compare_backends_SOURCES = $(cairo_perf_compare_backends_sources)
|
|
||||||
|
|
||||||
cairo_perf_graph_files_SOURCES = \
|
|
||||||
$(cairo_perf_graph_files_sources) \
|
|
||||||
$(cairo_perf_graph_files_headers)
|
|
||||||
cairo_perf_graph_files_CFLAGS = @gtk_CFLAGS@
|
|
||||||
cairo_perf_graph_files_LDADD = @gtk_LIBS@ $(LDADD)
|
|
||||||
|
|
||||||
# Install rules to rebuild the libraries and add explicit dependencies
|
|
||||||
$(top_builddir)/perf/micro/libcairo-perf-micro.la:
|
|
||||||
cd $(top_builddir)/perf/micro && $(MAKE) $(AM_MAKEFLAGS) libcairo-perf-micro.la
|
|
||||||
|
|
||||||
$(top_builddir)/boilerplate/libcairoboilerplate.la: $(top_builddir)/src/libcairo.la
|
|
||||||
cd $(top_builddir)/boilerplate && $(MAKE) $(AM_MAKEFLAGS) libcairoboilerplate.la
|
|
||||||
|
|
||||||
$(top_builddir)/src/libcairo.la:
|
|
||||||
cd $(top_builddir)/src && $(MAKE) $(AM_MAKEFLAGS) libcairo.la
|
|
||||||
|
|
||||||
$(top_builddir)/util/cairo-script/libcairo-script-interpreter.la: $(top_builddir)/src/libcairo.la
|
|
||||||
cd $(top_builddir)/util/cairo-script && $(MAKE) $(AM_MAKEFLAGS) libcairo-script-interpreter.la
|
|
||||||
|
|
||||||
|
|
||||||
# Do a funny transition of CAIRO_TEST_TARGET through TARGETS such that
|
|
||||||
# one can limit tested targets both through CAIRO_TEST_TARGET env var
|
|
||||||
# and TARGETS make var on the command line. Same for the rest.
|
|
||||||
TARGETS = $(CAIRO_TEST_TARGET)
|
|
||||||
TARGETS_EXCLUDE = $(CAIRO_TEST_TARGET_EXCLUDE)
|
|
||||||
FORMAT = $(CAIRO_TEST_TARGET_FORMAT)
|
|
||||||
ITERS = $(CAIRO_PERF_ITERATIONS)
|
|
||||||
|
|
||||||
CAIRO_PERF_ENVIRONMENT = CAIRO_PERF_ITERATIONS="$(ITERS)" CAIRO_TEST_TARGET="$(TARGETS)" CAIRO_TEST_TARGET_FORMAT="$(FORMAT)" CAIRO_TEST_TARGET_EXCLUDE="$(TARGETS_EXCLUDE)"
|
|
||||||
|
|
||||||
perf: cairo-perf-micro$(EXEEXT) cairo-perf-trace$(EXEEXT)
|
|
||||||
-$(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-micro$(EXEEXT)
|
|
||||||
-$(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-trace$(EXEEXT)
|
|
||||||
|
|
||||||
html-local: index.html
|
|
||||||
|
|
||||||
perf-tag.html : cairo-perf-micro${EXEEXT}
|
|
||||||
$(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-diff -t -h $@ `git describe --abbrev=0` HEAD
|
|
||||||
perf-commit.html : cairo-perf-micro${EXEEXT}
|
|
||||||
$(CAIRO_PERF_ENVIRONMENT) ./cairo-perf-diff -t -h $@ HEAD
|
|
||||||
|
|
||||||
# Summarise changes in index.html, with details in links
|
|
||||||
index.html: perf-tag.html perf-commit.html
|
|
||||||
echo "<html><head><title>Performance Changes</title></head><body>Against <a href=\"perf-tag.html\">"`git describe --abbrev=0`"</a><br><a href=\"perf-commit.html\">Latest commit</a></body>" > $@
|
|
||||||
|
|
||||||
EXTRA_VALGRIND_FLAGS = $(CAIRO_EXTRA_VALGRIND_FLAGS)
|
|
||||||
VALGRIND_MEMCHECK_FLAGS = \
|
|
||||||
--tool=memcheck \
|
|
||||||
--suppressions=$(top_srcdir)/test/.valgrind-suppressions \
|
|
||||||
--leak-check=yes --show-reachable=yes
|
|
||||||
VALGRIND_CALLGRIND_FLAGS = \
|
|
||||||
--tool=callgrind
|
|
||||||
CLEANFILES += \
|
|
||||||
valgrind-log \
|
|
||||||
callgrind.out.* \
|
|
||||||
index.html
|
|
||||||
|
|
||||||
perf-valgrind:
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) perf \
|
|
||||||
$(top_builddir)/libtool --mode=execute \
|
|
||||||
valgrind $(VALGRIND_MEMCHECK_FLAGS) $(EXTRA_VALGRIND_FLAGS)' \
|
|
||||||
| tee valgrind-log
|
|
||||||
|
|
||||||
perf-callgrind:
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) perf \
|
|
||||||
$(top_builddir)/libtool --mode=execute \
|
|
||||||
valgrind $(VALGRIND_CALLGRIND_FLAGS) $(EXTRA_VALGRIND_FLAGS)'
|
|
||||||
|
|
||||||
.PHONY: perf perf-valgrind perf-callgrind
|
|
||||||
|
|
||||||
EXTRA_DIST += Makefile.win32
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
libcairoperf_sources = \
|
|
||||||
cairo-perf.c \
|
|
||||||
cairo-perf-report.c \
|
|
||||||
cairo-stats.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
libcairoperf_external_sources = ../src/cairo-time.c
|
|
||||||
|
|
||||||
libcairoperf_headers = \
|
|
||||||
cairo-perf.h \
|
|
||||||
cairo-stats.h \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
cairo_analyse_trace_sources = cairo-analyse-trace.c
|
|
||||||
cairo_analyse_trace_external_sources = ../src/cairo-error.c
|
|
||||||
|
|
||||||
cairo_perf_trace_sources = cairo-perf-trace.c
|
|
||||||
cairo_perf_trace_external_sources = \
|
|
||||||
../src/cairo-error.c \
|
|
||||||
../src/cairo-hash.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
cairo_perf_micro_sources = cairo-perf-micro.c
|
|
||||||
|
|
||||||
cairo_perf_diff_files_sources = cairo-perf-diff-files.c
|
|
||||||
|
|
||||||
cairo_perf_print_sources = cairo-perf-print.c
|
|
||||||
|
|
||||||
cairo_perf_chart_sources = cairo-perf-chart.c
|
|
||||||
|
|
||||||
cairo_perf_compare_backends_sources = cairo-perf-compare-backends.c
|
|
||||||
|
|
||||||
cairo_perf_graph_files_sources = \
|
|
||||||
cairo-perf-graph-files.c \
|
|
||||||
cairo-perf-graph-widget.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
cairo_perf_graph_files_headers = cairo-perf-graph.h
|
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
top_srcdir = ..
|
|
||||||
include $(top_srcdir)/build/Makefile.win32.common
|
|
||||||
include $(top_srcdir)/perf/Makefile.sources
|
|
||||||
|
|
||||||
CFLAGS += -I$(top_srcdir)/boilerplate -I$(top_srcdir)/util/cairo-script/
|
|
||||||
|
|
||||||
PERF_LIBS = \
|
|
||||||
$(CFG)/libcairoperf.lib \
|
|
||||||
$(top_builddir)/boilerplate/$(CFG)/boiler.lib \
|
|
||||||
$(top_builddir)/src/$(CFG)/cairo-static.lib \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
PERF_EXES = \
|
|
||||||
$(CFG)/cairo-perf-trace.exe \
|
|
||||||
$(CFG)/cairo-perf-micro.exe \
|
|
||||||
$(CFG)/cairo-perf-diff-files.exe \
|
|
||||||
$(CFG)/cairo-perf-print.exe \
|
|
||||||
$(CFG)/cairo-perf-chart.exe \
|
|
||||||
$(CFG)/cairo-perf-compare-backends.exe \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
all: inform $(PERF_EXES)
|
|
||||||
|
|
||||||
perf: inform $(CFG)/cairo-perf-micro.exe
|
|
||||||
./$(CFG)/cairo-perf-micro.exe
|
|
||||||
|
|
||||||
|
|
||||||
libcairoperf_OBJECTS = $(patsubst %.c, $(CFG)/%-static.obj, $(libcairoperf_sources))
|
|
||||||
|
|
||||||
$(CFG)/libcairoperf.lib: $(libcairoperf_OBJECTS)
|
|
||||||
@$(AR) $(CAIRO_ARFLAGS) -OUT:$@ $(libcairoperf_OBJECTS)
|
|
||||||
|
|
||||||
cairo_perf_trace_OBJECTS = \
|
|
||||||
$(patsubst %.c, $(CFG)/%-static.obj, $(cairo_perf_trace_sources)) \
|
|
||||||
$(top_builddir)/util/cairo-script/$(CFG)/libcairo-script-interpreter.lib \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
cairo_perf_micro_OBJECTS = \
|
|
||||||
$(patsubst %.c, $(CFG)/%-static.obj, $(cairo_perf_micro_sources)) \
|
|
||||||
./micro/$(CFG)/libcairo-perf-micro.lib \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
cairo_perf_diff_files_OBJECTS = $(patsubst %.c, $(CFG)/%-static.obj, $(cairo_perf_diff_files_sources))
|
|
||||||
cairo_perf_print_OBJECTS = $(patsubst %.c, $(CFG)/%-static.obj, $(cairo_perf_print_sources))
|
|
||||||
cairo_perf_chart_OBJECTS = $(patsubst %.c, $(CFG)/%-static.obj, $(cairo_perf_chart_sources))
|
|
||||||
cairo_perf_compare_backends_OBJECTS = $(patsubst %.c, $(CFG)/%-static.obj, $(cairo_perf_compare_backends_sources))
|
|
||||||
|
|
||||||
|
|
||||||
$(CFG)/cairo-perf-trace.exe: $(cairo_perf_trace_OBJECTS) $(PERF_LIBS)
|
|
||||||
@$(LD) $(CAIRO_LDFLAGS) -OUT:$@ $(cairo_perf_trace_OBJECTS) $(PERF_LIBS) $(CAIRO_LIBS)
|
|
||||||
|
|
||||||
$(CFG)/cairo-perf-micro.exe: $(cairo_perf_micro_OBJECTS) $(PERF_LIBS)
|
|
||||||
@$(LD) $(CAIRO_LDFLAGS) -OUT:$@ $(cairo_perf_micro_OBJECTS) $(PERF_LIBS) $(CAIRO_LIBS)
|
|
||||||
|
|
||||||
$(CFG)/cairo-perf-diff-files.exe: $(cairo_perf_diff_files_OBJECTS) $(PERF_LIBS)
|
|
||||||
@$(LD) $(CAIRO_LDFLAGS) -OUT:$@ $(cairo_perf_diff_files_OBJECTS) $(PERF_LIBS) $(CAIRO_LIBS)
|
|
||||||
|
|
||||||
$(CFG)/cairo-perf-print.exe: $(cairo_perf_print_OBJECTS) $(PERF_LIBS)
|
|
||||||
@$(LD) $(CAIRO_LDFLAGS) -OUT:$@ $(cairo_perf_print_OBJECTS) $(PERF_LIBS) $(CAIRO_LIBS)
|
|
||||||
|
|
||||||
$(CFG)/cairo-perf-chart.exe: $(cairo_perf_chart_OBJECTS) $(PERF_LIBS)
|
|
||||||
@$(LD) $(CAIRO_LDFLAGS) -OUT:$@ $(cairo_perf_chart_OBJECTS) $(PERF_LIBS) $(CAIRO_LIBS)
|
|
||||||
|
|
||||||
$(CFG)/cairo-perf-compare-backends.exe: $(cairo_perf_compare_backends_OBJECTS) $(PERF_LIBS)
|
|
||||||
@$(LD) $(CAIRO_LDFLAGS) -OUT:$@ $(cairo_perf_compare_backends_OBJECTS) $(PERF_LIBS) $(CAIRO_LIBS)
|
|
||||||
|
|
||||||
|
|
||||||
./micro/$(CFG)/libcairo-perf-micro.lib:
|
|
||||||
$(MAKE) -C micro -f Makefile.win32
|
|
||||||
|
|
||||||
$(top_builddir)/src/$(CFG)/cairo-static.lib:
|
|
||||||
$(MAKE) -C $(top_srcdir)/src -f Makefile.win32
|
|
||||||
|
|
||||||
$(top_builddir)/boilerplate/$(CFG)/boiler.lib:
|
|
||||||
$(MAKE) -C $(top_srcdir)/boilerplate -f Makefile.win32
|
|
||||||
|
|
||||||
$(top_builddir)/util/cairo-script/$(CFG)/libcairo-script-interpreter.lib:
|
|
||||||
$(MAKE) -C $(top_srcdir)/util/cairo-script -f Makefile.win32
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
include $(top_srcdir)/build/Makefile.am.common
|
|
||||||
|
|
||||||
include $(top_srcdir)/perf/micro/Makefile.sources
|
|
||||||
|
|
||||||
noinst_LTLIBRARIES = libcairo-perf-micro.la
|
|
||||||
libcairo_perf_micro_la_SOURCES = \
|
|
||||||
$(libcairo_perf_micro_sources) \
|
|
||||||
$(libcairo_perf_micro_headers)
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I$(srcdir) \
|
|
||||||
-I$(top_srcdir)/boilerplate \
|
|
||||||
-I$(top_srcdir)/src \
|
|
||||||
-I$(top_srcdir)/perf \
|
|
||||||
-I$(top_builddir)/src \
|
|
||||||
$(CAIRO_CFLAGS)
|
|
||||||
|
|
@ -1,51 +0,0 @@
|
||||||
libcairo_perf_micro_sources = \
|
|
||||||
cairo-perf-cover.c \
|
|
||||||
box-outline.c \
|
|
||||||
composite-checker.c \
|
|
||||||
disjoint.c \
|
|
||||||
fill.c \
|
|
||||||
hatching.c \
|
|
||||||
hash-table.c \
|
|
||||||
line.c \
|
|
||||||
a1-line.c \
|
|
||||||
long-lines.c \
|
|
||||||
mosaic.c \
|
|
||||||
paint.c \
|
|
||||||
paint-with-alpha.c \
|
|
||||||
mask.c \
|
|
||||||
pattern_create_radial.c \
|
|
||||||
rectangles.c \
|
|
||||||
rounded-rectangles.c \
|
|
||||||
stroke.c \
|
|
||||||
subimage_copy.c \
|
|
||||||
tessellate.c \
|
|
||||||
text.c \
|
|
||||||
tiger.c \
|
|
||||||
glyphs.c \
|
|
||||||
twin.c \
|
|
||||||
unaligned-clip.c \
|
|
||||||
wave.c \
|
|
||||||
world-map.c \
|
|
||||||
zrusin.c \
|
|
||||||
long-dashed-lines.c \
|
|
||||||
dragon.c \
|
|
||||||
pythagoras-tree.c \
|
|
||||||
intersections.c \
|
|
||||||
many-strokes.c \
|
|
||||||
wide-strokes.c \
|
|
||||||
many-fills.c \
|
|
||||||
wide-fills.c \
|
|
||||||
many-curves.c \
|
|
||||||
curve.c \
|
|
||||||
a1-curve.c \
|
|
||||||
spiral.c \
|
|
||||||
pixel.c \
|
|
||||||
sierpinski.c \
|
|
||||||
fill-clip.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
libcairo_perf_micro_headers = \
|
|
||||||
mosaic.h \
|
|
||||||
world-map.h \
|
|
||||||
zrusin-another.h \
|
|
||||||
$(NULL)
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
top_srcdir = ../..
|
|
||||||
include $(top_srcdir)/build/Makefile.win32.common
|
|
||||||
include $(top_srcdir)/perf/micro/Makefile.sources
|
|
||||||
|
|
||||||
CFLAGS += -I$(top_srcdir)/perf -I$(top_srcdir)/boilerplate/
|
|
||||||
|
|
||||||
OBJECTS = $(patsubst %.c, $(CFG)/%-static.obj, $(libcairo_perf_micro_sources))
|
|
||||||
|
|
||||||
all: inform $(CFG)/libcairo-perf-micro.lib
|
|
||||||
|
|
||||||
$(CFG)/libcairo-perf-micro.lib: $(OBJECTS)
|
|
||||||
@$(AR) $(CAIRO_ARFLAGS) -OUT:$@ $(OBJECTS)
|
|
||||||
|
|
@ -1,99 +0,0 @@
|
||||||
# Note: All source files are listed in Makefile.sources.
|
|
||||||
|
|
||||||
include $(top_srcdir)/build/Makefile.am.common
|
|
||||||
include $(srcdir)/Makefile.am.features
|
|
||||||
|
|
||||||
EXTRA_DIST += Makefile.win32 Makefile.win32.features
|
|
||||||
#MAINTAINERCLEANFILES += $(srcdir)/Makefile.win32.features
|
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(srcdir) $(CAIRO_CFLAGS)
|
|
||||||
AM_LDFLAGS = $(CAIRO_LDFLAGS)
|
|
||||||
|
|
||||||
if OS_WIN32
|
|
||||||
export_symbols = -export-symbols cairo.def
|
|
||||||
cairo_def_dependency = cairo.def
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(top_builddir)/config.h: $(top_srcdir)/config.h.in
|
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) config.h
|
|
||||||
|
|
||||||
cairoincludedir = $(includedir)/cairo
|
|
||||||
cairoinclude_HEADERS = $(enabled_cairo_headers)
|
|
||||||
|
|
||||||
lib_LTLIBRARIES = libcairo.la
|
|
||||||
|
|
||||||
libcairo_la_SOURCES = \
|
|
||||||
$(enabled_cairo_headers) \
|
|
||||||
$(enabled_cairo_private) \
|
|
||||||
$(enabled_cairo_sources) \
|
|
||||||
$(NULL)
|
|
||||||
libcairo_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols)
|
|
||||||
libcairo_la_LIBADD = $(CAIRO_LIBS)
|
|
||||||
libcairo_la_DEPENDENCIES = $(cairo_def_dependency)
|
|
||||||
|
|
||||||
# Special headers
|
|
||||||
nodist_cairoinclude_HEADERS = cairo-features.h
|
|
||||||
nodist_libcairo_la_SOURCES = cairo-features.h
|
|
||||||
BUILT_SOURCES += cairo-features.h cairo-supported-features.h
|
|
||||||
DISTCLEANFILES += cairo-features.h cairo-supported-features.h
|
|
||||||
cairo-features.h cairo-supported-features.h:
|
|
||||||
cd $(top_builddir) && ./config.status src/$@
|
|
||||||
|
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
|
||||||
pkgconfig_DATA = $(enabled_cairo_pkgconf)
|
|
||||||
|
|
||||||
CLEANFILES += cairo.def
|
|
||||||
cairo.def: cairo-features.h $(enabled_cairo_headers)
|
|
||||||
@echo Generating $@
|
|
||||||
@(echo EXPORTS; \
|
|
||||||
(cd $(srcdir); cat $(enabled_cairo_headers) || echo 'cairo_ERROR ()' ) | \
|
|
||||||
$(EGREP) -v '^# *include' | \
|
|
||||||
( cat cairo-features.h - | $(CPP) -D__cplusplus - || echo 'cairo_ERROR ()' ) | \
|
|
||||||
$(EGREP) '^cairo_.* \(' | \
|
|
||||||
sed -e 's/[ ].*//' | \
|
|
||||||
sort; \
|
|
||||||
echo LIBRARY libcairo-$(CAIRO_VERSION_SONUM).dll; \
|
|
||||||
) >$@
|
|
||||||
@ ! grep -q cairo_ERROR $@ || ($(RM) $@; false)
|
|
||||||
|
|
||||||
TESTS_ENVIRONMENT = \
|
|
||||||
srcdir="$(srcdir)" \
|
|
||||||
MAKE="$(MAKE) $(AM_MAKEFLAGS)" \
|
|
||||||
all_cairo_files="$(all_cairo_files)" \
|
|
||||||
all_cairo_headers="$(all_cairo_headers)" \
|
|
||||||
all_cairo_private="$(all_cairo_private)" \
|
|
||||||
all_cairo_sources="$(all_cairo_sources)" \
|
|
||||||
enabled_cairo_headers="$(enabled_cairo_headers)" \
|
|
||||||
enabled_cairo_private="$(enabled_cairo_private)" \
|
|
||||||
enabled_cairo_sources="$(enabled_cairo_sources)" \
|
|
||||||
$(NULL)
|
|
||||||
TESTS_SH = \
|
|
||||||
check-def.sh \
|
|
||||||
check-doc-syntax.sh \
|
|
||||||
check-headers.sh \
|
|
||||||
check-plt.sh \
|
|
||||||
check-preprocessor-syntax.sh \
|
|
||||||
$(NULL)
|
|
||||||
TESTS += $(TESTS_SH)
|
|
||||||
if CROSS_COMPILING
|
|
||||||
else
|
|
||||||
TESTS += check-link$(EXEEXT)
|
|
||||||
endif
|
|
||||||
|
|
||||||
EXTRA_DIST += $(TESTS_SH) check-has-hidden-symbols.c check-doc-syntax.awk
|
|
||||||
check_PROGRAMS += check-link
|
|
||||||
check_link_LDADD = libcairo.la
|
|
||||||
|
|
||||||
check: headers-standalone
|
|
||||||
|
|
||||||
PREPROCESS_ARGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS)
|
|
||||||
COMPILE_ARGS = $(PREPROCESS_ARGS) $(AM_CFLAGS) $(CFLAGS)
|
|
||||||
|
|
||||||
# The pre-processed result is used by check-{def,plt}.sh to determine whether
|
|
||||||
# cairo has been compiled with symbol hiding.
|
|
||||||
.c.i: $(cairoinclude_HEADERS) $(nodist_cairoinclude_HEADERS) cairoint.h $(top_builddir)/config.h
|
|
||||||
$(CPP) $(PREPROCESS_ARGS) $< -o $@
|
|
||||||
.c.s: $(cairoinclude_HEADERS) $(nodist_cairoinclude_HEADERS) cairoint.h $(top_builddir)/config.h
|
|
||||||
$(CC) $(COMPILE_ARGS) $< -S -o $@
|
|
||||||
|
|
||||||
include $(srcdir)/Makefile.am.analysis
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
|
|
||||||
SPARSE = sparse
|
|
||||||
sparse:
|
|
||||||
@echo Checking enabled sources with sparse checker
|
|
||||||
@status=true; for f in $(enabled_cairo_sources); do \
|
|
||||||
echo $(SPARSE) $(PREPROCESS_ARGS) $(srcdir)/$$f; \
|
|
||||||
$(SPARSE) $(PREPROCESS_ARGS) $(srcdir)/$$f || status=false; \
|
|
||||||
done; $$status
|
|
||||||
|
|
||||||
SPLINT = splint -badflag
|
|
||||||
splint:
|
|
||||||
@echo Checking enabled sources with splint checker
|
|
||||||
@status=true; for f in $(enabled_cairo_sources); do \
|
|
||||||
echo $(SPLINT) $(PREPROCESS_ARGS) $(srcdir)/$$f; \
|
|
||||||
$(SPLINT) $(PREPROCESS_ARGS) $(srcdir)/$$f || status=false; \
|
|
||||||
done; $$status
|
|
||||||
|
|
||||||
UNO = uno
|
|
||||||
uno:
|
|
||||||
@echo Checking enabled sources with uno checker
|
|
||||||
cd $(srcdir); $(UNO) $(PREPROCESS_ARGS) -DHAVE_CONFIG_H -U__GNUC__ $(enabled_cairo_sources)
|
|
||||||
|
|
||||||
headers-standalone: $(enabled_cairo_headers) $(enabled_cairo_private)
|
|
||||||
@echo Checking that enabled public/private headers can be compiled standalone
|
|
||||||
@status=true; for f in $(enabled_cairo_headers) $(enabled_cairo_private); do \
|
|
||||||
echo " CHECK $$f"; \
|
|
||||||
echo "#include \"$(srcdir)/$$f\"" > headers-standalone-tmp.c; \
|
|
||||||
echo "int main(int argc, char * argv[]) { return 0; }" >> headers-standalone-tmp.c; \
|
|
||||||
$(COMPILE) -o headers-standalone-tmp headers-standalone-tmp.c || status=false; \
|
|
||||||
$(RM) headers-standalone-tmp headers-standalone-tmp.c; \
|
|
||||||
done; $$status
|
|
||||||
@touch $@
|
|
||||||
CLEANFILES += headers-standalone
|
|
||||||
|
|
||||||
analysis: all headers-standalone sparse splint uno
|
|
||||||
|
|
@ -1,405 +0,0 @@
|
||||||
# Makefile.sources
|
|
||||||
#
|
|
||||||
# This file is the canonical location listing all the source files used
|
|
||||||
# to build the cairo library. Every source file is categorized as one of:
|
|
||||||
#
|
|
||||||
# * public header file
|
|
||||||
# * private header file (must end in -private.h except for cairoint.h)
|
|
||||||
# * source code file
|
|
||||||
#
|
|
||||||
# Every source file should be specified exactly once, grouped with the
|
|
||||||
# feature that uses the source file. If more than one feature use the
|
|
||||||
# file (like pdf_operators or font_subset files), the files should be
|
|
||||||
# appended to to the base cairo files, and the code inside them
|
|
||||||
# enabled/disabled using C preprocessor macros defined in cairoint.h.
|
|
||||||
# See how pdf_operators or font_subset are handled.
|
|
||||||
#
|
|
||||||
# The sources are picked up according to the configured features
|
|
||||||
# by the generated file Makefile.am.features or Makefile.win32.features.
|
|
||||||
#
|
|
||||||
# These are a few special source files. Those are not included in this
|
|
||||||
# file to not confuse build systems. Each build system must handle them
|
|
||||||
# separately. These files include:
|
|
||||||
#
|
|
||||||
# * cairo-features.h:
|
|
||||||
# This file is generated by configure and includes macros signifying
|
|
||||||
# which features are enabled. This file should be installed like
|
|
||||||
# other public headers, but should NOT be distributed in the cairo
|
|
||||||
# distribution.
|
|
||||||
#
|
|
||||||
# * cairo-supported-features.h:
|
|
||||||
# This file is generated by configure and includes macros signifying
|
|
||||||
# all supported features. This is used by gtk-doc to generate
|
|
||||||
# documentation for all those macros, enabled or not.
|
|
||||||
# This file is NOT used during the build of the library and should
|
|
||||||
# NOT be installed or distributed.
|
|
||||||
#
|
|
||||||
# Please follow the strict syntax of this file, including keeping file
|
|
||||||
# lists sorted.
|
|
||||||
#
|
|
||||||
|
|
||||||
cairo_headers = cairo.h cairo-version.h cairo-deprecated.h
|
|
||||||
cairo_private = \
|
|
||||||
cairoint.h \
|
|
||||||
cairo-analysis-surface-private.h \
|
|
||||||
cairo-arc-private.h \
|
|
||||||
cairo-array-private.h \
|
|
||||||
cairo-atomic-private.h \
|
|
||||||
cairo-backend-private.h \
|
|
||||||
cairo-box-inline.h \
|
|
||||||
cairo-boxes-private.h \
|
|
||||||
cairo-cache-private.h \
|
|
||||||
cairo-clip-inline.h \
|
|
||||||
cairo-clip-private.h \
|
|
||||||
cairo-combsort-inline.h \
|
|
||||||
cairo-compiler-private.h \
|
|
||||||
cairo-composite-rectangles-private.h \
|
|
||||||
cairo-compositor-private.h \
|
|
||||||
cairo-contour-inline.h \
|
|
||||||
cairo-contour-private.h \
|
|
||||||
cairo-damage-private.h \
|
|
||||||
cairo-default-context-private.h \
|
|
||||||
cairo-device-private.h \
|
|
||||||
cairo-error-inline.h \
|
|
||||||
cairo-error-private.h \
|
|
||||||
cairo-fixed-private.h \
|
|
||||||
cairo-fixed-type-private.h \
|
|
||||||
cairo-fontconfig-private.h \
|
|
||||||
cairo-freed-pool-private.h \
|
|
||||||
cairo-freelist-private.h \
|
|
||||||
cairo-freelist-type-private.h \
|
|
||||||
cairo-gstate-private.h \
|
|
||||||
cairo-hash-private.h \
|
|
||||||
cairo-image-info-private.h \
|
|
||||||
cairo-image-surface-inline.h \
|
|
||||||
cairo-image-surface-private.h \
|
|
||||||
cairo-line-inline.h \
|
|
||||||
cairo-line-private.h \
|
|
||||||
cairo-list-inline.h \
|
|
||||||
cairo-list-private.h \
|
|
||||||
cairo-malloc-private.h \
|
|
||||||
cairo-mempool-private.h \
|
|
||||||
cairo-mutex-impl-private.h \
|
|
||||||
cairo-mutex-list-private.h \
|
|
||||||
cairo-mutex-private.h \
|
|
||||||
cairo-mutex-type-private.h \
|
|
||||||
cairo-output-stream-private.h \
|
|
||||||
cairo-paginated-private.h \
|
|
||||||
cairo-paginated-surface-private.h \
|
|
||||||
cairo-path-fixed-private.h \
|
|
||||||
cairo-path-private.h \
|
|
||||||
cairo-pattern-inline.h \
|
|
||||||
cairo-pattern-private.h \
|
|
||||||
cairo-pixman-private.h \
|
|
||||||
cairo-private.h \
|
|
||||||
cairo-recording-surface-inline.h \
|
|
||||||
cairo-recording-surface-private.h \
|
|
||||||
cairo-reference-count-private.h \
|
|
||||||
cairo-region-private.h \
|
|
||||||
cairo-rtree-private.h \
|
|
||||||
cairo-scaled-font-private.h \
|
|
||||||
cairo-slope-private.h \
|
|
||||||
cairo-spans-compositor-private.h \
|
|
||||||
cairo-spans-private.h \
|
|
||||||
cairo-stroke-dash-private.h \
|
|
||||||
cairo-surface-backend-private.h \
|
|
||||||
cairo-surface-clipper-private.h \
|
|
||||||
cairo-surface-fallback-private.h \
|
|
||||||
cairo-surface-inline.h \
|
|
||||||
cairo-surface-observer-inline.h \
|
|
||||||
cairo-surface-observer-private.h \
|
|
||||||
cairo-surface-offset-private.h \
|
|
||||||
cairo-surface-private.h \
|
|
||||||
cairo-surface-snapshot-inline.h \
|
|
||||||
cairo-surface-snapshot-private.h \
|
|
||||||
cairo-surface-subsurface-inline.h \
|
|
||||||
cairo-surface-subsurface-private.h \
|
|
||||||
cairo-surface-wrapper-private.h \
|
|
||||||
cairo-time-private.h \
|
|
||||||
cairo-traps-private.h \
|
|
||||||
cairo-tristrip-private.h \
|
|
||||||
cairo-types-private.h \
|
|
||||||
cairo-user-font-private.h \
|
|
||||||
cairo-wideint-private.h \
|
|
||||||
cairo-wideint-type-private.h \
|
|
||||||
$(NULL)
|
|
||||||
cairo_sources = \
|
|
||||||
cairo-analysis-surface.c \
|
|
||||||
cairo-arc.c \
|
|
||||||
cairo-array.c \
|
|
||||||
cairo-atomic.c \
|
|
||||||
cairo-base64-stream.c \
|
|
||||||
cairo-base85-stream.c \
|
|
||||||
cairo-bentley-ottmann-rectangular.c \
|
|
||||||
cairo-bentley-ottmann-rectilinear.c \
|
|
||||||
cairo-bentley-ottmann.c \
|
|
||||||
cairo-botor-scan-converter.c \
|
|
||||||
cairo-boxes-intersect.c \
|
|
||||||
cairo-boxes.c \
|
|
||||||
cairo-cache.c \
|
|
||||||
cairo-clip-boxes.c \
|
|
||||||
cairo-clip-polygon.c \
|
|
||||||
cairo-clip-region.c \
|
|
||||||
cairo-clip-surface.c \
|
|
||||||
cairo-clip-tor-scan-converter.c \
|
|
||||||
cairo-clip.c \
|
|
||||||
cairo-color.c \
|
|
||||||
cairo-composite-rectangles.c \
|
|
||||||
cairo-compositor.c \
|
|
||||||
cairo-contour.c \
|
|
||||||
cairo-damage.c \
|
|
||||||
cairo-debug.c \
|
|
||||||
cairo-default-context.c \
|
|
||||||
cairo-device.c \
|
|
||||||
cairo-error.c \
|
|
||||||
cairo-fallback-compositor.c \
|
|
||||||
cairo-fixed.c \
|
|
||||||
cairo-font-face-twin-data.c \
|
|
||||||
cairo-font-face-twin.c \
|
|
||||||
cairo-font-face.c \
|
|
||||||
cairo-font-options.c \
|
|
||||||
cairo-freed-pool.c \
|
|
||||||
cairo-freelist.c \
|
|
||||||
cairo-gstate.c \
|
|
||||||
cairo-hash.c \
|
|
||||||
cairo-hull.c \
|
|
||||||
cairo-image-compositor.c \
|
|
||||||
cairo-image-info.c \
|
|
||||||
cairo-image-source.c \
|
|
||||||
cairo-image-surface.c \
|
|
||||||
cairo-line.c \
|
|
||||||
cairo-lzw.c \
|
|
||||||
cairo-mask-compositor.c \
|
|
||||||
cairo-matrix.c \
|
|
||||||
cairo-mempool.c \
|
|
||||||
cairo-mesh-pattern-rasterizer.c \
|
|
||||||
cairo-misc.c \
|
|
||||||
cairo-mono-scan-converter.c \
|
|
||||||
cairo-mutex.c \
|
|
||||||
cairo-no-compositor.c \
|
|
||||||
cairo-observer.c \
|
|
||||||
cairo-output-stream.c \
|
|
||||||
cairo-paginated-surface.c \
|
|
||||||
cairo-path-bounds.c \
|
|
||||||
cairo-path-fill.c \
|
|
||||||
cairo-path-fixed.c \
|
|
||||||
cairo-path-in-fill.c \
|
|
||||||
cairo-path-stroke-boxes.c \
|
|
||||||
cairo-path-stroke-polygon.c \
|
|
||||||
cairo-path-stroke-traps.c \
|
|
||||||
cairo-path-stroke-tristrip.c \
|
|
||||||
cairo-path-stroke.c \
|
|
||||||
cairo-path.c \
|
|
||||||
cairo-pattern.c \
|
|
||||||
cairo-pen.c \
|
|
||||||
cairo-polygon-intersect.c \
|
|
||||||
cairo-polygon-reduce.c \
|
|
||||||
cairo-polygon.c \
|
|
||||||
cairo-raster-source-pattern.c \
|
|
||||||
cairo-recording-surface.c \
|
|
||||||
cairo-rectangle.c \
|
|
||||||
cairo-rectangular-scan-converter.c \
|
|
||||||
cairo-region.c \
|
|
||||||
cairo-rtree.c \
|
|
||||||
cairo-scaled-font.c \
|
|
||||||
cairo-shape-mask-compositor.c \
|
|
||||||
cairo-slope.c \
|
|
||||||
cairo-spans-compositor.c \
|
|
||||||
cairo-spans.c \
|
|
||||||
cairo-spline.c \
|
|
||||||
cairo-stroke-dash.c \
|
|
||||||
cairo-stroke-style.c \
|
|
||||||
cairo-surface-clipper.c \
|
|
||||||
cairo-surface-fallback.c \
|
|
||||||
cairo-surface-observer.c \
|
|
||||||
cairo-surface-offset.c \
|
|
||||||
cairo-surface-snapshot.c \
|
|
||||||
cairo-surface-subsurface.c \
|
|
||||||
cairo-surface-wrapper.c \
|
|
||||||
cairo-surface.c \
|
|
||||||
cairo-time.c \
|
|
||||||
cairo-tor-scan-converter.c \
|
|
||||||
cairo-tor22-scan-converter.c \
|
|
||||||
cairo-toy-font-face.c \
|
|
||||||
cairo-traps-compositor.c \
|
|
||||||
cairo-traps.c \
|
|
||||||
cairo-tristrip.c \
|
|
||||||
cairo-unicode.c \
|
|
||||||
cairo-user-font.c \
|
|
||||||
cairo-version.c \
|
|
||||||
cairo-wideint.c \
|
|
||||||
cairo.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
_cairo_font_subset_private = \
|
|
||||||
cairo-scaled-font-subsets-private.h \
|
|
||||||
cairo-truetype-subset-private.h \
|
|
||||||
cairo-type1-private.h \
|
|
||||||
cairo-type3-glyph-surface-private.h \
|
|
||||||
$(NULL)
|
|
||||||
_cairo_font_subset_sources = \
|
|
||||||
cairo-cff-subset.c \
|
|
||||||
cairo-scaled-font-subsets.c \
|
|
||||||
cairo-truetype-subset.c \
|
|
||||||
cairo-type1-fallback.c \
|
|
||||||
cairo-type1-glyph-names.c \
|
|
||||||
cairo-type1-subset.c \
|
|
||||||
cairo-type3-glyph-surface.c \
|
|
||||||
$(NULL)
|
|
||||||
cairo_private += $(_cairo_font_subset_private)
|
|
||||||
cairo_sources += $(_cairo_font_subset_sources)
|
|
||||||
|
|
||||||
cairo_egl_sources =
|
|
||||||
cairo_glx_sources =
|
|
||||||
cairo_wgl_sources =
|
|
||||||
|
|
||||||
_cairo_pdf_operators_private = \
|
|
||||||
cairo-pdf-operators-private.h \
|
|
||||||
cairo-pdf-shading-private.h \
|
|
||||||
cairo-tag-attributes-private.h \
|
|
||||||
$(NULL)
|
|
||||||
_cairo_pdf_operators_sources = \
|
|
||||||
cairo-pdf-operators.c \
|
|
||||||
cairo-pdf-shading.c \
|
|
||||||
cairo-tag-attributes.c \
|
|
||||||
$(NULL)
|
|
||||||
cairo_private += $(_cairo_pdf_operators_private)
|
|
||||||
cairo_sources += $(_cairo_pdf_operators_sources)
|
|
||||||
|
|
||||||
cairo_png_sources = cairo-png.c
|
|
||||||
|
|
||||||
cairo_ps_headers = cairo-ps.h
|
|
||||||
cairo_ps_private = cairo-ps-surface-private.h
|
|
||||||
cairo_ps_sources = cairo-ps-surface.c
|
|
||||||
|
|
||||||
_cairo_deflate_stream_sources = cairo-deflate-stream.c
|
|
||||||
cairo_sources += $(_cairo_deflate_stream_sources)
|
|
||||||
|
|
||||||
cairo_pdf_headers = cairo-pdf.h
|
|
||||||
cairo_pdf_private = cairo-pdf-surface-private.h cairo-tag-stack-private.h
|
|
||||||
cairo_pdf_sources = cairo-pdf-surface.c cairo-pdf-interchange.c cairo-tag-stack.c
|
|
||||||
|
|
||||||
cairo_svg_headers = cairo-svg.h
|
|
||||||
cairo_svg_private = cairo-svg-surface-private.h
|
|
||||||
cairo_svg_sources = cairo-svg-surface.c
|
|
||||||
|
|
||||||
cairo_ft_headers = cairo-ft.h
|
|
||||||
cairo_ft_private = cairo-ft-private.h
|
|
||||||
cairo_ft_sources = cairo-ft-font.c cairo-svg-glyph-render.c
|
|
||||||
|
|
||||||
# These are private, even though they look like public headers
|
|
||||||
cairo_test_surfaces_private = \
|
|
||||||
test-compositor-surface.h \
|
|
||||||
test-compositor-surface-private.h \
|
|
||||||
test-null-compositor-surface.h \
|
|
||||||
test-paginated-surface.h \
|
|
||||||
$(NULL)
|
|
||||||
cairo_test_surfaces_sources = \
|
|
||||||
test-compositor-surface.c \
|
|
||||||
test-null-compositor-surface.c \
|
|
||||||
test-base-compositor-surface.c \
|
|
||||||
test-paginated-surface.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
cairo_xlib_headers = cairo-xlib.h
|
|
||||||
cairo_xlib_private = \
|
|
||||||
cairo-xlib-private.h \
|
|
||||||
cairo-xlib-surface-private.h \
|
|
||||||
cairo-xlib-xrender-private.h \
|
|
||||||
$(NULL)
|
|
||||||
cairo_xlib_sources = \
|
|
||||||
cairo-xlib-display.c \
|
|
||||||
cairo-xlib-core-compositor.c \
|
|
||||||
cairo-xlib-fallback-compositor.c \
|
|
||||||
cairo-xlib-render-compositor.c \
|
|
||||||
cairo-xlib-screen.c \
|
|
||||||
cairo-xlib-source.c \
|
|
||||||
cairo-xlib-surface.c \
|
|
||||||
cairo-xlib-surface-shm.c \
|
|
||||||
cairo-xlib-visual.c \
|
|
||||||
cairo-xlib-xcb-surface.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
cairo_xlib_xrender_headers = cairo-xlib-xrender.h
|
|
||||||
|
|
||||||
cairo_xcb_headers = cairo-xcb.h
|
|
||||||
cairo_xcb_private = cairo-xcb-private.h
|
|
||||||
cairo_xcb_sources = \
|
|
||||||
cairo-xcb-connection.c \
|
|
||||||
cairo-xcb-connection-core.c \
|
|
||||||
cairo-xcb-connection-render.c \
|
|
||||||
cairo-xcb-connection-shm.c \
|
|
||||||
cairo-xcb-screen.c \
|
|
||||||
cairo-xcb-shm.c \
|
|
||||||
cairo-xcb-surface.c \
|
|
||||||
cairo-xcb-surface-core.c \
|
|
||||||
cairo-xcb-surface-render.c \
|
|
||||||
cairo-xcb-resources.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
cairo_quartz_headers = cairo-quartz.h
|
|
||||||
cairo_quartz_private = cairo-quartz-private.h
|
|
||||||
cairo_quartz_sources = cairo-quartz-surface.c
|
|
||||||
|
|
||||||
cairo_quartz_image_headers = cairo-quartz-image.h
|
|
||||||
cairo_quartz_image_sources = cairo-quartz-image-surface.c
|
|
||||||
|
|
||||||
cairo_quartz_font_sources = cairo-quartz-font.c
|
|
||||||
|
|
||||||
cairo_win32_headers = cairo-win32.h
|
|
||||||
cairo_win32_private = win32/cairo-win32-private.h
|
|
||||||
cairo_win32_sources = \
|
|
||||||
win32/cairo-win32-debug.c \
|
|
||||||
win32/cairo-win32-device.c \
|
|
||||||
win32/cairo-win32-gdi-compositor.c \
|
|
||||||
win32/cairo-win32-system.c \
|
|
||||||
win32/cairo-win32-surface.c \
|
|
||||||
win32/cairo-win32-display-surface.c \
|
|
||||||
win32/cairo-win32-printing-surface.c \
|
|
||||||
$(NULL)
|
|
||||||
cairo_win32_font_sources = \
|
|
||||||
win32/cairo-win32-font.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
cairo_gl_headers = cairo-gl.h
|
|
||||||
cairo_gl_private = cairo-gl-private.h \
|
|
||||||
cairo-gl-dispatch-private.h \
|
|
||||||
cairo-gl-ext-def-private.h \
|
|
||||||
cairo-gl-gradient-private.h
|
|
||||||
|
|
||||||
cairo_gl_sources = cairo-gl-composite.c \
|
|
||||||
cairo-gl-device.c \
|
|
||||||
cairo-gl-dispatch.c \
|
|
||||||
cairo-gl-glyphs.c \
|
|
||||||
cairo-gl-gradient.c \
|
|
||||||
cairo-gl-info.c \
|
|
||||||
cairo-gl-msaa-compositor.c \
|
|
||||||
cairo-gl-operand.c \
|
|
||||||
cairo-gl-shaders.c \
|
|
||||||
cairo-gl-source.c \
|
|
||||||
cairo-gl-spans-compositor.c \
|
|
||||||
cairo-gl-surface.c \
|
|
||||||
cairo-gl-traps-compositor.c
|
|
||||||
|
|
||||||
cairo_glesv2_headers = $(cairo_gl_headers)
|
|
||||||
cairo_glesv2_private = $(cairo_gl_private)
|
|
||||||
cairo_glesv2_sources = $(cairo_gl_sources)
|
|
||||||
|
|
||||||
cairo_glesv3_headers = $(cairo_gl_headers)
|
|
||||||
cairo_glesv3_private = $(cairo_gl_private)
|
|
||||||
cairo_glesv3_sources = $(cairo_gl_sources)
|
|
||||||
|
|
||||||
cairo_egl_sources += cairo-egl-context.c
|
|
||||||
cairo_glx_sources += cairo-glx-context.c
|
|
||||||
cairo_wgl_sources += cairo-wgl-context.c
|
|
||||||
|
|
||||||
cairo_script_headers = cairo-script.h
|
|
||||||
cairo_script_private = cairo-script-private.h
|
|
||||||
cairo_script_sources = cairo-script-surface.c
|
|
||||||
|
|
||||||
cairo_tee_headers = cairo-tee.h
|
|
||||||
cairo_tee_private = cairo-tee-surface-private.h
|
|
||||||
cairo_tee_sources = cairo-tee-surface.c
|
|
||||||
|
|
||||||
cairo_xml_headers = cairo-xml.h
|
|
||||||
cairo_xml_sources = cairo-xml-surface.c
|
|
||||||
|
|
@ -1,28 +0,0 @@
|
||||||
top_srcdir = ..
|
|
||||||
include $(top_srcdir)/build/Makefile.win32.common
|
|
||||||
include Makefile.win32.features
|
|
||||||
|
|
||||||
SOURCES = $(enabled_cairo_sources)
|
|
||||||
|
|
||||||
STATIC_SOURCES = cairo-system.c
|
|
||||||
|
|
||||||
OBJECTS = $(patsubst %.c, $(CFG)/%.obj, $(SOURCES))
|
|
||||||
OBJECTS_STATIC = $(patsubst %cairo-system.obj, %cairo-system-static.obj, $(OBJECTS))
|
|
||||||
|
|
||||||
static: inform $(CFG)/cairo-static.lib
|
|
||||||
dynamic: inform $(CFG)/cairo.dll
|
|
||||||
|
|
||||||
$(CFG)/cairo.dll: $(OBJECTS)
|
|
||||||
@$(LD) $(CAIRO_LDFLAGS) -DLL -OUT:$@ $(CAIRO_LIBS) $(PIXMAN_LIBS) $(OBJECTS)
|
|
||||||
|
|
||||||
$(CFG)/cairo-static.lib: $(OBJECTS_STATIC)
|
|
||||||
@$(AR) $(CAIRO_ARFLAGS) -OUT:$@ $(PIXMAN_LIBS) $(OBJECTS_STATIC)
|
|
||||||
|
|
||||||
all: inform $(CFG)/cairo.dll $(CFG)/cairo-static.lib
|
|
||||||
@echo "Built successfully!"
|
|
||||||
@echo "You should copy the following files to a proper place now:"
|
|
||||||
@echo ""
|
|
||||||
@echo " src/cairo-features.h"
|
|
||||||
@for x in $(enabled_cairo_headers); do echo " src/$$x"; done
|
|
||||||
@echo " src/$(CFG)/cairo.dll"
|
|
||||||
@echo " src/$(CFG)/cairo-static.lib"
|
|
||||||
|
|
@ -1,459 +0,0 @@
|
||||||
# Generated by configure. Do not edit.
|
|
||||||
|
|
||||||
ifeq ($(top_srcdir),)
|
|
||||||
include Makefile.sources
|
|
||||||
else
|
|
||||||
include $(top_srcdir)/src/Makefile.sources
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers = $(cairo_headers)
|
|
||||||
unsupported_cairo_headers =
|
|
||||||
all_cairo_headers = $(cairo_headers)
|
|
||||||
all_cairo_private = $(cairo_private)
|
|
||||||
all_cairo_sources = $(cairo_sources)
|
|
||||||
|
|
||||||
enabled_cairo_headers = $(cairo_headers)
|
|
||||||
enabled_cairo_private = $(cairo_private)
|
|
||||||
enabled_cairo_sources = $(cairo_sources)
|
|
||||||
|
|
||||||
all_cairo_pkgconf = cairo.pc
|
|
||||||
enabled_cairo_pkgconf = cairo.pc
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_xlib_headers)
|
|
||||||
all_cairo_headers += $(cairo_xlib_headers)
|
|
||||||
all_cairo_private += $(cairo_xlib_private)
|
|
||||||
all_cairo_sources += $(cairo_xlib_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_XLIB_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_xlib_headers)
|
|
||||||
enabled_cairo_private += $(cairo_xlib_private)
|
|
||||||
enabled_cairo_sources += $(cairo_xlib_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-xlib.pc
|
|
||||||
ifeq ($(CAIRO_HAS_XLIB_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-xlib.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_xlib_xrender_headers)
|
|
||||||
all_cairo_headers += $(cairo_xlib_xrender_headers)
|
|
||||||
all_cairo_private += $(cairo_xlib_xrender_private)
|
|
||||||
all_cairo_sources += $(cairo_xlib_xrender_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_XLIB_XRENDER_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_xlib_xrender_headers)
|
|
||||||
enabled_cairo_private += $(cairo_xlib_xrender_private)
|
|
||||||
enabled_cairo_sources += $(cairo_xlib_xrender_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-xlib-xrender.pc
|
|
||||||
ifeq ($(CAIRO_HAS_XLIB_XRENDER_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-xlib-xrender.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_xcb_headers)
|
|
||||||
all_cairo_headers += $(cairo_xcb_headers)
|
|
||||||
all_cairo_private += $(cairo_xcb_private)
|
|
||||||
all_cairo_sources += $(cairo_xcb_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_XCB_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_xcb_headers)
|
|
||||||
enabled_cairo_private += $(cairo_xcb_private)
|
|
||||||
enabled_cairo_sources += $(cairo_xcb_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-xcb.pc
|
|
||||||
ifeq ($(CAIRO_HAS_XCB_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-xcb.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
unsupported_cairo_headers += $(cairo_xlib_xcb_headers)
|
|
||||||
all_cairo_headers += $(cairo_xlib_xcb_headers)
|
|
||||||
all_cairo_private += $(cairo_xlib_xcb_private)
|
|
||||||
all_cairo_sources += $(cairo_xlib_xcb_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_XLIB_XCB_FUNCTIONS),1)
|
|
||||||
enabled_cairo_headers += $(cairo_xlib_xcb_headers)
|
|
||||||
enabled_cairo_private += $(cairo_xlib_xcb_private)
|
|
||||||
enabled_cairo_sources += $(cairo_xlib_xcb_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-xlib-xcb.pc
|
|
||||||
ifeq ($(CAIRO_HAS_XLIB_XCB_FUNCTIONS),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-xlib-xcb.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_xcb_shm_headers)
|
|
||||||
all_cairo_headers += $(cairo_xcb_shm_headers)
|
|
||||||
all_cairo_private += $(cairo_xcb_shm_private)
|
|
||||||
all_cairo_sources += $(cairo_xcb_shm_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_XCB_SHM_FUNCTIONS),1)
|
|
||||||
enabled_cairo_headers += $(cairo_xcb_shm_headers)
|
|
||||||
enabled_cairo_private += $(cairo_xcb_shm_private)
|
|
||||||
enabled_cairo_sources += $(cairo_xcb_shm_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-xcb-shm.pc
|
|
||||||
ifeq ($(CAIRO_HAS_XCB_SHM_FUNCTIONS),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-xcb-shm.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_quartz_headers)
|
|
||||||
all_cairo_headers += $(cairo_quartz_headers)
|
|
||||||
all_cairo_private += $(cairo_quartz_private)
|
|
||||||
all_cairo_sources += $(cairo_quartz_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_QUARTZ_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_quartz_headers)
|
|
||||||
enabled_cairo_private += $(cairo_quartz_private)
|
|
||||||
enabled_cairo_sources += $(cairo_quartz_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-quartz.pc
|
|
||||||
ifeq ($(CAIRO_HAS_QUARTZ_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-quartz.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_quartz_font_headers)
|
|
||||||
all_cairo_headers += $(cairo_quartz_font_headers)
|
|
||||||
all_cairo_private += $(cairo_quartz_font_private)
|
|
||||||
all_cairo_sources += $(cairo_quartz_font_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_QUARTZ_FONT),1)
|
|
||||||
enabled_cairo_headers += $(cairo_quartz_font_headers)
|
|
||||||
enabled_cairo_private += $(cairo_quartz_font_private)
|
|
||||||
enabled_cairo_sources += $(cairo_quartz_font_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-quartz-font.pc
|
|
||||||
ifeq ($(CAIRO_HAS_QUARTZ_FONT),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-quartz-font.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
unsupported_cairo_headers += $(cairo_quartz_image_headers)
|
|
||||||
all_cairo_headers += $(cairo_quartz_image_headers)
|
|
||||||
all_cairo_private += $(cairo_quartz_image_private)
|
|
||||||
all_cairo_sources += $(cairo_quartz_image_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_QUARTZ_IMAGE_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_quartz_image_headers)
|
|
||||||
enabled_cairo_private += $(cairo_quartz_image_private)
|
|
||||||
enabled_cairo_sources += $(cairo_quartz_image_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-quartz-image.pc
|
|
||||||
ifeq ($(CAIRO_HAS_QUARTZ_IMAGE_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-quartz-image.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_win32_headers)
|
|
||||||
all_cairo_headers += $(cairo_win32_headers)
|
|
||||||
all_cairo_private += $(cairo_win32_private)
|
|
||||||
all_cairo_sources += $(cairo_win32_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_WIN32_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_win32_headers)
|
|
||||||
enabled_cairo_private += $(cairo_win32_private)
|
|
||||||
enabled_cairo_sources += $(cairo_win32_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-win32.pc
|
|
||||||
ifeq ($(CAIRO_HAS_WIN32_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-win32.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_win32_font_headers)
|
|
||||||
all_cairo_headers += $(cairo_win32_font_headers)
|
|
||||||
all_cairo_private += $(cairo_win32_font_private)
|
|
||||||
all_cairo_sources += $(cairo_win32_font_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_WIN32_FONT),1)
|
|
||||||
enabled_cairo_headers += $(cairo_win32_font_headers)
|
|
||||||
enabled_cairo_private += $(cairo_win32_font_private)
|
|
||||||
enabled_cairo_sources += $(cairo_win32_font_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-win32-font.pc
|
|
||||||
ifeq ($(CAIRO_HAS_WIN32_FONT),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-win32-font.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_png_headers)
|
|
||||||
all_cairo_headers += $(cairo_png_headers)
|
|
||||||
all_cairo_private += $(cairo_png_private)
|
|
||||||
all_cairo_sources += $(cairo_png_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_PNG_FUNCTIONS),1)
|
|
||||||
enabled_cairo_headers += $(cairo_png_headers)
|
|
||||||
enabled_cairo_private += $(cairo_png_private)
|
|
||||||
enabled_cairo_sources += $(cairo_png_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-png.pc
|
|
||||||
ifeq ($(CAIRO_HAS_PNG_FUNCTIONS),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-png.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
unsupported_cairo_headers += $(cairo_gl_headers)
|
|
||||||
all_cairo_headers += $(cairo_gl_headers)
|
|
||||||
all_cairo_private += $(cairo_gl_private)
|
|
||||||
all_cairo_sources += $(cairo_gl_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_GL_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_gl_headers)
|
|
||||||
enabled_cairo_private += $(cairo_gl_private)
|
|
||||||
enabled_cairo_sources += $(cairo_gl_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-gl.pc
|
|
||||||
ifeq ($(CAIRO_HAS_GL_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-gl.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
unsupported_cairo_headers += $(cairo_glesv2_headers)
|
|
||||||
all_cairo_headers += $(cairo_glesv2_headers)
|
|
||||||
all_cairo_private += $(cairo_glesv2_private)
|
|
||||||
all_cairo_sources += $(cairo_glesv2_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_GLESV2_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_glesv2_headers)
|
|
||||||
enabled_cairo_private += $(cairo_glesv2_private)
|
|
||||||
enabled_cairo_sources += $(cairo_glesv2_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-glesv2.pc
|
|
||||||
ifeq ($(CAIRO_HAS_GLESV2_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-glesv2.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
unsupported_cairo_headers += $(cairo_glesv3_headers)
|
|
||||||
all_cairo_headers += $(cairo_glesv3_headers)
|
|
||||||
all_cairo_private += $(cairo_glesv3_private)
|
|
||||||
all_cairo_sources += $(cairo_glesv3_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_GLESV3_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_glesv3_headers)
|
|
||||||
enabled_cairo_private += $(cairo_glesv3_private)
|
|
||||||
enabled_cairo_sources += $(cairo_glesv3_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-glesv3.pc
|
|
||||||
ifeq ($(CAIRO_HAS_GLESV3_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-glesv3.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_egl_headers)
|
|
||||||
all_cairo_headers += $(cairo_egl_headers)
|
|
||||||
all_cairo_private += $(cairo_egl_private)
|
|
||||||
all_cairo_sources += $(cairo_egl_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_EGL_FUNCTIONS),1)
|
|
||||||
enabled_cairo_headers += $(cairo_egl_headers)
|
|
||||||
enabled_cairo_private += $(cairo_egl_private)
|
|
||||||
enabled_cairo_sources += $(cairo_egl_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-egl.pc
|
|
||||||
ifeq ($(CAIRO_HAS_EGL_FUNCTIONS),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-egl.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_glx_headers)
|
|
||||||
all_cairo_headers += $(cairo_glx_headers)
|
|
||||||
all_cairo_private += $(cairo_glx_private)
|
|
||||||
all_cairo_sources += $(cairo_glx_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_GLX_FUNCTIONS),1)
|
|
||||||
enabled_cairo_headers += $(cairo_glx_headers)
|
|
||||||
enabled_cairo_private += $(cairo_glx_private)
|
|
||||||
enabled_cairo_sources += $(cairo_glx_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-glx.pc
|
|
||||||
ifeq ($(CAIRO_HAS_GLX_FUNCTIONS),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-glx.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_wgl_headers)
|
|
||||||
all_cairo_headers += $(cairo_wgl_headers)
|
|
||||||
all_cairo_private += $(cairo_wgl_private)
|
|
||||||
all_cairo_sources += $(cairo_wgl_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_WGL_FUNCTIONS),1)
|
|
||||||
enabled_cairo_headers += $(cairo_wgl_headers)
|
|
||||||
enabled_cairo_private += $(cairo_wgl_private)
|
|
||||||
enabled_cairo_sources += $(cairo_wgl_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-wgl.pc
|
|
||||||
ifeq ($(CAIRO_HAS_WGL_FUNCTIONS),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-wgl.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_script_headers)
|
|
||||||
all_cairo_headers += $(cairo_script_headers)
|
|
||||||
all_cairo_private += $(cairo_script_private)
|
|
||||||
all_cairo_sources += $(cairo_script_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_SCRIPT_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_script_headers)
|
|
||||||
enabled_cairo_private += $(cairo_script_private)
|
|
||||||
enabled_cairo_sources += $(cairo_script_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-script.pc
|
|
||||||
ifeq ($(CAIRO_HAS_SCRIPT_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-script.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_ft_headers)
|
|
||||||
all_cairo_headers += $(cairo_ft_headers)
|
|
||||||
all_cairo_private += $(cairo_ft_private)
|
|
||||||
all_cairo_sources += $(cairo_ft_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_FT_FONT),1)
|
|
||||||
enabled_cairo_headers += $(cairo_ft_headers)
|
|
||||||
enabled_cairo_private += $(cairo_ft_private)
|
|
||||||
enabled_cairo_sources += $(cairo_ft_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-ft.pc
|
|
||||||
ifeq ($(CAIRO_HAS_FT_FONT),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-ft.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_fc_headers)
|
|
||||||
all_cairo_headers += $(cairo_fc_headers)
|
|
||||||
all_cairo_private += $(cairo_fc_private)
|
|
||||||
all_cairo_sources += $(cairo_fc_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_FC_FONT),1)
|
|
||||||
enabled_cairo_headers += $(cairo_fc_headers)
|
|
||||||
enabled_cairo_private += $(cairo_fc_private)
|
|
||||||
enabled_cairo_sources += $(cairo_fc_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-fc.pc
|
|
||||||
ifeq ($(CAIRO_HAS_FC_FONT),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-fc.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_ps_headers)
|
|
||||||
all_cairo_headers += $(cairo_ps_headers)
|
|
||||||
all_cairo_private += $(cairo_ps_private)
|
|
||||||
all_cairo_sources += $(cairo_ps_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_PS_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_ps_headers)
|
|
||||||
enabled_cairo_private += $(cairo_ps_private)
|
|
||||||
enabled_cairo_sources += $(cairo_ps_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-ps.pc
|
|
||||||
ifeq ($(CAIRO_HAS_PS_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-ps.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_pdf_headers)
|
|
||||||
all_cairo_headers += $(cairo_pdf_headers)
|
|
||||||
all_cairo_private += $(cairo_pdf_private)
|
|
||||||
all_cairo_sources += $(cairo_pdf_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_PDF_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_pdf_headers)
|
|
||||||
enabled_cairo_private += $(cairo_pdf_private)
|
|
||||||
enabled_cairo_sources += $(cairo_pdf_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-pdf.pc
|
|
||||||
ifeq ($(CAIRO_HAS_PDF_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-pdf.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_svg_headers)
|
|
||||||
all_cairo_headers += $(cairo_svg_headers)
|
|
||||||
all_cairo_private += $(cairo_svg_private)
|
|
||||||
all_cairo_sources += $(cairo_svg_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_SVG_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_svg_headers)
|
|
||||||
enabled_cairo_private += $(cairo_svg_private)
|
|
||||||
enabled_cairo_sources += $(cairo_svg_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-svg.pc
|
|
||||||
ifeq ($(CAIRO_HAS_SVG_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-svg.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
all_cairo_private += $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers)
|
|
||||||
all_cairo_sources += $(cairo_test_surfaces_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_TEST_SURFACES),1)
|
|
||||||
enabled_cairo_private += $(cairo_test_surfaces_private) $(cairo_test_surfaces_headers)
|
|
||||||
enabled_cairo_sources += $(cairo_test_surfaces_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_image_headers)
|
|
||||||
all_cairo_headers += $(cairo_image_headers)
|
|
||||||
all_cairo_private += $(cairo_image_private)
|
|
||||||
all_cairo_sources += $(cairo_image_sources)
|
|
||||||
enabled_cairo_headers += $(cairo_image_headers)
|
|
||||||
enabled_cairo_private += $(cairo_image_private)
|
|
||||||
enabled_cairo_sources += $(cairo_image_sources)
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_mime_headers)
|
|
||||||
all_cairo_headers += $(cairo_mime_headers)
|
|
||||||
all_cairo_private += $(cairo_mime_private)
|
|
||||||
all_cairo_sources += $(cairo_mime_sources)
|
|
||||||
enabled_cairo_headers += $(cairo_mime_headers)
|
|
||||||
enabled_cairo_private += $(cairo_mime_private)
|
|
||||||
enabled_cairo_sources += $(cairo_mime_sources)
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_recording_headers)
|
|
||||||
all_cairo_headers += $(cairo_recording_headers)
|
|
||||||
all_cairo_private += $(cairo_recording_private)
|
|
||||||
all_cairo_sources += $(cairo_recording_sources)
|
|
||||||
enabled_cairo_headers += $(cairo_recording_headers)
|
|
||||||
enabled_cairo_private += $(cairo_recording_private)
|
|
||||||
enabled_cairo_sources += $(cairo_recording_sources)
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_observer_headers)
|
|
||||||
all_cairo_headers += $(cairo_observer_headers)
|
|
||||||
all_cairo_private += $(cairo_observer_private)
|
|
||||||
all_cairo_sources += $(cairo_observer_sources)
|
|
||||||
enabled_cairo_headers += $(cairo_observer_headers)
|
|
||||||
enabled_cairo_private += $(cairo_observer_private)
|
|
||||||
enabled_cairo_sources += $(cairo_observer_sources)
|
|
||||||
|
|
||||||
unsupported_cairo_headers += $(cairo_tee_headers)
|
|
||||||
all_cairo_headers += $(cairo_tee_headers)
|
|
||||||
all_cairo_private += $(cairo_tee_private)
|
|
||||||
all_cairo_sources += $(cairo_tee_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_TEE_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_tee_headers)
|
|
||||||
enabled_cairo_private += $(cairo_tee_private)
|
|
||||||
enabled_cairo_sources += $(cairo_tee_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-tee.pc
|
|
||||||
ifeq ($(CAIRO_HAS_TEE_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-tee.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
unsupported_cairo_headers += $(cairo_xml_headers)
|
|
||||||
all_cairo_headers += $(cairo_xml_headers)
|
|
||||||
all_cairo_private += $(cairo_xml_private)
|
|
||||||
all_cairo_sources += $(cairo_xml_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_XML_SURFACE),1)
|
|
||||||
enabled_cairo_headers += $(cairo_xml_headers)
|
|
||||||
enabled_cairo_private += $(cairo_xml_private)
|
|
||||||
enabled_cairo_sources += $(cairo_xml_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-xml.pc
|
|
||||||
ifeq ($(CAIRO_HAS_XML_SURFACE),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-xml.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_user_headers)
|
|
||||||
all_cairo_headers += $(cairo_user_headers)
|
|
||||||
all_cairo_private += $(cairo_user_private)
|
|
||||||
all_cairo_sources += $(cairo_user_sources)
|
|
||||||
enabled_cairo_headers += $(cairo_user_headers)
|
|
||||||
enabled_cairo_private += $(cairo_user_private)
|
|
||||||
enabled_cairo_sources += $(cairo_user_sources)
|
|
||||||
|
|
||||||
all_cairo_private += $(cairo_pthread_private) $(cairo_pthread_headers)
|
|
||||||
all_cairo_sources += $(cairo_pthread_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_PTHREAD),1)
|
|
||||||
enabled_cairo_private += $(cairo_pthread_private) $(cairo_pthread_headers)
|
|
||||||
enabled_cairo_sources += $(cairo_pthread_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
supported_cairo_headers += $(cairo_gobject_headers)
|
|
||||||
all_cairo_headers += $(cairo_gobject_headers)
|
|
||||||
all_cairo_private += $(cairo_gobject_private)
|
|
||||||
all_cairo_sources += $(cairo_gobject_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)
|
|
||||||
enabled_cairo_headers += $(cairo_gobject_headers)
|
|
||||||
enabled_cairo_private += $(cairo_gobject_private)
|
|
||||||
enabled_cairo_sources += $(cairo_gobject_sources)
|
|
||||||
endif
|
|
||||||
all_cairo_pkgconf += cairo-gobject.pc
|
|
||||||
ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)
|
|
||||||
enabled_cairo_pkgconf += cairo-gobject.pc
|
|
||||||
endif
|
|
||||||
|
|
||||||
all_cairo_private += $(cairo_trace_private) $(cairo_trace_headers)
|
|
||||||
all_cairo_sources += $(cairo_trace_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_TRACE),1)
|
|
||||||
enabled_cairo_private += $(cairo_trace_private) $(cairo_trace_headers)
|
|
||||||
enabled_cairo_sources += $(cairo_trace_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
all_cairo_private += $(cairo_interpreter_private) $(cairo_interpreter_headers)
|
|
||||||
all_cairo_sources += $(cairo_interpreter_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_INTERPRETER),1)
|
|
||||||
enabled_cairo_private += $(cairo_interpreter_private) $(cairo_interpreter_headers)
|
|
||||||
enabled_cairo_sources += $(cairo_interpreter_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
all_cairo_private += $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers)
|
|
||||||
all_cairo_sources += $(cairo_symbol_lookup_sources)
|
|
||||||
ifeq ($(CAIRO_HAS_SYMBOL_LOOKUP),1)
|
|
||||||
enabled_cairo_private += $(cairo_symbol_lookup_private) $(cairo_symbol_lookup_headers)
|
|
||||||
enabled_cairo_sources += $(cairo_symbol_lookup_sources)
|
|
||||||
endif
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
Name: @FEATURE_PC@
|
|
||||||
Description: @FEATURE_NAME@ for cairo graphics library
|
|
||||||
Version: @VERSION@
|
|
||||||
|
|
||||||
Requires: @FEATURE_BASE@ @FEATURE_REQUIRES@
|
|
||||||
Libs: @FEATURE_NONPKGCONFIG_LIBS@ @FEATURE_NONPKGCONFIG_EXTRA_LIBS@
|
|
||||||
Cflags: -I${pc_top_builddir}/${pcfiledir}/@srcdir@/src @FEATURE_NONPKGCONFIG_CFLAGS@
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
prefix=@prefix@
|
|
||||||
exec_prefix=@exec_prefix@
|
|
||||||
libdir=@libdir@
|
|
||||||
includedir=@includedir@
|
|
||||||
|
|
||||||
Name: @FEATURE_PC@
|
|
||||||
Description: @FEATURE_NAME@ for cairo graphics library
|
|
||||||
Version: @VERSION@
|
|
||||||
|
|
||||||
Requires: @FEATURE_BASE@ @FEATURE_REQUIRES@
|
|
||||||
Libs: @FEATURE_NONPKGCONFIG_LIBS@ @FEATURE_NONPKGCONFIG_EXTRA_LIBS@
|
|
||||||
Cflags: -I${includedir}/cairo @FEATURE_NONPKGCONFIG_CFLAGS@
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
Name: cairo
|
|
||||||
Description: Multi-platform 2D graphics library
|
|
||||||
Version: @VERSION@
|
|
||||||
|
|
||||||
@PKGCONFIG_REQUIRES@: @CAIRO_REQUIRES@
|
|
||||||
Libs: ${pc_top_builddir}/${pcfiledir}/src/libcairo.la
|
|
||||||
Libs.private: @CAIRO_NONPKGCONFIG_LIBS@
|
|
||||||
Cflags: -I${pc_top_builddir}/${pcfiledir}/@srcdir@/src
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
prefix=@prefix@
|
|
||||||
exec_prefix=@exec_prefix@
|
|
||||||
libdir=@libdir@
|
|
||||||
includedir=@includedir@
|
|
||||||
|
|
||||||
Name: cairo
|
|
||||||
Description: Multi-platform 2D graphics library
|
|
||||||
Version: @VERSION@
|
|
||||||
|
|
||||||
@PKGCONFIG_REQUIRES@: @CAIRO_REQUIRES@
|
|
||||||
Libs: -L${libdir} -lcairo
|
|
||||||
Libs.private: @CAIRO_NONPKGCONFIG_LIBS@
|
|
||||||
Cflags: -I${includedir}/cairo
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
LC_ALL=C
|
|
||||||
export LC_ALL
|
|
||||||
|
|
||||||
if which nm 2>/dev/null >/dev/null; then
|
|
||||||
:
|
|
||||||
else
|
|
||||||
echo "'nm' not found; skipping test"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
test -z "$srcdir" && srcdir=.
|
|
||||||
test -z "$MAKE" && MAKE=make
|
|
||||||
stat=0
|
|
||||||
|
|
||||||
$MAKE check-has-hidden-symbols.i > /dev/null || exit 1
|
|
||||||
if tail -1 check-has-hidden-symbols.i | grep CAIRO_HAS_HIDDEN_SYMBOLS >/dev/null; then
|
|
||||||
echo "Compiler doesn't support symbol visibility; skipping test"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "`uname -s`" = "Linux" ]; then
|
|
||||||
get_cairo_syms='( objdump -t "$so" | grep "^[^ ]* [^l.*]*[.]"; objdump -t "$so" | grep "[.]hidden.*\\<cairo"; ) | sed "s/.* //"'
|
|
||||||
else
|
|
||||||
get_cairo_syms='nm "$so" | grep " [BCDGINRSTVW] " | cut -d" " -f3'
|
|
||||||
fi
|
|
||||||
|
|
||||||
defs="cairo.def"
|
|
||||||
$MAKE $defs > /dev/null
|
|
||||||
for def in $defs; do
|
|
||||||
lib=`echo "$def" | sed 's/[.]def$//'`
|
|
||||||
lib=`echo "$lib" | sed 's@.*/@@'`
|
|
||||||
so=.libs/lib${lib}.so
|
|
||||||
|
|
||||||
test -f "$so" || continue
|
|
||||||
|
|
||||||
echo Checking that $so has the same symbol list as $def
|
|
||||||
|
|
||||||
{
|
|
||||||
echo EXPORTS
|
|
||||||
eval $get_cairo_syms | c++filt --no-params | grep -v '^_cairo_test_\|^_fini\|^_init\|^_save[fg]pr\|^_rest[fg]pr\|^_Z\|^__gnu\|^__bss\|^_edata\|^_end' | sort -u
|
|
||||||
# cheat: copy the last line from the def file!
|
|
||||||
tail -n1 "$def"
|
|
||||||
} | diff "$def" - >&2 || stat=1
|
|
||||||
done
|
|
||||||
|
|
||||||
exit $stat
|
|
||||||
412
test/Makefile.am
412
test/Makefile.am
|
|
@ -1,412 +0,0 @@
|
||||||
include $(top_srcdir)/build/Makefile.am.common
|
|
||||||
|
|
||||||
include $(top_srcdir)/test/Makefile.sources
|
|
||||||
|
|
||||||
SUBDIRS=pdiff .
|
|
||||||
|
|
||||||
# Then we have a collection of tests that are only run if certain
|
|
||||||
# features are compiled into cairo
|
|
||||||
if HAVE_REAL_PTHREAD
|
|
||||||
test_sources += $(pthread_test_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_FT_FONT
|
|
||||||
test_sources += $(ft_font_test_sources)
|
|
||||||
if CAIRO_HAS_FC_FONT
|
|
||||||
test_sources += $(fc_font_test_sources)
|
|
||||||
if HAVE_FT_SVG_DOCUMENT
|
|
||||||
test_sources += $(fc_svg_font_test_sources)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_GL_SURFACE
|
|
||||||
test_sources += $(gl_surface_test_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_EGL_FUNCTIONS
|
|
||||||
test_sources += $(egl_surface_test_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Need to add quartz-surface-source
|
|
||||||
if CAIRO_HAS_QUARTZ_SURFACE
|
|
||||||
test_sources += "$(quartz_surface_test_sources) $(quartz_color_font_test_sources)"
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_PDF_SURFACE
|
|
||||||
test_sources += $(pdf_surface_test_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_PS_SURFACE
|
|
||||||
test_sources += $(ps_surface_test_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_SVG_SURFACE
|
|
||||||
test_sources += $(svg_surface_test_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_TEST_SURFACES
|
|
||||||
test_sources += $(test_fallback16_surface_test_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_XCB_SURFACE
|
|
||||||
test_sources += $(xcb_surface_test_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_XLIB_SURFACE
|
|
||||||
test_sources += $(xlib_surface_test_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_XLIB_XRENDER_SURFACE
|
|
||||||
test_sources += $(xlib_xrender_surface_test_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_MULTI_PAGE_SURFACES
|
|
||||||
test_sources += $(multi_page_surface_test_sources)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Include fallback-resolution (once!) if we have any of the vector surfaces
|
|
||||||
if BUILD_ANY2PPM
|
|
||||||
if CAIRO_HAS_SVG_SURFACE
|
|
||||||
test = $(fallback_resolution_test_sources)
|
|
||||||
endif
|
|
||||||
if CAIRO_HAS_PDF_SURFACE
|
|
||||||
test = $(fallback_resolution_test_sources)
|
|
||||||
endif
|
|
||||||
if CAIRO_HAS_PS_SURFACE
|
|
||||||
test = $(fallback_resolution_test_sources)
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
test_sources += $(test)
|
|
||||||
|
|
||||||
noinst_PROGRAMS = cairo-test-suite$(EXEEXT) # always build
|
|
||||||
noinst_SCRIPTS = check-refs.sh
|
|
||||||
|
|
||||||
TESTS += cairo-test-suite$(EXEEXT)
|
|
||||||
|
|
||||||
cairo-test-constructors.c: Makefile $(test_sources) make-cairo-test-constructors.sh
|
|
||||||
(cd $(srcdir) && sh ./make-cairo-test-constructors.sh $(test_sources)) > $@ || (rm $@ ; exit 1)
|
|
||||||
|
|
||||||
cairo_test_suite_SOURCES = \
|
|
||||||
$(cairo_test_suite_sources) \
|
|
||||||
$(cairo_test_suite_headers) \
|
|
||||||
$(test_sources) \
|
|
||||||
cairo-test-constructors.c
|
|
||||||
cairo_test_suite_CFLAGS = $(AM_CFLAGS) $(real_pthread_CFLAGS)
|
|
||||||
cairo_test_suite_LDADD = \
|
|
||||||
$(real_pthread_LIBS) \
|
|
||||||
$(top_builddir)/test/pdiff/libpdiff.la \
|
|
||||||
$(top_builddir)/boilerplate/libcairoboilerplate.la \
|
|
||||||
$(top_builddir)/src/libcairo.la \
|
|
||||||
$(CAIRO_LDADD)
|
|
||||||
cairo_test_suite_DEPENDENCIES = \
|
|
||||||
$(top_builddir)/test/pdiff/libpdiff.la \
|
|
||||||
$(top_builddir)/boilerplate/libcairoboilerplate.la \
|
|
||||||
$(top_builddir)/src/libcairo.la
|
|
||||||
if BUILD_ANY2PPM
|
|
||||||
cairo_test_suite_DEPENDENCIES += \
|
|
||||||
any2ppm$(EXEEXT)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if HAVE_SHM
|
|
||||||
EXTRA_PROGRAMS += cairo-test-trace
|
|
||||||
cairo_test_trace_SOURCES = \
|
|
||||||
cairo-test-trace.c \
|
|
||||||
buffer-diff.c \
|
|
||||||
buffer-diff.h
|
|
||||||
cairo_test_trace_CFLAGS = $(AM_CFLAGS) $(real_pthread_CFLAGS)
|
|
||||||
cairo_test_trace_LDADD = \
|
|
||||||
$(real_pthread_LIBS) \
|
|
||||||
$(top_builddir)/test/pdiff/libpdiff.la \
|
|
||||||
$(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
|
|
||||||
$(top_builddir)/boilerplate/libcairoboilerplate.la \
|
|
||||||
$(top_builddir)/src/libcairo.la \
|
|
||||||
$(top_builddir)/util/cairo-missing/libcairo-missing.la \
|
|
||||||
$(CAIRO_LDADD) \
|
|
||||||
$(SHM_LIBS)
|
|
||||||
cairo_test_trace_DEPENDENCIES = \
|
|
||||||
$(top_builddir)/test/pdiff/libpdiff.la \
|
|
||||||
$(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
|
|
||||||
$(top_builddir)/boilerplate/libcairoboilerplate.la \
|
|
||||||
$(top_builddir)/src/libcairo.la \
|
|
||||||
$(top_builddir)/util/cairo-missing/libcairo-missing.la \
|
|
||||||
$(NULL)
|
|
||||||
endif
|
|
||||||
|
|
||||||
BUILT_SOURCES += cairo-test-constructors.c
|
|
||||||
EXTRA_DIST += $(BUILT_SOURCES) $(noinst_SCRIPTS) COPYING make-cairo-test-constructors.sh run-cairo-test-suite.sh generate_refs.sh tiger.inc
|
|
||||||
CLEANFILES += $(BUILT_SOURCES)
|
|
||||||
|
|
||||||
EXTRA_DIST += \
|
|
||||||
6x13.pcf \
|
|
||||||
index.html \
|
|
||||||
jp2.jp2 \
|
|
||||||
jpeg.jpg \
|
|
||||||
png.png \
|
|
||||||
romedalen.jpg \
|
|
||||||
romedalen.png \
|
|
||||||
scarab.jpg \
|
|
||||||
surface-source.c \
|
|
||||||
testtable.js \
|
|
||||||
reference
|
|
||||||
|
|
||||||
# Any test that doesn't generate a log file goes here
|
|
||||||
NOLOG_TESTS = \
|
|
||||||
fallback-resolution \
|
|
||||||
font-options \
|
|
||||||
multi-page \
|
|
||||||
pdf-features \
|
|
||||||
png \
|
|
||||||
ps-eps \
|
|
||||||
ps-features \
|
|
||||||
svg-clip \
|
|
||||||
svg-surface \
|
|
||||||
toy-font-face \
|
|
||||||
font-variations \
|
|
||||||
user-data
|
|
||||||
|
|
||||||
# A target to summarise the failures
|
|
||||||
check-summary:
|
|
||||||
@FAILED_TESTS=""; \
|
|
||||||
for t in output/*.log; do \
|
|
||||||
if grep -e '\<FAIL\>' $$t >/dev/null 2>&1; then \
|
|
||||||
FAILED_TESTS="$$FAILED_TESTS $$t"; \
|
|
||||||
fi; \
|
|
||||||
done; \
|
|
||||||
if test -n "$$FAILED_TESTS"; then \
|
|
||||||
echo "Failed tests:"; \
|
|
||||||
surfaces=""; \
|
|
||||||
for t in $$FAILED_TESTS; do \
|
|
||||||
name="$${t##output/}"; name="$${name%.log}"; \
|
|
||||||
echo -n " $$name: "; \
|
|
||||||
grep -e '\<FAIL\>' $$t | sed -e 's/.*TARGET: \([^ ]*\).*/\1/' | sort | uniq | tr '\n' ' '; \
|
|
||||||
echo; \
|
|
||||||
for s in `grep -e '\<FAIL\>' $$t | sed -e 's/.*TARGET: \([^ ]*\).*/\1/' | sort | uniq`; do \
|
|
||||||
ss=`echo $$s | tr '-' '_'`; \
|
|
||||||
tt=`echo $$name | tr '-' '_'`; \
|
|
||||||
eval $$ss=\""$${!ss} $$tt"\"; \
|
|
||||||
echo $$surfaces | grep $$ss >/dev/null || surfaces="$$surfaces $$ss"; \
|
|
||||||
done; \
|
|
||||||
done; \
|
|
||||||
echo -n "Failures per surface - "; \
|
|
||||||
first=""; \
|
|
||||||
for s in $$surfaces; do \
|
|
||||||
ss=`echo $$s | tr '_' '-'`; \
|
|
||||||
test -n "$$first" && echo -n ", "; \
|
|
||||||
cnt=`echo $${!s} | wc -w`; \
|
|
||||||
echo -n "$$ss: $$cnt"; \
|
|
||||||
first="false"; \
|
|
||||||
done; \
|
|
||||||
echo "."; \
|
|
||||||
for s in $$surfaces; do \
|
|
||||||
ss=`echo $$s | tr '_' '-'`; \
|
|
||||||
cnt=`echo $${!s} | wc -w`; \
|
|
||||||
echo -n " $$ss [$$cnt]: "; \
|
|
||||||
echo $${!s} | tr '_' '-'; \
|
|
||||||
done; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I$(srcdir) \
|
|
||||||
-I$(srcdir)/pdiff \
|
|
||||||
-I$(top_srcdir)/boilerplate \
|
|
||||||
-I$(top_srcdir)/util/cairo-missing \
|
|
||||||
-I$(top_srcdir)/util/cairo-script \
|
|
||||||
-I$(top_srcdir)/src \
|
|
||||||
-I$(top_builddir)/src \
|
|
||||||
$(CAIRO_CFLAGS)
|
|
||||||
AM_LDFLAGS = $(CAIRO_LDFLAGS)
|
|
||||||
|
|
||||||
$(top_builddir)/boilerplate/libcairoboilerplate.la: $(top_builddir)/src/libcairo.la
|
|
||||||
cd $(top_builddir)/boilerplate && $(MAKE) $(AM_MAKEFLAGS) libcairoboilerplate.la
|
|
||||||
|
|
||||||
$(top_builddir)/src/libcairo.la:
|
|
||||||
cd $(top_builddir)/src && $(MAKE) $(AM_MAKEFLAGS) libcairo.la
|
|
||||||
|
|
||||||
$(top_builddir)/test/pdiff/libpdiff.la:
|
|
||||||
cd $(top_builddir)/test/pdiff && $(MAKE) $(AM_MAKEFLAGS) libpdiff.la
|
|
||||||
|
|
||||||
$(top_builddir)/test/pdiff/perceptualdiff:
|
|
||||||
cd $(top_builddir)/test/pdiff && $(MAKE) $(AM_MAKEFLAGS) perceptualdiff
|
|
||||||
|
|
||||||
$(top_builddir)/util/cairo-script/libcairo-script-interpreter.la: $(top_builddir)/src/libcairo.la
|
|
||||||
cd $(top_builddir)/util/cairo-script && $(MAKE) $(AM_MAKEFLAGS) libcairo-script-interpreter.la
|
|
||||||
|
|
||||||
EXTRA_PROGRAMS += imagediff png-flatten
|
|
||||||
|
|
||||||
imagediff_SOURCES = \
|
|
||||||
imagediff.c \
|
|
||||||
buffer-diff.c \
|
|
||||||
buffer-diff.h
|
|
||||||
imagediff_LDADD = \
|
|
||||||
$(top_builddir)/test/pdiff/libpdiff.la \
|
|
||||||
$(top_builddir)/src/libcairo.la
|
|
||||||
|
|
||||||
png_flatten_SOURCES = png-flatten.c
|
|
||||||
png_flatten_LDADD = $(top_builddir)/src/libcairo.la \
|
|
||||||
$(CAIRO_LDADD)
|
|
||||||
|
|
||||||
if BUILD_ANY2PPM
|
|
||||||
check_PROGRAMS += any2ppm
|
|
||||||
any2ppm_CFLAGS = $(AM_CFLAGS) $(POPPLER_CFLAGS) $(LIBRSVG_CFLAGS) $(LIBSPECTRE_CFLAGS)
|
|
||||||
# add LDADD, so poppler/librsvg uses "our" cairo
|
|
||||||
any2ppm_LDFLAGS = $(AM_LDFLAGS) $(CAIRO_TEST_UNDEFINED_LDFLAGS)
|
|
||||||
any2ppm_LDADD = \
|
|
||||||
$(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
|
|
||||||
$(top_builddir)/src/libcairo.la \
|
|
||||||
$(CAIRO_LDADD) \
|
|
||||||
$(CAIROBOILERPLATE_LIBS) \
|
|
||||||
$(POPPLER_LIBS) \
|
|
||||||
$(LIBRSVG_LIBS) \
|
|
||||||
$(LIBSPECTRE_LIBS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_CAN_TEST_PDF_SURFACE
|
|
||||||
check_PROGRAMS += pdf2png
|
|
||||||
pdf2png_CFLAGS = $(AM_CFLAGS) $(POPPLER_CFLAGS)
|
|
||||||
# add LDADD, so poppler uses "our" cairo
|
|
||||||
pdf2png_LDFLAGS = $(AM_LDFLAGS) $(CAIRO_TEST_UNDEFINED_LDFLAGS)
|
|
||||||
pdf2png_LDADD = $(top_builddir)/src/libcairo.la \
|
|
||||||
$(CAIRO_LDADD) \
|
|
||||||
$(POPPLER_LIBS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_CAN_TEST_SVG_SURFACE
|
|
||||||
check_PROGRAMS += svg2png
|
|
||||||
svg2png_CFLAGS = $(AM_CFLAGS) $(LIBRSVG_CFLAGS)
|
|
||||||
# add LDADD, so librsvg uses "our" cairo
|
|
||||||
svg2png_LDFLAGS = $(AM_LDFLAGS) $(CAIRO_TEST_UNDEFINED_LDFLAGS)
|
|
||||||
svg2png_LDADD = $(top_builddir)/src/libcairo.la \
|
|
||||||
$(CAIRO_LDADD) \
|
|
||||||
$(LIBRSVG_LIBS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_SPECTRE
|
|
||||||
check_PROGRAMS += ps2png
|
|
||||||
ps2png_CFLAGS = $(AM_CFLAGS) $(LIBSPECTRE_CFLAGS)
|
|
||||||
# add LDADD, so ps2png uses "our" cairo
|
|
||||||
ps2png_LDFLAGS = $(AM_LDFLAGS) $(CAIRO_TEST_UNDEFINED_LDFLAGS)
|
|
||||||
ps2png_LDADD = $(top_builddir)/src/libcairo.la \
|
|
||||||
$(CAIRO_LDADD) \
|
|
||||||
$(LIBSPECTRE_LIBS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
EXTRA_PROGRAMS += $(TESTS)
|
|
||||||
|
|
||||||
# Do a funny transition of CAIRO_TEST_TARGET through TARGETS such that
|
|
||||||
# one can limit tested targets both through CAIRO_TEST_TARGET env var
|
|
||||||
# and TARGETS make var on the command line. Same for the rest.
|
|
||||||
TARGETS = $(CAIRO_TEST_TARGET)
|
|
||||||
TARGETS_EXCLUDE = $(CAIRO_TEST_TARGET_EXCLUDE)
|
|
||||||
FORMAT = $(CAIRO_TEST_TARGET_FORMAT)
|
|
||||||
MODE = $(CAIRO_TEST_MODE)
|
|
||||||
|
|
||||||
# Same about ENV vs CAIRO_TEST_ENV. ENV is used with "make run" only
|
|
||||||
ENV = $(CAIRO_TEST_ENV)
|
|
||||||
|
|
||||||
TESTS_ENVIRONMENT = CAIRO_TEST_MODE="$(MODE)" CAIRO_TEST_TARGET="$(TARGETS)" CAIRO_TEST_TARGET_FORMAT="$(FORMAT)" CAIRO_TEST_TARGET_EXCLUDE="$(TARGETS_EXCLUDE)" $(ENV)
|
|
||||||
|
|
||||||
EXTRA_VALGRIND_FLAGS = $(CAIRO_EXTRA_VALGRIND_FLAGS)
|
|
||||||
VALGRIND_FLAGS = \
|
|
||||||
--tool=memcheck --suppressions=$(srcdir)/.valgrind-suppressions \
|
|
||||||
--track-origins=yes \
|
|
||||||
--leak-check=yes --show-reachable=yes \
|
|
||||||
$(EXTRA_VALGRIND_FLAGS)
|
|
||||||
|
|
||||||
CLEANFILES += \
|
|
||||||
valgrind-log \
|
|
||||||
ref.hash \
|
|
||||||
ref.list \
|
|
||||||
png-test.png \
|
|
||||||
png.out.png \
|
|
||||||
create-for-stream.pdf \
|
|
||||||
create-for-stream.ps \
|
|
||||||
create-for-stream.svg \
|
|
||||||
svg-surface-source.out.svg \
|
|
||||||
pdf-surface-source.out.pdf \
|
|
||||||
ps-surface-source.out.ps \
|
|
||||||
pdf-features.pdf \
|
|
||||||
pdf-mime-data.out* \
|
|
||||||
pdf-tagged-text.out* \
|
|
||||||
ps-features.ps \
|
|
||||||
svg-clip.svg \
|
|
||||||
svg-surface.svg \
|
|
||||||
multi-page.pdf \
|
|
||||||
multi-page.ps \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
# This used to be a simple 'echo ${RM} *.ps *.pdf *.svg *.etc', but
|
|
||||||
# most systems cannot handle all of our clean files together.
|
|
||||||
# Then it became a fancy find using many GNU extensions, but then the ugly
|
|
||||||
# reality of portability was raised and it became....
|
|
||||||
clean-local:
|
|
||||||
rm -rf output
|
|
||||||
-${FIND} . -name '*.log' -print | ${XARGS} ${RM}
|
|
||||||
-${FIND} . -name '*.[is]' -print | ${XARGS} ${RM}
|
|
||||||
clean-caches:
|
|
||||||
-${FIND} output -name '*.fail.*' -print | ${XARGS} ${RM}
|
|
||||||
-${FIND} output -name '*.pass.*' -print | ${XARGS} ${RM}
|
|
||||||
|
|
||||||
# The following definitions both should work.
|
|
||||||
#FAILED_TESTS = `grep -l '\<FAIL\>' $(test_sources:.c=.log) 2>/dev/null | sed -e 's/[.]log$$//' | xargs echo`
|
|
||||||
FAILED_TESTS = `grep -l '\<FAIL\>' $(test_sources:.c=.log) 2>/dev/null | tr '\n' ' ' | sed -e 's/[.]log */ /g; s/^ //; s/ $$//'`
|
|
||||||
|
|
||||||
recheck = check CAIRO_TESTS="$(FAILED_TESTS)"
|
|
||||||
|
|
||||||
# Re-checks all failed tests, i.e. tests with a log file that has a failure
|
|
||||||
recheck:
|
|
||||||
@echo Re-checking failed tests
|
|
||||||
@$(MAKE) $(AM_MAKEFLAGS) $(recheck)
|
|
||||||
|
|
||||||
# Checks tests.
|
|
||||||
# Target doesn't fail if tests fail.
|
|
||||||
test:
|
|
||||||
@$(MAKE) $(AM_MAKEFLAGS) check
|
|
||||||
|
|
||||||
# Re-checks tests.
|
|
||||||
# Target doesn't fail if tests fail.
|
|
||||||
retest:
|
|
||||||
@CAIRO_TESTS="$(FAILED_TESTS)"; \
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) check
|
|
||||||
|
|
||||||
# Run tests under a tool specified by TOOL. For example, make run TOOL=gdb
|
|
||||||
run:
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) check TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) $(top_builddir)/libtool --mode=execute env $(TOOL)'
|
|
||||||
|
|
||||||
# Check tests under valgrind. Saves log to valgrind-log
|
|
||||||
check-valgrind:
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) check TESTS_ENVIRONMENT='$(TESTS_ENVIRONMENT) CAIRO_TEST_MODE="$(MODE),foreground CAIRO_TEST_TIMEOUT=0" $(top_builddir)/libtool --mode=execute valgrind $(VALGRIND_FLAGS)' 2>&1 | tee valgrind-log
|
|
||||||
|
|
||||||
#%.log: %.c cairo-test-suite
|
|
||||||
#-./cairo-test-suite $(<:.c=)
|
|
||||||
|
|
||||||
NOLOG_TESTS_LOG = $(NOLOG_TESTS:=.log)
|
|
||||||
|
|
||||||
$(NOLOG_TESTS_LOG):
|
|
||||||
@echo dummy > $@
|
|
||||||
|
|
||||||
# Identify identical reference images
|
|
||||||
check-ref-dups: check-refs.sh $(top_builddir)/test/pdiff/perceptualdiff
|
|
||||||
sh $(srcdir)/check-refs.sh $(top_builddir)/test/pdiff/perceptualdiff
|
|
||||||
|
|
||||||
# Remove identical reference images (DANGEROUS)
|
|
||||||
clean-ref-dups: check-refs.sh $(top_builddir)/test/pdiff/perceptualdiff
|
|
||||||
sh $(srcdir)/check-refs.sh | cut -d' ' -f2 | while read f; do git rm "reference/$$f"; done
|
|
||||||
|
|
||||||
results.tar:
|
|
||||||
@tar cf $@ index.html testtable.js *.log output/*.log; \
|
|
||||||
for i in output/*.fail.png ; do \
|
|
||||||
testname=$${i#output/} ; \
|
|
||||||
testname=$${testname%%.*} ; \
|
|
||||||
echo tar uf $@ reference/$${testname}*.ref.png $${i%fail.png}out.png $${i%fail.png}diff.png ; \
|
|
||||||
tar uf $@ reference/$${testname}*.ref.png $${i%fail.png}out.png $${i%fail.png}diff.png ; \
|
|
||||||
done
|
|
||||||
|
|
||||||
results.tar.gz: results.tar
|
|
||||||
gzip -c $< > $@
|
|
||||||
|
|
||||||
release-verify-sane-tests:
|
|
||||||
|
|
||||||
.PHONY: check-valgrind test recheck retest check-ref-dups release-verify-sane-tests
|
|
||||||
|
|
||||||
EXTRA_DIST += Makefile.win32
|
|
||||||
|
|
@ -1,485 +0,0 @@
|
||||||
test_sources = \
|
|
||||||
a1-bug.c \
|
|
||||||
a1-clip.c \
|
|
||||||
a1-fill.c \
|
|
||||||
a1-image-sample.c \
|
|
||||||
a1-mask.c \
|
|
||||||
a1-mask-sample.c \
|
|
||||||
a1-sample.c \
|
|
||||||
a1-traps-sample.c \
|
|
||||||
a1-rasterisation.c \
|
|
||||||
a8-clear.c \
|
|
||||||
a8-mask.c \
|
|
||||||
aliasing.c \
|
|
||||||
alpha-similar.c \
|
|
||||||
arc-direction.c \
|
|
||||||
arc-infinite-loop.c \
|
|
||||||
arc-looping-dash.c \
|
|
||||||
api-special-cases.c \
|
|
||||||
big-line.c \
|
|
||||||
big-empty-box.c \
|
|
||||||
big-empty-triangle.c \
|
|
||||||
big-little-box.c \
|
|
||||||
big-little-triangle.c \
|
|
||||||
bug-spline.c \
|
|
||||||
big-trap.c \
|
|
||||||
bilevel-image.c \
|
|
||||||
bug-277.c \
|
|
||||||
bug-361.c \
|
|
||||||
bug-40410.c \
|
|
||||||
bug-431.c \
|
|
||||||
bug-448.c \
|
|
||||||
bug-535.c \
|
|
||||||
bug-51910.c \
|
|
||||||
bug-75705.c \
|
|
||||||
bug-84115.c \
|
|
||||||
bug-bo-rectangular.c \
|
|
||||||
bug-bo-collins.c \
|
|
||||||
bug-bo-ricotz.c \
|
|
||||||
bug-source-cu.c \
|
|
||||||
bug-extents.c \
|
|
||||||
bug-seams.c \
|
|
||||||
bug-image-compositor.c \
|
|
||||||
caps.c \
|
|
||||||
checkerboard.c \
|
|
||||||
caps-joins.c \
|
|
||||||
caps-joins-alpha.c \
|
|
||||||
caps-joins-curve.c \
|
|
||||||
caps-tails-curve.c \
|
|
||||||
caps-sub-paths.c \
|
|
||||||
clear.c \
|
|
||||||
clear-source.c \
|
|
||||||
clip-all.c \
|
|
||||||
clip-complex-bug61592.c \
|
|
||||||
clip-complex-shape.c \
|
|
||||||
clip-contexts.c \
|
|
||||||
clip-disjoint.c \
|
|
||||||
clip-disjoint-hatching.c \
|
|
||||||
clip-disjoint-quad.c \
|
|
||||||
clip-device-offset.c \
|
|
||||||
clip-double-free.c \
|
|
||||||
clip-draw-unbounded.c \
|
|
||||||
clip-empty.c \
|
|
||||||
clip-empty-group.c \
|
|
||||||
clip-empty-save.c \
|
|
||||||
clip-fill.c \
|
|
||||||
clip-fill-no-op.c \
|
|
||||||
clip-fill-rule.c \
|
|
||||||
clip-fill-rule-pixel-aligned.c \
|
|
||||||
clip-group-shapes.c \
|
|
||||||
clip-image.c \
|
|
||||||
clip-intersect.c \
|
|
||||||
clip-mixed-antialias.c \
|
|
||||||
clip-nesting.c \
|
|
||||||
clip-operator.c \
|
|
||||||
clip-push-group.c \
|
|
||||||
clip-polygons.c \
|
|
||||||
clip-rectilinear.c \
|
|
||||||
clip-shape.c \
|
|
||||||
clip-stroke.c \
|
|
||||||
clip-stroke-no-op.c \
|
|
||||||
clip-text.c \
|
|
||||||
clip-twice.c \
|
|
||||||
clip-twice-rectangle.c \
|
|
||||||
clip-unbounded.c \
|
|
||||||
clip-zero.c \
|
|
||||||
clipped-group.c \
|
|
||||||
clipped-surface.c \
|
|
||||||
close-path.c \
|
|
||||||
close-path-current-point.c \
|
|
||||||
composite-integer-translate-source.c \
|
|
||||||
composite-integer-translate-over.c \
|
|
||||||
composite-integer-translate-over-repeat.c \
|
|
||||||
copy-disjoint.c \
|
|
||||||
copy-path.c \
|
|
||||||
coverage.c \
|
|
||||||
create-for-stream.c \
|
|
||||||
create-from-broken-png-stream.c \
|
|
||||||
create-from-png.c \
|
|
||||||
create-from-png-stream.c \
|
|
||||||
culled-glyphs.c \
|
|
||||||
curve-to-as-line-to.c \
|
|
||||||
dash-caps-joins.c \
|
|
||||||
dash-curve.c \
|
|
||||||
dash-infinite-loop.c \
|
|
||||||
dash-no-dash.c \
|
|
||||||
dash-offset.c \
|
|
||||||
dash-offset-negative.c \
|
|
||||||
dash-scale.c \
|
|
||||||
dash-state.c \
|
|
||||||
dash-zero-length.c \
|
|
||||||
degenerate-arc.c \
|
|
||||||
degenerate-arcs.c \
|
|
||||||
degenerate-curve-to.c \
|
|
||||||
degenerate-dash.c \
|
|
||||||
degenerate-linear-gradient.c \
|
|
||||||
degenerate-path.c \
|
|
||||||
degenerate-pen.c \
|
|
||||||
degenerate-radial-gradient.c \
|
|
||||||
degenerate-rel-curve-to.c \
|
|
||||||
degenerate-solid-dash.c \
|
|
||||||
drunkard-tails.c \
|
|
||||||
device-offset.c \
|
|
||||||
device-offset-fractional.c \
|
|
||||||
device-offset-positive.c \
|
|
||||||
device-offset-scale.c \
|
|
||||||
error-setters.c \
|
|
||||||
extend-pad.c \
|
|
||||||
extend-pad-border.c \
|
|
||||||
extend-pad-similar.c \
|
|
||||||
extend-reflect.c \
|
|
||||||
extend-reflect-similar.c \
|
|
||||||
extend-repeat.c \
|
|
||||||
extend-repeat-similar.c \
|
|
||||||
extended-blend.c \
|
|
||||||
fallback.c \
|
|
||||||
fill-alpha.c \
|
|
||||||
fill-alpha-pattern.c \
|
|
||||||
fill-and-stroke.c \
|
|
||||||
fill-and-stroke-alpha.c \
|
|
||||||
fill-and-stroke-alpha-add.c \
|
|
||||||
fill-degenerate-sort-order.c \
|
|
||||||
fill-disjoint.c \
|
|
||||||
fill-empty.c \
|
|
||||||
fill-image.c \
|
|
||||||
fill-missed-stop.c \
|
|
||||||
fill-rule.c \
|
|
||||||
filter-bilinear-extents.c \
|
|
||||||
filter-nearest-offset.c \
|
|
||||||
filter-nearest-transformed.c \
|
|
||||||
finer-grained-fallbacks.c \
|
|
||||||
font-face-get-type.c \
|
|
||||||
font-matrix-translation.c \
|
|
||||||
font-options.c \
|
|
||||||
glyph-cache-pressure.c \
|
|
||||||
get-and-set.c \
|
|
||||||
get-clip.c \
|
|
||||||
get-group-target.c \
|
|
||||||
get-path-extents.c \
|
|
||||||
gradient-alpha.c \
|
|
||||||
gradient-constant-alpha.c \
|
|
||||||
gradient-zero-stops.c \
|
|
||||||
gradient-zero-stops-mask.c \
|
|
||||||
group-clip.c \
|
|
||||||
group-paint.c \
|
|
||||||
group-state.c \
|
|
||||||
group-unaligned.c \
|
|
||||||
hairline.c \
|
|
||||||
half-coverage.c \
|
|
||||||
halo.c \
|
|
||||||
hatchings.c \
|
|
||||||
horizontal-clip.c \
|
|
||||||
huge-linear.c \
|
|
||||||
huge-radial.c \
|
|
||||||
image-surface-source.c \
|
|
||||||
image-bug-710072.c \
|
|
||||||
implicit-close.c \
|
|
||||||
infinite-join.c \
|
|
||||||
in-fill-empty-trapezoid.c \
|
|
||||||
in-fill-trapezoid.c \
|
|
||||||
invalid-matrix.c \
|
|
||||||
inverse-text.c \
|
|
||||||
inverted-clip.c \
|
|
||||||
joins.c \
|
|
||||||
joins-loop.c \
|
|
||||||
joins-star.c \
|
|
||||||
joins-retrace.c \
|
|
||||||
large-clip.c \
|
|
||||||
large-font.c \
|
|
||||||
large-source.c \
|
|
||||||
large-source-roi.c \
|
|
||||||
large-twin-antialias-mixed.c \
|
|
||||||
leaky-dash.c \
|
|
||||||
leaky-dashed-rectangle.c \
|
|
||||||
leaky-dashed-stroke.c \
|
|
||||||
leaky-polygon.c \
|
|
||||||
line-width.c \
|
|
||||||
line-width-large-overlap.c \
|
|
||||||
line-width-overlap.c \
|
|
||||||
line-width-scale.c \
|
|
||||||
line-width-tolerance.c \
|
|
||||||
line-width-zero.c \
|
|
||||||
linear-gradient.c \
|
|
||||||
linear-gradient-extend.c \
|
|
||||||
linear-gradient-large.c \
|
|
||||||
linear-gradient-one-stop.c \
|
|
||||||
linear-gradient-reflect.c \
|
|
||||||
linear-gradient-subset.c \
|
|
||||||
linear-step-function.c \
|
|
||||||
linear-uniform.c \
|
|
||||||
long-dashed-lines.c \
|
|
||||||
long-lines.c \
|
|
||||||
map-to-image.c \
|
|
||||||
mask.c \
|
|
||||||
mask-alpha.c \
|
|
||||||
mask-ctm.c \
|
|
||||||
mask-glyphs.c \
|
|
||||||
mask-surface-ctm.c \
|
|
||||||
mask-transformed-image.c \
|
|
||||||
mask-transformed-similar.c \
|
|
||||||
mesh-pattern.c \
|
|
||||||
mesh-pattern-accuracy.c \
|
|
||||||
mesh-pattern-conical.c \
|
|
||||||
mesh-pattern-control-points.c \
|
|
||||||
mesh-pattern-fold.c \
|
|
||||||
mesh-pattern-overlap.c \
|
|
||||||
mesh-pattern-transformed.c \
|
|
||||||
mime-data.c \
|
|
||||||
mime-surface-api.c \
|
|
||||||
miter-precision.c \
|
|
||||||
move-to-show-surface.c \
|
|
||||||
negative-stride-image.c \
|
|
||||||
new-sub-path.c \
|
|
||||||
nil-surface.c \
|
|
||||||
operator.c \
|
|
||||||
operator-alpha.c \
|
|
||||||
operator-alpha-alpha.c \
|
|
||||||
operator-clear.c \
|
|
||||||
operator-source.c \
|
|
||||||
operator-www.c \
|
|
||||||
outline-tolerance.c \
|
|
||||||
overflow.c \
|
|
||||||
over-above-source.c \
|
|
||||||
over-around-source.c \
|
|
||||||
over-below-source.c \
|
|
||||||
over-between-source.c \
|
|
||||||
overlapping-boxes.c \
|
|
||||||
overlapping-glyphs.c \
|
|
||||||
overlapping-dash-caps.c \
|
|
||||||
paint.c \
|
|
||||||
paint-clip-fill.c \
|
|
||||||
paint-repeat.c \
|
|
||||||
paint-source-alpha.c \
|
|
||||||
paint-with-alpha.c \
|
|
||||||
paint-with-alpha-group-clip.c \
|
|
||||||
partial-clip-text.c \
|
|
||||||
partial-coverage.c \
|
|
||||||
pass-through.c \
|
|
||||||
path-append.c \
|
|
||||||
path-currentpoint.c \
|
|
||||||
path-stroke-twice.c \
|
|
||||||
path-precision.c \
|
|
||||||
pattern-get-type.c \
|
|
||||||
pattern-getters.c \
|
|
||||||
pdf-isolated-group.c \
|
|
||||||
pixman-downscale.c \
|
|
||||||
pixman-rotate.c \
|
|
||||||
png.c \
|
|
||||||
push-group.c \
|
|
||||||
push-group-color.c \
|
|
||||||
push-group-path-offset.c \
|
|
||||||
radial-gradient.c \
|
|
||||||
radial-gradient-extend.c \
|
|
||||||
radial-outer-focus.c \
|
|
||||||
random-clips.c \
|
|
||||||
random-intersections-eo.c \
|
|
||||||
random-intersections-nonzero.c \
|
|
||||||
random-intersections-curves-eo.c \
|
|
||||||
random-intersections-curves-nz.c \
|
|
||||||
raster-source.c \
|
|
||||||
record.c \
|
|
||||||
record1414x.c \
|
|
||||||
record2x.c \
|
|
||||||
record90.c \
|
|
||||||
recordflip.c \
|
|
||||||
record-extend.c \
|
|
||||||
record-neg-extents.c \
|
|
||||||
record-mesh.c \
|
|
||||||
record-replay-extend.c \
|
|
||||||
record-transform-paint.c \
|
|
||||||
record-write-png.c \
|
|
||||||
recording-ink-extents.c \
|
|
||||||
recording-surface-pattern.c \
|
|
||||||
recording-surface-extend.c \
|
|
||||||
rectangle-rounding-error.c \
|
|
||||||
rectilinear-fill.c \
|
|
||||||
rectilinear-grid.c \
|
|
||||||
rectilinear-miter-limit.c \
|
|
||||||
rectilinear-dash.c \
|
|
||||||
rectilinear-dash-scale.c \
|
|
||||||
rectilinear-stroke.c \
|
|
||||||
reflected-stroke.c \
|
|
||||||
rel-path.c \
|
|
||||||
rgb24-ignore-alpha.c \
|
|
||||||
rotate-image-surface-paint.c \
|
|
||||||
rotate-stroke-box.c \
|
|
||||||
rotated-clip.c \
|
|
||||||
rounded-rectangle-fill.c \
|
|
||||||
rounded-rectangle-stroke.c \
|
|
||||||
round-join-bug-520.c \
|
|
||||||
sample.c \
|
|
||||||
scale-down-source-surface-paint.c \
|
|
||||||
scale-offset-image.c \
|
|
||||||
scale-offset-similar.c \
|
|
||||||
scale-source-surface-paint.c \
|
|
||||||
scaled-font-zero-matrix.c \
|
|
||||||
stroke-ctm-caps.c \
|
|
||||||
stroke-clipped.c \
|
|
||||||
stroke-image.c \
|
|
||||||
stroke-open-box.c \
|
|
||||||
select-font-face.c \
|
|
||||||
select-font-no-show-text.c \
|
|
||||||
self-copy.c \
|
|
||||||
self-copy-overlap.c \
|
|
||||||
self-intersecting.c \
|
|
||||||
set-source.c \
|
|
||||||
show-glyphs-advance.c \
|
|
||||||
show-glyphs-many.c \
|
|
||||||
show-text-current-point.c \
|
|
||||||
shape-general-convex.c \
|
|
||||||
shape-sierpinski.c \
|
|
||||||
shifted-operator.c \
|
|
||||||
simple.c \
|
|
||||||
skew-extreme.c \
|
|
||||||
smask.c \
|
|
||||||
smask-fill.c \
|
|
||||||
smask-image-mask.c \
|
|
||||||
smask-mask.c \
|
|
||||||
smask-paint.c \
|
|
||||||
smask-stroke.c \
|
|
||||||
smask-text.c \
|
|
||||||
smp-glyph.c \
|
|
||||||
solid-pattern-cache-stress.c \
|
|
||||||
source-clip.c \
|
|
||||||
source-clip-scale.c \
|
|
||||||
source-surface-scale-paint.c \
|
|
||||||
spline-decomposition.c \
|
|
||||||
stride-12-image.c \
|
|
||||||
stroke-pattern.c \
|
|
||||||
subsurface.c \
|
|
||||||
subsurface-image-repeat.c \
|
|
||||||
subsurface-repeat.c \
|
|
||||||
subsurface-reflect.c \
|
|
||||||
subsurface-pad.c \
|
|
||||||
subsurface-modify-child.c \
|
|
||||||
subsurface-modify-parent.c \
|
|
||||||
subsurface-outside-target.c \
|
|
||||||
subsurface-scale.c \
|
|
||||||
subsurface-similar-repeat.c \
|
|
||||||
surface-finish-twice.c \
|
|
||||||
surface-pattern.c \
|
|
||||||
surface-pattern-big-scale-down.c \
|
|
||||||
surface-pattern-operator.c \
|
|
||||||
surface-pattern-scale-down.c \
|
|
||||||
surface-pattern-scale-down-extend.c \
|
|
||||||
surface-pattern-scale-up.c \
|
|
||||||
text-antialias.c \
|
|
||||||
text-antialias-subpixel.c \
|
|
||||||
text-cache-crash.c \
|
|
||||||
text-glyph-range.c \
|
|
||||||
text-pattern.c \
|
|
||||||
text-rotate.c \
|
|
||||||
text-subpixel.c \
|
|
||||||
text-transform.c \
|
|
||||||
text-unhinted-metrics.c \
|
|
||||||
text-zero-len.c \
|
|
||||||
thin-lines.c \
|
|
||||||
tighten-bounds.c \
|
|
||||||
tiger.c \
|
|
||||||
toy-font-face.c \
|
|
||||||
transforms.c \
|
|
||||||
translate-show-surface.c \
|
|
||||||
trap-clip.c \
|
|
||||||
twin.c \
|
|
||||||
twin-antialias-gray.c \
|
|
||||||
twin-antialias-mixed.c \
|
|
||||||
twin-antialias-none.c \
|
|
||||||
twin-antialias-subpixel.c \
|
|
||||||
unaligned-box.c \
|
|
||||||
unantialiased-shapes.c \
|
|
||||||
unbounded-operator.c \
|
|
||||||
unclosed-strokes.c \
|
|
||||||
user-data.c \
|
|
||||||
user-font.c \
|
|
||||||
user-font-color.c \
|
|
||||||
user-font-mask.c \
|
|
||||||
user-font-proxy.c \
|
|
||||||
user-font-rescale.c \
|
|
||||||
user-font-subpixel.c \
|
|
||||||
world-map.c \
|
|
||||||
white-in-noop.c \
|
|
||||||
xcb-huge-image-shm.c \
|
|
||||||
xcb-huge-subimage.c \
|
|
||||||
xcb-stress-cache.c \
|
|
||||||
xcb-snapshot-assert.c \
|
|
||||||
xcomposite-projection.c \
|
|
||||||
xlib-expose-event.c \
|
|
||||||
zero-alpha.c \
|
|
||||||
zero-mask.c
|
|
||||||
|
|
||||||
pthread_test_sources = \
|
|
||||||
pthread-same-source.c \
|
|
||||||
pthread-show-text.c \
|
|
||||||
pthread-similar.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
ft_font_test_sources = \
|
|
||||||
font-variations.c
|
|
||||||
|
|
||||||
fc_font_test_sources = \
|
|
||||||
bitmap-font.c \
|
|
||||||
ft-color-font.c \
|
|
||||||
ft-font-create-for-ft-face.c \
|
|
||||||
ft-show-glyphs-positioning.c \
|
|
||||||
ft-show-glyphs-table.c \
|
|
||||||
ft-text-vertical-layout-type1.c \
|
|
||||||
ft-text-vertical-layout-type3.c \
|
|
||||||
ft-text-antialias-none.c
|
|
||||||
|
|
||||||
fc_svg_font_test_sources = \
|
|
||||||
ft-svg-color-font.c
|
|
||||||
|
|
||||||
gl_surface_test_sources = \
|
|
||||||
gl-device-release.c \
|
|
||||||
gl-oversized-surface.c \
|
|
||||||
gl-surface-source.c
|
|
||||||
|
|
||||||
egl_surface_test_sources = \
|
|
||||||
egl-oversized-surface.c \
|
|
||||||
egl-surface-source.c
|
|
||||||
|
|
||||||
quartz_surface_test_sources = quartz-surface-source.c
|
|
||||||
|
|
||||||
quartz_color_font_test_sources = quartz-color-font.c
|
|
||||||
|
|
||||||
pdf_surface_test_sources = \
|
|
||||||
pdf-features.c \
|
|
||||||
pdf-mime-data.c \
|
|
||||||
pdf-operators-text.c \
|
|
||||||
pdf-surface-source.c \
|
|
||||||
pdf-tagged-text.c
|
|
||||||
|
|
||||||
ps_surface_test_sources = \
|
|
||||||
ps-eps.c \
|
|
||||||
ps-features.c \
|
|
||||||
ps-surface-source.c
|
|
||||||
|
|
||||||
svg_surface_test_sources = \
|
|
||||||
svg-surface.c \
|
|
||||||
svg-clip.c \
|
|
||||||
svg-surface-source.c
|
|
||||||
|
|
||||||
xcb_surface_test_sources = \
|
|
||||||
xcb-surface-source.c
|
|
||||||
|
|
||||||
xlib_surface_test_sources = \
|
|
||||||
xlib-surface.c \
|
|
||||||
xlib-surface-source.c
|
|
||||||
|
|
||||||
xlib_xrender_surface_test_sources = get-xrender-format.c
|
|
||||||
|
|
||||||
multi_page_surface_test_sources = multi-page.c mime-unique-id.c
|
|
||||||
|
|
||||||
fallback_resolution_test_sources = fallback-resolution.c
|
|
||||||
|
|
||||||
cairo_test_suite_headers = \
|
|
||||||
buffer-diff.h \
|
|
||||||
cairo-test.h \
|
|
||||||
cairo-test-private.h \
|
|
||||||
world-map.h \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
cairo_test_suite_sources = \
|
|
||||||
buffer-diff.c \
|
|
||||||
cairo-test.c \
|
|
||||||
cairo-test-runner.c
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
||||||
top_srcdir = ..
|
|
||||||
include $(top_srcdir)/build/Makefile.win32.common
|
|
||||||
include $(top_srcdir)/test/Makefile.sources
|
|
||||||
|
|
||||||
CFLAGS += \
|
|
||||||
-I$(top_srcdir)/boilerplate \
|
|
||||||
-I$(top_srcdir)/util/cairo-script/ \
|
|
||||||
-I./pdiff \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
TEST_LIBS = \
|
|
||||||
./pdiff/$(CFG)/pdiff.lib \
|
|
||||||
$(top_builddir)/boilerplate/$(CFG)/boiler.lib \
|
|
||||||
$(top_builddir)/src/$(CFG)/cairo-static.lib \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
all: inform $(CFG)/cairo-test-suite.exe
|
|
||||||
|
|
||||||
cairo-test-constructors.c: Makefile.sources Makefile.win32 $(test_sources) make-cairo-test-constructors.sh
|
|
||||||
sh ./make-cairo-test-constructors.sh $(test_sources) > $@
|
|
||||||
|
|
||||||
SOURCES = $(cairo_test_suite_sources) $(test_sources) cairo-test-constructors.c
|
|
||||||
|
|
||||||
OBJECTS = $(patsubst %.c, $(CFG)/%-static.obj, $(SOURCES))
|
|
||||||
|
|
||||||
ANY2PPM_OBJS = \
|
|
||||||
$(CFG)/any2ppm-static.obj \
|
|
||||||
$(top_builddir)/util/cairo-script/$(CFG)/libcairo-script-interpreter.lib \
|
|
||||||
$(top_builddir)/src/$(CFG)/cairo-static.lib \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
$(CFG)/cairo-test-suite.exe: $(OBJECTS) $(TEST_LIBS)
|
|
||||||
@$(LD) $(CAIRO_LDFLAGS) -OUT:$@ $(OBJECTS) $(TEST_LIBS) $(CAIRO_LIBS)
|
|
||||||
|
|
||||||
$(CFG)/any2ppm.exe: $(ANY2PPM_OBJS)
|
|
||||||
$(LD) $(CAIRO_LDFLAGS) -OUT:$@ $^ $(CAIRO_LIBS)
|
|
||||||
|
|
||||||
./pdiff/$(CFG)/pdiff.lib:
|
|
||||||
$(MAKE) -C pdiff -f Makefile.win32
|
|
||||||
|
|
||||||
$(top_builddir)/src/$(CFG)/cairo-static.lib:
|
|
||||||
$(MAKE) -C $(top_srcdir)/src -f Makefile.win32
|
|
||||||
|
|
||||||
$(top_builddir)/boilerplate/$(CFG)/boiler.lib:
|
|
||||||
$(MAKE) -C $(top_srcdir)/boilerplate -f Makefile.win32
|
|
||||||
|
|
||||||
$(top_builddir)/util/cairo-script/$(CFG)/libcairo-script-interpreter.lib:
|
|
||||||
$(MAKE) -C $(top_srcdir)/util/cairo-script -f Makefile.win32
|
|
||||||
|
|
||||||
.PHONY: check test
|
|
||||||
|
|
||||||
check: inform $(CFG)/any2ppm.exe $(CFG)/cairo-test-suite.exe
|
|
||||||
@ANY2PPM=$(CFG)\\any2ppm.exe $(CFG)/cairo-test-suite.exe
|
|
||||||
|
|
||||||
test: inform check
|
|
||||||
296
test/README
296
test/README
|
|
@ -1,296 +0,0 @@
|
||||||
Regression test suite for cairo.
|
|
||||||
|
|
||||||
How to use cairo's test suite
|
|
||||||
=============================
|
|
||||||
Using this test should be as simple as running:
|
|
||||||
|
|
||||||
make test
|
|
||||||
|
|
||||||
assuming that the cairo distribution in the directory above has been
|
|
||||||
configured and built. The test suite here goes through some effort to
|
|
||||||
run against the locally compiled library rather than any installed
|
|
||||||
version, but those efforts may fall short depending on the level of your
|
|
||||||
libtool madness.
|
|
||||||
|
|
||||||
The results of the test suite run are summarized in an index.html
|
|
||||||
file, which, when viewed in a web browser makes it quite easy to
|
|
||||||
visually see any failed renderings alongside the corresponding
|
|
||||||
reference image, (and a diff image as well).
|
|
||||||
|
|
||||||
As some browsers do not permit Javascript to read from the local
|
|
||||||
filesystem, the view-test-results.py script can used to view the
|
|
||||||
results. It starts a http server serving the current directory before
|
|
||||||
displaying the test results in a browser.
|
|
||||||
|
|
||||||
The test suite needs to be run before any code is committed and before
|
|
||||||
any release. See below for hints and rules governing the use of the suite.
|
|
||||||
|
|
||||||
The test suite is built as a single binary, which allows you to choose
|
|
||||||
individual or categories of tests to run. For example, to run specific tests:
|
|
||||||
./cairo-test-suite record-neg-extents-unbounded record-neg-extents-bounded
|
|
||||||
Or if you want to run all paint.* related tests you can use:
|
|
||||||
./cairo-test-suite paint
|
|
||||||
Or if you want to check the current status of known failures:
|
|
||||||
./cairo-test-suite XFAIL
|
|
||||||
Or to run a subset of tests, use the -k option to run only the tests
|
|
||||||
that include the given keyword:
|
|
||||||
./cairo-test-suite -k downscale
|
|
||||||
The binary also permits controlling which backend is used via the
|
|
||||||
CAIRO_TEST_TARGET environment variable, so for instance:
|
|
||||||
CAIRO_TEST_TARGET=gl ./cairo-test-suite -k blur
|
|
||||||
This binary should be backwards-compatible with all library versions,
|
|
||||||
allowing you to compare current versus past behaviour for any test.
|
|
||||||
|
|
||||||
The test suite needs to find the "test" directory in the source
|
|
||||||
tree. The srcdir environment variable can be used to specify
|
|
||||||
the location of this directory. If this environment variable is not
|
|
||||||
set, the binary looks for the directory "srcdir" in the current
|
|
||||||
directory. The meson build system symlinks "srcdir" in the
|
|
||||||
$builddir/test directory to the "test" directory in the source
|
|
||||||
tree. If this is not found the binary defaults to the current
|
|
||||||
directory.
|
|
||||||
|
|
||||||
Tailoring tests running
|
|
||||||
-----------------------
|
|
||||||
There are some mechanisms to limit the tests run during "make test".
|
|
||||||
These come very handy when doing development, but should not be used
|
|
||||||
to circumvent the "pass" requirements listed below.
|
|
||||||
|
|
||||||
make's TARGETS environment variable can be used to limit the backends when
|
|
||||||
running the tests. It should contain a (space-, comma-separated) list of
|
|
||||||
backends. CAIRO_TESTS environment variable, which is a comma-, space-seperated
|
|
||||||
lists, can be used to limit the tests run.
|
|
||||||
For example:
|
|
||||||
|
|
||||||
CAIRO_TESTS="zero-alpha" make test TARGETS=image,ps
|
|
||||||
|
|
||||||
make's FORMAT variable can also be used to limit the content formats when
|
|
||||||
running the tests. It should contain a (space-, comma-separated) list of
|
|
||||||
content formats to test.
|
|
||||||
For example:
|
|
||||||
|
|
||||||
CAIRO_TESTS="zero-alpha" make test TARGETS=image,ps FORMAT="rgb,rgba"
|
|
||||||
|
|
||||||
Another very handy mechanism when trying to fix bugs is:
|
|
||||||
|
|
||||||
make retest
|
|
||||||
|
|
||||||
This will re-run the test suite, but only on tests that failed on the
|
|
||||||
last run. So this is a much faster way of checking if changes actually
|
|
||||||
fix bugs rather than running the entire test suite again.
|
|
||||||
|
|
||||||
The test suite first compares the output from the current run against the
|
|
||||||
previous in order to skip more expensive image comparisons . If you think
|
|
||||||
this is interfering with the results, you can clear the cached results using:
|
|
||||||
|
|
||||||
make clean-caches
|
|
||||||
|
|
||||||
Running tests under modified environments or tools
|
|
||||||
-------------------------------------------------
|
|
||||||
To run tests under a tool like gdb, one can use the run target and
|
|
||||||
the TOOL variable. For example:
|
|
||||||
|
|
||||||
CAIRO_TESTS=user-font make run TOOL=gdb TARGETS=pdf
|
|
||||||
|
|
||||||
If you want to run under valgrind, there is a specific target for that
|
|
||||||
that also sets a bunch of useful valgrind options. Try:
|
|
||||||
|
|
||||||
CAIRO_TESTS=user-font make check-valgrind
|
|
||||||
|
|
||||||
You can run tests under a modified environment you can use the ENV
|
|
||||||
make variable. However, that environment will also affect the libtool
|
|
||||||
wrapper of the tests. To only affect the actual test binaries, pass
|
|
||||||
such environment as TOOL:
|
|
||||||
|
|
||||||
CAIRO_TESTS=user-font make run TOOL="LD_PRELOAD=/path/to/something.so"
|
|
||||||
|
|
||||||
Getting the elusive zero failures
|
|
||||||
---------------------------------
|
|
||||||
It's generally been very difficult to achieve a test run with zero
|
|
||||||
failures. The difficulties stem from the various versions of the many
|
|
||||||
libraries that the test suite depends on, (it depends on a lot more
|
|
||||||
than cairo itself), as well as fonts and other system-specific
|
|
||||||
settings. If your system differs significantly from the system on
|
|
||||||
which the reference images were generated, then you will likely see
|
|
||||||
the test suite reporting "failures", (even if cairo is working just
|
|
||||||
fine).
|
|
||||||
|
|
||||||
We are constantly working to reduce the number of variables that need
|
|
||||||
to be tweaked to get a clean run, (for example, by bundling fonts with
|
|
||||||
the test suite itself), and also working to more carefully document
|
|
||||||
the software configuration used to generate the reference images.
|
|
||||||
|
|
||||||
Here are some of the relevant details:
|
|
||||||
|
|
||||||
* Your system must have a copy of the DejaVu font, the sha1sum of
|
|
||||||
the version used are listed in [...]. These are
|
|
||||||
"DejaVu Sans" (DejaVuSans.ttf) [e9831ee4fd2e1d0ac54508a548c6a449545eba3f];
|
|
||||||
"DejaVu Sans Mono" (DejaVuSansMono.ttf) [25d854fbd0450a372615a26a8ef9a1024bd3efc6];
|
|
||||||
"DejaVu Serif" (DejaVuSerif.ttf) [78a81850dc7883969042cf3d6dfd18eea7e43e2f];
|
|
||||||
[the DejaVu fonts can be installed from the fonts-dejavu-core 2.34-1 Debian package]
|
|
||||||
and also
|
|
||||||
"Nimbus Sans L" (n019003l.pfb)
|
|
||||||
[which can be found in the gsfonts Debian package].
|
|
||||||
|
|
||||||
* Currently, you must be using a build of cairo using freetype
|
|
||||||
(cairo-ft) as the default font backend. Otherwise all tests
|
|
||||||
involving text are likely to fail.
|
|
||||||
|
|
||||||
* To test the pdf backend, you will want the very latest version of
|
|
||||||
poppler as made available via git:
|
|
||||||
|
|
||||||
git clone git://anongit.freedesktop.org/git/poppler/poppler
|
|
||||||
|
|
||||||
As of this writing, no released version of poppler contains all
|
|
||||||
the fixes you will need to avoid false negatives from the test
|
|
||||||
suite.
|
|
||||||
|
|
||||||
* To test the ps backend, you will need ghostscript version 9.06.
|
|
||||||
|
|
||||||
* Testing the xlib backend is problematic since many X server
|
|
||||||
drivers have bugs that are exercised by the test suite. (Or, if
|
|
||||||
not actual bugs, differ slightly in their output in such a way
|
|
||||||
that the test suite will report errors.) This can be quite handy
|
|
||||||
if you want to debug an X server driver, but since most people
|
|
||||||
don't want to do that, another option is to run against a headless
|
|
||||||
X server that uses only software for all rendering. One such X
|
|
||||||
server is Xvfb which can be started like this:
|
|
||||||
|
|
||||||
Xvfb -screen 0 1680x1024x24 -ac -nolisten tcp :2
|
|
||||||
|
|
||||||
after which the test suite can be run against it like so:
|
|
||||||
|
|
||||||
DISPLAY=:2 make test
|
|
||||||
|
|
||||||
We have been using Xvfb for testing cairo releases and ensuring
|
|
||||||
that all tests behave as expected with this X server.
|
|
||||||
|
|
||||||
What if I can't make my system match?
|
|
||||||
-------------------------------------
|
|
||||||
For one reason or another, you may be unable to get a clean run of the
|
|
||||||
test suite even if cairo is working properly, (for example, you might
|
|
||||||
be on a system without freetype). In this case, it's still useful to
|
|
||||||
be able to determine if code changes you make to cairo result in any
|
|
||||||
regressions to the test suite. But it's hard to notice regressions if
|
|
||||||
there are many failures both before and after your changes.
|
|
||||||
|
|
||||||
For this scenario, you can capture the output of a run of the test
|
|
||||||
suite before your changes, and then use the CAIRO_REF_DIR environment
|
|
||||||
variable to use that output as the reference images for a run after
|
|
||||||
your changes. The process looks like this:
|
|
||||||
|
|
||||||
# Before code change there may be failures we don't care about
|
|
||||||
make test
|
|
||||||
|
|
||||||
# Let's save those output images
|
|
||||||
mkdir /some/directory/
|
|
||||||
cp -r test/output /some/directory/
|
|
||||||
|
|
||||||
# hack, hack, hack
|
|
||||||
|
|
||||||
# Now to see if nothing changed:
|
|
||||||
CAIRO_REF_DIR=/some/directory/ make test
|
|
||||||
|
|
||||||
Best practices for cairo developers
|
|
||||||
===================================
|
|
||||||
If we all follow the guidelines below, then both the test suite and
|
|
||||||
cairo itself will stay much healthier, and we'll all have a lot more
|
|
||||||
fun hacking on cairo.
|
|
||||||
|
|
||||||
Before committing
|
|
||||||
-----------------
|
|
||||||
All tests should return a result of PASS or XFAIL. The XFAIL results
|
|
||||||
indicate known bugs. The final message should be one of the following:
|
|
||||||
|
|
||||||
All XX tests behaved as expected (YY expected failures)
|
|
||||||
All XX tests passed
|
|
||||||
|
|
||||||
If any tests have a status of FAIL, then the new code has caused a
|
|
||||||
regression error which should be fixed before the code is committed.
|
|
||||||
|
|
||||||
When a new bug is found
|
|
||||||
-----------------------
|
|
||||||
A new test case should be added by imitating the style of an existing
|
|
||||||
test. This means adding the following files:
|
|
||||||
|
|
||||||
new-bug.c
|
|
||||||
reference/new-bug.ref.png
|
|
||||||
reference/new-bug.xfail.png
|
|
||||||
|
|
||||||
Where new-bug.c is a minimal program to demonstrate the bug, following
|
|
||||||
the style of existing tests. The new-bug.ref.png image should contain
|
|
||||||
the desired result of new-bug.c if the bug were fixed while
|
|
||||||
new-bug.xfail.png contains the current results of the test.
|
|
||||||
|
|
||||||
Makefile.sources should be edited by adding new-bug.c to test_sources.
|
|
||||||
And last but not least, don't forget to "git add" the new files.
|
|
||||||
|
|
||||||
When a new feature is added
|
|
||||||
---------------------------
|
|
||||||
It's important for the regression suite to keep pace with development
|
|
||||||
of the library. So a new test should be added for each new feature.
|
|
||||||
The work involved is similar the work described above for new bugs.
|
|
||||||
The only distinction is that the test is expected to pass so it
|
|
||||||
should not need a new-bug.xfail.png file.
|
|
||||||
|
|
||||||
While working on a test
|
|
||||||
-----------------------
|
|
||||||
Before a bugfix or feature is ready, it may be useful to compare
|
|
||||||
output from different builds. For convenience, you can set
|
|
||||||
CAIRO_REF_DIR to point at a previous test directory, relative
|
|
||||||
to the current test directory, and any previous output will be
|
|
||||||
used by preference as reference images.
|
|
||||||
|
|
||||||
When a bug is fixed
|
|
||||||
-------------------
|
|
||||||
The fix should be verified by running the test suite which should
|
|
||||||
result in an "unexpected pass" for the test of interest. Rejoice as
|
|
||||||
appropriate, then remove the relevant xfail.png file from git.
|
|
||||||
|
|
||||||
Before releasing
|
|
||||||
----------------
|
|
||||||
All tests should return a result of PASS for all supported (those enabled by
|
|
||||||
default) backends, meaning all known bugs are fixed, resulting in the happy
|
|
||||||
message:
|
|
||||||
|
|
||||||
All XX tests passed
|
|
||||||
|
|
||||||
Some notes on limitations in poppler
|
|
||||||
====================================
|
|
||||||
One of the difficulties of our current test infrastructure is that we
|
|
||||||
rely on external tools to convert cairo's vector output (PDF,
|
|
||||||
PostScript, and SVG), into an image that can be used for the image
|
|
||||||
comparison. This means that any bugs in that conversion tool will
|
|
||||||
result in false negatives in the test suite.
|
|
||||||
|
|
||||||
We've identified several such bugs in the poppler library which is
|
|
||||||
used to convert PDF to an image. This is particularly discouraging
|
|
||||||
because 1) poppler is free software that will be used by *many* cairo
|
|
||||||
users, and 2) poppler calls into cairo for its rendering so it should
|
|
||||||
be able to do a 100% faithful conversion.
|
|
||||||
|
|
||||||
So we have an interest in ensuring that these poppler bugs get fixed
|
|
||||||
sooner rather than later. As such, we're trying to be good citizens by
|
|
||||||
reporting all such poppler bugs that we identify to the poppler
|
|
||||||
bugzilla. Here's a tracking bug explaining the situation:
|
|
||||||
|
|
||||||
Poppler does not yet handle everything in the cairo test suite
|
|
||||||
https://bugs.freedesktop.org/show_bug.cgi?id=12143
|
|
||||||
|
|
||||||
Here's the rule: If a cairo-pdf test reports a failure, but viewing
|
|
||||||
the resulting PDF file with acroread suggests that the PDF itself is
|
|
||||||
correct, then there's likely a bug in poppler. In this case, we can
|
|
||||||
simply report the poppler bug, (making it block 12143 above), post the
|
|
||||||
PDF result from the test suite, and list the bug in this file. Once
|
|
||||||
we've done this, we can capture poppler's buggy output as a
|
|
||||||
pdf-specific reference image (as reference/*.xfail.png) so that the
|
|
||||||
test suite will regard the test as passing, (and we'll ensure there
|
|
||||||
is no regression).
|
|
||||||
|
|
||||||
Once the poppler bug gets fixed, the test suite will start reporting a
|
|
||||||
false negative again, and this will be easy to fix by simply removing
|
|
||||||
the pdf-specific reference image.
|
|
||||||
|
|
||||||
Here are the reported poppler bugs and the tests they affect:
|
|
||||||
|
|
||||||
[Newest was closed in 2009.]
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
||||||
PROJECT (PerceptualDiff)
|
|
||||||
SET(DIFF_SRC PerceptualDiff.cpp LPyramid.cpp RGBAImage.cpp
|
|
||||||
CompareArgs.cpp Metric.cpp)
|
|
||||||
|
|
||||||
ADD_EXECUTABLE (perceptualdiff ${DIFF_SRC})
|
|
||||||
|
|
||||||
# look for libtiff
|
|
||||||
FIND_PATH(TIFF_INCLUDE_DIR tiff.h
|
|
||||||
/usr/local/include
|
|
||||||
/usr/include
|
|
||||||
/opt/local/include
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_LIBRARY(TIFF_LIBRARY tiff
|
|
||||||
/usr/lib
|
|
||||||
/usr/local/lib
|
|
||||||
/opt/local/lib
|
|
||||||
)
|
|
||||||
|
|
||||||
IF(TIFF_INCLUDE_DIR)
|
|
||||||
IF(TIFF_LIBRARY)
|
|
||||||
SET( TIFF_FOUND "YES" )
|
|
||||||
SET( TIFF_LIBRARIES ${TIFF_LIBRARY} )
|
|
||||||
ENDIF(TIFF_LIBRARY)
|
|
||||||
ENDIF(TIFF_INCLUDE_DIR)
|
|
||||||
|
|
||||||
IF(TIFF_FOUND)
|
|
||||||
INCLUDE_DIRECTORIES(${TIFF_INCLUDE_DIR})
|
|
||||||
TARGET_LINK_LIBRARIES(perceptualdiff ${TIFF_LIBRARY})
|
|
||||||
ENDIF(TIFF_FOUND)
|
|
||||||
|
|
||||||
# look for libpng
|
|
||||||
FIND_PATH(PNG_INCLUDE_DIR png.h
|
|
||||||
/usr/local/include
|
|
||||||
/usr/include
|
|
||||||
/opt/local/include
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_LIBRARY(PNG_LIBRARY png
|
|
||||||
/usr/lib
|
|
||||||
/usr/local/lib
|
|
||||||
/opt/local/lib
|
|
||||||
)
|
|
||||||
|
|
||||||
IF(PNG_INCLUDE_DIR)
|
|
||||||
IF(PNG_LIBRARY)
|
|
||||||
SET( PNG_FOUND "YES" )
|
|
||||||
SET( PNG_LIBRARIES ${PNG_LIBRARY} )
|
|
||||||
ENDIF(PNG_LIBRARY)
|
|
||||||
ENDIF(PNG_INCLUDE_DIR)
|
|
||||||
|
|
||||||
IF(PNG_FOUND)
|
|
||||||
INCLUDE_DIRECTORIES(${PNG_INCLUDE_DIR})
|
|
||||||
TARGET_LINK_LIBRARIES(perceptualdiff ${PNG_LIBRARY})
|
|
||||||
ENDIF(PNG_FOUND)
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
include $(top_srcdir)/build/Makefile.am.common
|
|
||||||
|
|
||||||
EXTRA_PROGRAMS += perceptualdiff
|
|
||||||
EXTRA_DIST += gpl.txt
|
|
||||||
|
|
||||||
noinst_LTLIBRARIES = libpdiff.la
|
|
||||||
libpdiff_la_SOURCES = \
|
|
||||||
pdiff.h \
|
|
||||||
lpyramid.c \
|
|
||||||
lpyramid.h \
|
|
||||||
pdiff.c
|
|
||||||
|
|
||||||
perceptualdiff_SOURCES = \
|
|
||||||
args.c \
|
|
||||||
args.h \
|
|
||||||
perceptualdiff.c
|
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_builddir)/src $(CAIRO_CFLAGS)
|
|
||||||
LDADD = libpdiff.la $(top_builddir)/src/libcairo.la
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
top_srcdir = ../..
|
|
||||||
include $(top_srcdir)/build/Makefile.win32.common
|
|
||||||
|
|
||||||
SOURCES = \
|
|
||||||
lpyramid.c \
|
|
||||||
pdiff.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
OBJECTS = $(patsubst %.c, $(CFG)/%-static.obj, $(SOURCES))
|
|
||||||
|
|
||||||
all: $(CFG)/pdiff.lib
|
|
||||||
|
|
||||||
$(CFG)/pdiff.lib: $(OBJECTS)
|
|
||||||
@$(AR) $(CAIRO_ARFLAGS) -OUT:$@ $(OBJECTS)
|
|
||||||
|
|
@ -1,98 +0,0 @@
|
||||||
include $(top_srcdir)/build/Makefile.am.common
|
|
||||||
|
|
||||||
SUBDIRS = . cairo-missing
|
|
||||||
|
|
||||||
if CAIRO_HAS_GOBJECT_FUNCTIONS
|
|
||||||
SUBDIRS += cairo-gobject
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_INTERPRETER
|
|
||||||
SUBDIRS += cairo-script
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_TRACE
|
|
||||||
SUBDIRS += cairo-trace
|
|
||||||
if CAIRO_HAS_DLSYM
|
|
||||||
if CAIRO_HAS_SCRIPT_SURFACE
|
|
||||||
if CAIRO_HAS_TEE_SURFACE
|
|
||||||
SUBDIRS += cairo-fdr
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if BUILD_SPHINX
|
|
||||||
if CAIRO_HAS_DLSYM
|
|
||||||
if CAIRO_HAS_SCRIPT_SURFACE
|
|
||||||
if CAIRO_HAS_TEE_SURFACE
|
|
||||||
SUBDIRS += cairo-sphinx
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(top_srcdir)/src \
|
|
||||||
-I$(top_builddir)/src \
|
|
||||||
-I$(top_srcdir)/util/cairo-script \
|
|
||||||
$(CAIRO_CFLAGS)
|
|
||||||
|
|
||||||
EXTRA_PROGRAMS += show-contour show-traps show-edges show-polygon show-events
|
|
||||||
if CAIRO_HAS_INTERPRETER
|
|
||||||
EXTRA_PROGRAMS += trace-to-xml xml-to-trace
|
|
||||||
endif
|
|
||||||
|
|
||||||
trace_to_xml_LDADD = cairo-script/libcairo-script-interpreter.la $(top_builddir)/src/libcairo.la $(CAIRO_LDADD)
|
|
||||||
|
|
||||||
xml_to_trace_LDADD = -lexpat
|
|
||||||
|
|
||||||
show_traps_SOURCES = show-traps.c
|
|
||||||
show_traps_CFLAGS = $(gtk_CFLAGS)
|
|
||||||
#show_traps_LDADD = $(top_builddir)/src/libcairo.la $(gtk_LIBS)
|
|
||||||
show_traps_LDADD = $(gtk_LIBS)
|
|
||||||
|
|
||||||
show_polygon_SOURCES = show-polygon.c
|
|
||||||
show_polygon_CFLAGS = $(gtk_CFLAGS)
|
|
||||||
#show_polygon_LDADD = $(top_builddir)/src/libcairo.la $(gtk_LIBS)
|
|
||||||
show_polygon_LDADD = $(gtk_LIBS)
|
|
||||||
|
|
||||||
show_edges_SOURCES = show-edges.c
|
|
||||||
show_edges_CFLAGS = $(gtk_CFLAGS)
|
|
||||||
#show_edges_LDADD = $(top_builddir)/src/libcairo.la $(gtk_LIBS)
|
|
||||||
show_edges_LDADD = $(gtk_LIBS)
|
|
||||||
|
|
||||||
show_contour_SOURCES = show-contour.c
|
|
||||||
show_contour_CFLAGS = $(gtk_CFLAGS)
|
|
||||||
#show_contour_LDADD = $(top_builddir)/src/libcairo.la $(gtk_LIBS)
|
|
||||||
show_contour_LDADD = $(gtk_LIBS)
|
|
||||||
|
|
||||||
show_events_SOURCES = show-events.c
|
|
||||||
show_events_CFLAGS = $(gtk_CFLAGS)
|
|
||||||
#show_events_LDADD = $(top_builddir)/src/libcairo.la $(gtk_LIBS)
|
|
||||||
show_events_LDADD = $(gtk_LIBS)
|
|
||||||
|
|
||||||
util: malloc-stats.so
|
|
||||||
|
|
||||||
.la.so:
|
|
||||||
$(RM) $@
|
|
||||||
$(LN_S) .libs/$*.so $@
|
|
||||||
|
|
||||||
CLEANFILES += *.so
|
|
||||||
|
|
||||||
# The -rpath is needed to build shared objects that are not installed,
|
|
||||||
# ie. with EXTRA_LTLIBRARIES
|
|
||||||
AM_LDFLAGS = -module -avoid-version -export-dynamic -rpath /dev/null
|
|
||||||
|
|
||||||
EXTRA_LTLIBRARIES += malloc-stats.la
|
|
||||||
|
|
||||||
if HAVE_GTK
|
|
||||||
EXTRA_PROGRAMS += font-view
|
|
||||||
font_view_CFLAGS = $(gtk_CFLAGS)
|
|
||||||
font_view_LDADD = ../src/libcairo.la $(gtk_LIBS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
EXTRA_DIST += \
|
|
||||||
COPYING \
|
|
||||||
xr2cairo \
|
|
||||||
cairo-api-update \
|
|
||||||
cairo-view \
|
|
||||||
waterfall
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
cairolibdir = $(libdir)/cairo
|
|
||||||
|
|
||||||
#bin_SCRIPTS = cairo-fdr
|
|
||||||
cairolib_LTLIBRARIES = cairo-fdr.la
|
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(top_srcdir)/src \
|
|
||||||
-I$(top_builddir)/src
|
|
||||||
|
|
||||||
cairo_fdr_la_SOURCES = fdr.c
|
|
||||||
cairo_fdr_la_CPPFLAGS = $(AM_CPPFLAGS)
|
|
||||||
cairo_fdr_la_CFLAGS = $(CAIRO_CFLAGS)
|
|
||||||
cairo_fdr_la_LDFLAGS = -module -no-undefined -avoid-version
|
|
||||||
if CAIRO_HAS_DL
|
|
||||||
cairo_fdr_la_LIBADD = -ldl
|
|
||||||
endif
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
lib_LTLIBRARIES = libcairo-gobject.la
|
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_builddir)/src
|
|
||||||
|
|
||||||
cairoincludedir=$(includedir)/cairo
|
|
||||||
cairoinclude_HEADERS = cairo-gobject.h
|
|
||||||
libcairo_gobject_la_SOURCES = \
|
|
||||||
cairo-gobject-enums.c \
|
|
||||||
cairo-gobject-structs.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
libcairo_gobject_la_CFLAGS = $(CAIRO_CFLAGS) $(GOBJECT_CFLAGS)
|
|
||||||
libcairo_gobject_la_LDFLAGS = -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols)
|
|
||||||
libcairo_gobject_la_LIBADD = $(top_builddir)/src/libcairo.la $(CAIRO_LIBS) $(GOBJECT_LIBS)
|
|
||||||
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
include $(top_srcdir)/util/cairo-missing/Makefile.sources
|
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_builddir)/src
|
|
||||||
|
|
||||||
noinst_LTLIBRARIES = libcairo-missing.la
|
|
||||||
|
|
||||||
libcairo_missing_la_SOURCES = \
|
|
||||||
$(libcairo_missing_sources) \
|
|
||||||
$(libcairo_missing_headers) \
|
|
||||||
$(NULL)
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
libcairo_missing_sources = \
|
|
||||||
strndup.c \
|
|
||||||
getline.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
libcairo_missing_headers = \
|
|
||||||
cairo-missing.h \
|
|
||||||
$(NULL)
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
top_srcdir = ../../
|
|
||||||
include $(top_srcdir)/build/Makefile.win32.common
|
|
||||||
include $(top_srcdir)/util/cairo-missing/Makefile.sources
|
|
||||||
|
|
||||||
all: inform $(CFG)/libcairo-missing.lib
|
|
||||||
|
|
||||||
libcairo_missing_OBJECTS = $(patsubst %.c, $(CFG)/%-static.obj, $(libcairo_missing_sources))
|
|
||||||
|
|
||||||
$(CFG)/libcairo-missing.lib: $(libcairo_missing_OBJECTS)
|
|
||||||
@$(AR) $(CAIRO_ARFLAGS) -OUT:$@ $^
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
||||||
include $(top_srcdir)/util/cairo-script/Makefile.sources
|
|
||||||
|
|
||||||
SUBDIRS = examples
|
|
||||||
|
|
||||||
lib_LTLIBRARIES = libcairo-script-interpreter.la
|
|
||||||
EXTRA_PROGRAMS = csi-replay csi-exec csi-bind
|
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_builddir)/src
|
|
||||||
|
|
||||||
cairoincludedir=$(includedir)/cairo
|
|
||||||
cairoinclude_HEADERS = cairo-script-interpreter.h
|
|
||||||
libcairo_script_interpreter_la_SOURCES = \
|
|
||||||
$(libcairo_script_interpreter_sources) \
|
|
||||||
$(libcairo_script_interpreter_headers) \
|
|
||||||
$(NULL)
|
|
||||||
libcairo_script_interpreter_la_CFLAGS = $(CAIRO_CFLAGS)
|
|
||||||
libcairo_script_interpreter_la_LDFLAGS = -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols)
|
|
||||||
libcairo_script_interpreter_la_LIBADD = $(top_builddir)/src/libcairo.la $(CAIRO_LIBS) $(lzo_LIBS) -lz
|
|
||||||
|
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
|
||||||
pkgconfig_DATA = cairo-script-interpreter.pc
|
|
||||||
|
|
||||||
csi_replay_SOURCES = csi-replay.c
|
|
||||||
csi_replay_CFLAGS = $(CAIRO_CFLAGS)
|
|
||||||
csi_replay_LDADD = libcairo-script-interpreter.la $(top_builddir)/src/libcairo.la $(CAIRO_LIBS)
|
|
||||||
|
|
||||||
csi_exec_SOURCES = csi-exec.c
|
|
||||||
csi_exec_LDADD = libcairo-script-interpreter.la $(top_builddir)/src/libcairo.la $(CAIRO_LIBS)
|
|
||||||
|
|
||||||
if CAIRO_HAS_SCRIPT_SURFACE
|
|
||||||
EXTRA_PROGRAMS += csi-trace
|
|
||||||
csi_trace_SOURCES = csi-trace.c
|
|
||||||
csi_trace_LDADD = libcairo-script-interpreter.la $(top_builddir)/src/libcairo.la $(CAIRO_LIBS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
COPYING
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
libcairo_script_interpreter_sources = \
|
|
||||||
cairo-script-file.c \
|
|
||||||
cairo-script-hash.c \
|
|
||||||
cairo-script-interpreter.c \
|
|
||||||
cairo-script-objects.c \
|
|
||||||
cairo-script-operators.c \
|
|
||||||
cairo-script-scanner.c \
|
|
||||||
cairo-script-stack.c \
|
|
||||||
$(NULL)
|
|
||||||
|
|
||||||
libcairo_script_interpreter_headers = \
|
|
||||||
cairo-script-private.h \
|
|
||||||
$(NULL)
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
top_srcdir = ../../
|
|
||||||
include $(top_srcdir)/build/Makefile.win32.common
|
|
||||||
include $(top_srcdir)/util/cairo-script/Makefile.sources
|
|
||||||
|
|
||||||
all: inform $(CFG)/libcairo-script-interpreter.lib
|
|
||||||
|
|
||||||
libcairo_script_interpreter_OBJECTS = $(patsubst %.c, $(CFG)/%-static.obj, $(libcairo_script_interpreter_sources))
|
|
||||||
|
|
||||||
$(CFG)/libcairo-script-interpreter.lib: $(libcairo_script_interpreter_OBJECTS)
|
|
||||||
@$(AR) $(CAIRO_ARFLAGS) -OUT:$@ $(libcairo_script_interpreter_OBJECTS)
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
EXTRA_DIST = \
|
|
||||||
dragon.cs \
|
|
||||||
hilbert.cs \
|
|
||||||
infinichess.cs \
|
|
||||||
interference.cs \
|
|
||||||
pythagoras-tree.cs \
|
|
||||||
sierpinski.cs \
|
|
||||||
wedgeAnnulus_crop_ybRings.cs \
|
|
||||||
world-map.cs \
|
|
||||||
zrusin.cs
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
cairolibdir = $(libdir)/cairo
|
|
||||||
|
|
||||||
cairolib_LTLIBRARIES = cairo-sphinx.la
|
|
||||||
bin_PROGRAMS = cairo-sphinx
|
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(top_srcdir)/src \
|
|
||||||
-I$(top_builddir)/src \
|
|
||||||
-I$(top_srcdir)/boilerplate \
|
|
||||||
-I$(top_srcdir)/util/cairo-script
|
|
||||||
|
|
||||||
cairo_sphinx_la_SOURCES = fdr.c
|
|
||||||
cairo_sphinx_la_CPPFLAGS = $(AM_CPPFLAGS)
|
|
||||||
cairo_sphinx_la_CFLAGS = $(CAIRO_CFLAGS)
|
|
||||||
cairo_sphinx_la_LDFLAGS = -module -no-undefined -avoid-version
|
|
||||||
if CAIRO_HAS_DL
|
|
||||||
cairo_sphinx_la_LIBADD = -ldl
|
|
||||||
endif
|
|
||||||
|
|
||||||
cairo_sphinx_SOURCES = sphinx.c
|
|
||||||
cairo_sphinx_CPPFLAGS = $(AM_CPPFLAGS) -DLIBDIR="\"$(cairolibdir)\""
|
|
||||||
cairo_sphinx_CFLAGS = $(CAIRO_CFLAGS) $(real_pthread_CFLAGS) $(glib_CFLAGS)
|
|
||||||
cairo_sphinx_LDADD = \
|
|
||||||
$(real_pthread_LIBS) \
|
|
||||||
$(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
|
|
||||||
$(top_builddir)/boilerplate/libcairoboilerplate.la \
|
|
||||||
$(top_builddir)/src/libcairo.la \
|
|
||||||
$(glib_LIBS) \
|
|
||||||
$(CAIRO_LDADD) \
|
|
||||||
$(shm_LIBS)
|
|
||||||
cairo_sphinx_DEPENDENCIES = \
|
|
||||||
$(top_builddir)/util/cairo-script/libcairo-script-interpreter.la \
|
|
||||||
$(top_builddir)/boilerplate/libcairoboilerplate.la \
|
|
||||||
$(top_builddir)/src/libcairo.la
|
|
||||||
|
|
||||||
# Install rules to rebuild the libraries and add explicit dependencies
|
|
||||||
$(top_builddir)/boilerplate/libcairoboilerplate.la: $(top_builddir)/src/libcairo.la
|
|
||||||
cd $(top_builddir)/boilerplate && $(MAKE) $(AM_MAKEFLAGS) libcairoboilerplate.la
|
|
||||||
|
|
||||||
$(top_builddir)/src/libcairo.la:
|
|
||||||
cd $(top_builddir)/src && $(MAKE) $(AM_MAKEFLAGS) libcairo.la
|
|
||||||
|
|
||||||
$(top_builddir)/util/cairo-script/libcairo-script-interpreter.la: $(top_builddir)/src/libcairo.la
|
|
||||||
cd $(top_builddir)/util/cairo-script && $(MAKE) $(AM_MAKEFLAGS) libcairo-script-interpreter.la
|
|
||||||
|
|
@ -1,40 +0,0 @@
|
||||||
cairolibdir = $(libdir)/cairo
|
|
||||||
cairooutdir = $(localstatedir)/lib/cairo-trace
|
|
||||||
|
|
||||||
bin_SCRIPTS = cairo-trace
|
|
||||||
cairolib_LTLIBRARIES = libcairo-trace.la
|
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(top_srcdir)/src \
|
|
||||||
-I$(top_builddir)/src
|
|
||||||
|
|
||||||
libcairo_trace_la_SOURCES = trace.c
|
|
||||||
libcairo_trace_la_CPPFLAGS = -DCAIRO_TRACE_OUTDIR="\"$(cairooutdir)\"" \
|
|
||||||
$(AM_CPPFLAGS)
|
|
||||||
libcairo_trace_la_CFLAGS = $(CAIRO_CFLAGS) $(real_pthread_CFLAGS)
|
|
||||||
libcairo_trace_la_LDFLAGS = -module -no-undefined -avoid-version
|
|
||||||
|
|
||||||
libcairo_trace_la_LIBADD = $(real_pthread_LIBS) -lz
|
|
||||||
if CAIRO_HAS_DL
|
|
||||||
libcairo_trace_la_LIBADD += -ldl
|
|
||||||
endif
|
|
||||||
|
|
||||||
if CAIRO_HAS_SYMBOL_LOOKUP
|
|
||||||
libcairo_trace_la_SOURCES += \
|
|
||||||
lookup-symbol.c \
|
|
||||||
lookup-symbol.h
|
|
||||||
libcairo_trace_la_LIBADD += $(BFD_LIBS)
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
system-install: install
|
|
||||||
-mkdir -p $(cairooutdir)
|
|
||||||
-chmod 01777 $(cairooutdir)
|
|
||||||
grep -sq $(cairolibdir)/libcairo-trace.so /etc/ld.so.preload || echo $(cairolibdir)/libcairo-trace.so >> /etc/ld.so.preload
|
|
||||||
|
|
||||||
system-uninstall: uninstall
|
|
||||||
sed -e '/libcairo-trace.so/d' < /etc/ld.so.preload > /tmp/ld.so.preload && mv /tmp/ld.so.preload /etc/ld.so.preload;
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
COPYING \
|
|
||||||
COPYING-GPL-3 \
|
|
||||||
cairo-trace.in
|
|
||||||
Loading…
Add table
Reference in a new issue