Commit graph

92 commits

Author SHA1 Message Date
Behdad Esfahbod
5beae8f530 [Makefile.am.releasing] Make 'make snapshot' print a banner when done
Copied from "make distcheck" implementation.  Prints something like:

=============================================================
cairo-1.8.1-20081006-38de89 archives ready for distribution:
cairo-1.8.1-20081006-38de89.tar.gz
=============================================================
2008-10-06 12:46:41 -04:00
Behdad Esfahbod
2fb7753903 [Makefile.am.releasing] Exclude uid/gid from tarball
By setting GNU tar options --owner=0 --group=0
2008-10-06 11:40:34 -04:00
Behdad Esfahbod
e76432f754 [win32] Use -MDd and -LDd instead of -MD and -LD for debug build
As reported by Damian Frank:

"I ran into a hitch with the Makefile.win32 infrastructure.  It uses -MD and
-LD when linking regardless of the config, but it should be using -MDd and
-LDd for the debug config.  I believe both the Makefile.win32.common and
src/Makefile.win32 files include erroneous declarations.  This produces
warnings at link time about a mismatch when linking against properly created
debug libs (for instance, I had a zlib built as "LIB ASM Debug" that linked
properly against the debug runtime).

This problem applies to pixman too; can you pass this along to the
maintainer?"

Would be delighted to if someone commits a fix to pixman reading this
commit message.
2008-10-04 00:35:43 -04:00
Behdad Esfahbod
d5a998387b Add an internal font face
The font data and rendering is adapted from Keith Packard's Twin
window system.  The hinting stuff is not ported yet, but hey, it renders!

The implementation uses user fonts, and the user font backend is modified
to use this font face (which we call "twin" font face internally) when
a toy font is needed.

The font face layer is then modified to use this font if:

  - The toy font face "cairo" is asked for, or

  - No native font backend is available, or

  - The preferred native font backend fails to return a font with
    STATUS_UNSUPPORTED.  No font backend does this right now but
    the idea is to change FreeType to return it if no fonts found
    on the system.

We also allow building with no font backends now!

The new doc/tutorial/src/twin.c file tests the twin face at various
sizes.
2008-09-25 19:25:11 -04:00
Carl Worth
9335ad313f Ignore generated files.
I know that I didn't create these Makefile.win32.features files,
so I assume that they are the result of Behdad's build magic and
that he just forgot to add them to .gitignore.
2008-09-24 16:20:35 -07:00
Behdad Esfahbod
9fc745ae9f Revert "[build] Use mkdir -p portability macros"
This reverts commit 03c37f56b2.

The AC_PROG_MKDIR_P is also one of those autoconf macros defined
in newer versions only.  Since we use mkdir -p in releasing scripts
only, it's not a big deal if it's not portable.
2008-09-24 13:18:12 -04:00
Behdad Esfahbod
03c37f56b2 [build] Use mkdir -p portability macros 2008-09-23 17:15:07 -04:00
Behdad Esfahbod
5a3f03623c [Makefile.win32] Add comments about where to edit for customization 2008-09-23 04:11:48 -04:00
Behdad Esfahbod
fba0211ed6 [Makefile.win32] Add makefile rules to generate cairo-features.h 2008-09-22 23:41:07 -04:00
Behdad Esfahbod
0bedbe78fe [Makefile.win32] Misc cleanup 2008-09-22 22:46:05 -04:00
Behdad Esfahbod
ebb5eb57b7 Generate build/Makefile.win32.features 2008-09-22 22:24:38 -04:00
Behdad Esfahbod
fd5cef50a7 [aclocal] Add support for automake-only or win32-only makefiles 2008-09-22 20:48:14 -04:00
Behdad Esfahbod
42e4103015 [aclocal] Don't do automake conditionals for builtin features 2008-09-22 20:33:23 -04:00
Behdad Esfahbod
79bc967a0d [build] Make including Makefile.win32.features files more robust
By using top_srcdir if available.  Make's include is relative to
current dir, not the Makefile being processed.  That makes it hard
to include Makefile's relatively.
2008-09-22 20:20:02 -04:00
Behdad Esfahbod
e686a00da8 [build] Add CAIRO_CONFIG_MAKEFILE_PRIVATE 2008-09-22 20:11:39 -04:00
Behdad Esfahbod
0ac7a242f8 [build] Add Makefile.win32.common 2008-09-22 20:11:38 -04:00
Behdad Esfahbod
984320dff1 [build] Don't define feature variables in Makefile.win32.features
This is not the right place to do that as one also needs to adjust
cairo-features.h.  Working on a proper fix.
2008-09-22 20:11:32 -04:00
Behdad Esfahbod
eb9ce58059 [build] Don't generate Makefile conditionals for default=always features 2008-09-22 19:23:41 -04:00
Behdad Esfahbod
caa3dbd61b [build] Make Makefile.*.features files more readable
By inserting a new line before each feature entry.
2008-09-22 19:15:05 -04:00
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