* configure.bat: New option --with-svg.

* INSTALL: Document experimental SVG support.
This commit is contained in:
Jason Rumney 2009-01-03 12:57:28 +00:00
parent 3ac09bb4f7
commit 8bc63b1a23
3 changed files with 84 additions and 11 deletions

View file

@ -1,3 +1,9 @@
2009-01-03 Jason Rumney <jasonr@gnu.org>
* configure.bat: New option --with-svg.
* INSTALL: Document experimental SVG support.
2008-12-25 Jason Rumney <jasonr@gnu.org>
* config.nt: (PTR): Remove.

View file

@ -256,17 +256,18 @@
* Optional image library support
In addition to its "native" image formats (pbm and xbm), Emacs can
handle other image types: xpm, tiff, gif, png and jpeg (postscript is
currently unsupported on Windows). To build Emacs with support for
them, the corresponding headers must be in the include path when the
configure script is run. This can be setup using environment
variables, or by specifying --cflags -I... options on the command-line
to configure.bat. The configure script will report whether it was
able to detect the headers. If the results of this testing appear to be
incorrect, please look for details in the file config.log: it will show
the failed test programs and compiler error messages that should explain
what is wrong. (Usually, any such failures happen because some headers
are missing due to bad packaging of the image support libraries.)
handle other image types: xpm, tiff, gif, png, jpeg and experimental
support for svg (postscript is currently unsupported on Windows).
To build Emacs with support for them, the corresponding headers must
be in the include path when the configure script is run. This can
be setup using environment variables, or by specifying --cflags
-I... options on the command-line to configure.bat. The configure
script will report whether it was able to detect the headers. If
the results of this testing appear to be incorrect, please look for
details in the file config.log: it will show the failed test
programs and compiler error messages that should explain what is
wrong. (Usually, any such failures happen because some headers are
missing due to bad packaging of the image support libraries.)
To use the external image support, the DLLs implementing the
functionality must be found when Emacs first needs them, either on the
@ -298,6 +299,41 @@
If GTK 2.0 is installed, addpm will arrange for its image libraries
to be on the DLL search path for Emacs.
* Experimental SVG support
SVG support is currently experimental, and not built by default.
Specify --with-svg and ensure you have all the dependencies in your
include path. Unless you have built a minimalist librsvg yourself
(untested), librsvg depends on a significant chunk of GTK+ to build,
plus a few Gnome libraries, libxml2, libbz2 and zlib at runtime. The
easiest way to obtain the dependencies required for building is to
download a pre-bundled GTK+ development environment for Windows.
GTK puts its header files all over the place, so you will need to
run pkgconfig to list the include path you will need (either passed
to configure.bat as --cflags options, or set in the environment).
To use librsvg at runtime, ensure that librsvg and its dependencies
are on your PATH. If you didn't build librsvg yourself, you will
need to check with where you downloaded it from for the
dependencies, as there are different build options. If it is a
short list, then it most likely only lists the immediate
dependencies of librsvg, but the dependencies themselves have
dependencies - so don't download individual libraries from GTK+,
download and install the whole thing. If you think you've got all
the dependencies and SVG support is still not working, check your
PATH for other libraries that shadow the ones you downloaded.
Libraries of the same name from different sources may not be
compatible, this problem was encountered with libbzip2 from GnuWin32
with libcroco from gnome.org.
If you can see etc/images/splash.svg, then you have managed to get
SVG support working. Congratulations for making it through DLL hell
to this point. You'll probably find that some SVG images crash
Emacs. Problems have been observed in some images that contain
text, they seem to be a problem in the Windows port of Pango, or
maybe a problem with the way Cairo or librsvg is using it that
doesn't show up on other platforms.
* Building
After running configure, simply run the appropriate `make' program for

View file

@ -109,6 +109,7 @@ if "%1" == "--without-jpeg" goto withoutjpeg
if "%1" == "--without-gif" goto withoutgif
if "%1" == "--without-tiff" goto withouttiff
if "%1" == "--without-xpm" goto withoutxpm
if "%1" == "--with-svg" goto withsvg
if "%1" == "" goto checkutils
:usage
echo Usage: configure [options]
@ -127,6 +128,7 @@ echo. --without-jpeg do not use JPEG library even if it is installed
echo. --without-gif do not use GIF library even if it is installed
echo. --without-tiff do not use TIFF library even if it is installed
echo. --without-xpm do not use XPM library even if it is installed
echo. --with-svg use the RSVG library (experimental)
goto end
rem ----------------------------------------------------------------------
:setprefix
@ -218,6 +220,11 @@ set HAVE_XPM=
shift
goto again
:withsvg
shift
set svgsupport=Y
goto again
rem ----------------------------------------------------------------------
rem Check that necessary utilities (cp and rm) are present.
:checkutils
@ -482,6 +489,28 @@ echo ...XPM header available, building with XPM support.
set HAVE_XPM=1
:xpmDone
rm -f junk.c junk.obj
if not (%svgsupport%) == (Y) goto :svgDone
echo Checking for librsvg...
echo #include "librsvg/rsvg.h" >junk.c
echo main (){} >>junk.c
rem -o option is ignored with cl, but allows result to be consistent.
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
if exist junk.obj goto haveSvg
echo ...librsvg/rsvg.h or dependencies not found, building without SVG support.
echo The failed program was: >>config.log
type junk.c >>config.log
set HAVE_RSVG=
goto :svgDone
:haveSvg
echo ...librsvg header available, building with SVG support (EXPERIMENTAL).
set HAVE_RSVG=1
:svgDone
rm -f junk.c junk.obj junk.err junk.out
rem ----------------------------------------------------------------------
@ -522,6 +551,8 @@ if not "(%HAVE_JPEG%)" == "()" echo #define HAVE_JPEG 1 >>config.tmp
if not "(%HAVE_GIF%)" == "()" echo #define HAVE_GIF 1 >>config.tmp
if not "(%HAVE_TIFF%)" == "()" echo #define HAVE_TIFF 1 >>config.tmp
if not "(%HAVE_XPM%)" == "()" echo #define HAVE_XPM 1 >>config.tmp
if "(%HAVE_RSVG%)" == "(1)" echo #define HAVE_RSVG 1 >>config.tmp
echo /* End of settings from configure.bat. */ >>config.tmp
Rem See if fc.exe returns a meaningful exit status. If it does, we