422 lines
13 KiB
Plaintext
422 lines
13 KiB
Plaintext
dnl
|
|
dnl Copyright 2005-2006 Sun Microsystems, Inc. All rights reserved.
|
|
dnl
|
|
dnl Permission is hereby granted, free of charge, to any person obtaining a
|
|
dnl copy of this software and associated documentation files (the
|
|
dnl "Software"), to deal in the Software without restriction, including
|
|
dnl without limitation the rights to use, copy, modify, merge, publish,
|
|
dnl distribute, and/or sell copies of the Software, and to permit persons
|
|
dnl to whom the Software is furnished to do so, provided that the above
|
|
dnl copyright notice(s) and this permission notice appear in all copies of
|
|
dnl the Software and that both the above copyright notice(s) and this
|
|
dnl permission notice appear in supporting documentation.
|
|
dnl
|
|
dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
|
dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
dnl OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
|
dnl HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
|
|
dnl INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
|
|
dnl FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
|
dnl NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
|
dnl WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
dnl
|
|
dnl Except as contained in this notice, the name of a copyright holder
|
|
dnl shall not be used in advertising or otherwise to promote the sale, use
|
|
dnl or other dealings in this Software without prior written authorization
|
|
dnl of the copyright holder.
|
|
|
|
# XORG_MACROS_VERSION(required-version)
|
|
# -------------------------------------
|
|
# Minimum version: 1.1.0
|
|
#
|
|
# If you're using a macro added in Version 1.1 or newer, include this in
|
|
# your configure.ac with the minimum required version, such as:
|
|
# XORG_MACROS_VERSION(1.1)
|
|
#
|
|
# To force at least a version with this macro defined, also add:
|
|
# m4_ifndef([XORG_MACROS_VERSION], [AC_FATAL([must install xorg-macros 1.1 or later before running autoconf/autogen])])
|
|
#
|
|
#
|
|
# See the "minimum version" comment for each macro you use to see what
|
|
# version you require.
|
|
AC_DEFUN([XORG_MACROS_VERSION],[
|
|
[XORG_MACROS_needed_version=$1
|
|
XORG_MACROS_needed_major=`echo $XORG_MACROS_needed_version | sed 's/\..*$//'`
|
|
XORG_MACROS_needed_minor=`echo $XORG_MACROS_needed_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`]
|
|
AC_MSG_CHECKING([if xorg-macros used to generate configure is at least ${XORG_MACROS_needed_major}.${XORG_MACROS_needed_minor}])
|
|
[XORG_MACROS_version=@VERSION@
|
|
XORG_MACROS_major=`echo $XORG_MACROS_version | sed 's/\..*$//'`
|
|
XORG_MACROS_minor=`echo $XORG_MACROS_version | sed -e 's/^[0-9]*\.//' -e 's/\..*$//'`]
|
|
if test $XORG_MACROS_major -ne $XORG_MACROS_needed_major ; then
|
|
AC_MSG_ERROR([configure built with incompatible version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.x])
|
|
fi
|
|
if test $XORG_MACROS_minor -lt $XORG_MACROS_needed_minor ; then
|
|
AC_MSG_ERROR([configure built with too old of a version of xorg-macros.m4 - requires version ${XORG_MACROS_major}.${XORG_MACROS_minor}.0 or newer])
|
|
fi
|
|
AC_MSG_RESULT([yes, $XORG_MACROS_version])
|
|
]) # XORG_MACROS_VERSION
|
|
|
|
# XORG_PROG_RAWCPP()
|
|
# ------------------
|
|
# Minimum version: 1.0.0
|
|
#
|
|
# Find cpp program and necessary flags for use in pre-processing text files
|
|
# such as man pages and config files
|
|
AC_DEFUN([XORG_PROG_RAWCPP],[
|
|
AC_REQUIRE([AC_PROG_CPP])
|
|
AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}],
|
|
[$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib])
|
|
|
|
# Check for flag to avoid builtin definitions - assumes unix is predefined,
|
|
# which is not the best choice for supporting other OS'es, but covers most
|
|
# of the ones we need for now.
|
|
AC_MSG_CHECKING([if $RAWCPP requires -undef])
|
|
AC_LANG_CONFTEST([Does cpp redefine unix ?])
|
|
if test `${RAWCPP} < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then
|
|
AC_MSG_RESULT([no])
|
|
else
|
|
if test `${RAWCPP} -undef < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then
|
|
RAWCPPFLAGS=-undef
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_ERROR([${RAWCPP} defines unix with or without -undef. I don't know what to do.])
|
|
fi
|
|
fi
|
|
rm -f conftest.$ac_ext
|
|
|
|
AC_MSG_CHECKING([if $RAWCPP requires -traditional])
|
|
AC_LANG_CONFTEST([Does cpp preserve "whitespace"?])
|
|
if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then
|
|
AC_MSG_RESULT([no])
|
|
else
|
|
if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then
|
|
RAWCPPFLAGS="${RAWCPPFLAGS} -traditional"
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_ERROR([${RAWCPP} does not preserve whitespace with or without -traditional. I don't know what to do.])
|
|
fi
|
|
fi
|
|
rm -f conftest.$ac_ext
|
|
AC_SUBST(RAWCPPFLAGS)
|
|
]) # XORG_PROG_RAWCPP
|
|
|
|
# XORG_MANPAGE_SECTIONS()
|
|
# -----------------------
|
|
# Minimum version: 1.0.0
|
|
#
|
|
# Determine which sections man pages go in for the different man page types
|
|
# on this OS - replaces *ManSuffix settings in old Imake *.cf per-os files.
|
|
# Not sure if there's any better way than just hardcoding by OS name.
|
|
# Override default settings by setting environment variables
|
|
|
|
AC_DEFUN([XORG_MANPAGE_SECTIONS],[
|
|
AC_REQUIRE([AC_CANONICAL_HOST])
|
|
|
|
if test x$APP_MAN_SUFFIX = x ; then
|
|
APP_MAN_SUFFIX=1
|
|
fi
|
|
if test x$APP_MAN_DIR = x ; then
|
|
APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)'
|
|
fi
|
|
|
|
if test x$LIB_MAN_SUFFIX = x ; then
|
|
LIB_MAN_SUFFIX=3
|
|
fi
|
|
if test x$LIB_MAN_DIR = x ; then
|
|
LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)'
|
|
fi
|
|
|
|
if test x$FILE_MAN_SUFFIX = x ; then
|
|
case $host_os in
|
|
solaris*) FILE_MAN_SUFFIX=4 ;;
|
|
*) FILE_MAN_SUFFIX=5 ;;
|
|
esac
|
|
fi
|
|
if test x$FILE_MAN_DIR = x ; then
|
|
FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)'
|
|
fi
|
|
|
|
if test x$MISC_MAN_SUFFIX = x ; then
|
|
case $host_os in
|
|
solaris*) MISC_MAN_SUFFIX=5 ;;
|
|
*) MISC_MAN_SUFFIX=7 ;;
|
|
esac
|
|
fi
|
|
if test x$MISC_MAN_DIR = x ; then
|
|
MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)'
|
|
fi
|
|
|
|
if test x$DRIVER_MAN_SUFFIX = x ; then
|
|
case $host_os in
|
|
solaris*) DRIVER_MAN_SUFFIX=7 ;;
|
|
*) DRIVER_MAN_SUFFIX=4 ;;
|
|
esac
|
|
fi
|
|
if test x$DRIVER_MAN_DIR = x ; then
|
|
DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)'
|
|
fi
|
|
|
|
if test x$ADMIN_MAN_SUFFIX = x ; then
|
|
case $host_os in
|
|
solaris*) ADMIN_MAN_SUFFIX=1m ;;
|
|
*) ADMIN_MAN_SUFFIX=8 ;;
|
|
esac
|
|
fi
|
|
if test x$ADMIN_MAN_DIR = x ; then
|
|
ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)'
|
|
fi
|
|
|
|
|
|
AC_SUBST([APP_MAN_SUFFIX])
|
|
AC_SUBST([LIB_MAN_SUFFIX])
|
|
AC_SUBST([FILE_MAN_SUFFIX])
|
|
AC_SUBST([MISC_MAN_SUFFIX])
|
|
AC_SUBST([DRIVER_MAN_SUFFIX])
|
|
AC_SUBST([ADMIN_MAN_SUFFIX])
|
|
AC_SUBST([APP_MAN_DIR])
|
|
AC_SUBST([LIB_MAN_DIR])
|
|
AC_SUBST([FILE_MAN_DIR])
|
|
AC_SUBST([MISC_MAN_DIR])
|
|
AC_SUBST([DRIVER_MAN_DIR])
|
|
AC_SUBST([ADMIN_MAN_DIR])
|
|
]) # XORG_MANPAGE_SECTIONS
|
|
|
|
# XORG_CHECK_LINUXDOC
|
|
# -------------------
|
|
# Minimum version: 1.0.0
|
|
#
|
|
# Defines the variable MAKE_TEXT if the necessary tools and
|
|
# files are found. $(MAKE_TEXT) blah.sgml will then produce blah.txt.
|
|
# Whether or not the necessary tools and files are found can be checked
|
|
# with the AM_CONDITIONAL "BUILD_LINUXDOC"
|
|
AC_DEFUN([XORG_CHECK_LINUXDOC],[
|
|
XORG_SGML_PATH=$prefix/share/sgml
|
|
HAVE_DEFS_ENT=
|
|
|
|
AC_CHECK_FILE([$XORG_SGML_PATH/X11/defs.ent], [HAVE_DEFS_ENT=yes])
|
|
|
|
AC_PATH_PROG(LINUXDOC, linuxdoc)
|
|
AC_PATH_PROG(PS2PDF, ps2pdf)
|
|
|
|
AC_MSG_CHECKING([Whether to build documentation])
|
|
|
|
if test x$HAVE_DEFS_ENT != x && test x$LINUXDOC != x ; then
|
|
BUILDDOC=yes
|
|
else
|
|
BUILDDOC=no
|
|
fi
|
|
|
|
AM_CONDITIONAL(BUILD_LINUXDOC, [test x$BUILDDOC = xyes])
|
|
|
|
AC_MSG_RESULT([$BUILDDOC])
|
|
|
|
AC_MSG_CHECKING([Whether to build pdf documentation])
|
|
|
|
if test x$PS2PDF != x && test x$BUILD_PDFDOC != xno; then
|
|
BUILDPDFDOC=yes
|
|
else
|
|
BUILDPDFDOC=no
|
|
fi
|
|
|
|
AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes])
|
|
|
|
AC_MSG_RESULT([$BUILDPDFDOC])
|
|
|
|
MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH GROFF_NO_SGR=y $LINUXDOC -B txt"
|
|
MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B latex --papersize=letter --output=ps"
|
|
MAKE_PDF="$PS2PDF"
|
|
MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B html --split=0"
|
|
|
|
AC_SUBST(MAKE_TEXT)
|
|
AC_SUBST(MAKE_PS)
|
|
AC_SUBST(MAKE_PDF)
|
|
AC_SUBST(MAKE_HTML)
|
|
]) # XORG_CHECK_LINUXDOC
|
|
|
|
# XORG_CHECK_DOCBOOK
|
|
# -------------------
|
|
# Minimum version: 1.0.0
|
|
#
|
|
# Checks for the ability to build output formats from SGML DocBook source.
|
|
# For XXX in {TXT, PDF, PS, HTML}, the AM_CONDITIONAL "BUILD_XXXDOC"
|
|
# indicates whether the necessary tools and files are found and, if set,
|
|
# $(MAKE_XXX) blah.sgml will produce blah.xxx.
|
|
AC_DEFUN([XORG_CHECK_DOCBOOK],[
|
|
XORG_SGML_PATH=$prefix/share/sgml
|
|
HAVE_DEFS_ENT=
|
|
BUILDTXTDOC=no
|
|
BUILDPDFDOC=no
|
|
BUILDPSDOC=no
|
|
BUILDHTMLDOC=no
|
|
|
|
AC_CHECK_FILE([$XORG_SGML_PATH/X11/defs.ent], [HAVE_DEFS_ENT=yes])
|
|
|
|
AC_PATH_PROG(DOCBOOKPS, docbook2ps)
|
|
AC_PATH_PROG(DOCBOOKPDF, docbook2pdf)
|
|
AC_PATH_PROG(DOCBOOKHTML, docbook2html)
|
|
AC_PATH_PROG(DOCBOOKTXT, docbook2txt)
|
|
|
|
AC_MSG_CHECKING([Whether to build text documentation])
|
|
if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKTXT != x &&
|
|
test x$BUILD_TXTDOC != xno; then
|
|
BUILDTXTDOC=yes
|
|
fi
|
|
AM_CONDITIONAL(BUILD_TXTDOC, [test x$BUILDTXTDOC = xyes])
|
|
AC_MSG_RESULT([$BUILDTXTDOC])
|
|
|
|
AC_MSG_CHECKING([Whether to build PDF documentation])
|
|
if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKPDF != x &&
|
|
test x$BUILD_PDFDOC != xno; then
|
|
BUILDPDFDOC=yes
|
|
fi
|
|
AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes])
|
|
AC_MSG_RESULT([$BUILDPDFDOC])
|
|
|
|
AC_MSG_CHECKING([Whether to build PostScript documentation])
|
|
if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKPS != x &&
|
|
test x$BUILD_PSDOC != xno; then
|
|
BUILDPSDOC=yes
|
|
fi
|
|
AM_CONDITIONAL(BUILD_PSDOC, [test x$BUILDPSDOC = xyes])
|
|
AC_MSG_RESULT([$BUILDPSDOC])
|
|
|
|
AC_MSG_CHECKING([Whether to build HTML documentation])
|
|
if test x$HAVE_DEFS_ENT != x && test x$DOCBOOKHTML != x &&
|
|
test x$BUILD_HTMLDOC != xno; then
|
|
BUILDHTMLDOC=yes
|
|
fi
|
|
AM_CONDITIONAL(BUILD_HTMLDOC, [test x$BUILDHTMLDOC = xyes])
|
|
AC_MSG_RESULT([$BUILDHTMLDOC])
|
|
|
|
MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKTXT"
|
|
MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPS"
|
|
MAKE_PDF="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPDF"
|
|
MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKHTML"
|
|
|
|
AC_SUBST(MAKE_TEXT)
|
|
AC_SUBST(MAKE_PS)
|
|
AC_SUBST(MAKE_PDF)
|
|
AC_SUBST(MAKE_HTML)
|
|
]) # XORG_CHECK_DOCBOOK
|
|
|
|
# XORG_CHECK_MALLOC_ZERO
|
|
# ----------------------
|
|
# Minimum version: 1.0.0
|
|
#
|
|
# Defines {MALLOC,XMALLOC,XTMALLOC}_ZERO_CFLAGS appropriately if
|
|
# malloc(0) returns NULL. Packages should add one of these cflags to
|
|
# their AM_CFLAGS (or other appropriate *_CFLAGS) to use them.
|
|
AC_DEFUN([XORG_CHECK_MALLOC_ZERO],[
|
|
AC_ARG_ENABLE(malloc0returnsnull,
|
|
AC_HELP_STRING([--enable-malloc0returnsnull],
|
|
[malloc(0) returns NULL (default: auto)]),
|
|
[MALLOC_ZERO_RETURNS_NULL=$enableval],
|
|
[MALLOC_ZERO_RETURNS_NULL=auto])
|
|
|
|
AC_MSG_CHECKING([whether malloc(0) returns NULL])
|
|
if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then
|
|
AC_RUN_IFELSE([
|
|
char *malloc();
|
|
char *realloc();
|
|
char *calloc();
|
|
main() {
|
|
char *m0, *r0, *c0, *p;
|
|
m0 = malloc(0);
|
|
p = malloc(10);
|
|
r0 = realloc(p,0);
|
|
c0 = calloc(0);
|
|
exit(m0 == 0 || r0 == 0 || c0 == 0 ? 0 : 1);
|
|
}],
|
|
[MALLOC_ZERO_RETURNS_NULL=yes],
|
|
[MALLOC_ZERO_RETURNS_NULL=no])
|
|
fi
|
|
AC_MSG_RESULT([$MALLOC_ZERO_RETURNS_NULL])
|
|
|
|
if test "x$MALLOC_ZERO_RETURNS_NULL" = xyes; then
|
|
MALLOC_ZERO_CFLAGS="-DMALLOC_0_RETURNS_NULL"
|
|
XMALLOC_ZERO_CFLAGS=$MALLOC_ZERO_CFLAGS
|
|
XTMALLOC_ZERO_CFLAGS="$MALLOC_ZERO_CFLAGS -DXTMALLOC_BC"
|
|
else
|
|
MALLOC_ZERO_CFLAGS=""
|
|
XMALLOC_ZERO_CFLAGS=""
|
|
XTMALLOC_ZERO_CFLAGS=""
|
|
fi
|
|
|
|
AC_SUBST([MALLOC_ZERO_CFLAGS])
|
|
AC_SUBST([XMALLOC_ZERO_CFLAGS])
|
|
AC_SUBST([XTMALLOC_ZERO_CFLAGS])
|
|
]) # XORG_CHECK_MALLOC_ZERO
|
|
|
|
# XORG_WITH_LINT()
|
|
# ----------------
|
|
# Minimum version: 1.1.0
|
|
#
|
|
# Sets up flags for source checkers such as lint and sparse if --with-lint
|
|
# is specified. (Use --with-lint=sparse for sparse.)
|
|
# Sets $LINT to name of source checker passed with --with-lint (default: lint)
|
|
# Sets $LINT_FLAGS to flags to pass to source checker
|
|
# Sets LINT automake conditional if enabled (default: disabled)
|
|
#
|
|
AC_DEFUN([XORG_WITH_LINT],[
|
|
|
|
# Allow checking code with lint, sparse, etc.
|
|
AC_ARG_WITH(lint, [AC_HELP_STRING([--with-lint],
|
|
[Use a lint-style source code checker (default: disabled)])],
|
|
[use_lint=$withval], [use_lint=no])
|
|
if test "x$use_lint" = "xyes" ; then
|
|
LINT="lint"
|
|
else
|
|
LINT="$use_lint"
|
|
fi
|
|
if test "x$LINT_FLAGS" = "x" -a "x$LINT" != "xno" ; then
|
|
case $LINT in
|
|
lint|*/lint)
|
|
case $host_os in
|
|
solaris*)
|
|
LINT_FLAGS="-u -b -h -erroff=E_INDISTING_FROM_TRUNC2"
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
AC_SUBST(LINT)
|
|
AC_SUBST(LINT_FLAGS)
|
|
AM_CONDITIONAL(LINT, [test x$LINT != xno])
|
|
|
|
]) # XORG_WITH_LINT
|
|
|
|
# XORG_LINT_LIBRARY(LIBNAME)
|
|
# --------------------------
|
|
# Minimum version: 1.1.0
|
|
#
|
|
# Sets up flags for building lint libraries for checking programs that call
|
|
# functions in the library.
|
|
# Disabled by default, enable with --enable-lint-library
|
|
# Sets:
|
|
# @LINTLIB@ - name of lint library file to make
|
|
# MAKE_LINT_LIB - automake conditional
|
|
#
|
|
|
|
AC_DEFUN([XORG_LINT_LIBRARY],[
|
|
AC_REQUIRE([XORG_WITH_LINT])
|
|
# Build lint "library" for more indepth checks of programs calling this library
|
|
AC_ARG_ENABLE(lint-library, [AC_HELP_STRING([--enable-lint-library],
|
|
[Create lint library (default: disabled)])],
|
|
[make_lint_lib=$enableval], [make_lint_lib=no])
|
|
if test "x$make_lint_lib" != "xno" ; then
|
|
if test "x$LINT" = "xno" ; then
|
|
AC_MSG_ERROR([Cannot make lint library without --with-lint])
|
|
fi
|
|
if test "x$make_lint_lib" = "xyes" ; then
|
|
LINTLIB=llib-l$1.ln
|
|
else
|
|
LINTLIB=$make_lint_lib
|
|
fi
|
|
fi
|
|
AC_SUBST(LINTLIB)
|
|
AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno])
|
|
|
|
]) # XORG_LINT_LIBRARY
|