Commit graph

223 commits

Author SHA1 Message Date
Behdad Esfahbod
23b9767bb3 Rename Makefile.*.config to Makefile.*.features as they should not be modified
The .config naming was giving people the impression that they can modify it.
That's not the case.
2008-09-22 17:34:36 -04:00
Behdad Esfahbod
9c27323959 [aclocal] In generated Makefile.win32.config, don't overwrite feature vars
When I designed this first I thought people can define make vars on the
command line to override default features.  That works.  However, it's
natural to want to define the list of features in the toplevel Makefile
and not on command line.  So, we don't override user's var now.  They
can set a make feature var to 0 to disable it.
2008-09-20 18:26:19 -04:00
Behdad Esfahbod
8ae8189327 [configure.ac.warnings] Add -Wp,-D_FORTIFY_SOURCE=2 to warning flags
It enables various checks in glibc and gcc preprocessor.
2008-09-19 18:43:43 -04:00
Behdad Esfahbod
54b60dadb9 [Makefile.am.common] Remove gcc precompiled headers in "make clean"
Stale gcc precompiled headers can cause bugs very tricky to pin down.
2008-09-19 18:42:54 -04:00
Behdad Esfahbod
d84752605a Make sure (and check) that all private headers include some cairo header first
The macros CAIRO_BEGIN_DECLS and CAIRO_END_DECLS are declared in two
places: config.h and cairo.h.  On Win32 build there is no config.h.  So,
we can't rely on pulling CAIRO_BEGIN_DECLS from there.  Hence, we now:

  * Not add those declarations to config.h anymore,

  * Test that every cairo private header includes some other cairo
    header before any other includes.

These two are fairly enough to ensure that cairo.h is seen from all
private headers.  There's still the case of headers not including
any header file at all.  I'll fix that later.
2008-09-19 17:19:10 -04:00
Behdad Esfahbod
eb89bf049a Check for _MSC_VER in mutex implementation code
Previously I made the mutex implementation code to use Windows mutexes
conditional on HAVE_WINDOWS_H.  This was suppposed to be a more wine-friendly
version of checking for a Windows platform.  However, it also meant that
when compiling without config.h, one had to stuff a #define for HAVE_WINDOWS_H
somewhere.  Traditionally it was put in cairo-features-win32.h, and that
practice was carried over even after my build system rewrite.

Somewhere along the road I also decided that the mutex implementation header
does not need to include anything other than config.h.  So the hacked up
HAVE_WINDOWS_H in cairo-features-win32.h was not being seen by its lone
user.

We now condition on any of HAVE_WINDOWS_H and _MSC_VER.  So the hack can be
removed altogether.
2008-09-19 16:57:42 -04:00
Behdad Esfahbod
b9c432862a [Makefile.am.releasing] Make release-publish work with parallel build
Carl had this confusing problem today making the snapshot, which was
"make release-publish" erring.  This commit reworks the release-publish
machinery to enforce serialization of some of the tasks such that it
works with make -j.  Don't expect any speedup though as "make distcheck"
is inherently sequential.
2008-09-18 19:35:28 -04:00
Behdad Esfahbod
9eee0e9358 [Makefile.am] Move sticky-bit clearing to dist-hook
It's a more natural place.  It also means that we just change permissions
on the dist directory, not the user's source directory.
2008-09-18 18:33:56 -04:00
Behdad Esfahbod
567be443a2 [configure.ac] Make sure version information do not end up in config.h
By introducing $(top_srcdir)/cairo-version.h I tried to make it
unnecessary to rebuild the entire library when the version changes.
That comes handy around releases and when bisecting.

However this was not working as the version info was also ending
up in config.h and hence forcing a full rebuild upon change.
I now undefine the PACKAGE_VERSION* macros that autoconf defines,
so config.h does not change when cairo-version.h changes.
2008-09-18 16:27:02 -04:00
Behdad Esfahbod
24c51ee177 [acinclude.m4] Add compat macros for autoconf 2.59 2008-09-18 03:12:03 -04:00
Chris Wilson
998310ef4d [gcov] Use --coverage instead.
--coverage is a synonym for "--fprofile-arcs --ftest-coverage" during
compilation *and* "--lgcov" during linking. One might think this would
be a perfect workaround for the broken debian libtool which stopped the
linker seeing -lgcov - but they strip CFLAGS as well. Oh well.
2008-09-17 22:24:17 +01:00
Chris Wilson
85a4f0dcee Workaround undefined functions required by rsvg & poppler.
If the native windowing system is disable (e.g. --disable-xlib) then the
test suite fails to build since the vector converters typically depend
upon gdk-pixbuf-2.0, which in turn depends upon a native gdk which
requires cairo to be built with support for the native windowing system. A
mess that should be resolved by separating rsvg and poppler into core and
higher-level libraries, but which we can workaround by simply ignoring
errors from undefined functions at link time.
2008-09-17 15:25:18 -04:00
Behdad Esfahbod
9e2ef481aa [configure.ac] Clean up report syntax 2008-09-16 19:45:02 -04:00
Behdad Esfahbod
2161cb5baf [configure.ac] Warn if no native surface backend is enabled, err if no native font 2008-09-16 19:45:02 -04:00
Behdad Esfahbod
88a3998a1d [aclocal] Fix pkgconfig file collection 2008-09-16 03:58:21 -04:00
Behdad Esfahbod
6892daf77c Create cairo-features-win32.h 2008-09-16 03:58:20 -04:00
Behdad Esfahbod
20daa425d8 [configure.ac] Generate boilerplate/Makefile.am.config
Same scheme as in src/
2008-09-16 03:58:19 -04:00
Behdad Esfahbod
eb092eadbb [configure] Add non-pkgconfig cflags/libs before substitution 2008-09-15 21:45:25 -04:00
Behdad Esfahbod
09d7eb6c35 [configure.ac.version] Quote m4_define arguments 2008-09-15 21:31:37 -04:00
Behdad Esfahbod
fb0bf16595 [aclocal] Don't use m4_defn
Apparently autoconf 2.59 on msys is not quite happy it
2008-09-15 19:21:03 -04:00
Behdad Esfahbod
879b5c7057 [aclocal] Move CAIRO_PARSE_VERSION to acinclude.m4
It belongs there as it includes other files.  It was breaking build
on older autoconf it seems.
2008-09-15 19:18:06 -04:00
Behdad Esfahbod
656b0e3ea7 [configure.ac] Avoid sed -i (#17563) 2008-09-15 19:17:27 -04:00
Behdad Esfahbod
bdb6f609d8 [configure.ac] Build -uninstalled.pc files 2008-09-15 18:03:50 -04:00
Behdad Esfahbod
93325a3f08 [configure.ac.enable] Cleanup Makefile.*.config generation 2008-09-11 19:12:31 -04:00
Behdad Esfahbod
66d6cb642c [Makefile.am.common] Unify more common rules 2008-09-11 18:06:57 -04:00
Behdad Esfahbod
694fee9e7c Update gtk-doc makefile fragment
Also move it to build/.

We still do not call gtkdocize from autogen.sh.
2008-09-11 16:38:12 -04:00
Behdad Esfahbod
de5b8bce37 Makefile.am cleanup
Use a common build/Makefile.am.common file.
2008-09-11 15:49:09 -04:00
Behdad Esfahbod
66f0d56a8a [aclocal.enable.m4] Escape shell arguments 2008-09-11 15:31:28 -04:00
Behdad Esfahbod
2b4a26f097 [configure.ac] Add CAIRO_BEGINEND_DECLS 2008-09-11 04:21:29 -04:00
Behdad Esfahbod
b7a838261b Move m4 macros into build/aclocal.*.m4 files 2008-09-11 04:17:43 -04:00
Behdad Esfahbod
ac6e4b83e7 [configure.ac.enable] Use AS_CASE 2008-09-11 03:45:51 -04:00
Behdad Esfahbod
7c4fdafc8c [configure.ac.enable] Add some dnl's 2008-09-11 03:30:25 -04:00
Behdad Esfahbod
c358abfb15 [configure.ac.enable] Implement accumulators 2008-09-11 03:08:15 -04:00
Behdad Esfahbod
1efb5e0810 [configure.ac.enable] Don't collect .pc files for builtin features 2008-09-11 01:15:01 -04:00
Behdad Esfahbod
391bef58fc Add support for always-builtin features in the build system
Like image surface and user fonts.
2008-09-11 00:38:30 -04:00
Behdad Esfahbod
4a01b1d9c9 Build -uninstalled.pc files 2008-09-11 00:38:30 -04:00
Behdad Esfahbod
a18c75c3e9 [configure.ac.enable] More fixes for private features
Don't expect pkgconfig files for them.  Also, don't give them a chance
to install public headers.
2008-09-11 00:38:30 -04:00
Behdad Esfahbod
771ff1a06e [configure.ac.enable] Don't collect .pc files in win32 Makefile
We only generate them using autotools.  No point.
2008-09-11 00:38:30 -04:00
Behdad Esfahbod
59fafcee8d [configure.ac.build] Keep private features private
For private features:

  - Don't list them in cairo-features.h;  Define them in config.h instead,
  - Don't generate/install a .pc file,
  - Don't warn if enabled.
2008-09-10 18:23:45 -04:00
Behdad Esfahbod
9016504e2a [configure.ac.enable] Don't report CFLAGS
It's long and not that useful.
2008-09-10 17:22:49 -04:00
Behdad Esfahbod
5e5a2b9da7 More fixes for pkgconfig files
Should all work now.
2008-09-10 12:41:57 -04:00
Behdad Esfahbod
95214e80a5 [configure.ac.enable] Fix warning messages 2008-09-10 12:19:21 -04:00
Behdad Esfahbod
9dd9289c4a Rename cairo-backend.pc.in to cairo-features.pc.in 2008-09-10 12:18:27 -04:00
Behdad Esfahbod
cf71e7c39b [configure.ac.enable] Actually install pkgconfig files
Oops.  Reported by Shunichi Fuji.
2008-09-10 12:15:20 -04:00
Behdad Esfahbod
a374b349bf [configure.ac.enable] Make feature hooks take an ENABLED argument
Simplifies code.
2008-09-08 15:02:56 -04:00
Behdad Esfahbod
cdee34c5b7 Back to using autoconf 2.58 2008-09-07 17:01:33 -04:00
Behdad Esfahbod
c3b05a796e [configure.ac.enable] Sanitize feature default value 2008-09-06 18:02:21 -04:00
Behdad Esfahbod
c881226afd [configure.ac.enable] Further break feature configuration hooks 2008-09-06 17:44:19 -04:00
Behdad Esfahbod
31b09965b7 [configure.ac.enable] Move macros around 2008-09-06 17:44:19 -04:00
Behdad Esfahbod
e19103e38d [configure.ac.enable] Redo cache invalidation to be automatic 2008-09-06 17:44:19 -04:00