1862f5301Smrg#
2862f5301Smrg#  Copyright © 2003 Keith Packard, Noah Levitt
3862f5301Smrg#
4862f5301Smrg#  Permission to use, copy, modify, distribute, and sell this software and its
5862f5301Smrg#  documentation for any purpose is hereby granted without fee, provided that
6862f5301Smrg#  the above copyright notice appear in all copies and that both that
7862f5301Smrg#  copyright notice and this permission notice appear in supporting
8862f5301Smrg#  documentation, and that the name of Keith Packard not be used in
9862f5301Smrg#  advertising or publicity pertaining to distribution of the software without
10862f5301Smrg#  specific, written prior permission.  Keith Packard makes no
11862f5301Smrg#  representations about the suitability of this software for any purpose.  It
12862f5301Smrg#  is provided "as is" without express or implied warranty.
13862f5301Smrg#
14862f5301Smrg#  KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15862f5301Smrg#  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
16862f5301Smrg#  EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17862f5301Smrg#  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
18862f5301Smrg#  DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
19862f5301Smrg#  TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20862f5301Smrg#  PERFORMANCE OF THIS SOFTWARE.
21862f5301Smrg#
22ff559fabSmrg
23862f5301Smrg# Initialize Autoconf
2444dda7b2SmrgAC_PREREQ([2.60])
25e08b657dSmrgAC_INIT([libXdmcp], [1.1.5],
26515ec619Smrg        [https://gitlab.freedesktop.org/xorg/lib/libxdmcp/-/issues], [libXdmcp])
27862f5301SmrgAC_CONFIG_SRCDIR([Makefile.am])
28862f5301SmrgAC_CONFIG_HEADERS([config.h])
29e08b657dSmrgAC_CONFIG_MACRO_DIRS([m4])
30e08b657dSmrg
31fc544a13Smrg# Set common system defines for POSIX extensions, such as _GNU_SOURCE
32e08b657dSmrg# Must be called before any macros that run the compiler (like LT_INIT)
33fc544a13Smrg# to avoid autoconf errors.
34fc544a13SmrgAC_USE_SYSTEM_EXTENSIONS
35862f5301Smrg
36862f5301Smrg# Initialize Automake
37515ec619SmrgAM_INIT_AUTOMAKE([foreign dist-xz])
38ff559fabSmrg
39862f5301Smrg# Initialize libtool
40e08b657dSmrgLT_INIT([win32-dll])
41ff559fabSmrg
42fc544a13Smrg# Require xorg-macros minimum of 1.16 for unit testing with memory checks
4344dda7b2Smrgm4_ifndef([XORG_MACROS_VERSION],
44fc544a13Smrg          [m4_fatal([must install xorg-macros 1.16 or later before running autoconf/autogen])])
45fc544a13SmrgXORG_MACROS_VERSION(1.16)
4644dda7b2SmrgXORG_DEFAULT_OPTIONS
4744dda7b2SmrgXORG_ENABLE_DOCS
48862f5301SmrgXORG_WITH_XMLTO(0.0.22)
4944dda7b2SmrgXORG_WITH_FOP
50862f5301SmrgXORG_WITH_XSLTPROC
51862f5301SmrgXORG_CHECK_SGML_DOCTOOLS(1.8)
52ff559fabSmrg
53862f5301Smrg# Checks for programs.
54ff559fabSmrgAC_PROG_LN_S
55ff559fabSmrg
56515ec619Smrg# Checks for header files.
57515ec619SmrgAC_CHECK_HEADERS([sys/random.h])
58515ec619Smrg
59862f5301Smrg# Checks for libraries.
60ff559fabSmrgAC_SEARCH_LIBS([recvfrom],[socket])
61ff559fabSmrg
626fc0178dSmrgcase $host_os in
636fc0178dSmrg     *mingw*)
646fc0178dSmrg        AC_CHECK_LIB([ws2_32],[main])
656fc0178dSmrg        ;;
666fc0178dSmrg     *)
676fc0178dSmrg        ;;
686fc0178dSmrgesac
696fc0178dSmrg
70515ec619Smrg# Checks for non-standard functions and fallback to libbsd if we can
71515ec619Smrg# We only check for arc4random_buf, because if we have that, we don't
72515ec619Smrg# need/use getentropy.
73515ec619SmrgAC_LINK_IFELSE([AC_LANG_CALL([], [arc4random_buf])],
74515ec619Smrg               [TRY_LIBBSD="no"], [TRY_LIBBSD="yes"])
75515ec619SmrgAS_IF([test "x$TRY_LIBBSD" = "xyes"],
76515ec619Smrg      [PKG_CHECK_MODULES([LIBBSD], [libbsd-overlay], [
77515ec619Smrg	CFLAGS="$CFLAGS $LIBBSD_CFLAGS"
78515ec619Smrg	LIBS="$LIBS $LIBBSD_LIBS"
79515ec619Smrg], [:])])
80515ec619Smrg
81862f5301Smrg# Checks for library functions.
826fc0178dSmrgAC_CHECK_FUNCS([srand48 lrand48 arc4random_buf getentropy])
83862f5301Smrg
84515ec619Smrg# Obtain compiler/linker options for dependencies
85ff559fabSmrgPKG_CHECK_MODULES(XDMCP, xproto)
86ff559fabSmrg
87ff559fabSmrgif test -f ${srcdir}/Wraphelp.c; then
88ff559fabSmrg	AC_DEFINE(HASXDMAUTH,1,[Has Wraphelp.c needed for XDM AUTH protocols])
89ff559fabSmrg	HASXDMAUTH=yes
90ff559fabSmrgelse
91ff559fabSmrg	HASXDMAUTH=no
92ff559fabSmrgfi
93ff559fabSmrg
94ff559fabSmrgAM_CONDITIONAL(HASXDMAUTH,test x$HASXDMAUTH = xyes)
95ff559fabSmrg
96862f5301Smrg# Allow checking code with lint, sparse, etc.
97ff559fabSmrgXORG_WITH_LINT
98ff559fabSmrgXORG_LINT_LIBRARY([Xdmcp])
99ff559fabSmrg
100fc544a13Smrg#  --enable-unit-tests
101fc544a13SmrgXORG_ENABLE_UNIT_TESTS([yes])
102fc544a13Smrg
103862f5301SmrgAC_CONFIG_FILES([Makefile
104862f5301Smrg		doc/Makefile
105fc544a13Smrg		test/Makefile
106862f5301Smrg		xdmcp.pc])
107862f5301SmrgAC_OUTPUT
108