]> git.wh0rd.org - fontconfig.git/blob - configure.in
Fix autoconf build BSD install and sysconfdir problems
[fontconfig.git] / configure.in
1 dnl
2 dnl $XFree86: xc/lib/fontconfig/configure.in,v 1.6 2002/06/07 17:55:41 keithp Exp $
3 dnl
4 dnl Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
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
25 # Process this file with autoconf to produce a configure script.
26 AC_INIT(fontconfig, 1.0.1, fonts@xfree86.org)
27 AC_CONFIG_AUX_DIR(config)
28 AC_CONFIG_HEADER(config.h)
29
30 AC_ARG_WITH(freetype_includes, [ --with-freetype-includes=DIR Use FreeType includes in DIR], freetype_includes=$withval, freetype_includes=yes)
31 AC_ARG_WITH(freetype_lib, [ --with-freetype-lib=DIR Use FreeType library in DIR], freetype_lib=$withval, freetype_lib=yes)
32 AC_ARG_WITH(freetype_config, [ --with-freetype-config=PROG Use FreeType configuration program PROG], freetype_config=$withval, freetype_config=yes)
33 AC_ARG_WITH(expat, [ --with-expat=DIR Use Expat in DIR instead of xml2], expat=$withval, expat=maybe)
34 AC_ARG_WITH(expat_includes, [ --with-expat-includes=DIR Use Expat includes in DIR], expat_includes=$withval, expat_includes=yes)
35 AC_ARG_WITH(expat_lib, [ --with-expat-lib=DIR Use Expat library in DIR], expat_lib=$withval, expat_lib=yes)
36 AC_ARG_WITH(xml2, [ --with-xml2=DIR Use Libxml2 in DIR instead of expat], xml2=$withval, xml2=maybe)
37 AC_ARG_WITH(xml2_includes, [ --with-xml2-includes=DIR Use Libxml2 includes in DIR], xml2_includes=$withval, xml2_includes=yes)
38 AC_ARG_WITH(xml2_lib, [ --with-xml2-lib=DIR Use Libxml2 library in DIR], xml2_lib=$withval, xml2_lib=yes)
39 AC_ARG_WITH(default_fonts, [ --with-default-fonts=DIR Use fonts from DIR when config is busted], defaultfonts="$withval", default_fonts=yes)
40
41 # Checks for programs.
42 AC_PROG_CC
43 AC_PROG_INSTALL
44 AC_PROG_LN_S
45 AC_PATH_X
46
47 PACKAGE_VERSION=1.0.1
48
49 # Set major version
50 PACKAGE_MAJOR=`echo $PACKAGE_VERSION | awk -F . '{ print $1 }'`
51 PACKAGE_MINOR=`echo $PACKAGE_VERSION | awk -F . '{ print $2 }'`
52 PACKAGE_REVISION=`echo $PACKAGE_VERSION | awk -F . '{ print $3 }'`
53 AC_SUBST(PACKAGE_VERSION)
54 AC_SUBST(PACKAGE_MAJOR)
55 AC_SUBST(PACKAGE_MINOR)
56 AC_SUBST(PACKAGE_REVISION)
57
58 OBJEXT="o"
59 AC_SUBST(OBJEXT)
60
61 AC_DEFINE_UNQUOTED(PACKAGE_MAJOR,$PACKAGE_MAJOR)
62 AC_DEFINE_UNQUOTED(PACKAGE_MINOR,$PACKAGE_MINOR)
63 AC_DEFINE_UNQUOTED(PACKAGE_REVISION,$PACKAGE_REVISION)
64
65 # Checks for header files.
66 AC_HEADER_DIRENT
67 AC_HEADER_STDC
68 AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h])
69
70 # Checks for typedefs, structures, and compiler characteristics.
71 AC_C_CONST
72 AC_TYPE_PID_T
73
74 # Checks for library functions.
75 AC_FUNC_VPRINTF
76 AC_CHECK_FUNCS([memmove memset strchr strrchr strtol getopt getopt_long])
77
78 if test "$GCC" = "yes"; then
79 MKSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
80 DSO_LDOPTS='-shared -Wl,-h,`echo $@ | sed '"'s/\.so\.\([[0-9][0-9]]*\).*/.so.\1/'"'`'
81 DSO_CFLAGS=''
82 DSO_PIC_CFLAGS='-fPIC -DPIC'
83 else
84 AC_CANONICAL_HOST
85
86 MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
87 DSO_CFLAGS=''
88 DSO_PIC_CFLAGS='-KPIC -DPIC'
89
90 case "$host" in
91 *solaris*)
92 DSO_LDOPTS='-G -z text -z defs -h $@'
93 LIBS="$LIBS -lc"
94 ;;
95 *)
96 DSO_LDOPTS='-shared -h $@'
97 ;;
98 esac
99 fi
100
101 AC_SUBST(MKSHLIB)
102 AC_SUBST(DSO_LDOPTS)
103 AC_SUBST(DSO_CFLAGS)
104 AC_SUBST(DSO_PIC_CFLAGS)
105
106 #
107 # Using x libraries, set X font directory
108 case "$no_x" in
109 yes)
110 ;;
111 *)
112 X_FONT_DIR="$x_libraries/X11/fonts"
113 AC_DEFINE_UNQUOTED(X_FONT_DIR,$X_FONT_DIR)
114 ;;
115 esac
116 AC_SUBST(X_FONT_DIR)
117
118 #
119 # Check freetype configuration
120 #
121 case "$freetype_config" in
122 no)
123 ;;
124 yes)
125 AC_CHECK_PROG(ft_config,freetype-config,freetype-config,no)
126 ;;
127 *)
128 ft_config="$freetype_config"
129 ;;
130 esac
131
132 case "$freetype_includes" in
133 no)
134 FREETYPE_CFLAGS=""
135 ;;
136 yes)
137 case "$ft_config" in
138 no)
139 FREETYPE_CFLAGS=""
140 ;;
141 *)
142 FREETYPE_CFLAGS="`$ft_config --cflags`"
143 ;;
144 esac
145 ;;
146 *)
147 FREETYPE_CFLAGS="-I$freetype_includes"
148 ;;
149 esac
150
151 case "$freetype_lib" in
152 no)
153 freetype_lib=""
154 ;;
155 yes)
156 case "$ft_config" in
157 no)
158 freetype_lib=""
159 ;;
160 *)
161 freetype_lib="`$ft_config --libs`"
162 ;;
163 esac
164 ;;
165 *)
166 freetype_lib="-L$freetype_lib -lfreetype"
167 ;;
168 esac
169
170 saved_LIBS="$LIBS"
171 LIBS="$LIBS $freetype_lib"
172 saved_CPPFLAGS="$CPPFLAGS"
173 CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"
174 AC_CHECK_HEADERS(freetype/freetype.h)
175
176 case "$ac_cv_header_freetype_freetype_h" in
177 no)
178 CPPFLAGS="$saved_CPPFLAGS"
179 LIBS="$saved_LIBS"
180 ;;
181 yes)
182 AC_CHECK_FUNCS(FT_Init_FreeType)
183 case "$ac_cv_func_FT_Init_FreeType" in
184 no)
185 CPPFLAGS="$saved_CPPFLAGS"
186 LIBS="$saved_LIBS"
187 ;;
188 yes)
189 AC_DEFINE(HAVE_FREETYPE)
190 AC_SUBST(FREETYPE_CFLAGS)
191 ;;
192 esac
193 ;;
194 esac
195
196 case "$default_fonts" in
197 yes)
198 FC_DEFAULT_FONTS="/usr/share/fonts"
199 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "/usr/share/fonts")
200 ;;
201 *)
202 FC_DEFAULT_FONTS="$default_fonts"
203 AC_DEFINE_UNQUOTED(FC_DEFAULT_FONTS, "$default_fonts")
204 ;;
205 esac
206
207 AC_SUBST(FC_DEFAULT_FONTS)
208
209 #
210 # Set CONFDIR and FONTCONFIG_PATH
211 #
212
213 CONFDIR="$sysconfdir/fonts"
214 AC_DEFINE_UNQUOTED(CONFDIR, "$CONFDIR")
215 AC_SUBST(CONFDIR)
216
217 FONTCONFIG_PATH="$CONFDIR"
218 AC_DEFINE_UNQUOTED(FONTCONFIG_PATH, "$CONFDIR")
219 AC_SUBST(FONTCONFIG_PATH)
220
221 #
222 # Check expat/libxml2 configuration
223 #
224
225 case "$expat" in
226 maybe)
227 ;;
228 no)
229 xml2=yes
230 ;;
231 *)
232 xml2=no
233 ;;
234 esac
235
236 case "$xml2" in
237 maybe)
238 ;;
239 no)
240 expat=yes
241 ;;
242 *)
243 expat=no
244 ;;
245 esac
246
247 case "$expat" in
248 no)
249 ;;
250 *)
251 case "$expat_includes" in
252 yes|no)
253 expat_include_path=""
254 ;;
255 *)
256 expat_include_path="-I$expat_includes"
257 ;;
258 esac
259 case "$expat_lib" in
260 yes)
261 case "$expat" in
262 yes|maybe)
263 expat_library="-lexpat"
264 ;;
265 *)
266 expat_library="-L$expat/lib -lexpat"
267 ;;
268 esac
269 ;;
270 no)
271 ;;
272 *)
273 expat_library="-L$expat_lib -lexpat"
274 ;;
275 esac
276
277 saved_CPPFLAGS="$CPPFLAGS"
278 CPPFLAGS="$CPPFLAGS $expat_include_path"
279 saved_LIBS="$LIBS"
280 LIBS="$LIBS $expat_library"
281
282 AC_CHECK_HEADER(expat.h)
283 case "$ac_cv_header_expat_h" in
284 no)
285 AC_CHECK_HEADER(xmlparse.h)
286 case "$ac_cv_header_xmlparse_h" in
287 no)
288 have_expat_header=no;
289 ;;
290 yes)
291 HAVE_XMLPARSE_H=1
292 AC_SUBST(HAVE_XMLPARSE_H)
293 AC_DEFINE_UNQUOTED(HAVE_XMLPARSE_H,$HAVE_XMLPARSE_H)
294 have_expat_header=yes
295 ;;
296 esac
297 ;;
298 yes)
299 have_expat_header=yes
300 ;;
301 esac
302 case "$have_expat_header" in
303 no)
304 CPPFLAGS="$saved_CPPFLAGS"
305 LIBS="$saved_LIBS"
306 expat=no
307 ;;
308 yes)
309 AC_CHECK_FUNCS(XML_ParserCreate)
310 case "$ac_cv_func_XML_ParserCreate" in
311 no)
312 CPPFLAGS="$saved_CPPFLAGS"
313 LIBS="$saved_LIBS"
314 expat=no
315 ;;
316 yes)
317 HAVE_EXPAT=1
318 AC_SUBST(HAVE_EXPAT)
319 AC_DEFINE_UNQUOTED(HAVE_EXPAT,$HAVE_EXPAT)
320 xml2=no
321 ;;
322 esac
323 ;;
324 esac
325 ;;
326 esac
327
328 case "$xml2" in
329 no)
330 ;;
331 *)
332 case "$xml2_includes" in
333 yes|no)
334 xml2_include_path=""
335 ;;
336 *)
337 xml2_include_path="-I$xml2_includes"
338 ;;
339 esac
340 case "$xml2_lib" in
341 yes)
342 case "$xml2" in
343 yes|maybe)
344 xml2_library="-lxml2"
345 ;;
346 *)
347 xml2_library="-L$xml2/lib -lxml2"
348 ;;
349 esac
350 ;;
351 no)
352 ;;
353 *)
354 xml2_library="-L$xml2_lib -lxml2"
355 ;;
356 esac
357
358 saved_CPPFLAGS="$CPPFLAGS"
359 CPPFLAGS="$CPPFLAGS $xml2_include_path"
360 saved_LIBS="$LIBS"
361 LIBS="$LIBS $xml2_library"
362
363 AC_CHECK_HEADER(libxml/parser.h)
364 case "$ac_cv_header_libxml_parser_h" in
365 no)
366 CPPFLAGS="$saved_CPPFLAGS"
367 LIBS="$saved_LIBS"
368 xml2=no
369 ;;
370 yes)
371 AC_CHECK_FUNCS(xmlInitParser)
372 case "$ac_cv_func_xmlInitParser" in
373 no)
374 CPPFLAGS="$saved_CPPFLAGS"
375 LIBS="$saved_LIBS"
376 xml2=no
377 ;;
378 yes)
379 HAVE_XML2=1
380 AC_SUBST(HAVE_XML2)
381 AC_DEFINE_UNQUOTED(HAVE_XML2,$HAVE_XML2)
382 expat=no
383 ;;
384 esac
385 ;;
386 esac
387 ;;
388 esac
389
390 case "$expat""$xml2" in
391 nono)
392 AC_MSG_ERROR([cannot find either libxml2 or expat])
393 ;;
394 esac
395
396 AC_OUTPUT([Makefile
397 config/Makedefs
398 src/Makefile
399 fc-cache/Makefile
400 fc-list/Makefile
401 fontconfig/Makefile
402 fontconfig.pc
403 fontconfig-config])
404