configure.ac revision 339a7c43
1bdf0f55dSmrg#
2bdf0f55dSmrg#  Copyright © 2003 Keith Packard, Noah Levitt
3bdf0f55dSmrg#
4bdf0f55dSmrg#  Permission to use, copy, modify, distribute, and sell this software and its
5bdf0f55dSmrg#  documentation for any purpose is hereby granted without fee, provided that
6bdf0f55dSmrg#  the above copyright notice appear in all copies and that both that
7bdf0f55dSmrg#  copyright notice and this permission notice appear in supporting
8bdf0f55dSmrg#  documentation, and that the name of Keith Packard not be used in
9bdf0f55dSmrg#  advertising or publicity pertaining to distribution of the software without
10bdf0f55dSmrg#  specific, written prior permission.  Keith Packard makes no
11bdf0f55dSmrg#  representations about the suitability of this software for any purpose.  It
12bdf0f55dSmrg#  is provided "as is" without express or implied warranty.
13bdf0f55dSmrg#
14bdf0f55dSmrg#  KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15bdf0f55dSmrg#  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16bdf0f55dSmrg#  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17bdf0f55dSmrg#  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18bdf0f55dSmrg#  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19bdf0f55dSmrg#  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20bdf0f55dSmrg#  PERFORMANCE OF THIS SOFTWARE.
21bdf0f55dSmrg#
22bdf0f55dSmrg
23bdf0f55dSmrg# Initialize Autoconf
24249c3046SmrgAC_PREREQ([2.60])
25339a7c43SmrgAC_INIT([libXt], [1.1.5],
26249c3046Smrg        [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [libXt])
27bdf0f55dSmrgAC_CONFIG_SRCDIR([Makefile.am])
28bdf0f55dSmrgAC_CONFIG_HEADERS([config.h])
29249c3046SmrgAC_CONFIG_MACRO_DIR([m4])
30bdf0f55dSmrg
31bdf0f55dSmrg# Initialize Automake
321477040fSmrgAM_INIT_AUTOMAKE([foreign dist-bzip2])
33444c061aSmrg
34bdf0f55dSmrg# Initialize libtool
35bdf0f55dSmrgAC_PROG_LIBTOOL
36bdf0f55dSmrg
379e7bcd65Smrg# Require X.Org macros 1.13 or later for XORG_ENABLE_UNIT_TESTS
381477040fSmrgm4_ifndef([XORG_MACROS_VERSION],
399e7bcd65Smrg          [m4_fatal([must install xorg-macros 1.13 or later before running autoconf/autogen])])
409e7bcd65SmrgXORG_MACROS_VERSION(1.13)
411477040fSmrgXORG_DEFAULT_OPTIONS
42bdf0f55dSmrgXORG_CHECK_MALLOC_ZERO
439e7bcd65SmrgXORG_ENABLE_SPECS
449e7bcd65SmrgXORG_WITH_XMLTO(0.0.20)
459e7bcd65SmrgXORG_WITH_FOP
469e7bcd65SmrgXORG_WITH_XSLTPROC
479e7bcd65SmrgXORG_CHECK_SGML_DOCTOOLS(1.01)
489e7bcd65SmrgXORG_PROG_RAWCPP
499e7bcd65SmrgXORG_WITH_PERL
509e7bcd65Smrg
51444c061aSmrg
52bdf0f55dSmrg# Checks for header files.
53bdf0f55dSmrgAC_CHECK_HEADER([alloca.h], AC_DEFINE(INCLUDE_ALLOCA_H, 1, [Define to 1 if Xalloca.h should include <alloca.h>]))
54bdf0f55dSmrg
55bdf0f55dSmrg# Obtain compiler/linker options for depedencies
56bdf0f55dSmrgPKG_CHECK_MODULES(XT, sm ice x11 xproto kbproto)
572265a131Smrg
58bdf0f55dSmrg# Set-up variables to use build machine compiler when cross-compiling
592265a131Smrgif test x"$CC_FOR_BUILD" = x; then
602265a131Smrg	if test x"$cross_compiling" = xyes; then
612265a131Smrg		AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
622265a131Smrg	else
632265a131Smrg	        CC_FOR_BUILD="$CC"
642265a131Smrg	fi
652265a131Smrgfi
662265a131SmrgAC_SUBST([CC_FOR_BUILD])
67339a7c43SmrgDEFAULT_CPPFLAGS_FOR_BUILD="${CPPFLAGS}"
68339a7c43SmrgAC_CHECK_FUNC(asprintf,
69339a7c43Smrg  [DEFAULT_CPPFLAGS_FOR_BUILD="${DEFAULT_CPPFLAGS_FOR_BUILD} -DHAVE_ASPRINTF -D_GNU_SOURCE"])
70339a7c43SmrgCPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-${DEFAULT_CPPFLAGS_FOR_BUILD}}
71339a7c43SmrgAC_SUBST(CPPFLAGS_FOR_BUILD)
72339a7c43SmrgDEFAULT_CFLAGS_FOR_BUILD="${CFLAGS} ${CWARNFLAGS}"
73339a7c43SmrgCFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${DEFAULT_CFLAGS_FOR_BUILD}}
742ae83157SmrgAC_SUBST(CFLAGS_FOR_BUILD)
752ae83157SmrgLDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
762ae83157SmrgAC_SUBST(LDFLAGS_FOR_BUILD)
77444c061aSmrg
78444c061aSmrg# Map function checks to old Imake #defines
792265a131Smrgcase $host_os in
80bdf0f55dSmrg	# darwin through Snow Leopard has poll() but can't be used to poll character devices.
81bdf0f55dSmrg	darwin@<:@789@:>@*|darwin10*) ;;
82bdf0f55dSmrg	darwin*)
83bdf0f55dSmrg		_ac_xorg_macosx_version_min=""
84bdf0f55dSmrg		if echo $CPPFLAGS $CFLAGS | grep -q mmacosx-version-min ; then
85bdf0f55dSmrg			_ac_xorg_macosx_version_min=`echo $CPPFLAGS $CFLAGS | sed 's/^.*-mmacosx-version-min=\(@<:@^ @:>@*\).*$/\1/'`
86bdf0f55dSmrg		else
87bdf0f55dSmrg			_ac_xorg_macosx_version_min=$MACOSX_DEPLOYMENT_TARGET
88bdf0f55dSmrg		fi
89bdf0f55dSmrg		case $_ac_xorg_macosx_version_min in
90bdf0f55dSmrg			10.@<:@0123456@:>@|10.@<:@0123456@:>@.*) ;;
91bdf0f55dSmrg			*)
92bdf0f55dSmrg				AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], )
93bdf0f55dSmrg			;;
94bdf0f55dSmrg		esac
95bdf0f55dSmrg		unset _ac_xorg_macosx_version_min
96bdf0f55dSmrg		;;
972265a131Smrg	*)
98bdf0f55dSmrg		AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], )
992265a131Smrg	;;
1002265a131Smrgesac
1012265a131Smrg
1029e7bcd65Smrg# Link with winsock if mingw target
1039e7bcd65Smrgcase $host_os in
1049e7bcd65Smrg	*mingw*)
1059e7bcd65Smrg		AC_HAVE_LIBRARY(ws2_32)
1069e7bcd65Smrg	;;
1079e7bcd65Smrg	*)
1089e7bcd65Smrg	;;
1099e7bcd65Smrgesac
110444c061aSmrg
111444c061aSmrg# Options
112bdf0f55dSmrgAC_ARG_ENABLE(xkb, AS_HELP_STRING([--disable-xkb], [Disable XKB support]),
113444c061aSmrg	XKB="$enableval", XKB="yes")
114444c061aSmrgif test "x$XKB" = "xyes" ; then
115444c061aSmrg	AC_DEFINE(XKB, 1, [Define to 1 to use XKB for keysym resolution.])
116444c061aSmrgfi
117444c061aSmrg
1189e7bcd65Smrg# --enable-unit-tests
1199e7bcd65SmrgXORG_ENABLE_UNIT_TESTS
1209e7bcd65SmrgXORG_WITH_GLIB([2.16])
1219e7bcd65Smrg
1229e7bcd65Smrg# Memory checking support
1239e7bcd65Smrgcase $host_os in
1249e7bcd65Smrg     solaris*)
1259e7bcd65Smrg        AC_CHECK_LIB([umem], [umem_alloc],
1269e7bcd65Smrg            [MALLOC_DEBUG_ENV='LD_PRELOAD=libumem.so UMEM_DEBUG=default'])
1279e7bcd65Smrg        ;;
1289e7bcd65Smrg     *-gnu*) # GNU libc - Value is used as a single byte bit pattern,
1299e7bcd65Smrg        # both directly and inverted, so should not be 0 or 255.
1309e7bcd65Smrg        MALLOC_DEBUG_ENV='MALLOC_PERTURB_=15'
1319e7bcd65Smrg        ;;
1329e7bcd65Smrg     *bsd*|darwin*)
1339e7bcd65Smrg        MALLOC_DEBUG_ENV='MallocPreScribble=1 MallocScribble=1'
1349e7bcd65Smrg        ;;
1359e7bcd65Smrgesac
1369e7bcd65SmrgAC_SUBST([MALLOC_DEBUG_ENV])
1379e7bcd65Smrg
138444c061aSmrg# Replaces XFileSearchPathDefault from Imake configs
139444c061aSmrgXFILESEARCHPATHDEFAULT='$(sysconfdir)/X11/%L/%T/%N%C%S:$(sysconfdir)/X11/%l/%T/%N%C%S:$(sysconfdir)/X11/%T/%N%C%S:$(sysconfdir)/X11/%L/%T/%N%S:$(sysconfdir)/X11/%l/%T/%N%S:$(sysconfdir)/X11/%T/%N%S:$(datadir)/X11/%L/%T/%N%C%S:$(datadir)/X11/%l/%T/%N%C%S:$(datadir)/X11/%T/%N%C%S:$(datadir)/X11/%L/%T/%N%S:$(datadir)/X11/%l/%T/%N%S:$(datadir)/X11/%T/%N%S:$(libdir)/X11/%L/%T/%N%C%S:$(libdir)/X11/%l/%T/%N%C%S:$(libdir)/X11/%T/%N%C%S:$(libdir)/X11/%L/%T/%N%S:$(libdir)/X11/%l/%T/%N%S:$(libdir)/X11/%T/%N%S'
140444c061aSmrg
141444c061aSmrgAC_ARG_WITH(xfile-search-path,
142bdf0f55dSmrg	AS_HELP_STRING([--with-xfile-search-path=<path>],
143444c061aSmrg		       [Set path to search for app-defaults and other files]),
144444c061aSmrg	[XFILESEARCHPATHDEFAULT="$withval"], [])
145444c061aSmrgAC_SUBST([XFILESEARCHPATHDEFAULT])
146444c061aSmrg
147444c061aSmrgAC_ARG_WITH(appdefaultdir,
148bdf0f55dSmrg	AS_HELP_STRING([--with-appdefaultdir=<path>],
149444c061aSmrg		       [Set app-default directory (default: ${datadir}/X11/app-defaults)]),
150444c061aSmrg	[appdefaultdir="$withval"],
151444c061aSmrg	[appdefaultdir=${datadir}/X11/app-defaults])
1522ae83157SmrgAX_DEFINE_DIR([appdefaultdir], [appdefaultdir], [app default data directory])
153444c061aSmrg
154444c061aSmrg# Replacement for Imake ToolkitStringsABIOptions, controls string tables
155444c061aSmrg# generated by util/string.list in StringDefs.h & Shell.h
156444c061aSmrgcase $host_os in
157444c061aSmrg	solaris*)
1582265a131Smrg		# Solaris uses -intelabi even on SPARC
1592265a131Smrg  		STRINGSABIOPTIONS="-intelabi -solarisabinames"
160444c061aSmrg		;;
161444c061aSmrg	sco* | svr4*)
162444c061aSmrg		case $host_cpu in
163444c061aSmrg		    i*86) STRINGSABIOPTIONS="-intelabi" ;;
164444c061aSmrg		       *) STRINGSABIOPTIONS="" ;;
165444c061aSmrg		esac
166444c061aSmrg		;;
167444c061aSmrgesac
168444c061aSmrgAC_SUBST(STRINGSABIOPTIONS)
169444c061aSmrg
1709e7bcd65SmrgERRORDBDIR=${datadir}/X11
1719e7bcd65SmrgAC_SUBST(ERRORDBDIR)
1729e7bcd65Smrg
1732265a131Smrgcase $host_os in
1742265a131Smrg    darwin*)
1752265a131Smrg        OS_CFLAGS="-Wl,-flat_namespace"
1762265a131Smrg	;;
1772265a131Smrg    *)
1782265a131Smrg        OS_CFLAGS=
1792265a131Smrg        ;;
1802265a131Smrgesac
1812265a131Smrg
1822ae83157SmrgXT_CFLAGS="$XT_CFLAGS $OS_CFLAGS"
1832265a131Smrg
184bdf0f55dSmrgAC_CONFIG_FILES([Makefile
185bdf0f55dSmrg		src/Makefile
186bdf0f55dSmrg		util/Makefile
187bdf0f55dSmrg		include/Makefile
188bdf0f55dSmrg		man/Makefile
189bdf0f55dSmrg		specs/Makefile
1909e7bcd65Smrg		test/Makefile
191bdf0f55dSmrg		xt.pc])
192bdf0f55dSmrgAC_OUTPUT
193