configure.ac revision 9c9cb266
1# Copyright © 2003 Keith Packard 2# 3# Permission to use, copy, modify, distribute, and sell this software and its 4# documentation for any purpose is hereby granted without fee, provided that 5# the above copyright notice appear in all copies and that both that 6# copyright notice and this permission notice appear in supporting 7# documentation, and that the name of Keith Packard not be used in 8# advertising or publicity pertaining to distribution of the software without 9# specific, written prior permission. Keith Packard makes no 10# representations about the suitability of this software for any purpose. It 11# is provided "as is" without express or implied warranty. 12# 13# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 14# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO 15# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR 16# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 17# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 18# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 19# PERFORMANCE OF THIS SOFTWARE. 20# 21 22# Initialize Autoconf 23AC_PREREQ([2.60]) 24AC_INIT([libXfont2], [2.0.6], 25 [https://gitlab.freedesktop.org/xorg/lib/libxfont/-/issues], [libXfont2]) 26AC_CONFIG_SRCDIR([Makefile.am]) 27AC_CONFIG_HEADERS([config.h]) 28 29# Initialize Automake 30AM_INIT_AUTOMAKE([foreign dist-xz subdir-objects]) 31 32# Set common system defines for POSIX extensions, such as _GNU_SOURCE 33# Must be called before any macros that run the compiler (like 34# AC_PROG_LIBTOOL) to avoid autoconf errors. 35AC_USE_SYSTEM_EXTENSIONS 36 37# Initialize libtool 38AC_PROG_LIBTOOL 39 40# Require xorg-macros minimum of 1.10 for DocBook XML documentation 41m4_ifndef([XORG_MACROS_VERSION], 42 [m4_fatal([must install xorg-macros 1.10 or later before running autoconf/autogen])]) 43XORG_MACROS_VERSION(1.10) 44XORG_DEFAULT_OPTIONS 45XORG_ENABLE_DEVEL_DOCS 46XORG_WITH_XMLTO(0.0.22) 47XORG_WITH_FOP 48XORG_CHECK_SGML_DOCTOOLS(1.7) 49 50# Checks for header files. 51AC_CHECK_HEADERS([endian.h poll.h sys/poll.h]) 52 53# Checks for library functions. 54AC_CHECK_FUNCS([poll readlink]) 55AC_SEARCH_LIBS([strlcat], [bsd]) 56if test "$ac_cv_search_strlcat" = "-lbsd"; then 57 AC_DEFINE(HAVE_LIBBSD,1,[Has libbsd]) 58fi 59AC_CONFIG_LIBOBJ_DIR([src/util]) 60AC_REPLACE_FUNCS([reallocarray realpath strlcat strlcpy]) 61 62# Check for BSDish err.h 63AC_CHECK_HEADERS([err.h]) 64 65# If the first PKG_CHECK_MODULES appears inside a conditional, pkg-config 66# must first be located explicitly. 67PKG_PROG_PKG_CONFIG 68 69# 70# select libraries to include 71# 72 73XFONT_FONTFILE=no 74 75# 76# FreeType for all scalable (OpenType, TrueType, PostScript) and 77# some bitmap formats (BDF & PCF) 78# 79AC_ARG_ENABLE(freetype, 80 AS_HELP_STRING([--disable-freetype], 81 [Build freetype backend (default: enabled)]), 82 [XFONT_FREETYPE=$enableval],[XFONT_FREETYPE=yes]) 83AM_CONDITIONAL(XFONT_FREETYPE, [test x$XFONT_FREETYPE = xyes]) 84if test x$XFONT_FREETYPE = xyes; then 85 AC_DEFINE(XFONT_FREETYPE,1,[Support FreeType rasterizer for nearly all font file formats]) 86 AC_ARG_WITH(freetype-config, 87 AS_HELP_STRING([--with-freetype-config=PROG], 88 [Use FreeType configuration program PROG]), 89 [freetype_config=$withval], [freetype_config=auto]) 90 91 if test "$freetype_config" = "auto" ; then 92 PKG_CHECK_MODULES(FREETYPE, freetype2, 93 freetype_config=no, freetype_config=yes) 94 fi 95 96 if test "$freetype_config" = "yes"; then 97 AC_PATH_PROG(ft_config,freetype-config,no) 98 if test "$ft_config" = "no"; then 99 AC_MSG_ERROR([You must have freetype installed; see http://www.freetype.org/]) 100 fi 101 else 102 ft_config="$freetype_config" 103 fi 104 105 if test "$freetype_config" != "no"; then 106 FREETYPE_CFLAGS="`$ft_config --cflags`" 107 FREETYPE_LIBS="`$ft_config --libs`" 108 fi 109 FREETYPE_REQUIRES="freetype2" 110 XFONT_FONTFILE=yes 111else 112 FREETYPE_CFLAGS="" 113 FREETYPE_LIBS="" 114 FREETYPE_REQUIRES="" 115fi 116AC_SUBST(FREETYPE_LIBS) 117AC_SUBST(FREETYPE_CFLAGS) 118AC_SUBST(FREETYPE_REQUIRES) 119 120# 121# Bitmap fonts in files: 122# Builtins (gzipped pcf format in .text segment) 123# PCF 124# BDF 125# SNF 126# 127 128AC_DEFINE(X_GZIP_FONT_COMPRESSION,1,[Support gzip for bitmap fonts]) 129X_GZIP_FONT_COMPRESSION=1 130AC_SUBST(X_GZIP_FONT_COMPRESSION) 131PKG_CHECK_MODULES(ZLIB, [zlib], [Z_REQUIRES=zlib], [Z_REQUIRES=""]) 132if test "x$Z_REQUIRES" = "x"; then 133 AC_CHECK_LIB(z, gzopen, [Z_LIBS=-lz], 134 AC_MSG_ERROR([*** zlib is required])) 135fi 136AC_SUBST(Z_REQUIRES) 137 138AC_ARG_WITH(bzip2, 139 AS_HELP_STRING([--with-bzip2], 140 [Use libbz2 to support bzip2 compressed bitmap fonts (default: no)]), 141 [], [with_bzip2=no]) 142if test "x$with_bzip2" = xyes; then 143 AC_CHECK_LIB(bz2, BZ2_bzopen, [Z_LIBS="$Z_LIBS -lbz2"], 144 AC_MSG_ERROR([*** libbz2 is required for bzip2 support])) 145 AC_DEFINE(X_BZIP2_FONT_COMPRESSION,1,[Support bzip2 for bitmap fonts]) 146fi 147AM_CONDITIONAL(X_BZIP2_FONT_COMPRESSION, [test "x$with_bzip2" = xyes ]) 148AC_SUBST(Z_LIBS) 149 150AC_ARG_ENABLE(builtins, 151 AS_HELP_STRING([--disable-builtins], 152 [Support builtin fonts (default: enabled)]), 153 [XFONT_BUILTINS=$enableval], [XFONT_BUILTINS=yes]) 154AM_CONDITIONAL(XFONT_BUILTINS, [test "x$XFONT_BUILTINS" = xyes ]) 155if test "x$XFONT_BUILTINS" = xyes; then 156 AC_DEFINE(XFONT_BUILTINS,1,[Support built-in fonts]) 157 XFONT_BITMAP=yes 158fi 159 160AC_ARG_ENABLE(pcfformat, 161 AS_HELP_STRING([--disable-pcfformat], 162 [Support PCF format bitmap fonts (default: enabled)]), 163 [XFONT_PCFFORMAT=$enableval], [XFONT_PCFFORMAT=yes]) 164AM_CONDITIONAL(XFONT_PCFFORMAT, [test "x$XFONT_PCFFORMAT" = xyes]) 165if test "x$XFONT_PCFFORMAT" = xyes; then 166 AC_DEFINE(XFONT_PCFFORMAT,1,[Support pcf format bitmap font files]) 167 XFONT_BITMAP=yes 168fi 169 170AM_CONDITIONAL(XFONT_PCF_OR_BUILTIN, 171 [test "x$XFONT_PCFFORMAT" = xyes -o "x$XFONT_BUILTINS" = xyes]) 172 173AC_ARG_ENABLE(bdfformat, 174 AS_HELP_STRING([--disable-bdfformat], 175 [Support BDF format bitmap fonts (default: enabled)]), 176 [XFONT_BDFFORMAT=$enableval], [XFONT_BDFFORMAT=yes]) 177AM_CONDITIONAL(XFONT_BDFFORMAT, [test "x$XFONT_BDFFORMAT" = xyes]) 178if test "x$XFONT_BDFFORMAT" = xyes; then 179 AC_DEFINE(XFONT_BDFFORMAT,1,[Support bdf format bitmap font files]) 180 XFONT_BITMAP=yes 181fi 182 183AC_ARG_ENABLE(snfformat, 184 AS_HELP_STRING([--enable-snfformat], 185 [Support SNF format bitmap fonts (default: disabled)]), 186 [XFONT_SNFFORMAT=$enableval], [XFONT_SNFFORMAT=no]) 187AM_CONDITIONAL(XFONT_SNFFORMAT, [test "x$XFONT_SNFFORMAT" = xyes]) 188if test "x$XFONT_SNFFORMAT" = xyes; then 189 AC_DEFINE(XFONT_SNFFORMAT,1,[Support snf format bitmap font files]) 190 XFONT_BITMAP=yes 191fi 192 193AM_CONDITIONAL(XFONT_BITMAP, [test "x$XFONT_BITMAP" = xyes ]) 194if test "x$XFONT_BITMAP" = xyes; then 195 AC_DEFINE(XFONT_BITMAP,1,[Support bitmap font files]) 196 XFONT_FONTFILE=yes 197fi 198 199AM_CONDITIONAL(XFONT_FONTFILE, [test "x$XFONT_FONTFILE" = xyes]) 200if test "x$XFONT_FONTFILE" = xyes; then 201 AC_DEFINE(XFONT_FONTFILE,1,[Support fonts in files]) 202fi 203 204# 205# Support connection to font servers? 206# 207 208AC_ARG_ENABLE(fc, 209 AS_HELP_STRING([--disable-fc], 210 [Support connections to xfs servers (default: enabled)]), 211 [XFONT_FC=$enableval],[XFONT_FC=yes]) 212AM_CONDITIONAL(XFONT_FC, [test "x$XFONT_FC" = xyes]) 213if test "x$XFONT_FC" = xyes; then 214 AC_DEFINE(XFONT_FC,1,[Support the X Font Services Protocol]) 215fi 216 217 218AC_CHECK_LIB(m, hypot, [MATH_LIBS=-lm 219AC_SUBST(MATH_LIBS)], AC_MSG_ERROR([*** libm is required])) 220 221PKG_CHECK_MODULES(XFONT, [xproto xtrans fontsproto >= 2.1.3 fontenc]) 222 223# Transport selection macro from xtrans.m4 224XTRANS_CONNECTION_FLAGS 225 226case $host_os in 227 linux*) 228 OS_CFLAGS="-D_XOPEN_SOURCE" 229 ;; 230 *) 231 OS_CFLAGS= 232 ;; 233esac 234 235save_CFLAGS="$CFLAGS" 236CFLAGS="$CFLAGS -fvisibility=hidden" 237CFLAGS_VISIBILITY= 238AC_COMPILE_IFELSE( 239 [AC_LANG_SOURCE([[ 240 #if defined(__CYGWIN__) || defined(__MINGW32__) 241 #error No visibility support 242 #endif 243 extern __attribute__((__visibility__("default"))) int x; 244 ]])], 245 [CFLAGS_VISIBILITY=-fvisibility=hidden], 246 [] 247) 248CFLAGS="$save_CFLAGS" 249OS_CFLAGS="$OS_CFLAGS $CFLAGS_VISIBILITY" 250 251AC_SUBST([OS_CFLAGS]) 252 253AC_CONFIG_FILES([Makefile 254 doc/Makefile 255 xfont2.pc]) 256AC_OUTPUT 257