EXTRA_DIST+= .quickly
EXTRA_DIST+= README.FIRST
EXTRA_DIST+= README.win32
-EXTRA_DIST+= config/autorun.sh
-EXTRA_DIST+= config/pandora-plugin
-EXTRA_DIST+= config/uncrustify.cfg
aclocaldir= $(datadir)/aclocal
dist_aclocal_DATA=
+++ /dev/null
-#!/bin/sh
-# Copyright (C) 2011 Brian Aker, brian@tangent.org
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# 3. The name of the author may not be used to endorse or promote products
-# derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-die() { echo "$@"; exit 1; }
-
-run() {
- echo "$ARGV0: running \`$@' $ARGS"
- $@ $ARGS
-}
-
-# Try to locate a program by using which, and verify that the file is an
-# executable
-locate_binary() {
- for f in $@
- do
- file=`which $f 2>/dev/null | grep -v '^no '`
- if test -n "$file" -a -x "$file"; then
- echo $file
- return 0
- fi
- done
-
- echo ""
- return 1
-}
-
-
-if test -d .bzr
-then
- AUTORECONF_FLAGS=" --install --verbose -Wall -Werror"
-else
- AUTORECONF_FLAGS=" --install --verbose -Wall"
-fi
-
-if test -f config/pre_hook.sh
-then
- . config/pre_hook.sh
-fi
-
-if test x$AUTORECONF = x; then
- AUTORECONF=`locate_binary autoreconf`
- if test x$AUTORECONF = x; then
- die "Did not find a supported autoconf"
- fi
-fi
-
-run $AUTORECONF $AUTORECONF_FLAGS || die "Can't execute autoreconf"
+++ /dev/null
-#! /bin/sh
-# Output a system dependent set of variables, describing how to set the
-# run time search path of shared libraries in an executable.
-#
-# Copyright 1996-2007 Free Software Foundation, Inc.
-# Taken from GNU libtool, 2001
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-#
-# The first argument passed to this file is the canonical host specification,
-# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or
-# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
-# should be set by the caller.
-#
-# The set of defined variables is at the end of this script.
-
-# Known limitations:
-# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
-# than 256 bytes, otherwise the compiler driver will dump core. The only
-# known workaround is to choose shorter directory names for the build
-# directory and/or the installation directory.
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-shrext=.so
-
-host="$1"
-host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-
-# Code taken from libtool.m4's _LT_CC_BASENAME.
-
-for cc_temp in $CC""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
-
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
-
-wl=
-if test "$GCC" = yes; then
- wl='-Wl,'
-else
- case "$host_os" in
- aix*)
- wl='-Wl,'
- ;;
- darwin*)
- case $cc_basename in
- xlc*)
- wl='-Wl,'
- ;;
- esac
- ;;
- mingw* | cygwin* | pw32* | os2*)
- ;;
- hpux9* | hpux10* | hpux11*)
- wl='-Wl,'
- ;;
- irix5* | irix6* | nonstopux*)
- wl='-Wl,'
- ;;
- newsos6)
- ;;
- linux* | k*bsd*-gnu)
- case $cc_basename in
- icc* | ecc*)
- wl='-Wl,'
- ;;
- pgcc | pgf77 | pgf90)
- wl='-Wl,'
- ;;
- ccc*)
- wl='-Wl,'
- ;;
- como)
- wl='-lopt='
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*)
- wl='-Wl,'
- ;;
- esac
- ;;
- esac
- ;;
- osf3* | osf4* | osf5*)
- wl='-Wl,'
- ;;
- rdos*)
- ;;
- solaris*)
- wl='-Wl,'
- ;;
- sunos4*)
- wl='-Qoption ld '
- ;;
- sysv4 | sysv4.2uw2* | sysv4.3*)
- wl='-Wl,'
- ;;
- sysv4*MP*)
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- wl='-Wl,'
- ;;
- unicos*)
- wl='-Wl,'
- ;;
- uts4*)
- ;;
- esac
-fi
-
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
-
-hardcode_libdir_flag_spec=
-hardcode_libdir_separator=
-hardcode_direct=no
-hardcode_minus_L=no
-
-case "$host_os" in
- cygwin* | mingw* | pw32*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
-esac
-
-ld_shlibs=yes
-if test "$with_gnu_ld" = yes; then
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- # Unlike libtool, we use -rpath here, not --rpath, since the documented
- # option of GNU ld is called -rpath, not --rpath.
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- case "$host_os" in
- aix3* | aix4* | aix5*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- ld_shlibs=no
- fi
- ;;
- amigaos*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
- # that the semantics of dynamic libraries on AmigaOS, at least up
- # to version 4, is to share data among multiple programs linked
- # with the same dynamic library. Since this doesn't match the
- # behavior of shared libraries on other platforms, we cannot use
- # them.
- ld_shlibs=no
- ;;
- beos*)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- cygwin* | mingw* | pw32*)
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- interix[3-9]*)
- hardcode_direct=no
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- gnu* | linux* | k*bsd*-gnu)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- netbsd*)
- ;;
- solaris*)
- if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs=no
- ;;
- *)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- ;;
- sunos4*)
- hardcode_direct=yes
- ;;
- *)
- if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
- :
- else
- ld_shlibs=no
- fi
- ;;
- esac
- if test "$ld_shlibs" = no; then
- hardcode_libdir_flag_spec=
- fi
-else
- case "$host_os" in
- aix3*)
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$GCC" = yes; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
- aix4* | aix5*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- else
- aix_use_runtimelinking=no
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
- fi
- hardcode_direct=yes
- hardcode_libdir_separator=':'
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" && \
- strings "$collect2name" | grep resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct=unsupported
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- ;;
- esac
- fi
- # Begin _LT_AC_SYS_LIBPATH_AIX.
- echo 'int main () { return 0; }' > conftest.c
- ${CC} ${LDFLAGS} conftest.c -o conftest
- aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
- if test -z "$aix_libpath"; then
- aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
- fi
- if test -z "$aix_libpath"; then
- aix_libpath="/usr/lib:/lib"
- fi
- rm -f conftest.c conftest
- # End _LT_AC_SYS_LIBPATH_AIX.
- if test "$aix_use_runtimelinking" = yes; then
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
- else
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- fi
- fi
- ;;
- amigaos*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- # see comment about different semantics on the GNU ld section
- ld_shlibs=no
- ;;
- bsdi[45]*)
- ;;
- cygwin* | mingw* | pw32*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- hardcode_libdir_flag_spec=' '
- libext=lib
- ;;
- darwin* | rhapsody*)
- hardcode_direct=no
- if test "$GCC" = yes ; then
- :
- else
- case $cc_basename in
- xlc*)
- ;;
- *)
- ld_shlibs=no
- ;;
- esac
- fi
- ;;
- dgux*)
- hardcode_libdir_flag_spec='-L$libdir'
- ;;
- freebsd1*)
- ld_shlibs=no
- ;;
- freebsd2.2*)
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- ;;
- freebsd2*)
- hardcode_direct=yes
- hardcode_minus_L=yes
- ;;
- freebsd* | dragonfly*)
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- ;;
- hpux9*)
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- hpux10*)
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- fi
- ;;
- hpux11*)
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct=no
- ;;
- *)
- hardcode_direct=yes
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- esac
- fi
- ;;
- irix5* | irix6* | nonstopux*)
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
- netbsd*)
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- ;;
- newsos6)
- hardcode_direct=yes
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct=yes
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- else
- case "$host_os" in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- ld_shlibs=no
- fi
- ;;
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- osf3*)
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
- osf4* | osf5*)
- if test "$GCC" = yes; then
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- else
- # Both cc and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- hardcode_libdir_separator=:
- ;;
- solaris*)
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- sunos4*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- ;;
- sysv4)
- case $host_vendor in
- sni)
- hardcode_direct=yes # is this really true???
- ;;
- siemens)
- hardcode_direct=no
- ;;
- motorola)
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- ;;
- sysv4.3*)
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- ld_shlibs=yes
- fi
- ;;
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- ;;
- sysv5* | sco3.2v5* | sco5v6*)
- hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
- hardcode_libdir_separator=':'
- ;;
- uts4*)
- hardcode_libdir_flag_spec='-L$libdir'
- ;;
- *)
- ld_shlibs=no
- ;;
- esac
-fi
-
-# Check dynamic linker characteristics
-# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
-# Unlike libtool.m4, here we don't care about _all_ names of the library, but
-# only about the one the linker finds when passed -lNAME. This is the last
-# element of library_names_spec in libtool.m4, or possibly two of them if the
-# linker has special search rules.
-library_names_spec= # the last element of library_names_spec in libtool.m4
-libname_spec='lib$name'
-case "$host_os" in
- aix3*)
- library_names_spec='$libname.a'
- ;;
- aix4* | aix5*)
- library_names_spec='$libname$shrext'
- ;;
- amigaos*)
- library_names_spec='$libname.a'
- ;;
- beos*)
- library_names_spec='$libname$shrext'
- ;;
- bsdi[45]*)
- library_names_spec='$libname$shrext'
- ;;
- cygwin* | mingw* | pw32*)
- shrext=.dll
- library_names_spec='$libname.dll.a $libname.lib'
- ;;
- darwin* | rhapsody*)
- shrext=.dylib
- library_names_spec='$libname$shrext'
- ;;
- dgux*)
- library_names_spec='$libname$shrext'
- ;;
- freebsd1*)
- ;;
- freebsd* | dragonfly*)
- case "$host_os" in
- freebsd[123]*)
- library_names_spec='$libname$shrext$versuffix' ;;
- *)
- library_names_spec='$libname$shrext' ;;
- esac
- ;;
- gnu*)
- library_names_spec='$libname$shrext'
- ;;
- hpux9* | hpux10* | hpux11*)
- case $host_cpu in
- ia64*)
- shrext=.so
- ;;
- hppa*64*)
- shrext=.sl
- ;;
- *)
- shrext=.sl
- ;;
- esac
- library_names_spec='$libname$shrext'
- ;;
- interix[3-9]*)
- library_names_spec='$libname$shrext'
- ;;
- irix5* | irix6* | nonstopux*)
- library_names_spec='$libname$shrext'
- case "$host_os" in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
- ;;
- *)
- case $LD in
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
- *) libsuff= shlibsuff= ;;
- esac
- ;;
- esac
- ;;
- linux*oldld* | linux*aout* | linux*coff*)
- ;;
- linux* | k*bsd*-gnu)
- library_names_spec='$libname$shrext'
- ;;
- knetbsd*-gnu)
- library_names_spec='$libname$shrext'
- ;;
- netbsd*)
- library_names_spec='$libname$shrext'
- ;;
- newsos6)
- library_names_spec='$libname$shrext'
- ;;
- nto-qnx*)
- library_names_spec='$libname$shrext'
- ;;
- openbsd*)
- library_names_spec='$libname$shrext$versuffix'
- ;;
- os2*)
- libname_spec='$name'
- shrext=.dll
- library_names_spec='$libname.a'
- ;;
- osf3* | osf4* | osf5*)
- library_names_spec='$libname$shrext'
- ;;
- rdos*)
- ;;
- solaris*)
- library_names_spec='$libname$shrext'
- ;;
- sunos4*)
- library_names_spec='$libname$shrext$versuffix'
- ;;
- sysv4 | sysv4.3*)
- library_names_spec='$libname$shrext'
- ;;
- sysv4*MP*)
- library_names_spec='$libname$shrext'
- ;;
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- library_names_spec='$libname$shrext'
- ;;
- uts4*)
- library_names_spec='$libname$shrext'
- ;;
-esac
-
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
-shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
-escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
-
-LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
-
-# How to pass a linker flag through the compiler.
-wl="$escaped_wl"
-
-# Static library suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally "so").
-shlibext="$shlibext"
-
-# Format of library name prefix.
-libname_spec="$escaped_libname_spec"
-
-# Library names that the linker finds when passed -lNAME.
-library_names_spec="$escaped_library_names_spec"
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator="$hardcode_libdir_separator"
-
-# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct="$hardcode_direct"
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L="$hardcode_minus_L"
-
-EOF
+++ /dev/null
-# Copyright (C) 2010 Hartmut Holzgraefe
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-LCOV = lcov
-LCOV_GENHTML = genhtml
-
-lcov: lcov-html
-
-lcov-test: lcov-clean-data test
-
-drizzle_lcov.info: lcov-test
- @echo "Generating $@"
- $(LCOV) --directory . --capture --base-directory . --output-file $@
- $(LCOV) --remove $@ '/usr/include/*' --output-file $@
- $(LCOV) --remove $@ '/usr/local/include/*' --output-file $@
- @echo
-
-lcov-html: drizzle_lcov.info
- @echo "Generating lcov HTML"
- @$(LCOV_GENHTML) --legend --output-directory lcov_html/ --title "Drizzle Code Coverage" $<
-
-lcov-clean:
- rm -f drizzle_lcov.info
- rm -rf lcov_data/
- rm -rf lcov_html/
-
-lcov-clean-data:
- @find . -name \*.gcda -o -name \*.da -o -name \*.bbg? | xargs rm -f
-
-
+++ /dev/null
-#!/usr/bin/python
-
-# Copyright (C) 2009 Sun Microsystems, Inc.
-# Copyright (C) 2010, 2011 Monty Taylor
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program 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 General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-pandora_plugin_file = 'config/pandora-plugin.ini'
-
-# Find plugins in the tree and add them to the build system
-
-import ConfigParser, os, sys
-import datetime, time
-import subprocess
-
-plugin_am_file=None
-plugin_ac_file=None
-plugin_doc_index=None
-
-class ChangeProtectedFile(object):
-
- def __init__(self, fname):
- self.bogus_file= False
- self.real_fname= fname
- self.new_fname= "%s.new" % fname
- try:
- self.new_file= open(self.new_fname,'w+')
- except IOError:
- self.bogus_file= True
-
- def write(self, text):
- if not self.bogus_file:
- self.new_file.write(text)
-
- # We've written all of this out into .new files, now we only copy them
- # over the old ones if they are different, so that we don't cause
- # unnecessary recompiles
- def close(self):
- """Return True if the file had changed."""
- if self.bogus_file:
- return
- self.new_file.seek(0)
- new_content = self.new_file.read()
- self.new_file.close()
- try:
- old_file = file(self.real_fname, 'r')
- old_content = old_file.read()
- old_file.close()
- except IOError:
- old_content = None
- if new_content != old_content:
- if old_content != None:
- os.unlink(self.real_fname)
- os.rename(self.new_fname, self.real_fname)
- return True
- else:
- try:
- os.unlink(self.new_fname)
- except:
- pass
-
-
-def write_external_configure(plugin, plugin_file):
- """Write the initial bits of the configure.ac file"""
- if not os.path.exists('m4'):
- os.mkdir('m4')
- plugin_file.write("""
-AC_PREREQ(2.59)dnl Minimum Autoconf version required.
-AC_INIT([%(name)s],[%(version)s],[%(url)s])
-AC_CONFIG_SRCDIR([%(main_source)s])
-AC_CONFIG_AUX_DIR(config)
-
-PANDORA_CANONICAL_TARGET(less-warnings, warnings-always-on, require-cxx, force-gcc42,skip-visibility)
-
-PANDORA_REQUIRE_LIBPROTOBUF
-PANDORA_PROTOBUF_REQUIRE_VERSION([2.1.0])
-PANDORA_REQUIRE_PROTOC
-
-AC_LANG_PUSH(C++)
-PANDORA_REQUIRE_PTHREAD
-PANDORA_REQUIRE_LIBDL
-AC_LANG_POP
-
-PANDORA_USE_BETTER_MALLOC
-
-PANDORA_DRIZZLE_BUILD
-""" % plugin)
-
- write_plugin_ac(plugin, plugin_file)
-
- plugin_file.write("""
-AC_CONFIG_FILES(Makefile)
-
-AC_OUTPUT
-
-echo "---"
-echo "Configuration summary for $PACKAGE_NAME version $VERSION $PANDORA_RELEASE_COMMENT"
-echo ""
-echo " * Installation prefix: $prefix"
-echo " * System type: $host_vendor-$host_os"
-echo " * Host CPU: $host_cpu"
-echo " * C Compiler: $CC_VERSION"
-echo " * C++ Compiler: $CXX_VERSION"
-echo " * Debug enabled: $with_debug"
-echo " * Warnings as failure: $ac_cv_warnings_as_errors"
-echo " * C++ cstdint location: $ac_cv_cxx_cstdint"
-echo " * C++ hash_map location: $ac_cv_cxx_hash_map"
-echo " * C++ hash namespace: $ac_cv_cxx_hash_namespace"
-echo " * C++ shared_ptr namespace: $ac_cv_shared_ptr_namespace"
-echo ""
-echo "---"
-
- """ % plugin)
-
-def write_external_makefile(plugin, plugin_file):
-
- plugin_file.write("""
-ACLOCAL_AMFLAGS = -I m4 --force
-VERSION=$(PANDORA_RELEASE_VERSION)
-
-pkgplugindir=%(pkgplugindir)s
-EXTRA_DIST = plugin.ini
-
-noinst_HEADERS=
-nobase_include_HEADERS=
-nobase_pkginclude_HEADERS=
-check_PROGRAMS=
-noinst_LTLIBRARIES=
-bin_PROGRAMS=
-
-
-""" % plugin)
- if plugin['headers'] != "":
- plugin_file.write("noinst_HEADERS += %(headers)s\n" % plugin)
- if plugin['install_headers'] != "":
- plugin_file.write("nobase_pkginclude_HEADERS += %(install_headers)s\n" % plugin)
- if plugin['testsuite']:
- if plugin.has_key('testsuitedir') and plugin['testsuitedir'] != "":
- plugin_file.write("EXTRA_DIST += %(testsuitedir)s\n" % plugin)
- plugin_file.write("""
-pkgplugin_LTLIBRARIES=%(libname)s.la
-%(libname)s_la_LDFLAGS=-avoid-version -rpath $(pkgplugindir) $(AM_LDFLAGS) %(ldflags)s $(GCOV_LIBS)
-%(libname)s_la_LIBADD=%(libs)s
-%(libname)s_la_DEPENDENCIES=%(libs)s
-%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_DYNAMIC_PLUGIN -DPANDORA_MODULE_NAME=%(module_name)s -DPANDORA_MODULE_AUTHOR='%(author)s' -DPANDORA_MODULE_TITLE='%(title)s' -DPANDORA_MODULE_VERSION='%(version)s' -DPANDORA_MODULE_LICENSE=%(license)s %(cppflags)s
-%(libname)s_la_CXXFLAGS=$(AM_CXXFLAGS) %(cxxflags)s
-%(libname)s_la_CFLAGS=$(AM_CFLAGS) %(cflags)s
-%(libname)s_la_SOURCES=%(sources)s
-check_PROGRAMS += %(tests)s
-""" % plugin)
- plugin_am_file=os.path.join(plugin['rel_path'],'plugin.am')
- if os.path.exists(plugin_am_file):
- plugin_file.write('include %s\n' % plugin_am_file)
-
-def write_external_plugin():
- """Return True if the plugin had changed."""
- plugin = read_plugin_ini('.')
- expand_plugin_ini(plugin)
- plugin_file = ChangeProtectedFile('configure.ac')
- write_external_configure(plugin, plugin_file)
- result = plugin_file.close()
- plugin_file = ChangeProtectedFile('Makefile.am')
- write_external_makefile(plugin, plugin_file)
- # Write some stub configure.ac and Makefile.am files that include the above
- result = plugin_file.close() or result
- return result
-
-def write_plugin(plugin, plugin_ini_list):
- # Since this function is recursive, make sure we're not already in it.
- if plugin.has_key('writing_status'):
- if plugin['writing_status'] == 'done':
- return
- else:
- print "Dependency loop detected with %s" % plugin['name']
- exit(1)
-
- plugin['writing_status'] = 'dependencies'
-
- # Write all dependencies first to get around annoying automake bug
- for dependency in plugin['dependency_list']:
- found = False
- for find_plugin in plugin_ini_list:
- if find_plugin['module_name'] == dependency:
- found = True
- write_plugin(find_plugin, plugin_ini_list)
- break
- if found is False:
- print "Could not find dependency %s: %s" % (plugin['name'], dependency)
- exit(1)
-
- write_plugin_ac(plugin, plugin_ac_file)
- write_plugin_am(plugin, plugin_am_file)
- write_plugin_docs(plugin, plugin_doc_index, plugin_am_file)
- plugin['writing_status'] = 'done'
-
-def write_plugin_docs(plugin, doc_index, plugin_am):
- if plugin['docs'] is not None and os.path.isdir("docs/plugins"):
- if not os.path.exists(os.path.join("docs/plugins",plugin["name"])):
- os.symlink(os.path.abspath(plugin["docs"]), os.path.join("docs/plugins",plugin["name"]))
- doc_index.write("""
- %(name)s/index""" % plugin)
- plugin_am.write("""
-EXTRA_DIST+=${top_srcdir}/docs/plugins/%(name)s/*.rst
-""" % plugin)
-
-def write_plugin_ac(plugin, plugin_ac):
- #
- # Write plugin config instructions into plugin.ac file.
- #
- plugin_ac_file=os.path.join(plugin['rel_path'],'plugin.ac')
- plugin_m4_dir=os.path.join(plugin['rel_path'],'m4')
- plugin_m4_files=[]
- if os.path.exists(plugin_m4_dir) and os.path.isdir(plugin_m4_dir):
- for m4_file in os.listdir(plugin_m4_dir):
- if os.path.splitext(m4_file)[-1] == '.m4':
- plugin_m4_files.append(os.path.join(plugin['rel_path'], m4_file))
- plugin_ac.write("""
-dnl Config for %(title)s
-""" % plugin)
- for m4_file in plugin_m4_files:
- plugin_ac.write('m4_sinclude([%s])\n' % m4_file)
- plugin['plugin_dep_libs']=" ".join(["\${top_builddir}/%s" % f for f in plugin['libs'].split()])
-
- plugin_ac.write("""
-AC_ARG_WITH([%(name_with_dashes)s-plugin],[
-dnl indented wierd to make the help output correct
-AS_HELP_STRING([--with-%(name_with_dashes)s-plugin],[Build %(title)s. @<:@default=%(enabled)s@:>@])
-AS_HELP_STRING([--without-%(name_with_dashes)s-plugin],[Disable building %(title)s])
- ],[
- with_%(name)s_plugin="$withval"
- AS_IF([test "x$with_%(name)s_plugin" = "xyes"],[
- requested_%(name)s_plugin="yes"
- ],[
- requested_%(name)s_plugin="no"
- ])
- ],[
- with_%(name)s_plugin="%(enabled)s"
- requested_%(name)s_plugin="no"
- ])
-AC_ARG_WITH([static-%(name_with_dashes)s-plugin],[
-AS_HELP_STRING([--with-static-%(name_with_dashes)s-plugin],[Build Archive Storage Engine. @<:@default=%(static_yesno)s@:>@])
-AS_HELP_STRING([--without-static-%(name_with_dashes)s-plugin],[Disable building Archive Storage Engine])
- ],[
- with_static_%(name)s_plugin=${withval}
- ],[
- with_static_%(name)s_plugin=%(static_yesno)s
-])
-AS_IF([test "x${with_static_%(name)s_plugin}" = "xyes" -o "x${with_all_static}" = "xyes"],[
- shared_%(name)s_plugin=no
- ],[
- shared_%(name)s_plugin=yes
-])
-AC_ARG_ENABLE([%(name_with_dashes)s-plugin],[
-dnl indented wierd to make the help output correct
-AS_HELP_STRING([--enable-%(name_with_dashes)s-plugin],[Enable loading %(title)s by default. @<:@default=%(default_yesno)s@:>@])
-AS_HELP_STRING([--disable-%(name_with_dashes)s-plugin],[Disable loading %(title)s by default.])
- ],
- [enable_%(name)s_plugin="$enableval"],
- [enable_%(name)s_plugin=%(default_yesno)s])
-
-""" % plugin)
- if os.path.exists(plugin_ac_file):
- plugin_ac.write('m4_sinclude([%s])\n' % plugin_ac_file)
- # The plugin author has specified some check to make to determine
- # if the plugin can be built. If the plugin is turned on and this
- # check fails, then configure should error out. If the plugin is not
- # turned on, then the normal conditional build stuff should just let
- # it silently not build
- if plugin['has_build_conditional']:
- plugin_ac.write("""
-AS_IF([test %(build_conditional)s],
- [], dnl build_conditional can only negate
- [
- AS_IF([test "x${requested_%(name)s_plugin}" = "xyes"],
- [AC_MSG_ERROR([Plugin %(name)s was explicitly requested, yet failed build dependency checks. Aborting!])])
- with_%(name)s_plugin=no
- ])
-
-""" % plugin)
- if not plugin['unconditional']:
- plugin_ac.write("""
-AM_CONDITIONAL([%(static_build_conditional_tag)s],
- [test %(build_conditional)s -a ! %(shared_build)s])
-AM_CONDITIONAL([%(shared_build_conditional_tag)s],
- [test %(build_conditional)s -a %(shared_build)s])
-AM_CONDITIONAL([%(build_conditional_tag)s],
- [test %(build_conditional)s])
- """ % plugin)
-
- plugin_ac.write("""
-AS_IF([test "x$with_%(name)s_plugin" = "xyes"],[
-""" % plugin)
- if plugin['testsuite']:
- plugin_ac.write("""
- pandora_plugin_test_list="%(name)s,${pandora_plugin_test_list}"
- """ % plugin)
- plugin_ac.write("""
- AS_IF([test "x${with_static_%(name)s_plugin}" = "xyes" -o "x${with_all_static}" = "xyes"],[
-
- AS_IF([test "x$enable_%(name)s_plugin" = "xyes"],[
- pandora_builtin_load_list="%(module_name)s,${pandora_builtin_load_list}"
- pandora_builtin_load_symbols_list="_drizzled_%(module_name)s_plugin_,${pandora_builtin_load_symbols_list}"
- PANDORA_PLUGIN_DEP_LIBS="${PANDORA_PLUGIN_DEP_LIBS} %(plugin_dep_libs)s"
- ])
- pandora_builtin_list="%(module_name)s,${pandora_builtin_list}"
- pandora_builtin_symbols_list="_drizzled_%(module_name)s_plugin_,${pandora_builtin_symbols_list}"
- pandora_plugin_libs="${pandora_plugin_libs} \${top_builddir}/%(root_plugin_dir)s/%(libname)s.la"
- ],[
- AS_IF([test "x$enable_%(name)s_plugin" = "xyes"],[
- pandora_default_plugin_list="%(name)s,${pandora_default_plugin_list}"
- ])
- ])
- """ % plugin)
- plugin_ac.write("])\n")
-
-def fix_file_paths(plugin, files):
- # TODO: determine path to plugin dir relative to top_srcdir... append it to
- # source files if they don't already have it
- new_files=""
- if plugin['plugin_dir'] != ".":
- for file in files.split():
- if not file.startswith(plugin['rel_path']):
- file= os.path.join(plugin['rel_path'], file)
- new_files= "%s %s" % (new_files, file)
- else:
- new_files= " ".join(plugin['sources'].split())
- if new_files != "":
- return new_files
- return files
-
-def expand_plugin_ini(plugin):
- if plugin['name'] == "**OUT-OF-TREE**":
- print "Out of tree plugins require the name field to be specified in plugin.ini"
- sys.exit(1)
-
- if plugin['plugin_dir'] == ".":
- plugin['rel_path']= plugin['plugin_dir']
- plugin['unconditional']=True
- else:
- plugin['rel_path']= plugin['plugin_dir'][len(config['top_srcdir'])+len(os.path.sep):]
- plugin['unconditional']=False
-
- plugin['sources']= fix_file_paths(plugin, plugin['sources'])
- plugin['main_source']= plugin['sources'].split()[0]
- plugin['headers']= fix_file_paths(plugin, plugin['headers'])
- plugin['install_headers']= fix_file_paths(plugin, plugin['install_headers'])
- plugin['tests']= fix_file_paths(plugin, plugin['tests'])
-
- # Make a yes/no version for autoconf help messages
- if plugin['load_by_default']:
- plugin['default_yesno']="yes"
- else:
- plugin['default_yesno']="no"
-
- if plugin.has_key('extra_dist'):
- plugin['extra_dist']=" ".join([os.path.join(plugin['rel_path'],f) for f in plugin['extra_dist'].split()])
-
-
- if plugin['static']:
- plugin['static_yesno']="yes"
- else:
- plugin['static_yesno']="no"
- plugin['build_conditional_tag']= "BUILD_%s_PLUGIN" % plugin['name'].upper()
- plugin['shared_build_conditional_tag']= "BUILD_%s_PLUGIN_SHARED" % plugin['name'].upper()
- plugin['static_build_conditional_tag']= "BUILD_%s_PLUGIN_STATIC" % plugin['name'].upper()
- plugin['name_with_dashes']= plugin['name'].replace('_','-')
- if plugin.has_key('build_conditional'):
- plugin['has_build_conditional']=True
- plugin['build_conditional']='"x${with_%(name)s_plugin}" = "xyes" -a %(build_conditional)s' % plugin
- else:
- plugin['has_build_conditional']=False
- plugin['build_conditional']='"x${with_%(name)s_plugin}" = "xyes"' %plugin
- plugin['shared_build']='"x${shared_%(name)s_plugin}" = "xyes"' %plugin
-
- if plugin['install']:
- plugin['library_type']= 'pkgplugin'
- else:
- plugin['library_type']= 'noinst'
-
-def find_testsuite(plugin_dir):
- for testdir in ['drizzle-tests','tests']:
- if os.path.isdir(os.path.join(plugin_dir,testdir)):
- return testdir
- if os.path.isdir(os.path.join('tests','suite',os.path.basename(plugin_dir))):
- return ""
- return None
-
-def find_docs(plugin_dir):
- if os.path.isfile(os.path.join(plugin_dir, "docs", "index.rst")):
- return os.path.join(plugin_dir, "docs")
-
-def read_plugin_ini(plugin_dir):
- sources_default=""
- if plugin_dir == ".":
- plugin_name="**OUT-OF-TREE**"
- module_name="**OUT-OF-TREE**"
- else:
- sources_default="%s.cc" % os.path.basename(plugin_dir)
- plugin_name = plugin_dir[plugin_dir.index(config['root_plugin_dir']) + len(config['root_plugin_dir']) + 1:]
- module_name = plugin_name.replace("/", config['module_name_separator']).replace("\\", config['module_name_separator'])
- plugin_name = plugin_name.replace("/", config['plugin_name_separator']).replace("\\", config['plugin_name_separator'])
-
-
- plugin_file= os.path.join(plugin_dir,config['plugin_ini_fname'])
- plugin_defaults= dict(sources=sources_default,
- headers="",
- install_headers="",
- cflags="",
- cppflags="",
- cxxflags="",
- libs="",
- ldflags="",
- author="",
- title="",
- description="",
- license="PLUGIN_LICENSE_GPL",
- name=plugin_name,
- module_name=module_name,
- load_by_default=config['default_load_by_default'],
- disabled="False",
- static="False",
- dependencies="",
- dependency_aliases="",
- tests="",
- install=config['default_install'])
- parser=ConfigParser.ConfigParser(defaults= plugin_defaults)
- parser.read(plugin_file)
- plugin=dict(parser.items('plugin'))
- plugin['plugin_dir'] = plugin_dir
- if plugin_dir == '.':
- if not plugin.has_key('url'):
- print "External Plugins are required to specifiy a url"
- plugin['url']= 'http://launchpad.net/%(name)s' % plugin
- sys.exit(1)
- if plugin_dir == '.' and not plugin.has_key('version'):
- print "External Plugins are required to specifiy a version"
- sys.exit(1)
- if not plugin.has_key('version'):
- plugin['version'] = config['default_plugin_version']
- if plugin.has_key('load_by_default'):
- plugin['load_by_default']=parser.getboolean('plugin','load_by_default')
- if plugin.has_key('disabled'):
- plugin['disabled']=parser.getboolean('plugin','disabled')
- if plugin['disabled']:
- plugin['enabled']="no"
- else:
- plugin['enabled']="yes"
- if plugin.has_key('static'):
- try:
- plugin['static']= parser.getboolean('plugin','static')
- except:
- if plugin['static'][:5] == os.sys.platform[:5]:
- plugin['static']= True
- else:
- plugin['static']= False
- if plugin.has_key('install'):
- plugin['install']= parser.getboolean('plugin','install')
- if plugin.has_key('testsuite'):
- if plugin['testsuite'] == 'disable':
- plugin['testsuite']= False
- plugin['dist_testsuite']= find_testsuite(plugin_dir)
- else:
- plugin_testsuite= find_testsuite(plugin_dir)
- plugin['testsuitedir']=plugin_testsuite
- if plugin_testsuite is not None:
- plugin['testsuite']=True
- else:
- plugin['testsuite']=False
- plugin['docs']= find_docs(plugin_dir)
-
- plugin['cflags']+= ' ' + config['extra_cflags']
- plugin['cppflags']+= ' ' + config['extra_cppflags']
- plugin['cxxflags']+= ' ' + config['extra_cxxflags']
-
- plugin['libname']= "lib%s%s%s" % (config['plugin_prefix'],
- plugin['name'],
- config['plugin_suffix'])
- if config['force_lowercase_libname']:
- plugin['libname']= plugin['libname'].lower()
-
- plugin['root_plugin_dir']= config['root_plugin_dir']
- plugin['plugin_prefix']= config['plugin_prefix']
- plugin['plugin_suffix']= config['plugin_suffix']
- plugin['pkgplugindir']= config['pkgplugindir']
-
- # Dependencies must have a module but dependency aliases are simply added
- # to the variable passed during compile.
- plugin['dependency_list'] = plugin['dependencies'].split()
- dependency_aliases = plugin['dependency_aliases'].split()
- plugin['dependencies'] = ','.join(plugin['dependency_list'] +
- plugin['dependency_aliases'].split())
- dependency_libs = ["%s/lib%s%s.la" % (config['root_plugin_dir'],
- dependency.lower().replace('::', '_'),
- config['plugin_suffix'])
- for dependency in plugin['dependency_list']]
- plugin['libs'] = " ".join(plugin['libs'].split() + dependency_libs);
-
-# Libtool is going to expand:
-# -DPANDORA_MODULE_AUTHOR='"Padraig O'"'"'Sullivan"'
-# to:
-# "-DPANDORA_MODULE_AUTHOR=\"Padraig O'Sullivan\""
-# So we have to replace internal ''s to '"'"'
- for key in ('author','title','description','version'):
- plugin[key]=plugin[key].replace('"','\\"')
- plugin[key]=plugin[key].replace("'","'\"'\"'")
- return plugin
-
-
-def write_plugin_am(plugin, plugin_am):
- """Write an automake fragment for this plugin.
-
- :param plugin: The plugin dict.
- :param plugin_am: The file to write to.
- """
- # The .plugin.ini.stamp avoids changing the datestamp on plugin.ini which can
- # confuse VCS systems.
- plugin_am.write("""
-EXTRA_DIST += %(rel_path)s/plugin.ini
-
-# Prevent errors when a plugin dir is removed
-%(rel_path)s/plugin.ini:
-
-""" % plugin)
- if plugin.has_key('extra_dist') and plugin['extra_dist'] != "":
- plugin_am.write("EXTRA_DIST += %(extra_dist)s\n" % plugin)
- if plugin['headers'] != "":
- plugin_am.write("noinst_HEADERS += %(headers)s\n" % plugin)
- if plugin['install_headers'] != "":
- plugin_am.write("nobase_pkginclude_HEADERS += %(install_headers)s\n" % plugin)
- if plugin['testsuite']:
- if plugin.has_key('testsuitedir') and plugin['testsuitedir'] != "":
- plugin_am.write("EXTRA_DIST += %(rel_path)s/%(testsuitedir)s\n" % plugin)
- if plugin.has_key('dist_testsuite') and plugin['dist_testsuite'] != "":
- plugin_am.write("EXTRA_DIST += %(rel_path)s/%(dist_testsuite)s\n" % plugin)
- if plugin['docs'] is not None:
- plugin_am.write("EXTRA_DIST += ${top_srcdir}/%(rel_path)s/docs/*.rst\n" % plugin)
- plugin_am.write("""
-%(root_plugin_dir)s_%(plugin_prefix)s%(name)s_dir=${top_srcdir}/%(rel_path)s
-# Include sources in EXTRA_DIST because we might not build this, but we
-# still want the sources to wind up in a tarball
-EXTRA_DIST += %(rel_path)s/plugin.ini %(sources)s
-if %(static_build_conditional_tag)s
- noinst_LTLIBRARIES+=%(root_plugin_dir)s/%(libname)s.la
- %(root_plugin_dir)s_%(libname)s_la_LIBADD=%(libs)s
- %(root_plugin_dir)s_%(libname)s_la_DEPENDENCIES=%(libs)s
- %(root_plugin_dir)s_%(libname)s_la_LDFLAGS=$(AM_LDFLAGS) %(ldflags)s $(GCOV_LIBS)
- %(root_plugin_dir)s_%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_MODULE_NAME=%(module_name)s -DPANDORA_MODULE_AUTHOR='%(author)s' -DPANDORA_MODULE_TITLE='%(title)s' -DPANDORA_MODULE_VERSION='%(version)s' -DPANDORA_MODULE_LICENSE=%(license)s -DPANDORA_MODULE_DEPENDENCIES='%(dependencies)s' %(cppflags)s
- %(root_plugin_dir)s_%(libname)s_la_CXXFLAGS=$(AM_CXXFLAGS) %(cxxflags)s
- %(root_plugin_dir)s_%(libname)s_la_CFLAGS=$(AM_CFLAGS) %(cflags)s
- %(root_plugin_dir)s_%(libname)s_la_SOURCES=%(sources)s
- check_PROGRAMS += %(tests)s
- PANDORA_DYNAMIC_LDADDS+=${top_builddir}/%(root_plugin_dir)s/%(libname)s.la
-endif
-EXTRA_DIST += %(rel_path)s/plugin.ini
-if %(shared_build_conditional_tag)s
- %(library_type)s_LTLIBRARIES+=%(root_plugin_dir)s/%(libname)s.la
- %(root_plugin_dir)s_%(libname)s_la_LDFLAGS=-avoid-version -rpath $(pkgplugindir) $(AM_LDFLAGS) %(ldflags)s $(GCOV_LIBS)
- %(root_plugin_dir)s_%(libname)s_la_LIBADD=%(libs)s
- %(root_plugin_dir)s_%(libname)s_la_DEPENDENCIES=%(libs)s
- %(root_plugin_dir)s_%(libname)s_la_CPPFLAGS=$(AM_CPPFLAGS) -DPANDORA_DYNAMIC_PLUGIN -DPANDORA_MODULE_NAME=%(module_name)s -DPANDORA_MODULE_AUTHOR='%(author)s' -DPANDORA_MODULE_TITLE='%(title)s' -DPANDORA_MODULE_VERSION='%(version)s' -DPANDORA_MODULE_LICENSE=%(license)s -DPANDORA_MODULE_DEPENDENCIES='%(dependencies)s' %(cppflags)s
- %(root_plugin_dir)s_%(libname)s_la_CXXFLAGS=$(AM_CXXFLAGS) %(cxxflags)s
- %(root_plugin_dir)s_%(libname)s_la_CFLAGS=$(AM_CFLAGS) %(cflags)s
- %(root_plugin_dir)s_%(libname)s_la_SOURCES=%(sources)s
- check_PROGRAMS += %(tests)s
-endif
-""" % plugin)
- plugin_am_file=os.path.join(plugin['rel_path'],'plugin.am')
- if os.path.exists(plugin_am_file):
- plugin_am.write('include %s\n' % plugin_am_file)
-
-#
-# MAIN STARTS HERE:
-#
-
-# Parse the pandora-plugin config file
-
-config_defaults= dict(
- top_srcdir='.',
- top_builddir='.',
- plugin_ini_fname='plugin.ini',
- plugin_prefix='',
- plugin_suffix='',
- extra_cflags='',
- extra_cppflags='',
- extra_cxxflags='',
- root_plugin_dir='',
- pkgplugindir='',
- default_install='True',
- default_plugin_version='',
- default_load_by_default='False',
- force_lowercase_libname='True',
- plugin_name_separator='_',
- module_name_separator='::'
-)
-
-config_parser = ConfigParser.ConfigParser(defaults=config_defaults)
-config_parser.read(pandora_plugin_file)
-config = dict(config_parser.items('pandora-plugin'))
-config['force_lowercase_libname']=config_parser.getboolean('pandora-plugin','force_lowercase_libname')
-
-# I'm 3 seconds away from writing a comprehensive build solution
-if not os.path.exists('config/pandora_vc_revinfo'):
- if os.path.exists('.bzr'):
- bzr_revno= subprocess.Popen(["bzr", "revno"], stdout=subprocess.PIPE).communicate()[0].strip()
- rev_date= datetime.date.fromtimestamp(time.time())
- config['default_plugin_version'] = "%d.%02d.%s" % (rev_date.year, rev_date.month, bzr_revno)
- else:
- config['default_plugin_version']=datetime.date.fromtimestamp(time.time()).isoformat()
-else:
- # need to read config/pandora_vc_revno
- pandora_vc_revno=open('config/pandora_vc_revinfo','r').read().split()
- rev_date=""
- bzr_revno=""
- for revno_line in pandora_vc_revno:
- (revno_key,revno_val)= revno_line.split("=")
- if revno_key == 'PANDORA_VC_REVNO':
- bzr_revno=revno_val.strip()
- elif revno_key == 'PANDORA_RELEASE_DATE':
- rev_date=revno_val.strip()
-
- config['default_plugin_version'] = "%s.%s" % (rev_date, bzr_revno)
-
-actions=[]
-for arg in sys.argv:
- if arg.startswith('--top_srcdir='):
- config['top_srcdir']=arg[12:]
- elif arg.startswith('--top_builddir='):
- config['top_builddir']=arg[14:]
- elif arg == "--force-all":
- actions=['plugin-list','pandora-plugin.am','write']
- break
- else:
- actions.append(arg)
-if len(actions) == 0:
- actions.append('write')
-
-plugin_list=[]
-
-def accumulate_plugins(arg, dirname, fnames):
- # plugin_ini_fname is a name in dirname indicating dirname is a plugin.
- if config['plugin_ini_fname'] in fnames:
- arg.append(dirname)
-
-os.path.walk(os.path.join(config['top_srcdir'],
- config['root_plugin_dir']),
- accumulate_plugins,
- plugin_list)
-
-if not os.path.exists("config/pandora-plugin.am") or "write" in actions:
- plugin_am_file = ChangeProtectedFile(os.path.join('config', 'pandora-plugin.am'))
- plugin_am_file.write("""
-# always the current list, generated every build so keep this lean.
-# pandora-plugin.list: datestamp preserved list
-${srcdir}/config/pandora-plugin.list: .plugin.scan
-.plugin.scan:
- @cd ${top_srcdir} && python config/pandora-plugin plugin-list
-
-# Plugins affect configure; so to prevent configure running twice in a tarball
-# build (once up front, once with the right list of plugins, we ship the
-# generated list of plugins and the housekeeping material for that list so it
-# is likewise not updated.
-EXTRA_DIST += \
- config/pandora-plugin.am \
- config/pandora-plugin.ac \
- config/pandora-plugin \
- config/pandora-plugin.ini
-
-
-# Seed the list of plugin LDADDS which plugins may extend.
-PANDORA_DYNAMIC_LDADDS=
-
-# plugin.stamp: graph dominator for creating all per pandora-plugin.ac/am
-# files. This is invoked when the code to generate such files has altered.""")
-
-if not os.path.exists("config/pandora-plugin.ac") or "write" in actions:
- plugin_ac_file = ChangeProtectedFile(os.path.join('config', 'pandora-plugin.ac'))
- plugin_ac_file.write("dnl Generated file, run make to rebuild\n")
- plugin_ac_file.write("""
-AC_ARG_WITH([all-static],[
-AS_HELP_STRING([--with-all-static],[Link all plugins staticly into the server @<:@default=no@:>@])
-],[
- with_all_static="$withval"
- ],[
- with_all_static=no
-])
- """)
-
-if os.path.exists("docs/plugins"):
- if not os.path.exists("docs/plugins/list.rst") or "write" in actions:
- plugin_doc_index = ChangeProtectedFile("docs/plugins/list.rst")
- plugin_doc_index.write("""
-Plugin Documentation
-====================
-
-.. toctree::
- :maxdepth: 2
-""")
-
-
-if os.path.exists('plugin.ini'):
- # Are we in a plugin dir which wants to have a self-sufficient build system?
- plugin_list=['.']
-
- write_external_plugin()
-else:
- plugin_list_file = ChangeProtectedFile(os.path.join('config', 'pandora-plugin.list'))
- for p in plugin_list:
- plugin_list_file.write(p)
- plugin_list_file.write("\n")
- plugin_list.sort()
- plugin_list_file.close()
-
-if not os.path.exists("config/pandora-plugin.am") or 'write' in actions:
- plugin_am_file.write("\n${top_srcdir}/config/pandora-plugin.am: ${top_srcdir}/config/pandora-plugin.list ${top_srcdir}/config/pandora-plugin ")
- for plugin_dir in plugin_list:
- plugin_am_file.write("\\\n\t%s/plugin.ini " % plugin_dir)
- plugin_am_file.write("\n\tcd ${top_srcdir} && python config/pandora-plugin write\n")
- plugin_ini_list=[]
-
- # Load all plugin.ini files first so we can do dependency tracking.
- for plugin_dir in plugin_list:
- plugin = read_plugin_ini(plugin_dir)
- expand_plugin_ini(plugin)
- plugin_ini_list.append(plugin)
-
- # Check for duplicates
- plugin_name_list = [plugin['libname'] for plugin in plugin_ini_list]
- for plugin in plugin_ini_list:
- if plugin_name_list.count(plugin['libname']) != 1:
- print "Duplicate module name %s" % plugin['libname']
- exit(1)
-
- for plugin in plugin_ini_list:
- write_plugin(plugin, plugin_ini_list)
-
-if plugin_am_file is not None:
- plugin_am_file.close()
-if plugin_ac_file is not None:
- plugin_ac_file.close()
-if plugin_doc_index is not None:
- plugin_doc_index.close()
+++ /dev/null
-#
-# Uncrustify options (with comments) for Pandora Projects
-#
-
-nl_after_brace_close = TRUE
-
-# The type of line endings
-newlines = lf # auto/lf/crlf/cr
-
-# The original size of tabs in the input
-input_tab_size = 8 # number
-
-# The size of tabs in the output (only used if align_with_tabs=true)
-output_tab_size = 3 # number
-
-# The ascii value of the string escape char, usually 92 (\) or 94 (^). (Pawn)
-string_escape_char = 92 # number
-
-# Alternate string escape char for Pawn. Only works right before the quote char.
-string_escape_char2 = 0 # number
-
-#
-# Indenting
-#
-
-# The number of columns to indent per level.
-# Usually 2, 3, 4, or 8.
-indent_columns = 2 # number
-
-# How to use tabs when indenting code
-# 0=spaces only
-# 1=indent with tabs, align with spaces
-# 2=indent and align with tabs
-indent_with_tabs = 0 # number
-
-# Whether to indent strings broken by '\' so that they line up
-indent_align_string = true # false/true
-
-# The number of spaces to indent multi-line XML strings.
-# Requires indent_align_string=True
-indent_xml_string = 0 # number
-
-# Spaces to indent '{' from level
-indent_brace = 0 # number
-
-# Whether braces are indented to the body level
-indent_braces = false # false/true
-
-# Disabled indenting function braces if indent_braces is true
-indent_braces_no_func = false # false/true
-
-# Indent based on the size of the brace parent, ie 'if' => 3 spaces, 'for' => 4 spaces, etc.
-indent_brace_parent = false # false/true
-
-# Whether the 'namespace' body is indented
-indent_namespace = false # false/true
-
-# Whether the 'extern "C"' body is indented
-indent_extern = false # false/true
-
-# Whether the 'class' body is indented
-indent_class = true # false/true
-
-# Whether to indent the stuff after a leading class colon
-indent_class_colon = true # false/true
-
-# False=treat 'else\nif' as 'else if' for indenting purposes
-# True=indent the 'if' one level
-indent_else_if = false # false/true
-
-# True: indent continued function call parameters one indent level
-# False: align parameters under the open paren
-indent_func_call_param = false # false/true
-
-# Same as indent_func_call_param, but for function defs
-indent_func_def_param = false # false/true
-
-# Same as indent_func_call_param, but for function protos
-indent_func_proto_param = false # false/true
-
-# Same as indent_func_call_param, but for class declarations
-indent_func_class_param = false # false/true
-
-# Same as indent_func_call_param, but for class variable constructors
-indent_func_ctor_var_param = false # false/true
-
-# Same as indent_func_call_param, but for templates
-indent_template_param = false # false/true
-
-# Double the indent for indent_func_xxx_param options
-indent_func_param_double = false # false/true
-
-# Indentation column for standalone 'const' function decl/proto qualifier
-indent_func_const = 0 # number
-
-# Indentation column for standalone 'throw' function decl/proto qualifier
-indent_func_throw = 0 # number
-
-# The number of spaces to indent a continued '->' or '.'
-# Usually set to 0, 1, or indent_columns.
-indent_member = 3 # number
-
-# Spaces to indent single line ('//') comments on lines before code
-indent_sing_line_comments = 0 # number
-
-# If set, will indent trailing single line ('//') comments relative
-# to the code instead of trying to keep the same absolute column
-indent_relative_single_line_comments = false # false/true
-
-# Spaces to indent 'case' from 'switch'
-# Usually 0 or indent_columns.
-indent_switch_case = 0 # number
-
-# Spaces to shift the 'case' line, without affecting any other lines
-# Usually 0.
-indent_case_shift = 0 # number
-
-# Spaces to indent '{' from 'case'.
-# By default, the brace will appear under the 'c' in case.
-# Usually set to 0 or indent_columns.
-indent_case_brace = 0 # number
-
-# Whether to indent comments found in first column
-indent_col1_comment = false # false/true
-
-# How to indent goto labels
-# >0 : absolute column where 1 is the leftmost column
-# <=0 : subtract from brace indent
-indent_label = 1 # number
-
-# Same as indent_label, but for access specifiers that are followed by a colon
-indent_access_spec = 1 # number
-
-# Indent the code after an access specifier by one level.
-# If set, this option forces 'indent_access_spec=0'
-indent_access_spec_body = false # false/true
-
-# If an open paren is followed by a newline, indent the next line so that it lines up after the open paren (not recommended)
-indent_paren_nl = false # false/true
-
-# Controls the indent of a close paren after a newline.
-# 0: Indent to body level
-# 1: Align under the open paren
-# 2: Indent to the brace level
-indent_paren_close = 0 # number
-
-# Controls the indent of a comma when inside a paren.If TRUE, aligns under the open paren
-indent_comma_paren = false # false/true
-
-# Controls the indent of a BOOL operator when inside a paren.If TRUE, aligns under the open paren
-indent_bool_paren = false # false/true
-
-# If an open square is followed by a newline, indent the next line so that it lines up after the open square (not recommended)
-indent_square_nl = false # false/true
-
-# Don't change the relative indent of ESQL/C 'EXEC SQL' bodies
-indent_preserve_sql = false # false/true
-
-#
-# Spacing options
-#
-
-# Add or remove space around arithmetic operator '+', '-', '/', '*', etc
-sp_arith = force # ignore/add/remove/force
-
-# Add or remove space before assignment operator '=', '+=', etc
-sp_before_assign = remove # ignore/add/remove/force
-
-# Add or remove space after assignment operator '=', '+=', etc
-sp_after_assign = force # ignore/add/remove/force
-
-# Add or remove space around assignment '=' in enum
-sp_enum_assign = ignore # ignore/add/remove/force
-
-# Add or remove space around boolean operators '&&' and '||'
-sp_bool = force # ignore/add/remove/force
-
-# Add or remove space around compare operator '<', '>', '==', etc
-sp_compare = force # ignore/add/remove/force
-
-# Add or remove space inside '(' and ')'
-sp_inside_paren = remove # ignore/add/remove/force
-
-# Add or remove space between nested parens
-sp_paren_paren = remove # ignore/add/remove/force
-
-# Whether to balance spaces inside nested parens
-sp_balance_nested_parens = false # false/true
-
-# Add or remove space between ')' and '{'
-sp_paren_brace = ignore # ignore/add/remove/force
-
-# Add or remove space before pointer star '*'
-sp_before_ptr_star = force # ignore/add/remove/force
-
-# Add or remove space before pointer star '*' that isn't followed by a variable name
-# If set to 'ignore', sp_before_ptr_star is used instead.
-sp_before_unnamed_ptr_star = ignore # ignore/add/remove/force
-
-# Add or remove space between pointer stars '*'
-sp_between_ptr_star = remove # ignore/add/remove/force
-
-# Add or remove space after pointer star '*', if followed by a word.
-sp_after_ptr_star = remove # ignore/add/remove/force
-
-# Add or remove space after a pointer star '*', if followed by a func proto/def.
-sp_after_ptr_star_func = ignore # ignore/add/remove/force
-
-# Add or remove space before a pointer star '*', if followed by a func proto/def.
-sp_before_ptr_star_func = ignore # ignore/add/remove/force
-
-# Add or remove space before a reference sign '&'
-sp_before_byref = remove # ignore/add/remove/force
-
-# Add or remove space before a reference sign '&' that isn't followed by a variable name
-# If set to 'ignore', sp_before_byref is used instead.
-sp_before_unnamed_byref = ignore # ignore/add/remove/force
-
-# Add or remove space after reference sign '&', if followed by a word.
-sp_after_byref = force # ignore/add/remove/force
-
-# Add or remove space after a reference sign '&', if followed by a func proto/def.
-sp_after_byref_func = ignore # ignore/add/remove/force
-
-# Add or remove space before a reference sign '&', if followed by a func proto/def.
-sp_before_byref_func = ignore # ignore/add/remove/force
-
-# Add or remove space between type and word
-sp_after_type = force # ignore/add/remove/force
-
-# Add or remove space in 'template <' vs 'template<'.
-# If set to ignore, sp_before_angle is used.
-sp_template_angle = ignore # ignore/add/remove/force
-
-# Add or remove space before '<>'
-sp_before_angle = remove # ignore/add/remove/force
-
-# Add or remove space inside '<' and '>'
-sp_inside_angle = remove # ignore/add/remove/force
-
-# Add or remove space after '<>'
-sp_after_angle = force # ignore/add/remove/force
-
-# Add or remove space between '<>' and '(' as found in 'new List<byte>();'
-sp_angle_paren = ignore # ignore/add/remove/force
-
-# Add or remove space between '<>' and a word as in 'List<byte> m;'
-sp_angle_word = ignore # ignore/add/remove/force
-
-# Add or remove space before '(' of 'if', 'for', 'switch', and 'while'
-sp_before_sparen = force # ignore/add/remove/force
-
-# Add or remove space inside if-condition '(' and ')'
-sp_inside_sparen = remove # ignore/add/remove/force
-
-# Add or remove space after ')' of 'if', 'for', 'switch', and 'while'
-sp_after_sparen = force # ignore/add/remove/force
-
-# Add or remove space between ')' and '{' of 'if', 'for', 'switch', and 'while'
-sp_sparen_brace = add # ignore/add/remove/force
-
-# Add or remove space before empty statement ';' on 'if', 'for' and 'while'
-sp_special_semi = ignore # ignore/add/remove/force
-
-# Add or remove space before ';'
-sp_before_semi = remove # ignore/add/remove/force
-
-# Add or remove space before ';' in non-empty 'for' statements
-sp_before_semi_for = ignore # ignore/add/remove/force
-
-# Add or remove space before a semicolon of an empty part of a for statment.
-sp_before_semi_for_empty = force # ignore/add/remove/force
-
-# Add or remove space after the final semicolon of an empty part of a for statment: for ( ; ; <here> ).
-sp_after_semi_for_empty = ignore # ignore/add/remove/force
-
-# Add or remove space before '[' (except '[]')
-sp_before_square = ignore # ignore/add/remove/force
-
-# Add or remove space before '[]'
-sp_before_squares = ignore # ignore/add/remove/force
-
-# Add or remove space inside '[' and ']'
-sp_inside_square = remove # ignore/add/remove/force
-
-# Add or remove space after ','
-sp_after_comma = force # ignore/add/remove/force
-
-# Add or remove space before ','
-sp_before_comma = remove # ignore/add/remove/force
-
-# Add or remove space after class ':'
-sp_after_class_colon = ignore # ignore/add/remove/force
-
-# Add or remove space before class ':'
-sp_before_class_colon = ignore # ignore/add/remove/force
-
-# Add or remove space between 'operator' and operator sign
-sp_after_operator = ignore # ignore/add/remove/force
-
-# Add or remove space between the operator symbol and the open paren, as in 'operator ++('
-sp_after_operator_sym = ignore # ignore/add/remove/force
-
-# Add or remove space after C/D cast, ie 'cast(int)a' vs 'cast(int) a' or '(int)a' vs '(int) a'
-sp_after_cast = remove # ignore/add/remove/force
-
-# Add or remove spaces inside cast parens
-sp_inside_paren_cast = remove # ignore/add/remove/force
-
-# Add or remove space between the type and open paren in a C++ cast, ie 'int(exp)' vs 'int (exp)'
-sp_cpp_cast_paren = remove # ignore/add/remove/force
-
-# Add or remove space between 'sizeof' and '('
-sp_sizeof_paren = remove # ignore/add/remove/force
-
-# Add or remove space after the tag keyword (Pawn)
-sp_after_tag = ignore # ignore/add/remove/force
-
-# Add or remove space inside enum '{' and '}'
-sp_inside_braces_enum = force # ignore/add/remove/force
-
-# Add or remove space inside struct/union '{' and '}'
-sp_inside_braces_struct = force # ignore/add/remove/force
-
-# Add or remove space inside '{' and '}'
-sp_inside_braces = force # ignore/add/remove/force
-
-# Add or remove space inside '{}'
-sp_inside_braces_empty = ignore # ignore/add/remove/force
-
-# Add or remove space between return type and function name
-# A minimum of 1 is forced except for pointer return types.
-sp_type_func = force # ignore/add/remove/force
-
-# Add or remove space between function name and '(' on function declaration
-sp_func_proto_paren = remove # ignore/add/remove/force
-
-# Add or remove space between function name and '(' on function definition
-sp_func_def_paren = remove # ignore/add/remove/force
-
-# Add or remove space inside empty function '()'
-sp_inside_fparens = ignore # ignore/add/remove/force
-
-# Add or remove space inside function '(' and ')'
-sp_inside_fparen = remove # ignore/add/remove/force
-
-# Add or remove space between ']' and '(' when part of a function call.
-sp_square_fparen = ignore # ignore/add/remove/force
-
-# Add or remove space between ')' and '{' of function
-sp_fparen_brace = add # ignore/add/remove/force
-
-# Add or remove space between function name and '(' on function calls
-sp_func_call_paren = remove # ignore/add/remove/force
-
-# Add or remove space between the user function name and '(' on function calls
-# You need to set a keyword to be a user function, like this: 'set func_call_user _' in the config file.
-sp_func_call_user_paren = ignore # ignore/add/remove/force
-
-# Add or remove space between a constructor/destructor and the open paren
-sp_func_class_paren = remove # ignore/add/remove/force
-
-# Add or remove space between 'return' and '('
-sp_return_paren = remove # ignore/add/remove/force
-
-# Add or remove space between '__attribute__' and '('
-sp_attribute_paren = remove # ignore/add/remove/force
-
-# Add or remove space between 'defined' and '(' in '#if defined (FOO)'
-sp_defined_paren = remove # ignore/add/remove/force
-
-# Add or remove space between 'throw' and '(' in 'throw (something)'
-sp_throw_paren = ignore # ignore/add/remove/force
-
-# Add or remove space between macro and value
-sp_macro = ignore # ignore/add/remove/force
-
-# Add or remove space between macro function ')' and value
-sp_macro_func = ignore # ignore/add/remove/force
-
-# Add or remove space between 'else' and '{' if on the same line
-sp_else_brace = ignore # ignore/add/remove/force
-
-# Add or remove space between '}' and 'else' if on the same line
-sp_brace_else = ignore # ignore/add/remove/force
-
-# Add or remove space between '}' and the name of a typedef on the same line
-sp_brace_typedef = force # ignore/add/remove/force
-
-# Add or remove space between 'catch' and '{' if on the same line
-sp_catch_brace = ignore # ignore/add/remove/force
-
-# Add or remove space between '}' and 'catch' if on the same line
-sp_brace_catch = ignore # ignore/add/remove/force
-
-# Add or remove space between 'finally' and '{' if on the same line
-sp_finally_brace = ignore # ignore/add/remove/force
-
-# Add or remove space between '}' and 'finally' if on the same line
-sp_brace_finally = ignore # ignore/add/remove/force
-
-# Add or remove space between 'try' and '{' if on the same line
-sp_try_brace = ignore # ignore/add/remove/force
-
-# Add or remove space between get/set and '{' if on the same line
-sp_getset_brace = ignore # ignore/add/remove/force
-
-# Add or remove space before the '::' operator
-sp_before_dc = remove # ignore/add/remove/force
-
-# Add or remove space after the '::' operator
-sp_after_dc = remove # ignore/add/remove/force
-
-# Add or remove around the D named array initializer ':' operator
-sp_d_array_colon = ignore # ignore/add/remove/force
-
-# Add or remove space after the '!' (not) operator.
-sp_not = force # ignore/add/remove/force
-
-# Add or remove space after the '~' (invert) operator.
-sp_inv = remove # ignore/add/remove/force
-
-# Add or remove space after the '&' (address-of) operator.
-# This does not affect the spacing after a '&' that is part of a type.
-sp_addr = remove # ignore/add/remove/force
-
-# Add or remove space around the '.' or '->' operators
-sp_member = remove # ignore/add/remove/force
-
-# Add or remove space after the '*' (dereference) operator.
-# This does not affect the spacing after a '*' that is part of a type.
-sp_deref = remove # ignore/add/remove/force
-
-# Add or remove space after '+' or '-', as in 'x = -5' or 'y = +7'
-sp_sign = remove # ignore/add/remove/force
-
-# Add or remove space before or after '++' and '--', as in '(--x)' or 'y++;'
-sp_incdec = remove # ignore/add/remove/force
-
-# Add or remove space before a backslash-newline at the end of a line
-sp_before_nl_cont = add # ignore/add/remove/force
-
-# Add or remove space after the scope '+' or '-', as in '-(void) foo;' or '+(int) bar;'
-sp_after_oc_scope = ignore # ignore/add/remove/force
-
-# Add or remove space after the colon in message specs
-# '-(int) f:(int) x;' vs '-(int) f: (int) x;'
-sp_after_oc_colon = ignore # ignore/add/remove/force
-
-# Add or remove space before the colon in message specs
-# '-(int) f: (int) x;' vs '-(int) f : (int) x;'
-sp_before_oc_colon = ignore # ignore/add/remove/force
-
-# Add or remove space after the colon in message specs
-# '[object setValue:1];' vs '[object setValue: 1];'
-sp_after_send_oc_colon = ignore # ignore/add/remove/force
-
-# Add or remove space before the colon in message specs
-# '[object setValue:1];' vs '[object setValue :1];'
-sp_before_send_oc_colon = ignore # ignore/add/remove/force
-
-# Add or remove space after the (type) in message specs
-# '-(int) f: (int) x;' vs '-(int) f: (int)x;'
-sp_after_oc_type = ignore # ignore/add/remove/force
-
-# Add or remove space around the ':' in 'b ? t : f'
-sp_cond_colon = ignore # ignore/add/remove/force
-
-# Add or remove space around the '?' in 'b ? t : f'
-sp_cond_question = ignore # ignore/add/remove/force
-
-# Fix the spacing between 'case' and the label. Only 'ignore' and 'force' make sense here.
-sp_case_label = remove # ignore/add/remove/force
-
-#
-# Code alignment (not left column spaces/tabs)
-#
-
-# Whether to keep non-indenting tabs
-align_keep_tabs = false # false/true
-
-# Whether to use tabs for alinging
-align_with_tabs = false # false/true
-
-# Whether to bump out to the next tab when aligning
-align_on_tabstop = false # false/true
-
-# Whether to left-align numbers
-align_number_left = false # false/true
-
-# Align variable definitions in prototypes and functions
-align_func_params = false # false/true
-
-# Align parameters in single-line functions that have the same name.
-# The function names must already be aligned with each other.
-align_same_func_call_params = false # false/true
-
-# The span for aligning variable definitions (0=don't align)
-align_var_def_span = 1 # number
-
-# How to align the star in variable definitions.
-# 0=Part of the type 'void * foo;'
-# 1=Part of the variable 'void *foo;'
-# 2=Dangling 'void *foo;'
-align_var_def_star_style = 1 # number
-
-# How to align the '&' in variable definitions.
-# 0=Part of the type
-# 1=Part of the variable
-# 2=Dangling
-align_var_def_amp_style = 0 # number
-
-# The threshold for aligning variable definitions (0=no limit)
-align_var_def_thresh = 1 # number
-
-# The gap for aligning variable definitions
-align_var_def_gap = 0 # number
-
-# Whether to align the colon in struct bit fields
-align_var_def_colon = false # false/true
-
-# Whether to align inline struct/enum/union variable definitions
-align_var_def_inline = false # false/true
-
-# The span for aligning on '=' in assignments (0=don't align)
-align_assign_span = 0 # number
-
-# The threshold for aligning on '=' in assignments (0=no limit)
-align_assign_thresh = 12 # number
-
-# The span for aligning on '=' in enums (0=don't align)
-align_enum_equ_span = 0 # number
-
-# The threshold for aligning on '=' in enums (0=no limit)
-align_enum_equ_thresh = 0 # number
-
-# The span for aligning struct/union (0=don't align)
-align_var_struct_span = 0 # number
-
-# The threshold for aligning struct/union member definitions (0=no limit)
-align_var_struct_thresh = 0 # number
-
-# The gap for aligning struct/union member definitions
-align_var_struct_gap = 0 # number
-
-# The span for aligning struct initializer values (0=don't align)
-align_struct_init_span = 3 # number
-
-# The minimum space between the type and the synonym of a typedef
-align_typedef_gap = 3 # number
-
-# The span for aligning single-line typedefs (0=don't align)
-align_typedef_span = 5 # number
-
-# How to align typedef'd functions with other typedefs
-# 0: Don't mix them at all
-# 1: align the open paren with the types
-# 2: align the function type name with the other type names
-align_typedef_func = 0 # number
-
-# Controls the positioning of the '*' in typedefs. Just try it.
-# 0: Align on typdef type, ignore '*'
-# 1: The '*' is part of type name: typedef int *pint;
-# 2: The '*' is part of the type, but dangling: typedef int *pint;
-align_typedef_star_style = 0 # number
-
-# Controls the positioning of the '&' in typedefs. Just try it.
-# 0: Align on typdef type, ignore '&'
-# 1: The '&' is part of type name: typedef int &pint;
-# 2: The '&' is part of the type, but dangling: typedef int &pint;
-align_typedef_amp_style = 0 # number
-
-# The span for aligning comments that end lines (0=don't align)
-align_right_cmt_span = 3 # number
-
-# If aligning comments, mix with comments after '}' and #endif with less than 3 spaces before the comment
-align_right_cmt_mix = false # false/true
-
-# If a trailing comment is more than this number of columns away from the text it follows,
-# it will qualify for being aligned.
-align_right_cmt_gap = 0 # number
-
-# The span for aligning function prototypes (0=don't align)
-align_func_proto_span = 0 # number
-
-# Minimum gap between the return type and the function name.
-align_func_proto_gap = 0 # number
-
-# Whether to mix aligning prototype and variable declarations.
-# If true, align_var_def_XXX options are used instead of align_func_proto_XXX options.
-align_mix_var_proto = false # false/true
-
-# Align single-line functions with function prototypes, uses align_func_proto_span
-align_single_line_func = false # false/true
-
-# Aligning the open brace of single-line functions.
-# Requires align_single_line_func=true, uses align_func_proto_span
-align_single_line_brace = false # false/true
-
-# Gap for align_single_line_brace.
-align_single_line_brace_gap = 0 # number
-
-# The span for aligning ObjC msg spec (0=don't align)
-align_oc_msg_spec_span = 0 # number
-
-# Whether to align macros wrapped with a backslash and a newline.
-# This will not work right if the macro contains a multi-line comment.
-align_nl_cont = true # false/true
-
-# The minimum space between label and value of a preprocessor define
-align_pp_define_gap = 4 # number
-
-# The span for aligning on '#define' bodies (0=don't align)
-align_pp_define_span = 3 # number
-
-# Align lines that start with '<<' with previous '<<'. Default=true
-align_left_shift = true # false/true
-
-#
-# Newline adding and removing options
-#
-
-# Whether to collapse empty blocks between '{' and '}'
-nl_collapse_empty_body = true # false/true
-
-# Don't split one-line braced assignments - 'foo_t f = { 1, 2 };'
-nl_assign_leave_one_liners = false # false/true
-
-# Don't split one-line braced statements inside a class xx { } body
-nl_class_leave_one_liners = false # false/true
-
-# Don't split one-line enums: 'enum foo { BAR = 15 };'
-nl_enum_leave_one_liners = false # false/true
-
-# Don't split one-line get or set functions
-nl_getset_leave_one_liners = false # false/true
-
-# Don't split one-line function definitions - 'int foo() { return 0; }'
-nl_func_leave_one_liners = false # false/true
-
-# Don't split one-line if/else statements - 'if(a) b++;'
-nl_if_leave_one_liners = false # false/true
-
-# Add or remove newlines at the start of the file
-nl_start_of_file = remove # ignore/add/remove/force
-
-# The number of newlines at the start of the file (only used if nl_start_of_file is 'add' or 'force'
-nl_start_of_file_min = 0 # number
-
-# Add or remove newline at the end of the file
-nl_end_of_file = force # ignore/add/remove/force
-
-# The number of newlines at the end of the file (only used if nl_end_of_file is 'add' or 'force')
-nl_end_of_file_min = 1 # number
-
-# Add or remove newline between '=' and '{'
-nl_assign_brace = force # ignore/add/remove/force
-
-# Add or remove newline between '=' and '[' (D only)
-nl_assign_square = force # ignore/add/remove/force
-
-# Add or remove newline after '= [' (D only). Will also affect the newline before the ']'
-nl_after_square_assign = force # ignore/add/remove/force
-
-# The number of newlines after a block of variable definitions
-nl_func_var_def_blk = 1 # number
-
-# Add or remove newline between a function call's ')' and '{', as in:
-# list_for_each(item, &list) { }
-nl_fcall_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'enum' and '{'
-nl_enum_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'struct and '{'
-nl_struct_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'union' and '{'
-nl_union_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'if' and '{'
-nl_if_brace = force # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'else'
-nl_brace_else = force # ignore/add/remove/force
-
-# Add or remove newline between 'else if' and '{'
-# If set to ignore, nl_if_brace is used instead
-nl_elseif_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'else' and '{'
-nl_else_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'else' and 'if'
-nl_else_if = remove # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'finally'
-nl_brace_finally = force # ignore/add/remove/force
-
-# Add or remove newline between 'finally' and '{'
-nl_finally_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'try' and '{'
-nl_try_brace = force # ignore/add/remove/force
-
-# Add or remove newline between get/set and '{'
-nl_getset_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'for' and '{'
-nl_for_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'catch' and '{'
-nl_catch_brace = force # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'catch'
-nl_brace_catch = force # ignore/add/remove/force
-
-# Add or remove newline between 'while' and '{'
-nl_while_brace = force # ignore/add/remove/force
-
-# Add or remove newline between 'do' and '{'
-nl_do_brace = force # ignore/add/remove/force
-
-# Add or remove newline between '}' and 'while' of 'do' statement
-nl_brace_while = force # ignore/add/remove/force
-
-# Add or remove newline between 'switch' and '{'
-nl_switch_brace = force # ignore/add/remove/force
-
-# Add or remove newline when condition spans two or more lines
-nl_multi_line_cond = false # false/true
-
-# Force a newline in a define after the macro name for multi-line defines.
-nl_multi_line_define = true # false/true
-
-# Whether to put a newline before 'case' statement
-nl_before_case = true # false/true
-
-# Add or remove newline between ')' and 'throw'
-nl_before_throw = ignore # ignore/add/remove/force
-
-# Whether to put a newline after 'case' statement
-nl_after_case = true # false/true
-
-# Newline between namespace and {
-nl_namespace_brace = add # ignore/add/remove/force
-
-# Add or remove newline between 'template<>' and whatever follows.
-nl_template_class = add # ignore/add/remove/force
-
-# Add or remove newline between 'class' and '{'
-nl_class_brace = add # ignore/add/remove/force
-
-# Add or remove newline after each ',' in the constructor member initialization
-nl_class_init_args = force # ignore/add/remove/force
-
-# Add or remove newline between return type and function name in definition
-nl_func_type_name = ignore # ignore/add/remove/force
-
-# Add or remove newline between return type and function name in a prototype
-nl_func_proto_type_name = remove # ignore/add/remove/force
-
-# Add or remove newline between a function name and the opening '('
-nl_func_paren = remove # ignore/add/remove/force
-
-# Add or remove newline after '(' in a function declaration
-nl_func_decl_start = remove # ignore/add/remove/force
-
-# Add or remove newline after each ',' in a function declaration
-nl_func_decl_args = remove # ignore/add/remove/force
-
-# Add or remove newline before the ')' in a function declaration
-nl_func_decl_end = remove # ignore/add/remove/force
-
-# Add or remove newline between function signature and '{'
-nl_fdef_brace = add # ignore/add/remove/force
-
-# Whether to put a newline after 'return' statement
-nl_after_return = true # false/true
-
-# Add or remove a newline between the return keyword and return expression.
-nl_return_expr = remove # ignore/add/remove/force
-
-# Whether to put a newline after semicolons, except in 'for' statements
-nl_after_semicolon = true # false/true
-
-# Whether to put a newline after brace open.
-# This also adds a newline before the matching brace close.
-nl_after_brace_open = true # false/true
-
-# If nl_after_brace_open and nl_after_brace_open_cmt are true, a newline is
-# placed between the open brace and a trailing single-line comment.
-nl_after_brace_open_cmt = false # false/true
-
-# Whether to put a newline after a virtual brace open.
-# These occur in un-braced if/while/do/for statement bodies.
-nl_after_vbrace_open = true # false/true
-
-# Whether to alter newlines in '#define' macros
-nl_define_macro = true # false/true
-
-# Whether to not put blanks after '#ifxx', '#elxx', or before '#endif'
-nl_squeeze_ifdef = false # false/true
-
-# Add or remove newline before 'if'
-nl_before_if = ignore # ignore/add/remove/force
-
-# Add or remove newline after 'if'
-nl_after_if = ignore # ignore/add/remove/force
-
-# Add or remove newline before 'for'
-nl_before_for = ignore # ignore/add/remove/force
-
-# Add or remove newline after 'for'
-nl_after_for = ignore # ignore/add/remove/force
-
-# Add or remove newline before 'while'
-nl_before_while = ignore # ignore/add/remove/force
-
-# Add or remove newline after 'while'
-nl_after_while = ignore # ignore/add/remove/force
-
-# Add or remove newline before 'switch'
-nl_before_switch = force # ignore/add/remove/force
-
-# Add or remove newline after 'switch'
-nl_after_switch = force # ignore/add/remove/force
-
-# Add or remove newline before 'do'
-nl_before_do = ignore # ignore/add/remove/force
-
-# Add or remove newline after 'do'
-nl_after_do = ignore # ignore/add/remove/force
-
-# Whether to double-space commented-entries in struct/enum
-nl_ds_struct_enum_cmt = false # false/true
-
-# Whether to double-space before the close brace of a struct/union/enum
-nl_ds_struct_enum_close_brace = false # false/true
-
-# Add or remove a newline around a class colon.
-# Related to pos_class_colon, nl_class_init_args, and pos_comma.
-nl_class_colon = ignore # ignore/add/remove/force
-
-# Change simple unbraced if statements into a one-liner
-# 'if(b)\n i++;' => 'if(b) i++;'
-nl_create_if_one_liner = false # false/true
-
-# Change simple unbraced for statements into a one-liner
-# 'for (i=0;i<5;i++)\n foo(i);' => 'for (i=0;i<5;i++) foo(i);'
-nl_create_for_one_liner = false # false/true
-
-# Change simple unbraced while statements into a one-liner
-# 'while (i<5)\n foo(i++);' => 'while (i<5) foo(i++);'
-nl_create_while_one_liner = false # false/true
-
-#
-# Positioning options
-#
-
-# The position of arithmetic operators in wrapped expressions
-pos_arith = lead # ignore/lead/trail
-
-# The position of assignment in wrapped expressions
-pos_assign = trail # ignore/lead/trail
-
-# The position of boolean operators in wrapped expressions
-pos_bool = lead # ignore/lead/trail
-
-# The position of the comma in wrapped expressions
-pos_comma = trail # ignore/lead/trail
-
-# The position of the comma in the constructor initialization list
-pos_class_comma = trail # ignore/lead/trail
-
-# The position of colons between constructor and member initialization
-pos_class_colon = lead # ignore/lead/trail
-
-#
-# Line Splitting options
-#
-
-# Try to limit code width to N number of columns
-code_width = 76 # number
-
-# Whether to fully split long 'for' statements at semi-colons
-ls_for_split_full = true # false/true
-
-# Whether to fully split long function protos/calls at commas
-ls_func_split_full = true # false/true
-
-#
-# Blank line options
-#
-
-# The maximum consecutive newlines
-nl_max = 4 # number
-
-# The number of newlines after a function prototype, if followed by another function prototype
-nl_after_func_proto = 0 # number
-
-# The number of newlines after a function prototype, if not followed by another function prototype
-nl_after_func_proto_group = 3 # number
-
-# The number of newlines after '}' of a multi-line function body
-nl_after_func_body = 3 # number
-
-# The number of newlines after '}' of a single line function body
-nl_after_func_body_one_liner = 1 # number
-
-# The minimum number of newlines before a multi-line comment.
-# Doesn't apply if after a brace open or another multi-line comment.
-nl_before_block_comment = 2 # number
-
-# The minimum number of newlines before a single-line C comment.
-# Doesn't apply if after a brace open or other single-line C comments.
-nl_before_c_comment = 1 # number
-
-# The minimum number of newlines before a CPP comment.
-# Doesn't apply if after a brace open or other CPP comments.
-nl_before_cpp_comment = 0 # number
-
-# Whether to force a newline after a mulit-line comment.
-nl_after_multiline_comment = false # false/true
-
-# The number of newlines before a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
-# Will not change the newline count if after a brace open.
-# 0 = No change.
-nl_before_access_spec = 1 # number
-
-# The number of newlines after a 'private:', 'public:', 'protected:', 'signals:', or 'slots:' label.
-# 0 = No change.
-nl_after_access_spec = 1 # number
-
-# The number of newlines between a function def and the function comment.
-# 0 = No change.
-nl_comment_func_def = 0 # number
-
-# Whether to remove blank lines after '{'
-eat_blanks_after_open_brace = true # false/true
-
-# Whether to remove blank lines before '}'
-eat_blanks_before_close_brace = true # false/true
-
-#
-# Code modifying options (non-whitespace)
-#
-
-# Add or remove braces on single-line 'do' statement
-mod_full_brace_do = add # ignore/add/remove/force
-
-# Add or remove braces on single-line 'for' statement
-mod_full_brace_for = add # ignore/add/remove/force
-
-# Add or remove braces on single-line function defintions. (Pawn)
-mod_full_brace_function = ignore # ignore/add/remove/force
-
-# Add or remove braces on single-line 'if' statement. Will not remove the braces if they contain an 'else'.
-mod_full_brace_if = ignore # ignore/add/remove/force
-
-# Don't remove braces around statements that span N newlines
-mod_full_brace_nl = 0 # number
-
-# Add or remove braces on single-line 'while' statement
-mod_full_brace_while = add # ignore/add/remove/force
-
-# Add or remove unnecessary paren on 'return' statement
-mod_paren_on_return = remove # ignore/add/remove/force
-
-# Whether to change optional semicolons to real semicolons
-mod_pawn_semicolon = false # false/true
-
-# Add parens on 'while' and 'if' statement around bools
-mod_full_paren_if_bool = true # false/true
-
-# Whether to remove superfluous semicolons
-mod_remove_extra_semicolon = true # false/true
-
-# If a function body exceeds the specified number of newlines and doesn't have a comment after
-# the close brace, a comment will be added.
-mod_add_long_function_closebrace_comment = 5 # number
-
-# If a switch body exceeds the specified number of newlines and doesn't have a comment after
-# the close brace, a comment will be added.
-mod_add_long_switch_closebrace_comment = 5 # number
-
-# If TRUE, will sort consecutive single-line 'import' statements [Java, D]
-mod_sort_import = false # false/true
-
-# If TRUE, will sort consecutive single-line 'using' statements [C#]
-mod_sort_using = false # false/true
-
-# If TRUE, will sort consecutive single-line '#include' statements [C/C++] and '#import' statements [Obj-C]
-# This is generally a bad idea, as it may break your code.
-mod_sort_include = false # false/true
-
-# If TRUE, it will move a 'break' that appears after a fully braced 'case' before the close brace.
-mod_move_case_break = false # false/true
-
-# If TRUE, it will remove a void 'return;' that appears as the last statement in a function.
-mod_remove_empty_return = true # false/true
-
-#
-# Comment modifications
-#
-
-# Try to wrap comments at cmt_width columns
-cmt_width = 0 # number
-
-# If false, disable all multi-line comment changes, including cmt_width and leading chars.
-# Default is true.
-cmt_indent_multi = true # false/true
-
-# Whether to group c-comments that look like they are in a block
-cmt_c_group = false # false/true
-
-# Whether to put an empty '/*' on the first line of the combined c-comment
-cmt_c_nl_start = false # false/true
-
-# Whether to put a newline before the closing '*/' of the combined c-comment
-cmt_c_nl_end = false # false/true
-
-# Whether to group cpp-comments that look like they are in a block
-cmt_cpp_group = false # false/true
-
-# Whether to put an empty '/*' on the first line of the combined cpp-comment
-cmt_cpp_nl_start = false # false/true
-
-# Whether to put a newline before the closing '*/' of the combined cpp-comment
-cmt_cpp_nl_end = false # false/true
-
-# Whether to change cpp-comments into c-comments
-cmt_cpp_to_c = false # false/true
-
-# Whether to put a star on subsequent comment lines
-cmt_star_cont = true # false/true
-
-# The number of spaces to insert at the start of subsequent comment lines
-cmt_sp_before_star_cont = 0 # number
-
-# The number of spaces to insert after the star on subsequent comment lines
-cmt_sp_after_star_cont = 1 # number
-
-# For multi-line comments with a '*' lead, remove leading spaces if the first and last lines of
-# the comment are the same length. Default=True
-cmt_multi_check_last = true # false/true
-
-# The filename that contains text to insert at the head of a file if the file doesn't start with a C/C++ comment.
-# Will substitue $(filename) with the current file's name.
-cmt_insert_file_header = "" # string
-
-# The filename that contains text to insert before a function implementation if the function isn't preceeded with a C/C++ comment.
-# Will substitue $(function) with the function name and $(javaparam) with the javadoc @param and @return stuff.
-# Will also substitute $(fclass) with the class name: void CFoo::Bar() { ... }
-cmt_insert_func_header = "" # string
-
-# The filename that contains text to insert before a class if the class isn't preceeded with a C/C++ comment.
-# Will substitue $(class) with the class name.
-cmt_insert_class_header = "" # string
-
-# If a preprocessor is encountered when stepping backwards from a function name, then
-# this option decides whether the comment should be inserted.
-# Affects cmt_insert_func_header and cmt_insert_class_header.
-cmt_insert_before_preproc = false # false/true
-
-#
-# Preprocessor options
-#
-
-# Control indent of preprocessors inside #if blocks at brace level 0
-pp_indent = remove # ignore/add/remove/force
-
-# Whether to indent #if/#else/#endif at the brace level (true) or from column 1 (false)
-pp_indent_at_level = false # false/true
-
-# If pp_indent_at_level=false, specifies the number of columns to indent per level. Default=1.
-pp_indent_count = 1 # number
-
-# Add or remove space after # based on pp_level of #if blocks
-pp_space = add # ignore/add/remove/force
-
-# Sets the number of spaces added with pp_space
-pp_space_count = 1 # number
-
-# The indent for #region and #endregion in C# and '#pragma region' in C/C++
-pp_indent_region = 0 # number
-
-# Whether to indent the code between #region and #endregion
-pp_region_indent_code = false # false/true
-
-# If pp_indent_at_level=true, sets the indent for #if, #else, and #endif when not at file-level
-pp_indent_if = 0 # number
-
-# Control whether to indent the code between #if, #else and #endif when not at file-level
-pp_if_indent_code = false # false/true
-
-# Whether to indent '#define' at the brace level (true) or from column 1 (false)
-pp_define_at_level = false # false/true
-
-# You can force a token to be a type with the 'type' option.
-# Example:
-# type myfoo1 myfoo2
-#
-# You can create custom macro-based indentation using macro-open,
-# macro-else and macro-close.
-# Example:
-# macro-open BEGIN_TEMPLATE_MESSAGE_MAP
-# macro-open BEGIN_MESSAGE_MAP
-# macro-close END_MESSAGE_MAP
-#
-# You can assign any keyword to any type with the set option.
-# set func_call_user _ N_
AC_INIT([libmemcached],[1.0.12],[http://libmemcached.org/])
-AC_CONFIG_AUX_DIR([config])
+AC_CONFIG_AUX_DIR([build-aux])
AC_CANONICAL_TARGET