From fa12517fb2f622062ef616a657db53b7f7c6ec64 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 24 Apr 2017 15:14:06 +1000 Subject: [PATCH] Drop autotools Signed-off-by: Peter Hutterer --- .gitignore | 24 ---- Makefile.am | 119 ------------------- README.md | 22 +++- autogen.sh | 48 -------- configure.ac | 163 -------------------------- m4/attributes.m4 | 292 ----------------------------------------------- 6 files changed, 17 insertions(+), 651 deletions(-) delete mode 100644 Makefile.am delete mode 100755 autogen.sh delete mode 100644 configure.ac delete mode 100644 m4/attributes.m4 diff --git a/.gitignore b/.gitignore index 5c5c81e2..a4eed7cd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,36 +1,12 @@ *.a -*.la -*.lo *.log *.o *.stamp *.swp *.trs *~ -.config.args -.deps/ .dirstamp .libs/ /*.tar.xz -Makefile -Makefile.in -autom4te.cache/ -aclocal.m4 -build-aux/ -config.h -config.h.in -config.log -config.status -configure -libtool -*.m4 -!m4/attributes.m4 -ratbagctl -./ratbagd -stamp-* -ratbagd -ratbagd.service -ratbagctl -org.freedesktop.ratbag1.service tags __pycache__ diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 1885de16..00000000 --- a/Makefile.am +++ /dev/null @@ -1,119 +0,0 @@ -# ------------------------------------------------------------------------------ -# main - -ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} -AM_MAKEFLAGS = --no-print-directory -AUTOMAKE_OPTIONS = color-tests parallel-tests - -GCC_COLORS ?= 'ooh, shiny!' -export GCC_COLORS - -SUBDIRS = . - -# remove targets if the command fails -.DELETE_ON_ERROR: - -# keep intermediate files -.SECONDARY: - -# Keep the test-suite.log -.PRECIOUS: $(TEST_SUITE_LOG) Makefile - -CLEANFILES = $(BUILT_SOURCES) -DISTCLEANFILES = -EXTRA_DIST = -BUILT_SOURCES = -lib_LTLIBRARIES = -noinst_LTLIBRARIES = -bin_PROGRAMS = -noinst_PROGRAMS = -dist_man1_MANS = -dist_man8_MANS = - -AM_CPPFLAGS = \ - -include $(top_builddir)/config.h \ - -I $(top_srcdir)/src \ - -I $(top_builddir)/src \ - $(OUR_CPPFLAGS) - -AM_CFLAGS = $(OUR_CFLAGS) -AM_LDFLAGS = $(OUR_LDFLAGS) - -# ------------------------------------------------------------------------------ -# libshared - -noinst_LTLIBRARIES += \ - libshared.la - -libshared_la_SOURCES = \ - src/shared-macro.h \ - src/shared-rbtree.h \ - src/shared-rbtree.c - -libshared_la_CFLAGS = \ - $(AM_CFLAGS) - -libshared_la_LIBADD = \ - -lm - -# ------------------------------------------------------------------------------ -# ratbagd - -bin_PROGRAMS += \ - ratbagd - -ratbagd_SOURCES = \ - src/ratbagd.h \ - src/ratbagd.c \ - src/ratbagd-button.c \ - src/ratbagd-device.c \ - src/ratbagd-profile.c \ - src/ratbagd-resolution.c - -ratbagd_CFLAGS = \ - $(AM_CFLAGS) \ - $(LIBUDEV_CFLAGS) \ - $(LIBSYSTEMD_CFLAGS) \ - $(LIBRATBAG_CFLAGS) - -ratbagd_LDADD = \ - libshared.la \ - $(LIBUDEV_LIBS) \ - $(LIBSYSTEMD_LIBS) \ - $(LIBRATBAG_LIBS) - -dist_man8_MANS += doc/ratbagd.8 - -# ------------------------------------------------------------------------------ -# DBus and systemd configuration files - -unitdir = $(SYSTEMD_UNIT_DIR) -unit_DATA = ratbagd.service - -$(unit_DATA): $(unit_DATA).in - $(AM_V_GEN)$(SED) -e 's|@bindir@|$(bindir)|g' < $< > $@ - -dbusservicedir = $(DBUS_SYSTEM_SERVICES_DIR) -dbusservice_DATA = dbus/org.freedesktop.ratbag1.service - -$(dbusservice_DATA): $(dbusservice_DATA).in - $(AM_V_GEN)$(MKDIR_P) dbus - $(AM_V_GEN)$(SED) -e 's|@bindir@|$(bindir)|g' < $< > $@ - -dbusconfigdir = $(DBUS_SYSTEM_CONFIG_DIR) -dbusconfig_DATA = dbus/org.freedesktop.ratbag1.conf - -EXTRA_DIST += \ - ratbagd.service.in \ - dbus/org.freedesktop.ratbag1.service.in \ - dbus/org.freedesktop.ratbag1.conf -BUILT_SOURCES += ratbagd.service dbus/org.freedesktop.ratbag1.service - -# ------------------------------------------------------------------------------ -# python module -dist_pkgpython_DATA = python/ratbagd/__init__.py -bin_SCRIPTS = python/ratbagctl - -EXTRA_DIST += python/ratbagctl.in - -dist_man1_MANS += doc/ratbagctl.1 diff --git a/README.md b/README.md index d6c98a8c..74e3e459 100644 --- a/README.md +++ b/README.md @@ -113,12 +113,24 @@ activation is possible. Compiling ratbagd ----------------- - ./autogen.sh && ./configure --prefix=/usr/ --libdir=/usr/lib64 - make - sudo make install +ratbagd uses the meson build system (see http://mesonbuild.com) which in +turn uses ninja to invoke the compiler (`ninja` may be `ninja-build` on your +distribution). From a fresh git checkout, run the following commands to init +the repository: -Depending on your distribution, you can omit the --libdir argument. Fedora -and related require it, Debian and related do not. + meson builddir --prefix=/usr/ + +And to build or re-build after code-changes, run: + + ninja -C builddir + sudo ninja -C builddir install + +Note: 'builddir' is the build output directory and can be changed to any +other directory name. To set configure-time options, use e.g. + + mesonconf builddir -Denable-documentation=no + +Run 'mesonconf builddir' to list the options. License ------- diff --git a/autogen.sh b/autogen.sh deleted file mode 100755 index dbb5141d..00000000 --- a/autogen.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -# -# autogen.sh: prepare build system -# Run this script to prepare the build-system for your local checkout. It -# requires the usual autotools dependencies to be installed. -# -# Prepare build system, but don't configure: -# $ ./autogen.sh -# -# Prepare build system and run ./configure with debugging enabled: -# $ ./autogen.sh c -# -# Prepare build system and run ./configure with llvm over gcc: -# $ ./autogen.sh l -# -# You can put additional arguments to ./configure into ".config.args". They -# will be appended to the arguments used by this script. -# - -set -e - -oldpwd=$(pwd) -topdir=$(dirname $0) -cd $topdir - -autoreconf --force --install --symlink - -if [ -f "$topdir/.config.args" ]; then - args="$args $(cat $topdir/.config.args)" -fi - -cd $oldpwd - -if [ "x$1" = "xc" ]; then - $topdir/configure --enable-debug $args - make clean -elif [ "x$1" = "xl" ]; then - $topdir/configure CC=clang $args - make clean -else - echo - echo "----------------------------------------------------------------" - echo "Initialized build system. For a common configuration please run:" - echo "----------------------------------------------------------------" - echo - echo "$topdir/configure $args" - echo -fi diff --git a/configure.ac b/configure.ac deleted file mode 100644 index 2409f931..00000000 --- a/configure.ac +++ /dev/null @@ -1,163 +0,0 @@ -# ------------------------------------------------------------------------------ -# main - -AC_PREREQ([2.64]) - -AC_INIT([ratbagd], - [0.2], - [http://www.github.com/libratbag/ratbagd], - [ratbagd], - [http://www.github.com/libratbag/ratbagd]) - -AC_CONFIG_SRCDIR([src/ratbagd.h]) -AC_CONFIG_MACRO_DIR([m4]) -AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_AUX_DIR([build-aux]) - -AC_USE_SYSTEM_EXTENSIONS -AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax no-dist-gzip dist-xz subdir-objects parallel-tests]) -AM_SILENT_RULES([yes]) -AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.]) - -LT_PREREQ(2.2) -LT_INIT([disable-static]) - -AC_PROG_MKDIR_P -AC_PROG_LN_S -AC_PROG_SED -AC_PROG_CC_C99 - -AC_PATH_PROG([M4], [m4]) -AM_PATH_PYTHON - -# ------------------------------------------------------------------------------ -# arguments - -AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug], [enable debug options])) - -# ------------------------------------------------------------------------------ -# toolchain - -CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ - -pipe \ - -Wall \ - -Wextra \ - -Wno-inline \ - -Wundef \ - "-Wformat=2 -Wformat-security -Wformat-nonliteral" \ - -Wlogical-op \ - -Wsign-compare \ - -Wmissing-include-dirs \ - -Wold-style-definition \ - -Wpointer-arith \ - -Winit-self \ - -Wdeclaration-after-statement \ - -Wfloat-equal \ - -Wsuggest-attribute=noreturn \ - -Wmissing-prototypes \ - -Wstrict-prototypes \ - -Wredundant-decls \ - -Wmissing-declarations \ - -Wmissing-noreturn \ - -Wendif-labels \ - -Wstrict-aliasing=2 \ - -Wwrite-strings \ - -Wno-long-long \ - -Wno-overlength-strings \ - -Wno-unused-parameter \ - -Wno-missing-field-initializers \ - -Wno-unused-result \ - -Werror=overflow \ - -Wdate-time \ - -Wnested-externs \ - -ffast-math \ - -fno-common \ - -fdiagnostics-show-option \ - -fno-strict-aliasing \ - -fvisibility=hidden \ - -ffunction-sections \ - -fdata-sections \ - -fstack-protector \ - -fstack-protector-strong \ - -fPIE \ - --param=ssp-buffer-size=4]) - -AS_CASE([$CC], [*clang*], - [CC_CHECK_FLAGS_APPEND([with_cppflags], [CPPFLAGS], [ \ - -Wno-typedef-redefinition \ - -Wno-gnu-variable-sized-type-not-at-end \ - ])]) - -CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\ - -Wl,--as-needed \ - -Wl,--no-undefined \ - -Wl,--gc-sections \ - -Wl,-z,relro \ - -Wl,-z,now \ - -pie]) - -AS_IF([test "x$enable_debug" = "xyes"], - [ - CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [ \ - -g \ - -O0 \ - -ftrapv]) - ], [ - CC_CHECK_FLAGS_APPEND([with_cppflags], [CPPFLAGS], [\ - -Wp,-D_FORTIFY_SOURCE=2]) - ]) - -AC_SUBST([OUR_CFLAGS], "$with_cflags") -AC_SUBST([OUR_CPPFLAGS], "$with_cppflags") -AC_SUBST([OUR_LDFLAGS], "$with_ldflags") - -# ------------------------------------------------------------------------------ -# dependencies - -PKG_CHECK_MODULES([LIBUDEV], [libudev]) -PKG_CHECK_MODULES([LIBSYSTEMD], [libsystemd >= 227]) -PKG_CHECK_MODULES([LIBRATBAG], [libratbag >= 0.6]) - -PKG_CHECK_VAR([libratbag_data_dir], [libratbag], [pkgdatadir], - [AC_DEFINE_UNQUOTED([LIBRATBAG_DATA_DIR], ["$libratbag_data_dir"], [Directory for libratbag's SVG files])]) - -# ------------------------------------------------------------------------------ -# options -AC_ARG_WITH([systemd-unit-dir], - AS_HELP_STRING([--with-systemd-unit-dir=DIR], - [systemd unit directory [[default=$libdir/systemd/system]]]), - [unitdir="$withval"], - [unitdir="$libdir/systemd/system"]) -SYSTEMD_UNIT_DIR=${unitdir} -AC_SUBST(SYSTEMD_UNIT_DIR) - -AC_ARG_WITH([dbus-root-dir], - AS_HELP_STRING([--with-dbus-root-dir=DIR], - [dbus service directory [[default=$datadir/dbus-1]]]), - [dbusrootdir="$withval"], - [dbusrootdir="$datadir/dbus-1"]) -DBUS_SYSTEM_SERVICES_DIR="${dbusrootdir}/system-services" -DBUS_SYSTEM_CONFIG_DIR="${dbusrootdir}/system.d" -AC_SUBST(DBUS_SYSTEM_SERVICES_DIR) -AC_SUBST(DBUS_SYSTEM_CONFIG_DIR) - -# ------------------------------------------------------------------------------ -# report - -AC_CONFIG_FILES([Makefile - python/ratbagctl]) - -AC_OUTPUT -AC_MSG_RESULT([ - $PACKAGE_NAME $VERSION - debug: ${enable_debug} - - prefix: ${prefix} - exec_prefix: ${exec_prefix} - includedir: ${includedir} - libdir: ${libdir} - - CFLAGS: ${OUR_CFLAGS} ${CFLAGS} - CPPFLAGS: ${OUR_CPPFLAGS} ${CPPFLAGS} - LDFLAGS: ${OUR_LDFLAGS} ${LDFLAGS} -]) diff --git a/m4/attributes.m4 b/m4/attributes.m4 deleted file mode 100644 index db5df250..00000000 --- a/m4/attributes.m4 +++ /dev/null @@ -1,292 +0,0 @@ -dnl Macros to check the presence of generic (non-typed) symbols. -dnl Copyright (c) 2006-2008 Diego Pettenò -dnl Copyright (c) 2006-2008 xine project -dnl Copyright (c) 2012 Lucas De Marchi -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. - -dnl Check if FLAG in ENV-VAR is supported by compiler and append it -dnl to WHERE-TO-APPEND variable. Note that we invert -Wno-* checks to -dnl -W* as gcc cannot test for negated warnings. If a C snippet is passed, -dnl use it, otherwise use a simple main() definition that just returns 0. -dnl CC_CHECK_FLAG_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG], [C-SNIPPET]) - -AC_DEFUN([CC_CHECK_FLAG_APPEND], [ - AC_CACHE_CHECK([if $CC supports flag $3 in envvar $2], - AS_TR_SH([cc_cv_$2_$3]), - [eval "AS_TR_SH([cc_save_$2])='${$2}'" - eval "AS_TR_SH([$2])='-Werror `echo "$3" | sed 's/^-Wno-/-W/'`'" - AC_LINK_IFELSE([AC_LANG_SOURCE(ifelse([$4], [], - [int main(void) { return 0; } ], - [$4]))], - [eval "AS_TR_SH([cc_cv_$2_$3])='yes'"], - [eval "AS_TR_SH([cc_cv_$2_$3])='no'"]) - eval "AS_TR_SH([$2])='$cc_save_$2'"]) - - AS_IF([eval test x$]AS_TR_SH([cc_cv_$2_$3])[ = xyes], - [eval "$1='${$1} $3'"]) -]) - -dnl CC_CHECK_FLAGS_APPEND([WHERE-TO-APPEND], [ENV-VAR], [FLAG1 FLAG2], [C-SNIPPET]) -AC_DEFUN([CC_CHECK_FLAGS_APPEND], [ - for flag in [$3]; do - CC_CHECK_FLAG_APPEND([$1], [$2], $flag, [$4]) - done -]) - -dnl Check if the flag is supported by linker (cacheable) -dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) - -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 define the LDFLAGS_NOUNDEFINED variable with the correct value for -dnl the current linker to avoid undefined references in a shared object. -AC_DEFUN([CC_NOUNDEFINED], [ - dnl We check $host for which systems to enable this for. - AC_REQUIRE([AC_CANONICAL_HOST]) - - case $host in - dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads - dnl are requested, as different implementations are present; to avoid problems - dnl use -Wl,-z,defs only for those platform not behaving this way. - *-freebsd* | *-openbsd*) ;; - *) - dnl First of all check for the --no-undefined variant of GNU ld. This allows - dnl for a much more readable command line, so that people can understand what - dnl it does without going to look for what the heck -z defs does. - for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do - CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"]) - break - done - ;; - esac - - AC_SUBST([LDFLAGS_NOUNDEFINED]) -]) - -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([AC_LANG_SOURCE([$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([AC_LANG_SOURCE( - [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([AC_LANG_SOURCE([ - 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 -])