1AC_INIT([OTS],
2        [6.1.1],
3        [https://github.com/khaledhosny/ots/issues],
4        [ots],
5        [https://github.com/khaledhosny/ots])
6
7AC_CANONICAL_SYSTEM
8AC_CONFIG_MACRO_DIR([m4])
9AC_CONFIG_HEADERS([config.h])
10
11AM_INIT_AUTOMAKE([foreign subdir-objects])
12AM_SILENT_RULES([yes])
13
14AC_CYGWIN
15AC_EXEEXT
16AC_OBJEXT
17AC_PROG_CC
18AC_PROG_CXX
19AC_PROG_RANLIB
20PKG_PROG_PKG_CONFIG([0.20])
21
22AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory])
23
24if test "$GCC" = yes; then
25	AX_CHECK_COMPILE_FLAG([-fsanitize=address], [ASAN_CFLAGS=-fsanitize=address], :)
26	AX_CHECK_COMPILE_FLAG([-fsanitize=undefined], [UBSAN_CFLAGS=-fsanitize=undefined], :)
27fi
28AC_SUBST(ASAN_CFLAGS)
29AC_SUBST(UBSAN_CFLAGS)
30AM_CONDITIONAL(HAVE_FSANITIZE, [test "x$ASAN_CFLAGS" != "x" -o "x$UBSAN_CFLAGS" != "x"])
31
32AC_ARG_ENABLE([debug],
33	AS_HELP_STRING([--enable-debug=@<:@yes/no@:>@],
34	               [Enable extra debugging information for font
35	                sanitization @<:@default=no@:>@]))
36AS_IF([test "x$enable_debug" = "xyes"], [
37	AC_DEFINE(OTS_DEBUG, 1, [Enable extra debugging information])
38])
39
40AC_ARG_ENABLE([graphite],
41	AS_HELP_STRING([--enable-graphite=@<:@yes/no@:>@],
42                       [Sanitize Graphite tables @<:@default=yes@:>@]))
43AS_IF([test "x$enable_graphite" != "xno"], [
44	AC_DEFINE(OTS_GRAPHITE, 1, [Sanitize Graphite tables])
45])
46AM_CONDITIONAL(OTS_GRAPHITE, [test "x$enable_graphite" != "xno"])
47
48have_freetype=false
49PKG_CHECK_MODULES(FREETYPE, [freetype2], [have_freetype=true], :)
50if $have_freetype; then
51	AC_DEFINE(HAVE_FREETYPE, 1, [Have FreeType 2 library])
52fi
53AM_CONDITIONAL(HAVE_FREETYPE, [$have_freetype])
54
55have_pthread=false
56AX_PTHREAD([have_pthread=true])
57if $have_pthread; then
58	GTEST_CPPFLAGS="-DGTEST_HAS_PTHREAD=1"
59else
60	GTEST_CPPFLAGS="-DGTEST_HAS_PTHREAD=0"
61fi
62AC_SUBST([GTEST_CPPFLAGS])
63
64have_coretext=false
65AC_CHECK_TYPE([CTFontRef], [have_coretext=true], [], [#include <ApplicationServices/ApplicationServices.h>])
66if $have_coretext; then
67	CORETEXT_CFLAGS=
68	CORETEXT_LIBS="-framework ApplicationServices"
69	AC_DEFINE(HAVE_CORETEXT, 1, [Have Core Text framework])
70fi
71AC_SUBST(CORETEXT_CFLAGS)
72AC_SUBST(CORETEXT_LIBS)
73AM_CONDITIONAL(HAVE_CORETEXT, [$have_coretext])
74
75have_win32=false
76AC_CHECK_HEADERS(windows.h, have_win32=true)
77if $have_win32; then
78	AC_DEFINE(HAVE_WIN32, 1, [Have Windows API])
79fi
80AM_CONDITIONAL(HAVE_WIN32, [$have_win32])
81
82have_systime=false
83AC_CHECK_HEADER([sys/time.h], [have_systime=true])
84AM_CONDITIONAL(HAVE_SYSTIME, [$have_systime])
85
86AC_CONFIG_FILES([Makefile])
87
88AC_OUTPUT
89