]>
Commit | Line | Data |
---|---|---|
1 | dnl | |
2 | dnl $Id$ | |
3 | dnl | |
4 | dnl Copyright © 2003 Keith Packard | |
5 | dnl | |
6 | dnl Permission to use, copy, modify, distribute, and sell this software and its | |
7 | dnl documentation for any purpose is hereby granted without fee, provided that | |
8 | dnl the above copyright notice appear in all copies and that both that | |
9 | dnl copyright notice and this permission notice appear in supporting | |
10 | dnl documentation, and that the name of Keith Packard not be used in | |
11 | dnl advertising or publicity pertaining to distribution of the software without | |
12 | dnl specific, written prior permission. Keith Packard makes no | |
13 | dnl representations about the suitability of this software for any purpose. It | |
14 | dnl is provided "as is" without express or implied warranty. | |
15 | dnl | |
16 | dnl KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, | |
17 | dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO | |
18 | dnl EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR | |
19 | dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, | |
20 | dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER | |
21 | dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | |
22 | dnl PERFORMANCE OF THIS SOFTWARE. | |
23 | dnl | |
24 | dnl Process this file with autoconf to create configure. | |
25 | ||
26 | AC_INIT(fonts.dtd) | |
27 | ||
28 | dnl ========================================================================== | |
29 | dnl Versioning | |
30 | dnl ========================================================================== | |
31 | ||
32 | dnl This is the package version number, not the shared library | |
33 | dnl version. This same version number must appear in fontconfig/fontconfig.h | |
34 | dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's | |
35 | dnl not possible to extract the version number here from fontconfig.h | |
36 | AM_INIT_AUTOMAKE(fontconfig, 2.2.98) | |
37 | AM_MAINTAINER_MODE | |
38 | ||
39 | dnl libtool versioning | |
40 | ||
41 | LT_CURRENT=1 | |
42 | LT_REVISION=4 | |
43 | AC_SUBST(LT_CURRENT) | |
44 | AC_SUBST(LT_REVISION) | |
45 | LT_AGE=0 | |
46 | ||
47 | LT_VERSION_INFO="$LT_CURRENT:$LT_REVISION:$LT_AGE" | |
48 | AC_SUBST(LT_VERSION_INFO) | |
49 | ||
50 | LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` | |
51 | AC_SUBST(LT_CURRENT_MINUS_AGE) | |
52 | ||
53 | dnl ========================================================================== | |
54 | ||
55 | AM_CONFIG_HEADER(config.h) | |
56 | ||
57 | AC_PROG_CC | |
58 | AC_PROG_INSTALL | |
59 | AC_PROG_LN_S | |
60 | AC_LIBTOOL_WIN32_DLL | |
61 | AM_PROG_LIBTOOL | |
62 | AC_PROG_MAKE_SET | |
63 | ||
64 | dnl ========================================================================== | |
65 | ||
66 | case "$host" in | |
67 | *-*-mingw*) | |
68 | os_win32=yes | |
69 | ;; | |
70 | *) | |
71 | os_win32=no | |
72 | esac | |
73 | AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes") | |
74 | ||
75 | if test "$os_win32" = "yes"; then | |
76 | AC_CHECK_PROG(ms_librarian, lib.exe, yes, no) | |
77 | fi | |
78 | AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes) | |
79 | ||
80 | WARN_CFLAGS="" | |
81 | ||
82 | if test "x$GCC" = "xyes"; then | |
83 | WARN_CFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes \ | |
84 | -Wmissing-prototypes -Wmissing-declarations \ | |
85 | -Wnested-externs -fno-strict-aliasing" | |
86 | fi | |
87 | AC_SUBST(WARN_CFLAGS) | |
88 | ||
89 | dnl ========================================================================== | |
90 | ||
91 | AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes) | |
92 | ||
93 | dnl ========================================================================== | |
94 | ||
95 | # Setup for compiling build tools (fc-glyphname, etc) | |
96 | AC_MSG_CHECKING([for a C compiler for build tools]) | |
97 | if test $cross_compiling = yes; then | |
98 | AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc) | |
99 | else | |
100 | CC_FOR_BUILD=$CC | |
101 | fi | |
102 | AC_MSG_RESULT([$CC_FOR_BUILD]) | |
103 | AC_SUBST(CC_FOR_BUILD) | |
104 | ||
105 | AC_MSG_CHECKING([for suffix of executable build tools]) | |
106 | if test $cross_compiling = yes; then | |
107 | cat >conftest.c <<\_______EOF | |
108 | int | |
109 | main () | |
110 | { | |
111 | exit (0); | |
112 | } | |
113 | _______EOF | |
114 | for i in .exe ""; do | |
115 | compile="$CC_FOR_BUILD conftest.c -o conftest$i" | |
116 | if AC_TRY_EVAL(compile); then | |
117 | if (./conftest) 2>&AC_FD_CC; then | |
118 | EXEEXT_FOR_BUILD=$i | |
119 | break | |
120 | fi | |
121 | fi | |
122 | done | |
123 | rm -f conftest* | |
124 | if test "${EXEEXT_FOR_BUILD+set}" != set; then | |
125 | AC_MSG_ERROR([Cannot determine suffix of executable build tools]) | |
126 | fi | |
127 | else | |
128 | EXEEXT_FOR_BUILD=$EXEEXT | |
129 | fi | |
130 | AC_MSG_RESULT([$EXEEXT_FOR_BUILD]) | |
131 | AC_SUBST(EXEEXT_FOR_BUILD) | |
132 | ||
133 | dnl ========================================================================== | |
134 | ||
135 | # Checks for header files. | |
136 | AC_HEADER_DIRENT | |
137 | AC_HEADER_STDC | |
138 | AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h iconv.h]) | |
139 | ||
140 | # Checks for typedefs, structures, and compiler characteristics. | |
141 | AC_C_CONST | |
142 | AC_TYPE_PID_T | |
143 | ||
144 | # Checks for library functions. | |
145 | AC_FUNC_VPRINTF | |
146 | AC_CHECK_FUNCS([geteuid getuid link memmove memset mkstemp strchr strrchr strtol getopt getopt_long iconv]) | |
147 | ||
148 | # | |
149 | # Checks for FreeType | |
150 | # | |
151 | ||
152 | AC_ARG_WITH(freetype-config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes) | |
153 | ||
154 | if test "$freetype_config" = "yes"; then | |
155 | AC_PATH_PROG(ft_config,freetype-config,no) | |
156 | if test "$ft_config" = "no"; then | |
157 | AC_MSG_ERROR([You must have freetype installed; see http://www.freetype.org/]) | |
158 | fi | |
159 | else | |
160 | ft_config="$freetype_config" | |
161 | fi | |
162 | ||
163 | FREETYPE_CFLAGS="`$ft_config --cflags`" | |
164 | FREETYPE_LIBS="`$ft_config --libs`" | |
165 | ||
166 | AC_SUBST(FREETYPE_LIBS) | |
167 | AC_SUBST(FREETYPE_CFLAGS) | |
168 | ||
169 | # | |
170 | # Check to see whether we have: | |
171 | # FT_Get_Next_Char | |
172 | # FT_Get_BDF_Property | |
173 | # FT_Get_PS_Font_Info | |
174 | # FT_Has_PS_Glyph_Names | |
175 | # | |
176 | ||
177 | fontconfig_save_libs="$LIBS" | |
178 | fontconfig_save_cflags="$CFLAGS" | |
179 | LIBS="$LIBS $FREETYPE_LIBS" | |
180 | CFLAGS="$CFLAGS $FREETYPE_CFLAGS" | |
181 | AC_CHECK_FUNCS(FT_Get_Next_Char FT_Get_BDF_Property FT_Get_PS_Font_Info FT_Has_PS_Glyph_Names FT_Get_X11_Font_Format) | |
182 | AC_CHECK_MEMBER(FT_Bitmap_Size.y_ppem, | |
183 | HAVE_FT_BITMAP_SIZE_Y_PPEM=1, | |
184 | HAVE_FT_BITMAP_SIZE_Y_PPEM=0, | |
185 | [#include <ft2build.h> | |
186 | #include FT_FREETYPE_H]) | |
187 | AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,$HAVE_FT_BITMAP_SIZE_Y_PPEM, | |
188 | [FT_Bitmap_Size structure includes y_ppem field]) | |
189 | CFLAGS="$fontconfig_save_cflags" | |
190 | LIBS="$fontconfig_save_libs" | |
191 | ||
192 | # | |
193 | # Check expat configuration | |
194 | # | |
195 | ||
196 | AC_ARG_WITH(expat, [ --with-expat=DIR Use Expat in DIR], expat=$withval, expat=yes) | |
197 | AC_ARG_WITH(expat-includes, [ --with-expat-includes=DIR Use Expat includes in DIR], expat_includes=$withval, expat_includes=yes) | |
198 | AC_ARG_WITH(expat-lib, [ --with-expat-lib=DIR Use Expat library in DIR], expat_lib=$withval, expat_lib=yes) | |
199 | ||
200 | case "$expat" in | |
201 | no) | |
202 | ;; | |
203 | *) | |
204 | case "$expat_includes" in | |
205 | yes|no) | |
206 | EXPAT_CFLAGS="" | |
207 | ;; | |
208 | *) | |
209 | EXPAT_CFLAGS="-I$expat_includes" | |
210 | ;; | |
211 | esac | |
212 | case "$expat_lib" in | |
213 | yes) | |
214 | case "$expat" in | |
215 | yes) | |
216 | EXPAT_LIBS="-lexpat" | |
217 | ;; | |
218 | *) | |
219 | EXPAT_LIBS="-L$expat/lib -lexpat" | |
220 | ;; | |
221 | esac | |
222 | ;; | |
223 | no) | |
224 | ;; | |
225 | *) | |
226 | EXPAT_LIBS="-L$expat_lib -lexpat" | |
227 | ;; | |
228 | esac | |
229 | ||
230 | expatsaved_CPPFLAGS="$CPPFLAGS" | |
231 | CPPFLAGS="$CPPFLAGS $EXPAT_CFLAGS" | |
232 | expatsaved_LIBS="$LIBS" | |
233 | LIBS="$LIBS $EXPAT_LIBS" | |
234 | ||
235 | AC_CHECK_HEADER(expat.h) | |
236 | case "$ac_cv_header_expat_h" in | |
237 | no) | |
238 | AC_CHECK_HEADER(xmlparse.h) | |
239 | case "$ac_cv_header_xmlparse_h" in | |
240 | no) | |
241 | have_expat_header=no; | |
242 | ;; | |
243 | yes) | |
244 | HAVE_XMLPARSE_H=1 | |
245 | AC_SUBST(HAVE_XMLPARSE_H) | |
246 | AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H, | |
247 | [Use xmlparse.h instead of expat.h]) | |
248 | have_expat_header=yes | |
249 | ;; | |
250 | esac | |
251 | ;; | |
252 | yes) | |
253 | have_expat_header=yes | |
254 | ;; | |
255 | esac | |
256 | case "$have_expat_header" in | |
257 | no) | |
258 | expat=no | |
259 | ;; | |
260 | yes) | |
261 | AC_CHECK_FUNCS(XML_SetDoctypeDeclHandler) | |
262 | case "$ac_cv_func_XML_SetDoctypeDeclHandler" in | |
263 | yes) | |
264 | HAVE_EXPAT=1 | |
265 | AC_SUBST(HAVE_EXPAT) | |
266 | AC_DEFINE_UNQUOTED(HAVE_EXPAT,$HAVE_EXPAT, | |
267 | [Found a useable expat library]) | |
268 | ;; | |
269 | *) | |
270 | expat=no | |
271 | ;; | |
272 | esac | |
273 | ;; | |
274 | esac | |
275 | CPPFLAGS="$expatsaved_CPPFLAGS" | |
276 | LIBS="$expatsaved_LIBS" | |
277 | ;; | |
278 | esac | |
279 | AC_SUBST(EXPAT_LIBS) | |
280 | AC_SUBST(EXPAT_CFLAGS) | |
281 | ||
282 | case "$expat" in | |
283 | no) | |
284 | AC_MSG_ERROR([Cannot find usable expat library. This could mean that your version is too old.]) | |
285 | ;; | |
286 | esac | |
287 | ||
288 | # | |
289 | # Set default font directory | |
290 | # | |
291 | ||
292 | AC_ARG_WITH(default-fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], default_fonts="$withval", default_fonts=yes) | |
293 | ||
294 | case "$default_fonts" in | |
295 | yes) | |
296 | if test "$os_win32" = "yes"; then | |
297 | FC_DEFAULT_FONTS="WINDOWSFONTDIR" | |
298 | AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "WINDOWSFONTDIR", | |
299 | [Windows font directory]) | |
300 | else | |
301 | FC_DEFAULT_FONTS="/usr/share/fonts" | |
302 | AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts", | |
303 | [System font directory]) | |
304 | fi | |
305 | ;; | |
306 | *) | |
307 | FC_DEFAULT_FONTS="$default_fonts" | |
308 | AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts", | |
309 | [System font directory]) | |
310 | ;; | |
311 | esac | |
312 | ||
313 | AC_SUBST(FC_DEFAULT_FONTS) | |
314 | ||
315 | # | |
316 | # Add more fonts if available. By default, add only the directories | |
317 | # with outline fonts; those with bitmaps can be added as desired in | |
318 | # local.conf or ~/.fonts.conf | |
319 | # | |
320 | AC_ARG_WITH(add-fonts, [ --with-add-fonts=DIR1,DIR2,...Find additional fonts in DIR1,DIR2,... ], add_fonts="$withval", add_fonts=yes) | |
321 | ||
322 | case "$add_fonts" in | |
323 | yes) | |
324 | FC_ADD_FONTS="" | |
325 | for dir in /usr/X11R6/lib/X11 /usr/X11/lib/X11 /usr/lib/X11; do | |
326 | case x"$FC_ADD_FONTS" in | |
327 | x) | |
328 | sub="$dir/fonts" | |
329 | if test -d "$sub"; then | |
330 | case x$FC_ADD_FONTS in | |
331 | x) | |
332 | FC_ADD_FONTS="$sub" | |
333 | ;; | |
334 | *) | |
335 | FC_ADD_FONTS="$FC_ADD_FONTS,$sub" | |
336 | ;; | |
337 | esac | |
338 | fi | |
339 | ;; | |
340 | esac | |
341 | done | |
342 | AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories]) | |
343 | ;; | |
344 | no) | |
345 | FC_ADD_FONTS="" | |
346 | ;; | |
347 | *) | |
348 | FC_ADD_FONTS="$add_fonts" | |
349 | AC_DEFINE_UNQUOTED(FC_ADD_FONTS,"$add_fonts",[Additional font directories]) | |
350 | ;; | |
351 | esac | |
352 | ||
353 | AC_SUBST(FC_ADD_FONTS) | |
354 | ||
355 | FC_FONTPATH="" | |
356 | ||
357 | case "$FC_ADD_FONTS" in | |
358 | "") | |
359 | ;; | |
360 | *) | |
361 | FC_FONTPATH=`echo $FC_ADD_FONTS | | |
362 | sed -e 's/^/<dir>/' -e 's/$/<\/dir>/' -e 's/,/<\/dir> <dir>/g'` | |
363 | ;; | |
364 | esac | |
365 | ||
366 | AC_SUBST(FC_FONTPATH) | |
367 | ||
368 | FC_FONTDATE=`LC_ALL=C date` | |
369 | ||
370 | AC_SUBST(FC_FONTDATE) | |
371 | ||
372 | AC_ARG_WITH(confdir, [ --with-confdir=DIR Use DIR to store configuration files (default /etc/fonts)], confdir="$withval", confdir=yes) | |
373 | ||
374 | # | |
375 | # Set CONFDIR and FONTCONFIG_PATH | |
376 | # | |
377 | ||
378 | case "$confdir" in | |
379 | no|yes) | |
380 | confdir='${sysconfdir}'/fonts | |
381 | ;; | |
382 | *) | |
383 | ;; | |
384 | esac | |
385 | AC_SUBST(confdir) | |
386 | CONFDIR=${confdir} | |
387 | AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR",[Font configuration directory]) | |
388 | AC_SUBST(CONFDIR) | |
389 | ||
390 | # | |
391 | # Find out what language orthographies are included | |
392 | # | |
393 | ||
394 | ORTH_FILES=`cd ${srcdir}/fc-lang && echo *.orth` | |
395 | AC_SUBST(ORTH_FILES) | |
396 | ||
397 | # | |
398 | # Let people not build/install docs if they don't have docbook | |
399 | # | |
400 | ||
401 | AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no) | |
402 | ||
403 | AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes) | |
404 | ||
405 | default_docs="yes" | |
406 | # | |
407 | # Check if docs exist or can be created | |
408 | # | |
409 | if test x$HASDOCBOOK = xno; then | |
410 | if test -f doc/fonts-conf.5; then | |
411 | : | |
412 | else | |
413 | default_docs="no" | |
414 | fi | |
415 | fi | |
416 | ||
417 | AC_ARG_ENABLE(docs, [ --disable-docs Don't build and install documentation],,enable_docs=$default_docs) | |
418 | ||
419 | AM_CONDITIONAL(ENABLE_DOCS, test "x$enable_docs" = xyes) | |
420 | ||
421 | if test "x$enable_docs" = xyes; then | |
422 | DOCSRC="doc" | |
423 | tmp=funcs.$$ | |
424 | cat $srcdir/doc/*.fncs | awk ' | |
425 | /^@TITLE@/ { if (!done) { printf ("%s\n", $2); done = 1; } } | |
426 | /^@FUNC@/ { if (!done) { printf ("%s\n", $2); done = 1; } } | |
427 | /^@@/ { done = 0; }' > $tmp | |
428 | DOCMAN3=`cat $tmp | awk '{ printf ("%s.3 ", $1); }'` | |
429 | echo DOCMAN3 $DOCMAN3 | |
430 | rm -f $tmp | |
431 | else | |
432 | DOCSRC="" | |
433 | DOCMAN3="" | |
434 | fi | |
435 | ||
436 | AC_SUBST(DOCSRC) | |
437 | AC_SUBST(DOCMAN3) | |
438 | ||
439 | # | |
440 | # Figure out where to install documentation | |
441 | # | |
442 | ||
443 | AC_ARG_WITH(docdir, [ --with-docdir=DIR Use DIR to store documentation files (default ${datadir}/doc/fontconfig)], confdir="$withval") | |
444 | ||
445 | if test "x$with_docdir" = "x" ; then | |
446 | DOCDIR='${datadir}/doc/fontconfig' | |
447 | else | |
448 | DOCDIR=$with_docdir | |
449 | fi | |
450 | ||
451 | AC_SUBST(DOCDIR) | |
452 | ||
453 | AC_OUTPUT([ | |
454 | Makefile | |
455 | fontconfig/Makefile | |
456 | fc-lang/Makefile | |
457 | fc-glyphname/Makefile | |
458 | fc-case/Makefile | |
459 | src/Makefile | |
460 | src/fontconfig.def | |
461 | fc-cache/Makefile | |
462 | fc-list/Makefile | |
463 | fc-match/Makefile | |
464 | doc/Makefile | |
465 | doc/version.sgml | |
466 | test/Makefile | |
467 | fontconfig.spec | |
468 | fontconfig.pc | |
469 | fonts.conf | |
470 | fontconfig-zip | |
471 | ]) |