summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2008-09-02 20:20:49 -0400
committerBehdad Esfahbod <behdad@behdad.org>2008-09-02 20:24:08 -0400
commit59262577708ddb656851624377efb2a671fa8ca3 (patch)
tree2c75bd94e2cfe3efb333b0b1509c0540181af100 /doc
parent5cb3e66305b25a3380f2ca5829ac81e4a27e76d0 (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 'doc')
-rw-r--r--doc/public/Headers.mk52
-rw-r--r--doc/public/Makefile.am30
-rw-r--r--doc/public/README37
3 files changed, 44 insertions, 75 deletions
diff --git a/doc/public/Headers.mk b/doc/public/Headers.mk
deleted file mode 100644
index 7b9edff1..00000000
--- a/doc/public/Headers.mk
+++ /dev/null
@@ -1,52 +0,0 @@
-PRIVATE_TEST_HFILES = \
- 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-ft-private.h \
- cairo-glitz-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-os2-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-pdf-operators-private.h \
- cairo-pdf-surface-private.h \
- cairo-private.h \
- cairo-ps-surface-private.h \
- cairo-quartz-private.h \
- cairo-reference-count-private.h \
- cairo-region-private.h \
- cairo-scaled-font-private.h \
- cairo-scaled-font-subsets-private.h \
- cairo-skiplist-private.h \
- cairo-surface-fallback-private.h \
- cairo-surface-private.h \
- cairo-svg-surface-private.h \
- cairo-truetype-subset-private.h \
- cairo-type1-private.h \
- cairo-type3-glyph-surface-private.h \
- cairo-types-private.h \
- cairo-user-font-private.h \
- cairo-wideint-private.h \
- cairo-wideint-type-private.h \
- cairo-win32-private.h \
- cairo-xlib-private.h \
- cairo-xlib-surface-private.h \
- cairo-xlib-xrender-private.h \
- cairo-features-win32.h \
- cairoint.h
diff --git a/doc/public/Makefile.am b/doc/public/Makefile.am
index 2bab45b2..2b6af97b 100644
--- a/doc/public/Makefile.am
+++ b/doc/public/Makefile.am
@@ -16,31 +16,15 @@ DOC_SOURCE_DIR=../../src
HFILE_GLOB=$(top_srcdir)/src/cairo-*.h
CFILE_GLOB=$(top_srcdir)/src/cairo-*.c $(top_srcdir)/src/cairo-*.h
-include $(srcdir)/Headers.mk
-
-UNSUPPORTED_HFILES= \
- cairo-atsui.h \
- cairo-beos.h \
- cairo-directfb.h \
- cairo-glitz.h \
- cairo-os2.h \
- cairo-xcb.h \
- cairo-xcb-xrender.h
+include $(top_srcdir)/src/Config.mk
# Headers to ignore
-IGNORE_HFILES= \
- $(PRIVATE_TEST_HFILES) \
- $(UNSUPPORTED_HFILES)
-
-Headers.mk:
- ( echo "PRIVATE_TEST_HFILES = \\"; \
- find $(top_srcdir)/src \
- -name '*-private.h' | \
- sed 's@.*/@ @; s@$$@ \\@' | \
- LANG=C sort; \
- echo ' cairo-features-win32.h \'; \
- echo ' cairoint.h' ) > $@.tmp
- mv $@.tmp $@
+IGNORE_HFILES= \
+ cairo-features.h \
+ cairo-features-win32.h \
+ $(all_cairo_private) \
+ $(unsupported_cairo_headers) \
+ $(NULL)
# CFLAGS and LDFLAGS for compiling scan program. Only needed
# if $(DOC_MODULE).types is non-empty.
diff --git a/doc/public/README b/doc/public/README
new file mode 100644
index 00000000..f3d157b1
--- /dev/null
+++ b/doc/public/README
@@ -0,0 +1,37 @@
+Cairo Reference Documentation
+=============================
+
+The API documentation is generated using gtk-doc.
+
+
+Building
+--------
+
+The documentation is not built by default. To build it you need to
+configure with gtk-doc enabled (--enable-gtk-doc), and run:
+
+ make doc
+
+
+Adding New API
+--------------
+
+When adding new symbols and macros to the public API, modify
+cairo-section.txt and add new symbols to the right place.
+
+When adding whole new features, you also need to modify cairo-docs.xml
+and add a new file under tmpl/. Beware that the files are tmpl/ are
+both manually edited AND modified by gtk-doc, gathering documentation
+stub from source files.
+
+
+Tests
+-----
+
+There are some tests in this directory, ensuring proper documentation
+syntax as well as checking that all public symbols are fully documented.
+
+After adding any new API, just run:
+
+ make check
+