1bbe1b32bSmrgdnl  Copyright 2005 Red Hat, Inc.
2bbe1b32bSmrgdnl 
3bbe1b32bSmrgdnl  Permission to use, copy, modify, distribute, and sell this software and its
4bbe1b32bSmrgdnl  documentation for any purpose is hereby granted without fee, provided that
5bbe1b32bSmrgdnl  the above copyright notice appear in all copies and that both that
6bbe1b32bSmrgdnl  copyright notice and this permission notice appear in supporting
7bbe1b32bSmrgdnl  documentation, and that the name of Red Hat not be used in
8bbe1b32bSmrgdnl  advertising or publicity pertaining to distribution of the software without
9bbe1b32bSmrgdnl  specific, written prior permission.  Red Hat makes no
10bbe1b32bSmrgdnl  representations about the suitability of this software for any purpose.  It
11bbe1b32bSmrgdnl  is provided "as is" without express or implied warranty.
12bbe1b32bSmrgdnl 
13bbe1b32bSmrgdnl  RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
14bbe1b32bSmrgdnl  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
15bbe1b32bSmrgdnl  EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
16bbe1b32bSmrgdnl  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
17bbe1b32bSmrgdnl  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18bbe1b32bSmrgdnl  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19bbe1b32bSmrgdnl  PERFORMANCE OF THIS SOFTWARE.
20bbe1b32bSmrgdnl
21bbe1b32bSmrgdnl Process this file with autoconf to create configure.
22bbe1b32bSmrg
2330f8ce46Smrg# Initialize Autoconf
24ce6676dbSmrgAC_PREREQ([2.60])
2530f8ce46SmrgAC_INIT([xfs],
26e1db7cd1Smrg        [1.2.2],
27e1db7cd1Smrg        [https://gitlab.freedesktop.org/xorg/app/xfs/-/issues],
2830f8ce46Smrg        [xfs])
29ce6676dbSmrg# Set common system defines for POSIX extensions, such as _GNU_SOURCE
30ce6676dbSmrg# Must be called before any macros that run the compiler (like AC_PROG_LIBTOOL)
31ce6676dbSmrgAC_USE_SYSTEM_EXTENSIONS
3234f90d55SmrgAC_CONFIG_HEADERS([config.h])
3330f8ce46SmrgAC_CONFIG_MACRO_DIR([m4])
34bbe1b32bSmrg
3530f8ce46Smrg# Initialize Automake
3676028eb6SmrgAM_INIT_AUTOMAKE([foreign dist-xz subdir-objects])
37bbe1b32bSmrg
3830f8ce46Smrg# Require xorg-macros minimum of 1.10 for HAVE_STYLESHEETS in XORG_CHECK_SGML_DOCTOOLS
3930f8ce46Smrgm4_ifndef([XORG_MACROS_VERSION],
4030f8ce46Smrg	  [m4_fatal([must install xorg-macros 1.10 or later before running autoconf/autogen])])
4130f8ce46SmrgXORG_MACROS_VERSION(1.10)
4230f8ce46SmrgXORG_DEFAULT_OPTIONS
4330f8ce46SmrgXORG_ENABLE_DEVEL_DOCS
4430f8ce46SmrgXORG_WITH_XMLTO(0.0.20)
4530f8ce46SmrgXORG_WITH_FOP
4630f8ce46SmrgXORG_CHECK_SGML_DOCTOOLS(1.5)
4730f8ce46SmrgXORG_WITH_LINT
48bbe1b32bSmrg
49e1db7cd1Smrg# Checks for typedefs, structures, and compiler characteristics.
50e1db7cd1SmrgAC_SYS_LARGEFILE
51e1db7cd1Smrg
52bbe1b32bSmrgAC_CHECK_HEADERS([stdint.h])
53bbe1b32bSmrg
54bbe1b32bSmrgAC_ARG_WITH(default-config-file,
55bbe1b32bSmrg	AS_HELP_STRING([--with-default-config-file=PATH],
56bbe1b32bSmrg   [comma-separated list of paths to look for config file when not specified (default: ${sysconfdir}/X11/fs/config)]),
57bbe1b32bSmrg	[CONFIG_FILE="$withval"], [CONFIG_FILE="${sysconfdir}/X11/fs/config"])
58bbe1b32bSmrg
59bbe1b32bSmrgDEFAULT_CONFIG_FILE=`echo ${CONFIG_FILE} | sed 's/,/\\\\\\\\\\\",\\\\\\\\\\\"/'g`
6030f8ce46SmrgAX_DEFINE_DIR([DEFAULT_CONFIG_FILE], DEFAULT_CONFIG_FILE,
61bbe1b32bSmrg    [comma-separated list of strings for config file paths when not specified])
62bbe1b32bSmrg
63bbe1b32bSmrg# generate text for the man page
64bbe1b32bSmrgcase $CONFIG_FILE in
65bbe1b32bSmrg    *,*)
66ce6676dbSmrg	CONFIG_FILE_DESC="the first file found from the list:"
67bbe1b32bSmrg	CONFIG_FILE_PATH=`echo ${CONFIG_FILE} | sed 's/,/\\\\\\\\fR, \\\\\\\\fI/g'`
68bbe1b32bSmrg	;;
69bbe1b32bSmrg    *)
70bbe1b32bSmrg	CONFIG_FILE_DESC="the default file,"
71bbe1b32bSmrg	CONFIG_FILE_PATH="${CONFIG_FILE}"
72bbe1b32bSmrg	;;
73bbe1b32bSmrgesac
74bbe1b32bSmrgAC_SUBST([CONFIG_FILE_DESC])
75bbe1b32bSmrgAC_SUBST([CONFIG_FILE_PATH])
76bbe1b32bSmrg
7730f8ce46Smrg# Require X.Org's font util macros 1.1 or later for XORG_FONTROOTDIR
7830f8ce46Smrgm4_ifndef([XORG_FONT_MACROS_VERSION],
7930f8ce46Smrg	  [m4_fatal([must install X.Org font-util 1.1 or later before running autoconf/autogen])])
8030f8ce46SmrgXORG_FONT_MACROS_VERSION(1.1)
8130f8ce46Smrg
8230f8ce46SmrgXORG_FONTROOTDIR
8334f90d55SmrgXORG_FONTSUBDIR(FONTMISCDIR, fontmiscdir, misc)
8434f90d55SmrgXORG_FONTSUBDIR(FONTOTFDIR, fontotfdir, OTF)
8534f90d55SmrgXORG_FONTSUBDIR(FONTTTFDIR, fontttfdir, TTF)
8634f90d55SmrgXORG_FONTSUBDIR(FONTTYPE1DIR, fonttype1dir, Type1)
8734f90d55SmrgXORG_FONTSUBDIR(FONT75DPIDIR, font75dpidir, 75dpi)
8834f90d55SmrgXORG_FONTSUBDIR(FONT100DPIDIR, font100dpidir, 100dpi)
8930f8ce46Smrg
90ce6676dbSmrg# Determine font path to put in config file
91ce6676dbSmrg# Uses --default-font-path if set, otherwise checks for /etc/X11/fontpath.d,
9234f90d55Smrg# otherwise uses standard subdirectories of FONTROOTDIR. When cross
9334f90d55Smrg# compiling, assume default font path uses standard FONTROOTDIR directories.
9434f90d55SmrgDEFAULT_FONT_PATH="${FONTMISCDIR}/,${FONTTTFDIR}/,${FONTOTFDIR}/,${FONTTYPE1DIR}/,${FONT100DPIDIR}/,${FONT75DPIDIR}/"
9534f90d55Smrgif test "$cross_compiling" != yes; then
9634f90d55Smrg	AC_CHECK_FILE([${sysconfdir}/X11/fontpath.d],
9734f90d55Smrg		[DEFAULT_FONT_PATH='catalogue:${sysconfdir}/X11/fontpath.d'],
9834f90d55Smrg		[case $host_os in
9934f90d55Smrg			darwin*) DEFAULT_FONT_PATH="${DEFAULT_FONT_PATH},/Library/Fonts,/System/Library/Fonts" ;;
10034f90d55Smrg		esac])
10134f90d55Smrgfi
10234f90d55SmrgAC_ARG_WITH(default-font-path, AS_HELP_STRING([--with-default-font-path=PATH], [Comma separated list of font dirs]),
10334f90d55Smrg				[ FONTPATH="$withval" ],
10434f90d55Smrg				[ FONTPATH="${DEFAULT_FONT_PATH}" ])
10534f90d55Smrg
10634f90d55SmrgAC_MSG_CHECKING([for default font path])
10734f90d55SmrgAC_MSG_RESULT([$FONTPATH])
10834f90d55Smrg
109ce6676dbSmrgAC_SUBST([FONTPATH])
110ce6676dbSmrg
111ce6676dbSmrg# Option to enable support for starting from inetd
112ce6676dbSmrgAC_ARG_ENABLE(inetd,
113ce6676dbSmrg	AS_HELP_STRING([--enable-inetd],
114ce6676dbSmrg	    [Support -inetd flag for starting from inetd (default: enabled)]),
115ce6676dbSmrg	    [INETD=$enableval], [INETD=yes])
116ce6676dbSmrgif test "x$INETD" = xyes; then
117ce6676dbSmrg        AC_DEFINE(XFS_INETD, 1, [Build support for starting from inetd])
118ce6676dbSmrgfi
119ce6676dbSmrg
120ce6676dbSmrg# Option to enable support for logging to syslog
121ce6676dbSmrgAC_ARG_ENABLE(syslog,
122ce6676dbSmrg	AS_HELP_STRING([--enable-syslog],
123ce6676dbSmrg	    [Support option for logging via syslog (default: enabled)]),
124ce6676dbSmrg	    [SYSLOG=$enableval], [SYSLOG=yes])
125ce6676dbSmrgif test "x$SYSLOG" = xyes; then
126ce6676dbSmrg        AC_DEFINE(USE_SYSLOG, 1, [Build support for logging via syslog])
127ce6676dbSmrgfi
128ce6676dbSmrg
129ce6676dbSmrg
130ce6676dbSmrg# Checks for system functions / libraries
131ce6676dbSmrgAC_CHECK_FUNCS([daemon])
132ce6676dbSmrg
133bbe1b32bSmrg# Checks for pkg-config packages
134e1db7cd1Smrg#  - xproto >= 7.0.25 required for _X_COLD in <X11/Xfuncproto.h>
13540c5823bSmrg#  - xfont >= 2.0.1 for new server API
136e1db7cd1SmrgPKG_CHECK_MODULES(XFS, xproto >= 7.0.25 xfont2 >= 2.0.1 xtrans)
137bbe1b32bSmrg
1388f34cbf9Ssnjcase "$host_os" in
1398f34cbf9Ssnj  cygwin*|mingw*)
1408f34cbf9Ssnj    CFLAGS="$CFLAGS -DFD_SETSIZE=256"
1418f34cbf9Ssnj    LDFLAGS="$LDFLAGS -Wl,--export-all" ;;
1428f34cbf9Ssnjesac
1438f34cbf9Ssnj
144bbe1b32bSmrg# Transport selection macro from xtrans.m4
145bbe1b32bSmrgXTRANS_CONNECTION_FLAGS
146bbe1b32bSmrg
14730f8ce46SmrgAC_CONFIG_FILES([Makefile
14830f8ce46Smrg                 config/Makefile
14930f8ce46Smrg                 doc/Makefile
15030f8ce46Smrg                 man/Makefile])
15130f8ce46SmrgAC_OUTPUT
152