nss-myhostname: integrate into systemd buildsystem
Note that there are still some rome for cleanups. In particular, the .la files are now installed, which we probably don't want; and some of the macros in Makefile.am are likely redundan.
This commit is contained in:
parent
cbc06dcd8f
commit
d562955eac
21
Makefile.am
21
Makefile.am
|
@ -3549,6 +3549,27 @@ pamlib_LTLIBRARIES = \
|
||||||
pam_systemd.la
|
pam_systemd.la
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if HAVE_MYHOSTNAME
|
||||||
|
libnss_myhostname_la_SOURCES = \
|
||||||
|
src/nss-myhostname/nss-myhostname.c \
|
||||||
|
src/nss-myhostname/ifconf.h \
|
||||||
|
src/nss-myhostname/netlink.c
|
||||||
|
|
||||||
|
libnss_myhostname_la_CFLAGS = \
|
||||||
|
$(AM_CFLAGS)
|
||||||
|
|
||||||
|
libnss_myhostname_la_LDFLAGS = \
|
||||||
|
$(AM_LDFLAGS) \
|
||||||
|
-module \
|
||||||
|
-export-dynamic \
|
||||||
|
-avoid-version \
|
||||||
|
-shared \
|
||||||
|
-shrext .so.2
|
||||||
|
|
||||||
|
lib_LTLIBRARIES += \
|
||||||
|
libnss_myhostname.la
|
||||||
|
endif
|
||||||
|
|
||||||
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
|
# move lib from $(libdir) to $(rootlibdir) and update devel link, if needed
|
||||||
libsystemd-login-install-hook:
|
libsystemd-login-install-hook:
|
||||||
libname=libsystemd-login.so && $(move-to-rootlibdir)
|
libname=libsystemd-login.so && $(move-to-rootlibdir)
|
||||||
|
|
20
configure.ac
20
configure.ac
|
@ -652,6 +652,25 @@ AC_DEFINE_UNQUOTED(KBD_SETFONT, ["$KBD_SETFONT"], [Path of setfont])
|
||||||
AC_SUBST(KBD_LOADKEYS)
|
AC_SUBST(KBD_LOADKEYS)
|
||||||
AC_SUBST(KBD_SETFONT)
|
AC_SUBST(KBD_SETFONT)
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
have_myhostname=no
|
||||||
|
AC_ARG_ENABLE(myhostname, AS_HELP_STRING([--disable-nss-myhostname], [disable nss-myhostname support]))
|
||||||
|
if test "x$enable_myhostname" != "xno"; then
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/time.h unistd.h nss.h sys/ioctl.h])
|
||||||
|
|
||||||
|
AC_C_CONST
|
||||||
|
AC_TYPE_SIZE_T
|
||||||
|
AC_HEADER_TIME
|
||||||
|
|
||||||
|
AC_FUNC_MALLOC
|
||||||
|
AC_FUNC_SELECT_ARGTYPES
|
||||||
|
AC_CHECK_FUNCS([gethostbyaddr gethostbyname gettimeofday inet_ntoa memset select socket strcspn strdup strerror strncasecmp strcasecmp strspn])
|
||||||
|
|
||||||
|
have_myhostname=yes
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"])
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
AC_ARG_WITH(firmware-path,
|
AC_ARG_WITH(firmware-path,
|
||||||
AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]],
|
AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]],
|
||||||
|
@ -835,6 +854,7 @@ AC_MSG_RESULT([
|
||||||
coredump: ${have_coredump}
|
coredump: ${have_coredump}
|
||||||
kmod: ${have_kmod}
|
kmod: ${have_kmod}
|
||||||
blkid: ${have_blkid}
|
blkid: ${have_blkid}
|
||||||
|
nss-myhostname: ${have_myhostname}
|
||||||
gudev: ${enable_gudev}
|
gudev: ${enable_gudev}
|
||||||
gintrospection: ${enable_introspection}
|
gintrospection: ${enable_introspection}
|
||||||
keymap: ${enable_keymap}
|
keymap: ${enable_keymap}
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
# This file is part of nss-myhostname.
|
|
||||||
#
|
|
||||||
# Copyright 2008 Lennart Poettering
|
|
||||||
#
|
|
||||||
# nss-myhostname is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation, either version 2.1 of
|
|
||||||
# the License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# nss-myhostname is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
# Lesser General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Lesser General Public
|
|
||||||
# License along with nss-myhostname. If not, If not, see
|
|
||||||
# <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
|
||||||
|
|
||||||
lib_LTLIBRARIES = libnss_myhostname.la
|
|
||||||
|
|
||||||
EXTRA_DIST=bootstrap.sh README LICENSE
|
|
||||||
SUBDIRS=doc
|
|
||||||
|
|
||||||
AM_CPPFLAGS = -include $(top_builddir)/config.h
|
|
||||||
|
|
||||||
MAINTAINERCLEANFILES=README
|
|
||||||
noinst_DATA = README
|
|
||||||
|
|
||||||
README:
|
|
||||||
rm -f README
|
|
||||||
$(MAKE) -C doc README
|
|
||||||
cd $(srcdir) && ln -s doc/README README
|
|
||||||
|
|
||||||
homepage: all dist
|
|
||||||
test -d $$HOME/homepage/private
|
|
||||||
mkdir -p $$HOME/homepage/private/projects/nss-myhostname
|
|
||||||
cp nss-myhostname-@PACKAGE_VERSION@.tar.gz doc/README.html doc/style.css $$HOME/homepage/private/projects/nss-myhostname
|
|
||||||
ln -sf README.html $$HOME/homepage/private/projects/nss-myhostname/index.html
|
|
||||||
|
|
||||||
.PHONY: homepage
|
|
||||||
|
|
||||||
libnss_myhostname_la_SOURCES = \
|
|
||||||
nss-myhostname.c \
|
|
||||||
ifconf.h
|
|
||||||
|
|
||||||
libnss_myhostname_la_SOURCES += netlink.c
|
|
||||||
|
|
||||||
libnss_myhostname_la_LDFLAGS = \
|
|
||||||
-avoid-version \
|
|
||||||
-module \
|
|
||||||
-export-dynamic \
|
|
||||||
-shrext .so.2
|
|
||||||
|
|
||||||
install-exec-hook:
|
|
||||||
rm -f $(DESTDIR)$(libdir)/libnss_myhostname.la
|
|
||||||
rm -f $(DESTDIR)$(libdir)/libnss_myhostname_minimal.la
|
|
||||||
|
|
||||||
uninstall-hook:
|
|
||||||
rm -f $(DESTDIR)$(libdir)/libnss_myhostname.so.2
|
|
||||||
rm -f $(DESTDIR)$(libdir)/libnss_myhostname_minimal.so.2
|
|
|
@ -1,66 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# This file is part of nss-myhostname.
|
|
||||||
#
|
|
||||||
# Copyright 2008 Lennart Poettering
|
|
||||||
#
|
|
||||||
# nss-myhostname is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation, either version 2.1 of
|
|
||||||
# the License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# nss-myhostname is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
# Lesser General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Lesser General Public
|
|
||||||
# License along with nss-myhostname. If not, If not, see
|
|
||||||
# <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
VERSION=1.9
|
|
||||||
|
|
||||||
run_versioned() {
|
|
||||||
local P
|
|
||||||
local V
|
|
||||||
|
|
||||||
V=$(echo "$2" | sed -e 's,\.,,g')
|
|
||||||
|
|
||||||
if [ -e "`which $1$V 2> /dev/null`" ] ; then
|
|
||||||
P="$1$V"
|
|
||||||
else
|
|
||||||
if [ -e "`which $1-$2 2> /dev/null`" ] ; then
|
|
||||||
P="$1-$2"
|
|
||||||
else
|
|
||||||
P="$1"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
shift 2
|
|
||||||
"$P" "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
set -ex
|
|
||||||
|
|
||||||
if [ "x$1" = "xam" ] ; then
|
|
||||||
run_versioned automake "$VERSION" -a -c --foreign
|
|
||||||
./config.status
|
|
||||||
else
|
|
||||||
rm -rf autom4te.cache
|
|
||||||
rm -f config.cache
|
|
||||||
|
|
||||||
touch config.rpath
|
|
||||||
test "x$LIBTOOLIZE" = "x" && LIBTOOLIZE=libtoolize
|
|
||||||
|
|
||||||
mkdir -p m4
|
|
||||||
"$LIBTOOLIZE" -c --force
|
|
||||||
run_versioned aclocal "$VERSION" -I m4
|
|
||||||
run_versioned autoconf 2.59 -Wall
|
|
||||||
run_versioned autoheader 2.59
|
|
||||||
run_versioned automake "$VERSION" --copy --foreign --add-missing
|
|
||||||
|
|
||||||
if test "x$NOCONFIGURE" = "x"; then
|
|
||||||
CFLAGS="-g -O0" ./configure --sysconfdir=/etc --localstatedir=/var "$@"
|
|
||||||
make clean
|
|
||||||
fi
|
|
||||||
fi
|
|
|
@ -1,79 +0,0 @@
|
||||||
# -*- Autoconf -*-
|
|
||||||
# Process this file with autoconf to produce a configure script.
|
|
||||||
|
|
||||||
# This file is part of nss-myhostname.
|
|
||||||
#
|
|
||||||
# Copyright 2008 Lennart Poettering
|
|
||||||
#
|
|
||||||
# nss-myhostname is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation, either version 2.1 of
|
|
||||||
# the License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# nss-myhostname is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
# Lesser General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Lesser General Public
|
|
||||||
# License along with nss-myhostname. If not, If not, see
|
|
||||||
# <http://www.gnu.org/licenses/>.
|
|
||||||
|
|
||||||
AC_PREREQ(2.62)
|
|
||||||
AC_INIT([nss-myhostname],[0.3],[mzzlubfganzr (at) 0pointer (dot) de])
|
|
||||||
AC_CONFIG_SRCDIR([nss-myhostname.c])
|
|
||||||
AC_CONFIG_HEADERS([config.h])
|
|
||||||
AC_CONFIG_MACRO_DIR(m4)
|
|
||||||
AC_USE_SYSTEM_EXTENSIONS
|
|
||||||
AC_SYS_LARGEFILE
|
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([foreign 1.9 -Wall -Wno-portability silent-rules tar-pax subdir-objects dist-bzip2])
|
|
||||||
|
|
||||||
AC_SUBST(PACKAGE_URL, [http://0pointer.de/lennart/projects/nss-myhostname/])
|
|
||||||
|
|
||||||
ac_default_prefix="/"
|
|
||||||
|
|
||||||
AC_CANONICAL_HOST
|
|
||||||
|
|
||||||
# Checks for programs.
|
|
||||||
AC_PROG_CC
|
|
||||||
AC_PROG_CC_C99
|
|
||||||
AC_PROG_CPP
|
|
||||||
|
|
||||||
AC_PROG_INSTALL
|
|
||||||
AC_PROG_LN_S
|
|
||||||
AC_PROG_MAKE_SET
|
|
||||||
|
|
||||||
# GCC flags
|
|
||||||
|
|
||||||
DESIRED_FLAGS="-Wall -W -Wextra -pedantic -pipe -Wformat -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith -Wcast-align -Wwrite-strings -Winline -Wno-unused-parameter -ffast-math -fvisibility=hidden -fdiagnostics-show-option"
|
|
||||||
|
|
||||||
for flag in $DESIRED_FLAGS ; do
|
|
||||||
CC_CHECK_CFLAGS([$flag], [CFLAGS="$CFLAGS $flag"])
|
|
||||||
done
|
|
||||||
|
|
||||||
# libtool stuff
|
|
||||||
AC_DISABLE_STATIC
|
|
||||||
LT_PREREQ(2.2)
|
|
||||||
LT_INIT
|
|
||||||
|
|
||||||
# Checks for header files.
|
|
||||||
AC_HEADER_STDC
|
|
||||||
AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/time.h unistd.h nss.h sys/ioctl.h])
|
|
||||||
|
|
||||||
# Checks for typedefs, structures, and compiler characteristics.
|
|
||||||
AC_C_CONST
|
|
||||||
AC_TYPE_SIZE_T
|
|
||||||
AC_HEADER_TIME
|
|
||||||
|
|
||||||
# Checks for library functions.
|
|
||||||
AC_FUNC_MALLOC
|
|
||||||
AC_FUNC_SELECT_ARGTYPES
|
|
||||||
AC_CHECK_FUNCS([gethostbyaddr gethostbyname gettimeofday inet_ntoa memset select socket strcspn strdup strerror strncasecmp strcasecmp strspn])
|
|
||||||
|
|
||||||
# LYNX documentation generation
|
|
||||||
ZP_LYNX_DOC
|
|
||||||
|
|
||||||
AC_CONFIG_FILES([Makefile doc/Makefile doc/README.html ])
|
|
||||||
|
|
||||||
AC_OUTPUT
|
|
|
@ -1,258 +0,0 @@
|
||||||
dnl Macros to check the presence of generic (non-typed) symbols.
|
|
||||||
dnl Copyright (c) 2006-2007 Diego Pettenò <flameeyes@gmail.com>
|
|
||||||
dnl Copyright (c) 2006-2007 xine project
|
|
||||||
dnl
|
|
||||||
dnl This program is free software; you can redistribute it and/or modify
|
|
||||||
dnl it under the terms of the GNU General Public License as published by
|
|
||||||
dnl the Free Software Foundation; either version 2, or (at your option)
|
|
||||||
dnl any later version.
|
|
||||||
dnl
|
|
||||||
dnl This program is distributed in the hope that it will be useful,
|
|
||||||
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
dnl GNU General Public License for more details.
|
|
||||||
dnl
|
|
||||||
dnl You should have received a copy of the GNU General Public License
|
|
||||||
dnl along with this program; if not, write to the Free Software
|
|
||||||
dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
||||||
dnl 02110-1301, USA.
|
|
||||||
dnl
|
|
||||||
dnl As a special exception, the copyright owners of the
|
|
||||||
dnl macro gives unlimited permission to copy, distribute and modify the
|
|
||||||
dnl configure scripts that are the output of Autoconf when processing the
|
|
||||||
dnl Macro. You need not follow the terms of the GNU General Public
|
|
||||||
dnl License when using or distributing such scripts, even though portions
|
|
||||||
dnl of the text of the Macro appear in them. The GNU General Public
|
|
||||||
dnl License (GPL) does govern all other use of the material that
|
|
||||||
dnl constitutes the Autoconf Macro.
|
|
||||||
dnl
|
|
||||||
dnl This special exception to the GPL applies to versions of the
|
|
||||||
dnl Autoconf Macro released by this project. When you make and
|
|
||||||
dnl distribute a modified version of the Autoconf Macro, you may extend
|
|
||||||
dnl this special exception to the GPL to apply to your modified version as
|
|
||||||
dnl well.
|
|
||||||
|
|
||||||
AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [
|
|
||||||
AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]),
|
|
||||||
[ac_save_CFLAGS="$CFLAGS"
|
|
||||||
CFLAGS="$CFLAGS $1"
|
|
||||||
AC_COMPILE_IFELSE([int a;],
|
|
||||||
[eval "AS_TR_SH([cc_cv_cflags_$1])='yes'"],
|
|
||||||
[eval "AS_TR_SH([cc_cv_cflags_$1])='no'"])
|
|
||||||
CFLAGS="$ac_save_CFLAGS"
|
|
||||||
])
|
|
||||||
|
|
||||||
AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes],
|
|
||||||
[$2], [$3])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_CHECK_CFLAGS], [
|
|
||||||
AC_CACHE_CHECK([if $CC supports $1 flag],
|
|
||||||
AS_TR_SH([cc_cv_cflags_$1]),
|
|
||||||
CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here!
|
|
||||||
)
|
|
||||||
|
|
||||||
AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes],
|
|
||||||
[$2], [$3])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_CHECK_LDFLAGS], [
|
|
||||||
AC_CACHE_CHECK([if $CC supports $1 flag],
|
|
||||||
AS_TR_SH([cc_cv_ldflags_$1]),
|
|
||||||
[ac_save_LDFLAGS="$LDFLAGS"
|
|
||||||
LDFLAGS="$LDFLAGS $1"
|
|
||||||
AC_LINK_IFELSE([int main() { return 1; }],
|
|
||||||
[eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"],
|
|
||||||
[eval "AS_TR_SH([cc_cv_ldflags_$1])="])
|
|
||||||
LDFLAGS="$ac_save_LDFLAGS"
|
|
||||||
])
|
|
||||||
|
|
||||||
AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes],
|
|
||||||
[$2], [$3])
|
|
||||||
])
|
|
||||||
|
|
||||||
dnl Check for a -Werror flag or equivalent. -Werror is the GCC
|
|
||||||
dnl and ICC flag that tells the compiler to treat all the warnings
|
|
||||||
dnl as fatal. We usually need this option to make sure that some
|
|
||||||
dnl constructs (like attributes) are not simply ignored.
|
|
||||||
dnl
|
|
||||||
dnl Other compilers don't support -Werror per se, but they support
|
|
||||||
dnl an equivalent flag:
|
|
||||||
dnl - Sun Studio compiler supports -errwarn=%all
|
|
||||||
AC_DEFUN([CC_CHECK_WERROR], [
|
|
||||||
AC_CACHE_CHECK(
|
|
||||||
[for $CC way to treat warnings as errors],
|
|
||||||
[cc_cv_werror],
|
|
||||||
[CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror],
|
|
||||||
[CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])])
|
|
||||||
])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_CHECK_ATTRIBUTE], [
|
|
||||||
AC_REQUIRE([CC_CHECK_WERROR])
|
|
||||||
AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))],
|
|
||||||
AS_TR_SH([cc_cv_attribute_$1]),
|
|
||||||
[ac_save_CFLAGS="$CFLAGS"
|
|
||||||
CFLAGS="$CFLAGS $cc_cv_werror"
|
|
||||||
AC_COMPILE_IFELSE([$3],
|
|
||||||
[eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"],
|
|
||||||
[eval "AS_TR_SH([cc_cv_attribute_$1])='no'"])
|
|
||||||
CFLAGS="$ac_save_CFLAGS"
|
|
||||||
])
|
|
||||||
|
|
||||||
AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes],
|
|
||||||
[AC_DEFINE(
|
|
||||||
AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1,
|
|
||||||
[Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))]
|
|
||||||
)
|
|
||||||
$4],
|
|
||||||
[$5])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [
|
|
||||||
CC_CHECK_ATTRIBUTE(
|
|
||||||
[constructor],,
|
|
||||||
[void __attribute__((constructor)) ctor() { int a; }],
|
|
||||||
[$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_ATTRIBUTE_FORMAT], [
|
|
||||||
CC_CHECK_ATTRIBUTE(
|
|
||||||
[format], [format(printf, n, n)],
|
|
||||||
[void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }],
|
|
||||||
[$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [
|
|
||||||
CC_CHECK_ATTRIBUTE(
|
|
||||||
[format_arg], [format_arg(printf)],
|
|
||||||
[char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }],
|
|
||||||
[$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [
|
|
||||||
CC_CHECK_ATTRIBUTE(
|
|
||||||
[visibility_$1], [visibility("$1")],
|
|
||||||
[void __attribute__((visibility("$1"))) $1_function() { }],
|
|
||||||
[$2], [$3])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_ATTRIBUTE_NONNULL], [
|
|
||||||
CC_CHECK_ATTRIBUTE(
|
|
||||||
[nonnull], [nonnull()],
|
|
||||||
[void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }],
|
|
||||||
[$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_ATTRIBUTE_UNUSED], [
|
|
||||||
CC_CHECK_ATTRIBUTE(
|
|
||||||
[unused], ,
|
|
||||||
[void some_function(void *foo, __attribute__((unused)) void *bar);],
|
|
||||||
[$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [
|
|
||||||
CC_CHECK_ATTRIBUTE(
|
|
||||||
[sentinel], ,
|
|
||||||
[void some_function(void *foo, ...) __attribute__((sentinel));],
|
|
||||||
[$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [
|
|
||||||
CC_CHECK_ATTRIBUTE(
|
|
||||||
[deprecated], ,
|
|
||||||
[void some_function(void *foo, ...) __attribute__((deprecated));],
|
|
||||||
[$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_ATTRIBUTE_ALIAS], [
|
|
||||||
CC_CHECK_ATTRIBUTE(
|
|
||||||
[alias], [weak, alias],
|
|
||||||
[void other_function(void *foo) { }
|
|
||||||
void some_function(void *foo) __attribute__((weak, alias("other_function")));],
|
|
||||||
[$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_ATTRIBUTE_MALLOC], [
|
|
||||||
CC_CHECK_ATTRIBUTE(
|
|
||||||
[malloc], ,
|
|
||||||
[void * __attribute__((malloc)) my_alloc(int n);],
|
|
||||||
[$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_ATTRIBUTE_PACKED], [
|
|
||||||
CC_CHECK_ATTRIBUTE(
|
|
||||||
[packed], ,
|
|
||||||
[struct astructure { char a; int b; long c; void *d; } __attribute__((packed));],
|
|
||||||
[$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_ATTRIBUTE_CONST], [
|
|
||||||
CC_CHECK_ATTRIBUTE(
|
|
||||||
[const], ,
|
|
||||||
[int __attribute__((const)) twopow(int n) { return 1 << n; } ],
|
|
||||||
[$1], [$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_FLAG_VISIBILITY], [
|
|
||||||
AC_REQUIRE([CC_CHECK_WERROR])
|
|
||||||
AC_CACHE_CHECK([if $CC supports -fvisibility=hidden],
|
|
||||||
[cc_cv_flag_visibility],
|
|
||||||
[cc_flag_visibility_save_CFLAGS="$CFLAGS"
|
|
||||||
CFLAGS="$CFLAGS $cc_cv_werror"
|
|
||||||
CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden],
|
|
||||||
cc_cv_flag_visibility='yes',
|
|
||||||
cc_cv_flag_visibility='no')
|
|
||||||
CFLAGS="$cc_flag_visibility_save_CFLAGS"])
|
|
||||||
|
|
||||||
AS_IF([test "x$cc_cv_flag_visibility" = "xyes"],
|
|
||||||
[AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1,
|
|
||||||
[Define this if the compiler supports the -fvisibility flag])
|
|
||||||
$1],
|
|
||||||
[$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_FUNC_EXPECT], [
|
|
||||||
AC_REQUIRE([CC_CHECK_WERROR])
|
|
||||||
AC_CACHE_CHECK([if compiler has __builtin_expect function],
|
|
||||||
[cc_cv_func_expect],
|
|
||||||
[ac_save_CFLAGS="$CFLAGS"
|
|
||||||
CFLAGS="$CFLAGS $cc_cv_werror"
|
|
||||||
AC_COMPILE_IFELSE(
|
|
||||||
[int some_function() {
|
|
||||||
int a = 3;
|
|
||||||
return (int)__builtin_expect(a, 3);
|
|
||||||
}],
|
|
||||||
[cc_cv_func_expect=yes],
|
|
||||||
[cc_cv_func_expect=no])
|
|
||||||
CFLAGS="$ac_save_CFLAGS"
|
|
||||||
])
|
|
||||||
|
|
||||||
AS_IF([test "x$cc_cv_func_expect" = "xyes"],
|
|
||||||
[AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1,
|
|
||||||
[Define this if the compiler supports __builtin_expect() function])
|
|
||||||
$1],
|
|
||||||
[$2])
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [
|
|
||||||
AC_REQUIRE([CC_CHECK_WERROR])
|
|
||||||
AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported],
|
|
||||||
[cc_cv_attribute_aligned],
|
|
||||||
[ac_save_CFLAGS="$CFLAGS"
|
|
||||||
CFLAGS="$CFLAGS $cc_cv_werror"
|
|
||||||
for cc_attribute_align_try in 64 32 16 8 4 2; do
|
|
||||||
AC_COMPILE_IFELSE([
|
|
||||||
int main() {
|
|
||||||
static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0;
|
|
||||||
return c;
|
|
||||||
}], [cc_cv_attribute_aligned=$cc_attribute_align_try; break])
|
|
||||||
done
|
|
||||||
CFLAGS="$ac_save_CFLAGS"
|
|
||||||
])
|
|
||||||
|
|
||||||
if test "x$cc_cv_attribute_aligned" != "x"; then
|
|
||||||
AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned],
|
|
||||||
[Define the highest alignment supported])
|
|
||||||
fi
|
|
||||||
])
|
|
|
@ -1,24 +0,0 @@
|
||||||
dnl Macro for enabling LYNX-based documentation generation
|
|
||||||
|
|
||||||
AC_DEFUN([ZP_LYNX_DOC], [
|
|
||||||
AC_ARG_ENABLE(lynx,
|
|
||||||
AS_HELP_STRING([--disable-lynx],
|
|
||||||
[Turn off lynx usage for documentation generation]),,
|
|
||||||
[enable_lynx=yes])
|
|
||||||
|
|
||||||
case "${enable_lynx}" in
|
|
||||||
yes)
|
|
||||||
AC_CHECK_PROG(have_lynx, lynx, yes, no)
|
|
||||||
|
|
||||||
if test x$have_lynx = xno ; then
|
|
||||||
AC_MSG_WARN([*** lynx not found, plain text README will not be built ***])
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
no)
|
|
||||||
have_lynx=no ;;
|
|
||||||
*)
|
|
||||||
AC_MSG_ERROR(bad value ${enableval} for --disable-lynx) ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
AM_CONDITIONAL([USE_LYNX], [test "x$have_lynx" = xyes])
|
|
||||||
])
|
|
Loading…
Reference in a new issue