Коммит 6b3f0d9b создал по автору OMP Education's avatar OMP Education Зафиксировано автором Vladislav Larionov
Просмотр файлов

[Project] Implement Document Converter

владелец 6a29bf9c
# Makefile.in generated by automake 1.16.1 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2018 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
# Note: All source files are listed in Makefile.sources.
# Generated by configure. Do not edit.
# Makefile.sources
#
# This file is pretty similar to $(top_srcdir)/src/Makefile.sources,
# but for boilerplate. Unlike that file, there are no special headers.
#
VPATH = @srcdir@
am__is_gnu_make = { \
if test -z '$(MAKELEVEL)'; then \
false; \
elif test -n '$(MAKE_HOST)'; then \
true; \
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
true; \
else \
false; \
fi; \
}
am__make_running_with_option = \
case $${target_option-} in \
?) ;; \
*) echo "am__make_running_with_option: internal error: invalid" \
"target option '$${target_option-}' specified" >&2; \
exit 1;; \
esac; \
has_opt=no; \
sane_makeflags=$$MAKEFLAGS; \
if $(am__is_gnu_make); then \
sane_makeflags=$$MFLAGS; \
else \
case $$MAKEFLAGS in \
*\\[\ \ ]*) \
bs=\\; \
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
esac; \
fi; \
skip_next=no; \
strip_trailopt () \
{ \
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
}; \
for flg in $$sane_makeflags; do \
test $$skip_next = yes && { skip_next=no; continue; }; \
case $$flg in \
*=*|--*) continue;; \
-*I) strip_trailopt 'I'; skip_next=yes;; \
-*I?*) strip_trailopt 'I';; \
-*O) strip_trailopt 'O'; skip_next=yes;; \
-*O?*) strip_trailopt 'O';; \
-*l) strip_trailopt 'l'; skip_next=yes;; \
-*l?*) strip_trailopt 'l';; \
-[dEDm]) skip_next=yes;; \
-[JT]) skip_next=yes;; \
esac; \
case $$flg in \
*$$target_option*) has_opt=yes; break;; \
esac; \
done; \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
EXTRA_PROGRAMS =
check_PROGRAMS = check-link$(EXEEXT)
@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_1 = $(cairo_boilerplate_xlib_headers)
@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_2 = $(cairo_boilerplate_xlib_private)
@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_3 = $(cairo_boilerplate_xlib_cxx_sources)
@CAIRO_HAS_XLIB_SURFACE_TRUE@am__append_4 = $(cairo_boilerplate_xlib_sources)
@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_5 = $(cairo_boilerplate_xlib_xrender_headers)
@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_6 = $(cairo_boilerplate_xlib_xrender_private)
@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_7 = $(cairo_boilerplate_xlib_xrender_cxx_sources)
@CAIRO_HAS_XLIB_XRENDER_SURFACE_TRUE@am__append_8 = $(cairo_boilerplate_xlib_xrender_sources)
@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_9 = $(cairo_boilerplate_xcb_headers)
@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_10 = $(cairo_boilerplate_xcb_private)
@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_11 = $(cairo_boilerplate_xcb_cxx_sources)
@CAIRO_HAS_XCB_SURFACE_TRUE@am__append_12 = $(cairo_boilerplate_xcb_sources)
@CAIRO_HAS_XLIB_XCB_FUNCTIONS_TRUE@am__append_13 = $(cairo_boilerplate_xlib_xcb_headers)
@CAIRO_HAS_XLIB_XCB_FUNCTIONS_TRUE@am__append_14 = $(cairo_boilerplate_xlib_xcb_private)
@CAIRO_HAS_XLIB_XCB_FUNCTIONS_TRUE@am__append_15 = $(cairo_boilerplate_xlib_xcb_cxx_sources)
@CAIRO_HAS_XLIB_XCB_FUNCTIONS_TRUE@am__append_16 = $(cairo_boilerplate_xlib_xcb_sources)
@CAIRO_HAS_XCB_SHM_FUNCTIONS_TRUE@am__append_17 = $(cairo_boilerplate_xcb_shm_headers)
@CAIRO_HAS_XCB_SHM_FUNCTIONS_TRUE@am__append_18 = $(cairo_boilerplate_xcb_shm_private)
@CAIRO_HAS_XCB_SHM_FUNCTIONS_TRUE@am__append_19 = $(cairo_boilerplate_xcb_shm_cxx_sources)
@CAIRO_HAS_XCB_SHM_FUNCTIONS_TRUE@am__append_20 = $(cairo_boilerplate_xcb_shm_sources)
@CAIRO_HAS_QT_SURFACE_TRUE@am__append_21 = $(cairo_boilerplate_qt_headers)
@CAIRO_HAS_QT_SURFACE_TRUE@am__append_22 = $(cairo_boilerplate_qt_private)
@CAIRO_HAS_QT_SURFACE_TRUE@am__append_23 = $(cairo_boilerplate_qt_cxx_sources)
@CAIRO_HAS_QT_SURFACE_TRUE@am__append_24 = $(cairo_boilerplate_qt_sources)
@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_25 = $(cairo_boilerplate_quartz_headers)
@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_26 = $(cairo_boilerplate_quartz_private)
@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_27 = $(cairo_boilerplate_quartz_cxx_sources)
@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__append_28 = $(cairo_boilerplate_quartz_sources)
@CAIRO_HAS_QUARTZ_FONT_TRUE@am__append_29 = $(cairo_boilerplate_quartz_font_headers)
@CAIRO_HAS_QUARTZ_FONT_TRUE@am__append_30 = $(cairo_boilerplate_quartz_font_private)
@CAIRO_HAS_QUARTZ_FONT_TRUE@am__append_31 = $(cairo_boilerplate_quartz_font_cxx_sources)
@CAIRO_HAS_QUARTZ_FONT_TRUE@am__append_32 = $(cairo_boilerplate_quartz_font_sources)
@CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__append_33 = $(cairo_boilerplate_quartz_image_headers)
@CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__append_34 = $(cairo_boilerplate_quartz_image_private)
@CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__append_35 = $(cairo_boilerplate_quartz_image_cxx_sources)
@CAIRO_HAS_QUARTZ_IMAGE_SURFACE_TRUE@am__append_36 = $(cairo_boilerplate_quartz_image_sources)
@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_37 = $(cairo_boilerplate_win32_headers)
@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_38 = $(cairo_boilerplate_win32_private)
@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_39 = $(cairo_boilerplate_win32_cxx_sources)
@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_40 = $(cairo_boilerplate_win32_sources)
@CAIRO_HAS_WIN32_FONT_TRUE@am__append_41 = $(cairo_boilerplate_win32_font_headers)
@CAIRO_HAS_WIN32_FONT_TRUE@am__append_42 = $(cairo_boilerplate_win32_font_private)
@CAIRO_HAS_WIN32_FONT_TRUE@am__append_43 = $(cairo_boilerplate_win32_font_cxx_sources)
@CAIRO_HAS_WIN32_FONT_TRUE@am__append_44 = $(cairo_boilerplate_win32_font_sources)
@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_45 = $(cairo_boilerplate_os2_headers)
@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_46 = $(cairo_boilerplate_os2_private)
@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_47 = $(cairo_boilerplate_os2_cxx_sources)
@CAIRO_HAS_OS2_SURFACE_TRUE@am__append_48 = $(cairo_boilerplate_os2_sources)
@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_49 = $(cairo_boilerplate_beos_headers)
@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_50 = $(cairo_boilerplate_beos_private)
@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_51 = $(cairo_boilerplate_beos_cxx_sources)
@CAIRO_HAS_BEOS_SURFACE_TRUE@am__append_52 = $(cairo_boilerplate_beos_sources)
@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_53 = $(cairo_boilerplate_drm_headers)
@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_54 = $(cairo_boilerplate_drm_private)
@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_55 = $(cairo_boilerplate_drm_cxx_sources)
@CAIRO_HAS_DRM_SURFACE_TRUE@am__append_56 = $(cairo_boilerplate_drm_sources)
@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_57 = $(cairo_boilerplate_gallium_headers)
@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_58 = $(cairo_boilerplate_gallium_private)
@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_59 = $(cairo_boilerplate_gallium_cxx_sources)
@CAIRO_HAS_GALLIUM_SURFACE_TRUE@am__append_60 = $(cairo_boilerplate_gallium_sources)
@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_61 = $(cairo_boilerplate_png_headers)
@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_62 = $(cairo_boilerplate_png_private)
@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_63 = $(cairo_boilerplate_png_cxx_sources)
@CAIRO_HAS_PNG_FUNCTIONS_TRUE@am__append_64 = $(cairo_boilerplate_png_sources)
@CAIRO_HAS_GL_SURFACE_TRUE@am__append_65 = $(cairo_boilerplate_gl_headers)
@CAIRO_HAS_GL_SURFACE_TRUE@am__append_66 = $(cairo_boilerplate_gl_private)
@CAIRO_HAS_GL_SURFACE_TRUE@am__append_67 = $(cairo_boilerplate_gl_cxx_sources)
@CAIRO_HAS_GL_SURFACE_TRUE@am__append_68 = $(cairo_boilerplate_gl_sources)
@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_69 = $(cairo_boilerplate_glesv2_headers)
@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_70 = $(cairo_boilerplate_glesv2_private)
@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_71 = $(cairo_boilerplate_glesv2_cxx_sources)
@CAIRO_HAS_GLESV2_SURFACE_TRUE@am__append_72 = $(cairo_boilerplate_glesv2_sources)
@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_73 = $(cairo_boilerplate_glesv3_headers)
@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_74 = $(cairo_boilerplate_glesv3_private)
@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_75 = $(cairo_boilerplate_glesv3_cxx_sources)
@CAIRO_HAS_GLESV3_SURFACE_TRUE@am__append_76 = $(cairo_boilerplate_glesv3_sources)
@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_77 = $(cairo_boilerplate_cogl_headers)
@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_78 = $(cairo_boilerplate_cogl_private)
@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_79 = $(cairo_boilerplate_cogl_cxx_sources)
@CAIRO_HAS_COGL_SURFACE_TRUE@am__append_80 = $(cairo_boilerplate_cogl_sources)
@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_81 = $(cairo_boilerplate_directfb_headers)
@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_82 = $(cairo_boilerplate_directfb_private)
@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_83 = $(cairo_boilerplate_directfb_cxx_sources)
@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__append_84 = $(cairo_boilerplate_directfb_sources)
@CAIRO_HAS_VG_SURFACE_TRUE@am__append_85 = $(cairo_boilerplate_vg_headers)
@CAIRO_HAS_VG_SURFACE_TRUE@am__append_86 = $(cairo_boilerplate_vg_private)
@CAIRO_HAS_VG_SURFACE_TRUE@am__append_87 = $(cairo_boilerplate_vg_cxx_sources)
@CAIRO_HAS_VG_SURFACE_TRUE@am__append_88 = $(cairo_boilerplate_vg_sources)
@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_89 = $(cairo_boilerplate_egl_headers)
@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_90 = $(cairo_boilerplate_egl_private)
@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_91 = $(cairo_boilerplate_egl_cxx_sources)
@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__append_92 = $(cairo_boilerplate_egl_sources)
@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_93 = $(cairo_boilerplate_glx_headers)
@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_94 = $(cairo_boilerplate_glx_private)
@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_95 = $(cairo_boilerplate_glx_cxx_sources)
@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__append_96 = $(cairo_boilerplate_glx_sources)
@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_97 = $(cairo_boilerplate_wgl_headers)
@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_98 = $(cairo_boilerplate_wgl_private)
@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_99 = $(cairo_boilerplate_wgl_cxx_sources)
@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__append_100 = $(cairo_boilerplate_wgl_sources)
@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_101 = $(cairo_boilerplate_script_headers)
@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_102 = $(cairo_boilerplate_script_private)
@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_103 = $(cairo_boilerplate_script_cxx_sources)
@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__append_104 = $(cairo_boilerplate_script_sources)
@CAIRO_HAS_FT_FONT_TRUE@am__append_105 = $(cairo_boilerplate_ft_headers)
@CAIRO_HAS_FT_FONT_TRUE@am__append_106 = $(cairo_boilerplate_ft_private)
@CAIRO_HAS_FT_FONT_TRUE@am__append_107 = $(cairo_boilerplate_ft_cxx_sources)
@CAIRO_HAS_FT_FONT_TRUE@am__append_108 = $(cairo_boilerplate_ft_sources)
@CAIRO_HAS_FC_FONT_TRUE@am__append_109 = $(cairo_boilerplate_fc_headers)
@CAIRO_HAS_FC_FONT_TRUE@am__append_110 = $(cairo_boilerplate_fc_private)
@CAIRO_HAS_FC_FONT_TRUE@am__append_111 = $(cairo_boilerplate_fc_cxx_sources)
@CAIRO_HAS_FC_FONT_TRUE@am__append_112 = $(cairo_boilerplate_fc_sources)
@CAIRO_HAS_PS_SURFACE_TRUE@am__append_113 = $(cairo_boilerplate_ps_headers)
@CAIRO_HAS_PS_SURFACE_TRUE@am__append_114 = $(cairo_boilerplate_ps_private)
@CAIRO_HAS_PS_SURFACE_TRUE@am__append_115 = $(cairo_boilerplate_ps_cxx_sources)
@CAIRO_HAS_PS_SURFACE_TRUE@am__append_116 = $(cairo_boilerplate_ps_sources)
@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_117 = $(cairo_boilerplate_pdf_headers)
@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_118 = $(cairo_boilerplate_pdf_private)
@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_119 = $(cairo_boilerplate_pdf_cxx_sources)
@CAIRO_HAS_PDF_SURFACE_TRUE@am__append_120 = $(cairo_boilerplate_pdf_sources)
@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_121 = $(cairo_boilerplate_svg_headers)
@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_122 = $(cairo_boilerplate_svg_private)
@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_123 = $(cairo_boilerplate_svg_cxx_sources)
@CAIRO_HAS_SVG_SURFACE_TRUE@am__append_124 = $(cairo_boilerplate_svg_sources)
@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_125 = $(cairo_boilerplate_test_surfaces_private) $(cairo_boilerplate_test_surfaces_headers)
@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_126 = $(cairo_boilerplate_test_surfaces_cxx_sources)
@CAIRO_HAS_TEST_SURFACES_TRUE@am__append_127 = $(cairo_boilerplate_test_surfaces_sources)
@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_128 = $(cairo_boilerplate_tee_headers)
@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_129 = $(cairo_boilerplate_tee_private)
@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_130 = $(cairo_boilerplate_tee_cxx_sources)
@CAIRO_HAS_TEE_SURFACE_TRUE@am__append_131 = $(cairo_boilerplate_tee_sources)
@CAIRO_HAS_XML_SURFACE_TRUE@am__append_132 = $(cairo_boilerplate_xml_headers)
@CAIRO_HAS_XML_SURFACE_TRUE@am__append_133 = $(cairo_boilerplate_xml_private)
@CAIRO_HAS_XML_SURFACE_TRUE@am__append_134 = $(cairo_boilerplate_xml_cxx_sources)
@CAIRO_HAS_XML_SURFACE_TRUE@am__append_135 = $(cairo_boilerplate_xml_sources)
@CAIRO_HAS_PTHREAD_TRUE@am__append_136 = $(cairo_boilerplate_pthread_private) $(cairo_boilerplate_pthread_headers)
@CAIRO_HAS_PTHREAD_TRUE@am__append_137 = $(cairo_boilerplate_pthread_cxx_sources)
@CAIRO_HAS_PTHREAD_TRUE@am__append_138 = $(cairo_boilerplate_pthread_sources)
@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_139 = $(cairo_boilerplate_gobject_headers)
@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_140 = $(cairo_boilerplate_gobject_private)
@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_141 = $(cairo_boilerplate_gobject_cxx_sources)
@CAIRO_HAS_GOBJECT_FUNCTIONS_TRUE@am__append_142 = $(cairo_boilerplate_gobject_sources)
@CAIRO_HAS_TRACE_TRUE@am__append_143 = $(cairo_boilerplate_trace_private) $(cairo_boilerplate_trace_headers)
@CAIRO_HAS_TRACE_TRUE@am__append_144 = $(cairo_boilerplate_trace_cxx_sources)
@CAIRO_HAS_TRACE_TRUE@am__append_145 = $(cairo_boilerplate_trace_sources)
@CAIRO_HAS_INTERPRETER_TRUE@am__append_146 = $(cairo_boilerplate_interpreter_private) $(cairo_boilerplate_interpreter_headers)
@CAIRO_HAS_INTERPRETER_TRUE@am__append_147 = $(cairo_boilerplate_interpreter_cxx_sources)
@CAIRO_HAS_INTERPRETER_TRUE@am__append_148 = $(cairo_boilerplate_interpreter_sources)
@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_149 = $(cairo_boilerplate_symbol_lookup_private) $(cairo_boilerplate_symbol_lookup_headers)
@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_150 = $(cairo_boilerplate_symbol_lookup_cxx_sources)
@CAIRO_HAS_SYMBOL_LOOKUP_TRUE@am__append_151 = $(cairo_boilerplate_symbol_lookup_sources)
@CAIRO_HAS_DL_TRUE@am__append_152 = -ldl
@CAIRO_HAS_WIN32_SURFACE_TRUE@am__append_153 = -lwinspool
@CROSS_COMPILING_FALSE@am__append_154 = check-link$(EXEEXT)
subdir = boilerplate
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/build/aclocal.cairo.m4 \
$(top_srcdir)/build/aclocal.compare.m4 \
$(top_srcdir)/build/aclocal.enable.m4 \
$(top_srcdir)/build/aclocal.float.m4 \
$(top_srcdir)/build/aclocal.gtk-doc.m4 \
$(top_srcdir)/build/aclocal.makefile.m4 \
$(top_srcdir)/build/aclocal.pkg.m4 \
$(top_srcdir)/build/libtool.m4 \
$(top_srcdir)/build/ltoptions.m4 \
$(top_srcdir)/build/ltsugar.m4 \
$(top_srcdir)/build/ltversion.m4 \
$(top_srcdir)/build/lt~obsolete.m4 $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/src/cairo-version.h \
$(top_srcdir)/build/configure.ac.version \
$(top_srcdir)/build/configure.ac.tools \
$(top_srcdir)/build/configure.ac.features \
$(top_srcdir)/build/configure.ac.warnings \
$(top_srcdir)/build/configure.ac.system \
$(top_srcdir)/build/configure.ac.analysis \
$(top_srcdir)/build/configure.ac.noversion \
$(top_srcdir)/build/configure.ac.pthread \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
@BUILD_CXX_TRUE@am__DEPENDENCIES_1 = libcairoboilerplate_cxx.la
am__DEPENDENCIES_2 =
am__libcairoboilerplate_la_SOURCES_DIST = cairo-boilerplate-getopt.h \
cairo-boilerplate-scaled-font.h cairo-boilerplate-system.h \
cairo-boilerplate.h cairo-boilerplate-xlib.h \
cairo-boilerplate-private.h cairo-boilerplate-getopt.c \
cairo-boilerplate-system.c cairo-boilerplate.c \
cairo-boilerplate-xlib.c cairo-boilerplate-xcb.c \
cairo-boilerplate-quartz.c cairo-boilerplate-win32.c \
cairo-boilerplate-win32-printing.c cairo-boilerplate-drm.c \
cairo-boilerplate-cogl.c cairo-boilerplate-directfb.c \
cairo-boilerplate-vg.c cairo-boilerplate-egl.c \
cairo-boilerplate-glx.c cairo-boilerplate-wgl.c \
cairo-boilerplate-script.c cairo-boilerplate-ps.c \
cairo-boilerplate-pdf.c cairo-boilerplate-svg.c \
cairo-boilerplate-test-surfaces.c \
cairo-boilerplate-constructors.c
am__objects_1 =
@CAIRO_HAS_XLIB_SURFACE_TRUE@am__objects_2 = $(am__objects_1)
am__objects_3 = $(am__objects_1) $(am__objects_2) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1)
am__objects_4 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1)
am__objects_5 = cairo-boilerplate-getopt.lo \
cairo-boilerplate-system.lo cairo-boilerplate.lo
am__objects_6 = cairo-boilerplate-xlib.lo
@CAIRO_HAS_XLIB_SURFACE_TRUE@am__objects_7 = $(am__objects_6)
am__objects_8 = cairo-boilerplate-xcb.lo
@CAIRO_HAS_XCB_SURFACE_TRUE@am__objects_9 = $(am__objects_8)
am__objects_10 = cairo-boilerplate-quartz.lo
@CAIRO_HAS_QUARTZ_SURFACE_TRUE@am__objects_11 = $(am__objects_10)
am__objects_12 = cairo-boilerplate-win32.lo \
cairo-boilerplate-win32-printing.lo
@CAIRO_HAS_WIN32_SURFACE_TRUE@am__objects_13 = $(am__objects_12)
am__objects_14 = cairo-boilerplate-drm.lo
@CAIRO_HAS_DRM_SURFACE_TRUE@am__objects_15 = $(am__objects_14)
am__objects_16 = cairo-boilerplate-cogl.lo
@CAIRO_HAS_COGL_SURFACE_TRUE@am__objects_17 = $(am__objects_16)
am__objects_18 = cairo-boilerplate-directfb.lo
@CAIRO_HAS_DIRECTFB_SURFACE_TRUE@am__objects_19 = $(am__objects_18)
am__objects_20 = cairo-boilerplate-vg.lo
@CAIRO_HAS_VG_SURFACE_TRUE@am__objects_21 = $(am__objects_20)
am__objects_22 = cairo-boilerplate-egl.lo
@CAIRO_HAS_EGL_FUNCTIONS_TRUE@am__objects_23 = $(am__objects_22)
am__objects_24 = cairo-boilerplate-glx.lo
@CAIRO_HAS_GLX_FUNCTIONS_TRUE@am__objects_25 = $(am__objects_24)
am__objects_26 = cairo-boilerplate-wgl.lo
@CAIRO_HAS_WGL_FUNCTIONS_TRUE@am__objects_27 = $(am__objects_26)
am__objects_28 = cairo-boilerplate-script.lo
@CAIRO_HAS_SCRIPT_SURFACE_TRUE@am__objects_29 = $(am__objects_28)
am__objects_30 = cairo-boilerplate-ps.lo
@CAIRO_HAS_PS_SURFACE_TRUE@am__objects_31 = $(am__objects_30)
am__objects_32 = cairo-boilerplate-pdf.lo
@CAIRO_HAS_PDF_SURFACE_TRUE@am__objects_33 = $(am__objects_32)
am__objects_34 = cairo-boilerplate-svg.lo
@CAIRO_HAS_SVG_SURFACE_TRUE@am__objects_35 = $(am__objects_34)
am__objects_36 = cairo-boilerplate-test-surfaces.lo
@CAIRO_HAS_TEST_SURFACES_TRUE@am__objects_37 = $(am__objects_36)
am__objects_38 = $(am__objects_5) $(am__objects_7) $(am__objects_1) \
$(am__objects_9) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_11) $(am__objects_1) \
$(am__objects_1) $(am__objects_13) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_15) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_17) \
$(am__objects_19) $(am__objects_21) $(am__objects_23) \
$(am__objects_25) $(am__objects_27) $(am__objects_29) \
$(am__objects_1) $(am__objects_1) $(am__objects_31) \
$(am__objects_33) $(am__objects_35) $(am__objects_37) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1)
am_libcairoboilerplate_la_OBJECTS = $(am__objects_3) $(am__objects_4) \
$(am__objects_38) cairo-boilerplate-constructors.lo
libcairoboilerplate_la_OBJECTS = $(am_libcairoboilerplate_la_OBJECTS)
AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
libcairoboilerplate_cxx_la_DEPENDENCIES = \
$(top_builddir)/src/libcairo.la $(am__DEPENDENCIES_2) \
$(am__DEPENDENCIES_2)
am__libcairoboilerplate_cxx_la_SOURCES_DIST = \
cairo-boilerplate-qt.cpp cairo-boilerplate-beos.cpp
am__objects_39 = libcairoboilerplate_cxx_la-cairo-boilerplate-qt.lo
@CAIRO_HAS_QT_SURFACE_TRUE@am__objects_40 = $(am__objects_39)
am__objects_41 = libcairoboilerplate_cxx_la-cairo-boilerplate-beos.lo
@CAIRO_HAS_BEOS_SURFACE_TRUE@am__objects_42 = $(am__objects_41)
am__objects_43 = $(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_40) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_42) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1) \
$(am__objects_1) $(am__objects_1) $(am__objects_1)
am_libcairoboilerplate_cxx_la_OBJECTS = $(am__objects_43)
libcairoboilerplate_cxx_la_OBJECTS = \
$(am_libcairoboilerplate_cxx_la_OBJECTS)
libcairoboilerplate_cxx_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
$(libcairoboilerplate_cxx_la_CXXFLAGS) $(CXXFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
@BUILD_CXX_TRUE@am_libcairoboilerplate_cxx_la_rpath =
check_link_SOURCES = check-link.c
check_link_OBJECTS = check-link.$(OBJEXT)
check_link_DEPENDENCIES = libcairoboilerplate.la
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
am__v_P_0 = false
am__v_P_1 = :
AM_V_GEN = $(am__v_GEN_@AM_V@)
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
am__v_GEN_0 = @echo " GEN " $@;
am__v_GEN_1 =
AM_V_at = $(am__v_at_@AM_V@)
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
am__v_at_0 = @
am__v_at_1 =
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/build/depcomp
am__maybe_remake_depfiles = depfiles
am__depfiles_remade = ./$(DEPDIR)/cairo-boilerplate-cogl.Plo \
./$(DEPDIR)/cairo-boilerplate-constructors.Plo \
./$(DEPDIR)/cairo-boilerplate-directfb.Plo \
./$(DEPDIR)/cairo-boilerplate-drm.Plo \
./$(DEPDIR)/cairo-boilerplate-egl.Plo \
./$(DEPDIR)/cairo-boilerplate-getopt.Plo \
./$(DEPDIR)/cairo-boilerplate-glx.Plo \
./$(DEPDIR)/cairo-boilerplate-pdf.Plo \
./$(DEPDIR)/cairo-boilerplate-ps.Plo \
./$(DEPDIR)/cairo-boilerplate-quartz.Plo \
./$(DEPDIR)/cairo-boilerplate-script.Plo \
./$(DEPDIR)/cairo-boilerplate-svg.Plo \
./$(DEPDIR)/cairo-boilerplate-system.Plo \
./$(DEPDIR)/cairo-boilerplate-test-surfaces.Plo \
./$(DEPDIR)/cairo-boilerplate-vg.Plo \
./$(DEPDIR)/cairo-boilerplate-wgl.Plo \
./$(DEPDIR)/cairo-boilerplate-win32-printing.Plo \
./$(DEPDIR)/cairo-boilerplate-win32.Plo \
./$(DEPDIR)/cairo-boilerplate-xcb.Plo \
./$(DEPDIR)/cairo-boilerplate-xlib.Plo \
./$(DEPDIR)/cairo-boilerplate.Plo ./$(DEPDIR)/check-link.Po \
./$(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-beos.Plo \
./$(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-qt.Plo
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
AM_V_CC = $(am__v_CC_@AM_V@)
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
am__v_CC_0 = @echo " CC " $@;
am__v_CC_1 =
CCLD = $(CC)
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CXXFLAGS) $(CXXFLAGS)
AM_V_CXX = $(am__v_CXX_@AM_V@)
am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
am__v_CXX_0 = @echo " CXX " $@;
am__v_CXX_1 =
CXXLD = $(CXX)
CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
am__v_CXXLD_0 = @echo " CXXLD " $@;
am__v_CXXLD_1 =
SOURCES = $(libcairoboilerplate_la_SOURCES) \
$(libcairoboilerplate_cxx_la_SOURCES) check-link.c
DIST_SOURCES = $(am__libcairoboilerplate_la_SOURCES_DIST) \
$(am__libcairoboilerplate_cxx_la_SOURCES_DIST) check-link.c
am__can_run_installinfo = \
case $$AM_UPDATE_INFO_DIR in \
n|no|NO) false;; \
*) (install-info --version) >/dev/null 2>&1;; \
esac
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
# Read a list of newline-separated strings from the standard input,
# and print each of them once, without duplicates. Input order is
# *not* preserved.
am__uniquify_input = $(AWK) '\
BEGIN { nonempty = 0; } \
{ items[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in items) print i; }; } \
'
# Make sure the list of sources is unique. This is necessary because,
# e.g., the same source file might be shared among _SOURCES variables
# for different programs/libraries.
am__define_uniq_tagged_files = \
list='$(am__tagged_files)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | $(am__uniquify_input)`
ETAGS = etags
CTAGS = ctags
am__tty_colors_dummy = \
mgn= red= grn= lgn= blu= brg= std=; \
am__color_tests=no
am__tty_colors = { \
$(am__tty_colors_dummy); \
if test "X$(AM_COLOR_TESTS)" = Xno; then \
am__color_tests=no; \
elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
am__color_tests=yes; \
elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
am__color_tests=yes; \
fi; \
if test $$am__color_tests = yes; then \
red=''; \
grn=''; \
lgn=''; \
blu=''; \
mgn=''; \
brg=''; \
std=''; \
fi; \
}
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
am__recheck_rx = ^[ ]*:recheck:[ ]*
am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
# A command that, given a newline-separated list of test names on the
# standard input, print the name of the tests that are to be re-run
# upon "make recheck".
am__list_recheck_tests = $(AWK) '{ \
recheck = 1; \
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
{ \
if (rc < 0) \
{ \
if ((getline line2 < ($$0 ".log")) < 0) \
recheck = 0; \
break; \
} \
else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
{ \
recheck = 0; \
break; \
} \
else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
{ \
break; \
} \
}; \
if (recheck) \
print $$0; \
close ($$0 ".trs"); \
close ($$0 ".log"); \
}'
# A command that, given a newline-separated list of test names on the
# standard input, create the global log from their .trs and .log files.
am__create_global_log = $(AWK) ' \
function fatal(msg) \
{ \
print "fatal: making $@: " msg | "cat >&2"; \
exit 1; \
} \
function rst_section(header) \
{ \
print header; \
len = length(header); \
for (i = 1; i <= len; i = i + 1) \
printf "="; \
printf "\n\n"; \
} \
{ \
copy_in_global_log = 1; \
global_test_result = "RUN"; \
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
{ \
if (rc < 0) \
fatal("failed to read from " $$0 ".trs"); \
if (line ~ /$(am__global_test_result_rx)/) \
{ \
sub("$(am__global_test_result_rx)", "", line); \
sub("[ ]*$$", "", line); \
global_test_result = line; \
} \
else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
copy_in_global_log = 0; \
}; \
if (copy_in_global_log) \
{ \
rst_section(global_test_result ": " $$0); \
while ((rc = (getline line < ($$0 ".log"))) != 0) \
{ \
if (rc < 0) \
fatal("failed to read from " $$0 ".log"); \
print line; \
}; \
printf "\n"; \
}; \
close ($$0 ".trs"); \
close ($$0 ".log"); \
}'
# Restructured Text title.
am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
# Solaris 10 'make', and several other traditional 'make' implementations,
# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
# by disabling -e (using the XSI extension "set +e") if it's set.
am__sh_e_setup = case $$- in *e*) set +e;; esac
# Default flags passed to test drivers.
am__common_driver_flags = \
--color-tests "$$am__color_tests" \
--enable-hard-errors "$$am__enable_hard_errors" \
--expect-failure "$$am__expect_failure"
# To be inserted before the command running the test. Creates the
# directory for the log if needed. Stores in $dir the directory
# containing $f, in $tst the test, in $log the log. Executes the
# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
# will run the test scripts (or their associated LOG_COMPILER, if
# thy have one).
am__check_pre = \
$(am__sh_e_setup); \
$(am__vpath_adj_setup) $(am__vpath_adj) \
$(am__tty_colors); \
srcdir=$(srcdir); export srcdir; \
case "$@" in \
*/*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
*) am__odir=.;; \
esac; \
test "x$$am__odir" = x"." || test -d "$$am__odir" \
|| $(MKDIR_P) "$$am__odir" || exit $$?; \
if test -f "./$$f"; then dir=./; \
elif test -f "$$f"; then dir=; \
else dir="$(srcdir)/"; fi; \
tst=$$dir$$f; log='$@'; \
if test -n '$(DISABLE_HARD_ERRORS)'; then \
am__enable_hard_errors=no; \
else \
am__enable_hard_errors=yes; \
fi; \
case " $(XFAIL_TESTS) " in \
*[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
am__expect_failure=yes;; \
*) \
am__expect_failure=no;; \
esac; \
$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
# A shell command to get the names of the tests scripts with any registered
# extension removed (i.e., equivalently, the names of the test logs, with
# the '.log' extension removed). The result is saved in the shell variable
# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
# since that might cause problem with VPATH rewrites for suffix-less tests.
# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
am__set_TESTS_bases = \
bases='$(TEST_LOGS)'; \
bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
bases=`echo $$bases`
RECHECK_LOGS = $(TEST_LOGS)
AM_RECURSIVE_TARGETS = check recheck
TEST_SUITE_LOG = test-suite.log
TEST_EXTENSIONS = @EXEEXT@ .test
LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver
LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
am__set_b = \
case '$@' in \
*/*) \
case '$*' in \
*/*) b='$*';; \
*) b=`echo '$@' | sed 's/\.log$$//'`; \
esac;; \
*) \
b='$*';; \
esac
am__test_logs1 = $(TESTS:=.log)
am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
TEST_LOGS = $(am__test_logs2:.test.log=.log)
TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build/test-driver
TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
$(TEST_LOG_FLAGS)
am__DIST_COMMON = $(srcdir)/Makefile.am.features $(srcdir)/Makefile.in \
$(top_srcdir)/boilerplate/Makefile.sources \
$(top_srcdir)/build/Makefile.am.common \
$(top_srcdir)/build/depcomp $(top_srcdir)/build/test-driver \
README
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BFD_LIBS = @BFD_LIBS@
CAIROBOILERPLATE_LIBS = @CAIROBOILERPLATE_LIBS@
CAIRO_CFLAGS = @CAIRO_CFLAGS@
CAIRO_LDFLAGS = @CAIRO_LDFLAGS@
CAIRO_LIBS = @CAIRO_LIBS@
CAIRO_LIBTOOL_VERSION_INFO = @CAIRO_LIBTOOL_VERSION_INFO@
CAIRO_NONPKGCONFIG_CFLAGS = @CAIRO_NONPKGCONFIG_CFLAGS@
CAIRO_NONPKGCONFIG_LIBS = @CAIRO_NONPKGCONFIG_LIBS@
CAIRO_RELEASE_STATUS = @CAIRO_RELEASE_STATUS@
CAIRO_REQUIRES = @CAIRO_REQUIRES@
CAIRO_TEST_MODE = @CAIRO_TEST_MODE@
CAIRO_TEST_UNDEFINED_LDFLAGS = @CAIRO_TEST_UNDEFINED_LDFLAGS@
CAIRO_VERSION_MAJOR = @CAIRO_VERSION_MAJOR@
CAIRO_VERSION_MICRO = @CAIRO_VERSION_MICRO@
CAIRO_VERSION_MINOR = @CAIRO_VERSION_MINOR@
CAIRO_VERSION_SONUM = @CAIRO_VERSION_SONUM@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FGREP = @FGREP@
FIND = @FIND@
FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@
FONTCONFIG_LIBS = @FONTCONFIG_LIBS@
FREETYPE_CFLAGS = @FREETYPE_CFLAGS@
FREETYPE_CONFIG = @FREETYPE_CONFIG@
FREETYPE_LIBS = @FREETYPE_LIBS@
GOBJECT_CFLAGS = @GOBJECT_CFLAGS@
GOBJECT_LIBS = @GOBJECT_LIBS@
GREP = @GREP@
GS = @GS@
GTKDOC_CHECK = @GTKDOC_CHECK@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@
LIBM = @LIBM@
LIBOBJS = @LIBOBJS@
LIBRSVG_CFLAGS = @LIBRSVG_CFLAGS@
LIBRSVG_LIBS = @LIBRSVG_LIBS@
LIBS = @LIBS@
LIBSPECTRE_CFLAGS = @LIBSPECTRE_CFLAGS@
LIBSPECTRE_LIBS = @LIBSPECTRE_LIBS@
LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LTP = @LTP@
LTP_GENHTML = @LTP_GENHTML@
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKGCONFIG_REQUIRES = @PKGCONFIG_REQUIRES@
PKG_CONFIG = @PKG_CONFIG@
POPPLER_CFLAGS = @POPPLER_CFLAGS@
POPPLER_LIBS = @POPPLER_LIBS@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SHLIB_EXT = @SHLIB_EXT@
SHM_LIBS = @SHM_LIBS@
SHTOOL = @SHTOOL@
STRINGS = @STRINGS@
STRIP = @STRIP@
VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
VALGRIND_LIBS = @VALGRIND_LIBS@
VERSION = @VERSION@
XARGS = @XARGS@
XMKMF = @XMKMF@
X_CFLAGS = @X_CFLAGS@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
builddir = @builddir@
cogl_CFLAGS = @cogl_CFLAGS@
cogl_LIBS = @cogl_LIBS@
datadir = @datadir@
datarootdir = @datarootdir@
directfb_CFLAGS = @directfb_CFLAGS@
directfb_LIBS = @directfb_LIBS@
docdir = @docdir@
drm_CFLAGS = @drm_CFLAGS@
drm_LIBS = @drm_LIBS@
dvidir = @dvidir@
egl_CFLAGS = @egl_CFLAGS@
egl_LIBS = @egl_LIBS@
exec_prefix = @exec_prefix@
gallium_DIR = @gallium_DIR@
gl_CFLAGS = @gl_CFLAGS@
gl_LIBS = @gl_LIBS@
glesv2_CFLAGS = @glesv2_CFLAGS@
glesv2_LIBS = @glesv2_LIBS@
glesv3_CFLAGS = @glesv3_CFLAGS@
glesv3_LIBS = @glesv3_LIBS@
glib_CFLAGS = @glib_CFLAGS@
glib_LIBS = @glib_LIBS@
gtk_CFLAGS = @gtk_CFLAGS@
gtk_LIBS = @gtk_LIBS@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
lzo_LIBS = @lzo_LIBS@
mandir = @mandir@
mesa_DIR = @mesa_DIR@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
pixman_CFLAGS = @pixman_CFLAGS@
pixman_LIBS = @pixman_LIBS@
png_CFLAGS = @png_CFLAGS@
png_LIBS = @png_LIBS@
png_REQUIRES = @png_REQUIRES@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
pthread_CFLAGS = @pthread_CFLAGS@
pthread_LIBS = @pthread_LIBS@
qt_CFLAGS = @qt_CFLAGS@
qt_LIBS = @qt_LIBS@
real_pthread_CFLAGS = @real_pthread_CFLAGS@
real_pthread_LIBS = @real_pthread_LIBS@
runstatedir = @runstatedir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
shm_LIBS = @shm_LIBS@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
xcb_CFLAGS = @xcb_CFLAGS@
xcb_LIBS = @xcb_LIBS@
xcb_shm_CFLAGS = @xcb_shm_CFLAGS@
xcb_shm_LIBS = @xcb_shm_LIBS@
xlib_CFLAGS = @xlib_CFLAGS@
xlib_LIBS = @xlib_LIBS@
xlib_xcb_CFLAGS = @xlib_xcb_CFLAGS@
xlib_xcb_LIBS = @xlib_xcb_LIBS@
xlib_xrender_CFLAGS = @xlib_xrender_CFLAGS@
xlib_xrender_LIBS = @xlib_xrender_LIBS@
BUILT_SOURCES = cairo-boilerplate-constructors.c
CLEANFILES = *.i *.s *.gch $(EXTRA_LTLIBRARIES) $(EXTRA_PROGRAMS) \
$(check_PROGRAMS) $(BUILT_SOURCES)
DISTCLEANFILES = $(BUILT_SOURCES)
EXTRA_DIST = Makefile.win32 Makefile.win32.features $(BUILT_SOURCES) \
make-cairo-boilerplate-constructors.sh
EXTRA_LTLIBRARIES = libcairoboilerplate.la $(cxx_boilerplate_lib)
MAINTAINERCLEANFILES = Makefile.in
TESTS = $(am__append_154)
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_beos_cxx_sources = cairo-boilerplate-beos.cpp
cairo_boilerplate_directfb_sources = cairo-boilerplate-directfb.c
cairo_boilerplate_drm_sources = cairo-boilerplate-drm.c
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_qt_cxx_sources = cairo-boilerplate-qt.cpp
cairo_boilerplate_quartz_sources = cairo-boilerplate-quartz.c
cairo_boilerplate_script_sources = cairo-boilerplate-script.c
cairo_boilerplate_skia_sources = cairo-boilerplate-skia.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
cairo_boilerplate_vg_sources = cairo-boilerplate-vg.c
cairo_boilerplate_cogl_sources = cairo-boilerplate-cogl.c
supported_cairo_boilerplate_headers = $(cairo_boilerplate_headers) \
$(cairo_boilerplate_xlib_headers) \
$(cairo_boilerplate_xlib_xrender_headers) \
$(cairo_boilerplate_xcb_headers) \
$(cairo_boilerplate_xcb_shm_headers) \
$(cairo_boilerplate_quartz_headers) \
$(cairo_boilerplate_quartz_font_headers) \
$(cairo_boilerplate_win32_headers) \
$(cairo_boilerplate_win32_font_headers) \
$(cairo_boilerplate_png_headers) \
$(cairo_boilerplate_egl_headers) \
$(cairo_boilerplate_glx_headers) \
$(cairo_boilerplate_wgl_headers) \
$(cairo_boilerplate_script_headers) \
$(cairo_boilerplate_ft_headers) \
$(cairo_boilerplate_fc_headers) \
$(cairo_boilerplate_ps_headers) \
$(cairo_boilerplate_pdf_headers) \
$(cairo_boilerplate_svg_headers) \
$(cairo_boilerplate_image_headers) \
$(cairo_boilerplate_mime_headers) \
$(cairo_boilerplate_recording_headers) \
$(cairo_boilerplate_observer_headers) \
$(cairo_boilerplate_user_headers) \
$(cairo_boilerplate_gobject_headers)
unsupported_cairo_boilerplate_headers = \
$(cairo_boilerplate_xlib_xcb_headers) \
$(cairo_boilerplate_qt_headers) \
$(cairo_boilerplate_quartz_image_headers) \
$(cairo_boilerplate_os2_headers) \
$(cairo_boilerplate_beos_headers) \
$(cairo_boilerplate_drm_headers) \
$(cairo_boilerplate_gallium_headers) \
$(cairo_boilerplate_gl_headers) \
$(cairo_boilerplate_glesv2_headers) \
$(cairo_boilerplate_glesv3_headers) \
$(cairo_boilerplate_cogl_headers) \
$(cairo_boilerplate_directfb_headers) \
$(cairo_boilerplate_vg_headers) \
$(cairo_boilerplate_tee_headers) \
$(cairo_boilerplate_xml_headers)
all_cairo_boilerplate_headers = $(cairo_boilerplate_headers) \
$(cairo_boilerplate_xlib_headers) \
$(cairo_boilerplate_xlib_xrender_headers) \
$(cairo_boilerplate_xcb_headers) \
$(cairo_boilerplate_xlib_xcb_headers) \
$(cairo_boilerplate_xcb_shm_headers) \
$(cairo_boilerplate_qt_headers) \
$(cairo_boilerplate_quartz_headers) \
$(cairo_boilerplate_quartz_font_headers) \
$(cairo_boilerplate_quartz_image_headers) \
$(cairo_boilerplate_win32_headers) \
$(cairo_boilerplate_win32_font_headers) \
$(cairo_boilerplate_os2_headers) \
$(cairo_boilerplate_beos_headers) \
$(cairo_boilerplate_drm_headers) \
$(cairo_boilerplate_gallium_headers) \
$(cairo_boilerplate_png_headers) \
$(cairo_boilerplate_gl_headers) \
$(cairo_boilerplate_glesv2_headers) \
$(cairo_boilerplate_glesv3_headers) \
$(cairo_boilerplate_cogl_headers) \
$(cairo_boilerplate_directfb_headers) \
$(cairo_boilerplate_vg_headers) \
$(cairo_boilerplate_egl_headers) \
$(cairo_boilerplate_glx_headers) \
$(cairo_boilerplate_wgl_headers) \
$(cairo_boilerplate_script_headers) \
$(cairo_boilerplate_ft_headers) \
$(cairo_boilerplate_fc_headers) \
$(cairo_boilerplate_ps_headers) \
$(cairo_boilerplate_pdf_headers) \
$(cairo_boilerplate_svg_headers) \
$(cairo_boilerplate_image_headers) \
$(cairo_boilerplate_mime_headers) \
$(cairo_boilerplate_recording_headers) \
$(cairo_boilerplate_observer_headers) \
$(cairo_boilerplate_tee_headers) \
$(cairo_boilerplate_xml_headers) \
$(cairo_boilerplate_user_headers) \
$(cairo_boilerplate_gobject_headers)
all_cairo_boilerplate_private = $(cairo_boilerplate_private) \
$(cairo_boilerplate_xlib_private) \
$(cairo_boilerplate_xlib_xrender_private) \
$(cairo_boilerplate_xcb_private) \
$(cairo_boilerplate_xlib_xcb_private) \
$(cairo_boilerplate_xcb_shm_private) \
$(cairo_boilerplate_qt_private) \
$(cairo_boilerplate_quartz_private) \
$(cairo_boilerplate_quartz_font_private) \
$(cairo_boilerplate_quartz_image_private) \
$(cairo_boilerplate_win32_private) \
$(cairo_boilerplate_win32_font_private) \
$(cairo_boilerplate_os2_private) \
$(cairo_boilerplate_beos_private) \
$(cairo_boilerplate_drm_private) \
$(cairo_boilerplate_gallium_private) \
$(cairo_boilerplate_png_private) \
$(cairo_boilerplate_gl_private) \
$(cairo_boilerplate_glesv2_private) \
$(cairo_boilerplate_glesv3_private) \
$(cairo_boilerplate_cogl_private) \
$(cairo_boilerplate_directfb_private) \
$(cairo_boilerplate_vg_private) \
$(cairo_boilerplate_egl_private) \
$(cairo_boilerplate_glx_private) \
$(cairo_boilerplate_wgl_private) \
$(cairo_boilerplate_script_private) \
$(cairo_boilerplate_ft_private) \
$(cairo_boilerplate_fc_private) \
$(cairo_boilerplate_ps_private) \
$(cairo_boilerplate_pdf_private) \
$(cairo_boilerplate_svg_private) \
$(cairo_boilerplate_test_surfaces_private) \
$(cairo_boilerplate_test_surfaces_headers) \
$(cairo_boilerplate_image_private) \
$(cairo_boilerplate_mime_private) \
$(cairo_boilerplate_recording_private) \
$(cairo_boilerplate_observer_private) \
$(cairo_boilerplate_tee_private) \
$(cairo_boilerplate_xml_private) \
$(cairo_boilerplate_user_private) \
$(cairo_boilerplate_pthread_private) \
$(cairo_boilerplate_pthread_headers) \
$(cairo_boilerplate_gobject_private) \
$(cairo_boilerplate_trace_private) \
$(cairo_boilerplate_trace_headers) \
$(cairo_boilerplate_interpreter_private) \
$(cairo_boilerplate_interpreter_headers) \
$(cairo_boilerplate_symbol_lookup_private) \
$(cairo_boilerplate_symbol_lookup_headers)
all_cairo_boilerplate_cxx_sources = $(cairo_boilerplate_cxx_sources) \
$(cairo_boilerplate_xlib_cxx_sources) \
$(cairo_boilerplate_xlib_xrender_cxx_sources) \
$(cairo_boilerplate_xcb_cxx_sources) \
$(cairo_boilerplate_xlib_xcb_cxx_sources) \
$(cairo_boilerplate_xcb_shm_cxx_sources) \
$(cairo_boilerplate_qt_cxx_sources) \
$(cairo_boilerplate_quartz_cxx_sources) \
$(cairo_boilerplate_quartz_font_cxx_sources) \
$(cairo_boilerplate_quartz_image_cxx_sources) \
$(cairo_boilerplate_win32_cxx_sources) \
$(cairo_boilerplate_win32_font_cxx_sources) \
$(cairo_boilerplate_os2_cxx_sources) \
$(cairo_boilerplate_beos_cxx_sources) \
$(cairo_boilerplate_drm_cxx_sources) \
$(cairo_boilerplate_gallium_cxx_sources) \
$(cairo_boilerplate_png_cxx_sources) \
$(cairo_boilerplate_gl_cxx_sources) \
$(cairo_boilerplate_glesv2_cxx_sources) \
$(cairo_boilerplate_glesv3_cxx_sources) \
$(cairo_boilerplate_cogl_cxx_sources) \
$(cairo_boilerplate_directfb_cxx_sources) \
$(cairo_boilerplate_vg_cxx_sources) \
$(cairo_boilerplate_egl_cxx_sources) \
$(cairo_boilerplate_glx_cxx_sources) \
$(cairo_boilerplate_wgl_cxx_sources) \
$(cairo_boilerplate_script_cxx_sources) \
$(cairo_boilerplate_ft_cxx_sources) \
$(cairo_boilerplate_fc_cxx_sources) \
$(cairo_boilerplate_ps_cxx_sources) \
$(cairo_boilerplate_pdf_cxx_sources) \
$(cairo_boilerplate_svg_cxx_sources) \
$(cairo_boilerplate_test_surfaces_cxx_sources) \
$(cairo_boilerplate_image_cxx_sources) \
$(cairo_boilerplate_mime_cxx_sources) \
$(cairo_boilerplate_recording_cxx_sources) \
$(cairo_boilerplate_observer_cxx_sources) \
$(cairo_boilerplate_tee_cxx_sources) \
$(cairo_boilerplate_xml_cxx_sources) \
$(cairo_boilerplate_user_cxx_sources) \
$(cairo_boilerplate_pthread_cxx_sources) \
$(cairo_boilerplate_gobject_cxx_sources) \
$(cairo_boilerplate_trace_cxx_sources) \
$(cairo_boilerplate_interpreter_cxx_sources) \
$(cairo_boilerplate_symbol_lookup_cxx_sources)
all_cairo_boilerplate_sources = $(cairo_boilerplate_sources) \
$(cairo_boilerplate_xlib_sources) \
$(cairo_boilerplate_xlib_xrender_sources) \
$(cairo_boilerplate_xcb_sources) \
$(cairo_boilerplate_xlib_xcb_sources) \
$(cairo_boilerplate_xcb_shm_sources) \
$(cairo_boilerplate_qt_sources) \
$(cairo_boilerplate_quartz_sources) \
$(cairo_boilerplate_quartz_font_sources) \
$(cairo_boilerplate_quartz_image_sources) \
$(cairo_boilerplate_win32_sources) \
$(cairo_boilerplate_win32_font_sources) \
$(cairo_boilerplate_os2_sources) \
$(cairo_boilerplate_beos_sources) \
$(cairo_boilerplate_drm_sources) \
$(cairo_boilerplate_gallium_sources) \
$(cairo_boilerplate_png_sources) \
$(cairo_boilerplate_gl_sources) \
$(cairo_boilerplate_glesv2_sources) \
$(cairo_boilerplate_glesv3_sources) \
$(cairo_boilerplate_cogl_sources) \
$(cairo_boilerplate_directfb_sources) \
$(cairo_boilerplate_vg_sources) \
$(cairo_boilerplate_egl_sources) \
$(cairo_boilerplate_glx_sources) \
$(cairo_boilerplate_wgl_sources) \
$(cairo_boilerplate_script_sources) \
$(cairo_boilerplate_ft_sources) \
$(cairo_boilerplate_fc_sources) \
$(cairo_boilerplate_ps_sources) \
$(cairo_boilerplate_pdf_sources) \
$(cairo_boilerplate_svg_sources) \
$(cairo_boilerplate_test_surfaces_sources) \
$(cairo_boilerplate_image_sources) \
$(cairo_boilerplate_mime_sources) \
$(cairo_boilerplate_recording_sources) \
$(cairo_boilerplate_observer_sources) \
$(cairo_boilerplate_tee_sources) \
$(cairo_boilerplate_xml_sources) \
$(cairo_boilerplate_user_sources) \
$(cairo_boilerplate_pthread_sources) \
$(cairo_boilerplate_gobject_sources) \
$(cairo_boilerplate_trace_sources) \
$(cairo_boilerplate_interpreter_sources) \
$(cairo_boilerplate_symbol_lookup_sources)
enabled_cairo_boilerplate_headers = $(cairo_boilerplate_headers) \
$(am__append_1) $(am__append_5) $(am__append_9) \
$(am__append_13) $(am__append_17) $(am__append_21) \
$(am__append_25) $(am__append_29) $(am__append_33) \
$(am__append_37) $(am__append_41) $(am__append_45) \
$(am__append_49) $(am__append_53) $(am__append_57) \
$(am__append_61) $(am__append_65) $(am__append_69) \
$(am__append_73) $(am__append_77) $(am__append_81) \
$(am__append_85) $(am__append_89) $(am__append_93) \
$(am__append_97) $(am__append_101) $(am__append_105) \
$(am__append_109) $(am__append_113) $(am__append_117) \
$(am__append_121) $(cairo_boilerplate_image_headers) \
$(cairo_boilerplate_mime_headers) \
$(cairo_boilerplate_recording_headers) \
$(cairo_boilerplate_observer_headers) $(am__append_128) \
$(am__append_132) $(cairo_boilerplate_user_headers) \
$(am__append_139)
enabled_cairo_boilerplate_private = $(cairo_boilerplate_private) \
$(am__append_2) $(am__append_6) $(am__append_10) \
$(am__append_14) $(am__append_18) $(am__append_22) \
$(am__append_26) $(am__append_30) $(am__append_34) \
$(am__append_38) $(am__append_42) $(am__append_46) \
$(am__append_50) $(am__append_54) $(am__append_58) \
$(am__append_62) $(am__append_66) $(am__append_70) \
$(am__append_74) $(am__append_78) $(am__append_82) \
$(am__append_86) $(am__append_90) $(am__append_94) \
$(am__append_98) $(am__append_102) $(am__append_106) \
$(am__append_110) $(am__append_114) $(am__append_118) \
$(am__append_122) $(am__append_125) \
$(cairo_boilerplate_image_private) \
$(cairo_boilerplate_mime_private) \
$(cairo_boilerplate_recording_private) \
$(cairo_boilerplate_observer_private) $(am__append_129) \
$(am__append_133) $(cairo_boilerplate_user_private) \
$(am__append_136) $(am__append_140) $(am__append_143) \
$(am__append_146) $(am__append_149)
enabled_cairo_boilerplate_cxx_sources = \
$(cairo_boilerplate_cxx_sources) $(am__append_3) \
$(am__append_7) $(am__append_11) $(am__append_15) \
$(am__append_19) $(am__append_23) $(am__append_27) \
$(am__append_31) $(am__append_35) $(am__append_39) \
$(am__append_43) $(am__append_47) $(am__append_51) \
$(am__append_55) $(am__append_59) $(am__append_63) \
$(am__append_67) $(am__append_71) $(am__append_75) \
$(am__append_79) $(am__append_83) $(am__append_87) \
$(am__append_91) $(am__append_95) $(am__append_99) \
$(am__append_103) $(am__append_107) $(am__append_111) \
$(am__append_115) $(am__append_119) $(am__append_123) \
$(am__append_126) $(cairo_boilerplate_image_cxx_sources) \
$(cairo_boilerplate_mime_cxx_sources) \
$(cairo_boilerplate_recording_cxx_sources) \
$(cairo_boilerplate_observer_cxx_sources) $(am__append_130) \
$(am__append_134) $(cairo_boilerplate_user_cxx_sources) \
$(am__append_137) $(am__append_141) $(am__append_144) \
$(am__append_147) $(am__append_150)
enabled_cairo_boilerplate_sources = $(cairo_boilerplate_sources) \
$(am__append_4) $(am__append_8) $(am__append_12) \
$(am__append_16) $(am__append_20) $(am__append_24) \
$(am__append_28) $(am__append_32) $(am__append_36) \
$(am__append_40) $(am__append_44) $(am__append_48) \
$(am__append_52) $(am__append_56) $(am__append_60) \
$(am__append_64) $(am__append_68) $(am__append_72) \
$(am__append_76) $(am__append_80) $(am__append_84) \
$(am__append_88) $(am__append_92) $(am__append_96) \
$(am__append_100) $(am__append_104) $(am__append_108) \
$(am__append_112) $(am__append_116) $(am__append_120) \
$(am__append_124) $(am__append_127) \
$(cairo_boilerplate_image_sources) \
$(cairo_boilerplate_mime_sources) \
$(cairo_boilerplate_recording_sources) \
$(cairo_boilerplate_observer_sources) $(am__append_131) \
$(am__append_135) $(cairo_boilerplate_user_sources) \
$(am__append_138) $(am__append_142) $(am__append_145) \
$(am__append_148) $(am__append_151)
#MAINTAINERCLEANFILES += $(srcdir)/Makefile.win32.features
AM_CPPFLAGS = \
-I$(srcdir) \
-I$(top_builddir)/src \
-I$(top_srcdir)/src \
$(CAIRO_CFLAGS) \
$(NULL)
AM_LDFLAGS = $(CAIRO_LDFLAGS)
@BUILD_CXX_FALSE@cxx_boilerplate_lib =
@BUILD_CXX_TRUE@cxx_boilerplate_lib = libcairoboilerplate_cxx.la
libcairoboilerplate_la_SOURCES = \
$(enabled_cairo_boilerplate_headers) \
$(enabled_cairo_boilerplate_private) \
$(enabled_cairo_boilerplate_sources) \
cairo-boilerplate-constructors.c \
$(NULL)
libcairoboilerplate_cxx_la_SOURCES = \
$(enabled_cairo_boilerplate_cxx_sources) \
$(NULL)
libcairoboilerplate_la_LIBADD = $(top_builddir)/src/libcairo.la \
$(cxx_boilerplate_lib) $(CAIRO_LIBS) $(CAIROBOILERPLATE_LIBS) \
$(NULL) $(am__append_152) $(am__append_153)
libcairoboilerplate_cxx_la_LIBADD = $(top_builddir)/src/libcairo.la \
$(CAIRO_LIBS) \
$(CAIROBOILERPLATE_LIBS) \
$(NULL)
libcairoboilerplate_la_DEPENDENCIES = \
$(cxx_boilerplate_lib) \
$(NULL)
# BeOS system headers trigger this warning
@CAIRO_HAS_BEOS_SURFACE_TRUE@libcairoboilerplate_cxx_la_CXXFLAGS = -Wno-multichar
check_link_LDADD = libcairoboilerplate.la
all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES:
.SUFFIXES: .c .cpp .lo .log .o .obj .test .test$(EXEEXT) .trs
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build/Makefile.am.common $(srcdir)/Makefile.am.features $(top_srcdir)/boilerplate/Makefile.sources $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign boilerplate/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign boilerplate/Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
esac;
$(top_srcdir)/build/Makefile.am.common $(srcdir)/Makefile.am.features $(top_srcdir)/boilerplate/Makefile.sources $(am__empty):
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
clean-checkPROGRAMS:
@list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
echo " rm -f" $$list; \
rm -f $$list || exit $$?; \
test -n "$(EXEEXT)" || exit 0; \
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
libcairoboilerplate.la: $(libcairoboilerplate_la_OBJECTS) $(libcairoboilerplate_la_DEPENDENCIES) $(EXTRA_libcairoboilerplate_la_DEPENDENCIES)
$(AM_V_CCLD)$(LINK) $(libcairoboilerplate_la_OBJECTS) $(libcairoboilerplate_la_LIBADD) $(LIBS)
libcairoboilerplate_cxx.la: $(libcairoboilerplate_cxx_la_OBJECTS) $(libcairoboilerplate_cxx_la_DEPENDENCIES) $(EXTRA_libcairoboilerplate_cxx_la_DEPENDENCIES)
$(AM_V_CXXLD)$(libcairoboilerplate_cxx_la_LINK) $(am_libcairoboilerplate_cxx_la_rpath) $(libcairoboilerplate_cxx_la_OBJECTS) $(libcairoboilerplate_cxx_la_LIBADD) $(LIBS)
check-link$(EXEEXT): $(check_link_OBJECTS) $(check_link_DEPENDENCIES) $(EXTRA_check_link_DEPENDENCIES)
@rm -f check-link$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(check_link_OBJECTS) $(check_link_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-cogl.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-constructors.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-directfb.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-drm.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-egl.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-getopt.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-glx.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-pdf.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-ps.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-quartz.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-script.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-svg.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-system.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-test-surfaces.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-vg.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-wgl.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-win32-printing.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-win32.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-xcb.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate-xlib.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cairo-boilerplate.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check-link.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-beos.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-qt.Plo@am__quote@ # am--include-marker
$(am__depfiles_remade):
@$(MKDIR_P) $(@D)
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
am--depfiles: $(am__depfiles_remade)
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
.c.obj:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
.cpp.o:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
.cpp.obj:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cpp.lo:
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
libcairoboilerplate_cxx_la-cairo-boilerplate-qt.lo: cairo-boilerplate-qt.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairoboilerplate_cxx_la_CXXFLAGS) $(CXXFLAGS) -MT libcairoboilerplate_cxx_la-cairo-boilerplate-qt.lo -MD -MP -MF $(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-qt.Tpo -c -o libcairoboilerplate_cxx_la-cairo-boilerplate-qt.lo `test -f 'cairo-boilerplate-qt.cpp' || echo '$(srcdir)/'`cairo-boilerplate-qt.cpp
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-qt.Tpo $(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-qt.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cairo-boilerplate-qt.cpp' object='libcairoboilerplate_cxx_la-cairo-boilerplate-qt.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairoboilerplate_cxx_la_CXXFLAGS) $(CXXFLAGS) -c -o libcairoboilerplate_cxx_la-cairo-boilerplate-qt.lo `test -f 'cairo-boilerplate-qt.cpp' || echo '$(srcdir)/'`cairo-boilerplate-qt.cpp
libcairoboilerplate_cxx_la-cairo-boilerplate-beos.lo: cairo-boilerplate-beos.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairoboilerplate_cxx_la_CXXFLAGS) $(CXXFLAGS) -MT libcairoboilerplate_cxx_la-cairo-boilerplate-beos.lo -MD -MP -MF $(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-beos.Tpo -c -o libcairoboilerplate_cxx_la-cairo-boilerplate-beos.lo `test -f 'cairo-boilerplate-beos.cpp' || echo '$(srcdir)/'`cairo-boilerplate-beos.cpp
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-beos.Tpo $(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-beos.Plo
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cairo-boilerplate-beos.cpp' object='libcairoboilerplate_cxx_la-cairo-boilerplate-beos.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcairoboilerplate_cxx_la_CXXFLAGS) $(CXXFLAGS) -c -o libcairoboilerplate_cxx_la-cairo-boilerplate-beos.lo `test -f 'cairo-boilerplate-beos.cpp' || echo '$(srcdir)/'`cairo-boilerplate-beos.cpp
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
ID: $(am__tagged_files)
$(am__define_uniq_tagged_files); mkid -fID $$unique
tags: tags-am
TAGS: tags
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
set x; \
here=`pwd`; \
$(am__define_uniq_tagged_files); \
shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
if test $$# -gt 0; then \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi
ctags: ctags-am
CTAGS: ctags
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
$(am__define_uniq_tagged_files); \
test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) "$$here"
cscopelist: cscopelist-am
cscopelist-am: $(am__tagged_files)
list='$(am__tagged_files)'; \
case "$(srcdir)" in \
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
*) sdir=$(subdir)/$(srcdir) ;; \
esac; \
for i in $$list; do \
if test -f "$$i"; then \
echo "$(subdir)/$$i"; \
else \
echo "$$sdir/$$i"; \
fi; \
done >> $(top_builddir)/cscope.files
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
# Recover from deleted '.trs' file; this should ensure that
# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
# to avoid problems with "make -n".
.log.trs:
rm -f $< $@
$(MAKE) $(AM_MAKEFLAGS) $<
# Leading 'am--fnord' is there to ensure the list of targets does not
# expand to empty, as could happen e.g. with make check TESTS=''.
am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
am--force-recheck:
@:
$(TEST_SUITE_LOG): $(TEST_LOGS)
@$(am__set_TESTS_bases); \
am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
redo_bases=`for i in $$bases; do \
am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
done`; \
if test -n "$$redo_bases"; then \
redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
if $(am__make_dryrun); then :; else \
rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
fi; \
fi; \
if test -n "$$am__remaking_logs"; then \
echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
"recursion detected" >&2; \
elif test -n "$$redo_logs"; then \
am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
fi; \
if $(am__make_dryrun); then :; else \
st=0; \
errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
for i in $$redo_bases; do \
test -f $$i.trs && test -r $$i.trs \
|| { echo "$$errmsg $$i.trs" >&2; st=1; }; \
test -f $$i.log && test -r $$i.log \
|| { echo "$$errmsg $$i.log" >&2; st=1; }; \
done; \
test $$st -eq 0 || exit 1; \
fi
@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
ws='[ ]'; \
results=`for b in $$bases; do echo $$b.trs; done`; \
test -n "$$results" || results=/dev/null; \
all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
if test `expr $$fail + $$xpass + $$error` -eq 0; then \
success=true; \
else \
success=false; \
fi; \
br='==================='; br=$$br$$br$$br$$br; \
result_count () \
{ \
if test x"$$1" = x"--maybe-color"; then \
maybe_colorize=yes; \
elif test x"$$1" = x"--no-color"; then \
maybe_colorize=no; \
else \
echo "$@: invalid 'result_count' usage" >&2; exit 4; \
fi; \
shift; \
desc=$$1 count=$$2; \
if test $$maybe_colorize = yes && test $$count -gt 0; then \
color_start=$$3 color_end=$$std; \
else \
color_start= color_end=; \
fi; \
echo "$${color_start}# $$desc $$count$${color_end}"; \
}; \
create_testsuite_report () \
{ \
result_count $$1 "TOTAL:" $$all "$$brg"; \
result_count $$1 "PASS: " $$pass "$$grn"; \
result_count $$1 "SKIP: " $$skip "$$blu"; \
result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
result_count $$1 "FAIL: " $$fail "$$red"; \
result_count $$1 "XPASS:" $$xpass "$$red"; \
result_count $$1 "ERROR:" $$error "$$mgn"; \
}; \
{ \
echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
$(am__rst_title); \
create_testsuite_report --no-color; \
echo; \
echo ".. contents:: :depth: 2"; \
echo; \
for b in $$bases; do echo $$b; done \
| $(am__create_global_log); \
} >$(TEST_SUITE_LOG).tmp || exit 1; \
mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
if $$success; then \
col="$$grn"; \
else \
col="$$red"; \
test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
fi; \
echo "$${col}$$br$${std}"; \
echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
echo "$${col}$$br$${std}"; \
create_testsuite_report --maybe-color; \
echo "$$col$$br$$std"; \
if $$success; then :; else \
echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
if test -n "$(PACKAGE_BUGREPORT)"; then \
echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
fi; \
echo "$$col$$br$$std"; \
fi; \
$$success || exit 1
check-TESTS: $(check_PROGRAMS)
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@set +e; $(am__set_TESTS_bases); \
log_list=`for i in $$bases; do echo $$i.log; done`; \
trs_list=`for i in $$bases; do echo $$i.trs; done`; \
log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
exit $$?;
recheck: all $(check_PROGRAMS)
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
@set +e; $(am__set_TESTS_bases); \
bases=`for i in $$bases; do echo $$i; done \
| $(am__list_recheck_tests)` || exit 1; \
log_list=`for i in $$bases; do echo $$i.log; done`; \
log_list=`echo $$log_list`; \
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
am__force_recheck=am--force-recheck \
TEST_LOGS="$$log_list"; \
exit $$?
check-link.log: check-link$(EXEEXT)
@p='check-link$(EXEEXT)'; \
b='check-link'; \
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
.test.log:
@p='$<'; \
$(am__set_b); \
$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
@am__EXEEXT_TRUE@.test$(EXEEXT).log:
@am__EXEEXT_TRUE@ @p='$<'; \
@am__EXEEXT_TRUE@ $(am__set_b); \
@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
distdir: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) distdir-am
distdir-am: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
$(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile
installdirs:
install: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
if test -z '$(STRIP)'; then \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
install; \
else \
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
clean: clean-am
clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
mostlyclean-am
distclean: distclean-am
-rm -f ./$(DEPDIR)/cairo-boilerplate-cogl.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-constructors.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-directfb.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-drm.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-egl.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-getopt.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-glx.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-pdf.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-ps.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-quartz.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-script.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-svg.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-system.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-test-surfaces.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-vg.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-wgl.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-win32-printing.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-win32.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-xcb.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-xlib.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate.Plo
-rm -f ./$(DEPDIR)/check-link.Po
-rm -f ./$(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-beos.Plo
-rm -f ./$(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-qt.Plo
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am:
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f ./$(DEPDIR)/cairo-boilerplate-cogl.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-constructors.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-directfb.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-drm.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-egl.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-getopt.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-glx.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-pdf.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-ps.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-quartz.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-script.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-svg.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-system.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-test-surfaces.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-vg.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-wgl.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-win32-printing.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-win32.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-xcb.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate-xlib.Plo
-rm -f ./$(DEPDIR)/cairo-boilerplate.Plo
-rm -f ./$(DEPDIR)/check-link.Po
-rm -f ./$(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-beos.Plo
-rm -f ./$(DEPDIR)/libcairoboilerplate_cxx_la-cairo-boilerplate-qt.Plo
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am:
.MAKE: all check check-am install install-am install-strip
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-TESTS \
check-am clean clean-checkPROGRAMS clean-generic clean-libtool \
cscopelist-am ctags ctags-am distclean distclean-compile \
distclean-generic distclean-libtool distclean-tags distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
recheck tags tags-am uninstall uninstall-am
.PRECIOUS: Makefile
cairo-boilerplate-constructors.c: Makefile $(enabled_cairo_boilerplate_sources) $(enabled_cairo_boilerplate_cxx_sources) make-cairo-boilerplate-constructors.sh
(cd $(srcdir) && sh ./make-cairo-boilerplate-constructors.sh $(enabled_cairo_boilerplate_sources) $(enabled_cairo_boilerplate_cxx_sources)) > $@
test: check
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
# 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_beos_cxx_sources = cairo-boilerplate-beos.cpp
cairo_boilerplate_directfb_sources = cairo-boilerplate-directfb.c
cairo_boilerplate_drm_sources = cairo-boilerplate-drm.c
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_qt_cxx_sources = cairo-boilerplate-qt.cpp
cairo_boilerplate_quartz_sources = cairo-boilerplate-quartz.c
cairo_boilerplate_script_sources = cairo-boilerplate-script.c
cairo_boilerplate_skia_sources = cairo-boilerplate-skia.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
cairo_boilerplate_vg_sources = cairo-boilerplate-vg.c
cairo_boilerplate_cogl_sources = cairo-boilerplate-cogl.c
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)
# 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_cxx_sources = $(cairo_boilerplate_cxx_sources)
all_cairo_boilerplate_sources = $(cairo_boilerplate_sources)
enabled_cairo_boilerplate_headers = $(cairo_boilerplate_headers)
enabled_cairo_boilerplate_private = $(cairo_boilerplate_private)
enabled_cairo_boilerplate_cxx_sources = $(cairo_boilerplate_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_xlib_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_xlib_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_xlib_xrender_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_xlib_xrender_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_xcb_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_xcb_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_xlib_xcb_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_xlib_xcb_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_xcb_shm_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_xcb_shm_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_xcb_shm_sources)
endif
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_qt_headers)
all_cairo_boilerplate_headers += $(cairo_boilerplate_qt_headers)
all_cairo_boilerplate_private += $(cairo_boilerplate_qt_private)
all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_qt_cxx_sources)
all_cairo_boilerplate_sources += $(cairo_boilerplate_qt_sources)
ifeq ($(CAIRO_HAS_QT_SURFACE),1)
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_qt_headers)
enabled_cairo_boilerplate_private += $(cairo_boilerplate_qt_private)
enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_qt_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_qt_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_cxx_sources += $(cairo_boilerplate_quartz_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_quartz_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_quartz_font_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_quartz_font_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_quartz_image_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_quartz_image_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_win32_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_win32_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_win32_font_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_win32_font_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_win32_font_sources)
endif
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_os2_headers)
all_cairo_boilerplate_headers += $(cairo_boilerplate_os2_headers)
all_cairo_boilerplate_private += $(cairo_boilerplate_os2_private)
all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_os2_cxx_sources)
all_cairo_boilerplate_sources += $(cairo_boilerplate_os2_sources)
ifeq ($(CAIRO_HAS_OS2_SURFACE),1)
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_os2_headers)
enabled_cairo_boilerplate_private += $(cairo_boilerplate_os2_private)
enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_os2_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_os2_sources)
endif
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_beos_headers)
all_cairo_boilerplate_headers += $(cairo_boilerplate_beos_headers)
all_cairo_boilerplate_private += $(cairo_boilerplate_beos_private)
all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_beos_cxx_sources)
all_cairo_boilerplate_sources += $(cairo_boilerplate_beos_sources)
ifeq ($(CAIRO_HAS_BEOS_SURFACE),1)
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_beos_headers)
enabled_cairo_boilerplate_private += $(cairo_boilerplate_beos_private)
enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_beos_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_beos_sources)
endif
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_drm_headers)
all_cairo_boilerplate_headers += $(cairo_boilerplate_drm_headers)
all_cairo_boilerplate_private += $(cairo_boilerplate_drm_private)
all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_drm_cxx_sources)
all_cairo_boilerplate_sources += $(cairo_boilerplate_drm_sources)
ifeq ($(CAIRO_HAS_DRM_SURFACE),1)
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_drm_headers)
enabled_cairo_boilerplate_private += $(cairo_boilerplate_drm_private)
enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_drm_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_drm_sources)
endif
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_gallium_headers)
all_cairo_boilerplate_headers += $(cairo_boilerplate_gallium_headers)
all_cairo_boilerplate_private += $(cairo_boilerplate_gallium_private)
all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_gallium_cxx_sources)
all_cairo_boilerplate_sources += $(cairo_boilerplate_gallium_sources)
ifeq ($(CAIRO_HAS_GALLIUM_SURFACE),1)
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_gallium_headers)
enabled_cairo_boilerplate_private += $(cairo_boilerplate_gallium_private)
enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_gallium_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_gallium_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_cxx_sources += $(cairo_boilerplate_png_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_png_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_gl_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_gl_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_glesv2_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_glesv2_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_glesv3_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_glesv3_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_glesv3_sources)
endif
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_cogl_headers)
all_cairo_boilerplate_headers += $(cairo_boilerplate_cogl_headers)
all_cairo_boilerplate_private += $(cairo_boilerplate_cogl_private)
all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_cogl_cxx_sources)
all_cairo_boilerplate_sources += $(cairo_boilerplate_cogl_sources)
ifeq ($(CAIRO_HAS_COGL_SURFACE),1)
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_cogl_headers)
enabled_cairo_boilerplate_private += $(cairo_boilerplate_cogl_private)
enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_cogl_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_cogl_sources)
endif
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_directfb_headers)
all_cairo_boilerplate_headers += $(cairo_boilerplate_directfb_headers)
all_cairo_boilerplate_private += $(cairo_boilerplate_directfb_private)
all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_directfb_cxx_sources)
all_cairo_boilerplate_sources += $(cairo_boilerplate_directfb_sources)
ifeq ($(CAIRO_HAS_DIRECTFB_SURFACE),1)
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_directfb_headers)
enabled_cairo_boilerplate_private += $(cairo_boilerplate_directfb_private)
enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_directfb_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_directfb_sources)
endif
unsupported_cairo_boilerplate_headers += $(cairo_boilerplate_vg_headers)
all_cairo_boilerplate_headers += $(cairo_boilerplate_vg_headers)
all_cairo_boilerplate_private += $(cairo_boilerplate_vg_private)
all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_vg_cxx_sources)
all_cairo_boilerplate_sources += $(cairo_boilerplate_vg_sources)
ifeq ($(CAIRO_HAS_VG_SURFACE),1)
enabled_cairo_boilerplate_headers += $(cairo_boilerplate_vg_headers)
enabled_cairo_boilerplate_private += $(cairo_boilerplate_vg_private)
enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_vg_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_vg_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_cxx_sources += $(cairo_boilerplate_egl_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_egl_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_glx_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_glx_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_wgl_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_wgl_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_script_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_script_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_ft_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_ft_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_fc_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_fc_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_ps_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_ps_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_pdf_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_pdf_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_svg_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_svg_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_test_surfaces_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_test_surfaces_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_image_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_image_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_mime_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_mime_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_recording_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_recording_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_observer_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_observer_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_tee_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_tee_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_xml_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_xml_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_user_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_user_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_user_sources)
all_cairo_boilerplate_private += $(cairo_boilerplate_pthread_private) $(cairo_boilerplate_pthread_headers)
all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_pthread_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_pthread_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_gobject_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_gobject_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_gobject_sources)
endif
all_cairo_boilerplate_private += $(cairo_boilerplate_trace_private) $(cairo_boilerplate_trace_headers)
all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_trace_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_trace_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_trace_sources)
endif
all_cairo_boilerplate_private += $(cairo_boilerplate_interpreter_private) $(cairo_boilerplate_interpreter_headers)
all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_interpreter_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_interpreter_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_symbol_lookup_cxx_sources)
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_cxx_sources += $(cairo_boilerplate_symbol_lookup_cxx_sources)
enabled_cairo_boilerplate_sources += $(cairo_boilerplate_symbol_lookup_sources)
endif
This directory provides code that is common to both of cairo's tests
suites:
* The test suite for correctness in test/
* The test suite for performance in perf/
We call it boilerplate as it consists primarily of the boilerplate
code necessary for initializing a backend in order to create a surface
for that backend.
The code here just might be useful for someone looking to get started
writing cairo code to use a particular backend, (but there are no
promises that the boilerplate code found here for any particular
backend is exemplary).
/* vim:set ts=8 sw=4 noet cin: */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is Mozilla Communicator client code.
*
* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 1998
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Takashi Toyoshima <toyoshim@be-in.org>
* Fredrik Holmqvist <thesuckiestemail@yahoo.se>
* Christian Biesinger <cbiesinger@web.de>
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
#include "cairo-boilerplate.h"
#include <cairo-beos.h>
// Part of this code was originally part of
// xpfe/bootstrap/nsNativeAppSupportBeOS.cpp in the Mozilla source code.
#include <Application.h>
#include <Window.h>
#include <View.h>
#include <Bitmap.h>
class CairoTestWindow : public BWindow
{
public:
CairoTestWindow(BRect frame, const char* title);
virtual ~CairoTestWindow();
BView* View() const { return mView; }
private:
BView* mView;
};
CairoTestWindow::CairoTestWindow(BRect frame, const char* title)
: BWindow(frame, title, B_TITLED_WINDOW,
B_NOT_RESIZABLE|B_NOT_ZOOMABLE)
{
mView = new BView(frame, "CairoWindowTestView", B_FOLLOW_ALL_SIDES, 0);
AddChild(mView);
Show();
// Make sure the window is actually on screen
Lock();
Sync();
mView->SetViewColor(B_TRANSPARENT_COLOR);
mView->Sync();
Unlock();
}
CairoTestWindow::~CairoTestWindow()
{
RemoveChild(mView);
delete mView;
}
class nsBeOSApp : public BApplication
{
public:
nsBeOSApp(sem_id sem) : BApplication(GetAppSig()), init(sem)
{}
void ReadyToRun()
{
release_sem(init);
}
static int32 Main(void *args)
{
nsBeOSApp *app = new nsBeOSApp( (sem_id)args );
if(app == NULL)
return B_ERROR;
return app->Run();
}
private:
const char *GetAppSig()
{
return "application/x-vnd.cairo-test-app";
}
sem_id init;
}; //class nsBeOSApp
class AppRunner
{
public:
AppRunner();
~AppRunner();
};
AppRunner::AppRunner()
{
if (be_app)
return;
sem_id initsem = create_sem(0, "Cairo BApplication init");
if (initsem < B_OK) {
fprintf (stderr, "Error creating BeOS initialization semaphore\n");
return;
}
thread_id tid = spawn_thread(nsBeOSApp::Main, "Cairo/BeOS test", B_NORMAL_PRIORITY, (void *)initsem);
if (tid < B_OK || B_OK != resume_thread(tid)) {
fprintf (stderr, "Error spawning thread\n");
return;
}
if (B_OK != acquire_sem(initsem)) {
fprintf (stderr, "Error acquiring semaphore\n");
return;
}
delete_sem(initsem);
return;
}
AppRunner::~AppRunner()
{
if (be_app) {
if (be_app->Lock())
be_app->Quit();
delete be_app;
be_app = NULL;
}
}
// Make sure that the BApplication is initialized
static AppRunner sAppRunner;
struct beos_boilerplate_closure {
BView* view;
BBitmap* bitmap;
BWindow* window;
};
// Test a real window
static cairo_surface_t *
_cairo_boilerplate_beos_create_surface (const char *name,
cairo_content_t content,
double width,
double height,
cairo_boilerplate_mode_t mode,
void **closure)
{
float right = width ? width - 1 : 0;
float bottom = height ? height - 1 : 0;
BRect rect(0.0, 0.0, right, bottom);
CairoTestWindow* wnd = new CairoTestWindow(rect, name);
beos_boilerplate_closure* bclosure = new beos_boilerplate_closure;
bclosure->view = wnd->View();
bclosure->bitmap = NULL;
bclosure->window = wnd;
*closure = bclosure;
return cairo_beos_surface_create(wnd->View());
}
static void
_cairo_boilerplate_beos_cleanup (void *closure)
{
beos_boilerplate_closure* bclosure = reinterpret_cast<beos_boilerplate_closure*>(closure);
bclosure->window->Lock();
bclosure->window->Quit();
delete bclosure;
}
// Test a bitmap
static cairo_surface_t *
_cairo_boilerplate_beos_create_surface_for_bitmap (const char *name,
cairo_content_t content,
double width,
double height,
cairo_boilerplate_mode_t mode,
void **closure)
{
BRect rect(0.0, 0.0, width - 1, height - 1);
color_space beosformat = (content == CAIRO_CONTENT_COLOR_ALPHA) ? B_RGBA32
: B_RGB32;
BBitmap* bmp = new BBitmap(rect, beosformat, true);
BView* view = new BView(rect, "Cairo test view", B_FOLLOW_ALL_SIDES, 0);
bmp->AddChild(view);
beos_boilerplate_closure* bclosure = new beos_boilerplate_closure;
bclosure->view = view;
bclosure->bitmap = bmp;
bclosure->window = NULL;
*closure = bclosure;
return cairo_beos_surface_create_for_bitmap(view, bmp);
}
static void
_cairo_boilerplate_beos_cleanup_bitmap (void *closure)
{
beos_boilerplate_closure* bclosure = reinterpret_cast<beos_boilerplate_closure*>(closure);
bclosure->bitmap->RemoveChild(bclosure->view);
delete bclosure->view;
delete bclosure->bitmap;
delete bclosure;
}
static const cairo_boilerplate_target_t targets[] = {
/* BeOS sometimes produces a slightly different image. Perhaps this
* is related to the fact that it doesn't use premultiplied alpha...
* Just ignore the small difference. */
{
"beos", "beos", NULL, NULL,
CAIRO_SURFACE_TYPE_BEOS, CAIRO_CONTENT_COLOR, 1,
_cairo_boilerplate_beos_create_surface,
NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_beos_cleanup
},
{
"beos-bitmap", "beos", NULL, NULL,
CAIRO_SURFACE_TYPE_BEOS, CAIRO_CONTENT_COLOR, 1,
_cairo_boilerplate_beos_create_surface_for_bitmap,
NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_beos_cleanup_bitmap
},
{
"beos-bitmap", "beos", NULL, NULL,
CAIRO_SURFACE_TYPE_BEOS, CAIRO_CONTENT_COLOR_ALPHA, 1,
_cairo_boilerplate_beos_create_surface_for_bitmap,
NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_beos_cleanup_bitmap
},
};
CAIRO_BOILERPLATE (beos, targets)
/* Cairo - a vector graphics library with display and print output
*
* Copyright © 2009 Chris Wilson
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation
* (the "LGPL") or, at your option, under the terms of the Mozilla
* Public License Version 1.1 (the "MPL"). If you do not alter this
* notice, a recipient may use your version of this file under either
* the MPL or the LGPL.
*
* You should have received a copy of the LGPL along with this library
* in the file COPYING-LGPL-2.1; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
* You should have received a copy of the MPL along with this library
* in the file COPYING-MPL-1.1
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
* OF ANY KIND, either express or implied. See the LGPL or the MPL for
* the specific language governing rights and limitations.
*
* The Original Code is the cairo graphics library.
*
* The Initial Developer of the Original Code is Chris Wilson.
*/
#include "cairo-boilerplate-private.h"
#include <cairo-cogl.h>
#include <cogl/cogl2-experimental.h>
typedef struct _cogl_closure {
cairo_device_t *device;
cairo_surface_t *surface;
} cogl_closure_t;
static const cairo_user_data_key_t cogl_closure_key;
static void
_cairo_boilerplate_cogl_cleanup (void *abstract_closure)
{
cogl_closure_t *closure = abstract_closure;
cairo_device_finish (closure->device);
cairo_device_destroy (closure->device);
free (closure);
}
static cairo_surface_t *
_cairo_boilerplate_cogl_create_offscreen_color_surface (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **abstract_closure)
{
CoglContext *context;
cairo_device_t *device;
cogl_closure_t *closure;
cairo_status_t status;
if (width < 1)
width = 1;
if (height < 1)
height = 1;
context = cogl_context_new (NULL, NULL);
device = cairo_cogl_device_create (context);
/* The device will take a reference on the context */
cogl_object_unref (context);
closure = malloc (sizeof (cogl_closure_t));
*abstract_closure = closure;
closure->device = device;
closure->surface = cairo_cogl_offscreen_surface_create (device,
content,
width,
height);
status = cairo_surface_set_user_data (closure->surface,
&cogl_closure_key, closure, NULL);
if (status == CAIRO_STATUS_SUCCESS)
return closure->surface;
_cairo_boilerplate_cogl_cleanup (closure);
return cairo_boilerplate_surface_create_in_error (status);
}
static cairo_surface_t *
_cairo_boilerplate_cogl_create_onscreen_color_surface (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **abstract_closure)
{
CoglContext *context;
cairo_device_t *device;
cogl_closure_t *closure;
cairo_status_t status;
if (width < 1)
width = 1;
if (height < 1)
height = 1;
if (content & CAIRO_CONTENT_ALPHA) {
/* A hackish way to ensure that we get a framebuffer with
* an alpha component */
CoglSwapChain *swap_chain;
CoglOnscreenTemplate *onscreen_template;
CoglRenderer *renderer;
CoglDisplay *display;
swap_chain = cogl_swap_chain_new ();
cogl_swap_chain_set_has_alpha (swap_chain, TRUE);
onscreen_template = cogl_onscreen_template_new (swap_chain);
renderer = cogl_renderer_new ();
display = cogl_display_new (renderer, onscreen_template);
/* References will be taken on the swap chain, renderer, and
* onscreen template by the constructors */
cogl_object_unref (swap_chain);
cogl_object_unref (renderer);
cogl_object_unref (onscreen_template);
context = cogl_context_new (display, NULL);
/* The context will take a reference on the display */
cogl_object_unref (display);
} else {
context = cogl_context_new (NULL, NULL);
}
device = cairo_cogl_device_create (context);
/* The device will take a reference on the context */
cogl_object_unref (context);
closure = malloc (sizeof (cogl_closure_t));
*abstract_closure = closure;
closure->device = device;
closure->surface = cairo_cogl_onscreen_surface_create (device,
content,
width,
height);
status = cairo_surface_set_user_data (closure->surface,
&cogl_closure_key, closure, NULL);
if (status == CAIRO_STATUS_SUCCESS)
return closure->surface;
_cairo_boilerplate_cogl_cleanup (closure);
return cairo_boilerplate_surface_create_in_error (status);
}
static cairo_status_t
_cairo_boilerplate_cogl_finish (cairo_surface_t *surface)
{
return cairo_cogl_surface_end_frame (surface);
}
static void
_cairo_boilerplate_cogl_synchronize (void *abstract_closure)
{
cogl_closure_t *closure = abstract_closure;
cairo_cogl_surface_synchronize (closure->surface);
}
static const cairo_boilerplate_target_t targets[] = {
{
"cogl-offscreen-color", "cogl", NULL, NULL,
CAIRO_SURFACE_TYPE_COGL, CAIRO_CONTENT_COLOR_ALPHA, 1,
"cairo_cogl_device_create",
_cairo_boilerplate_cogl_create_offscreen_color_surface,
cairo_surface_create_similar,
NULL,
_cairo_boilerplate_cogl_finish,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_cogl_cleanup,
_cairo_boilerplate_cogl_synchronize,
NULL,
TRUE, FALSE, FALSE
},
{
"cogl-onscreen-color", "cogl", NULL, NULL,
CAIRO_SURFACE_TYPE_COGL, CAIRO_CONTENT_COLOR_ALPHA, 1,
"cairo_cogl_device_create",
_cairo_boilerplate_cogl_create_onscreen_color_surface,
cairo_surface_create_similar,
NULL,
_cairo_boilerplate_cogl_finish,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_cogl_cleanup,
_cairo_boilerplate_cogl_synchronize,
NULL,
TRUE, FALSE, FALSE
}
};
CAIRO_BOILERPLATE (cogl, targets)
/* WARNING: Autogenerated file - see ./make-cairo-boilerplate-constructors.sh! */
#include "cairo-boilerplate-private.h"
void _cairo_boilerplate_register_all (void);
extern void _register_builtin (void);
extern void _register_xlib (void);
extern void _register_xcb (void);
extern void _register_script (void);
extern void _register_ps (void);
extern void _register_pdf (void);
extern void _register_svg (void);
void
_cairo_boilerplate_register_all (void)
{
_register_builtin ();
_register_xlib ();
_register_xcb ();
_register_script ();
_register_ps ();
_register_pdf ();
_register_svg ();
}
/*
Test were run with the following script
target can be directfb_bitmap or directfb
export CAIRO_TEST_TARGET=directfb_bitmap
export DFBARGS=quiet,no-banner,no-debug,log-file=dfblog,system=x11
cd cairo/test
make check
*/
#include "cairo-boilerplate-private.h"
#include <cairo-directfb.h>
#include <stdio.h>
#include <stdlib.h>
#include <direct/debug.h>
D_DEBUG_DOMAIN (CairoDFB_Boiler, "CairoDFB/Boiler", "Cairo DirectFB Boilerplate");
/* macro for a safe call to DirectFB functions */
#define DFBCHECK(x...) do{ \
err = x; \
if (err != DFB_OK) { \
fprintf (stderr, "%s <%d>:\n\t", __FILE__, __LINE__); \
goto ERROR; \
} \
} while (0)
typedef struct _DFBInfo {
IDirectFB *dfb;
IDirectFBDisplayLayer *layer;
IDirectFBWindow *window;
IDirectFBSurface *surface;
} DFBInfo;
static void
_cairo_boilerplate_directfb_cleanup (void *closure)
{
DFBInfo *info = (DFBInfo *) closure;
if (info->surface)
info->surface->Release (info->surface);
if (info->window)
info->window->Release (info->window);
if (info->layer)
info->layer->Release (info->layer);
if (info->dfb)
info->dfb->Release (info->dfb);
free (info);
}
static DFBInfo *
init (void)
{
DFBDisplayLayerConfig layer_config;
DFBGraphicsDeviceDescription desc;
int err;
DFBInfo *info;
info = xcalloc (1, sizeof (DFBInfo));
if (info == NULL)
return NULL;
DFBCHECK (DirectFBInit (NULL, NULL));
DFBCHECK (DirectFBCreate (&info->dfb));
info->dfb->GetDeviceDescription (info->dfb, &desc);
DFBCHECK (info->dfb->GetDisplayLayer (info->dfb,
DLID_PRIMARY, &info->layer));
info->layer->SetCooperativeLevel (info->layer, DLSCL_ADMINISTRATIVE);
if ((desc.blitting_flags & (DSBLIT_BLEND_ALPHACHANNEL |
DSBLIT_BLEND_COLORALPHA)) !=
(DSBLIT_BLEND_ALPHACHANNEL | DSBLIT_BLEND_COLORALPHA))
{
layer_config.flags = DLCONF_BUFFERMODE;
layer_config.buffermode = DLBM_BACKSYSTEM;
info->layer->SetConfiguration (info->layer, &layer_config);
}
return info;
ERROR:
if (info != NULL)
_cairo_boilerplate_directfb_cleanup (info);
return NULL;
}
static cairo_surface_t *
_cairo_boilerplate_directfb_window_create_surface (DFBInfo *info,
cairo_content_t content,
int width,
int height)
{
DFBWindowDescription desc;
int err;
D_DEBUG_AT (CairoDFB_Boiler, "%s (%p, %s, %dx%d)\n", __FUNCTION__, info,
content == CAIRO_CONTENT_ALPHA ? "ALPHA" :
content == CAIRO_CONTENT_COLOR ? "RGB" :
content == CAIRO_CONTENT_COLOR_ALPHA ? "ARGB" : "unknown content!",
width, height);
desc.flags = DWDESC_POSX | DWDESC_POSY |
DWDESC_WIDTH | DWDESC_HEIGHT;
desc.caps = DSCAPS_NONE;
desc.posx = 0;
desc.posy = 0;
desc.width = width;
desc.height = height;
if (content == CAIRO_CONTENT_COLOR_ALPHA) {
desc.flags |= DWDESC_CAPS | DWDESC_PIXELFORMAT;
desc.caps |= DWCAPS_DOUBLEBUFFER | DWCAPS_ALPHACHANNEL;
desc.pixelformat = DSPF_ARGB;
}
DFBCHECK (info->layer->CreateWindow (info->layer, &desc, &info->window));
info->window->SetOpacity (info->window, 0xFF);
info->window->GetSurface (info->window, &info->surface);
info->surface->SetColor (info->surface, 0xFF, 0xFF, 0xFF, 0xFF);
info->surface->FillRectangle (info->surface,0, 0, desc.width, desc.height);
info->surface->Flip (info->surface, NULL, 0);
return cairo_directfb_surface_create (info->dfb, info->surface);
ERROR:
_cairo_boilerplate_directfb_cleanup (info);
return NULL;
}
static cairo_surface_t *
_cairo_boilerplate_directfb_bitmap_create_surface (DFBInfo *info,
cairo_content_t content,
int width,
int height)
{
int err;
DFBSurfaceDescription desc;
D_DEBUG_AT (CairoDFB_Boiler, "%s (%p, %s, %dx%d)\n", __FUNCTION__, info,
content == CAIRO_CONTENT_ALPHA ? "ALPHA" :
content == CAIRO_CONTENT_COLOR ? "RGB" :
content == CAIRO_CONTENT_COLOR_ALPHA ? "ARGB" : "unknown content!",
width, height);
desc.flags = DSDESC_WIDTH | DSDESC_HEIGHT;
desc.caps = DSCAPS_NONE;
desc.width = width;
desc.height = height;
if (content == CAIRO_CONTENT_COLOR_ALPHA) {
desc.flags |= DSDESC_PIXELFORMAT;
desc.pixelformat = DSPF_ARGB;
}
DFBCHECK (info->dfb->CreateSurface (info->dfb, &desc, &info->surface));
return cairo_directfb_surface_create (info->dfb, info->surface);
ERROR:
_cairo_boilerplate_directfb_cleanup (info);
return NULL;
}
static cairo_surface_t *
_cairo_boilerplate_directfb_create_surface (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **closure)
{
DFBInfo *info;
info = init ();
if (info == NULL)
return NULL;
*closure = info;
D_DEBUG_AT (CairoDFB_Boiler, "%s ('%s', %s, %dx%d, %s)\n",
__FUNCTION__, name,
content == CAIRO_CONTENT_ALPHA ? "ALPHA" :
content == CAIRO_CONTENT_COLOR ? "RGB" :
content == CAIRO_CONTENT_COLOR_ALPHA ? "ARGB" : "unknown content!",
width, height,
mode == CAIRO_BOILERPLATE_MODE_TEST ? "TEST" :
mode == CAIRO_BOILERPLATE_MODE_PERF ? "PERF" : "unknown mode!");
if (width == 0)
width = 1;
if (height == 0)
height = 1;
if (mode == CAIRO_BOILERPLATE_MODE_TEST)
return _cairo_boilerplate_directfb_bitmap_create_surface (info, content, width, height);
else /* mode == CAIRO_BOILERPLATE_MODE_PERF */
return _cairo_boilerplate_directfb_window_create_surface (info, content, width, height);
}
static const cairo_boilerplate_target_t targets[] = {
{
"directfb", "directfb", NULL, NULL,
CAIRO_SURFACE_TYPE_DIRECTFB, CAIRO_CONTENT_COLOR, 0,
"cairo_directfb_surface_create",
_cairo_boilerplate_directfb_create_surface,
cairo_surface_create_similar,
NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_directfb_cleanup,
NULL, NULL, TRUE, FALSE, FALSE
},
{
"directfb-bitmap", "directfb", NULL, NULL,
CAIRO_SURFACE_TYPE_DIRECTFB, CAIRO_CONTENT_COLOR_ALPHA, 0,
"cairo_directfb_surface_create",
_cairo_boilerplate_directfb_create_surface,
cairo_surface_create_similar,
NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_directfb_cleanup,
NULL, NULL, FALSE, FALSE, FALSE
},
};
CAIRO_BOILERPLATE (directfb, targets);
/* Cairo - a vector graphics library with display and print output
*
* Copyright © 2009 Chris Wilson
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation
* (the "LGPL") or, at your option, under the terms of the Mozilla
* Public License Version 1.1 (the "MPL"). If you do not alter this
* notice, a recipient may use your version of this file under either
* the MPL or the LGPL.
*
* You should have received a copy of the LGPL along with this library
* in the file COPYING-LGPL-2.1; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
* You should have received a copy of the MPL along with this library
* in the file COPYING-MPL-1.1
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
* OF ANY KIND, either express or implied. See the LGPL or the MPL for
* the specific language governing rights and limitations.
*
* The Original Code is the cairo graphics library.
*
* The Initial Developer of the Original Code is Chris Wilson.
*/
#include "cairo-boilerplate-private.h"
#include <cairo-drm.h>
static cairo_surface_t *
_cairo_boilerplate_drm_create_surface (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **closure)
{
cairo_device_t *device;
cairo_format_t format;
device = cairo_drm_device_default ();
if (device == NULL)
return NULL; /* skip tests if no supported h/w found */
switch (content) {
case CAIRO_CONTENT_ALPHA:
format = CAIRO_FORMAT_A8;
break;
case CAIRO_CONTENT_COLOR:
format = CAIRO_FORMAT_RGB24;
break;
case CAIRO_CONTENT_COLOR_ALPHA:
default:
format = CAIRO_FORMAT_ARGB32;
break;
}
return *closure = cairo_drm_surface_create (device, format, width, height);
}
static void
_cairo_boilerplate_drm_synchronize (void *closure)
{
cairo_surface_t *image;
image = cairo_drm_surface_map_to_image (closure);
if (cairo_surface_status (image) == CAIRO_STATUS_SUCCESS)
cairo_drm_surface_unmap (closure, image);
}
static const cairo_boilerplate_target_t targets[] = {
/* Acceleration architectures may make the results differ by a
* bit, so we set the error tolerance to 1. */
{
"drm", "drm", NULL, NULL,
CAIRO_SURFACE_TYPE_DRM, CAIRO_CONTENT_COLOR_ALPHA, 1,
"cairo_drm_surface_create",
_cairo_boilerplate_drm_create_surface,
cairo_surface_create_similar,
NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
NULL,
_cairo_boilerplate_drm_synchronize,
NULL,
TRUE, FALSE, FALSE
},
{
"drm", "drm", NULL, NULL,
CAIRO_SURFACE_TYPE_DRM, CAIRO_CONTENT_COLOR, 1,
"cairo_drm_surface_create",
_cairo_boilerplate_drm_create_surface,
cairo_surface_create_similar,
NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
NULL,
_cairo_boilerplate_drm_synchronize,
NULL,
FALSE, FALSE, FALSE
},
};
CAIRO_BOILERPLATE (drm, targets)
/* Cairo - a vector graphics library with display and print output
*
* Copyright © 2009 Chris Wilson
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation
* (the "LGPL") or, at your option, under the terms of the Mozilla
* Public License Version 1.1 (the "MPL"). If you do not alter this
* notice, a recipient may use your version of this file under either
* the MPL or the LGPL.
*
* You should have received a copy of the LGPL along with this library
* in the file COPYING-LGPL-2.1; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
* You should have received a copy of the MPL along with this library
* in the file COPYING-MPL-1.1
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
* OF ANY KIND, either express or implied. See the LGPL or the MPL for
* the specific language governing rights and limitations.
*
* The Original Code is the cairo graphics library.
*
* The Initial Developer of the Original Code is Chris Wilson.
*/
#include "cairo-boilerplate-private.h"
#include <cairo-gl.h>
#if CAIRO_HAS_GLESV3_SURFACE
#include <GLES3/gl3.h>
#include <EGL/eglext.h>
#elif CAIRO_HAS_GLESV2_SURFACE
#include <GLES2/gl2.h>
#elif CAIRO_HAS_GL_SURFACE
#include <GL/gl.h>
#endif
typedef struct _egl_target_closure {
EGLDisplay dpy;
EGLContext ctx;
cairo_device_t *device;
cairo_surface_t *surface;
} egl_target_closure_t;
static void
_cairo_boilerplate_egl_cleanup (void *closure)
{
egl_target_closure_t *gltc = closure;
cairo_device_finish (gltc->device);
cairo_device_destroy (gltc->device);
eglDestroyContext (gltc->dpy, gltc->ctx);
eglMakeCurrent (gltc->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
eglTerminate (gltc->dpy);
free (gltc);
}
static cairo_surface_t *
_cairo_boilerplate_egl_create_surface (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **closure)
{
egl_target_closure_t *gltc;
cairo_surface_t *surface;
int major, minor;
EGLConfig config;
EGLint numConfigs;
EGLint config_attribs[] = {
EGL_RED_SIZE, 8,
EGL_GREEN_SIZE, 8,
EGL_BLUE_SIZE, 8,
EGL_ALPHA_SIZE, 8,
EGL_SURFACE_TYPE, EGL_PBUFFER_BIT,
#if CAIRO_HAS_GLESV3_SURFACE
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES3_BIT_KHR,
#elif CAIRO_HAS_GLESV2_SURFACE
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
#elif CAIRO_HAS_GL_SURFACE
EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT,
#endif
EGL_NONE
};
const EGLint ctx_attribs[] = {
#if CAIRO_HAS_GLESV3_SURFACE
EGL_CONTEXT_CLIENT_VERSION, 3,
#elif CAIRO_HAS_GLESV2_SURFACE
EGL_CONTEXT_CLIENT_VERSION, 2,
#endif
EGL_NONE
};
gltc = xcalloc (1, sizeof (egl_target_closure_t));
*closure = gltc;
gltc->dpy = eglGetDisplay (EGL_DEFAULT_DISPLAY);
if (! eglInitialize (gltc->dpy, &major, &minor)) {
free (gltc);
return NULL;
}
eglChooseConfig (gltc->dpy, config_attribs, &config, 1, &numConfigs);
#if CAIRO_HAS_GLESV3_SURFACE && CAIRO_HAS_GLESV2_SURFACE
if (numConfigs == 0) {
/* retry with ES2_BIT */
config_attribs[11] = ES2_BIT; /* FIXME: Ick */
eglChooseConfig (gltc->dpy, config_attribs, &config, 1, &numConfigs);
}
#endif
if (numConfigs == 0) {
free (gltc);
return NULL;
}
#if CAIRO_HAS_GLESV3_SURFACE || CAIRO_HAS_GLESV2_SURFACE
eglBindAPI (EGL_OPENGL_ES_API);
#elif CAIRO_HAS_GL_SURFACE
eglBindAPI (EGL_OPENGL_API);
#endif
gltc->ctx = eglCreateContext (gltc->dpy, config, EGL_NO_CONTEXT,
ctx_attribs);
if (gltc->ctx == EGL_NO_CONTEXT) {
eglTerminate (gltc->dpy);
free (gltc);
return NULL;
}
gltc->device = cairo_egl_device_create (gltc->dpy, gltc->ctx);
if (mode == CAIRO_BOILERPLATE_MODE_PERF)
cairo_gl_device_set_thread_aware(gltc->device, FALSE);
if (width < 1)
width = 1;
if (height < 1)
height = 1;
gltc->surface = surface = cairo_gl_surface_create (gltc->device,
content,
ceil (width),
ceil (height));
if (cairo_surface_status (surface))
_cairo_boilerplate_egl_cleanup (gltc);
return surface;
}
static void
_cairo_boilerplate_egl_synchronize (void *closure)
{
egl_target_closure_t *gltc = closure;
if (cairo_device_acquire (gltc->device))
return;
glFinish ();
cairo_device_release (gltc->device);
}
static const cairo_boilerplate_target_t targets[] = {
{
"egl", "gl", NULL, NULL,
CAIRO_SURFACE_TYPE_GL, CAIRO_CONTENT_COLOR_ALPHA, 1,
"cairo_egl_device_create",
_cairo_boilerplate_egl_create_surface,
cairo_surface_create_similar,
NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_egl_cleanup,
_cairo_boilerplate_egl_synchronize,
NULL,
TRUE, FALSE, FALSE
}
};
CAIRO_BOILERPLATE (egl, targets)
/*****************************************************************************
* getopt.c - competent and free getopt library.
* $Header: /cvsroot/freegetopt/freegetopt/getopt.c,v 1.2 2003/10/26 03:10:20 vindaci Exp $
*
* Copyright (c)2002-2003 Mark K. Kim
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* * Neither the original author of this software nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cairo-boilerplate-getopt.h"
char* optarg = NULL;
int optind = 0;
int opterr = 1;
int optopt = '?';
static char** prev_argv = NULL; /* Keep a copy of argv and argc to */
static int prev_argc = 0; /* tell if getopt params change */
static int argv_index = 0; /* Option we're checking */
static int argv_index2 = 0; /* Option argument we're checking */
static int opt_offset = 0; /* Index into compounded "-option" */
static int dashdash = 0; /* True if "--" option reached */
static int nonopt = 0; /* How many nonopts we've found */
static void increment_index(void)
{
/* Move onto the next option */
if(argv_index < argv_index2)
{
while(prev_argv[++argv_index] && prev_argv[argv_index][0] != '-'
&& argv_index < argv_index2+1);
}
else argv_index++;
opt_offset = 1;
}
/*
* Permutes argv[] so that the argument currently being processed is moved
* to the end.
*/
static int permute_argv_once(void)
{
/* Movability check */
if(argv_index + nonopt >= prev_argc) return 1;
/* Move the current option to the end, bring the others to front */
else
{
char* tmp = prev_argv[argv_index];
/* Move the data */
memmove(&prev_argv[argv_index], &prev_argv[argv_index+1],
sizeof(char**) * (prev_argc - argv_index - 1));
prev_argv[prev_argc - 1] = tmp;
nonopt++;
return 0;
}
}
int _cairo_getopt(int argc, char** argv, const char* optstr)
{
int c = 0;
/* If we have new argv, reinitialize */
if(prev_argv != argv || prev_argc != argc)
{
/* Initialize variables */
prev_argv = argv;
prev_argc = argc;
argv_index = 1;
argv_index2 = 1;
opt_offset = 1;
dashdash = 0;
nonopt = 0;
}
/* Jump point in case we want to ignore the current argv_index */
getopt_top:
/* Misc. initializations */
optarg = NULL;
/* Dash-dash check */
if(argv[argv_index] && !strcmp(argv[argv_index], "--"))
{
dashdash = 1;
increment_index();
}
/* If we're at the end of argv, that's it. */
if(argv[argv_index] == NULL)
{
c = -1;
}
/* Are we looking at a string? Single dash is also a string */
else if(dashdash || argv[argv_index][0] != '-' || !strcmp(argv[argv_index], "-"))
{
/* If we want a string... */
if(optstr[0] == '-')
{
c = 1;
optarg = argv[argv_index];
increment_index();
}
/* If we really don't want it (we're in POSIX mode), we're done */
else if(optstr[0] == '+' || getenv("POSIXLY_CORRECT"))
{
c = -1;
/* Everything else is a non-opt argument */
nonopt = argc - argv_index;
}
/* If we mildly don't want it, then move it back */
else
{
if(!permute_argv_once()) goto getopt_top;
else c = -1;
}
}
/* Otherwise we're looking at an option */
else
{
char* opt_ptr = NULL;
/* Grab the option */
c = argv[argv_index][opt_offset++];
/* Is the option in the optstr? */
if(optstr[0] == '-') opt_ptr = strchr(optstr+1, c);
else opt_ptr = strchr(optstr, c);
/* Invalid argument */
if(!opt_ptr)
{
if(opterr)
{
fprintf(stderr, "%s: invalid option -- %c\n", argv[0], c);
}
optopt = c;
c = '?';
/* Move onto the next option */
increment_index();
}
/* Option takes argument */
else if(opt_ptr[1] == ':')
{
/* ie, -oARGUMENT, -xxxoARGUMENT, etc. */
if(argv[argv_index][opt_offset] != '\0')
{
optarg = &argv[argv_index][opt_offset];
increment_index();
}
/* ie, -o ARGUMENT (only if it's a required argument) */
else if(opt_ptr[2] != ':')
{
/* One of those "you're not expected to understand this" moment */
if(argv_index2 < argv_index) argv_index2 = argv_index;
while(argv[++argv_index2] && argv[argv_index2][0] == '-');
optarg = argv[argv_index2];
/* Don't cross into the non-option argument list */
if(argv_index2 + nonopt >= prev_argc) optarg = NULL;
/* Move onto the next option */
increment_index();
}
else
{
/* Move onto the next option */
increment_index();
}
/* In case we got no argument for an option with required argument */
if(optarg == NULL && opt_ptr[2] != ':')
{
optopt = c;
c = '?';
if(opterr)
{
fprintf(stderr,"%s: option requires an argument -- %c\n",
argv[0], optopt);
}
}
}
/* Option does not take argument */
else
{
/* Next argv_index */
if(argv[argv_index][opt_offset] == '\0')
{
increment_index();
}
}
}
/* Calculate optind */
if(c == -1)
{
optind = argc - nonopt;
}
else
{
optind = argv_index;
}
return c;
}
/* vim:ts=3
*/
/*****************************************************************************
* getopt.h - competent and free getopt library.
* $Header: /cvsroot/freegetopt/freegetopt/getopt.h,v 1.2 2003/10/26 03:10:20 vindaci Exp $
*
* Copyright (c)2002-2003 Mark K. Kim
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* * Neither the original author of this software nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
* THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*/
#ifndef GETOPT_H_
#define GETOPT_H_
#ifdef __cplusplus
extern "C" {
#endif
extern char* optarg;
extern int optind;
extern int opterr;
extern int optopt;
int _cairo_getopt(int argc, char** argv, const char* optstr);
#ifdef __cplusplus
}
#endif
#endif /* GETOPT_H_ */
/* vim:ts=3
*/
/* Cairo - a vector graphics library with display and print output
*
* Copyright © 2009 Chris Wilson
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation
* (the "LGPL") or, at your option, under the terms of the Mozilla
* Public License Version 1.1 (the "MPL"). If you do not alter this
* notice, a recipient may use your version of this file under either
* the MPL or the LGPL.
*
* You should have received a copy of the LGPL along with this library
* in the file COPYING-LGPL-2.1; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
* You should have received a copy of the MPL along with this library
* in the file COPYING-MPL-1.1
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
* OF ANY KIND, either express or implied. See the LGPL or the MPL for
* the specific language governing rights and limitations.
*
* The Original Code is the cairo graphics library.
*
* The Initial Developer of the Original Code is Chris Wilson.
*/
#include "cairo-boilerplate-private.h"
#include <cairo-gl.h>
#include <X11/X.h>
#include <X11/Xutil.h> /* for XDestroyImage */
static const cairo_user_data_key_t gl_closure_key;
typedef struct _gl_target_closure {
Display *dpy;
int screen;
Window drawable;
GLXContext ctx;
cairo_device_t *device;
cairo_surface_t *surface;
} gl_target_closure_t;
static void
_cairo_boilerplate_gl_cleanup (void *closure)
{
gl_target_closure_t *gltc = closure;
cairo_device_finish (gltc->device);
cairo_device_destroy (gltc->device);
glXDestroyContext (gltc->dpy, gltc->ctx);
if (gltc->drawable)
XDestroyWindow (gltc->dpy, gltc->drawable);
XCloseDisplay (gltc->dpy);
free (gltc);
}
static cairo_surface_t *
_cairo_boilerplate_gl_create_surface (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **closure)
{
int rgba_attribs[] = { GLX_RGBA,
GLX_RED_SIZE, 1,
GLX_GREEN_SIZE, 1,
GLX_BLUE_SIZE, 1,
GLX_ALPHA_SIZE, 1,
GLX_DOUBLEBUFFER,
None };
int rgb_attribs[] = { GLX_RGBA,
GLX_RED_SIZE, 1,
GLX_GREEN_SIZE, 1,
GLX_BLUE_SIZE, 1,
GLX_DOUBLEBUFFER,
None };
XVisualInfo *visinfo;
GLXContext ctx;
gl_target_closure_t *gltc;
cairo_surface_t *surface;
Display *dpy;
gltc = calloc (1, sizeof (gl_target_closure_t));
*closure = gltc;
width = ceil (width);
height = ceil (height);
if (width == 0)
width = 1;
if (height == 0)
height = 1;
dpy = XOpenDisplay (NULL);
gltc->dpy = dpy;
if (!gltc->dpy) {
fprintf (stderr, "Failed to open display: %s\n", XDisplayName(0));
free (gltc);
return NULL;
}
if (mode == CAIRO_BOILERPLATE_MODE_TEST)
XSynchronize (gltc->dpy, 1);
if (content == CAIRO_CONTENT_COLOR)
visinfo = glXChooseVisual (dpy, DefaultScreen (dpy), rgb_attribs);
else
visinfo = glXChooseVisual (dpy, DefaultScreen (dpy), rgba_attribs);
if (visinfo == NULL) {
fprintf (stderr, "Failed to create RGB, double-buffered visual\n");
XCloseDisplay (dpy);
free (gltc);
return NULL;
}
ctx = glXCreateContext (dpy, visinfo, NULL, True);
XFree (visinfo);
gltc->ctx = ctx;
gltc->device = cairo_glx_device_create (dpy, ctx);
if (mode == CAIRO_BOILERPLATE_MODE_PERF)
cairo_gl_device_set_thread_aware(gltc->device, FALSE);
gltc->surface = surface = cairo_gl_surface_create (gltc->device,
content, width, height);
if (cairo_surface_status (surface))
_cairo_boilerplate_gl_cleanup (gltc);
return surface;
}
static cairo_surface_t *
_cairo_boilerplate_gl_create_window_common (int rgba_attribs[],
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
gl_target_closure_t *gltc)
{
XVisualInfo *vi;
GLXContext ctx;
cairo_surface_t *surface;
Display *dpy;
XSetWindowAttributes attr;
width = ceil (width);
height = ceil (height);
if (width == 0)
width = 1;
if (height == 0)
height = 1;
dpy = XOpenDisplay (NULL);
gltc->dpy = dpy;
if (!gltc->dpy) {
fprintf (stderr, "Failed to open display: %s\n", XDisplayName(0));
free (gltc);
return NULL;
}
if (mode == CAIRO_BOILERPLATE_MODE_TEST)
XSynchronize (gltc->dpy, 1);
vi = glXChooseVisual (dpy, DefaultScreen (dpy), rgba_attribs);
if (vi == NULL) {
fprintf (stderr, "Failed to create RGBA, double-buffered visual\n");
XCloseDisplay (dpy);
free (gltc);
return NULL;
}
attr.colormap = XCreateColormap (dpy,
RootWindow (dpy, vi->screen),
vi->visual,
AllocNone);
attr.border_pixel = 0;
attr.override_redirect = True;
gltc->drawable = XCreateWindow (dpy, DefaultRootWindow (dpy), 0, 0,
width, height, 0, vi->depth,
InputOutput, vi->visual,
CWOverrideRedirect | CWBorderPixel | CWColormap,
&attr);
XMapWindow (dpy, gltc->drawable);
ctx = glXCreateContext (dpy, vi, NULL, True);
XFree (vi);
gltc->ctx = ctx;
gltc->device = cairo_glx_device_create (dpy, ctx);
gltc->surface = surface = cairo_gl_surface_create_for_window (gltc->device,
gltc->drawable,
width, height);
if (cairo_surface_status (surface)) {
_cairo_boilerplate_gl_cleanup (gltc);
return NULL;
}
return surface;
}
static cairo_surface_t *
_cairo_boilerplate_gl_create_window (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **closure)
{
gl_target_closure_t *gltc;
int rgba_attribs[] = { GLX_RGBA,
GLX_RED_SIZE, 1,
GLX_GREEN_SIZE, 1,
GLX_BLUE_SIZE, 1,
GLX_ALPHA_SIZE, 1,
GLX_DOUBLEBUFFER,
GLX_NONE };
gltc = calloc (1, sizeof (gl_target_closure_t));
*closure = gltc;
return _cairo_boilerplate_gl_create_window_common (rgba_attribs, content,
width, height,
max_width, max_height,
mode, gltc);
}
static cairo_surface_t *
_cairo_boilerplate_gl_create_window_msaa (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **closure)
{
gl_target_closure_t *gltc;
int rgba_attribs[] = { GLX_RGBA,
GLX_RED_SIZE, 1,
GLX_GREEN_SIZE, 1,
GLX_BLUE_SIZE, 1,
GLX_ALPHA_SIZE, 1,
GLX_STENCIL_SIZE, 1,
GLX_SAMPLES, 4,
GLX_SAMPLE_BUFFERS, 1,
GLX_DOUBLEBUFFER,
GLX_NONE };
gltc = calloc (1, sizeof (gl_target_closure_t));
*closure = gltc;
return _cairo_boilerplate_gl_create_window_common (rgba_attribs, content,
width, height,
max_width, max_height,
mode, gltc);
}
static cairo_surface_t *
_cairo_boilerplate_gl_create_window_db (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **closure)
{
cairo_status_t status;
cairo_surface_t *surface;
gl_target_closure_t *gltc;
int rgba_attribs[] = { GLX_RGBA,
GLX_RED_SIZE, 1,
GLX_GREEN_SIZE, 1,
GLX_BLUE_SIZE, 1,
GLX_ALPHA_SIZE, 1,
GLX_DOUBLEBUFFER,
GLX_NONE };
gltc = calloc (1, sizeof (gl_target_closure_t));
*closure = gltc;
surface = _cairo_boilerplate_gl_create_window_common (rgba_attribs, content,
width, height,
max_width, max_height,
mode, gltc);
if (! surface)
return NULL;
surface = cairo_surface_create_similar (gltc->surface, content, width, height);
status = cairo_surface_set_user_data (surface, &gl_closure_key, gltc, NULL);
if (status == CAIRO_STATUS_SUCCESS)
return surface;
cairo_surface_destroy (surface);
_cairo_boilerplate_gl_cleanup (gltc);
return cairo_boilerplate_surface_create_in_error (status);
}
static cairo_status_t
_cairo_boilerplate_gl_finish_window (cairo_surface_t *surface)
{
gl_target_closure_t *gltc = cairo_surface_get_user_data (surface,
&gl_closure_key);
if (gltc != NULL && gltc->surface != NULL) {
cairo_t *cr;
cr = cairo_create (gltc->surface);
cairo_surface_set_device_offset (surface, 0, 0);
cairo_set_source_surface (cr, surface, 0, 0);
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
cairo_paint (cr);
cairo_destroy (cr);
surface = gltc->surface;
}
cairo_gl_surface_swapbuffers (surface);
return CAIRO_STATUS_SUCCESS;
}
static void
_cairo_boilerplate_gl_synchronize (void *closure)
{
gl_target_closure_t *gltc = closure;
if (cairo_device_acquire (gltc->device))
return;
glFinish ();
cairo_device_release (gltc->device);
}
static char *
_cairo_boilerplate_gl_describe (void *closure)
{
gl_target_closure_t *gltc = closure;
char *s;
const GLubyte *vendor, *renderer, *version;
if (cairo_device_acquire (gltc->device))
return NULL;
vendor = glGetString (GL_VENDOR);
renderer = glGetString (GL_RENDERER);
version = glGetString (GL_VERSION);
xasprintf (&s, "%s %s %s", vendor, renderer, version);
cairo_device_release (gltc->device);
return s;
}
static const cairo_boilerplate_target_t targets[] = {
{
"gl", "gl", NULL, NULL,
CAIRO_SURFACE_TYPE_GL, CAIRO_CONTENT_COLOR_ALPHA, 1,
"cairo_gl_surface_create",
_cairo_boilerplate_gl_create_surface,
cairo_surface_create_similar,
NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_gl_cleanup,
_cairo_boilerplate_gl_synchronize,
_cairo_boilerplate_gl_describe,
TRUE, FALSE, FALSE
},
{
"gl", "gl", NULL, NULL,
CAIRO_SURFACE_TYPE_GL, CAIRO_CONTENT_COLOR, 1,
"cairo_gl_surface_create",
_cairo_boilerplate_gl_create_surface,
cairo_surface_create_similar,
NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_gl_cleanup,
_cairo_boilerplate_gl_synchronize,
_cairo_boilerplate_gl_describe,
FALSE, FALSE, FALSE
},
{
"gl-window", "gl", NULL, NULL,
CAIRO_SURFACE_TYPE_GL, CAIRO_CONTENT_COLOR_ALPHA, 1,
"cairo_gl_surface_create_for_window",
_cairo_boilerplate_gl_create_window,
cairo_surface_create_similar,
NULL,
_cairo_boilerplate_gl_finish_window,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_gl_cleanup,
_cairo_boilerplate_gl_synchronize,
_cairo_boilerplate_gl_describe,
FALSE, FALSE, FALSE
},
{
"gl-window-msaa", "gl", NULL, NULL,
CAIRO_SURFACE_TYPE_GL, CAIRO_CONTENT_COLOR_ALPHA, 1,
"cairo_gl_surface_create_for_window",
_cairo_boilerplate_gl_create_window_msaa,
cairo_surface_create_similar,
NULL,
_cairo_boilerplate_gl_finish_window,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_gl_cleanup,
_cairo_boilerplate_gl_synchronize,
_cairo_boilerplate_gl_describe,
FALSE, FALSE, FALSE
},
{
"gl-window&", "gl", NULL, NULL,
CAIRO_SURFACE_TYPE_GL, CAIRO_CONTENT_COLOR_ALPHA, 1,
"cairo_gl_surface_create_for_window",
_cairo_boilerplate_gl_create_window_db,
cairo_surface_create_similar,
NULL,
_cairo_boilerplate_gl_finish_window,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_gl_cleanup,
_cairo_boilerplate_gl_synchronize,
_cairo_boilerplate_gl_describe,
FALSE, FALSE, FALSE
},
};
CAIRO_BOILERPLATE (gl, targets)
/* -*- Mode: c; c-basic-offset: 4; indent-tabs-mode: t; tab-width: 8; -*- */
/*
* Copyright © 2004,2006 Red Hat, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software
* and its documentation for any purpose is hereby granted without
* fee, provided that the above copyright notice appear in all copies
* and that both that copyright notice and this permission notice
* appear in supporting documentation, and that the name of
* Red Hat, Inc. not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior
* permission. Red Hat, Inc. makes no representations about the
* suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*
* RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Author: Carl D. Worth <cworth@cworth.org>
*/
#include "cairo-boilerplate-private.h"
#if CAIRO_CAN_TEST_PDF_SURFACE
#include <cairo-pdf.h>
#include <cairo-pdf-surface-private.h>
#include <cairo-paginated-surface-private.h>
#if HAVE_SIGNAL_H
#include <signal.h>
#endif
#if HAVE_SYS_WAIT_H
#include <sys/wait.h>
#endif
#if ! CAIRO_HAS_RECORDING_SURFACE
#define CAIRO_SURFACE_TYPE_RECORDING CAIRO_INTERNAL_SURFACE_TYPE_RECORDING
#endif
static const cairo_user_data_key_t pdf_closure_key;
typedef struct _pdf_target_closure
{
char *filename;
int width;
int height;
cairo_surface_t *target;
} pdf_target_closure_t;
static cairo_surface_t *
_cairo_boilerplate_pdf_create_surface (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **closure)
{
pdf_target_closure_t *ptc;
cairo_surface_t *surface;
cairo_status_t status;
/* Sanitize back to a real cairo_content_t value. */
if (content == CAIRO_TEST_CONTENT_COLOR_ALPHA_FLATTENED)
content = CAIRO_CONTENT_COLOR_ALPHA;
*closure = ptc = xmalloc (sizeof (pdf_target_closure_t));
ptc->width = ceil (width);
ptc->height = ceil (height);
xasprintf (&ptc->filename, "%s.out.pdf", name);
xunlink (ptc->filename);
surface = cairo_pdf_surface_create (ptc->filename, width, height);
if (cairo_surface_status (surface))
goto CLEANUP_FILENAME;
cairo_pdf_surface_set_metadata (surface, CAIRO_PDF_METADATA_CREATE_DATE, NULL);
cairo_surface_set_fallback_resolution (surface, 72., 72.);
if (content == CAIRO_CONTENT_COLOR) {
ptc->target = surface;
surface = cairo_surface_create_similar (ptc->target,
CAIRO_CONTENT_COLOR,
ptc->width, ptc->height);
if (cairo_surface_status (surface))
goto CLEANUP_TARGET;
} else {
ptc->target = NULL;
}
status = cairo_surface_set_user_data (surface, &pdf_closure_key, ptc, NULL);
if (status == CAIRO_STATUS_SUCCESS)
return surface;
cairo_surface_destroy (surface);
surface = cairo_boilerplate_surface_create_in_error (status);
CLEANUP_TARGET:
cairo_surface_destroy (ptc->target);
CLEANUP_FILENAME:
free (ptc->filename);
free (ptc);
return surface;
}
static cairo_status_t
_cairo_boilerplate_pdf_finish_surface (cairo_surface_t *surface)
{
pdf_target_closure_t *ptc = cairo_surface_get_user_data (surface,
&pdf_closure_key);
cairo_status_t status;
if (ptc->target) {
/* Both surface and ptc->target were originally created at the
* same dimensions. We want a 1:1 copy here, so we first clear any
* device offset and scale on surface.
*
* In a more realistic use case of device offsets, the target of
* this copying would be of a different size than the source, and
* the offset would be desirable during the copy operation. */
double x_offset, y_offset;
double x_scale, y_scale;
cairo_surface_get_device_offset (surface, &x_offset, &y_offset);
cairo_surface_get_device_scale (surface, &x_scale, &y_scale);
cairo_surface_set_device_offset (surface, 0, 0);
cairo_surface_set_device_scale (surface, 1, 1);
cairo_t *cr;
cr = cairo_create (ptc->target);
cairo_set_source_surface (cr, surface, 0, 0);
cairo_paint (cr);
cairo_show_page (cr);
status = cairo_status (cr);
cairo_destroy (cr);
cairo_surface_set_device_offset (surface, x_offset, y_offset);
cairo_surface_set_device_scale (surface, x_scale, y_scale);
if (status)
return status;
cairo_surface_finish (surface);
status = cairo_surface_status (surface);
if (status)
return status;
surface = ptc->target;
}
cairo_surface_finish (surface);
status = cairo_surface_status (surface);
if (status)
return status;
return CAIRO_STATUS_SUCCESS;
}
static cairo_status_t
_cairo_boilerplate_pdf_surface_write_to_png (cairo_surface_t *surface,
const char *filename)
{
pdf_target_closure_t *ptc = cairo_surface_get_user_data (surface, &pdf_closure_key);
char command[4096];
int exitstatus;
sprintf (command, "./pdf2png %s %s 1",
ptc->filename, filename);
exitstatus = system (command);
#if _XOPEN_SOURCE && HAVE_SIGNAL_H
if (WIFSIGNALED (exitstatus))
raise (WTERMSIG (exitstatus));
#endif
if (exitstatus)
return CAIRO_STATUS_WRITE_ERROR;
return CAIRO_STATUS_SUCCESS;
}
static cairo_surface_t *
_cairo_boilerplate_pdf_convert_to_image (cairo_surface_t *surface,
int page)
{
pdf_target_closure_t *ptc = cairo_surface_get_user_data (surface,
&pdf_closure_key);
return cairo_boilerplate_convert_to_image (ptc->filename, page+1);
}
static cairo_surface_t *
_cairo_boilerplate_pdf_get_image_surface (cairo_surface_t *surface,
int page,
int width,
int height)
{
cairo_surface_t *image;
double x_offset, y_offset;
double x_scale, y_scale;
image = _cairo_boilerplate_pdf_convert_to_image (surface, page);
cairo_surface_get_device_offset (surface, &x_offset, &y_offset);
cairo_surface_get_device_scale (surface, &x_scale, &y_scale);
cairo_surface_set_device_offset (image, x_offset, y_offset);
cairo_surface_set_device_scale (image, x_scale, y_scale);
surface = _cairo_boilerplate_get_image_surface (image, 0, width, height);
cairo_surface_destroy (image);
return surface;
}
static void
_cairo_boilerplate_pdf_cleanup (void *closure)
{
pdf_target_closure_t *ptc = closure;
if (ptc->target) {
cairo_surface_finish (ptc->target);
cairo_surface_destroy (ptc->target);
}
free (ptc->filename);
free (ptc);
}
static void
_cairo_boilerplate_pdf_force_fallbacks (cairo_surface_t *abstract_surface,
double x_pixels_per_inch,
double y_pixels_per_inch)
{
pdf_target_closure_t *ptc = cairo_surface_get_user_data (abstract_surface,
&pdf_closure_key);
cairo_paginated_surface_t *paginated;
cairo_pdf_surface_t *surface;
if (ptc->target)
abstract_surface = ptc->target;
paginated = (cairo_paginated_surface_t*) abstract_surface;
surface = (cairo_pdf_surface_t*) paginated->target;
surface->force_fallbacks = TRUE;
cairo_surface_set_fallback_resolution (&paginated->base,
x_pixels_per_inch,
y_pixels_per_inch);
}
static const cairo_boilerplate_target_t targets[] = {
{
"pdf", "pdf", ".pdf", NULL,
CAIRO_SURFACE_TYPE_PDF,
CAIRO_TEST_CONTENT_COLOR_ALPHA_FLATTENED, 0,
"cairo_pdf_surface_create",
_cairo_boilerplate_pdf_create_surface,
cairo_surface_create_similar,
_cairo_boilerplate_pdf_force_fallbacks,
_cairo_boilerplate_pdf_finish_surface,
_cairo_boilerplate_pdf_get_image_surface,
_cairo_boilerplate_pdf_surface_write_to_png,
_cairo_boilerplate_pdf_cleanup,
NULL, NULL, FALSE, TRUE, TRUE
},
{
"pdf", "pdf", ".pdf", NULL,
CAIRO_SURFACE_TYPE_RECORDING, CAIRO_CONTENT_COLOR, 0,
"cairo_pdf_surface_create",
_cairo_boilerplate_pdf_create_surface,
cairo_surface_create_similar,
_cairo_boilerplate_pdf_force_fallbacks,
_cairo_boilerplate_pdf_finish_surface,
_cairo_boilerplate_pdf_get_image_surface,
_cairo_boilerplate_pdf_surface_write_to_png,
_cairo_boilerplate_pdf_cleanup,
NULL, NULL, FALSE, TRUE, TRUE
},
};
CAIRO_BOILERPLATE (pdf, targets)
#else
CAIRO_NO_BOILERPLATE (pdf)
#endif
/*
* Copyright © 2009 Chris Wilson
*
* Permission to use, copy, modify, distribute, and sell this software
* and its documentation for any purpose is hereby granted without
* fee, provided that the above copyright notice appear in all copies
* and that both that copyright notice and this permission notice
* appear in supporting documentation, and that the name of
* Red Hat, Inc. not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior
* permission. Red Hat, Inc. makes no representations about the
* suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*
* RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Author: Chris Wilson <chris@chris-wilson.co.uk>
*/
#ifndef _CAIRO_BOILERPLATE_PRIVATE_H_
#define _CAIRO_BOILERPLATE_PRIVATE_H_
#include "cairo-boilerplate.h"
CAIRO_BEGIN_DECLS
void
_cairo_boilerplate_register_all (void);
void
_cairo_boilerplate_register_backend (const cairo_boilerplate_target_t *targets,
unsigned int count);
#define CAIRO_BOILERPLATE(name__, targets__) \
void _register_##name__ (void); \
void _register_##name__ (void) { \
_cairo_boilerplate_register_backend (targets__, \
ARRAY_LENGTH(targets__)); \
}
#define CAIRO_NO_BOILERPLATE(name__) \
void _register_##name__ (void); \
void _register_##name__ (void) { }
CAIRO_END_DECLS
#endif /* _CAIRO_BOILERPLATE_PRIVATE_H_ */
/* -*- Mode: c; c-basic-offset: 4; indent-tabs-mode: t; tab-width: 8; -*- */
/*
* Copyright © 2004,2006 Red Hat, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software
* and its documentation for any purpose is hereby granted without
* fee, provided that the above copyright notice appear in all copies
* and that both that copyright notice and this permission notice
* appear in supporting documentation, and that the name of
* Red Hat, Inc. not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior
* permission. Red Hat, Inc. makes no representations about the
* suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*
* RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Author: Carl D. Worth <cworth@cworth.org>
*/
#include "cairo-boilerplate-private.h"
#if CAIRO_CAN_TEST_PS_SURFACE
#include <cairo-ps.h>
#include <cairo-ps-surface-private.h>
#include <cairo-paginated-surface-private.h>
#if HAVE_SIGNAL_H
#include <signal.h>
#endif
#if HAVE_SYS_WAIT_H
#include <sys/wait.h>
#endif
#if ! CAIRO_HAS_RECORDING_SURFACE
#define CAIRO_SURFACE_TYPE_RECORDING CAIRO_INTERNAL_SURFACE_TYPE_RECORDING
#endif
static const cairo_user_data_key_t ps_closure_key;
typedef struct _ps_target_closure {
char *filename;
int width;
int height;
cairo_surface_t *target;
cairo_ps_level_t level;
} ps_target_closure_t;
static cairo_status_t
_cairo_boilerplate_ps_surface_set_creation_date (cairo_surface_t *abstract_surface,
time_t date)
{
cairo_paginated_surface_t *paginated = (cairo_paginated_surface_t*) abstract_surface;
cairo_ps_surface_t *surface;
if (cairo_surface_get_type (abstract_surface) != CAIRO_SURFACE_TYPE_PS)
return CAIRO_STATUS_SURFACE_TYPE_MISMATCH;
surface = (cairo_ps_surface_t*) paginated->target;
surface->has_creation_date = TRUE;
surface->creation_date = date;
return CAIRO_STATUS_SUCCESS;
}
static cairo_surface_t *
_cairo_boilerplate_ps_create_surface (const char *name,
cairo_content_t content,
cairo_ps_level_t level,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **closure)
{
ps_target_closure_t *ptc;
cairo_surface_t *surface;
cairo_status_t status;
/* Sanitize back to a real cairo_content_t value. */
if (content == CAIRO_TEST_CONTENT_COLOR_ALPHA_FLATTENED)
content = CAIRO_CONTENT_COLOR_ALPHA;
*closure = ptc = xmalloc (sizeof (ps_target_closure_t));
xasprintf (&ptc->filename, "%s.out.ps", name);
xunlink (ptc->filename);
ptc->level = level;
ptc->width = ceil (width);
ptc->height = ceil (height);
surface = cairo_ps_surface_create (ptc->filename, width, height);
if (cairo_surface_status (surface))
goto CLEANUP_FILENAME;
cairo_ps_surface_restrict_to_level (surface, level);
_cairo_boilerplate_ps_surface_set_creation_date (surface, 0);
cairo_surface_set_fallback_resolution (surface, 72., 72.);
if (content == CAIRO_CONTENT_COLOR) {
ptc->target = surface;
surface = cairo_surface_create_similar (ptc->target,
CAIRO_CONTENT_COLOR,
ptc->width, ptc->height);
if (cairo_surface_status (surface))
goto CLEANUP_TARGET;
} else {
ptc->target = NULL;
}
status = cairo_surface_set_user_data (surface, &ps_closure_key, ptc, NULL);
if (status == CAIRO_STATUS_SUCCESS)
return surface;
cairo_surface_destroy (surface);
surface = cairo_boilerplate_surface_create_in_error (status);
CLEANUP_TARGET:
cairo_surface_destroy (ptc->target);
CLEANUP_FILENAME:
free (ptc->filename);
free (ptc);
return surface;
}
static cairo_surface_t *
_cairo_boilerplate_ps2_create_surface (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **closure)
{
return _cairo_boilerplate_ps_create_surface (name, content,
CAIRO_PS_LEVEL_2,
width, height,
max_width, max_height,
mode,
closure);
}
static cairo_surface_t *
_cairo_boilerplate_ps3_create_surface (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **closure)
{
return _cairo_boilerplate_ps_create_surface (name, content,
CAIRO_PS_LEVEL_3,
width, height,
max_width, max_height,
mode,
closure);
}
static cairo_status_t
_cairo_boilerplate_ps_finish_surface (cairo_surface_t *surface)
{
ps_target_closure_t *ptc = cairo_surface_get_user_data (surface,
&ps_closure_key);
cairo_status_t status;
if (ptc->target) {
/* Both surface and ptc->target were originally created at the
* same dimensions. We want a 1:1 copy here, so we first clear any
* device offset and scale on surface.
*
* In a more realistic use case of device offsets, the target of
* this copying would be of a different size than the source, and
* the offset would be desirable during the copy operation. */
double x_offset, y_offset;
double x_scale, y_scale;
cairo_surface_get_device_offset (surface, &x_offset, &y_offset);
cairo_surface_get_device_scale (surface, &x_scale, &y_scale);
cairo_surface_set_device_offset (surface, 0, 0);
cairo_surface_set_device_scale (surface, 1, 1);
cairo_t *cr;
cr = cairo_create (ptc->target);
cairo_set_source_surface (cr, surface, 0, 0);
cairo_paint (cr);
cairo_show_page (cr);
status = cairo_status (cr);
cairo_destroy (cr);
cairo_surface_set_device_offset (surface, x_offset, y_offset);
cairo_surface_set_device_scale (surface, x_scale, y_scale);
if (status)
return status;
cairo_surface_finish (surface);
status = cairo_surface_status (surface);
if (status)
return status;
surface = ptc->target;
}
cairo_surface_finish (surface);
return cairo_surface_status (surface);
}
static cairo_status_t
_cairo_boilerplate_ps_surface_write_to_png (cairo_surface_t *surface,
const char *filename)
{
ps_target_closure_t *ptc = cairo_surface_get_user_data (surface,
&ps_closure_key);
char command[4096];
int exitstatus;
sprintf (command, "gs -q -r72 -g%dx%d -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pngalpha -sOutputFile=%s %s %s",
ptc->width, ptc->height, filename,
ptc->level == CAIRO_PS_LEVEL_2 ? "-c 2 .setlanguagelevel -f" : "",
ptc->filename);
exitstatus = system (command);
#if _XOPEN_SOURCE && HAVE_SIGNAL_H
if (WIFSIGNALED (exitstatus))
raise (WTERMSIG (exitstatus));
#endif
if (exitstatus)
return CAIRO_STATUS_WRITE_ERROR;
return CAIRO_STATUS_SUCCESS;
}
static cairo_surface_t *
_cairo_boilerplate_ps_get_image_surface (cairo_surface_t *surface,
int page,
int width,
int height)
{
ps_target_closure_t *ptc = cairo_surface_get_user_data (surface,
&ps_closure_key);
double x_offset, y_offset;
double x_scale, y_scale;
char *filename;
cairo_status_t status;
if (page == 0)
xasprintf (&filename, "%s.png", ptc->filename);
else
xasprintf (&filename, "%s-%%05d.png", ptc->filename);
status = _cairo_boilerplate_ps_surface_write_to_png (surface, filename);
if (status)
return cairo_boilerplate_surface_create_in_error (status);
if (page != 0) {
free (filename);
xasprintf (&filename, "%s-%05d.png", ptc->filename, page);
}
cairo_surface_t *converted = cairo_boilerplate_get_image_surface_from_png (filename,
ptc->width,
ptc->height,
ptc->target == NULL);
remove (filename);
free (filename);
cairo_surface_t *image = cairo_image_surface_create(ptc->target ? CAIRO_FORMAT_RGB24 : CAIRO_FORMAT_ARGB32,
width,
height);
cairo_surface_get_device_offset (surface, &x_offset, &y_offset);
cairo_surface_get_device_scale (surface, &x_scale, &y_scale);
cairo_surface_set_device_offset (converted, x_offset, y_offset);
cairo_surface_set_device_scale (converted, x_scale, y_scale);
cairo_t *cr = cairo_create (image);
cairo_set_source_surface (cr, converted, 0, 0);
cairo_paint (cr);
cairo_destroy (cr);
cairo_surface_destroy (converted);
return image;
}
static void
_cairo_boilerplate_ps_cleanup (void *closure)
{
ps_target_closure_t *ptc = closure;
if (ptc->target) {
cairo_surface_finish (ptc->target);
cairo_surface_destroy (ptc->target);
}
free (ptc->filename);
free (ptc);
}
static void
_cairo_boilerplate_ps_force_fallbacks (cairo_surface_t *abstract_surface,
double x_pixels_per_inch,
double y_pixels_per_inch)
{
ps_target_closure_t *ptc = cairo_surface_get_user_data (abstract_surface,
&ps_closure_key);
cairo_paginated_surface_t *paginated;
cairo_ps_surface_t *surface;
if (ptc->target)
abstract_surface = ptc->target;
paginated = (cairo_paginated_surface_t*) abstract_surface;
surface = (cairo_ps_surface_t*) paginated->target;
surface->force_fallbacks = TRUE;
cairo_surface_set_fallback_resolution (&paginated->base,
x_pixels_per_inch,
y_pixels_per_inch);
}
static const cairo_boilerplate_target_t targets[] = {
{
"ps2", "ps", ".ps", NULL,
CAIRO_SURFACE_TYPE_PS,
CAIRO_TEST_CONTENT_COLOR_ALPHA_FLATTENED, 0,
"cairo_ps_surface_create",
_cairo_boilerplate_ps2_create_surface,
cairo_surface_create_similar,
_cairo_boilerplate_ps_force_fallbacks,
_cairo_boilerplate_ps_finish_surface,
_cairo_boilerplate_ps_get_image_surface,
_cairo_boilerplate_ps_surface_write_to_png,
_cairo_boilerplate_ps_cleanup,
NULL, NULL, FALSE, TRUE, TRUE
},
{
"ps2", "ps", ".ps", NULL,
CAIRO_SURFACE_TYPE_RECORDING, CAIRO_CONTENT_COLOR, 0,
"cairo_ps_surface_create",
_cairo_boilerplate_ps2_create_surface,
cairo_surface_create_similar,
_cairo_boilerplate_ps_force_fallbacks,
_cairo_boilerplate_ps_finish_surface,
_cairo_boilerplate_ps_get_image_surface,
_cairo_boilerplate_ps_surface_write_to_png,
_cairo_boilerplate_ps_cleanup,
NULL, NULL, FALSE, TRUE, TRUE
},
{
"ps3", "ps", ".ps", NULL,
CAIRO_SURFACE_TYPE_PS,
CAIRO_TEST_CONTENT_COLOR_ALPHA_FLATTENED, 0,
"cairo_ps_surface_create",
_cairo_boilerplate_ps3_create_surface,
cairo_surface_create_similar,
_cairo_boilerplate_ps_force_fallbacks,
_cairo_boilerplate_ps_finish_surface,
_cairo_boilerplate_ps_get_image_surface,
_cairo_boilerplate_ps_surface_write_to_png,
_cairo_boilerplate_ps_cleanup,
NULL, NULL, FALSE, TRUE, TRUE
},
{
"ps3", "ps", ".ps", NULL,
CAIRO_SURFACE_TYPE_RECORDING, CAIRO_CONTENT_COLOR, 0,
"cairo_ps_surface_create",
_cairo_boilerplate_ps3_create_surface,
cairo_surface_create_similar,
_cairo_boilerplate_ps_force_fallbacks,
_cairo_boilerplate_ps_finish_surface,
_cairo_boilerplate_ps_get_image_surface,
_cairo_boilerplate_ps_surface_write_to_png,
_cairo_boilerplate_ps_cleanup,
NULL, NULL, FALSE, TRUE, TRUE
},
};
CAIRO_BOILERPLATE (ps, targets)
#else
CAIRO_NO_BOILERPLATE (ps)
#endif
/* Cairo - a vector graphics library with display and print output
*
* Copyright © 2009 Chris Wilson
*
* This library is free software; you can redistribute it and/or
* modify it either under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation
* (the "LGPL") or, at your option, under the terms of the Mozilla
* Public License Version 1.1 (the "MPL"). If you do not alter this
* notice, a recipient may use your version of this file under either
* the MPL or the LGPL.
*
* You should have received a copy of the LGPL along with this library
* in the file COPYING-LGPL-2.1; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
* You should have received a copy of the MPL along with this library
* in the file COPYING-MPL-1.1
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
* OF ANY KIND, either express or implied. See the LGPL or the MPL for
* the specific language governing rights and limitations.
*
* The Original Code is the cairo graphics library.
*
* The Initial Developer of the Original Code is Chris Wilson.
*/
#include "cairo-boilerplate-private.h"
#include <cairo-qt.h>
#include <qapplication.h>
#include <X11/Xlib.h>
typedef struct _qt_closure {
Display *dpy;
QApplication *app;
} qt_closure_t;
static void
_cairo_boilerplate_qt_cleanup (void *closure)
{
qt_closure_t *qtc = (qt_closure_t *) closure;
delete qtc->app;
XCloseDisplay (qtc->dpy);
free (qtc);
}
static cairo_surface_t *
_cairo_boilerplate_qt_create_surface (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **closure)
{
qt_closure_t *qtc;
qtc = (qt_closure_t *) xcalloc (1, sizeof (qt_closure_t));
qtc->dpy = XOpenDisplay (NULL);
if (qtc->dpy == NULL) {
free (qtc);
return NULL;
}
if (mode == CAIRO_BOILERPLATE_MODE_TEST)
XSynchronize (qtc->dpy, True);
qtc->app = new QApplication (qtc->dpy);
*closure = qtc;
return cairo_qt_surface_create_with_qpixmap (content, width, height);
}
static void
_cairo_boilerplate_qt_synchronize (void *closure)
{
qt_closure_t *qtc = (qt_closure_t *) closure;
qtc->app->flush (); /* not sure if this is sufficient */
}
static const cairo_boilerplate_target_t targets[] = {
{
"qt", "qt", NULL, NULL,
CAIRO_SURFACE_TYPE_QT, CAIRO_CONTENT_COLOR_ALPHA, 0,
"cairo_qt_surface_create",
_cairo_boilerplate_qt_create_surface,
NULL, NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_qt_cleanup
},
{
"qt", "qt", NULL, NULL,
CAIRO_SURFACE_TYPE_QT, CAIRO_CONTENT_COLOR, 0,
"cairo_qt_surface_create",
_cairo_boilerplate_qt_create_surface,
NULL, NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
_cairo_boilerplate_qt_cleanup
},
};
extern "C" {
CAIRO_BOILERPLATE (qt, targets)
}
/* -*- Mode: c; c-basic-offset: 4; indent-tabs-mode: t; tab-width: 8; -*- */
/*
* Copyright © 2004,2007 Red Hat, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software
* and its documentation for any purpose is hereby granted without
* fee, provided that the above copyright notice appear in all copies
* and that both that copyright notice and this permission notice
* appear in supporting documentation, and that the name of
* Red Hat, Inc. not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior
* permission. Red Hat, Inc. makes no representations about the
* suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*
* RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Author: Carl D. Worth <cworth@cworth.org>
*/
#include "cairo-boilerplate-private.h"
#include <cairo-quartz.h>
static cairo_surface_t *
_cairo_boilerplate_quartz_create_surface (const char *name,
cairo_content_t content,
double width,
double height,
double max_width,
double max_height,
cairo_boilerplate_mode_t mode,
void **closure)
{
cairo_format_t format;
format = cairo_boilerplate_format_from_content (content);
*closure = NULL;
return cairo_quartz_surface_create (format, width, height);
}
static const cairo_boilerplate_target_t targets[] = {
{
"quartz", "quartz", NULL, NULL,
CAIRO_SURFACE_TYPE_QUARTZ, CAIRO_CONTENT_COLOR_ALPHA, 0,
"cairo_quartz_surface_create",
_cairo_boilerplate_quartz_create_surface,
cairo_surface_create_similar,
NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
NULL, NULL, NULL,
TRUE, FALSE, FALSE
},
{
"quartz", "quartz", NULL, NULL,
CAIRO_SURFACE_TYPE_QUARTZ, CAIRO_CONTENT_COLOR, 0,
"cairo_quartz_surface_create",
_cairo_boilerplate_quartz_create_surface,
cairo_surface_create_similar,
NULL, NULL,
_cairo_boilerplate_get_image_surface,
cairo_surface_write_to_png,
NULL, NULL, NULL,
FALSE, FALSE, FALSE
},
};
CAIRO_BOILERPLATE (quartz, targets)
/* -*- Mode: c; c-basic-offset: 4; indent-tabs-mode: t; tab-width: 8; -*- */
/*
* Copyright © 2007 Red Hat, Inc.
*
* Permission to use, copy, modify, distribute, and sell this software
* and its documentation for any purpose is hereby granted without
* fee, provided that the above copyright notice appear in all copies
* and that both that copyright notice and this permission notice
* appear in supporting documentation, and that the name of
* Red Hat, Inc. not be used in advertising or publicity pertaining to
* distribution of the software without specific, written prior
* permission. Red Hat, Inc. makes no representations about the
* suitability of this software for any purpose. It is provided "as
* is" without express or implied warranty.
*
* RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
* INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
* IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
* Author: Behdad Esfahbod <behdad@behdad.org>
*/
#ifndef _CAIRO_BOILERPLATE_SCALED_FONT_H_
#define _CAIRO_BOILERPLATE_SCALED_FONT_H_
void
cairo_boilerplate_scaled_font_set_max_glyphs_cached (cairo_scaled_font_t *scaled_font,
int max_glyphs);
#endif
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать