diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2008-09-02 20:20:49 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2008-09-02 20:24:08 -0400 |
commit | 59262577708ddb656851624377efb2a671fa8ca3 (patch) | |
tree | 2c75bd94e2cfe3efb333b0b1509c0540181af100 /src/Sources.mk | |
parent | 5cb3e66305b25a3380f2ca5829ac81e4a27e76d0 (diff) |
Revamp the build system.
Quick summary of changes:
- Move list of cairo source files out of src/Makefile.am and into
src/Sources.mk,
- Generate files src/Config.mk and src/Config.mk.win32 that choose
the right set of source files and headers based on configured
backends and features. This drastically simplifies building
using other build systems. The src/Makefile.win32 file needs
to be updated to reflect these changes.
- Add README files to various directories,
- Add toplevel HACKING file.
Diffstat (limited to 'src/Sources.mk')
-rw-r--r-- | src/Sources.mk | 246 |
1 files changed, 246 insertions, 0 deletions
diff --git a/src/Sources.mk b/src/Sources.mk new file mode 100644 index 00000000..8652dad9 --- /dev/null +++ b/src/Sources.mk @@ -0,0 +1,246 @@ +# Sources.mk +# +# This file is the canonical location listing all the source files used +# to build the cairo library. Every source file is categorized as one of: +# +# * public header file +# * private header file (must end in -private.h except for cairoint.h) +# * source code file +# +# Every source file should be specified exactly once, grouped with the +# backend/feature that uses the source file. If more than one +# backend/feature use the file (like pdf_operators or font_subset files), +# the files should be appended to to the base cairo files, and the code +# inside them enabled/disabled using C preprocessor macros defined in +# cairoint.h. See how pdf_operators or font_subset are handled. +# +# The sources are picked up according to the configured backends/features +# by the generated file Config.mk or Config.mk.win32. +# +# These are a few special source files. Those are not included in this +# file to not confuse build systems. Each build system must handle them +# separately. These files include: +# +# * cairo-features.h: +# This file is generated by configure and includes macros signifying +# which backends/features are enabled. This file should be installed +# like other public headers, but should NOT be distributed in the +# cairo distribution. +# +# * cairo-features-win32.h: +# This is a dummy file for use as cairo-featurs.h when building on +# win32. This file is not used during the build and should NOT be +# installed. +# +# * cairo-version.h: +# This is a dummy header file used during the build, but it should +# NOT be installed. Its sole purpose is to make sure changes in the +# cairo version do not trigger a full rebuild of the library, but +# just the functions actually using the version information. +# +# * $(top_srcdir)/cairo-version.h: +# This is the real file holding the cairo version number. This file +# should be installed like other public headers. This is used during +# the build by cairo-version.c only. +# +# * cairo-supported-features.h: +# This file is generated by configure and includes macros signifying +# all supported supported backends/features. This is used by gtk-doc +# to generate documentation for all those macros, enabled or not. +# This file is NOT used during the build of the library and should NOT +# be installed or distributed. +# +# Please follow the strict syntax of this file, including keeping file +# lists sorted. +# + +cairo_headers = cairo.h cairo-deprecated.h +cairo_private = \ + cairoint.h \ + cairo-analysis-surface-private.h \ + cairo-arc-private.h \ + cairo-atomic-private.h \ + cairo-cache-private.h \ + cairo-clip-private.h \ + cairo-compiler-private.h \ + cairo-fixed-private.h \ + cairo-fixed-type-private.h \ + cairo-freelist-private.h \ + cairo-gstate-private.h \ + cairo-hash-private.h \ + cairo-malloc-private.h \ + cairo-meta-surface-private.h \ + cairo-mutex-impl-private.h \ + cairo-mutex-list-private.h \ + cairo-mutex-private.h \ + cairo-mutex-type-private.h \ + cairo-output-stream-private.h \ + cairo-paginated-private.h \ + cairo-paginated-surface-private.h \ + cairo-path-fixed-private.h \ + cairo-path-private.h \ + cairo-private.h \ + cairo-reference-count-private.h \ + cairo-region-private.h \ + cairo-scaled-font-private.h \ + cairo-skiplist-private.h \ + cairo-surface-fallback-private.h \ + cairo-surface-private.h \ + cairo-types-private.h \ + cairo-user-font-private.h \ + cairo-wideint-private.h \ + cairo-wideint-type-private.h \ + $(NULL) +cairo_sources = \ + cairo-analysis-surface.c \ + cairo-arc.c \ + cairo-array.c \ + cairo-atomic.c \ + cairo-base85-stream.c \ + cairo-bentley-ottmann.c \ + cairo.c \ + cairo-cache.c \ + cairo-clip.c \ + cairo-color.c \ + cairo-debug.c \ + cairo-fixed.c \ + cairo-font-face.c \ + cairo-font-options.c \ + cairo-freelist.c \ + cairo-gstate.c \ + cairo-hash.c \ + cairo-hull.c \ + cairo-image-surface.c \ + cairo-lzw.c \ + cairo-matrix.c \ + cairo-meta-surface.c \ + cairo-misc.c \ + cairo-mutex.c \ + cairo-output-stream.c \ + cairo-paginated-surface.c \ + cairo-path-bounds.c \ + cairo-path.c \ + cairo-path-fill.c \ + cairo-path-fixed.c \ + cairo-path-stroke.c \ + cairo-pattern.c \ + cairo-pen.c \ + cairo-polygon.c \ + cairo-rectangle.c \ + cairo-region.c \ + cairo-scaled-font.c \ + cairo-skiplist.c \ + cairo-slope.c \ + cairo-spline.c \ + cairo-stroke-style.c \ + cairo-surface.c \ + cairo-surface-fallback.c \ + cairo-traps.c \ + cairo-unicode.c \ + cairo-user-font.c \ + cairo-version.c \ + cairo-wideint.c \ + $(NULL) + +_cairo_font_subset_private = \ + cairo-scaled-font-subsets-private.h \ + cairo-truetype-subset-private.h \ + cairo-type1-private.h \ + cairo-type3-glyph-surface-private.h \ + $(NULL) +_cairo_font_subset_sources = \ + cairo-cff-subset.c \ + cairo-scaled-font-subsets.c \ + cairo-truetype-subset.c \ + cairo-type1-fallback.c \ + cairo-type1-subset.c \ + cairo-type3-glyph-surface.c \ + $(NULL) +cairo_private += $(_cairo_font_subset_private) +cairo_sources += $(_cairo_font_subset_sources) + +_cairo_pdf_operators_private = cairo-pdf-operators-private.h +_cairo_pdf_operators_sources = cairo-pdf-operators.c +cairo_private += $(_cairo_pdf_operators_private) +cairo_sources += $(_cairo_pdf_operators_sources) + +cairo_png_sources = cairo-png.c + +cairo_ps_headers = cairo-ps.h +cairo_ps_private = cairo-ps-surface-private.h +cairo_ps_sources = cairo-ps-surface.c + +cairo_pdf_headers = cairo-pdf.h +cairo_pdf_private = cairo-pdf-surface-private.h +cairo_pdf_sources = cairo-pdf-surface.c cairo-deflate-stream.c + +cairo_svg_headers = cairo-svg.h +cairo_svg_private = cairo-svg-surface-private.h +cairo_svg_sources = cairo-svg-surface.c + +cairo_ft_headers = cairo-ft.h +cairo_ft_private = cairo-ft-private.h +cairo_ft_sources = cairo-ft-font.c + +# These are private, even though they look like public headers +cairo_test_surfaces_private = \ + test-fallback-surface.h \ + test-meta-surface.h \ + test-paginated-surface.h \ + $(NULL) +cairo_test_surfaces_sources = \ + test-fallback-surface.c \ + test-meta-surface.c \ + test-paginated-surface.c \ + $(NULL) + +cairo_xlib_headers = cairo-xlib.h +cairo_xlib_private = \ + cairo-xlib-private.h \ + cairo-xlib-surface-private.h \ + cairo-xlib-xrender-private.h \ + $(NULL) +cairo_xlib_sources = \ + cairo-xlib-display.c \ + cairo-xlib-screen.c \ + cairo-xlib-surface.c \ + cairo-xlib-visual.c \ + $(NULL) + +cairo_xlib_xrender_headers = cairo-xlib-xrender.h + +# XXX split xcb-xrender. or better yet, merge it into xcb. xcb is so recent +# that it's hard to imagine having xcb but not render. +cairo_xcb_headers = cairo-xcb.h cairo-xcb-xrender.h +cairo_xcb_sources = cairo-xcb-surface.c + +cairo_quartz_headers = cairo-quartz.h +cairo_quartz_private = cairo-quartz-private.h +cairo_quartz_sources = cairo-quartz-surface.c + +cairo_quratz_image_headers = cairo-quartz-image.h +cairo_quratz_image_sources = cairo-quartz-image-surface.c + +cairo_quartz_font_sources = cairo-quartz-font.c + +cairo_win32_headers = cairo-win32.h +cairo_win32_private = cairo-win32-private.h +cairo_win32_sources = cairo-win32-surface.c cairo-win32-printing-surface.c + +cairo_win32_font_sources = cairo-win32-font.c + +cairo_os2_headers = cairo-os2.h +cairo_os2_private = cairo-os2-private.h +cairo_os2_sources = cairo-os2-surface.c + +# automake is stupid enough to always use c++ linker if we enable the +# following lines, even if beos surface is not enabled. Disable it for now. +cairo_beos_headers = cairo-beos.h +#cairo_beos_sources = cairo-beos-surface.cpp + +cairo_glitz_headers = cairo-glitz.h +cairo_glitz_private = cairo-glitz-private.h +cairo_glitz_sources = cairo-glitz-surface.c + +cairo_directfb_headers = cairo-directfb.h +cairo_directfb_sources = cairo-directfb-surface.c |