pandora-build-0.171.1/0000755000175000017500000000000011506166157011413 500000000000000pandora-build-0.171.1/aclocal.m40000644000175000017500000005302611506166155013177 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, [m4_warning([this file was generated for autoconf 2.67. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # 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. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # 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. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # 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. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # 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. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # 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. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # 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. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # 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. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # 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. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # 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. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # 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. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # 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. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # 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. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/pandora_canonical.m4]) pandora-build-0.171.1/Makefile.am0000644000175000017500000001614311504715731013370 00000000000000# pandora-build # Copyright (C) 2009 Monty Taylor # All rights reserved. # # Use and distribution licensed under the BSD license. See # the COPYING file in this directory for full text. ACLOCAL_AMFLAGS= -I m4 nobase_pkgdata_DATA= \ config/autorun.sh \ config/config.rpath \ config/lcov.am \ config/pandora-plugin \ config/pandora-plugin.ini \ config/uncrustify.cfg \ m4/lib-ld.m4 \ m4/lib-link.m4 \ m4/lib-prefix.m4 aclocaldir= $(datadir)/aclocal aclocal_DATA= \ m4/pandora_64bit.m4 \ m4/pandora_bison.m4 \ m4/pandora_canonical.m4 \ m4/pandora_check_compiler_version.m4 \ m4/pandora_check_cxx_standard.m4 \ m4/pandora_cinttypes.m4 \ m4/pandora_clock_gettime.m4 \ m4/pandora_compile_stdcxx_0x.m4 \ m4/pandora_cstdint.m4 \ m4/pandora_cxx_demangle.m4 \ m4/pandora_drizzle_build.m4 \ m4/pandora_enable_dtrace.m4 \ m4/pandora_ensure_gcc_version.m4 \ m4/pandora_extensions.m4 \ m4/pandora_fdatasync.m4 \ m4/pandora_flex.m4 \ m4/pandora_have_better_malloc.m4 \ m4/pandora_have_boost.m4 \ m4/pandora_have_gcc_atomics.m4 \ m4/pandora_have_libavahi.m4 \ m4/pandora_have_libbdb.m4 \ m4/pandora_have_libboost_date_time.m4 \ m4/pandora_have_libboost_filesystem.m4 \ m4/pandora_have_libboost_iostreams.m4 \ m4/pandora_have_libboost_options.m4 \ m4/pandora_have_libboost_regex.m4 \ m4/pandora_have_libboost_thread.m4 \ m4/pandora_have_libcassandra.m4 \ m4/pandora_have_libcurl.m4 \ m4/pandora_have_libdl.m4 \ m4/pandora_have_libdrizzle.m4 \ m4/pandora_have_libevent.m4 \ m4/pandora_have_libgearman.m4 \ m4/pandora_have_libgtest.m4 \ m4/pandora_have_libhaildb.m4 \ m4/pandora_have_libhashkit.m4 \ m4/pandora_have_libldap.m4 \ m4/pandora_have_libmemcached.m4 \ m4/pandora_have_libmysqlclient.m4 \ m4/pandora_have_libndbclient.m4 \ m4/pandora_have_libpcre.m4 \ m4/pandora_have_libpq.m4 \ m4/pandora_have_libpqxx.m4 \ m4/pandora_have_libreadline.m4 \ m4/pandora_have_libsqlite3.m4 \ m4/pandora_have_libtokyocabinet.m4 \ m4/pandora_have_libuuid.m4 \ m4/pandora_have_libvbucket.m4 \ m4/pandora_have_libxml2.m4 \ m4/pandora_have_libz.m4 \ m4/pandora_have_protobuf.m4 \ m4/pandora_have_sasl.m4 \ m4/pandora_have_thrift.m4 \ m4/pandora_header_assert.m4 \ m4/pandora_header_stdcxx_98.m4 \ m4/pandora_intltool.m4 \ m4/pandora_libtool.m4 \ m4/pandora_optimize.m4 \ m4/pandora_platform.m4 \ m4/pandora_plugins.m4 \ m4/pandora_print_callstack.m4 \ m4/pandora_pthread.m4 \ m4/pandora_python3_devel.m4 \ m4/pandora_run_cpplint.m4 \ m4/pandora_sasl.m4 \ m4/pandora_shared_ptr.m4 \ m4/pandora_stl_hash.m4 \ m4/pandora_swig.m4 \ m4/pandora_use_pipe.m4 \ m4/pandora_vc_build.m4 \ m4/pandora_version.m4 \ m4/pandora_visibility.m4 \ m4/pandora_warnings.m4 \ m4/pandora_with_lua.m4 \ m4/pandora_with_memcached.m4 \ m4/pandora_with_perl.m4 \ m4/pandora_with_php.m4 \ m4/pandora_with_python.m4 \ m4/pandora_with_python3.m4 \ m4/pandora_with_r.m4 \ m4/pandora_with_ruby.m4 nobase_data_DATA= \ quickly/templates/pandora-build-c/commandsconfig \ quickly/templates/pandora-build-c/project_root/AUTHORS \ quickly/templates/pandora-build-c/project_root/config/pandora-plugin.ini \ quickly/templates/pandora-build-c/project_root/configure.ac \ quickly/templates/pandora-build-c/project_root/docs/Doxyfile \ quickly/templates/pandora-build-c/project_root/docs/header.html.in \ quickly/templates/pandora-build-c/project_root/project_name/project_name.c \ quickly/templates/pandora-build-c/project_root/project_name/project_name.h \ quickly/templates/pandora-build-c/project_root/project_name/test/basic.c \ quickly/templates/pandora-build-c/project_root/project_name/visibility.h \ quickly/templates/pandora-build-c/project_root/test_run.sh \ quickly/templates/pandora-build-c/project_root/valgrind.suppressions \ quickly/templates/pandora-build-c/project_root_application/Makefile.am \ quickly/templates/pandora-build/add.py \ quickly/templates/pandora-build/commandsconfig \ quickly/templates/pandora-build/create.py \ quickly/templates/pandora-build/drizzle_plugin/AUTHORS \ quickly/templates/pandora-build/drizzle_plugin/module.cc \ quickly/templates/pandora-build/drizzle_plugin/plugin.ini \ quickly/templates/pandora-build/drizzle_plugin/project_name.cc \ quickly/templates/pandora-build/drizzle_plugin/project_name.h \ quickly/templates/pandora-build/drizzle_plugin/tests/r/basic.result \ quickly/templates/pandora-build/drizzle_plugin/tests/t/basic.test \ quickly/templates/pandora-build/drizzle_plugin/tests/t/master.opt \ quickly/templates/pandora-build/internal/__init__.py \ quickly/templates/pandora-build/internal/apportutils.py \ quickly/templates/pandora-build/internal/available_licenses/header_Apache-2.0 \ quickly/templates/pandora-build/internal/available_licenses/header_BSD \ quickly/templates/pandora-build/internal/available_licenses/header_GPL-2 \ quickly/templates/pandora-build/internal/available_licenses/header_GPL-3 \ quickly/templates/pandora-build/internal/available_licenses/header_LGPL-2 \ quickly/templates/pandora-build/internal/available_licenses/header_LGPL-3 \ quickly/templates/pandora-build/internal/available_licenses/header_MIT \ quickly/templates/pandora-build/internal/bzrutils.py \ quickly/templates/pandora-build/internal/createoradd.py \ quickly/templates/pandora-build/internal/launchpad_helper.py \ quickly/templates/pandora-build/internal/licensing.py \ quickly/templates/pandora-build/internal/naming.py \ quickly/templates/pandora-build/internal/packaging.py \ quickly/templates/pandora-build/internal/pandoramacros.py \ quickly/templates/pandora-build/internal/quicklyutils.py \ quickly/templates/pandora-build/license.py \ quickly/templates/pandora-build/project_root/AUTHORS \ quickly/templates/pandora-build/project_root/config/pandora-plugin.ini \ quickly/templates/pandora-build/project_root/configure.ac \ quickly/templates/pandora-build/project_root/docs/Doxyfile \ quickly/templates/pandora-build/project_root/docs/header.html.in \ quickly/templates/pandora-build/project_root/project_name/class_name.cc \ quickly/templates/pandora-build/project_root/project_name/class_name.h \ quickly/templates/pandora-build/project_root/project_name/test/basic.cc \ quickly/templates/pandora-build/project_root/project_name/visibility.h \ quickly/templates/pandora-build/project_root/test_run.sh \ quickly/templates/pandora-build/project_root/valgrind.suppressions \ quickly/templates/pandora-build/project_root_application/Makefile.am \ quickly/templates/pandora-build/project_root_application/bin/project_name.cc \ quickly/templates/pandora-build/project_root_library/Makefile.am \ quickly/templates/pandora-build/run.py \ quickly/templates/pandora-build/tutorial.py \ quickly/templates/pandora-build/upgrade.py \ quickly/templates/pandora-build-c/project_root_application/bin/project_name.c \ quickly/templates/pandora-build-c/project_root_library/Makefile.am install-data-hook: -chmod ugo+x $(DESTDIR)$(datadir)/quickly/templates/pandora-build/*py EXTRA_DIST= ${aclocal_DATA} ${nobase_pkgdata_DATA} ${nobase_data_DATA} pandora-build-0.171.1/Makefile.in0000644000175000017500000006220711506166155013405 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in 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. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # pandora-build # Copyright (C) 2009 Monty Taylor # All rights reserved. # # Use and distribution licensed under the BSD license. See # the COPYING file in this directory for full text. VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure config/config.rpath config/install-sh \ config/ltmain.sh config/missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/pandora_canonical.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(aclocaldir)" "$(DESTDIR)$(datadir)" \ "$(DESTDIR)$(pkgdatadir)" DATA = $(aclocal_DATA) $(nobase_data_DATA) $(nobase_pkgdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ am__leading_dot = @am__leading_dot@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ ACLOCAL_AMFLAGS = -I m4 nobase_pkgdata_DATA = \ config/autorun.sh \ config/config.rpath \ config/lcov.am \ config/pandora-plugin \ config/pandora-plugin.ini \ config/uncrustify.cfg \ m4/lib-ld.m4 \ m4/lib-link.m4 \ m4/lib-prefix.m4 aclocaldir = $(datadir)/aclocal aclocal_DATA = \ m4/pandora_64bit.m4 \ m4/pandora_bison.m4 \ m4/pandora_canonical.m4 \ m4/pandora_check_compiler_version.m4 \ m4/pandora_check_cxx_standard.m4 \ m4/pandora_cinttypes.m4 \ m4/pandora_clock_gettime.m4 \ m4/pandora_compile_stdcxx_0x.m4 \ m4/pandora_cstdint.m4 \ m4/pandora_cxx_demangle.m4 \ m4/pandora_drizzle_build.m4 \ m4/pandora_enable_dtrace.m4 \ m4/pandora_ensure_gcc_version.m4 \ m4/pandora_extensions.m4 \ m4/pandora_fdatasync.m4 \ m4/pandora_flex.m4 \ m4/pandora_have_better_malloc.m4 \ m4/pandora_have_boost.m4 \ m4/pandora_have_gcc_atomics.m4 \ m4/pandora_have_libavahi.m4 \ m4/pandora_have_libbdb.m4 \ m4/pandora_have_libboost_date_time.m4 \ m4/pandora_have_libboost_filesystem.m4 \ m4/pandora_have_libboost_iostreams.m4 \ m4/pandora_have_libboost_options.m4 \ m4/pandora_have_libboost_regex.m4 \ m4/pandora_have_libboost_thread.m4 \ m4/pandora_have_libcassandra.m4 \ m4/pandora_have_libcurl.m4 \ m4/pandora_have_libdl.m4 \ m4/pandora_have_libdrizzle.m4 \ m4/pandora_have_libevent.m4 \ m4/pandora_have_libgearman.m4 \ m4/pandora_have_libgtest.m4 \ m4/pandora_have_libhaildb.m4 \ m4/pandora_have_libhashkit.m4 \ m4/pandora_have_libldap.m4 \ m4/pandora_have_libmemcached.m4 \ m4/pandora_have_libmysqlclient.m4 \ m4/pandora_have_libndbclient.m4 \ m4/pandora_have_libpcre.m4 \ m4/pandora_have_libpq.m4 \ m4/pandora_have_libpqxx.m4 \ m4/pandora_have_libreadline.m4 \ m4/pandora_have_libsqlite3.m4 \ m4/pandora_have_libtokyocabinet.m4 \ m4/pandora_have_libuuid.m4 \ m4/pandora_have_libvbucket.m4 \ m4/pandora_have_libxml2.m4 \ m4/pandora_have_libz.m4 \ m4/pandora_have_protobuf.m4 \ m4/pandora_have_sasl.m4 \ m4/pandora_have_thrift.m4 \ m4/pandora_header_assert.m4 \ m4/pandora_header_stdcxx_98.m4 \ m4/pandora_intltool.m4 \ m4/pandora_libtool.m4 \ m4/pandora_optimize.m4 \ m4/pandora_platform.m4 \ m4/pandora_plugins.m4 \ m4/pandora_print_callstack.m4 \ m4/pandora_pthread.m4 \ m4/pandora_python3_devel.m4 \ m4/pandora_run_cpplint.m4 \ m4/pandora_sasl.m4 \ m4/pandora_shared_ptr.m4 \ m4/pandora_stl_hash.m4 \ m4/pandora_swig.m4 \ m4/pandora_use_pipe.m4 \ m4/pandora_vc_build.m4 \ m4/pandora_version.m4 \ m4/pandora_visibility.m4 \ m4/pandora_warnings.m4 \ m4/pandora_with_lua.m4 \ m4/pandora_with_memcached.m4 \ m4/pandora_with_perl.m4 \ m4/pandora_with_php.m4 \ m4/pandora_with_python.m4 \ m4/pandora_with_python3.m4 \ m4/pandora_with_r.m4 \ m4/pandora_with_ruby.m4 nobase_data_DATA = \ quickly/templates/pandora-build-c/commandsconfig \ quickly/templates/pandora-build-c/project_root/AUTHORS \ quickly/templates/pandora-build-c/project_root/config/pandora-plugin.ini \ quickly/templates/pandora-build-c/project_root/configure.ac \ quickly/templates/pandora-build-c/project_root/docs/Doxyfile \ quickly/templates/pandora-build-c/project_root/docs/header.html.in \ quickly/templates/pandora-build-c/project_root/project_name/project_name.c \ quickly/templates/pandora-build-c/project_root/project_name/project_name.h \ quickly/templates/pandora-build-c/project_root/project_name/test/basic.c \ quickly/templates/pandora-build-c/project_root/project_name/visibility.h \ quickly/templates/pandora-build-c/project_root/test_run.sh \ quickly/templates/pandora-build-c/project_root/valgrind.suppressions \ quickly/templates/pandora-build-c/project_root_application/Makefile.am \ quickly/templates/pandora-build/add.py \ quickly/templates/pandora-build/commandsconfig \ quickly/templates/pandora-build/create.py \ quickly/templates/pandora-build/drizzle_plugin/AUTHORS \ quickly/templates/pandora-build/drizzle_plugin/module.cc \ quickly/templates/pandora-build/drizzle_plugin/plugin.ini \ quickly/templates/pandora-build/drizzle_plugin/project_name.cc \ quickly/templates/pandora-build/drizzle_plugin/project_name.h \ quickly/templates/pandora-build/drizzle_plugin/tests/r/basic.result \ quickly/templates/pandora-build/drizzle_plugin/tests/t/basic.test \ quickly/templates/pandora-build/drizzle_plugin/tests/t/master.opt \ quickly/templates/pandora-build/internal/__init__.py \ quickly/templates/pandora-build/internal/apportutils.py \ quickly/templates/pandora-build/internal/available_licenses/header_Apache-2.0 \ quickly/templates/pandora-build/internal/available_licenses/header_BSD \ quickly/templates/pandora-build/internal/available_licenses/header_GPL-2 \ quickly/templates/pandora-build/internal/available_licenses/header_GPL-3 \ quickly/templates/pandora-build/internal/available_licenses/header_LGPL-2 \ quickly/templates/pandora-build/internal/available_licenses/header_LGPL-3 \ quickly/templates/pandora-build/internal/available_licenses/header_MIT \ quickly/templates/pandora-build/internal/bzrutils.py \ quickly/templates/pandora-build/internal/createoradd.py \ quickly/templates/pandora-build/internal/launchpad_helper.py \ quickly/templates/pandora-build/internal/licensing.py \ quickly/templates/pandora-build/internal/naming.py \ quickly/templates/pandora-build/internal/packaging.py \ quickly/templates/pandora-build/internal/pandoramacros.py \ quickly/templates/pandora-build/internal/quicklyutils.py \ quickly/templates/pandora-build/license.py \ quickly/templates/pandora-build/project_root/AUTHORS \ quickly/templates/pandora-build/project_root/config/pandora-plugin.ini \ quickly/templates/pandora-build/project_root/configure.ac \ quickly/templates/pandora-build/project_root/docs/Doxyfile \ quickly/templates/pandora-build/project_root/docs/header.html.in \ quickly/templates/pandora-build/project_root/project_name/class_name.cc \ quickly/templates/pandora-build/project_root/project_name/class_name.h \ quickly/templates/pandora-build/project_root/project_name/test/basic.cc \ quickly/templates/pandora-build/project_root/project_name/visibility.h \ quickly/templates/pandora-build/project_root/test_run.sh \ quickly/templates/pandora-build/project_root/valgrind.suppressions \ quickly/templates/pandora-build/project_root_application/Makefile.am \ quickly/templates/pandora-build/project_root_application/bin/project_name.cc \ quickly/templates/pandora-build/project_root_library/Makefile.am \ quickly/templates/pandora-build/run.py \ quickly/templates/pandora-build/tutorial.py \ quickly/templates/pandora-build/upgrade.py \ quickly/templates/pandora-build-c/project_root_application/bin/project_name.c \ quickly/templates/pandora-build-c/project_root_library/Makefile.am EXTRA_DIST = ${aclocal_DATA} ${nobase_pkgdata_DATA} ${nobase_data_DATA} all: config.h $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then \ rm -f stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 install-aclocalDATA: $(aclocal_DATA) @$(NORMAL_INSTALL) test -z "$(aclocaldir)" || $(MKDIR_P) "$(DESTDIR)$(aclocaldir)" @list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(aclocaldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(aclocaldir)" || exit $$?; \ done uninstall-aclocalDATA: @$(NORMAL_UNINSTALL) @list='$(aclocal_DATA)'; test -n "$(aclocaldir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(aclocaldir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(aclocaldir)" && rm -f $$files install-nobase_dataDATA: $(nobase_data_DATA) @$(NORMAL_INSTALL) test -z "$(datadir)" || $(MKDIR_P) "$(DESTDIR)$(datadir)" @list='$(nobase_data_DATA)'; test -n "$(datadir)" || list=; \ $(am__nobase_list) | while read dir files; do \ xfiles=; for file in $$files; do \ if test -f "$$file"; then xfiles="$$xfiles $$file"; \ else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ test -z "$$xfiles" || { \ test "x$$dir" = x. || { \ echo "$(MKDIR_P) '$(DESTDIR)$(datadir)/$$dir'"; \ $(MKDIR_P) "$(DESTDIR)$(datadir)/$$dir"; }; \ echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(datadir)/$$dir'"; \ $(INSTALL_DATA) $$xfiles "$(DESTDIR)$(datadir)/$$dir" || exit $$?; }; \ done uninstall-nobase_dataDATA: @$(NORMAL_UNINSTALL) @list='$(nobase_data_DATA)'; test -n "$(datadir)" || list=; \ $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(datadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(datadir)" && rm -f $$files install-nobase_pkgdataDATA: $(nobase_pkgdata_DATA) @$(NORMAL_INSTALL) test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" @list='$(nobase_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ $(am__nobase_list) | while read dir files; do \ xfiles=; for file in $$files; do \ if test -f "$$file"; then xfiles="$$xfiles $$file"; \ else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \ test -z "$$xfiles" || { \ test "x$$dir" = x. || { \ echo "$(MKDIR_P) '$(DESTDIR)$(pkgdatadir)/$$dir'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)/$$dir"; }; \ echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(pkgdatadir)/$$dir'"; \ $(INSTALL_DATA) $$xfiles "$(DESTDIR)$(pkgdatadir)/$$dir" || exit $$?; }; \ done uninstall-nobase_pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(nobase_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ $(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pkgdatadir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pkgdatadir)" && rm -f $$files tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-am all-am: Makefile $(DATA) config.h installdirs: for dir in "$(DESTDIR)$(aclocaldir)" "$(DESTDIR)$(datadir)" "$(DESTDIR)$(pkgdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-aclocalDATA install-nobase_dataDATA \ install-nobase_pkgdataDATA @$(NORMAL_INSTALL) $(MAKE) $(AM_MAKEFLAGS) install-data-hook install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-aclocalDATA uninstall-nobase_dataDATA \ uninstall-nobase_pkgdataDATA .MAKE: all install-am install-data-am install-strip .PHONY: all all-am am--refresh check check-am clean clean-generic dist \ dist-all dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ \ dist-xz dist-zip distcheck distclean distclean-generic \ distclean-hdr distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-aclocalDATA \ install-am install-data install-data-am install-data-hook \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-nobase_dataDATA install-nobase_pkgdataDATA \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall \ uninstall-aclocalDATA uninstall-am uninstall-nobase_dataDATA \ uninstall-nobase_pkgdataDATA install-data-hook: -chmod ugo+x $(DESTDIR)$(datadir)/quickly/templates/pandora-build/*py # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: pandora-build-0.171.1/configure0000755000175000017500000031145511506166156013252 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.67 for pandora-build 0.171.1. # # Report bugs to . # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software # Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: http://launchpad.net/pandora-build about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='pandora-build' PACKAGE_TARNAME='pandora-build' PACKAGE_VERSION='0.171.1' PACKAGE_STRING='pandora-build 0.171.1' PACKAGE_BUGREPORT='http://launchpad.net/pandora-build' PACKAGE_URL='' ac_unique_file="m4/pandora_canonical.m4" ac_subst_vars='LTLIBOBJS LIBOBJS am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking ' ac_precious_vars='build_alias host_alias target_alias' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures pandora-build 0.171.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/pandora-build] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of pandora-build 0.171.1:";; esac cat <<\_ACEOF Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF pandora-build configure 0.171.1 generated by GNU Autoconf 2.67 Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by pandora-build $as_me 0.171.1, which was generated by GNU Autoconf 2.67. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5 ; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in config "$srcdir"/config; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in config \"$srcdir\"/config" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ac_config_headers="$ac_config_headers config.h" am__api_version='1.11' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='pandora-build' VERSION='0.171.1' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' if test "x${prefix}" = "x"; then : as_fn_error $? "--prefix requires an argument" "$LINENO" 5 fi ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by pandora-build $as_me 0.171.1, which was generated by GNU Autoconf 2.67. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ pandora-build config.status 0.171.1 configured by $0, generated by GNU Autoconf 2.67, with options \\"\$ac_cs_config\\" Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_t=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_t"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" } >"$tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi pandora-build-0.171.1/config/0000755000175000017500000000000011506166157012660 500000000000000pandora-build-0.171.1/config/pandora-plugin0000755000175000017500000006563211504715400015447 00000000000000#!/usr/bin/python # Copyright (C) 2009 Sun Microsystems, Inc. # # 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= 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_include_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['writing_status'] = 'done' def write_plugin_docs(plugin, doc_index): 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) 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_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([%(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) if plugin['static']: plugin_ac.write(""" 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" """ % plugin) else: plugin_ac.write(""" 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()]) plugin['build_conditional_tag']= "BUILD_%s_PLUGIN" % 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 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_include_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) if plugin['static']: plugin_am.write(""" %(root_plugin_dir)s_%(plugin_prefix)s%(name)s_dir=${top_srcdir}/%(rel_path)s EXTRA_DIST += %(rel_path)s/plugin.ini if %(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 """ % plugin) else: plugin_am.write(""" %(root_plugin_dir)s_%(plugin_prefix)s%(name)s_dir=${top_srcdir}/%(rel_path)s EXTRA_DIST += %(rel_path)s/plugin.ini if %(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") 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() pandora-build-0.171.1/config/pandora-plugin.ini0000644000175000017500000000014011500506370016201 00000000000000[pandora-plugin] root_plugin_dir=modules pkgplugindir=$(libdir)/MyProject plugin_suffix=_module pandora-build-0.171.1/config/missing0000755000175000017500000002623311504713064014176 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, # 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # 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; either version 2, or (at your option) # any later version. # 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, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; tar*) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar*) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: pandora-build-0.171.1/config/lcov.am0000644000175000017500000000251211500506333014046 00000000000000# 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 pandora-build-0.171.1/config/autorun.sh0000755000175000017500000000777111504715362014644 00000000000000#!/bin/sh # # Copyright (C) 2006 Jan Kneschke # Copyright (C) 2009 Sun Microsystems, Inc. # 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. # # Run this to generate all the initial makefiles, etc. die() { echo "$@"; exit 1; } # --force means overwrite ltmain.sh script if it already exists LIBTOOLIZE_FLAGS=" --automake --copy --force" # --add-missing instructs automake to install missing auxiliary files # and --force to overwrite them if they already exist AUTOMAKE_FLAGS="--add-missing --copy --force --foreign" ACLOCAL_FLAGS="-I m4" ARGV0=$0 ARGS="$@" 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 -f config/pre_hook.sh then . config/pre_hook.sh fi # Try to detect the supported binaries if the user didn't # override that by pushing the environment variable if test x$LIBTOOLIZE = x; then LIBTOOLIZE=`locate_binary glibtoolize libtoolize-1.5 libtoolize` if test x$LIBTOOLIZE = x; then die "Did not find a supported libtoolize" fi fi if test x$ACLOCAL = x; then ACLOCAL=`locate_binary aclocal-1.11 aclocal-1.10 aclocal-1.9 aclocal19 aclocal` if test x$ACLOCAL = x; then die "Did not find a supported aclocal" fi fi if test x$AUTOMAKE = x; then AUTOMAKE=`locate_binary automake-1.11 automake-1.10 automake-1.9 automake19 automake` if test x$AUTOMAKE = x; then die "Did not find a supported automake" fi fi if test x$AUTOCONF = x; then AUTOCONF=`locate_binary autoconf-2.59 autoconf259 autoconf` if test x$AUTOCONF = x; then die "Did not find a supported autoconf" fi fi if test x$AUTOHEADER = x; then AUTOHEADER=`locate_binary autoheader-2.59 autoheader259 autoheader` if test x$AUTOHEADER = x; then die "Did not find a supported autoheader" fi fi run $LIBTOOLIZE $LIBTOOLIZE_FLAGS || die "Can't execute libtoolize" run $ACLOCAL $ACLOCAL_FLAGS || die "Can't execute aclocal" run $AUTOHEADER || die "Can't execute autoheader" run $AUTOMAKE $AUTOMAKE_FLAGS || die "Can't execute automake" run $AUTOCONF || die "Can't execute autoconf" if test -f config/post_hook.sh then . config/post_hook.sh fi echo "---" echo "Configured with the following tools:" echo " * `$LIBTOOLIZE --version | head -1`" echo " * `$ACLOCAL --version | head -1`" echo " * `$AUTOHEADER --version | head -1`" echo " * `$AUTOMAKE --version | head -1`" echo " * `$AUTOCONF --version | head -1`" echo "---" pandora-build-0.171.1/config/install-sh0000755000175000017500000003253711504713064014607 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: pandora-build-0.171.1/config/uncrustify.cfg0000644000175000017500000013560311500506333015470 00000000000000# # 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();' sp_angle_paren = ignore # ignore/add/remove/force # Add or remove space between '<>' and a word as in 'List 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 ( ; ; ). 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_ pandora-build-0.171.1/config/ltmain.sh0000755000175000017500000073341511504713055014431 00000000000000# Generated from ltmain.m4sh. # ltmain.sh (GNU libtool) 2.2.6b # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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 GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print informational messages (default) # --version print version information # -h, --help print short or long help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=ltmain.sh PACKAGE=libtool VERSION="2.2.6b Debian-2.2.6b-2ubuntu1" TIMESTAMP="" package_revision=1.3017 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # NLS nuisances: We save the old values to restore during execute mode. # Only set LANG and LC_ALL to C if already set. # These must not be set unconditionally because not all systems understand # e.g. LANG=C (notably SCO). lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done $lt_unset CDPATH : ${CP="cp -f"} : ${ECHO="echo"} : ${EGREP="/bin/grep -E"} : ${FGREP="/bin/grep -F"} : ${GREP="/bin/grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="/bin/sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` } # Generated shell functions inserted here. # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" # The name of this program: # In the unlikely event $progname began with a '-', it would play havoc with # func_echo (imagine progname=-n), so we prepend ./ in that case: func_dirname_and_basename "$progpath" progname=$func_basename_result case $progname in -*) progname=./$progname ;; esac # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"` done my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "X$my_tmpdir" | $Xsed } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "X$1" | $Xsed \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/# -h/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" $ECHO $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help # Echo long help message to standard output and exit. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" exit $? } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1" exit_cmd=exit } exit_cmd=: # Check that we have a working $ECHO. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then # Yippee, $ECHO works! : else # Restart under the correct shell, and then maybe $ECHO will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done case "$@ " in " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac $ECHO $ECHO "Try \`$progname --help' for more information about other modes." exit $? } # Now that we've collected a possible --mode arg, show help if necessary $opt_help && func_mode_help # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -*) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" $ECHO "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS $ECHO "X----------------------------------------------------------------------" | $Xsed $ECHO "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done $ECHO $ECHO "If you ever happen to want to link against installed libraries" $ECHO "in a given directory, LIBDIR, you must either use libtool, and" $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'" $ECHO "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then $ECHO " - add LIBDIR to the \`$shlibpath_var' environment variable" $ECHO " during execution" fi if test -n "$runpath_var"; then $ECHO " - add LIBDIR to the \`$runpath_var' environment variable" $ECHO " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then $ECHO " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi $ECHO $ECHO "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual" $ECHO "pages." ;; *) $ECHO "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac $ECHO "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $ECHO "X$nonopt" | $GREP shtool >/dev/null; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms" fi $ECHO >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) $ECHO >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac $ECHO >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?' if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper_part1 [arg=no] # # Emit the first part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part1 () { func_emit_wrapper_part1_arg1=no if test -n "$1" ; then func_emit_wrapper_part1_arg1=$1 fi $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then ECHO=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then # Yippee, \$ECHO works! : else # Restart under the correct shell, and then maybe \$ECHO will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $ECHO "\ # Find the directory that this script lives in. thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done " } # end: func_emit_wrapper_part1 # func_emit_wrapper_part2 [arg=no] # # Emit the second part of a libtool wrapper script on stdout. # For more information, see the description associated with # func_emit_wrapper(), below. func_emit_wrapper_part2 () { func_emit_wrapper_part2_arg1=no if test -n "$1" ; then func_emit_wrapper_part2_arg1=$1 fi $ECHO "\ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # end: func_emit_wrapper_part2 # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=no if test -n "$1" ; then func_emit_wrapper_arg1=$1 fi # split this up so that func_emit_cwrapperexe_src # can call each part independently. func_emit_wrapper_part1 "${func_emit_wrapper_arg1}" func_emit_wrapper_part2 "${func_emit_wrapper_arg1}" } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_path_tmp1=`( cmd //c echo "$1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_tmp1=`cygpath -w "$1"` func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\ $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result="" fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1" ; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_to_host_pathlist_tmp2="$1" # Once set for this call, this variable should not be # reassigned. It is used in tha fallback case. func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e 's|^:*||' -e 's|:*$||'` case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. lt_sed_strip_trailing_spaces="s/[ ]*\$//" func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"` func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\ $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result" fi fi fi IFS=: done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result" ; then func_error "Could not determine the host path(s) corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include # define setmode _setmode #else # include # include # ifdef __CYGWIN__ # include # define HAVE_SETENV # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif # endif #endif #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif #ifdef _MSC_VER # define S_IXUSR _S_IEXEC # define stat _stat # ifndef _INTPTR_T_DEFINED # define intptr_t int # endif #endif #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifdef __CYGWIN__ # define FOPEN_WB "wb" #endif #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #undef LTWRAPPER_DEBUGPRINTF #if defined DEBUGWRAPPER # define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args static void ltwrapper_debugprintf (const char *fmt, ...) { va_list args; va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } #else # define LTWRAPPER_DEBUGPRINTF(args) #endif const char *program_name = NULL; void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_fatal (const char *message, ...); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_opt_process_env_set (const char *arg); void lt_opt_process_env_prepend (const char *arg); void lt_opt_process_env_append (const char *arg); int lt_split_name_value (const char *arg, char** name, char** value); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); static const char *script_text_part1 = EOF func_emit_wrapper_part1 yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ "/' -e 's/$/\\n"/' echo ";" cat <"))); for (i = 0; i < newargc; i++) { LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : ""))); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno)); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal ("Memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!")); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; LTWRAPPER_DEBUGPRINTF (("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!")); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal ("getcwd failed"); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n", tmp_pathspec)); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { char *errstr = strerror (errno); lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal ("Could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } void lt_setenv (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n", (name ? name : ""), (value ? value : ""))); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } int lt_split_name_value (const char *arg, char** name, char** value) { const char *p; int len; if (!arg || !*arg) return 1; p = strchr (arg, (int)'='); if (!p) return 1; *value = xstrdup (++p); len = strlen (arg) - strlen (*value); *name = XMALLOC (char, len); strncpy (*name, arg, len-1); (*name)[len - 1] = '\0'; return 0; } void lt_opt_process_env_set (const char *arg) { char *name = NULL; char *value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg); } lt_setenv (name, value); XFREE (name); XFREE (value); } void lt_opt_process_env_prepend (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg); } new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_opt_process_env_append (const char *arg) { char *name = NULL; char *value = NULL; char *new_value = NULL; if (lt_split_name_value (arg, &name, &value) != 0) { XFREE (name); XFREE (value); lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg); } new_value = lt_extend_str (getenv (name), value, 1); lt_setenv (name, new_value); XFREE (new_value); XFREE (name); XFREE (value); } void lt_update_exe_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n", (name ? name : ""), (value ? value : ""))); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF } # end: func_emit_cwrapperexe_src # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"` case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $ECHO $ECHO "*** Warning: Trying to link with static lib archive $deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because the file extensions .$libext of this argument makes me believe" $ECHO "*** that it is just a static archive that I should not use here." else $ECHO $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then $ECHO if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then $ECHO $ECHO "*** And there doesn't seem to be a static archive available" $ECHO "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. $ECHO $ECHO "*** Warning: This system can not link to static lib archive $lib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then $ECHO "*** But as you try to build a module library, libtool will still create " $ECHO "*** a static module, that should work as long as the dlopening application" $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else $ECHO $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"` # deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"` # dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes $ECHO $ECHO "*** Warning: linker path does not have real file for library $a_deplib." $ECHO "*** I have the capability to make that library automatically link in when" $ECHO "*** you link to this library. But I can only do this if you have a" $ECHO "*** shared version of the library, which you do not appear to have" $ECHO "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \ -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"` done fi if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' | $GREP . >/dev/null; then $ECHO if test "X$deplibs_check_method" = "Xnone"; then $ECHO "*** Warning: inter-library dependencies are not supported in this platform." else $ECHO "*** Warning: inter-library dependencies are not known to be supported." fi $ECHO "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then $ECHO $ECHO "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" $ECHO "*** a static module, that should work as long as the dlopening" $ECHO "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then $ECHO $ECHO "*** However, this would only work if libtool was able to extract symbol" $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could" $ECHO "*** not find such a program. So, this module is probably useless." $ECHO "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else $ECHO "*** The inter-library dependencies that have been dropped here will be" $ECHO "*** automatically added whenever a program is linked with this library" $ECHO "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then $ECHO $ECHO "*** Since this library must not contain undefined symbols," $ECHO "*** because either the platform does not support them or" $ECHO "*** it was explicitly requested with -no-undefined," $ECHO "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output output_la=`$ECHO "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" $ECHO 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done $ECHO ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=$obj func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *cegcc) # Disable wrappers for cegcc, we are cross compiling anyway. wrappers_required=no ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` fi # Quote $ECHO for shipping. if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else $ECHO "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 pandora-build-0.171.1/config/config.rpath0000755000175000017500000004364711500506333015112 00000000000000#! /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 , 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 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=/' <. import os import sys import locale import subprocess import gettext from gettext import gettext as _ gettext.textdomain('quickly') from quickly import templatetools def help(): print _("""Usage: $ quickly tutorial Opens help file with the tutorial for the current template. """) templatetools.handle_additional_parameters(sys.argv, help) # TODO: FIX to take tutorial from the project path: # abs_template_path = templatetools.get_template_path_from_project() stop when # you are outside a project help_dir = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'help') help_file = os.path.join(help_dir, 'tutorial-%s.xml' % locale.getdefaultlocale()[0]) if not os.path.isfile(help_file) and locale.getdefaultlocale()[0] is not None: help_file = os.path.join(help_dir, 'tutorial-%s.xml' % locale.getdefaultlocale()[0].split('_')[0]) if not os.path.isfile(help_file): help_file = os.path.join(help_dir, 'tutorial.xml') subprocess.Popen(['yelp', help_file], stderr=file("/dev/null")) pandora-build-0.171.1/quickly/templates/pandora-build/project_root_library/0000755000175000017500000000000011506166157024050 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/project_root_library/Makefile.am0000644000175000017500000000411511453645615026027 00000000000000# # sentence_name # ### BEGIN LICENSE ### END LICENSE ACLOCAL_AMFLAGS = -I m4 LDADD = libproject_name.la AM_DEFAULT_SOURCE_EXT = .cc bin_PROGRAMS = check_PROGRAMS = noinst_PROGRAMS = lib_LTLIBRARIES = noinst_LTLIBRARIES = nobase_include_HEADERS = noinst_HEADERS = pkgplugin_LTLIBRARIES = CLEANFILES = DISTCLEANFILES = \ config/top.h EXTRA_DIST = \ docs/Doxyfile \ docs/header.html.in \ test_run.sh # # libproject_name # lib_LTLIBRARIES += libproject_name.la libproject_name_la_SOURCES = \ project_name/class_name.cc nobase_include_HEADERS += \ project_name/class_name.h \ project_name/visibility.h libproject_name_la_CXXFLAGS = \ $(AM_CXXFLAGS) \ -DBUILDING_all_caps_project_name libproject_name_la_LIBADD = $(LIBDL_LIBS) libproject_name_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBall_caps_project_name_VERSION) check_PROGRAMS += \ project_name/test/basic # # Simple project_name application # include config/pandora-plugin.am TESTS = $(check_PROGRAMS) TESTS_ENVIRONMENT = ${top_srcdir}/test_run.sh check-verbose: @all_caps_project_name_TEST_ARGS="v" make check check-debug: @all_caps_project_name_TEST_ARGS="vvv" make check check-valgrind: @all_caps_project_name_TEST_PREFIX="valgrind -q --leak-check=full --show-reachable=yes --suppressions=valgrind.suppressions" make check check-valgrind-debug: @all_caps_project_name_TEST_PREFIX="valgrind -q --leak-check=full --show-reachable=yes --suppressions=valgrind.suppressions" all_caps_project_name_TEST_ARGS="vvv" make check check-gdb: @all_caps_project_name_TEST_PREFIX="gdb -q" make check check-time: @all_caps_project_name_TEST_PREFIX="/usr/bin/time" make check check-strace: @all_caps_project_name_TEST_PREFIX="strace -c" make check check-truss: @all_caps_project_name_TEST_PREFIX="truss -c" make check docs: all @echo "/**" > docs/mainpage.h @echo "@mainpage README" >> docs/mainpage.h @echo "
" >> docs/mainpage.h
	@cat ${top_srcdir}/README >> docs/mainpage.h
	@echo "
" >> docs/mainpage.h @echo "*/" >> docs/mainpage.h ${DOXYGEN} ${top_srcdir}/docs/Doxyfile @rm docs/mainpage.h include config/lcov.am pandora-build-0.171.1/quickly/templates/pandora-build/commandsconfig0000644000175000017500000000056611401013571022435 00000000000000# define parameters for commands, putting them in a list seperated # by ';' # if nothing specified, default is to launch command inside a project # only and not be followed by a template COMMANDS_LAUNCHED_IN_OR_OUTSIDE_PROJECT = tutorial COMMANDS_LAUNCHED_OUTSIDE_PROJECT_ONLY = create COMMANDS_FOLLOWED_BY_COMMAND = [ubuntu-application] IMPORT=package;release;save;share pandora-build-0.171.1/quickly/templates/pandora-build/project_root/0000755000175000017500000000000011506166157022324 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/project_root/project_name/0000755000175000017500000000000011506166157024772 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/project_root/project_name/test/0000755000175000017500000000000011506166157025751 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/project_root/project_name/test/basic.cc0000644000175000017500000000044011373507531027254 00000000000000/* BEGIN LICENSE * END LICENSE */ #include "config.h" #include #include /** * @TODO Actually write a real test suite here */ int main(int, char **) { project_name::class_name test_class_name("test_class_name"); assert(true); return 0; } pandora-build-0.171.1/quickly/templates/pandora-build/project_root/project_name/class_name.h0000644000175000017500000000174711373510334027171 00000000000000/* BEGIN LICENSE * END LICENSE */ /** * @file * @brief An Example sentence_name Class */ #ifndef include_guard #define include_guard #include "project_name/visibility.h" #include open_namespace /** * The main class implementing class_name */ class all_caps_project_name_API class_name { const std::string name; public: explicit class_name(const std::string &input); explicit class_name(const char *input); virtual ~class_name(); /** * Get the name of this class_name */ const std::string &get_name() const; private: /** * Don't allow default construction. */ class_name(); /** * Don't allow copying of objects. */ class_name(const class_name &); /** * Don't allow assignment of objects. */ class_name& operator=(const class_name &); }; /* * Public methods. */ inline class_name::~class_name() { } inline const std::string &class_name::get_name() const { return name; } close_namespace #endif /* include_guard */ pandora-build-0.171.1/quickly/templates/pandora-build/project_root/project_name/class_name.cc0000644000175000017500000000036711373507027027331 00000000000000/* BEGIN LICENSE * END LICENSE */ #include "config.h" #include "class_name.h" open_namespace class_name::class_name(const std::string &input) : name(input) { } class_name::class_name(const char *input) : name(input) { } close_namespace pandora-build-0.171.1/quickly/templates/pandora-build/project_root/project_name/visibility.h0000644000175000017500000000404711371607660027256 00000000000000/* * sentence_name * * Copyright (C) 2010 Eric Day (eday@oddments.org) * All rights reserved. * * Use and distribution licensed under the BSD license. See the * COPYING file in the root project directory for full text. */ /** * @file * @brief Common Macro Definitions */ #ifndef all_caps_name_VISIBILITY_H #define all_caps_name_VISIBILITY_H /** * Be sure to put all_caps_name_API in front of all public API symbols, or one of * the other macros as appropriate. The default visibility without a macro is * to be hidden (all_caps_name_LOCAL). */ #if defined(BUILDING_all_caps_name) && defined(HAVE_VISIBILITY) # if defined(__GNUC__) # define all_caps_name_API __attribute__ ((visibility("default"))) # define all_caps_name_INTERNAL_API __attribute__ ((visibility("hidden"))) # define all_caps_name_API_DEPRECATED __attribute__ ((deprecated,visibility("default"))) # define all_caps_name_LOCAL __attribute__ ((visibility("hidden"))) # elif (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)) || (defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x550)) # define all_caps_name_API __global # define all_caps_name_INTERNAL_API __hidden # define all_caps_name_API_DEPRECATED __global # define all_caps_name_LOCAL __hidden # elif defined(_MSC_VER) # define all_caps_name_API extern __declspec(dllexport) # define all_caps_name_INTERNAL_API extern __declspec(dllexport) # define all_caps_name_DEPRECATED_API extern __declspec(dllexport) # define all_caps_name_LOCAL # endif #else /* defined(BUILDING_all_caps_name) && defined(HAVE_VISIBILITY) */ # if defined(_MSC_VER) # define SCALESTACK_API extern __declspec(dllimport) # define all_caps_name_INTERNAL_API extern __declspec(dllimport) # define all_caps_name_API_DEPRECATED extern __declspec(dllimport) # define all_caps_name_LOCAL # else # define all_caps_name_API # define all_caps_name_INTERNAL_API # define all_caps_name_API_DEPRECATED # define all_caps_name_LOCAL # endif /* defined(_MSC_VER) */ #endif /* defined(BUILDING_all_caps_name) && defined(HAVE_VISIBILITY) */ #endif /* all_caps_name_VISIBILITY_H */ pandora-build-0.171.1/quickly/templates/pandora-build/project_root/docs/0000755000175000017500000000000011506166157023254 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/project_root/docs/header.html.in0000644000175000017500000000062211367166234025720 00000000000000 @PACKAGE@ @PACKAGE_VERSION@ - $title

@PACKAGE@ @PACKAGE_VERSION@ Developer Documentation

pandora-build-0.171.1/quickly/templates/pandora-build/project_root/docs/Doxyfile0000644000175000017500000017363511371574523024721 00000000000000# Doxyfile 1.6.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = project_name # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = docs # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = YES # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it parses. # With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this tag. # The format is ext=language, where ext is a file extension, and language is one of # the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, # Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat # .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = NO # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = YES # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by # doxygen. The layout file controls the global structure of the generated output files # in an output format independent way. The create the layout file that represents # doxygen's defaults, run doxygen with the -l option. You can optionally specify a # file name after the option, if omitted DoxygenLayout.xml will be used as the name # of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = NO # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = docs ScaleStack # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = *.h *.cc # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = docs/header.html # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER # are set, an additional index file will be generated that can be used as input for # Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated # HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. # For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's # filter section matches. # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # When the SEARCHENGINE tag is enable doxygen will generate a search box for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP) # there is already a search function so this one should typically # be disabled. SEARCHENGINE = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = YES # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = SCALESTACK_API= SCALESTACK_LOCAL= # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = YES # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES pandora-build-0.171.1/quickly/templates/pandora-build/project_root/valgrind.suppressions0000644000175000017500000000023011371573636026550 00000000000000{ dlopen memory leak Memcheck:Leak fun:*alloc ... fun:dlopen* } { dlerror memory leak Memcheck:Leak fun:*alloc ... fun:*dlerror* } pandora-build-0.171.1/quickly/templates/pandora-build/project_root/config/0000755000175000017500000000000011506166157023571 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/project_root/config/pandora-plugin.ini0000644000175000017500000000021111371604704027117 00000000000000[pandora-plugin] root_plugin_dir=project_name plugin_suffix=_module extra_cxxflags=-DBUILDING_all_caps_name default_load_by_default=True pandora-build-0.171.1/quickly/templates/pandora-build/project_root/configure.ac0000644000175000017500000000505511373516600024531 00000000000000# # sentence_name # # Copyright (C) 2009-2010 Monty Taylor, Eric Day # All rights reserved. # # Use and distribution licensed under the BSD license. See # the COPYING file in this directory for full text. # AC_INIT([project_name],[0.1],[https://bugs.launchpad.net/project_name]) AC_CONFIG_SRCDIR([project_name/class_name.h]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_MACRO_DIR([m4]) PANDORA_CANONICAL_TARGET(require-cxx, warnings-always-on) # Increment if interfaces have been added, removed, or changed. LIBall_caps_name_VERSION_CURRENT=0 # Increment if source code has changed, set to zero if current is incremented. LIBall_caps_name_VERSION_REVISION=0 # Increment if interfaces have been added, set to zero if interfaces have been # removed or changed. LIBall_caps_name_VERSION_AGE=0 AC_SUBST(LIBall_caps_name_VERSION_CURRENT) AC_SUBST(LIBall_caps_name_VERSION_REVISION) AC_SUBST(LIBall_caps_name_VERSION_AGE) AC_DEFINE_UNQUOTED([LIBall_caps_name_VERSION_CURRENT], [$LIBall_caps_name_VERSION_CURRENT], [Current portion of libproject_name version]) AC_DEFINE_UNQUOTED([LIBall_caps_name_VERSION_REVISION], [$LIBall_caps_name_VERSION_REVISION], [Revision portion of libproject_name version]) AC_DEFINE_UNQUOTED([LIBall_caps_name_VERSION_AGE], [$LIBall_caps_name_VERSION_AGE], [Age portion of libproject_name version]) LIBall_caps_name_VERSION=$LIBall_caps_name_VERSION_CURRENT:$LIBall_caps_name_VERSION_REVISION:$LIBall_caps_name_VERSION_AGE AC_SUBST(LIBall_caps_name_VERSION) AC_LANG_PUSH(C++) PANDORA_REQUIRE_PTHREAD PANDORA_REQUIRE_LIBDL AC_LANG_POP PANDORA_PLUGINS AC_DEFINE_UNQUOTED([all_caps_name_MODULE_EXT], ["$acl_cv_shlibext"], [Extension to use for modules.]) AC_CONFIG_FILES(Makefile docs/header.html) AC_OUTPUT echo "---" echo "Configuration summary for $PACKAGE_NAME version $VERSION" echo "" echo " * Installation prefix: $prefix" echo " * System type: $host_vendor-$host_os" echo " * Host CPU: $host_cpu" echo " * C Compiler: $CC_VERSION" echo " * Assertions enabled: $ac_cv_assert" echo " * Debug enabled: $with_debug" echo " * Profiling enabled: $ac_profiling" echo " * Coverage enabled: $ac_coverage" echo " * Warnings as errors: $ac_cv_warnings_as_errors" echo " * Configured modules:" echo "" for module in `echo $PANDORA_PLUGIN_LIST | sed 's/_/::/g' | tr ',' '\n' | sort` do echo " - $module" done echo "" echo "---" pandora-build-0.171.1/quickly/templates/pandora-build/project_root/test_run.sh0000755000175000017500000000235311371573626024454 00000000000000#!/bin/sh # # sentence_name # # Copyright (C) 2010 Eric Day (eday@oddments.org) # All rights reserved. # # Use and distribution licensed under the BSD license. See the # COPYING file in the root project directory for full text. # # Get filename we want to run without path name=`echo $1 | sed 's/.*\/\(project_name\/.*[^\/]*\)$/\1/'` ext=`echo $name | sed 's/.*\.\([^.]*$\)/\1/'` if [ "x$ext" = "x$name" ] then ext="" fi if [ ! "x$ext" = "xsh" ] then libtool_prefix="libtool --mode=execute" fi # Set prefix if it was given through environment if [ -n "$all_caps_name_TEST_PREFIX" ] then if [ -n "$all_caps_name_TEST_FILTER" ] then # If filter variable is set, only apply prefix to those that match for x in $all_caps_name_TEST_FILTER do if [ "x$x" = "x$name" ] then prefix="$libtool_prefix $all_caps_name_TEST_PREFIX" with=" (with prefix after filter)" break fi done else prefix="$libtool_prefix $all_caps_name_TEST_PREFIX" with=" (with prefix)" fi fi # Set this to fix broken libtool test ECHO=`which echo` export ECHO # This needs to be set because of broken libtool on OSX DYLD_LIBRARY_PATH=project_name/.libs export DYLD_LIBRARY_PATH $prefix $1 $all_caps_name_TEST_ARGS pandora-build-0.171.1/quickly/templates/pandora-build/project_root/AUTHORS0000644000175000017500000000004211401021553023270 00000000000000Copyright (C) full_copyright_line pandora-build-0.171.1/quickly/templates/pandora-build/upgrade.py0000755000175000017500000000666711372753566021565 00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright 2009 Didier Roche # # This file is part of Quickly ubuntu-application template # #This program is free software: you can redistribute it and/or modify it #under the terms of the GNU General Public License version 3, as published #by the Free Software Foundation. #This program is distributed in the hope that it will be useful, but #WITHOUT ANY WARRANTY; without even the implied warranties of #MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . import os import shutil import subprocess import sys import internal.apportutils from internal import quicklyutils, pandoramacros, naming from quickly import configurationhandler, templatetools, tools import gettext from gettext import gettext as _ # set domain text gettext.textdomain('quickly') # get project version and template version if no argument given if len(sys.argv) < 3: (project_version, template_version) = templatetools.get_project_and_template_versions("pandora-build") else: project_version = sys.argv[1] template_version = sys.argv[2] root_project_path = tools.get_root_project_path() print "root path: ", root_project_path os.chdir(root_project_path) if not configurationhandler.project_config: configurationhandler.loadConfig() project_name = configurationhandler.project_config['project'] project_type = configurationhandler.project_config['project-type'] pandora_version = configurationhandler.project_config['pandora-version'] names = None type_names = None # check that project name follow quickly rules and reformat it. # TODO: need to handle input in the form of StoragEngine and turn it in to # storage_engine, Storage Engine, STORAGE_ENGINE and StorageEngine # respectively try: names = naming.naming_context(project_name) type_names = naming.naming_context(project_type) except templatetools.bad_project_name, e: print(e) sys.exit(1) substitutions = ( ("type_camel_case_name",type_names.camel_case_name), ("type_sentence_name",type_names.sentence_name), ("plugin_type",type_names.project_name), ("project_name",names.project_name), ("camel_case_name",names.camel_case_name), ("sentence_name",names.sentence_name), ("all_caps_name",names.all_caps_name), ) new_file_list = pandoramacros.copy_pandora_files() new_pandora_version = pandoramacros.get_pandora_version() try: os.chmod("config/autorun.sh", 0755) os.chmod("config/pandora-plugin", 0755) os.chmod("config/config.rpath", 0755) os.chmod("test_run.sh", 0755) except: pass configurationhandler.project_config['pandora-version'] = new_pandora_version configurationhandler.saveConfig() bzr_cmd = ["bzr", "add"] bzr_cmd.extend(new_file_list) bzr_instance = subprocess.Popen(bzr_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) bzr_instance.wait() bzr_cmd = ["bzr", "commit", "-m", "Updated pandora-build files to version %s" % new_pandora_version] bzr_cmd.extend(new_file_list) bzr_cmd.append('.quickly') bzr_instance = subprocess.Popen(bzr_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) bzr_instance.wait() # Remove AC_CONFIG_HEADERS and AC_CONFIG_MACRO_DIR from configure.ac if project_version < '0.99': pass sys.exit(0) pandora-build-0.171.1/quickly/templates/pandora-build/drizzle_plugin/0000755000175000017500000000000011506166157022654 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/drizzle_plugin/plugin.ini0000644000175000017500000000026311401012471024553 00000000000000[plugin] title=sentence_name description=camel_case_name plugin version=1.0 author=author_name license=PLUGIN_LICENSE_GPL sources=project_name.cc module.cc headers=project_name.h pandora-build-0.171.1/quickly/templates/pandora-build/drizzle_plugin/project_name.h0000644000175000017500000000104211371616741025407 00000000000000/* BEGIN LICENSE * END LICENSE */ #ifndef PLUGIN_all_caps_name_all_caps_name_H #define PLUGIN_all_caps_name_all_caps_name_H #include namespace project_name { class camel_case_name : public drizzled::plugin::type_camel_case_name { camel_case_name(camel_case_name&); camel_case_name operator=(camel_case_name&); public: camel_case_name(); virtual ~camel_case_name(); } inline camel_case_name::~camel_case_name() { } } /* namespace project_name */ #endif /* PLUGIN_all_caps_name_all_caps_name_H */ pandora-build-0.171.1/quickly/templates/pandora-build/drizzle_plugin/module.cc0000644000175000017500000000055511371616571024375 00000000000000/* BEGIN LICENSE * END LICENSE */ #include "config.h" #include #include "project_name.h" using namespace drizzled; namespace project_name_plugin { static int init(plugin::Context &context) { context.add(new camel_case_name); return 0; } } /* namespace project_name_plugin */ DRIZZLE_PLUGIN(project_name_plugin::init, NULL); pandora-build-0.171.1/quickly/templates/pandora-build/drizzle_plugin/project_name.cc0000644000175000017500000000036111371616571025551 00000000000000/* BEGIN LICENSE * END LICENSE */ #include "config.h" #include "project_name.h" namespace project_name { camel_case_name::camel_case_name() : drizzled::plugin::type_camel_case_name("sentence_name") { } } /* namespace project_name */ pandora-build-0.171.1/quickly/templates/pandora-build/drizzle_plugin/AUTHORS0000644000175000017500000000004211401030671023621 00000000000000Copyright (C) full_copyright_line pandora-build-0.171.1/quickly/templates/pandora-build/drizzle_plugin/tests/0000755000175000017500000000000011506166157024016 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/drizzle_plugin/tests/t/0000755000175000017500000000000011506166157024261 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/drizzle_plugin/tests/t/master.opt0000644000175000017500000000003211371713357026213 00000000000000--plugin_add=project_name pandora-build-0.171.1/quickly/templates/pandora-build/drizzle_plugin/tests/t/basic.test0000644000175000017500000000001211371352464026152 00000000000000select 1; pandora-build-0.171.1/quickly/templates/pandora-build/drizzle_plugin/tests/r/0000755000175000017500000000000011506166157024257 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/drizzle_plugin/tests/r/basic.result0000644000175000017500000000001611371352617026513 00000000000000select 1; 1 1 pandora-build-0.171.1/quickly/templates/pandora-build/project_root_application/0000755000175000017500000000000011506166157024707 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/project_root_application/Makefile.am0000644000175000017500000000410611453645646026672 00000000000000# # sentence_name # ### BEGIN LICENSE ### END LICENSE ACLOCAL_AMFLAGS = -I m4 LDADD = libproject_name.la AM_DEFAULT_SOURCE_EXT = .cc bin_PROGRAMS = check_PROGRAMS = noinst_PROGRAMS = lib_LTLIBRARIES = noinst_LTLIBRARIES = nobase_include_HEADERS = noinst_HEADERS = pkgplugin_LTLIBRARIES = CLEANFILES = DISTCLEANFILES = \ config/top.h EXTRA_DIST = \ docs/Doxyfile \ docs/header.html.in \ test_run.sh # # libproject_name # lib_LTLIBRARIES += libproject_name.la libproject_name_la_SOURCES = \ project_name/class_name.cc nobase_include_HEADERS += \ project_name/class_name.h \ project_name/visibility.h libproject_name_la_CXXFLAGS = \ $(AM_CXXFLAGS) \ -DBUILDING_all_caps_name libproject_name_la_LIBADD = $(LIBDL_LIBS) libproject_name_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBall_caps_name_VERSION) check_PROGRAMS += \ project_name/test/basic # # Simple project_name application # bin_PROGRAMS += bin/project_name bin_project_name_SOURCES = bin/project_name.cc include config/pandora-plugin.am TESTS = $(check_PROGRAMS) TESTS_ENVIRONMENT = ${top_srcdir}/test_run.sh check-verbose: @all_caps_name_TEST_ARGS="v" make check check-debug: @all_caps_name_TEST_ARGS="vvv" make check check-valgrind: @all_caps_name_TEST_PREFIX="valgrind -q --leak-check=full --show-reachable=yes --suppressions=valgrind.suppressions" make check check-valgrind-debug: @all_caps_name_TEST_PREFIX="valgrind -q --leak-check=full --show-reachable=yes --suppressions=valgrind.suppressions" all_caps_name_TEST_ARGS="vvv" make check check-gdb: @all_caps_name_TEST_PREFIX="gdb -q" make check check-time: @all_caps_name_TEST_PREFIX="/usr/bin/time" make check check-strace: @all_caps_name_TEST_PREFIX="strace -c" make check check-truss: @all_caps_name_TEST_PREFIX="truss -c" make check docs: all @echo "/**" > docs/mainpage.h @echo "@mainpage README" >> docs/mainpage.h @echo "
" >> docs/mainpage.h
	@cat ${top_srcdir}/README >> docs/mainpage.h
	@echo "
" >> docs/mainpage.h @echo "*/" >> docs/mainpage.h ${DOXYGEN} ${top_srcdir}/docs/Doxyfile @rm docs/mainpage.h include config/lcov.am pandora-build-0.171.1/quickly/templates/pandora-build/project_root_application/bin/0000755000175000017500000000000011506166157025457 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/project_root_application/bin/project_name.cc0000644000175000017500000000042311373516535030354 00000000000000/* BEGIN LICENSE * END LICENSE */ #include "config.h" #include #include "project_name/class_name.h" int main(int, char**) { const project_name::class_name the_class_name("sentence_name"); std::cout << the_class_name.get_name() << std::endl; return 0; } pandora-build-0.171.1/quickly/templates/pandora-build/internal/0000755000175000017500000000000011506166157021427 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/internal/apportutils.py0000644000175000017500000001415511365347320024311 00000000000000import os import shutil import subprocess from gettext import gettext as _ import quickly import quicklyutils from lxml import etree LPI_import_block = """ # optional Launchpad integration # this shouldn't crash if not found as it is simply used for bug reporting try: import LaunchpadIntegration launchpad_available = True except: launchpad_available = False """ LPI_init_menu_block = """ global launchpad_available if launchpad_available: # see https://wiki.ubuntu.com/UbuntuDevelopment/Internationalisation/Coding for more information # about LaunchpadIntegration helpmenu = self.builder.get_object('%(help_menu)s') if helpmenu: LaunchpadIntegration.set_sourcepackagename('%(project_name)s') LaunchpadIntegration.add_items(helpmenu, 0, False, True) else: launchpad_available = False""" def update_apport(project_name, old_lp_project, new_lp_project): if not new_lp_project: return # crashdb file doesn't support spaces or dashes in the crash db name safe_project_name = project_name.replace(" ", "_").replace("-","_") crashdb_file = "%s-crashdb.conf"%project_name hook_file = "source_%s.py"%project_name pathname = quickly.templatetools.get_template_path_from_project() template_pr_path = os.path.join(os.path.abspath(pathname), "store", "apport") relative_crashdb_dir = os.path.join("etc", "apport", "crashdb.conf.d") relative_apport_dir = "apport" existing_crashdb = os.path.join(relative_crashdb_dir, crashdb_file) existing_hook = os.path.join(relative_apport_dir, hook_file) template_crashdb_dir = os.path.join(template_pr_path, relative_crashdb_dir) template_hook_dir = os.path.join(template_pr_path, relative_apport_dir) # if the project name has changed, or any of the files are missing, then # attempt to set up the apport configuration and hooks if not old_lp_project == new_lp_project \ or not os.path.isfile(existing_crashdb) \ or not os.path.isfile(existing_hook): subst_existing = ((old_lp_project, new_lp_project),) subst_new = ( ("safe_project_name", safe_project_name), ("project_name", project_name), ("lp_project", new_lp_project)) if os.path.isfile(existing_crashdb): print _("Updating project name references in existing apport crashdb configuration") quicklyutils.file_from_template(relative_crashdb_dir, crashdb_file, relative_crashdb_dir, subst_existing) elif os.path.isdir(template_crashdb_dir): print _("Creating new apport crashdb configuration") if not os.path.isdir(relative_crashdb_dir): os.makedirs(relative_crashdb_dir) quicklyutils.file_from_template(template_crashdb_dir, "project_name-crashdb.conf", relative_crashdb_dir, subst_new) if not os.path.isfile(existing_hook) and os.path.isdir(template_hook_dir): print _("Creating new apport hooks") if not os.path.isdir(relative_apport_dir): os.makedirs(relative_apport_dir) quicklyutils.file_from_template(template_hook_dir, "source_project_name.py", relative_apport_dir, subst_new) def insert_lpi_if_required(project_name): existing_bin_filename = os.path.join("bin",project_name) camel_case_project_name = quickly.templatetools.get_camel_case_name(project_name) existing_ui_filename = os.path.join("data","ui", "%sWindow.ui"%camel_case_project_name) if os.path.isfile(existing_bin_filename) and os.path.isfile(existing_ui_filename): tree = etree.parse(existing_ui_filename) help_menu = find_about_menu(tree) if help_menu: existing_bin_file = file(existing_bin_filename, "r") existing_lines = existing_bin_file.readlines() existing_bin_file.close() new_lines = detect_or_insert_lpi(existing_lines, project_name, help_menu) if new_lines: print _("Adding launchpad integration to existing application") ftarget_file_name_out = file(existing_bin_file.name + '.new', 'w') ftarget_file_name_out.writelines(new_lines) ftarget_file_name_out.close() quickly.templatetools.apply_file_rights(existing_bin_file.name, ftarget_file_name_out.name) os.rename(ftarget_file_name_out.name, existing_bin_file.name) return True return False def detect_or_insert_lpi(existing_lines, project_name, help_menu): integration_present = False import_insert_line = None init_insert_line = None current_line = 0 for line in existing_lines: if "import LaunchpadIntegration" in line \ or "if launchpad_available:" in line: integration_present = True break if not import_insert_line and "import gtk" in line: import_insert_line = current_line if not init_insert_line and "self.builder.connect_signals(self)" in line: init_insert_line = current_line current_line += 1 if not integration_present \ and import_insert_line \ and init_insert_line \ and import_insert_line < init_insert_line: init_menu_block = LPI_init_menu_block%{"project_name":project_name, "help_menu":help_menu} existing_lines = existing_lines[:import_insert_line+1] + \ ["%s\n"%l for l in LPI_import_block.splitlines()] + \ existing_lines[import_insert_line+1:init_insert_line+1] + \ ["%s\n"%l for l in init_menu_block.splitlines()] + \ existing_lines[init_insert_line+1:] return existing_lines else: return None def find_about_menu(tree): """Finds the current help menu in the passed xml document by looking for the gtk-about element""" help_item = tree.xpath('//property[@name="label" and .="gtk-about"]/../../../@id') if len(help_item) == 1: # only one element matching this should be found return help_item[0] else: return None pandora-build-0.171.1/quickly/templates/pandora-build/internal/createoradd.py0000644000175000017500000001405311401053012024154 00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright © 2010 Monty Taylor # Copyright 2009 Didier Roche # # This file is part of Quickly drizzle-plugin template # #This program is free software: you can redistribute it and/or modify it #under the terms of the GNU General Public License version 3, as published #by the Free Software Foundation. #This program is distributed in the hope that it will be useful, but #WITHOUT ANY WARRANTY; without even the implied warranties of #MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . import sys import os import shutil import subprocess import datetime from quickly import templatetools, configurationhandler, tools from internal import quicklyutils, naming, pandoramacros, licensing import gettext from gettext import gettext as _ # set domain text gettext.textdomain('quickly') def _get_names(argv): path_and_project = argv[0].split('/') names = None type_names = None # check that project name follow quickly rules and reformat it. # TODO: need to handle input in the form of StoragEngine and turn it in to # storage_engine, Storage Engine, STORAGE_ENGINE and StorageEngine # respectively try: names = naming.naming_context(path_and_project[-1]) type_names = naming.naming_context(argv[1]) except templatetools.bad_project_name, e: print(e) sys.exit(1) return names, type_names def _create_project(names, type_names, project_type="project_root"): project_root_prefix = "%s_" % project_type include_guard_names = [] include_guard_names.append(names.all_caps_name) include_guard_names.append(names.all_caps_name) include_guard_names.append("H") include_guard = "_".join(include_guard_names) open_namespace = "namespace %s\n{" % names.project_name close_namespace = "} /* namespace %s */" % names.project_name author_name = "Your Name" full_copyright_line = "YYYY " bzr_whoami = subprocess.Popen(["bzr","whoami"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) bzr_output, bzr_errors= bzr_whoami.communicate() if bzr_output.find('.', bzr_output.find('@')) != -1: author_name = bzr_output.strip() full_copyright_line = "%s %s" % (datetime.datetime.now().year, author_name) substitutions = ( ("type_camel_case_name",type_names.camel_case_name), ("type_sentence_name",type_names.sentence_name), ("plugin_type",type_names.project_name), ("include_guard", include_guard), ("all_caps_project_name", names.all_caps_name), ("project_name",names.project_name), ("camel_case_name",names.camel_case_name), ("sentence_name",names.sentence_name), ("all_caps_name",names.all_caps_name), ("class_name",names.project_name), ("open_namespace",open_namespace), ("close_namespace",close_namespace), ("author_name",author_name), ("full_copyright_line",full_copyright_line), ) # get origin path pathname = templatetools.get_template_path_from_project() for abs_path_project_root in [os.path.join(pathname, f) for f in (project_type, '%s%s' % (project_root_prefix, type_names.project_name))]: if os.path.isdir(abs_path_project_root): for root, dirs, files in os.walk(abs_path_project_root): try: relative_dir = root.split('%s/' % abs_path_project_root)[1] except: relative_dir = "" # python dir should be replace by python (project "pythonified" name) if relative_dir.startswith('project_name'): relative_dir = relative_dir.replace('project_name', names.project_name) for directory in dirs: if directory == 'project_name': directory = names.project_name try: os.mkdir(os.path.join(relative_dir, directory)) except OSError: # We don't care - we may be merging dirs pass for filename in files: quicklyutils.file_from_template(root, filename, relative_dir, substitutions) # We're not in create, so we've got to deal with the directory creation # ourselves def create_plugin(argv): names, type_names = _get_names(argv) if os.path.isdir("plugin"): # We're in the root dir plugin_dir = os.path.join("plugin", names.base_name) os.mkdir(plugin_dir) os.chdir(plugin_dir) elif os.isdir("../plugin"): # We're in plugin root dir os.mkdir(names.base_name) os.chdir(names.base_name) else: # Don't know where the hell we are print("""add plugin was called from an odd location. Please either call it from the plugin dir or from the root of the source tree""") sys.exit(4) _create_project(names, type_names, project_type="drizzle_plugin") return names.base_name def create_project(argv): names, type_names = _get_names(argv) os.chdir(names.quickly_name) _create_project(names, type_names) try: os.mkdir("m4") except OSError: pass pandoramacros.copy_pandora_files() try: os.chmod("config/autorun.sh", 0755) os.chmod("config/pandora-plugin", 0755) os.chmod("config/config.rpath", 0755) os.chmod("test_run.sh", 0755) except: pass pandora_version = pandoramacros.get_pandora_version() licensing.licensing("GPL-3") configurationhandler.loadConfig() configurationhandler.project_config['project-type'] = type_names.project_name configurationhandler.project_config['pandora-version'] = pandora_version configurationhandler.saveConfig() pandora-build-0.171.1/quickly/templates/pandora-build/internal/packaging.py0000644000175000017500000003617011365347320023650 00000000000000# -*- coding: utf-8 -*- # Copyright 2009 Didier Roche # # This file is part of Quickly ubuntu-application template # #This program is free software: you can redistribute it and/or modify it #under the terms of the GNU General Public License version 3, as published #by the Free Software Foundation. #This program is distributed in the hope that it will be useful, but #WITHOUT ANY WARRANTY; without even the implied warranties of #MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . import datetime import re import subprocess import sys from launchpadlib.errors import HTTPError from quickly import configurationhandler from quickly import launchpadaccess from internal import quicklyutils from quickly import templatetools import gettext from gettext import gettext as _ #set domain text gettext.textdomain('quickly') class ppa_not_found(Exception): pass class not_ppa_owner(Exception): pass class user_team_not_found(Exception): pass class invalid_versionning_scheme(Exception): def __init__(self, msg): self.msg = msg def __str__(self): return repr(self.msg) class invalid_version_in_setup(Exception): def __init__(self, msg): self.msg = msg def __str__(self): return repr(self.msg) class DomainLevel: NONE=0 WARNING=1 ERROR=2 def _continue_if_errors(err_output, warn_output, return_code, ask_on_warn_or_error): """print existing error and warning""" if err_output: print #finish the current line print ('----------------------------------') print _('Command returned some ERRORS:') print ('----------------------------------') print ('\n'.join(err_output)) print ('----------------------------------') if warn_output: # seek if not uneeded warning (noise from DistUtilsExtra.auto) # line following the warning should be " …" line_number = 0 for line in warn_output: if (re.match(".*not recognized by DistUtilsExtra.auto.*", line)): try: if not re.match(' .*', warn_output[line_number + 1]): warn_output.remove(line) line_number -= 1 except IndexError: warn_output.remove(line) line_number -= 1 line_number += 1 # if still something, print it if warn_output: if not err_output: print #finish the current line print _('Command returned some WARNINGS:') print ('----------------------------------') print ('\n'.join(warn_output)) print ('----------------------------------') if ((err_output or warn_output) and ask_on_warn_or_error and return_code == 0): if not 'y' in raw_input("Do you want to continue (this is not safe!)? y/[n]: "): return(4) return return_code def _filter_out(line, output_domain, err_output, warn_output): '''filter output dispatching right domain''' if 'ERR' in line: output_domain = DomainLevel.ERROR elif 'WARN' in line: output_domain = DomainLevel.WARNING elif not line.startswith(' '): output_domain = DomainLevel.NONE if '[not found]' in line: output_domain = DomainLevel.WARNING if output_domain == DomainLevel.ERROR: # only add once an error if not line in err_output: err_output.append(line) elif output_domain == DomainLevel.WARNING: # only add once a warning if not line in warn_output: # filter bad output from dpkg-buildpackage (on stderr) and p-d-e auto if not(re.match(' .*\.pot', line) or re.match(' .*\.in', line) or re.match(' dpkg-genchanges >.*', line) # FIXME: this warning is temporary: should be withed in p-d-e or re.match('.*XS-Python-Version and XB-Python-Version.*', line)): warn_output.append(line) else: sys.stdout.write('.') return (output_domain, err_output, warn_output) def _exec_and_log_errors(command, ask_on_warn_or_error=False): '''exec the giving command and hide output if not in verbose mode''' if templatetools.in_verbose_mode(): return(subprocess.call(command)) else: proc = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout_domain = DomainLevel.NONE stderr_domain = DomainLevel.NONE err_output = [] warn_output = [] while True: line_stdout = proc.stdout.readline().rstrip() line_stderr = proc.stderr.readline().rstrip() # filter stderr if line_stderr: (stderr_domain, err_output, warn_output) = _filter_out(line_stderr, stderr_domain, err_output, warn_output) if not line_stdout: # don't replace by if proc.poll() as the output can be empty if proc.poll() != None: break # filter stdout else: (stdout_domain, err_output, warn_output) = _filter_out(line_stdout, stdout_domain, err_output, warn_output) return(_continue_if_errors(err_output, warn_output, proc.returncode, ask_on_warn_or_error)) def updatepackaging(changelog=None): """create or update a package using python-mkdebian. Commit after the first packaging creation""" if not changelog: changelog = [] command = ['python-mkdebian', '--force-control'] for message in changelog: command.extend(["--changelog", message]) if not configurationhandler.project_config: configurationhandler.loadConfig() try: for elem in configurationhandler.project_config['dependencies'].split(' '): if elem: command.extend(["--dependency", elem]) except KeyError: pass return_code = _exec_and_log_errors(command, True) if return_code != 0: print _("An error has occurred when creating debian packaging") return(return_code) print _("Ubuntu packaging created in debian/") # check if first python-mkdebian (debian/ creation) to commit it # that means debian/ under unknown bzr_instance = subprocess.Popen(["bzr", "status"], stdout=subprocess.PIPE) bzr_status, err = bzr_instance.communicate() if bzr_instance.returncode != 0: return(bzr_instance.returncode) if re.match('(.|\n)*unknown:\n.*debian/(.|\n)*', bzr_status): return_code = filter_exec_command(["bzr", "add"]) if return_code == 0: return_code = filter_exec_command(["bzr", "commit", "-m", 'Creating ubuntu package']) return(return_code) def filter_exec_command(command): ''' Build either a source or a binary package''' return(_exec_and_log_errors(command, False)) def shell_complete_ppa(ppa_to_complete): ''' Complete from available ppas ''' # connect to LP and get ppa to complete try: launchpad = launchpadaccess.initialize_lpi(False) except launchpadaccess.launchpad_connection_error: sys.exit(0) available_ppas = [] if launchpad: try: (ppa_user, ppa_name) = get_ppa_parameters(launchpad, ppa_to_complete) except user_team_not_found: pass else: for current_ppa_name, current_ppa_displayname in get_all_ppas(launchpad, ppa_user): # print user/ppa form available_ppas.append("%s/%s" % (ppa_user.name, current_ppa_name)) # if it's the user, print in addition just "ppa_name" syntax if ppa_user.name == launchpad.me.name: available_ppas.append(current_ppa_name) # if we don't have provided a team, show all teams were we are member off if not '/' in ppa_to_complete: team = [mem.team for mem in launchpad.me.memberships_details if mem.status in ("Approved", "Administrator")] for elem in team: available_ppas.append(elem.name + '/') return available_ppas def get_ppa_parameters(launchpad, full_ppa_name): ''' Check if we can catch good parameters for specified ppa in form user/ppa or ppa ''' if '/' in full_ppa_name: ppa_user_name = full_ppa_name.split('/')[0] ppa_name = full_ppa_name.split('/')[1] # check that we are in the team/or that we are the user try: lp_ppa_user = launchpad.people[ppa_user_name] if lp_ppa_user.name == launchpad.me.name: ppa_user = launchpad.me else: # check if we are a member of this team team = [mem.team for mem in launchpad.me.memberships_details if mem.status in ("Approved", "Administrator") and mem.team.name == ppa_user_name] if team: ppa_user = team[0] else: raise not_ppa_owner(ppa_user_name) except KeyError: raise user_team_not_found(ppa_user_name) else: ppa_user = launchpad.me ppa_name = full_ppa_name return(ppa_user, ppa_name) def choose_ppa(launchpad, ppa_name=None): '''Look for right ppa parameters where to push the package''' if not ppa_name: if not configurationhandler.project_config: configurationhandler.loadConfig() try: (ppa_user, ppa_name) = get_ppa_parameters(launchpad, configurationhandler.project_config['ppa']) except KeyError: ppa_user = launchpad.me if (launchpadaccess.lp_server == "staging"): ppa_name = 'staging' else: # default ppa ppa_name = 'ppa' else: (ppa_user, ppa_name) = get_ppa_parameters(launchpad, ppa_name) ppa_url = '%s/~%s/+archive/%s' % (launchpadaccess.LAUNCHPAD_URL, ppa_user.name, ppa_name) dput_ppa_name = 'ppa:%s/%s' % (ppa_user.name, ppa_name) return (ppa_user, ppa_name, dput_ppa_name, ppa_url.encode('UTF-8')) def push_to_ppa(dput_ppa_name, changes_file, keyid=None): """ Push some code to a ppa """ # creating local binary package buildcommand = ["dpkg-buildpackage", "-S", "-I.bzr"] if keyid: buildcommand.append("-k%s" % keyid) return_code = filter_exec_command(buildcommand) if return_code != 0: print _("ERROR: an error occurred during source package creation") return(return_code) # now, pushing it to launchpad personal ppa (or team later) return_code = subprocess.call(["dput", dput_ppa_name, changes_file]) if return_code != 0: print _("ERROR: an error occurred during source upload to launchpad") return(return_code) return(0) def get_all_ppas(launchpad, lp_team_or_user): """ get all from a team or users Return list of tuples (ppa_name, ppa_display_name)""" ppa_list = [] for ppa in lp_team_or_user.ppas: ppa_list.append((ppa.name, ppa.displayname)) return ppa_list def check_and_return_ppaname(launchpad, lp_team_or_user, ppa_name): """ check whether ppa exists using its name or display name for the lp team or user return formated ppaname (not display name)""" # check that the owner really has this ppa: ppa_found = False for current_ppa_name, current_ppa_displayname in get_all_ppas(launchpad, lp_team_or_user): if current_ppa_name == ppa_name or current_ppa_displayname == ppa_name: ppa_found = True break if not ppa_found: raise ppa_not_found('ppa:%s:%s' % (lp_team_or_user.name, ppa_name.encode('UTF-8'))) return(current_ppa_name) def updateversion(proposed_version=None, sharing=False): '''Update versionning with year.month, handling intermediate release''' if proposed_version: # check manual versionning is correct try: for number in proposed_version.split('.'): float(number) except ValueError: msg = _("Release version specified in command arguments is not a " \ "valid version scheme like 'x(.y)(.z)'.") raise invalid_versionning_scheme(msg) new_version = proposed_version else: # get previous value try: old_version = quicklyutils.get_setup_value('version') except quicklyutils.cant_deal_with_setup_value: msg = _("No previous version found in setup.py. Put one please") raise invalid_version_in_setup(msg) # sharing only add -publicX to last release, no other update, no bumping if sharing: splitted_release_version = old_version.split("-public") if len(splitted_release_version) > 1: try: share_version = float(splitted_release_version[1]) except ValueError: msg = _("Share version specified after -public in "\ "setup.py is not a valid number: %s") \ % splitted_release_version[1] raise invalid_versionning_scheme(msg) new_version = splitted_release_version[0] + '-public' + \ str(int(share_version + 1)) else: new_version = old_version + "-public1" # automatically version to year.month(.subversion) else: base_version = datetime.datetime.now().strftime("%y.%m") if base_version in old_version: try: # try to get a minor version, removing -public if one (year, month, minor_version) = old_version.split('.') minor_version = minor_version.split('-public')[0] try: minor_version = float(minor_version) except ValueError: msg = _("Minor version specified in setup.py is not a " \ "valid number: %s. Fix this or specify a " \ "version as release command line argument") \ % minor_version raise invalid_versionning_scheme(msg) new_version = base_version + '.' + str(int(minor_version + 1)) except ValueError: # no minor version, bump to first one (be careful, # old_version may contain -publicX) new_version = base_version + '.1' else: # new year/month new_version = base_version # write release version to setup.py and update it in aboutdialog quicklyutils.set_setup_value('version', new_version) about_dialog_file_name = quicklyutils.get_about_file_name() if about_dialog_file_name: quicklyutils.change_xml_elem(about_dialog_file_name, "object/property", "name", "version", new_version, {}) return new_version pandora-build-0.171.1/quickly/templates/pandora-build/internal/bzrutils.py0000644000175000017500000000245411365347320023600 00000000000000# -*- coding: utf-8 -*- # Copyright 2010 Didier Roche # # This file is part of Quickly ubuntu-application template # #This program is free software: you can redistribute it and/or modify it #under the terms of the GNU General Public License version 3, as published #by the Free Software Foundation. #This program is distributed in the hope that it will be useful, but #WITHOUT ANY WARRANTY; without even the implied warranties of #MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . from quickly import configurationhandler def set_bzrbranch(bzr_branch): '''set default bzr branch from where to pull and push''' if not configurationhandler.project_config: configurationhandler.loadConfig() configurationhandler.project_config['bzrbranch'] = bzr_branch def get_bzrbranch(): '''get default bzr branch from where to pull and push''' if not configurationhandler.project_config: configurationhandler.loadConfig() try: bzr_branch = configurationhandler.project_config['bzrbranch'] except KeyError: bzr_branch = None return bzr_branch pandora-build-0.171.1/quickly/templates/pandora-build/internal/pandoramacros.py0000644000175000017500000000535611504716001024546 00000000000000# -*- coding: utf-8 -*- # # Copyright © 2010 Monty Taylor # # This file is part of Quickly pandora-build template # #This program is free software: you can redistribute it and/or modify it #under the terms of the GNU General Public License version 3, as published #by the Free Software Foundation. #This program is distributed in the hope that it will be useful, but #WITHOUT ANY WARRANTY; without even the implied warranties of #MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . import os, shutil autoconf_m4=[ "po.m4", "iconv.m4", "progtest.m4"] def copy_pandora_m4(frompath="/usr/share/aclocal/"): """Copy in the latest relevant m4 files to the project""" new_files=[] for root, dirs, files in os.walk("m4"): old_m4_files = [f for f in files if os.path.isfile("%s/m4/%s" % (root,f)) and f.startswith("pandora_")] for m4_file in old_m4_files: os.unlink("m4/%s" % m4_file) for root, dirs, files in os.walk(frompath): new_m4_files = [f for f in files if os.path.isfile("%s/%s" % (frompath, f)) and f.startswith("pandora_")] for m4_file in new_m4_files: new_files.append("m4/%s" % m4_file) shutil.copy("%s/%s" % (frompath, m4_file), "m4/%s" % m4_file) return new_files def copy_pandora_config(frompath="/usr/share/pandora-build"): new_files = [] for subdir in ("m4","config"): for root, dirs, files in os.walk("%s/%s" % (frompath, subdir)): new_m4_files = [f for f in files if os.path.isfile("%s/%s/%s" % (frompath, subdir, f)) and f != 'pandora-plugin.ini'] for m4_file in new_m4_files: new_files.append("%s/%s" % (subdir, m4_file)) shutil.copy("%s/%s/%s" % (frompath, subdir, m4_file), "%s/%s" % (subdir, m4_file)) return new_files def copy_autoconf_archive(frompath="/usr/share/aclocal"): """Copy in needed files from autoconf archive""" new_files = [] for m4 in autoconf_m4: new_files.append("m4/%s" % m4) shutil.copy("%s/%s" % (frompath, m4), "m4/%s" % m4) return new_files def copy_pandora_files(): new_files = [] new_files.extend(copy_pandora_m4()) new_files.extend(copy_pandora_config()) new_files.extend(copy_autoconf_archive()) return new_files def get_pandora_version(): """ Find the PANDORA_CANONICAL_VERSION """ canonical_file = file("m4/pandora_canonical.m4", 'r') for line in canonical_file: if "PANDORA_CANONICAL_VERSION" in line: return line[line.rfind("[")+1:line.rfind("]")] pandora-build-0.171.1/quickly/templates/pandora-build/internal/available_licenses/0000755000175000017500000000000011506166157025234 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build/internal/available_licenses/header_LGPL-20000644000175000017500000000010311373517473027301 00000000000000This file is distributed under the license LGPL version 2 or later pandora-build-0.171.1/quickly/templates/pandora-build/internal/available_licenses/header_LGPL-30000644000175000017500000000010311373517473027302 00000000000000This file is distributed under the license LGPL version 3 or later pandora-build-0.171.1/quickly/templates/pandora-build/internal/available_licenses/header_Apache-2.00000644000175000017500000000101311401021773030044 00000000000000Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. pandora-build-0.171.1/quickly/templates/pandora-build/internal/available_licenses/header_GPL-20000644000175000017500000000110611373517473027171 00000000000000This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranties of MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . pandora-build-0.171.1/quickly/templates/pandora-build/internal/available_licenses/header_GPL-30000644000175000017500000000110611373517473027172 00000000000000This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 3, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranties of MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . pandora-build-0.171.1/quickly/templates/pandora-build/internal/available_licenses/header_BSD0000644000175000017500000000261111373517473027022 00000000000000Redistribution 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. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS OR CONTRIBUTORS BE LIABLE OR 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. pandora-build-0.171.1/quickly/templates/pandora-build/internal/available_licenses/header_MIT0000644000175000017500000000177711373517473027057 00000000000000Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. pandora-build-0.171.1/quickly/templates/pandora-build/internal/quicklyutils.py0000644000175000017500000003473711365347320024475 00000000000000# -*- coding: utf-8 -*- # Copyright 2009 Didier Roche # # This file is part of Quickly ubuntu-application template # #This program is free software: you can redistribute it and/or modify it #under the terms of the GNU General Public License version 3, as published #by the Free Software Foundation. #This program is distributed in the hope that it will be useful, but #WITHOUT ANY WARRANTY; without even the implied warranties of #MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . import os import re import sys import subprocess from xml.etree import ElementTree as etree import gettext from gettext import gettext as _ #set domain text gettext.textdomain('quickly') from quickly import configurationhandler from quickly import templatetools class cant_deal_with_setup_value(Exception): pass class gpg_error(Exception): def __init__(self, message): self.message = message def __str__(self): return repr(self.message) def conventional_names(name): sentence_name = templatetools.get_sentence_name(name) camel_case_name = templatetools.get_camel_case_name(name) return sentence_name, camel_case_name def file_from_template(template_dir, template_file, target_dir, substitutions=[], rename = True): if not os.path.isfile(os.path.join(template_dir, template_file)): return target_file = os.path.basename(template_file) # to get only file name (template_file can be internal/file) if rename: for s in substitutions: pattern, sub = s target_file = target_file.replace(pattern,sub) fin = open(os.path.join(template_dir, template_file),'r') file_contents = fin.read() for s in substitutions: pattern, sub = s file_contents = file_contents.replace(pattern,sub) fout = open(os.path.join(target_dir, target_file), 'w') fout.write(file_contents) fout.flush() fout.close() fin.close() def get_setup_value(key): """ get value from setup.py file. raise cant_deal_with_setup_value if nothing found : return found value""" result = None in_setup = False try: fsetup = file('setup.py', 'r') for line in fsetup: if in_setup: fields = line.split('=') # Separate variable from value if key == fields[0].strip(): # if key found and not commented result = fields[1].partition(',')[0].strip() result = result[1:-1] break if "setup(" in line: in_setup = True # if end of the function, finished if in_setup and ')' in line: in_setup = False fsetup.close() except (OSError, IOError), e: print _("ERROR: Can't load setup.py file") sys.exit(1) if result is None: raise cant_deal_with_setup_value() return result def set_setup_value(key, value): """ set value from setup.py file it adds new key in the setup() function if not found. it uncomments a commented value if changed. exit with 0 if everything's all right """ has_changed_something = False in_setup = False try: fsetup = file('setup.py', 'r') fdest = file(fsetup.name + '.new', 'w') for line in fsetup: if in_setup: fields = line.split('=') # Separate variable from value if key == fields[0].strip() or "#%s" % key == fields[0].strip(): # add new value, uncommenting it if present line = "%s='%s',\n" % (fields[0].replace('#',''), value) has_changed_something = True if "setup(" in line: in_setup = True # add it if the value was not present and reach end of setup() function if not has_changed_something and in_setup and ")" in line: fdest.write(" %s='%s',\n" % (key, value)) in_setup = False fdest.write(line) fdest.close() fsetup.close() os.rename(fdest.name, fsetup.name) except (OSError, IOError), e: print _("ERROR: Can't load setup.py file") sys.exit(1) return 0 def get_about_file_name(): """Get about file name if exists""" if not configurationhandler.project_config: configurationhandler.loadConfig() about_file_name = "data/ui/About%sDialog.ui" % templatetools.get_camel_case_name(configurationhandler.project_config['project']) if not os.path.isfile(about_file_name): return None return about_file_name def change_xml_elem(xml_file, path, attribute_name, attribute_value, value, attributes_if_new): """change an elem in a xml tree and save it xml_file: url of the xml file path -> path to tag to change attribute_value -> attribute name to match attribute_value -> attribute value to match value -> new value attributes_if_new -> dictionnary of additional attributes if we create a new node""" found = False xml_tree = etree.parse(xml_file) if not attributes_if_new: attributes_if_new = {} attributes_if_new[attribute_name] = attribute_value for node in xml_tree.findall(path): if not attribute_name or node.attrib[attribute_name] == attribute_value: node.text = value found = True if not found: parent_node = "/".join(path.split('/')[:-1]) child_node = path.split('/')[-1] new_node = etree.Element(child_node, attributes_if_new) new_node.text = value xml_tree.find(parent_node).insert(0, new_node) xml_tree.write(xml_file + '.new') os.rename(xml_file + '.new', xml_file) def collect_commit_messages(previous_version): '''Collect commit messages from last revision''' bzr_command = ['bzr', 'log'] if previous_version: bzr_command.extend(['-r', 'tag:%s..' % previous_version]) else: previous_version = '' bzr_instance = subprocess.Popen(bzr_command, stdout=subprocess.PIPE) result, err = bzr_instance.communicate() if bzr_instance.returncode != 0: return(None) changelog = [] buffered_message = "" collect_switch = False uncollect_msg = (_('quickly saved'), _('commit before release')) for line in result.splitlines(): #print buffered_message if line == 'message:': collect_switch = True continue elif '----------------------' in line: if buffered_message: changelog.append(buffered_message.strip()) buffered_message = "" collect_switch = False elif line == 'tags: %s' % previous_version: break if collect_switch and not line.strip() in uncollect_msg: buffered_message +=' %s' % line return(changelog) def get_quickly_editors(): '''Return prefered editor for ubuntu-application template''' editor = "gedit" default_editor = os.environ.get("EDITOR") if not default_editor: default_editor = os.environ.get("SELECTED_EDITOR") if default_editor: editor = default_editor return editor def take_email_from_string(value): '''Try to take an email from a string''' if value is not None: result = re.match("(.*[< ]|^)(.+@[^ >]+\.[^ >]+).*", value) if result: return result.groups()[1] return value def get_all_emails(launchpad=None): '''Return a list with all available email in preference order''' email_list = [] email_list.append(take_email_from_string(os.getenv("DEBEMAIL"))) bzr_instance = subprocess.Popen(["bzr", "whoami"], stdout=subprocess.PIPE) bzr_user, err = bzr_instance.communicate() if bzr_instance.returncode == 0: email_list.append(take_email_from_string(bzr_user)) email_list.append(take_email_from_string(os.getenv("EMAIL"))) # those information can be missing if there were no packaging or license # command before try: email_list.append(take_email_from_string(get_setup_value('author_email'))) except cant_deal_with_setup_value: pass # AUTHORS fauthors_name = 'AUTHORS' for line in file(fauthors_name, 'r'): if not "" in line: email_list.append(take_email_from_string(line)) # LP adresses if launchpad: email_list.append(launchpad.preferred_email_address.email()) # gpg key (if one) gpg_instance = subprocess.Popen(['gpg', '--list-secret-keys', '--with-colon'], stdout=subprocess.PIPE) result, err = gpg_instance.communicate() if gpg_instance.returncode != 0: raise gpg_error(err) for line in result.splitlines(): if 'sec' in line or 'uid' in line: email_list.append(take_email_from_string(line.split(':')[9])) # return email list without None elem return [email for email in email_list if email] def upload_gpg_key_to_launchpad(key_id): '''push gpg key to launchpad not yet possible''' raise gpg_error(_("There is no GPG key detected for your Launchpad " "account. Please upload one as you can read on the " \ "tutorial")) def create_gpg_key(name, email): '''create a gpg key and return the corresponding id''' if not 'y' in raw_input("It seems you don't have a gpg key on your " \ "computer. Do you want to create one (this may " \ "take a while)? y/[n]: "): raise gpg_error(_("You choosed to not create your GPG key.")) key_generate = '''Key-Type: RSA Key-Length: 1024 Name-Real: %s Name-Email: %s Expire-Date: 0 %%commit''' % (name, email) gpg_instance = subprocess.Popen(['gpg', '--gen-key', '--batch'], stdin=subprocess.PIPE, stdout=subprocess.PIPE) result, err = gpg_instance.communicate(key_generate) if gpg_instance.returncode != 0: raise gpg_error(err) gpg_instance = subprocess.Popen(['gpg', '--list-secret-keys', '--with-colon'], stdout=subprocess.PIPE) result, err = gpg_instance.communicate() if gpg_instance.returncode != 0: raise gpg_error(err) secret_key_id = None for line in result.splitlines(): if 'sec' in line: secret_key_id = line.split(':')[4][-8:] if not secret_key_id: raise gpg_error(_("Can't create GPG key. Try to create it yourself.")) # TODO: to be able to upload key to LP raw_input("Your gpg key has been create. You have to upload it to " \ "Launchpad. Guidance is provided in Launchpad help. " \ "Press any key once done.") return secret_key_id def get_right_gpg_key_id(launchpad): '''Try to fech (and explain how to upload) right GPG key''' verbose = templatetools.in_verbose_mode() prefered_emails = get_all_emails() if not prefered_emails: raise gpg_error(_("Can't sign the package as no adress email found. " \ "Fulfill the AUTHORS file with name " \ "or export DEBEMAIL/EMAIL.")) if verbose: print prefered_emails gpg_instance = subprocess.Popen(['gpg', '--list-secret-keys', '--with-colon'], stdout=subprocess.PIPE) result, err = gpg_instance.communicate() if gpg_instance.returncode != 0: raise gpg_error(err) candidate_key_ids = {} for line in result.splitlines(): if 'sec' in line: secret_key_id = line.split(':')[4][-8:] if verbose: print "found secret gpg key. id: %s" % secret_key_id candidate_email = take_email_from_string(line.split(':')[9]) if verbose: print "candidate email: %s" % candidate_email if candidate_email and candidate_email in prefered_emails: # create candidate_key_ids[candidate_email] if needed try: candidate_key_ids[candidate_email] except KeyError: candidate_key_ids[candidate_email] = [] candidate_key_ids[candidate_email].append(secret_key_id) if not candidate_key_ids: candidate_key_ids[prefered_emails[0]] = [create_gpg_key( launchpad.me.display_name, prefered_emails[0])] if verbose: print "candidate_key_ids: %s" % candidate_key_ids # reorder key_id by email adress prefered_key_ids = [] for email in prefered_emails: try: prefered_key_ids.append((candidate_key_ids[email], email)) except KeyError: pass if not prefered_key_ids: raise gpg_error(_("GPG keys found matching no prefered email. You " \ "can export DEBEMAIL or put it in AUTHORS file " \ "one matching your local gpg key.")) if verbose: print "prefered_key_ids: %s" % prefered_key_ids # get from launchpad the gpg key launchpad_key_ids = [] for key in launchpad.me.gpg_keys: launchpad_key_ids.append(key.keyid) if not launchpad_key_ids: upload_gpg_key_to_launchpad(prefered_key_ids[0]) launchpad_key_ids = [prefered_key_ids[0]] if verbose: print "launchpad_key_ids: %s" % launchpad_key_ids # take first match: for key_ids, email in prefered_key_ids: for key_id in key_ids: if key_id in launchpad_key_ids: # export env variable for changelog and signing author_name = launchpad.me.display_name.encode('UTF-8') if not os.getenv('DEBFULLNAME'): os.putenv('DEBFULLNAME', author_name) if not os.getenv('DEBEMAIL'): os.putenv('DEBEMAIL', email) if verbose: print "Selected key_id: %s, author: %s, email: %s" % (key_id, author_name, email) # set upstream author and email try: get_setup_value('author') except cant_deal_with_setup_value: set_setup_value('author', author_name) try: get_setup_value('author_email') except cant_deal_with_setup_value: set_setup_value('author_email', email) return key_id # shouldn't happen as other errors are caught raise gpg_error(_("No gpg key set matching launchpad one found.'")) pandora-build-0.171.1/quickly/templates/pandora-build/internal/launchpad_helper.py0000644000175000017500000000647611365347320025230 00000000000000# -*- coding: utf-8 -*- # Copyright 2010 Didier Roche, some part based on # Martin Pitt # and http://blog.launchpad.net/api/recipe-for-uploading-files-via-the-api # # This file is part of Quickly ubuntu-application template # #This program is free software: you can redistribute it and/or modify it #under the terms of the GNU General Public License version 3, as published #by the Free Software Foundation. #This program is distributed in the hope that it will be useful, but #WITHOUT ANY WARRANTY; without even the implied warranties of #MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . import datetime import os import sys import subprocess import gettext from gettext import gettext as _ gettext.textdomain('quickly') #TODO: see if 0 release in the project def create_release(project, version): '''Create new release and milestone for LP project. If more than one release already exists, take the last one.''' release_date = datetime.date.today().strftime('%Y-%m-%d') if len(project.series) == 0: print "No serie is not supported right now. Not uploading the tarball for you" sys.exit(1) serie = project.series[project.series.total_size - 1] milestone = serie.newMilestone(name=version, date_targeted=release_date) return milestone.createProductRelease(date_released=release_date) def push_tarball_to_launchpad(project, version, tarball, changelog_content): '''Push new tarball to Launchpad, create release if needed and sign it''' # Find the release in the project's releases collection. release = None for rel in project.releases: if rel.version == version: release = rel break if not release: release = create_release(project, version) # Get the file contents. file_content = open(tarball, 'r').read() # Get the signature, if available. signature = tarball + '.asc' if not os.path.exists(signature): print _('Calling GPG to create tarball signature...') if subprocess.call(['gpg', '--armor', '--sign', '--detach-sig', tarball]) != 0: sys.stderr.write(_('Signing the tarball failed, not uploading the ' \ 'signature')) if os.path.exists(signature): signature_content = open(signature, 'r').read() else: signature_content = None # Create a new product release file. release.add_file(filename=tarball, description='%s tarball' % version, file_content=file_content, content_type='appplication/x-gzip', file_type='Code Release Tarball', signature_filename=signature, signature_content=signature_content) if not changelog_content: changelog_content = _('New release available: %s') % version else: changelog_content = "\n".join(changelog_content) release.changelog = changelog_content release.release_notes = changelog_content try: release.lp_save() except HTTPError, e: print(_('An error happened during tarball upload:'), e.content) sys.exit(1) pandora-build-0.171.1/quickly/templates/pandora-build/internal/licensing.py0000644000175000017500000002265011401031456023664 00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright 2009 Didier Roche # # This file is part of Quickly ubuntu-application template # #This program is free software: you can redistribute it and/or modify it #under the terms of the GNU General Public License version 3, as published #by the Free Software Foundation. # #This program is distributed in the hope that it will be useful, but #WITHOUT ANY WARRANTY; without even the implied warranties of #MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . import datetime import filecmp import os import re import shutil import sys import ConfigParser from quickly import configurationhandler, templatetools from internal import quicklyutils import gettext from gettext import gettext as _ # set domain text gettext.textdomain('quickly') class LicenceError(Exception): def __init__(self, msg): self.msg = msg def __str__(self): return repr(self.msg) BEGIN_LICENCE_TAG_PY = '### BEGIN LICENSE' END_LICENCE_TAG_PY = '### END LICENSE' BEGIN_LICENCE_TAG_C = '/* BEGIN LICENSE' END_LICENCE_TAG_C = ' * END LICENSE */' def help(): print _("""Usage: $quickly license Adds license to project files. Before using this command, you should: 1. Edit the file AUTHORS to include your authorship (this step is automatically done if you directly launch "$ quickly release" or "$ quickly share" before changing license) In this case, license is GPL-3 by default. 2. If you want to put your own quickly unsupported Licence, add a COPYING file containing your own licence. 3. Executes either $ quickly license or $ quickly license where can be either: - GPL-3 (default) - GPL-2 This will modify the Copyright file with the chosen licence (with GPL-3 by default). Updating previous chosen Licence if needed. If you previously removed the tags to add your own licence, it will leave it pristine. If no name is attributed to the Copyright, it will try to retrieve it from Launchpad (in quickly release or quickly share command only) Finally, this will copy the Copyright at the head of every files. Note that if you don't run quickly licence before calling quickly release or quickly share, this one will execute it for you and guess the copyright holder from your launchpad account if you didn't update it. """) def get_supported_licenses(): """Get supported licenses""" available_licenses = [] for license_file in os.listdir(os.path.dirname(__file__) + "/available_licenses"): result = re.split("header_(.*)", license_file) if len(result) == 3: available_licenses.append(result[1]) return available_licenses def get_plugin_ini_value(opt): """Pull a value from plugin.ini""" if os.path.exists('plugin.ini'): parser=ConfigParser.ConfigParser() parser.read('plugin.ini') plugin=dict(parser.items('plugin')) return plugin.get(opt, None) else: return None def prefix_license(old_license, license_prefix): """Return the license modified to have a line prefix""" new_license="" for lic_line in old_license.split('\n')[:-1]: new_license += "%s %s\n" % (license_prefix, lic_line) return new_license def copy_license_to_files(license_content): """Copy license header to every .py, .cc or .h files""" # get the project name if not configurationhandler.project_config: configurationhandler.loadConfig() project_name = configurationhandler.project_config['project'] # open each python file and main bin file for root, dirs, files in os.walk('./'): for name in files: if name.endswith('.py') or \ name.endswith('.h') or name.endswith('.hh') or \ name.endswith('.c') or name.endswith('.cc') or \ name.endswith('.am') or name.endswith('ac'): skip_until_end_found = False try: target_file_name = os.path.join(root, name) ftarget_file_name = file(target_file_name, 'r') ftarget_file_name_out = file(ftarget_file_name.name + '.new', 'w') for line in ftarget_file_name: # seek if we have to add or Replace a License if BEGIN_LICENCE_TAG_PY in line: ftarget_file_name_out.write(line) # write this line, otherwise will be skipped skip_until_end_found = True ftarget_file_name_out.write(prefix_license(license_content, "#")) if BEGIN_LICENCE_TAG_C in line: ftarget_file_name_out.write(line) # write this line, otherwise will be skipped skip_until_end_found = True ftarget_file_name_out.write(prefix_license(license_content, " *")) if END_LICENCE_TAG_C in line or END_LICENCE_TAG_PY in line: skip_until_end_found = False if not skip_until_end_found: ftarget_file_name_out.write(line) ftarget_file_name.close() ftarget_file_name_out.close() if skip_until_end_found: # that means we didn't find the END_LICENCE_TAG, don't copy the file print _("WARNING: %s was not found in the file %s. No licence replacement") % (END_LICENCE_TAG, ftarget_file_name.name) os.remove(ftarget_file_name_out.name) else: templatetools.apply_file_rights(ftarget_file_name.name, ftarget_file_name_out.name) os.rename(ftarget_file_name_out.name, ftarget_file_name.name) except (OSError, IOError), e: msg = _("%s file was not found") % fcopyright_name raise LicenceError(msg) def licensing(license=None): """Add license or update it to the project files Default is GPL-3""" fauthors_name = "AUTHORS" flicense_name = "COPYING" if not configurationhandler.project_config: configurationhandler.loadConfig() project_name = configurationhandler.project_config['project'] python_name = templatetools.python_name(project_name) # check if we have a license tag in plugin.ini otherwise, default to GPL-3 if license is None: license = get_plugin_ini_value('license') if license is None or license == '': license = 'GPL' if license == 'PLUGIN_LICENSE_GPL': license = 'GPL-2' if license == 'PLUGIN_LICENSE_BSD': license = 'BSD' # get Copyright holders in AUTHORS file license_content = "" try: for line in file(fauthors_name, 'r'): if " " in line: # if we have an author in setup.py, grab it try: author = get_plugin_ini_value('author') if author is None: raise quicklyutils.cant_deal_with_setup_value() line = "Copyright (C) %s %s\n" % (datetime.datetime.now().year, author, author_email) # update AUTHORS file fout = file('%s.new' % fauthors_name, 'w') fout.write(line) fout.flush() fout.close() os.rename(fout.name, fauthors_name) except quicklyutils.cant_deal_with_setup_value: msg = _('Copyright is not attributed. ' \ 'Edit the AUTHORS file to include your name for the copyright replacing ' \ ' . Update it in setup.py or use quickly share/quickly release ' \ 'to fill it automatically') raise LicenceError(msg) license_content += "%s" % line except (OSError, IOError), e: msg = _("%s file was not found") % fauthors_name raise LicenceError(msg) # add header to license_content # check that COPYING file is provided if using a personal license supported_licenses_list = get_supported_licenses() if license in supported_licenses_list: header_file_path = os.path.dirname(__file__) + "/available_licenses/header_" + license else: header_file_path = flicense_name try: for line in file(header_file_path, 'r'): license_content += line except (OSError, IOError), e: if header_file_path == flicense_name: msg = _("%s file was not found. It is compulsory for user defined license") % flicense_name else: msg = _("Header of %s license not found. Quickly installation corrupted?") % header_file_path raise LicenceError(msg) copy_license_to_files(license_content) if __name__ == "__main__": templatetools.handle_additional_parameters(sys.argv, help, shell_completion) license = None if len(sys.argv) > 2: print _("This command only take one optional argument: License\nUsage is: quickly license ") sys.exit(4) if len(sys.argv) == 2: license = sys.argv[1] try: licensing(license) except LicenceError, error_message: print(error_message) sys.exit(1) pandora-build-0.171.1/quickly/templates/pandora-build/internal/naming.py0000644000175000017500000000360111401053030023145 00000000000000# -*- coding: utf-8 -*- # Copyright © 2010 Monty Taylor # Copyright 2009 Didier Roche # # This file is part of Quickly pandora-build template # #This program is free software: you can redistribute it and/or modify it #under the terms of the GNU General Public License version 3, as published #by the Free Software Foundation. #This program is distributed in the hope that it will be useful, but #WITHOUT ANY WARRANTY; without even the implied warranties of #MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . import re class naming_context(object): _name_splitter = re.compile('([A-Z]*[a-z]+)[-_]*') def __init__(self, base_name): self._base_name = base_name self._name_list = self._name_splitter.findall(base_name) self._quickly_name = base_name.lower() self._project_name = "_".join([f.lower() for f in self._name_list]) self._all_caps_name = "_".join([f.upper() for f in self._name_list]) self._sentence_name = " ".join([f.title() for f in self._name_list]) self._pascal_case_name = "".join([f.title() for f in self._name_list]) self._camel_case_name = "".join([self._name_list[0].lower()] + [f.title() for f in self._name_list[1:]]) @property def base_name(self): return self._base_name @property def project_name(self): return self._project_name @property def all_caps_name(self): return self._all_caps_name @property def sentence_name(self): return self._sentence_name @property def camel_case_name(self): return self._pascal_case_name @property def quickly_name(self): return self._quickly_name pandora-build-0.171.1/quickly/templates/pandora-build/internal/__init__.py0000644000175000017500000000000011365347320023442 00000000000000pandora-build-0.171.1/quickly/templates/pandora-build/run.py0000755000175000017500000000376211365347320020720 00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright 2009 Didier Roche # # This file is part of Quickly ubuntu-application template # #This program is free software: you can redistribute it and/or modify it #under the terms of the GNU General Public License version 3, as published #by the Free Software Foundation. #This program is distributed in the hope that it will be useful, but #WITHOUT ANY WARRANTY; without even the implied warranties of #MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . import os import stat import sys import subprocess import gettext from gettext import gettext as _ gettext.textdomain('quickly') from quickly import configurationhandler from quickly import templatetools def help(): print _("""Usage: $quickly run Runs your application. This is the best way to try test it out while you are developing it. It starts up the main project window. $ quickly run -- values - to pass "-whatever" and "values" to the executed program. Without that if you use for instance --help, it would be Quickly help and not your program one. """) templatetools.handle_additional_parameters(sys.argv, help) # if config not already loaded if not configurationhandler.project_config: configurationhandler.loadConfig() # check if we can execute a graphical project if not templatetools.is_X_display(): print _("Can't access to X server, so can't run gtk application") sys.exit(1) project_bin = 'bin/' + configurationhandler.project_config['project'] command_line = [project_bin] command_line.extend([arg for arg in sys.argv[1:] if arg != "--"]) # run with args if bin/project exist st = os.stat(project_bin) mode = st[stat.ST_MODE] if mode & stat.S_IEXEC: subprocess.call(command_line) else: print _("Can't execute %s") % project_bin sys.exit(1) pandora-build-0.171.1/quickly/templates/pandora-build/add.py0000755000175000017500000001735611401033035020632 00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright © 2010 Monty Taylor # Copyright 2009 Didier Roche # # This file is part of Quickly pandora-build template # #This program is free software: you can redistribute it and/or modify it #under the terms of the GNU General Public License version 3, as published #by the Free Software Foundation. #This program is distributed in the hope that it will be useful, but #WITHOUT ANY WARRANTY; without even the implied warranties of #MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . import os import sys import subprocess from internal import naming, quicklyutils, createoradd from quickly import configurationhandler, templatetools import gettext from gettext import gettext as _ # set domain text gettext.textdomain('quickly') def help(): print _("""Usage: $ quickly add class [class_name] or $ quickly add plugin [plugin_name] [plugin_base] add a class or plugin class_name is a namespace-qualified classname relative to the current location. For instance $ quickly add drizzle::optimizer::HashJoin will create: 1. Two files, drizzle/optimizer/hash_join.h and drizzle/optimizer/hash_join.cc 2. A class defined in the .h file and some basic elements defined in the .cc file. """) def shell_completion(argv): ''' Complete args ''' # option completion return "class plugin" templatetools.handle_additional_parameters(sys.argv, help) abs_template_path = templatetools.get_template_path_from_project() abs_command_path = os.path.abspath(os.path.dirname(sys.argv[0])) if len(sys.argv) < 3: print _("""add command needs to be followed an action name. Usage is: quickly add class [classname] quickly add plugin [pluginname] [pluginbase]""") sys.exit(4) if sys.argv[1] == 'class': path_and_project = sys.argv[2].split('::') if not configurationhandler.project_config: configurationhandler.loadConfig() project_name = configurationhandler.project_config['project'] class_names = None project_names = None # check that project name follow quickly rules and reformat it. # TODO: need to handle input in the form of StoragEngine and turn it in to # storage_engine, Storage Engine, STORAGE_ENGINE and StorageEngine # respectively try: class_names = naming.naming_context(path_and_project[-1]) project_names = naming.naming_context(project_name) except templatetools.bad_project_name, e: print(e) sys.exit(1) target_dir = "" open_namespace = "" close_namespace = "" include_guard_names = [] namespace_elems = [] # If we haven't been given a namespace, add the namespace of the project if (len(path_and_project) == 1): namespace_elems = [project_name] else: namespace_elems = path_and_project[:-1] for namespace_elem in namespace_elems: namespace_naming = naming.naming_context(namespace_elem) target_dir = os.path.join(target_dir, namespace_naming.project_name) if not os.path.exists(target_dir): os.mkdir(target_dir) bzr_add = subprocess.Popen(["bzr", "add", "--no-recurse", target_dir], stdout=subprocess.PIPE) bzr_add.wait() include_guard_names.append(namespace_naming.all_caps_name) open_namespace = "%snamespace %s\n{\n" % (open_namespace, namespace_naming.project_name) close_namespace = "} /* namespace %s */\n%s" % (namespace_naming.project_name, close_namespace) include_guard_names.append(class_names.all_caps_name) include_guard_names.append("H") include_guard = "_".join(include_guard_names) substitutions = ( ("include_guard", include_guard), ("all_caps_project_name", project_names.all_caps_name), ("project_name",project_names.project_name), ("camel_case_name",class_names.camel_case_name), ("sentence_name",class_names.sentence_name), ("all_caps_name",class_names.all_caps_name), ("class_name",class_names.project_name), ("open_namespace",open_namespace), ("close_namespace",close_namespace), ) template_dir = os.path.join(abs_template_path, os.path.join('project_root', 'project_name')) quicklyutils.file_from_template(template_dir, "class_name.h", target_dir, substitutions) target_header_file = os.path.join(target_dir,class_names.project_name) + ".h" target_source_file = os.path.join(target_dir,class_names.project_name) + ".cc" bzr_add = subprocess.Popen(["bzr", "add", target_header_file], stdout=subprocess.PIPE) bzr_add.wait() quicklyutils.file_from_template(template_dir, "class_name.cc", target_dir, substitutions) bzr_add = subprocess.Popen(["bzr", "add", target_source_file], stdout=subprocess.PIPE) bzr_add.wait() makefile = open("Makefile.am", "r") new_makefile = open("Makefile.am.new", "w") in_headers = False accumulate_headers = [] in_sources = False accumulate_sources = [] for line in makefile.readlines(): if not in_headers and not in_sources: new_makefile.write(line) if in_headers: if line.strip() == "": in_headers = False # sort headers and then write out to file with \ on all but the # last accumulate_headers.append(target_header_file) accumulate_headers.sort() new_makefile.write(' ') new_makefile.write(' \\\n '.join(accumulate_headers)) new_makefile.write('\n\n') else: slash_pos = line.rfind('\\') if slash_pos != -1: accumulate_headers.append(line[:slash_pos].strip()) else: accumulate_headers.append(line.strip()) if in_sources: if line.strip() == "": in_sources = False accumulate_sources.append(target_source_file) accumulate_sources.sort() new_makefile.write(' ') new_makefile.write(' \\\n '.join(accumulate_sources)) new_makefile.write('\n\n') else: slash_pos = line.rfind('\\') if slash_pos != -1: accumulate_sources.append(line[:slash_pos].strip()) else: accumulate_sources.append(line.strip()) if line == 'nobase_include_HEADERS += \\\n': in_headers = True if line == 'lib%s_la_SOURCES = \\\n' % project_names.project_name: in_sources = True new_makefile.close() makefile.close() os.rename("Makefile.am.new", "Makefile.am") elif sys.argv[1] == 'plugin': if len(sys.argv) < 4: sys.argv.append('Plugin') plugin_name = createoradd.create_plugin(sys.argv[2:]) # add it to revision control print _("Adding to bzr repository and commiting") bzr_instance = subprocess.Popen(["bzr", "add", "."], stdout=subprocess.PIPE, stderr=subprocess.PIPE) if bzr_instance.wait() != 0: print _("Problem adding %s plugin") % plugin_name bzr_instance = subprocess.Popen(["bzr", "commit", "-m", "Added %s plugin" % plugin_name, "."], stderr=subprocess.PIPE) bzr_instance.wait() else: pass pandora-build-0.171.1/quickly/templates/pandora-build/create.py0000755000175000017500000000455711401052467021356 00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright © 2010 Monty Taylor # Copyright 2009 Didier Roche # # This file is part of Quickly drizzle-plugin template # #This program is free software: you can redistribute it and/or modify it #under the terms of the GNU General Public License version 3, as published #by the Free Software Foundation. #This program is distributed in the hope that it will be useful, but #WITHOUT ANY WARRANTY; without even the implied warranties of #MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . import sys import os import shutil import subprocess from quickly import templatetools, configurationhandler, tools from internal import quicklyutils, naming, pandoramacros, createoradd import gettext from gettext import gettext as _ # set domain text gettext.textdomain('quickly') project_root_prefix = "project_root_" def help(): print _("""Usage: $ quickly create pandora-build project_name project_type where "project_name" is the name of the project to create. This will create a new project dir with the initial skeleton files needed. """) templatetools.handle_additional_parameters(sys.argv, help) # get the name of the project if len(sys.argv) < 2: print _("""Project name not defined.\n""") if len(sys.argv) < 3: print _("""Plugin Type not defined.\nUsage is quickly create pandora-build plugin_name plugin_type""") sys.exit(4) createoradd.create_project(sys.argv[1:]) # add it to revision control print _("Adding to bzr repository and commiting") bzr_instance = subprocess.Popen(["bzr", "add"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) if bzr_instance.wait() != 0: # We are not in a bzr branch yet. Create one. print _("Creating bzr branch") bzr_instance = subprocess.Popen(["bzr", "init"], stdout=subprocess.PIPE) bzr_instance.wait() bzr_instance = subprocess.Popen(["bzr", "add"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) bzr_instance.wait() bzr_instance = subprocess.Popen(["bzr", "commit", "-m", "Initial project creation with Quickly!", "."], stderr=subprocess.PIPE) bzr_instance.wait() print _("Congrats, your new project is setup! cd %s/ to start hacking.") % os.getcwd() sys.exit(0) pandora-build-0.171.1/quickly/templates/pandora-build/license.py0000755000175000017500000000563411401031731021521 00000000000000#!/usr/bin/python # -*- coding: utf-8 -*- # Copyright 2009 Didier Roche # # This file is part of Quickly ubuntu-application template # #This program is free software: you can redistribute it and/or modify it #under the terms of the GNU General Public License version 3, as published #by the Free Software Foundation. # #This program is distributed in the hope that it will be useful, but #WITHOUT ANY WARRANTY; without even the implied warranties of #MERCHANTABILITY, SATISFACTORY QUALITY, 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, see . import datetime import filecmp import os import re import shutil import sys import ConfigParser from quickly import configurationhandler, templatetools from internal import licensing import gettext from gettext import gettext as _ # set domain text gettext.textdomain('quickly') def help(): print _("""Usage: $quickly license Adds license to project files. Before using this command, you should: 1. Edit the file AUTHORS to include your authorship (this step is automatically done if you directly launch "$ quickly release" or "$ quickly share" before changing license) In this case, license is GPL-3 by default. 2. If you want to put your own quickly unsupported Licence, add a COPYING file containing your own licence. 3. Executes either $ quickly license or $ quickly license where can be either: - GPL-3 (default) - GPL-2 This will modify the Copyright file with the chosen licence (with GPL-3 by default). Updating previous chosen Licence if needed. If you previously removed the tags to add your own licence, it will leave it pristine. If no name is attributed to the Copyright, it will try to retrieve it from Launchpad (in quickly release or quickly share command only) Finally, this will copy the Copyright at the head of every files. Note that if you don't run quickly licence before calling quickly release or quickly share, this one will execute it for you and guess the copyright holder from your launchpad account if you didn't update it. """) def shell_completion(argv): """Propose available license as the third parameter""" # if then license argument given, returns available licenses if len(argv) == 1: print " ".join(licensing.get_supported_licenses()) if __name__ == "__main__": templatetools.handle_additional_parameters(sys.argv, help, shell_completion) license = None if len(sys.argv) > 2: print _("This command only take one optional argument: License\nUsage is: quickly license ") sys.exit(4) if len(sys.argv) == 2: license = sys.argv[1] try: licensing.licensing(license) except LicenceError, error_message: print(error_message) sys.exit(1) pandora-build-0.171.1/quickly/templates/pandora-build-c/0000755000175000017500000000000011506166157020033 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root_library/0000755000175000017500000000000011506166157024270 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root_library/Makefile.am0000644000175000017500000000370011453645663026251 00000000000000# # sentence_name # ### BEGIN LICENSE ### END LICENSE ACLOCAL_AMFLAGS = -I m4 LDADD = libproject_name.la bin_PROGRAMS = check_PROGRAMS = noinst_PROGRAMS = lib_LTLIBRARIES = noinst_LTLIBRARIES = nobase_include_HEADERS = noinst_HEADERS = pkgplugin_LTLIBRARIES = CLEANFILES = DISTCLEANFILES = \ config/top.h EXTRA_DIST = \ docs/Doxyfile \ docs/header.html.in \ test_run.sh # # libproject_name # lib_LTLIBRARIES += libproject_name.la libproject_name_la_SOURCES = \ project_name/project_name.c nobase_include_HEADERS += \ project_name/project_name.h \ project_name/visibility.h libproject_name_la_CFLAGS = \ $(AM_CFLAGS) \ -DBUILDING_all_caps_name libproject_name_la_LIBADD = $(LIBDL_LIBS) libproject_name_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBall_caps_name_VERSION) check_PROGRAMS += \ project_name/test/basic # # Simple project_name application # include config/pandora-plugin.am TESTS = $(check_PROGRAMS) TESTS_ENVIRONMENT = ${top_srcdir}/test_run.sh check-verbose: @all_caps_name_TEST_ARGS="v" make check check-debug: @all_caps_name_TEST_ARGS="vvv" make check check-valgrind: @all_caps_name_TEST_PREFIX="valgrind -q --leak-check=full --show-reachable=yes --suppressions=valgrind.suppressions" make check check-valgrind-debug: @all_caps_name_TEST_PREFIX="valgrind -q --leak-check=full --show-reachable=yes --suppressions=valgrind.suppressions" all_caps_name_TEST_ARGS="vvv" make check check-gdb: @all_caps_name_TEST_PREFIX="gdb -q" make check check-time: @all_caps_name_TEST_PREFIX="/usr/bin/time" make check check-strace: @all_caps_name_TEST_PREFIX="strace -c" make check check-truss: @all_caps_name_TEST_PREFIX="truss -c" make check docs: all @echo "/**" > docs/mainpage.h @echo "@mainpage README" >> docs/mainpage.h @echo "
" >> docs/mainpage.h
	@cat ${top_srcdir}/README >> docs/mainpage.h
	@echo "
" >> docs/mainpage.h @echo "*/" >> docs/mainpage.h ${DOXYGEN} ${top_srcdir}/docs/Doxyfile @rm docs/mainpage.h pandora-build-0.171.1/quickly/templates/pandora-build-c/commandsconfig0000644000175000017500000000066611372537270022674 00000000000000# define parameters for commands, putting them in a list seperated # by ';' # if nothing specified, default is to launch command inside a project # only and not be followed by a template COMMANDS_LAUNCHED_IN_OR_OUTSIDE_PROJECT = tutorial COMMANDS_LAUNCHED_OUTSIDE_PROJECT_ONLY = create COMMANDS_FOLLOWED_BY_COMMAND = [pandora-build] IMPORT=configure;create;debug;edit;license;run [ubuntu-application] IMPORT=package;release;save;share pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/0000755000175000017500000000000011506166157022544 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/project_name/0000755000175000017500000000000011506166157025212 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/project_name/project_name.h0000644000175000017500000000126011372524362027745 00000000000000/* BEGIN LICENSE * END LICENSE */ /** * @file * @brief A Basic Example Class */ #ifndef all_caps_name_all_caps_name_H #define all_caps_name_all_caps_name_H #include "project_name/visibility.h" #ifdef __cplusplus extern "C" { #endif /** * Forward declaration for main struct implementing project_name */ typedef struct project_name_st project_name_st; all_caps_name_API project_name_st *project_name_create(const char *name); all_caps_name_API void project_name_destroy(project_name_st **the_project_name); all_caps_name_API const char *project_name_get_name(const project_name_st *the_project_name); #ifdef __cplusplus } #endif #endif /* all_caps_name_all_caps_name_H */ pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/project_name/project_name.c0000644000175000017500000000135111372524610027735 00000000000000/* BEGIN LICENSE * END LICENSE */ #include "config.h" #include #include #include #include "project_name.h" struct project_name_st { const char *name; }; project_name_st *project_name_create(const char *name) { project_name_st *the_project_name= (project_name_st *)malloc(sizeof(project_name_st)); assert(the_project_name); the_project_name->name= name; return the_project_name; } void project_name_destroy(project_name_st **the_project_name) { if (the_project_name) { free(*the_project_name); *the_project_name= NULL; } } const char *project_name_get_name(const project_name_st *the_project_name) { if (the_project_name) return the_project_name->name; return NULL; } pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/project_name/test/0000755000175000017500000000000011506166157026171 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/project_name/test/basic.c0000644000175000017500000000054311372517575027345 00000000000000/* BEGIN LICENSE * END LICENSE */ #include "config.h" #include #include /** * @TODO Actually write a real test suite here */ int main(int argc, char **argv) { (void)argc; (void)argv; project_name_st *the_project_name= project_name_create("test_sentence_name"); assert(the_project_name); return 0; } pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/project_name/visibility.h0000644000175000017500000000404711372473617027502 00000000000000/* * sentence_name * * Copyright (C) 2010 Eric Day (eday@oddments.org) * All rights reserved. * * Use and distribution licensed under the BSD license. See the * COPYING file in the root project directory for full text. */ /** * @file * @brief Common Macro Definitions */ #ifndef all_caps_name_VISIBILITY_H #define all_caps_name_VISIBILITY_H /** * Be sure to put all_caps_name_API in front of all public API symbols, or one of * the other macros as appropriate. The default visibility without a macro is * to be hidden (all_caps_name_LOCAL). */ #if defined(BUILDING_all_caps_name) && defined(HAVE_VISIBILITY) # if defined(__GNUC__) # define all_caps_name_API __attribute__ ((visibility("default"))) # define all_caps_name_INTERNAL_API __attribute__ ((visibility("hidden"))) # define all_caps_name_API_DEPRECATED __attribute__ ((deprecated,visibility("default"))) # define all_caps_name_LOCAL __attribute__ ((visibility("hidden"))) # elif (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550)) || (defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x550)) # define all_caps_name_API __global # define all_caps_name_INTERNAL_API __hidden # define all_caps_name_API_DEPRECATED __global # define all_caps_name_LOCAL __hidden # elif defined(_MSC_VER) # define all_caps_name_API extern __declspec(dllexport) # define all_caps_name_INTERNAL_API extern __declspec(dllexport) # define all_caps_name_DEPRECATED_API extern __declspec(dllexport) # define all_caps_name_LOCAL # endif #else /* defined(BUILDING_all_caps_name) && defined(HAVE_VISIBILITY) */ # if defined(_MSC_VER) # define SCALESTACK_API extern __declspec(dllimport) # define all_caps_name_INTERNAL_API extern __declspec(dllimport) # define all_caps_name_API_DEPRECATED extern __declspec(dllimport) # define all_caps_name_LOCAL # else # define all_caps_name_API # define all_caps_name_INTERNAL_API # define all_caps_name_API_DEPRECATED # define all_caps_name_LOCAL # endif /* defined(_MSC_VER) */ #endif /* defined(BUILDING_all_caps_name) && defined(HAVE_VISIBILITY) */ #endif /* all_caps_name_VISIBILITY_H */ pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/docs/0000755000175000017500000000000011506166157023474 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/docs/header.html.in0000644000175000017500000000062211372473035026134 00000000000000 @PACKAGE@ @PACKAGE_VERSION@ - $title

@PACKAGE@ @PACKAGE_VERSION@ Developer Documentation

pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/docs/Doxyfile0000644000175000017500000017363511372473035025136 00000000000000# Doxyfile 1.6.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = project_name # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = docs # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = YES # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it parses. # With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this tag. # The format is ext=language, where ext is a file extension, and language is one of # the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, # Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat # .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), # use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = NO # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = YES # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by # doxygen. The layout file controls the global structure of the generated output files # in an output format independent way. The create the layout file that represents # doxygen's defaults, run doxygen with the -l option. You can optionally specify a # file name after the option, if omitted DoxygenLayout.xml will be used as the name # of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = NO # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = docs ScaleStack # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = *.h *.cc # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = docs/header.html # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER # are set, an additional index file will be generated that can be used as input for # Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated # HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. # For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's # filter section matches. # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # When the SEARCHENGINE tag is enable doxygen will generate a search box for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP) # there is already a search function so this one should typically # be disabled. SEARCHENGINE = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = NO # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = YES # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = YES # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = SCALESTACK_API= SCALESTACK_LOCAL= # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = YES # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/valgrind.suppressions0000644000175000017500000000023011372473035026761 00000000000000{ dlopen memory leak Memcheck:Leak fun:*alloc ... fun:dlopen* } { dlerror memory leak Memcheck:Leak fun:*alloc ... fun:*dlerror* } pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/config/0000755000175000017500000000000011506166157024011 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/config/pandora-plugin.ini0000644000175000017500000000021111372473035027341 00000000000000[pandora-plugin] root_plugin_dir=project_name plugin_suffix=_module extra_cxxflags=-DBUILDING_all_caps_name default_load_by_default=True pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/configure.ac0000644000175000017500000000504211372515275024753 00000000000000# # sentence_name # # Copyright (C) 2009-2010 Monty Taylor, Eric Day # All rights reserved. # # Use and distribution licensed under the BSD license. See # the COPYING file in this directory for full text. # AC_INIT([project_name],[0.1],[https://bugs.launchpad.net/project_name]) AC_CONFIG_SRCDIR([project_name/project_name.h]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_MACRO_DIR([m4]) PANDORA_CANONICAL_TARGET(warnings-always-on) # Increment if interfaces have been added, removed, or changed. LIBall_caps_name_VERSION_CURRENT=0 # Increment if source code has changed, set to zero if current is incremented. LIBall_caps_name_VERSION_REVISION=0 # Increment if interfaces have been added, set to zero if interfaces have been # removed or changed. LIBall_caps_name_VERSION_AGE=0 AC_SUBST(LIBall_caps_name_VERSION_CURRENT) AC_SUBST(LIBall_caps_name_VERSION_REVISION) AC_SUBST(LIBall_caps_name_VERSION_AGE) AC_DEFINE_UNQUOTED([LIBall_caps_name_VERSION_CURRENT], [$LIBall_caps_name_VERSION_CURRENT], [Current portion of libproject_name version]) AC_DEFINE_UNQUOTED([LIBall_caps_name_VERSION_REVISION], [$LIBall_caps_name_VERSION_REVISION], [Revision portion of libproject_name version]) AC_DEFINE_UNQUOTED([LIBall_caps_name_VERSION_AGE], [$LIBall_caps_name_VERSION_AGE], [Age portion of libproject_name version]) LIBall_caps_name_VERSION=$LIBall_caps_name_VERSION_CURRENT:$LIBall_caps_name_VERSION_REVISION:$LIBall_caps_name_VERSION_AGE AC_SUBST(LIBall_caps_name_VERSION) AC_LANG_PUSH(C++) PANDORA_REQUIRE_PTHREAD PANDORA_REQUIRE_LIBDL AC_LANG_POP PANDORA_PLUGINS AC_DEFINE_UNQUOTED([all_caps_name_MODULE_EXT], ["$acl_cv_shlibext"], [Extension to use for modules.]) AC_CONFIG_FILES(Makefile docs/header.html) AC_OUTPUT echo "---" echo "Configuration summary for $PACKAGE_NAME version $VERSION" echo "" echo " * Installation prefix: $prefix" echo " * System type: $host_vendor-$host_os" echo " * Host CPU: $host_cpu" echo " * C Compiler: $CC_VERSION" echo " * Assertions enabled: $ac_cv_assert" echo " * Debug enabled: $with_debug" echo " * Profiling enabled: $ac_profiling" echo " * Coverage enabled: $ac_coverage" echo " * Warnings as errors: $ac_cv_warnings_as_errors" echo " * Configured modules:" echo "" for module in `echo $PANDORA_PLUGIN_LIST | sed 's/_/::/g' | tr ',' '\n' | sort` do echo " - $module" done echo "" echo "---" pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/test_run.sh0000755000175000017500000000235311372473035024666 00000000000000#!/bin/sh # # sentence_name # # Copyright (C) 2010 Eric Day (eday@oddments.org) # All rights reserved. # # Use and distribution licensed under the BSD license. See the # COPYING file in the root project directory for full text. # # Get filename we want to run without path name=`echo $1 | sed 's/.*\/\(project_name\/.*[^\/]*\)$/\1/'` ext=`echo $name | sed 's/.*\.\([^.]*$\)/\1/'` if [ "x$ext" = "x$name" ] then ext="" fi if [ ! "x$ext" = "xsh" ] then libtool_prefix="libtool --mode=execute" fi # Set prefix if it was given through environment if [ -n "$all_caps_name_TEST_PREFIX" ] then if [ -n "$all_caps_name_TEST_FILTER" ] then # If filter variable is set, only apply prefix to those that match for x in $all_caps_name_TEST_FILTER do if [ "x$x" = "x$name" ] then prefix="$libtool_prefix $all_caps_name_TEST_PREFIX" with=" (with prefix after filter)" break fi done else prefix="$libtool_prefix $all_caps_name_TEST_PREFIX" with=" (with prefix)" fi fi # Set this to fix broken libtool test ECHO=`which echo` export ECHO # This needs to be set because of broken libtool on OSX DYLD_LIBRARY_PATH=project_name/.libs export DYLD_LIBRARY_PATH $prefix $1 $all_caps_name_TEST_ARGS pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root/AUTHORS0000644000175000017500000000004211453165342023524 00000000000000Copyright (C) full_copyright_line pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root_application/0000755000175000017500000000000011506166157025127 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root_application/Makefile.am0000644000175000017500000000402011453645725027103 00000000000000# # sentence_name # ### BEGIN LICENSE ### END LICENSE ACLOCAL_AMFLAGS = -I m4 LDADD = libproject_name.la bin_PROGRAMS = check_PROGRAMS = noinst_PROGRAMS = lib_LTLIBRARIES = noinst_LTLIBRARIES = nobase_include_HEADERS = noinst_HEADERS = pkgplugin_LTLIBRARIES = CLEANFILES = DISTCLEANFILES = \ config/top.h EXTRA_DIST = \ docs/Doxyfile \ docs/header.html.in \ test_run.sh # # libproject_name # lib_LTLIBRARIES += libproject_name.la libproject_name_la_SOURCES = \ project_name/project_name.c nobase_include_HEADERS += \ project_name/project_name.h \ project_name/visibility.h libproject_name_la_CFLAGS = \ $(AM_CFLAGS) \ -DBUILDING_all_caps_name libproject_name_la_LIBADD = $(LIBDL_LIBS) libproject_name_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(LIBall_caps_name_VERSION) check_PROGRAMS += \ project_name/test/basic # # Simple project_name application # bin_PROGRAMS += bin/project_name bin_project_name_SOURCES = bin/project_name.c include config/pandora-plugin.am TESTS = $(check_PROGRAMS) TESTS_ENVIRONMENT = ${top_srcdir}/test_run.sh check-verbose: @all_caps_name_TEST_ARGS="v" make check check-debug: @all_caps_name_TEST_ARGS="vvv" make check check-valgrind: @all_caps_name_TEST_PREFIX="valgrind -q --leak-check=full --show-reachable=yes --suppressions=valgrind.suppressions" make check check-valgrind-debug: @all_caps_name_TEST_PREFIX="valgrind -q --leak-check=full --show-reachable=yes --suppressions=valgrind.suppressions" all_caps_name_TEST_ARGS="vvv" make check check-gdb: @all_caps_name_TEST_PREFIX="gdb -q" make check check-time: @all_caps_name_TEST_PREFIX="/usr/bin/time" make check check-strace: @all_caps_name_TEST_PREFIX="strace -c" make check check-truss: @all_caps_name_TEST_PREFIX="truss -c" make check docs: all @echo "/**" > docs/mainpage.h @echo "@mainpage README" >> docs/mainpage.h @echo "
" >> docs/mainpage.h
	@cat ${top_srcdir}/README >> docs/mainpage.h
	@echo "
" >> docs/mainpage.h @echo "*/" >> docs/mainpage.h ${DOXYGEN} ${top_srcdir}/docs/Doxyfile @rm docs/mainpage.h pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root_application/bin/0000755000175000017500000000000011506166157025677 500000000000000pandora-build-0.171.1/quickly/templates/pandora-build-c/project_root_application/bin/project_name.c0000644000175000017500000000056011372517507030432 00000000000000/* BEGIN LICENSE * END LICENSE */ #include "config.h" #include #include "project_name/project_name.h" int main(int argc, char** argv) { (void)argc; (void)argv; project_name_st *the_project_name= project_name_create("sentence_name"); printf("%s\n", project_name_get_name(the_project_name)); project_name_destroy(&the_project_name); return 0; } pandora-build-0.171.1/m4/0000755000175000017500000000000011506166157011733 500000000000000pandora-build-0.171.1/m4/pandora_with_php.m40000644000175000017500000000321711506166014015436 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl pandora-build: A pedantic build system dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl From Monty Taylor AC_DEFUN([PANDORA_WITH_PHP],[ AC_ARG_WITH([php], [AS_HELP_STRING([--with-php], [Build NDB/PHP @<:@default=no@:>@])], [with_php=$withval], [with_php=no]) AS_IF([test "x$with_php" != "xno"],[ dnl We explicitly requested PHP build. Fail on too-young SWIG. AS_IF([test "x$SWIG_CAN_BUILD_PHP" != "xyes"], [AC_MSG_ERROR("Your version of SWIG is too young to build NDB/PHP. >=1.3.33 is required!")]) AS_IF([test "x$with_php" != "xyes"], [ac_check_php_config=$with_php], [ac_check_php_config="php-config php-config5"]) AC_CHECK_PROGS(PHP_CONFIG, [$ac_check_php_config]) ]) AS_IF([test "x$PHP_CONFIG" != "x"],[ PHP_CFLAGS=`$PHP_CONFIG --includes` PHP_CPPFLAGS=`$PHP_CONFIG --includes` PHP_LDFLAGS=`$PHP_CONFIG --ldflags` PHP_EXTDIR=`$PHP_CONFIG --extension-dir` strip_php_prefix=`$PHP_CONFIG --prefix | sed 's/\//./g'` PHP_ARCH_DIR=`echo $PHP_EXTDIR | sed "s/$strip_php_prefix//"` ],[ PHP_CFLAGS= PHP_CPPFLAGS= PHP_LDFLAGS= PHP_EXTDIR= PHP_ARCH_DIR= with_php=no ]) AC_SUBST(PHP_CFLAGS) AC_SUBST(PHP_CPPFLAGS) AC_SUBST(PHP_LDFLAGS) AC_SUBST(PHP_EXTDIR) AC_SUBST(PHP_ARCH_DIR) AM_CONDITIONAL(BUILD_PHP, test "$with_php" = "yes") ]) pandora-build-0.171.1/m4/pandora_extensions.m40000644000175000017500000000072611506166014016015 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([PANDORA_EXTENSIONS],[ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], [AC_REQUIRE([AC_GNU_SOURCE])]) ]) AC_DEFUN([gl_USE_SYSTEM_EXTENSIONS],[ AC_REQUIRE([PANDORA_EXTENSIONS]) ]) pandora-build-0.171.1/m4/pandora_have_libevent.m40000644000175000017500000000335511506166014016432 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. #-------------------------------------------------------------------- # Check for libevent #-------------------------------------------------------------------- AC_DEFUN([_PANDORA_SEARCH_LIBEVENT],[ AC_REQUIRE([AC_LIB_PREFIX]) AC_LIB_HAVE_LINKFLAGS(event,, [ #include #include #include #include ],[ struct bufferevent bev; bufferevent_settimeout(&bev, 1, 1); event_init(); event_loop(EVLOOP_ONCE); ]) AM_CONDITIONAL(HAVE_LIBEVENT, [test "x${ac_cv_libevent}" = "xyes"]) AS_IF([test "x${ac_cv_libevent}" = "xyes"],[ save_LIBS="${LIBS}" LIBS="${LIBS} ${LTLIBEVENT}" AC_CHECK_FUNCS(event_base_new) AC_CHECK_FUNCS(event_base_free) AC_CHECK_FUNCS(event_base_get_method) LIBS="$save_LIBS" ]) ]) AC_DEFUN([_PANDORA_HAVE_LIBEVENT],[ AC_ARG_ENABLE([libevent], [AS_HELP_STRING([--disable-libevent], [Build with libevent support @<:@default=on@:>@])], [ac_enable_libevent="$enableval"], [ac_enable_libevent="yes"]) _PANDORA_SEARCH_LIBEVENT ]) AC_DEFUN([PANDORA_HAVE_LIBEVENT],[ AC_REQUIRE([_PANDORA_HAVE_LIBEVENT]) ]) AC_DEFUN([_PANDORA_REQUIRE_LIBEVENT],[ ac_enable_libevent="yes" _PANDORA_SEARCH_LIBEVENT AS_IF([test x$ac_cv_libevent = xno],[ AC_MSG_ERROR([libevent is required for ${PACKAGE}. On Debian this can be found in libevent-dev. On RedHat this can be found in libevent-devel.]) ]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBEVENT],[ AC_REQUIRE([_PANDORA_REQUIRE_LIBEVENT]) ]) pandora-build-0.171.1/m4/pandora_sasl.m40000644000175000017500000000750211506166014014557 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_SASL],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for sasl dnl -------------------------------------------------------------------- AC_ARG_ENABLE([sasl], [AS_HELP_STRING([--disable-sasl], [Build with sasl support @<:@default=on@:>@])], [ac_enable_sasl="$enableval"], [ac_enable_sasl="yes"]) AS_IF([test "x$ac_enable_sasl" = "xyes"], [ AC_LIB_HAVE_LINKFLAGS(sasl,,[ #include #include ],[ sasl_server_init(NULL, NULL); ]) AS_IF([test "x${ac_cv_libsasl}" != "xyes" ], [ AC_LIB_HAVE_LINKFLAGS(sasl2,,[ #include #include ],[ sasl_server_init(NULL, NULL); ]) HAVE_LIBSASL="$HAVE_LIBSASL2" LIBSASL="$LIBSASL2" LIBSASL_PREFIX="$LIBSASL2_PREFIX" LTLIBSASL="$LT_LIBSASL2" ]) ]) AS_IF([test "x${ac_cv_libsasl}" = "xyes" -o "x${ac_cv_libsasl2}" = "xyes"], [ac_cv_sasl=yes], [ac_cv_sasl=no]) AM_CONDITIONAL(HAVE_LIBSASL, [test "x${ac_cv_libsasl}" = "xyes"]) AM_CONDITIONAL(HAVE_LIBSASL2, [test "x${ac_cv_libsasl2}" = "xyes"]) AM_CONDITIONAL(HAVE_SASL, [test "x${ac_cv_sasl}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_SASL],[ AC_REQUIRE([_PANDORA_SEARCH_SASL]) ]) AC_DEFUN([PANDORA_REQUIRE_SASL],[ AC_REQUIRE([_PANDORA_SEARCH_SASL]) AS_IF([test "x${ac_cv_sasl}" = "xno"], AC_MSG_ERROR([SASL (libsasl or libsasl2) is required for ${PACKAGE}])) ]) AC_DEFUN([_PANDORA_SEARCH_LIBSASL],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libsasl dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libsasl], [AS_HELP_STRING([--disable-libsasl], [Build with libsasl support @<:@default=on@:>@])], [ac_enable_libsasl="$enableval"], [ac_enable_libsasl="yes"]) AS_IF([test "x$ac_enable_libsasl" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(sasl,,[ #include #include ],[ sasl_server_init(NULL, NULL); ]) ],[ ac_cv_libsasl="no" ]) AM_CONDITIONAL(HAVE_LIBSASL, [test "x${ac_cv_libsasl}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBSASL],[ AC_REQUIRE([_PANDORA_SEARCH_LIBSASL]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBSASL],[ AC_REQUIRE([_PANDORA_SEARCH_LIBSASL]) AS_IF([test "x${ac_cv_libsasl}" = "xno"], AC_MSG_ERROR([libsasl is required for ${PACKAGE}])) ]) AC_DEFUN([_PANDORA_SEARCH_LIBSASL2],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libsasl2 dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libsasl2], [AS_HELP_STRING([--disable-libsasl2], [Build with libsasl2 support @<:@default=on@:>@])], [ac_enable_libsasl2="$enableval"], [ac_enable_libsasl2="yes"]) AS_IF([test "x$ac_enable_libsasl2" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(sasl2,,[ #include #include ],[ sasl2_server_init(NULL, NULL); ]) ],[ ac_cv_libsasl2="no" ]) AM_CONDITIONAL(HAVE_LIBSASL2, [test "x${ac_cv_libsasl2}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBSASL2],[ AC_REQUIRE([_PANDORA_SEARCH_LIBSASL2]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBSASL2],[ AC_REQUIRE([_PANDORA_SEARCH_LIBSASL2]) AS_IF([test "x${ac_cv_libsasl2}" = "xno"], AC_MSG_ERROR([libsasl2 is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_have_libboost_filesystem.m40000644000175000017500000000303611506166014020677 00000000000000dnl Copyright (C) 2010 Monty Taylor dnl This file is free software; Monty Taylor dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_BOOST_FILESYSTEM],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for Boost.Filesystem dnl -------------------------------------------------------------------- AC_LANG_PUSH(C++) AC_LIB_HAVE_LINKFLAGS(boost_filesystem-mt,boost_system-mt,[ #include ],[ boost::filesystem::path my_path("some_dir/file.txt"); ]) AS_IF([test "x${ac_cv_libboost_filesystem_mt}" = "xno"],[ AC_LIB_HAVE_LINKFLAGS(boost_filesystem,boost_system,[ #include ],[ boost::filesystem::path my_path("some_dir/file.txt"); ]) ]) AC_LANG_POP() AM_CONDITIONAL(HAVE_BOOST_FILESYSTEM, [test "x${ac_cv_libboost_filesystem}" = "xyes" -o "x${ac_cv_libboost_filesystem_mt}" = "xyes"]) BOOST_LIBS="${BOOST_LIBS} ${LTLIBBOOST_FILESYSTEM_MT} ${LTLIBBOOST_FILESYSTEM}" AC_SUBST(BOOST_LIBS) ]) AC_DEFUN([PANDORA_HAVE_BOOST_FILESYSTEM],[ PANDORA_HAVE_BOOST($1) _PANDORA_SEARCH_BOOST_FILESYSTEM($1) ]) AC_DEFUN([PANDORA_REQUIRE_BOOST_FILESYSTEM],[ PANDORA_REQUIRE_BOOST($1) _PANDORA_SEARCH_BOOST_FILESYSTEM($1) AS_IF([test "x${ac_cv_libboost_filesystem}" = "xno" -a "x${ac_cv_libboost_filesystem_mt}" = "xno"], AC_MSG_ERROR([Boost.Filesystem is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_have_libgearman.m40000644000175000017500000000247411506166014016724 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBGEARMAN],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libgearman dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libgearman], [AS_HELP_STRING([--disable-libgearman], [Build with libgearman support @<:@default=on@:>@])], [ac_enable_libgearman="$enableval"], [ac_enable_libgearman="yes"]) AS_IF([test "x$ac_enable_libgearman" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(gearman,,[ #include ],[ gearman_client_st gearman_client; gearman_client_context(&gearman_client); ]) ],[ ac_cv_libgearman="no" ]) AM_CONDITIONAL(HAVE_LIBGEARMAN, [test "x${ac_cv_libgearman}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBGEARMAN],[ AC_REQUIRE([_PANDORA_SEARCH_LIBGEARMAN]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBGEARMAN],[ AC_REQUIRE([PANDORA_HAVE_LIBGEARMAN]) AS_IF([test "x${ac_cv_libgearman}" = "xno"], AC_MSG_ERROR([At least version 0.10 of libgearman is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_warnings.m40000644000175000017500000003757311506166134015463 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl AC_PANDORA_WARNINGS([less-warnings|warnings-always-on]) dnl less-warnings turn on a limited set of warnings dnl warnings-always-on always set warnings=error regardless of tarball/vc dnl @TODO: remove less-warnings option as soon as Drizzle is clean enough to dnl allow it AC_DEFUN([PANDORA_WARNINGS],[ m4_define([PW_LESS_WARNINGS],[no]) m4_define([PW_WARN_ALWAYS_ON],[no]) ifdef([m4_define],,[define([m4_define], defn([define]))]) ifdef([m4_undefine],,[define([m4_undefine], defn([undefine]))]) m4_foreach([pw_arg],[$*],[ m4_case(pw_arg, [less-warnings],[ m4_undefine([PW_LESS_WARNINGS]) m4_define([PW_LESS_WARNINGS],[yes]) ], [warnings-always-on],[ m4_undefine([PW_WARN_ALWAYS_ON]) m4_define([PW_WARN_ALWAYS_ON],[yes]) ]) ]) AC_REQUIRE([PANDORA_BUILDING_FROM_VC]) m4_if(PW_WARN_ALWAYS_ON, [yes], [ac_cv_warnings_as_errors=yes], AS_IF([test "$pandora_building_from_vc" = "yes"], [ac_cv_warnings_as_errors=yes], [ac_cv_warnings_as_errors=no])) AC_ARG_ENABLE([gcc-profile-mode], [AS_HELP_STRING([--enable-gcc-profile-mode], [Toggle gcc profile mode @<:@default=off@:>@])], [ac_gcc_profile_mode="$enableval"], [ac_gcc_profile_mode="no"]) AC_ARG_ENABLE([profiling], [AS_HELP_STRING([--enable-profiling], [Toggle profiling @<:@default=off@:>@])], [ac_profiling="$enableval"], [ac_profiling="no"]) AC_ARG_ENABLE([coverage], [AS_HELP_STRING([--enable-coverage], [Toggle coverage @<:@default=off@:>@])], [ac_coverage="$enableval"], [ac_coverage="no"]) AS_IF([test "$GCC" = "yes"],[ AS_IF([test "$ac_profiling" = "yes"],[ CC_PROFILING="-pg" GCOV_LIBS="-pg -lgcov" save_LIBS="${LIBS}" LIBS="" AC_CHECK_LIB(c_p, read) LIBC_P="${LIBS}" LIBS="${save_LIBS}" AC_SUBST(LIBC_P) ],[ CC_PROFILING=" " ]) AS_IF([test "$ac_coverage" = "yes"], [ CC_COVERAGE="--coverage" GCOV_LIBS="-lgcov" ]) AS_IF([test "$ac_cv_warnings_as_errors" = "yes"], [W_FAIL="-Werror"]) AC_CACHE_CHECK([whether it is safe to use -fdiagnostics-show-option], [ac_cv_safe_to_use_fdiagnostics_show_option_], [save_CFLAGS="$CFLAGS" CFLAGS="-fdiagnostics-show-option ${AM_CFLAGS} ${CFLAGS}" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([],[])], [ac_cv_safe_to_use_fdiagnostics_show_option_=yes], [ac_cv_safe_to_use_fdiagnostics_show_option_=no]) CFLAGS="$save_CFLAGS"]) AS_IF([test "$ac_cv_safe_to_use_fdiagnostics_show_option_" = "yes"], [ F_DIAGNOSTICS_SHOW_OPTION="-fdiagnostics-show-option" ]) AC_CACHE_CHECK([whether it is safe to use -floop-parallelize-all], [ac_cv_safe_to_use_floop_parallelize_all_], [save_CFLAGS="$CFLAGS" CFLAGS="-floop-parallelize-all ${AM_CFLAGS} ${CFLAGS}" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([],[])], [ac_cv_safe_to_use_floop_parallelize_all_=yes], [ac_cv_safe_to_use_floop_parallelize_all_=no]) CFLAGS="$save_CFLAGS"]) AS_IF([test "$ac_cv_safe_to_use_floop_parallelize_all_" = "yes"], [ F_LOOP_PARALLELIZE_ALL="-floop-parallelize-all" ]) NO_STRICT_ALIASING="-fno-strict-aliasing -Wno-strict-aliasing" NO_SHADOW="-Wno-shadow" AS_IF([test "$INTELCC" = "yes"],[ m4_if(PW_LESS_WARNINGS,[no],[ BASE_WARNINGS="-w1 -Werror -Wcheck -Wp64 -Woverloaded-virtual -Wcast-qual -diag-disable 188" ],[ dnl 2203 is like old-style-cast dnl 1684 is like strict-aliasing dnl 188 is about using enums as bitfields dnl 1683 is a warning about _EXPLICIT_ casting, which we want BASE_WARNINGS="-w1 -Werror -Wcheck -Wp64 -Woverloaded-virtual -Wcast-qual -diag-disable 188,981,2259,2203,1683,1684" ]) CC_WARNINGS="${BASE_WARNINGS}" CXX_WARNINGS="${BASE_WARNINGS}" PROTOSKIP_WARNINGS="-diag-disable 188,981,967,2259,1683,1684,2203" ],[ m4_if(PW_LESS_WARNINGS,[no],[ BASE_WARNINGS_FULL="${W_CONVERSION} -Wstrict-aliasing" CC_WARNINGS_FULL="-Wswitch-default -Wswitch-enum -Wwrite-strings" CXX_WARNINGS_FULL="-Weffc++ -Wold-style-cast" NO_OLD_STYLE_CAST="-Wno-old-style-cast" NO_EFF_CXX="-Wno-effc++" ],[ BASE_WARNINGS_FULL="${NO_STRICT_ALIASING}" ]) AS_IF([test "${ac_cv_assert}" = "no"], [NO_UNUSED="-Wno-unused-variable -Wno-unused-parameter"]) AC_CACHE_CHECK([whether it is safe to use -Wextra], [ac_cv_safe_to_use_Wextra_], [save_CFLAGS="$CFLAGS" CFLAGS="${W_FAIL} -pedantic -Wextra ${AM_CFLAGS} ${CFLAGS}" AC_COMPILE_IFELSE([ AC_LANG_PROGRAM( [[ #include ]], [[]]) ], [ac_cv_safe_to_use_Wextra_=yes], [ac_cv_safe_to_use_Wextra_=no]) CFLAGS="$save_CFLAGS"]) BASE_WARNINGS="${W_FAIL} -pedantic -Wall -Wundef -Wshadow ${NO_UNUSED} ${F_DIAGNOSTICS_SHOW_OPTION} ${F_LOOP_PARALLELIZE_ALL} ${BASE_WARNINGS_FULL}" AS_IF([test "$ac_cv_safe_to_use_Wextra_" = "yes"], [BASE_WARNINGS="${BASE_WARNINGS} -Wextra"], [BASE_WARNINGS="${BASE_WARNINGS} -W"]) AC_CACHE_CHECK([whether it is safe to use -Wformat], [ac_cv_safe_to_use_wformat_], [save_CFLAGS="$CFLAGS" dnl Use -Werror here instead of ${W_FAIL} so that we don't spew dnl conversion warnings to all the tarball folks CFLAGS="-Wformat -Werror -pedantic ${AM_CFLAGS} ${CFLAGS}" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #include #include #include void foo(); void foo() { uint64_t test_u= 0; printf("This is a %" PRIu64 "test\n", test_u); } ]],[[ foo(); ]])], [ac_cv_safe_to_use_wformat_=yes], [ac_cv_safe_to_use_wformat_=no]) CFLAGS="$save_CFLAGS"]) AS_IF([test "$ac_cv_safe_to_use_wformat_" = "yes"],[ BASE_WARNINGS="${BASE_WARNINGS} -Wformat -Wno-format-nonliteral -Wno-format-security" BASE_WARNINGS_FULL="${BASE_WARNINGS_FULL} -Wformat=2 -Wno-format-nonliteral -Wno-format-security" ],[ BASE_WARNINGS="${BASE_WARNINGS} -Wno-format" BASE_WARNINGS_FULL="${BASE_WARNINGS_FULL} -Wno-format" ]) AC_CACHE_CHECK([whether it is safe to use -Wconversion], [ac_cv_safe_to_use_wconversion_], [save_CFLAGS="$CFLAGS" dnl Use -Werror here instead of ${W_FAIL} so that we don't spew dnl conversion warnings to all the tarball folks CFLAGS="-Wconversion -Werror -pedantic ${AM_CFLAGS} ${CFLAGS}" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #include void foo(bool a) { (void)a; } ]],[[ foo(0); ]])], [ac_cv_safe_to_use_wconversion_=yes], [ac_cv_safe_to_use_wconversion_=no]) CFLAGS="$save_CFLAGS"]) AS_IF([test "$ac_cv_safe_to_use_wconversion_" = "yes"], [W_CONVERSION="-Wconversion" AC_CACHE_CHECK([whether it is safe to use -Wconversion with htons], [ac_cv_safe_to_use_Wconversion_], [save_CFLAGS="$CFLAGS" dnl Use -Werror here instead of ${W_FAIL} so that we don't spew dnl conversion warnings to all the tarball folks CFLAGS="-Wconversion -Werror -pedantic ${AM_CFLAGS} ${CFLAGS}" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include ]],[[ uint16_t x= htons(80); ]])], [ac_cv_safe_to_use_Wconversion_=yes], [ac_cv_safe_to_use_Wconversion_=no]) CFLAGS="$save_CFLAGS"]) AS_IF([test "$ac_cv_safe_to_use_Wconversion_" = "no"], [NO_CONVERSION="-Wno-conversion"]) ]) CC_WARNINGS="${BASE_WARNINGS} -Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wcast-align ${CC_WARNINGS_FULL}" CXX_WARNINGS="${BASE_WARNINGS} -Woverloaded-virtual -Wnon-virtual-dtor -Wctor-dtor-privacy -Wno-long-long ${CXX_WARNINGS_FULL}" AC_CACHE_CHECK([whether it is safe to use -Wmissing-declarations from C++], [ac_cv_safe_to_use_Wmissing_declarations_], [AC_LANG_PUSH(C++) save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-Werror -pedantic -Wmissing-declarations ${AM_CXXFLAGS}" AC_COMPILE_IFELSE([ AC_LANG_PROGRAM( [[ #include ]], [[]]) ], [ac_cv_safe_to_use_Wmissing_declarations_=yes], [ac_cv_safe_to_use_Wmissing_declarations_=no]) CXXFLAGS="$save_CXXFLAGS" AC_LANG_POP() ]) AS_IF([test "$ac_cv_safe_to_use_Wmissing_declarations_" = "yes"], [CXX_WARNINGS="${CXX_WARNINGS} -Wmissing-declarations"]) AC_CACHE_CHECK([whether it is safe to use -Wframe-larger-than], [ac_cv_safe_to_use_Wframe_larger_than_], [AC_LANG_PUSH(C++) save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="-Werror -pedantic -Wframe-larger-than=32768 ${AM_CXXFLAGS}" AC_COMPILE_IFELSE([ AC_LANG_PROGRAM( [[ #include ]], [[]]) ], [ac_cv_safe_to_use_Wframe_larger_than_=yes], [ac_cv_safe_to_use_Wframe_larger_than_=no]) CXXFLAGS="$save_CXXFLAGS" AC_LANG_POP() ]) AS_IF([test "$ac_cv_safe_to_use_Wframe_larger_than_" = "yes"], [CXX_WARNINGS="${CXX_WARNINGS} -Wframe-larger-than=32768"]) AC_CACHE_CHECK([whether it is safe to use -Wlogical-op], [ac_cv_safe_to_use_Wlogical_op_], [save_CFLAGS="$CFLAGS" CFLAGS="${W_FAIL} -pedantic -Wlogical-op ${AM_CFLAGS} ${CFLAGS}" AC_COMPILE_IFELSE([ AC_LANG_PROGRAM( [[ #include ]], [[]]) ], [ac_cv_safe_to_use_Wlogical_op_=yes], [ac_cv_safe_to_use_Wlogical_op_=no]) CFLAGS="$save_CFLAGS"]) AS_IF([test "$ac_cv_safe_to_use_Wlogical_op_" = "yes"], [CC_WARNINGS="${CC_WARNINGS} -Wlogical-op"]) AC_CACHE_CHECK([whether it is safe to use -Wredundant-decls from C++], [ac_cv_safe_to_use_Wredundant_decls_], [AC_LANG_PUSH(C++) save_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${W_FAIL} -pedantic -Wredundant-decls ${AM_CXXFLAGS}" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([ template struct C { void foo(); }; template void C::foo() { } template <> void C::foo(); AC_INCLUDES_DEFAULT])], [ac_cv_safe_to_use_Wredundant_decls_=yes], [ac_cv_safe_to_use_Wredundant_decls_=no]) CXXFLAGS="${save_CXXFLAGS}" AC_LANG_POP()]) AS_IF([test "$ac_cv_safe_to_use_Wredundant_decls_" = "yes"], [CXX_WARNINGS="${CXX_WARNINGS} -Wredundant-decls"], [CXX_WARNINGS="${CXX_WARNINGS} -Wno-redundant-decls"]) AC_CACHE_CHECK([whether it is safe to use -Wattributes from C++], [ac_cv_safe_to_use_Wattributes_], [AC_LANG_PUSH(C++) save_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${W_FAIL} -pedantic -Wattributes -fvisibility=hidden ${AM_CXXFLAGS}" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([ #include #include const ::google::protobuf::EnumDescriptor* Table_TableOptions_RowType_descriptor(); enum Table_TableOptions_RowType { Table_TableOptions_RowType_ROW_TYPE_DEFAULT = 0, Table_TableOptions_RowType_ROW_TYPE_FIXED = 1, Table_TableOptions_RowType_ROW_TYPE_DYNAMIC = 2, Table_TableOptions_RowType_ROW_TYPE_COMPRESSED = 3, Table_TableOptions_RowType_ROW_TYPE_REDUNDANT = 4, Table_TableOptions_RowType_ROW_TYPE_COMPACT = 5, Table_TableOptions_RowType_ROW_TYPE_PAGE = 6 }; namespace google { namespace protobuf { template <> inline const EnumDescriptor* GetEnumDescriptor() { return Table_TableOptions_RowType_descriptor(); } } } ])], [ac_cv_safe_to_use_Wattributes_=yes], [ac_cv_safe_to_use_Wattributes_=no]) CXXFLAGS="${save_CXXFLAGS}" AC_LANG_POP()]) AC_CACHE_CHECK([whether it is safe to use -Wno-attributes], [ac_cv_safe_to_use_Wno_attributes_], [save_CFLAGS="$CFLAGS" CFLAGS="${W_FAIL} -pedantic -Wno_attributes_ ${AM_CFLAGS} ${CFLAGS}" AC_COMPILE_IFELSE([ AC_LANG_PROGRAM( [[ #include ]], [[]]) ], [ac_cv_safe_to_use_Wno_attributes_=yes], [ac_cv_safe_to_use_Wno_attributes_=no]) CFLAGS="$save_CFLAGS"]) dnl GCC 3.4 doesn't have -Wno-attributes, so we can't turn them off dnl by using that. AS_IF([test "$ac_cv_safe_to_use_Wattributes_" != "yes"],[ AS_IF([test "$ac_cv_safe_to_use_Wno_attributes_" = "yes"],[ CC_WARNINGS="${CC_WARNINGS} -Wno-attributes" NO_ATTRIBUTES="-Wno-attributes"])]) NO_REDUNDANT_DECLS="-Wno-redundant-decls" dnl TODO: Figure out a better way to deal with this: PROTOSKIP_WARNINGS="-Wno-effc++ -Wno-shadow -Wno-missing-braces ${NO_ATTRIBUTES}" NO_WERROR="-Wno-error" PERMISSIVE_WARNINGS="-Wno-error -Wno-unused-function -fpermissive" AS_IF([test "$host_vendor" = "apple"],[ BOOSTSKIP_WARNINGS="-Wno-uninitialized" ]) ]) ]) AS_IF([test "$SUNCC" = "yes"],[ AS_IF([test "$ac_profiling" = "yes"], [CC_PROFILING="-xinstrument=datarace"]) AS_IF([test "$ac_cv_warnings_as_errors" = "yes"], [W_FAIL="-errwarn=%all"]) AC_CACHE_CHECK([whether E_PASTE_RESULT_NOT_TOKEN is usable], [ac_cv_paste_result], [ save_CFLAGS="${CFLAGS}" CFLAGS="-errwarn=%all -erroff=E_PASTE_RESULT_NOT_TOKEN ${CFLAGS}" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([ AC_INCLUDES_DEFAULT ],[ int x= 0;])], [ac_cv_paste_result=yes], [ac_cv_paste_result=no]) CFLAGS="${save_CFLAGS}" ]) AS_IF([test $ac_cv_paste_result = yes], [W_PASTE_RESULT=",E_PASTE_RESULT_NOT_TOKEN"]) m4_if(PW_LESS_WARNINGS, [no],[ CC_WARNINGS_FULL="-erroff=E_STATEMENT_NOT_REACHED,E_INTEGER_OVERFLOW_DETECTED${W_PASTE_RESULT}" CXX_WARNINGS_FULL="-erroff=inllargeuse" ],[ CC_WARNINGS_FULL="-erroff=E_ATTRIBUTE_NOT_VAR,E_STATEMENT_NOT_REACHED" CXX_WARNINGS_FULL="-erroff=attrskipunsup,doubunder,reftotemp,inllargeuse,truncwarn1,signextwarn,inllargeint" ]) CC_WARNINGS="-v -errtags=yes ${W_FAIL} ${CC_WARNINGS_FULL}" CXX_WARNINGS="+w +w2 -xwe -xport64 -errtags=yes ${CXX_WARNINGS_FULL} ${W_FAIL}" PROTOSKIP_WARNINGS="-erroff=attrskipunsup,doubunder,reftotemp,wbadinitl,identexpected,inllargeuse,truncwarn1,signextwarn,partinit,notused,badargtype2w,wbadinit" BOOSTSKIP_WARNINGS="-erroff=attrskipunsup,doubunder,reftotemp,inllargeuse,truncwarn1,signextwarn,inllargeint,hidef,wvarhidenmem" PERMISSIVE_WARNINGS="-erroff=attrskipunsup,doubunder,reftotemp,inllargeuse,truncwarn1,signextwarn,inllargeint,hidef,wvarhidenmem,notused,badargtype2w,wunreachable" INNOBASE_SKIP_WARNINGS="-erroff=attrskipunsup,doubunder,reftotemp,wbadinitl,identexpected,inllargeuse,truncwarn1,signextwarn,partinit,notused,badargtype2w,wbadinit,wunreachable" NO_UNREACHED="-erroff=E_STATEMENT_NOT_REACHED" NO_WERROR="-errwarn=%none" ]) AC_SUBST(NO_CONVERSION) AC_SUBST(NO_REDUNDANT_DECLS) AC_SUBST(NO_UNREACHED) AC_SUBST(NO_SHADOW) AC_SUBST(NO_STRICT_ALIASING) AC_SUBST(NO_EFF_CXX) AC_SUBST(NO_OLD_STYLE_CAST) AC_SUBST(PROTOSKIP_WARNINGS) AC_SUBST(INNOBASE_SKIP_WARNINGS) AC_SUBST(BOOSTSKIP_WARNINGS) AC_SUBST(PERMISSIVE_WARNINGS) AC_SUBST(NO_WERROR) AC_SUBST([GCOV_LIBS]) ]) pandora-build-0.171.1/m4/pandora_ensure_gcc_version.m40000644000175000017500000000457111506166014017502 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_TRY_GCC],[ pushdef([Name],[translit([$1],[./-], [___])]) pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CHECK_PROGS([CC]NAME,[gcc$1]) AC_CHECK_PROGS([CXX]NAME,[g++$1]) AS_IF([test "x${CC]NAME[}" != "x" -a "x${ac_cv_env_CC_set}" = "x"], [CC="${CC]NAME[}"]) AS_IF([test "x${CXX]NAME[}" != "x" -a "x${ac_cv_env_CCX_set}" = "x"], [CXX="${CXX]NAME[}"]) AS_IF([test "x${CC]NAME[}" != "x" -a "x${ac_cv_env_CPP_set}" = "x"], [CPP="${CC]NAME[} -E"]) ]) dnl If the user is on a Mac and didn't ask for a specific compiler dnl You're gonna get 4.2. AC_DEFUN([PANDORA_MAC_GCC42], [AS_IF([test "$GCC" = "yes"],[ AS_IF([test "$host_vendor" = "apple" -a "x${ac_cv_env_CC_set}" = "x"],[ host_os_version=`echo ${host_os} | perl -ple 's/^\D+//g;s,\..*,,'` AS_IF([test "$host_os_version" -lt 10],[ _PANDORA_TRY_GCC([-4.2]) ]) ]) ]) ]) dnl If the user is on CentOS or RHEL and didn't ask for a specific compiler dnl You're gonna get 4.4 (forward compatible with 4.5) AC_DEFUN([PANDORA_RH_GCC44], [AS_IF([test "$GCC" = "yes"],[ AS_IF([test "x${ac_cv_env_CC_set}" = "x"],[ _PANDORA_TRY_GCC([44]) _PANDORA_TRY_GCC([45]) ]) ]) ]) dnl AC_DEFUN([PANDORA_ENSURE_GCC_VERSION],[ AC_REQUIRE([PANDORA_MAC_GCC42]) AC_REQUIRE([PANDORA_RH_GCC44]) AS_IF([test "$GCC" = "yes"],[ AC_CACHE_CHECK([if GCC is recent enough], [ac_cv_gcc_recent], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #if !defined(__GNUC__) || (__GNUC__ < 4) || ((__GNUC__ >= 4) && (__GNUC_MINOR__ < 2)) # error GCC is Too Old! #endif ]])], [ac_cv_gcc_recent=yes], [ac_cv_gcc_recent=no])]) AS_IF([test "$ac_cv_gcc_recent" = "no" -a "$host_vendor" = "apple"], AC_MSG_ERROR([Your version of GCC is too old. At least version 4.2 is required on OSX. You may need to install a version of XCode >= 3.1.2])) AS_IF([test "$ac_cv_gcc_recent" = "no"], AC_MSG_ERROR([Your version of GCC is too old. At least version 4.2 is required. On RHEL/CentOS systems this is found in the gcc44 and gcc44-c++ packages.])) ]) ]) pandora-build-0.171.1/m4/pandora_have_better_malloc.m40000644000175000017500000000344011506166014017431 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([PANDORA_HAVE_BETTER_MALLOC],[ AC_REQUIRE([AC_LIB_PREFIX]) AC_ARG_ENABLE([umem], [AS_HELP_STRING([--enable-umem], [Enable linking with libumem @<:@default=off@:>@])], [ac_enable_umem="$enableval"],[ case "$target_os" in *solaris*) ac_enable_umem="yes" ;; *) ac_enable_umem="no" ;; esac ]) AC_ARG_ENABLE([tcmalloc], [AS_HELP_STRING([--enable-tcmalloc], [Enable linking with tcmalloc @<:@default=off@:>@])], [ac_enable_tcmalloc="$enableval"], [ac_enable_tcmalloc="no"]) AC_ARG_ENABLE([mtmalloc], [AS_HELP_STRING([--disable-mtmalloc], [Enable linking with mtmalloc @<:@default=on@:>@])], [ac_enable_mtmalloc="$enableval"], [ac_enable_mtmalloc="yes"]) save_LIBS="${LIBS}" LIBS= AS_IF([test "x$ac_enable_umem" = "xyes"],[ AC_CHECK_LIB(umem,malloc,[],[]) ],[ case "$target_os" in *linux*) AS_IF([test "x$ac_enable_tcmalloc" != "xno"],[ AC_CHECK_LIB(tcmalloc-minimal,malloc,[],[]) AS_IF([test "x$ac_cv_lib_tcmalloc_minimal_malloc" != "xyes"],[ AC_CHECK_LIB(tcmalloc,malloc,[],[]) ]) ]) ;; *solaris*) AS_IF([test "x$ac_enable_mtmalloc" != "xno"],[ AC_CHECK_LIB(mtmalloc,malloc,[],[]) ]) ;; esac ]) BETTER_MALLOC_LIBS="${LIBS}" LIBS="${save_LIBS}" AC_SUBST([BETTER_MALLOC_LIBS]) ]) AC_DEFUN([PANDORA_USE_BETTER_MALLOC],[ AC_REQUIRE([PANDORA_HAVE_BETTER_MALLOC]) LIBS="${LIBS} ${BETTER_MALLOC_LIBS}" ]) pandora-build-0.171.1/m4/pandora_have_libldap.m40000644000175000017500000000361511506166014016230 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. #-------------------------------------------------------------------- # Check for libldap #-------------------------------------------------------------------- AC_DEFUN([_PANDORA_SEARCH_LIBLDAP],[ AC_REQUIRE([AC_LIB_PREFIX]) AC_LIB_HAVE_LINKFLAGS(ldap,, [#include ], [ LDAP *ldap; ldap_initialize(&ldap, "ldap://localhost/"); ]) AS_IF([test "x$ac_cv_libldap" = "xno"], [ unset ac_cv_libldap unset HAVE_LIBLDAP unset LIBLDAP unset LIBLDAP_PREFIX unset LTLIBLDAP AC_LIB_HAVE_LINKFLAGS(ldap,, [#include ], [ LDAP *ldap; ldap_initialize(&ldap, "ldap://localhost/"); ]) AS_IF([test "x$ac_cv_libldap" = "xyes"], [ ac_cv_ldap_location="" ]) ],[ ac_cv_ldap_location="" ]) AM_CONDITIONAL(HAVE_LIBLDAP, [test "x${ac_cv_libldap}" = "xyes"]) ]) AC_DEFUN([_PANDORA_HAVE_LIBLDAP],[ AC_ARG_ENABLE([libldap], [AS_HELP_STRING([--disable-libldap], [Build with libldap support @<:@default=on@:>@])], [ac_enable_libldap="$enableval"], [ac_enable_libldap="yes"]) _PANDORA_SEARCH_LIBLDAP ]) AC_DEFUN([PANDORA_HAVE_LIBLDAP],[ AC_REQUIRE([_PANDORA_HAVE_LIBLDAP]) ]) AC_DEFUN([_PANDORA_REQUIRE_LIBLDAP],[ ac_enable_libldap="yes" _PANDORA_SEARCH_LIBLDAP AS_IF([test x$ac_cv_libldap = xno],[ AC_MSG_ERROR([libldap is required for ${PACKAGE}. On Debian this can be found in libldap2-dev. On RedHat this can be found in openldap-devel.]) ],[ AC_DEFINE_UNQUOTED(LDAP_HEADER,[${ac_cv_ldap_location}], [Location of ldap header]) ]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBLDAP],[ AC_REQUIRE([_PANDORA_REQUIRE_LIBLDAP]) ]) pandora-build-0.171.1/m4/pandora_cxx_demangle.m40000644000175000017500000000205611506166014016252 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Check for all of the headers and libs that Drizzle needs. We check all dnl of these for plugins too, to ensure that all of the appropriate defines dnl are set. AC_DEFUN([PANDORA_CXX_DEMANGLE],[ AC_LANG_PUSH([C++]) save_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${CXX_STANDARD} ${CXXFLAGS}" AC_CHECK_HEADERS(cxxabi.h) AC_CACHE_CHECK([checking for abi::__cxa_demangle], pandora_cv_cxa_demangle, [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ char *foo= 0; int bar= 0; foo= abi::__cxa_demangle(foo, foo, 0, &bar); ]])],[pandora_cv_cxa_demangle=yes],[pandora_cv_cxa_demangle=no])]) CXXFLAGS="${save_CXXFLAGS}" AC_LANG_POP() AS_IF([test "x$pandora_cv_cxa_demangle" = xyes],[ AC_DEFINE(HAVE_ABI_CXA_DEMANGLE, 1, [Define to 1 if you have the `abi::__cxa_demangle' function.]) ]) ]) pandora-build-0.171.1/m4/pandora_have_gcc_atomics.m40000644000175000017500000000225311506166014017071 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. #-------------------------------------------------------------------- # Check for GCC Atomic Support #-------------------------------------------------------------------- AC_DEFUN([PANDORA_HAVE_GCC_ATOMICS],[ AC_CACHE_CHECK( [whether the compiler provides atomic builtins], [ac_cv_gcc_atomic_builtins], [AC_LINK_IFELSE( [AC_LANG_PROGRAM([],[[ int foo= -10; int bar= 10; if (!__sync_fetch_and_add(&foo, bar) || foo) return -1; bar= __sync_lock_test_and_set(&foo, bar); if (bar || foo != 10) return -1; bar= __sync_val_compare_and_swap(&bar, foo, 15); if (bar) return -1; return 0; ]])], [ac_cv_gcc_atomic_builtins=yes], [ac_cv_gcc_atomic_builtins=no])]) AS_IF([test "x$ac_cv_gcc_atomic_builtins" = "xyes"],[ AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS, 1, [Define to 1 if compiler provides atomic builtins.]) ]) ]) pandora-build-0.171.1/m4/pandora_run_cpplint.m40000644000175000017500000000047211506166014016151 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([PANDORA_RUN_CPPLINT],[ m4_syscmd([python config/make-lint.py]) ]) pandora-build-0.171.1/m4/pandora_fdatasync.m40000644000175000017500000000153211506166014015566 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. #-------------------------------------------------------------------- # Check for a working fdatasync call #-------------------------------------------------------------------- AC_DEFUN([PANDORA_WORKING_FDATASYNC],[ AC_CACHE_CHECK([working fdatasync],[ac_cv_func_fdatasync],[ AC_LANG_PUSH(C++) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]],[[ fdatasync(4); ]])], [ac_cv_func_fdatasync=yes], [ac_cv_func_fdatasync=no]) AC_LANG_POP() ]) AS_IF([test "x${ac_cv_func_fdatasync}" = "xyes"], [AC_DEFINE([HAVE_FDATASYNC],[1],[If the system has a working fdatasync])]) ]) pandora-build-0.171.1/m4/pandora_have_libuuid.m40000644000175000017500000000273411506166014016257 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. #-------------------------------------------------------------------- # Check for libuuid #-------------------------------------------------------------------- AC_DEFUN([_PANDORA_SEARCH_LIBUUID],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl Do this by hand. Need to check for uuid/uuid.h, but uuid may or may dnl not be a lib is weird. AC_CHECK_HEADERS(uuid/uuid.h) AC_LIB_HAVE_LINKFLAGS(uuid,, [ #include ], [ uuid_t uout; uuid_generate(uout); ]) AM_CONDITIONAL(HAVE_LIBUUID, [test "x${ac_cv_libuuid}" = "xyes"]) ]) AC_DEFUN([_PANDORA_HAVE_LIBUUID],[ AC_ARG_ENABLE([libuuid], [AS_HELP_STRING([--disable-libuuid], [Build with libuuid support @<:@default=on@:>@])], [ac_enable_libuuid="$enableval"], [ac_enable_libuuid="yes"]) _PANDORA_SEARCH_LIBUUID ]) AC_DEFUN([PANDORA_HAVE_LIBUUID],[ AC_REQUIRE([_PANDORA_HAVE_LIBUUID]) ]) AC_DEFUN([_PANDORA_REQUIRE_LIBUUID],[ ac_enable_libuuid="yes" _PANDORA_SEARCH_LIBUUID AS_IF([test "x$ac_cv_header_uuid_uuid_h" = "xno"],[ AC_MSG_ERROR([Couldn't find uuid/uuid.h. On Debian this can be found in uuid-dev. On Redhat this can be found in e2fsprogs-devel.]) ]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBUUID],[ AC_REQUIRE([_PANDORA_REQUIRE_LIBUUID]) ]) pandora-build-0.171.1/m4/pandora_libtool.m40000644000175000017500000000156211506166014015261 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([PANDORA_LIBTOOL],[ AC_REQUIRE([AC_DISABLE_STATIC]) AC_REQUIRE([AC_PROG_LIBTOOL]) m4_ifndef([LT_PREREQ],[ pandora_have_old_libtool=yes ],[ pandora_have_old_libtool=no ]) AS_IF([test "$SUNCC" = "yes" -a "${pandora_have_old_libtool}" = "yes"],[ AC_MSG_ERROR([Building ${PACKAGE} with Sun Studio requires at least libtool 2.2]) ]) dnl By requiring AC_PROG_LIBTOOL, we should force the macro system to read dnl libtool.m4, where in 2.2 AC_PROG_LIBTOOL is an alias for LT_INIT dnl Then, if we're on 2.2, we should have LT_LANG, so we'll call it. m4_ifdef([LT_LANG],[ LT_LANG(C) LT_LANG(C++) ]) ]) pandora-build-0.171.1/m4/pandora_with_ruby.m40000644000175000017500000000503711506166014015632 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl pandora-build: A pedantic build system dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl From Monty Taylor AC_DEFUN([PANDORA_WITH_RUBY], [ AC_ARG_WITH([ruby], [AS_HELP_STRING([--with-ruby], [Build Ruby Bindings @<:@default=yes@:>@])], [with_ruby=$withval], [with_ruby=ruby]) AS_IF([test "x$with_ruby" != "xno"],[ AS_IF([test "x$with_ruby" != "xyes"], [ac_chk_ruby=$with_ruby], [ac_chk_ruby=ruby1.8 ruby]) AC_CHECK_PROGS(RUBY,$ac_chk_ruby) ]) AS_IF([test "x$RUBY" != "x"],[ AC_MSG_CHECKING(for ruby devel) dnl need to change quotes to allow square brackets changequote(<<, >>)dnl ruby_prefix=`$RUBY -rrbconfig -e "print Config::CONFIG['archdir']"` strip_ruby_prefix=`$RUBY -rrbconfig -e "print Config::CONFIG['prefix']" | sed 's/\//./g'` RUBY_LIB=`$RUBY -rrbconfig -e "puts Config::CONFIG['ruby_install_name']"` LIBRUBYARG_SHARED=`$RUBY -rrbconfig -e "puts Config::CONFIG['LIBRUBYARG_SHARED']"` RUBY_DIR=`$RUBY -rrbconfig -e "puts Config::CONFIG['archdir']"` RUBY_ARCH_DIR=`echo $RUBY_DIR | sed "s/$strip_ruby_prefix//"` RUBY_LIBDIR=`$RUBY -rrbconfig -e "puts Config::CONFIG['rubylibdir']"` RUBY_INCLUDES="-I$ruby_prefix" changequote([, ])dnl ac_save_CFLAGS="$CFLAGS" ac_save_CPPFLAGS="$CPPFLAGS" ac_save_LDFLAGS="$LDFLAGS" CFLAGS="$ac_save_CFLAGS $RUBY_INCLUDES" CPPFLAGS="$ac_save_CPPFLAGS $RUBY_INCLUDES" LDFLAGS="$ac_save_LDFLAGS $LIBRUBYARG_SHARED" AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[VALUE rb_ac_test = rb_define_module("actest");]])],[with_ruby="yes";AC_MSG_RESULT(found)],[with_ruby="no";AC_MSG_RESULT(missing)]) CPPFLAGS="$ac_save_CPPFLAGS" CFLAGS="$ac_save_CFLAGS" LDFLAGS="$ac_save_LDFLAGS" ],[ # This allows 'make clean' in the ruby directory to work when # ruby isn't available RUBY= RUBY_INCLUDES= LIBRUBYARG_SHARED= RUBY_LIB= RUBY_DIR= RUBY_LIBDIR= RUBY_ARCH_DIR= with_ruby="no" ]) AC_SUBST(RUBY_INCLUDES) AC_SUBST(LIBRUBYARG_SHARED) AC_SUBST(RUBY_LIB) AC_SUBST(RUBY_DIR) AC_SUBST(RUBY_LIBDIR) AC_SUBST(RUBY_ARCH_DIR) AS_IF([test "x$RUBY_DIR" = "x"],[with_ruby="no"]) AM_CONDITIONAL(BUILD_RUBY, test "$with_ruby" = "yes") ]) pandora-build-0.171.1/m4/pandora_have_libdrizzle.m40000644000175000017500000000366611506166014017001 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBDRIZZLE],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libdrizzle dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libdrizzle], [AS_HELP_STRING([--disable-libdrizzle], [Build with libdrizzle support @<:@default=on@:>@])], [ac_enable_libdrizzle="$enableval"], [ac_enable_libdrizzle="yes"]) AS_IF([test "x$ac_enable_libdrizzle" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(drizzle,,[ #include ],[ drizzle_st drizzle; drizzle_version(); ]) ],[ ac_cv_libdrizzle="no" ]) AM_CONDITIONAL(HAVE_LIBDRIZZLE, [test "x${ac_cv_libdrizzle}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBDRIZZLE],[ AC_REQUIRE([_PANDORA_SEARCH_LIBDRIZZLE]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBDRIZZLE],[ AC_REQUIRE([PANDORA_HAVE_LIBDRIZZLE]) AS_IF([test "x${ac_cv_libdrizzle}" = "xno"],[ AC_MSG_ERROR([libdrizzle is required for ${PACKAGE}]) ],[ dnl We need at least 0.8 on Solaris non-sparc AS_IF([test "$target_cpu" != "sparc" -a "x${TARGET_SOLARIS}" = "xtrue"],[ PANDORA_LIBDRIZZLE_RECENT ]) ]) ]) AC_DEFUN([PANDORA_LIBDRIZZLE_RECENT],[ AC_CACHE_CHECK([if libdrizzle is recent enough], [pandora_cv_libdrizzle_recent], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include drizzle_con_options_t foo= DRIZZLE_CON_EXPERIMENTAL; ]])], [pandora_cv_libdrizzle_recent=yes], [pandora_cv_libdrizzle_recent=no])]) AS_IF([test "$pandora_cv_libdrizzle_recent" = "no"],[ AC_MSG_ERROR([Your version of libdrizzle is too old. ${PACKAGE} requires at least version 0.8]) ]) ]) pandora-build-0.171.1/m4/pandora_have_libpcre.m40000644000175000017500000000352711506166014016243 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. #-------------------------------------------------------------------- # Check for libpcre #-------------------------------------------------------------------- AC_DEFUN([_PANDORA_SEARCH_LIBPCRE],[ AC_REQUIRE([AC_LIB_PREFIX]) AC_LIB_HAVE_LINKFLAGS(pcre,, [#include ], [ pcre *re= NULL; pcre_version(); ]) AS_IF([test "x$ac_cv_libpcre" = "xno"], [ unset ac_cv_libpcre unset HAVE_LIBPCRE unset LIBPCRE unset LIBPCRE_PREFIX unset LTLIBPCRE AC_LIB_HAVE_LINKFLAGS(pcre,, [#include ], [ pcre *re= NULL; pcre_version(); ]) AS_IF([test "x$ac_cv_libpcre" = "xyes"], [ ac_cv_pcre_location="" ]) ],[ ac_cv_pcre_location="" ]) AM_CONDITIONAL(HAVE_LIBPCRE, [test "x${ac_cv_libpcre}" = "xyes"]) ]) AC_DEFUN([_PANDORA_HAVE_LIBPCRE],[ AC_ARG_ENABLE([libpcre], [AS_HELP_STRING([--disable-libpcre], [Build with libpcre support @<:@default=on@:>@])], [ac_enable_libpcre="$enableval"], [ac_enable_libpcre="yes"]) _PANDORA_SEARCH_LIBPCRE ]) AC_DEFUN([PANDORA_HAVE_LIBPCRE],[ AC_REQUIRE([_PANDORA_HAVE_LIBPCRE]) ]) AC_DEFUN([_PANDORA_REQUIRE_LIBPCRE],[ ac_enable_libpcre="yes" _PANDORA_SEARCH_LIBPCRE AS_IF([test x$ac_cv_libpcre = xno],[ AC_MSG_ERROR([libpcre is required for ${PACKAGE}. On Debian this can be found in libpcre3-dev. On RedHat this can be found in pcre-devel.]) ],[ AC_DEFINE_UNQUOTED(PCRE_HEADER,[${ac_cv_pcre_location}], [Location of pcre header]) ]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBPCRE],[ AC_REQUIRE([_PANDORA_REQUIRE_LIBPCRE]) ]) pandora-build-0.171.1/m4/pandora_canonical.m40000644000175000017500000002676211506166120015553 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Which version of the canonical setup we're using AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.171]) AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[ AC_ARG_ENABLE([fat-binaries], [AS_HELP_STRING([--enable-fat-binaries], [Enable fat binary support on OSX @<:@default=off@:>@])], [ac_enable_fat_binaries="$enableval"], [ac_enable_fat_binaries="no"]) dnl Force dependency tracking on for Sun Studio builds AS_IF([test "x${enable_dependency_tracking}" = "x"],[ enable_dependency_tracking=yes ]) dnl If we're building OSX Fat Binaries, we have to turn off -M options AS_IF([test "x${ac_enable_fat_binaries}" = "xyes"],[ enable_dependency_tracking=no ]) ]) AC_DEFUN([PANDORA_BLOCK_BAD_OPTIONS],[ AS_IF([test "x${prefix}" = "x"],[ AC_MSG_ERROR([--prefix requires an argument]) ]) ]) dnl The standard setup for how we build Pandora projects AC_DEFUN([PANDORA_CANONICAL_TARGET],[ AC_REQUIRE([PANDORA_FORCE_DEPEND_TRACKING]) ifdef([m4_define],,[define([m4_define], defn([define]))]) ifdef([m4_undefine],,[define([m4_undefine], defn([undefine]))]) m4_define([PCT_ALL_ARGS],[$*]) m4_define([PCT_REQUIRE_CXX],[no]) m4_define([PCT_FORCE_GCC42],[no]) m4_define([PCT_DONT_SUPPRESS_INCLUDE],[no]) m4_define([PCT_NO_VC_CHANGELOG],[no]) m4_define([PCT_VERSION_FROM_VC],[no]) m4_define([PCT_USE_VISIBILITY],[yes]) m4_foreach([pct_arg],[$*],[ m4_case(pct_arg, [require-cxx], [ m4_undefine([PCT_REQUIRE_CXX]) m4_define([PCT_REQUIRE_CXX],[yes]) ], [force-gcc42], [ m4_undefine([PCT_FORCE_GCC42]) m4_define([PCT_FORCE_GCC42],[yes]) ], [skip-visibility], [ m4_undefine([PCT_USE_VISIBILITY]) m4_define([PCT_USE_VISIBILITY],[no]) ], [dont-suppress-include], [ m4_undefine([PCT_DONT_SUPPRESS_INCLUDE]) m4_define([PCT_DONT_SUPPRESS_INCLUDE],[yes]) ], [no-vc-changelog], [ m4_undefine([PCT_NO_VC_CHANGELOG]) m4_define([PCT_NO_VC_CHANGELOG],[yes]) ], [version-from-vc], [ m4_undefine([PCT_VERSION_FROM_VC]) m4_define([PCT_VERSION_FROM_VC],[yes]) ]) ]) AC_CONFIG_MACRO_DIR([m4]) m4_if(m4_substr(m4_esyscmd(test -d src && echo 0),0,1),0,[ AC_CONFIG_HEADERS([src/config.h]) ],[ AC_CONFIG_HEADERS([config.h]) ]) PANDORA_BLOCK_BAD_OPTIONS # We need to prevent canonical target # from injecting -O2 into CFLAGS - but we won't modify anything if we have # set CFLAGS on the command line, since that should take ultimate precedence AS_IF([test "x${ac_cv_env_CFLAGS_set}" = "x"], [CFLAGS=""]) AS_IF([test "x${ac_cv_env_CXXFLAGS_set}" = "x"], [CXXFLAGS=""]) AC_CANONICAL_TARGET m4_if(PCT_DONT_SUPRESS_INCLUDE,yes,[ AM_INIT_AUTOMAKE(-Wall -Werror -Wno-portability subdir-objects foreign tar-ustar) ],[ AM_INIT_AUTOMAKE(-Wall -Werror -Wno-portability nostdinc subdir-objects foreign tar-ustar) ]) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) m4_if(m4_substr(m4_esyscmd(test -d gnulib && echo 0),0,1),0,[ gl_EARLY ],[ PANDORA_EXTENSIONS ]) AC_REQUIRE([AC_PROG_CC]) m4_if(PCT_FORCE_GCC42, [yes], [ AC_REQUIRE([PANDORA_ENSURE_GCC_VERSION]) ]) AC_REQUIRE([PANDORA_64BIT]) m4_if(PCT_NO_VC_CHANGELOG,yes,[ vc_changelog=no ],[ vc_changelog=yes ]) m4_if(PCT_VERSION_FROM_VC,yes,[ PANDORA_VC_VERSION ],[ PANDORA_TEST_VC_DIR changequote(<<, >>)dnl PANDORA_RELEASE_ID=`echo $VERSION | sed 's/[^0-9]//g'` changequote([, ])dnl PANDORA_RELEASE_COMMENT="" AC_DEFINE_UNQUOTED([PANDORA_RELEASE_VERSION],["$VERSION"], [Version of the software]) AC_SUBST(PANDORA_RELEASE_COMMENT) AC_SUBST(PANDORA_RELEASE_VERSION) AC_SUBST(PANDORA_RELEASE_ID) ]) PANDORA_VERSION dnl Once we can use a modern autoconf, we can use this dnl AC_PROG_CC_C99 AC_REQUIRE([AC_PROG_CXX]) PANDORA_EXTENSIONS AM_PROG_CC_C_O PANDORA_PLATFORM PANDORA_LIBTOOL dnl autoconf doesn't automatically provide a fail-if-no-C++ macro dnl so we check c++98 features and fail if we don't have them, mainly dnl for that reason PANDORA_CHECK_CXX_STANDARD m4_if(PCT_REQUIRE_CXX, [yes], [ AS_IF([test "$ac_cv_cxx_stdcxx_98" = "no"],[ AC_MSG_ERROR([No working C++ Compiler has been found. ${PACKAGE} requires a C++ compiler that can handle C++98]) ]) ]) PANDORA_CXX_CSTDINT PANDORA_CXX_CINTTYPES m4_if(m4_substr(m4_esyscmd(test -d gnulib && echo 0),0,1),0,[ gl_INIT AC_CONFIG_LIBOBJ_DIR([gnulib]) ]) PANDORA_CHECK_C_VERSION PANDORA_CHECK_CXX_VERSION AC_C_BIGENDIAN AC_C_CONST AC_C_INLINE AC_C_VOLATILE AC_C_RESTRICT AC_HEADER_TIME AC_STRUCT_TM AC_TYPE_SIZE_T AC_SYS_LARGEFILE PANDORA_CLOCK_GETTIME AC_CHECK_HEADERS(sys/socket.h) # off_t is not a builtin type AC_CHECK_SIZEOF(off_t, 4) AS_IF([test "$ac_cv_sizeof_off_t" -eq 0],[ AC_MSG_ERROR("${PACKAGE} needs an off_t type.") ]) AC_CHECK_SIZEOF(size_t) AS_IF([test "$ac_cv_sizeof_size_t" -eq 0],[ AC_MSG_ERROR("${PACKAGE} needs an size_t type.") ]) AC_DEFINE_UNQUOTED([SIZEOF_SIZE_T],[$ac_cv_sizeof_size_t],[Size of size_t as computed by sizeof()]) AC_CHECK_SIZEOF(long long) AC_DEFINE_UNQUOTED([SIZEOF_LONG_LONG],[$ac_cv_sizeof_long_long],[Size of long long as computed by sizeof()]) AC_CACHE_CHECK([if time_t is unsigned], [ac_cv_time_t_unsigned],[ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[ #include ]], [[ int array[(((time_t)-1) > 0) ? 1 : -1]; ]]) ],[ ac_cv_time_t_unsigned=yes ],[ ac_cv_time_t_unsigned=no ]) ]) AS_IF([test "$ac_cv_time_t_unsigned" = "yes"],[ AC_DEFINE([TIME_T_UNSIGNED], 1, [Define to 1 if time_t is unsigned]) ]) AC_CACHE_CHECK([if system defines RUSAGE_THREAD], [ac_cv_rusage_thread],[ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[ #include #include ]],[[ int x= RUSAGE_THREAD; ]]) ],[ ac_cv_rusage_thread=yes ],[ ac_cv_rusage_thread=no ]) ]) AS_IF([test "$ac_cv_rusage_thread" = "no"],[ AC_DEFINE([RUSAGE_THREAD], [RUSAGE_SELF], [Define if system doesn't define]) ]) AC_CHECK_LIBM dnl Bug on FreeBSD - LIBM check doesn't set the damn variable AC_SUBST([LIBM]) AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)]) AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)]) PANDORA_OPTIMIZE AC_LANG_PUSH(C++) # Test whether madvise() is declared in C++ code -- it is not on some # systems, such as Solaris AC_CHECK_DECLS([madvise], [], [], [AC_INCLUDES_DEFAULT[ #if HAVE_SYS_MMAN_H #include #include #endif ]]) AC_LANG_POP() PANDORA_HAVE_GCC_ATOMICS m4_if(PCT_USE_VISIBILITY,[yes],[ PANDORA_ENABLE_VISIBILITY ],[ PANDORA_CHECK_VISIBILITY ]) PANDORA_HEADER_ASSERT PANDORA_WARNINGS(PCT_ALL_ARGS) PANDORA_ENABLE_DTRACE AC_LIB_PREFIX PANDORA_HAVE_BETTER_MALLOC AC_CHECK_PROGS([DOXYGEN], [doxygen]) AC_CHECK_PROGS([PERL], [perl]) AC_CHECK_PROGS([DPKG_GENSYMBOLS], [dpkg-gensymbols], [:]) AC_CHECK_PROGS([LCOV], [lcov], [echo lcov not found]) AC_CHECK_PROGS([LCOV_GENHTML], [genhtml], [echo genhtml not found]) AC_CHECK_PROGS([SPHINXBUILD], [sphinx-build], [:]) AS_IF([test "x${SPHINXBUILD}" != "x:"],[ AC_CACHE_CHECK([if sphinx is new enough],[ac_cv_recent_sphinx],[ ${SPHINXBUILD} -Q -C -b man -d conftest.d . . >/dev/null 2>&1 AS_IF([test $? -eq 0],[ac_cv_recent_sphinx=yes], [ac_cv_recent_sphinx=no]) rm -rf conftest.d ]) ]) AM_CONDITIONAL(HAVE_DPKG_GENSYMBOLS,[test "x${DPKG_GENSYMBOLS}" != "x:"]) AM_CONDITIONAL(HAVE_SPHINX,[test "x${SPHINXBUILD}" != "x:"]) AM_CONDITIONAL(HAVE_RECENT_SPHINX,[test "x${ac_cv_recent_sphinx}" = "xyes"]) m4_if(m4_substr(m4_esyscmd(test -d po && echo 0),0,1),0, [ AM_PO_SUBDIRS IT_PROG_INTLTOOL([0.35],[no-xml]) GETTEXT_PACKAGE=$PACKAGE AC_CHECK_LIB(intl, libintl_gettext) AC_SUBST([GETTEXT_PACKAGE]) AS_IF([test "x${USE_NLS}" = "xyes" -a "x${pandora_have_intltool}" = "xyes"], [AC_DEFINE([ENABLE_NLS],[1],[Turn on language support]) AC_CONFIG_FILES([po/Makefile.in]) ]) ]) AM_CONDITIONAL(BUILD_PO,[test "x${USE_NLS}" = "xyes" -a "x${pandora_have_intltool}" = "xyes"]) AS_IF([test "x${gl_LIBOBJS}" != "x"],[ AS_IF([test "$GCC" = "yes"],[ AM_CPPFLAGS="-isystem \${top_srcdir}/gnulib -isystem \${top_builddir}/gnulib ${AM_CPPFLAGS}" ],[ AM_CPPFLAGS="-I\${top_srcdir}/gnulib -I\${top_builddir}/gnulib ${AM_CPPFLAGS}" ]) ]) m4_if(m4_substr(m4_esyscmd(test -d src && echo 0),0,1),0,[ AM_CPPFLAGS="-I\$(top_srcdir)/src -I\$(top_builddir)/src ${AM_CPPFLAGS}" ],[ AM_CPPFLAGS="-I\$(top_srcdir) -I\$(top_builddir) ${AM_CPPFLAGS}" ]) PANDORA_USE_PIPE AH_TOP([ #ifndef __CONFIG_H__ #define __CONFIG_H__ /* _SYS_FEATURE_TESTS_H is Solaris, _FEATURES_H is GCC */ #if defined( _SYS_FEATURE_TESTS_H) || defined(_FEATURES_H) #error "You should include config.h as your first include file" #endif #include "config/top.h" ]) mkdir -p config cat > config/top.h.stamp </dev/null 2>&1 || mv config/top.h.stamp config/top.h rm -f config/top.h.stamp AH_BOTTOM([ #if defined(__cplusplus) # include CSTDINT_H # include CINTTYPES_H #else # include # include #endif #if !defined(HAVE_ULONG) && !defined(__USE_MISC) # define HAVE_ULONG 1 typedef unsigned long int ulong; #endif /* To hide the platform differences between MS Windows and Unix, I am * going to use the Microsoft way and #define the Microsoft-specific * functions to the unix way. Microsoft use a separate subsystem for sockets, * but Unix normally just use a filedescriptor on the same functions. It is * a lot easier to map back to the unix way with macros than going the other * way without side effect ;-) */ #ifdef TARGET_OS_WINDOWS #define random() rand() #define srandom(a) srand(a) #define get_socket_errno() WSAGetLastError() #else #define INVALID_SOCKET -1 #define SOCKET_ERROR -1 #define closesocket(a) close(a) #define get_socket_errno() errno #endif #if defined(__cplusplus) # if defined(DEBUG) # include # include # endif template inline To implicit_cast(From const &f) { return f; } template // use like this: down_cast(foo); inline To down_cast(From* f) { // so we only accept pointers // Ensures that To is a sub-type of From *. This test is here only // for compile-time type checking, and has no overhead in an // optimized build at run-time, as it will be optimized away // completely. if (false) { implicit_cast(0); } #if defined(DEBUG) assert(f == NULL || dynamic_cast(f) != NULL); // RTTI: debug mode only! #endif return static_cast(f); } #endif /* defined(__cplusplus) */ #endif /* __CONFIG_H__ */ ]) AM_CFLAGS="${AM_CFLAGS} ${CC_WARNINGS} ${CC_PROFILING} ${CC_COVERAGE}" AM_CXXFLAGS="${AM_CXXFLAGS} ${CXX_WARNINGS} ${CC_PROFILING} ${CC_COVERAGE}" AC_SUBST([AM_CFLAGS]) AC_SUBST([AM_CXXFLAGS]) AC_SUBST([AM_CPPFLAGS]) AC_SUBST([AM_LDFLAGS]) ]) pandora-build-0.171.1/m4/pandora_visibility.m40000644000175000017500000000477511506166014016015 00000000000000dnl Copyright (C) 2005, 2008 Free Software Foundation, Inc. dnl Copyright (C) 2009 Monty Taylor dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Tests whether the compiler supports the command-line option dnl -fvisibility=hidden and the function and variable attributes dnl __attribute__((__visibility__("hidden"))) and dnl __attribute__((__visibility__("default"))). dnl Does *not* test for __visibility__("protected") - which has tricky dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on dnl MacOS X. dnl Does *not* test for __visibility__("internal") - which has processor dnl dependent semantics. dnl Does *not* test for #pragma GCC visibility push(hidden) - which is dnl "really only recommended for legacy code". dnl Set the variable CFLAG_VISIBILITY. dnl Defines and sets the variable HAVE_VISIBILITY. AC_DEFUN([PANDORA_CHECK_VISIBILITY], [ AC_REQUIRE([AC_PROG_CC]) CFLAG_VISIBILITY= HAVE_VISIBILITY=0 AS_IF([test -n "$GCC"],[ AC_MSG_CHECKING([for simple visibility declarations]) AC_CACHE_VAL([gl_cv_cc_visibility], [ gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden -Werror" AC_TRY_COMPILE( [extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void);], [], [gl_cv_cc_visibility=yes], [gl_cv_cc_visibility=no]) CFLAGS="$gl_save_CFLAGS"]) AC_MSG_RESULT([$gl_cv_cc_visibility]) if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" NO_VISIBILITY="-fvisibility=default" HAVE_VISIBILITY=1 fi ]) AS_IF([test "x$SUNCC" = "xyes"],[ CFLAG_VISIBILITY="-xldscope=hidden" NO_VISIBILITY="-xldscope=global" HAVE_VISIBILITY=1 ]) AC_SUBST([CFLAG_VISIBILITY]) AC_SUBST([NO_VISIBILITY]) AC_SUBST([HAVE_VISIBILITY]) AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) ]) AC_DEFUN([PANDORA_ENABLE_VISIBILITY],[ AC_REQUIRE([PANDORA_CHECK_VISIBILITY]) AM_CFLAGS="${AM_CFLAGS} ${CFLAG_VISIBILITY}" AM_CXXFLAGS="${AM_CXXFLAGS} ${CFLAG_VISIBILITY}" ]) pandora-build-0.171.1/m4/pandora_have_libavahi.m40000644000175000017500000000244711506166014016402 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBAVAHI],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libavahi dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libavahi], [AS_HELP_STRING([--disable-libavahi], [Build with libavahi support @<:@default=on@:>@])], [ac_enable_libavahi="$enableval"], [ac_enable_libavahi="yes"]) AS_IF([test "x$ac_enable_libavahi" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(avahi-client,avahi-common,[ #include #include ],[ AvahiSimplePoll *simple_poll= avahi_simple_poll_new(); ]) ],[ ac_cv_libavahi="no" ]) AM_CONDITIONAL(HAVE_LIBAVAHI, [test "x${ac_cv_libavahi}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBAVAHI],[ AC_REQUIRE([_PANDORA_SEARCH_LIBAVAHI]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBAVAHI],[ AC_REQUIRE([_PANDORA_SEARCH_LIBAVAHI]) AS_IF([test "x${ac_cv_libavahi}" = "xno"], AC_MSG_ERROR([libavahi is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_optimize.m40000644000175000017500000000452211506166014015454 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([PANDORA_OPTIMIZE],[ dnl Build optimized or debug version ? dnl First check for gcc and g++ AS_IF([test "$GCC" = "yes" -a "$INTELCC" = "no"],[ dnl The following is required for portable results of floating point dnl calculations on PowerPC. The same must also be done for IA-64, but dnl this options is missing in the IA-64 gcc backend. case "$target_cpu" in *ppc* | *powerpc*) AM_CFLAGS="-mno-fused-madd ${AM_CFLAGS}" AM_CXXFLAGS="-mno-fused-madd ${AM_CXXFLAGS}" ;; esac dnl Once we can use a modern autoconf, we can replace the std=gnu99 here dnl with using AC_CC_STD_C99 above CC="${CC} -std=gnu99" AM_CPPFLAGS="-g ${AM_CPPFLAGS}" DEBUG_CFLAGS="-O0" DEBUG_CXXFLAGS="-O0" OPTIMIZE_CFLAGS="-O2" OPTIMIZE_CXXFLAGS="-O2" ]) AS_IF([test "$INTELCC" = "yes"],[ AM_CPPFLAGS="-g ${AM_CPPFLAGS}" DEBUG_CFLAGS="-O0" DEBUG_CXXFLAGS="-O0" OPTIMIZE_CFLAGS="-xHOST -O2 -no-prec-div -static" OPTIMIZE_CXXFLAGS="${OPTIMIZE_CFLAGS}" ]) AS_IF([test "$SUNCC" = "yes"],[ dnl Once we can use a modern autoconf, we can replace the -xc99=all here dnl with using AC_CC_STD_C99 above CC="${CC} -xc99=all" CXX="${CXX} -xlang=c99" AM_CFLAGS="-g -mt -xstrconst -Xa ${AM_CFLAGS}" AM_CXXFLAGS="-mt -compat=5 -library=stlport4 -library=Crun -template=no%extdef ${AM_CXXFLAGS}" DEBUG_CXXFLAGS="-g" dnl TODO: Make a test for -xO4 usability here OPTIMIZE_FLAGS="-xO3 -xlibmil -xdepend -xbuiltin" OPTIMIZE_CFLAGS="${OPTIMIZE_FLAGS}" OPTIMIZE_CXXFLAGS="-g0 ${OPTIMIZE_FLAGS}" ]) AC_ARG_WITH([debug], [AS_HELP_STRING([--with-debug], [Add debug code/turns off optimizations (yes|no) @<:@default=no@:>@])], [with_debug=$withval], [with_debug=no]) AS_IF([test "$with_debug" = "yes"],[ # Debugging. No optimization. AM_CFLAGS="${AM_CFLAGS} ${DEBUG_CFLAGS} -DDEBUG" AM_CXXFLAGS="${AM_CXXFLAGS} ${DEBUG_CXXFLAGS} -DDEBUG" ],[ # Optimized version. No debug AM_CFLAGS="${AM_CFLAGS} ${OPTIMIZE_CFLAGS}" AM_CXXFLAGS="${AM_CXXFLAGS} ${OPTIMIZE_CXXFLAGS}" ]) ]) pandora-build-0.171.1/m4/pandora_vc_build.m40000644000175000017500000001172511506166014015406 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([PANDORA_TEST_VC_DIR],[ pandora_building_from_vc=no if test -d ".bzr" ; then pandora_building_from_bzr=yes pandora_building_from_vc=yes else pandora_building_from_bzr=no fi if test -d ".svn" ; then pandora_building_from_svn=yes pandora_building_from_vc=yes else pandora_building_from_svn=no fi if test -d ".hg" ; then pandora_building_from_hg=yes pandora_building_from_vc=yes else pandora_building_from_hg=no fi if test -d ".git" ; then pandora_building_from_git=yes pandora_building_from_vc=yes else pandora_building_from_git=no fi ]) AC_DEFUN([PANDORA_BUILDING_FROM_VC],[ m4_syscmd(PANDORA_TEST_VC_DIR m4_if(PCT_NO_VC_CHANGELOG,yes,[ vc_changelog=no ],[ vc_changelog=yes ]) [ PANDORA_RELEASE_DATE=`date +%Y.%m` PANDORA_RELEASE_NODOTS_DATE=`date +%Y%m` # Set some defaults PANDORA_VC_REVNO="0" PANDORA_VC_REVID="unknown" PANDORA_VC_BRANCH="bzr-export" if test "${pandora_building_from_bzr}" = "yes"; then echo "# Grabbing changelog and version information from bzr" PANDORA_BZR_REVNO=`bzr revno` if test "x$PANDORA_BZR_REVNO" != "x${PANDORA_VC_REVNO}" ; then PANDORA_VC_REVNO="${PANDORA_BZR_REVNO}" PANDORA_VC_REVID=`bzr log -r-1 --show-ids | grep revision-id | cut -f2 -d' ' | head -1` PANDORA_VC_BRANCH=`bzr nick` if test "x${vc_changelog}" = "xyes"; then bzr log --gnu > ChangeLog fi fi fi if ! test -d config ; then mkdir -p config fi if test "${pandora_building_from_bzr}" = "yes" -o ! -f config/pandora_vc_revinfo ; then cat > config/pandora_vc_revinfo.tmp </dev/null 2>&1 ; then mv config/pandora_vc_revinfo.tmp config/pandora_vc_revinfo fi rm -f config/pandora_vc_revinfo.tmp fi ]) ]) AC_DEFUN([_PANDORA_READ_FROM_FILE],[ $1=`grep $1 $2 | cut -f2 -d=` ]) AC_DEFUN([PANDORA_VC_VERSION],[ AC_REQUIRE([PANDORA_BUILDING_FROM_VC]) PANDORA_TEST_VC_DIR AS_IF([test -f ${srcdir}/config/pandora_vc_revinfo],[ _PANDORA_READ_FROM_FILE([PANDORA_VC_REVNO],${srcdir}/config/pandora_vc_revinfo) _PANDORA_READ_FROM_FILE([PANDORA_VC_REVID],${srcdir}/config/pandora_vc_revinfo) _PANDORA_READ_FROM_FILE([PANDORA_VC_BRANCH], ${srcdir}/config/pandora_vc_revinfo) _PANDORA_READ_FROM_FILE([PANDORA_RELEASE_DATE], ${srcdir}/config/pandora_vc_revinfo) _PANDORA_READ_FROM_FILE([PANDORA_RELEASE_NODOTS_DATE], ${srcdir}/config/pandora_vc_revinfo) ]) AS_IF([test "x${PANDORA_VC_BRANCH}" != x"${PACKAGE}"],[ PANDORA_RELEASE_COMMENT="${PANDORA_VC_BRANCH}" ],[ PANDORA_RELEASE_COMMENT="trunk" ]) PANDORA_RELEASE_VERSION="${PANDORA_RELEASE_DATE}.${PANDORA_VC_REVNO}" PANDORA_RELEASE_ID="${PANDORA_RELEASE_NODOTS_DATE}${PANDORA_VC_REVNO}" VERSION="${PANDORA_RELEASE_VERSION}" AC_DEFINE_UNQUOTED([PANDORA_RELEASE_VERSION],["${PANDORA_RELEASE_VERSION}"], [The real version of the software]) AC_SUBST(PANDORA_VC_REVNO) AC_SUBST(PANDORA_VC_REVID) AC_SUBST(PANDORA_VC_BRANCH) AC_SUBST(PANDORA_RELEASE_DATE) AC_SUBST(PANDORA_RELEASE_NODOTS_DATE) AC_SUBST(PANDORA_RELEASE_COMMENT) AC_SUBST(PANDORA_RELEASE_VERSION) AC_SUBST(PANDORA_RELEASE_ID) ]) AC_DEFUN([PANDORA_VC_INFO_HEADER],[ AC_REQUIRE([PANDORA_VC_VERSION]) m4_define([PANDORA_VC_PREFIX],m4_toupper(m4_normalize(AC_PACKAGE_NAME))[_]) AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[VC_REVNO], [$PANDORA_VC_REVNO], [Version control revision number]) AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[VC_REVID], ["$PANDORA_VC_REVID"], [Version control revision ID]) AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[VC_BRANCH], ["$PANDORA_VC_BRANCH"], [Version control branch name]) AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[RELEASE_DATE], ["$PANDORA_RELEASE_DATE"], [Release date of version control checkout]) AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[RELEASE_NODOTS_DATE], [$PANDORA_RELEASE_NODOTS_DATE], [Numeric formatted release date of checkout]) AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[RELEASE_COMMENT], ["$PANDORA_RELEASE_COMMENT"], [Set to trunk if the branch is the main $PACKAGE branch]) AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[RELEASE_VERSION], ["$PANDORA_RELEASE_VERSION"], [Release date and revision number of checkout]) AC_DEFINE_UNQUOTED(PANDORA_VC_PREFIX[RELEASE_ID], [$PANDORA_RELEASE_ID], [Numeric formatted release date and revision number of checkout]) ]) pandora-build-0.171.1/m4/pandora_have_libboost_iostreams.m40000644000175000017500000000336011506166014020521 00000000000000dnl Copyright (C) 2010 Andrew Hutchings dnl This file is free software; Andrew Hutchings dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_BOOST_IOSTREAMS],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for Boost.Iostreams dnl -------------------------------------------------------------------- AC_LANG_PUSH(C++) AC_LIB_HAVE_LINKFLAGS(boost_iostreams-mt,,[ #include #include ],[ const char* input= "hello world"; boost::iostreams::stream in(input, strlen(input)); ]) AS_IF([test "x${ac_cv_libboost_iostreams_mt}" = "xno"],[ AC_LIB_HAVE_LINKFLAGS(boost_iostreams,,[ #include #include ],[ const char* input= "hello world"; boost::iostreams::stream in(input, strlen(input)); ]) ]) AC_LANG_POP() AM_CONDITIONAL(HAVE_BOOST_IOSTREAMS, [test "x${ac_cv_libboost_iostreams}" = "xyes" -o "x${ac_cv_libboost_iostreams_mt}" = "xyes"]) BOOST_LIBS="${BOOST_LIBS} ${LTLIBBOOST_IOSTREAMS_MT} ${LTLIBBOOST_IOSTREAMS}" AC_SUBST(BOOST_LIBS) ]) AC_DEFUN([PANDORA_HAVE_BOOST_IOSTREAMS],[ PANDORA_HAVE_BOOST($1) _PANDORA_SEARCH_BOOST_IOSTREAMS($1) ]) AC_DEFUN([PANDORA_REQUIRE_BOOST_IOSTREAMS],[ PANDORA_REQUIRE_BOOST($1) _PANDORA_SEARCH_BOOST_IOSTREAMS($1) AS_IF([test "x${ac_cv_libboost_iostreams}" = "xno" -a "x${ac_cv_libboost_iostreams_mt}" = "xno"], AC_MSG_ERROR([Boost.Iostreams is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_have_libndbclient.m40000644000175000017500000000471711506166014017256 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl Copyright (C) 2010 Monty Taylor dnl This file is free software; Sun Microsystems dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl AC_DEFUN([_PANDORA_SEARCH_LIBNDBCLIENT],[ AC_REQUIRE([AC_LIB_PREFIX]) AC_REQUIRE([PANDORA_WITH_MYSQL]) AC_ARG_ENABLE([libndbclient], [AS_HELP_STRING([--disable-libndbclient], [Build with libndbclient support @<:@default=on@:>@])], [ac_enable_libndbclient="$enableval"], [ac_enable_libndbclient="yes"]) AC_ARG_WITH([libndbclient-prefix], [AS_HELP_STRING([--with-libndbclient-prefix], [search for libndbclient in DIR])], [ac_with_libndbclient=${withval}], [ac_with_libndbclient=${pandora_cv_mysql_base}]) save_LIBS="${LIBS}" LIBS="" save_CPPFLAGS="${CPPFLAGS}" AS_IF([test "x${ac_with_libndbclient}" != "x"],[ LIBS="-L${ac_with_libndbclient}/lib/mysql -L${ac_with_libndbclient}/lib" AS_IF([test "$GCC" = "yes"],[ ndb_include_prefix="-isystem " ],[ ndb_include_prefix="-I" ]) CPPFLAGS="${CPPFLAGS} ${ndb_include_prefix}${ac_with_libndbclient}/include ${ndb_include_prefix}${ac_with_libndbclient}/include/mysql ${ndb_include_prefix}${ac_with_libndbclient}/include/mysql/storage/ndb ${ndb_include_prefix}${ac_with_libndbclient}/include/mysql/storage/ndb/ndbapi ${ndb_include_prefix}${ac_with_libndbclient}/include/mysql/storage/ndb/mgmapi" ]) LIBS="${LIBS} -lndbclient -lmysqlclient_r" AC_CACHE_CHECK([if NdbApi works],[ac_cv_libndbclient],[ AC_LANG_PUSH(C++) AC_LINK_IFELSE([ AC_LANG_PROGRAM([[ #include ]],[[ Ndb *ndb; ndb_init(); ]]) ],[ ac_cv_libndbclient=yes ],[ ac_cv_libndbclient=no ]) ]) AC_LANG_POP() LIBNDBCLIENT="${LIBS}" LTLIBNDBCLIENT="${LIBS}" AC_SUBST([LIBNDBCLIENT]) AC_SUBST([LTLIBNDBCLIENT]) AS_IF([test "x${ac_cv_libndbclient}" = "xno"],[ CPPFLAGS="${save_CPPFLAGS}" ]) LIBS="${save_LIBS}" AM_CONDITIONAL(HAVE_LIBNDBCLIENT, [test "x${ac_cv_libndbclient}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBNDBCLIENT],[ AC_REQUIRE([_PANDORA_SEARCH_LIBNDBCLIENT]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBNDBCLIENT],[ AC_REQUIRE([PANDORA_HAVE_LIBNDBCLIENT]) AS_IF([test "x${ac_cv_libndbclient}" = "xno"], AC_MSG_ERROR([libndbclient is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/lib-link.m40000644000175000017500000007677411505040437013632 00000000000000# lib-link.m4 serial 18 (gettext-0.18) dnl Copyright (C) 2001-2009 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ([2.54]) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[translit([$1],[./-], [___])]) pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes popdef([NAME]) popdef([Name]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [system]) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. If found, it dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[translit([$1],[./-], [___])]) pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2], [$5]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" LIBS="$LIBS $LIB[]NAME" AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= LIB[]NAME[]_PREFIX= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) popdef([NAME]) popdef([Name]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl acl_libext, dnl acl_shlibext, dnl acl_hardcode_libdir_flag_spec, dnl acl_hardcode_libdir_separator, dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Tell automake >= 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE([rpath], [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_FROMPACKAGE(name, package) dnl declares that libname comes from the given package. The configure file dnl will then not have a --with-libname-prefix option but a dnl --with-package-prefix option. Several libraries can come from the same dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar dnl macro call that searches for libname. AC_DEFUN([AC_LIB_FROMPACKAGE], [ pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) define([acl_frompackage_]NAME, [$2]) popdef([NAME]) pushdef([PACK],[$2]) pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) define([acl_libsinpackage_]PACKUP, m4_ifdef([acl_libsinpackage_]PACKUP, [acl_libsinpackage_]PACKUP[[, ]],)[lib$1]) popdef([PACKUP]) popdef([PACK]) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies, system]) searches for dnl libname and the libraries corresponding to explicit and implicit dnl dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. dnl If system==system, -isystem is used instead of -I AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) dnl Autoconf >= 2.61 supports dots in --with options. pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)]) dnl By default, look in $includedir and $libdir. use_additional=yes if test "x$GCC" = "xyes" -a "x$3" = "xsystem" then i_system="-isystem " else i_system="-I" fi AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH(P_A_C_K[-prefix], [[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X${i_system}$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }${i_system}$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi popdef([P_A_C_K]) popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) popdef([NAME]) ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) pandora-build-0.171.1/m4/pandora_drizzle_build.m40000644000175000017500000000422111506166014016452 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Check for all of the headers and libs that Drizzle needs. We check all dnl of these for plugins too, to ensure that all of the appropriate defines dnl are set. AC_DEFUN([PANDORA_DRIZZLE_BUILD],[ AC_STRUCT_TM AC_FUNC_ALLOCA AC_FUNC_UTIME_NULL AC_FUNC_VPRINTF PANDORA_WORKING_FDATASYNC AC_CHECK_FUNCS(\ gethrtime \ setupterm \ backtrace \ backtrace_symbols \ backtrace_symbols_fd) AC_HEADER_STAT AC_HEADER_DIRENT AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_HEADER_STDBOOL AC_CHECK_HEADERS(sys/types.h sys/fpu.h fpu_control.h ieeefp.h) AC_CHECK_HEADERS(select.h sys/select.h) AC_CHECK_HEADERS(utime.h sys/utime.h ) AC_CHECK_HEADERS(synch.h sys/mman.h) AC_CHECK_HEADERS(sched.h) AC_CHECK_HEADERS(sys/prctl.h) AC_CHECK_HEADERS(execinfo.h) AC_CHECK_HEADERS(locale.h) AC_CHECK_HEADERS(termcap.h termio.h termios.h asm/termbits.h) AC_CHECK_HEADERS(paths.h) #-------------------------------------------------------------------- # Check for system libraries. Adds the library to $LIBS # and defines HAVE_LIBM etc #-------------------------------------------------------------------- # For the sched_yield() function on Solaris AC_CHECK_FUNC(sched_yield, [], [AC_CHECK_LIB(posix4, [sched_yield], [AC_DEFINE(HAVE_SCHED_YIELD, 1, [Have sched_yield function]) LIBS="$LIBS -lposix4"])]) AS_IF([test "$ac_cv_header_termio_h" = "no" -a "$ac_cv_header_termios_h" = "no"],[ AC_CHECK_FUNC(gtty, [], [AC_CHECK_LIB(compat, gtty)]) ]) AC_CHECK_HEADERS([curses.h term.h],[],[],[[ #ifdef HAVE_CURSES_H # include #endif ]]) AC_CHECK_TYPES([uint, ulong]) PANDORA_REQUIRE_BISON PANDORA_CXX_DEMANGLE PANDORA_REQUIRE_BOOST([1.38]) PANDORA_REQUIRE_BOOST_PROGRAM_OPTIONS PANDORA_REQUIRE_BOOST_THREAD PANDORA_REQUIRE_BOOST_REGEX PANDORA_REQUIRE_BOOST_DATE_TIME PANDORA_REQUIRE_BOOST_FILESYSTEM PANDORA_REQUIRE_BOOST_IOSTREAMS ]) pandora-build-0.171.1/m4/pandora_have_libcassandra.m40000644000175000017500000000253311506166014017245 00000000000000dnl Copyright (C) 2010 Padraig O'Sullivan dnl This file is free software; dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBCASSANDRA],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libcassandra dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libcassandra], [AS_HELP_STRING([--disable-libcassandra], [Build with libcassandra support @<:@default=on@:>@])], [ac_enable_libcassandra="$enableval"], [ac_enable_libcassandra="yes"]) AS_IF([test "x$ac_enable_libcassandra" = "xyes"],[ AC_LANG_PUSH([C++]) AC_LIB_HAVE_LINKFLAGS(cassandra,[thrift],[ #include ],[ libcassandra::CassandraFactory fact("localhost", 9306); ]) AC_LANG_POP() ],[ ac_cv_libcassandra="no" ]) AM_CONDITIONAL(HAVE_LIBCASSANDRA, [test "x${ac_cv_libcassandra}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBCASSANDRA],[ AC_REQUIRE([_PANDORA_SEARCH_LIBCASSANDRA]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBCASSANDRA],[ AC_REQUIRE([PANDORA_HAVE_LIBCASSANDRA]) AS_IF([test "x$ac_cv_libcassandra" = "xno"],[ AC_MSG_ERROR([libcassandra is required for ${PACKAGE}]) ]) ]) pandora-build-0.171.1/m4/pandora_have_libxml2.m40000644000175000017500000000313011506166014016162 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Provides support for finding libxml2. dnl LIBXML2_CFLAGS will be set, in addition to LIBXML2 and LTLIBXML2 AC_DEFUN([_PANDORA_SEARCH_LIBXML2],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libxml2 dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libxml2], [AS_HELP_STRING([--disable-libxml2], [Build with libxml2 support @<:@default=on@:>@])], [ac_enable_libxml2="$enableval"], [ac_enable_libxml2="yes"]) AS_IF([test "x$ac_enable_libxml2" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(xml2,,[ #include ],[ const char *test= LIBXML_DOTTED_VERSION; ]) ],[ ac_cv_libxml2="no" ]) AS_IF([test "${ac_cv_libxml2}" = "no" -a "${ac_enable_libxml2}" = "yes"],[ PKG_CHECK_MODULES([LIBXML2], [libxml-2.0], [ ac_cv_libxml2=yes LTLIBXML2=${LIBXML2_LIBS} LIBXML2=${LIBXML2_LIBS} ],[]) ]) AM_CONDITIONAL(HAVE_LIBXML2, [test "${ac_cv_libxml2}" = "yes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBXML2],[ AC_REQUIRE([_PANDORA_SEARCH_LIBXML2]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBXML2],[ AC_REQUIRE([_PANDORA_SEARCH_LIBXML2]) AS_IF([test "x${ac_cv_libxml2}" = "xno"], AC_MSG_ERROR([libxml2 is required for ${PACKAGE}. On Debian systems this is found in libxml2-dev. On RedHat, libxml2-devel.])) ]) pandora-build-0.171.1/m4/pandora_cstdint.m40000644000175000017500000000227511506166014015267 00000000000000# We check two things: where the include file is for cstdint. We # include AC_TRY_COMPILE for all the combinations we've seen in the # wild. We define one of HAVE_CSTDINT or HAVE_TR1_CSTDINT or # HAVE_BOOST_CSTDINT depending # on location. AC_DEFUN([PANDORA_CXX_CSTDINT], [AC_MSG_CHECKING(the location of cstdint) AC_LANG_PUSH(C++) save_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${CXX_STANDARD} ${CXXFLAGS}" ac_cv_cxx_cstdint="" for location in tr1/cstdint boost/cstdint cstdint; do if test -z "$ac_cv_cxx_cstdint"; then AC_TRY_COMPILE([#include <$location>], [uint32_t t], [ac_cv_cxx_cstdint="<$location>";]) fi done AC_LANG_POP() CXXFLAGS="${save_CXXFLAGS}" if test -n "$ac_cv_cxx_cstdint"; then AC_MSG_RESULT([$ac_cv_cxx_cstdint]) else AC_DEFINE([__STDC_CONSTANT_MACROS],[1],[Use STDC Constant Macros in C++]) AC_DEFINE([__STDC_FORMAT_MACROS],[1],[Use STDC Format Macros in C++]) ac_cv_cxx_cstdint="" AC_MSG_RESULT() AC_MSG_WARN([Could not find a cstdint header.]) fi AC_DEFINE_UNQUOTED(CSTDINT_H,$ac_cv_cxx_cstdint, [the location of ]) ]) pandora-build-0.171.1/m4/pandora_have_libtokyocabinet.m40000644000175000017500000000362611506166014020005 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Provides support for finding libtokyocabinet. dnl LIBTOKYOCABINET_CFLAGS will be set, in addition to LIBTOKYOCABINET and LTLIBTOKYOCABINET AC_DEFUN([_PANDORA_SEARCH_LIBTOKYOCABINET],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libtokyocabinet dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libtokyocabinet], [AS_HELP_STRING([--disable-libtokyocabinet], [Build with libtokyocabinet support @<:@default=on@:>@])], [ac_enable_libtokyocabinet="$enableval"], [ac_enable_libtokyocabinet="yes"]) AS_IF([test "x$ac_enable_libtokyocabinet" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(tokyocabinet,,[ #include #include ],[ const char *test= tcversion; bool ret= tcadboptimize(NULL, "params"); ]) ],[ ac_cv_libtokyocabinet="no" ]) AS_IF([test "${ac_cv_libtokyocabinet}" = "no" -a "${ac_enable_libtokyocabinet}" = "yes"],[ PKG_CHECK_MODULES([LIBTOKYOCABINET], [libtokyocabinet >= 1.4.15], [ ac_cv_libtokyocabinet=yes LTLIBTOKYOCABINET=${LIBTOKYOCABINET_LIBS} LIBTOKYOCABINET=${LIBTOKYOCABINET_LIBS} ],[test x = y]) ]) AM_CONDITIONAL(HAVE_LIBTOKYOCABINET, [test "${ac_cv_libtokyocabinet}" = "yes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBTOKYOCABINET],[ AC_REQUIRE([_PANDORA_SEARCH_LIBTOKYOCABINET]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBTOKYOCABINET],[ AC_REQUIRE([_PANDORA_SEARCH_LIBTOKYOCABINET]) AS_IF([test "x${ac_cv_libtokyocabinet}" = "xno"], AC_MSG_ERROR([libtokyocabinet is required for ${PACKAGE}. On Debian systems this is found in libtokyocabinet-dev. On RedHat, in tokyocabinet-devel.])) ]) pandora-build-0.171.1/m4/pandora_check_compiler_version.m40000644000175000017500000000171411506166014020330 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([PANDORA_CHECK_C_VERSION],[ dnl Print version of C compiler AC_MSG_CHECKING("C Compiler version--$GCC") AS_IF([test "$GCC" = "yes"],[ CC_VERSION=`$CC --version | sed 1q` ],[AS_IF([test "$SUNCC" = "yes"],[ CC_VERSION=`$CC -V 2>&1 | sed 1q` ],[ CC_VERSION="" ]) ]) AC_MSG_RESULT("$CC_VERSION") AC_SUBST(CC_VERSION) ]) AC_DEFUN([PANDORA_CHECK_CXX_VERSION], [ dnl Print version of CXX compiler AC_MSG_CHECKING("C++ Compiler version") AS_IF([test "$GCC" = "yes"],[ CXX_VERSION=`$CXX --version | sed 1q` ],[AS_IF([test "$SUNCC" = "yes"],[ CXX_VERSION=`$CXX -V 2>&1 | sed 1q` ],[ CXX_VERSION="" ]) ]) AC_MSG_RESULT("$CXX_VERSION") AC_SUBST(CXX_VERSION) ]) pandora-build-0.171.1/m4/pandora_with_perl.m40000644000175000017500000000505411506166014015612 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl pandora-build: A pedantic build system dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl From Monty Taylor AC_DEFUN([PANDORA_WITH_PERL], [ AC_ARG_WITH([perl], [AS_HELP_STRING([--with-perl], [Build Perl Bindings @<:@default=yes@:>@])], [with_perl=$withval], [with_perl=yes]) AC_ARG_WITH([perl-arch], [AS_HELP_STRING([--with-perl-arch], [Install Perl bindings into system location @<:@default=no@:>@])], [with_perl_arch=$withval], [with_perl_arch=no]) AS_IF([test "x$with_perl" != "xno"],[ AS_IF([test "x$with_perl" != "xyes"], [ac_chk_perl=$with_perl], [ac_chk_perl=perl]) AC_CHECK_PROGS(PERL,$ac_chk_perl) ]) AS_IF([test "x$PERL" != "x"],[ AC_CACHE_CHECK([for Perl include path],[pandora_cv_perl_include],[ pandora_cv_perl_include=`$PERL -MConfig -e 'print $Config{archlib};'` pandora_cv_perl_include="${pandora_cv_perl_include}/CORE" ]) AC_CACHE_CHECK([for Perl CPPFLAGS],[pandora_cv_perl_cppflags],[ pandora_cv_perl_cppflags=`$PERL -MConfig -e 'print $Config{cppflags};'` pandora_cv_perl_cppflags="${pandora_cv_perl_cppflags}" ]) PERL_CPPFLAGS="-I${pandora_cv_perl_include} ${pandora_cv_perl_cppflags}" AC_CACHE_CHECK([for Perl development headers], [pandora_cv_perl_dev],[ save_CPPFLAGS="${CPPFLAGS}" CPPFLAGS="${CPPFLAGS} ${PERL_CPPFLAGS}" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #include #include "EXTERN.h" #include "perl.h" #include "XSUB.h" ]])], [pandora_cv_perl_dev=yes], [pandora_cv_perl_dev=no]) CPPFLAGS="${save_CPPFLAGS}" ]) AS_IF([test "${pandora_cv_perl_dev}" = "no"], [with_perl=no]) AC_CACHE_CHECK([for Perl install location], [pandora_cv_perl_archdir],[ AS_IF([test "${with_perl_arch}" = "no"],[ pandora_cv_perl_archdir=`$PERL -MConfig -e 'print $Config{sitearch}'` ],[ pandora_cv_perl_archdir=`$PERL -MConfig -e 'print $Config{archlib}'` ]) pandora_cv_perl_archdir="${pandora_cv_perl_archdir}" ]) PERL_ARCHDIR="${pandora_cv_perl_archdir}" ]) AC_SUBST([PERL_CPPFLAGS]) AC_SUBST([PERL_ARCHDIR]) AM_CONDITIONAL(BUILD_PERL, [test "$with_perl" != "no"]) ]) pandora-build-0.171.1/m4/pandora_have_libboost_regex.m40000644000175000017500000000315211506166014017624 00000000000000dnl Copyright (C) 2010 Andrew Hutchings dnl This file is free software; Andrew Hutchings dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_BOOST_REGEX],[ AC_REQUIRE([AC_LIB_PREFIX]) AC_REQUIRE([ACX_PTHREAD]) dnl -------------------------------------------------------------------- dnl Check for boost::regex dnl -------------------------------------------------------------------- save_CFLAGS="${CFLAGS}" save_CXXFLAGS="${CXXFLAGS}" CFLAGS="${PTHREAD_CFLAGS} ${CFLAGS}" CXXFLAGS="${PTHREAD_CFLAGS} ${CXXFLAGS}" AC_LANG_PUSH(C++) AC_LIB_HAVE_LINKFLAGS(boost_regex-mt,,[ #include ],[ boost::regex test_regex("drizzle"); ]) AS_IF([test "x${ac_cv_libboost_regex_mt}" = "xno"],[ AC_LIB_HAVE_LINKFLAGS(boost_regex,,[ #include ],[ boost::regex test_regex("drizzle"); ]) ]) AC_LANG_POP() CFLAGS="${save_CFLAGS}" CXXFLAGS="${save_CXXFLAGS}" AM_CONDITIONAL(HAVE_BOOST_REGEX, [test "x${ac_cv_libboost_regex}" = "xyes" -o "x${ac_cv_libboost_regex_mt}" = "xyes"]) BOOST_LIBS="${BOOST_LIBS} ${LTLIBBOOST_REGEX_MT} ${LTLIBBOOST_REGEX}" AC_SUBST(BOOST_LIBS) ]) AC_DEFUN([PANDORA_HAVE_BOOST_REGEX],[ PANDORA_HAVE_BOOST($1) _PANDORA_SEARCH_BOOST_REGEX($1) ]) AC_DEFUN([PANDORA_REQUIRE_BOOST_REGEX],[ PANDORA_REQUIRE_BOOST($1) _PANDORA_SEARCH_BOOST_REGEX($1) AS_IF([test "x${ac_cv_libboost_regex}" = "xno" -a "x${ac_cv_libboost_regex_mt}" = "xno"], AC_MSG_ERROR([boost::regex is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_have_sasl.m40000644000175000017500000000750211506166014015562 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_SASL],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for sasl dnl -------------------------------------------------------------------- AC_ARG_ENABLE([sasl], [AS_HELP_STRING([--disable-sasl], [Build with sasl support @<:@default=on@:>@])], [ac_enable_sasl="$enableval"], [ac_enable_sasl="yes"]) AS_IF([test "x$ac_enable_sasl" = "xyes"], [ AC_LIB_HAVE_LINKFLAGS(sasl,,[ #include #include ],[ sasl_server_init(NULL, NULL); ]) AS_IF([test "x${ac_cv_libsasl}" != "xyes" ], [ AC_LIB_HAVE_LINKFLAGS(sasl2,,[ #include #include ],[ sasl_server_init(NULL, NULL); ]) HAVE_LIBSASL="$HAVE_LIBSASL2" LIBSASL="$LIBSASL2" LIBSASL_PREFIX="$LIBSASL2_PREFIX" LTLIBSASL="$LT_LIBSASL2" ]) ]) AS_IF([test "x${ac_cv_libsasl}" = "xyes" -o "x${ac_cv_libsasl2}" = "xyes"], [ac_cv_sasl=yes], [ac_cv_sasl=no]) AM_CONDITIONAL(HAVE_LIBSASL, [test "x${ac_cv_libsasl}" = "xyes"]) AM_CONDITIONAL(HAVE_LIBSASL2, [test "x${ac_cv_libsasl2}" = "xyes"]) AM_CONDITIONAL(HAVE_SASL, [test "x${ac_cv_sasl}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_SASL],[ AC_REQUIRE([_PANDORA_SEARCH_SASL]) ]) AC_DEFUN([PANDORA_REQUIRE_SASL],[ AC_REQUIRE([_PANDORA_SEARCH_SASL]) AS_IF([test "x${ac_cv_sasl}" = "xno"], AC_MSG_ERROR([SASL (libsasl or libsasl2) is required for ${PACKAGE}])) ]) AC_DEFUN([_PANDORA_SEARCH_LIBSASL],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libsasl dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libsasl], [AS_HELP_STRING([--disable-libsasl], [Build with libsasl support @<:@default=on@:>@])], [ac_enable_libsasl="$enableval"], [ac_enable_libsasl="yes"]) AS_IF([test "x$ac_enable_libsasl" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(sasl,,[ #include #include ],[ sasl_server_init(NULL, NULL); ]) ],[ ac_cv_libsasl="no" ]) AM_CONDITIONAL(HAVE_LIBSASL, [test "x${ac_cv_libsasl}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBSASL],[ AC_REQUIRE([_PANDORA_SEARCH_LIBSASL]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBSASL],[ AC_REQUIRE([_PANDORA_SEARCH_LIBSASL]) AS_IF([test "x${ac_cv_libsasl}" = "xno"], AC_MSG_ERROR([libsasl is required for ${PACKAGE}])) ]) AC_DEFUN([_PANDORA_SEARCH_LIBSASL2],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libsasl2 dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libsasl2], [AS_HELP_STRING([--disable-libsasl2], [Build with libsasl2 support @<:@default=on@:>@])], [ac_enable_libsasl2="$enableval"], [ac_enable_libsasl2="yes"]) AS_IF([test "x$ac_enable_libsasl2" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(sasl2,,[ #include #include ],[ sasl2_server_init(NULL, NULL); ]) ],[ ac_cv_libsasl2="no" ]) AM_CONDITIONAL(HAVE_LIBSASL2, [test "x${ac_cv_libsasl2}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBSASL2],[ AC_REQUIRE([_PANDORA_SEARCH_LIBSASL2]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBSASL2],[ AC_REQUIRE([_PANDORA_SEARCH_LIBSASL2]) AS_IF([test "x${ac_cv_libsasl2}" = "xno"], AC_MSG_ERROR([libsasl2 is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_stl_hash.m40000644000175000017500000000647411506166014015431 00000000000000# We check two things: where the include file is for unordered_map, and # what namespace unordered_map lives in within that include file. We # include AC_COMPILE_IFELSE for all the combinations we've seen in the # wild. We define HAVE_UNORDERED_MAP and HAVE_UNORDERED_SET if we have # them, UNORDERED_MAP_H and UNORDERED_SET_H to their location and # UNORDERED_NAMESPACE to be the namespace unordered_map is defined in. AC_DEFUN([PANDORA_CXX_STL_UNORDERED],[ save_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${AM_CXXFLAGS} ${CXXFLAGS}" AC_LANG_PUSH(C++) AC_CACHE_CHECK([for STL unordered_map], [pandora_cv_stl_unordered],[ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[std::unordered_map t]])], [pandora_cv_stl_unordered="yes"], [pandora_cv_stl_unordered="no"])]) AS_IF([test "x${pandora_cv_stl_unordered}" != "xyes"],[ AC_CACHE_CHECK([for tr1 unordered_map], [pandora_cv_tr1_unordered],[ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ /* We put in this define because of a YACC symbol clash in Drizzle. Seriously... I cannot believe the GCC guys defined a piece of the internals of this named IF - and I can't believe that YACC generates a token define called IF. Really? */ #define IF 21; #include ]],[[ std::tr1::unordered_map t ]])], [pandora_cv_tr1_unordered="yes"], [pandora_cv_tr1_unordered="no"])]) ]) AS_IF([test "x${pandora_cv_stl_unordered}" != "xyes" -a "x${pandora_cv_tr1_unordered}" != "xyes"],[ AC_CACHE_CHECK([for boost unordered_map], [pandora_cv_boost_unordered],[ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[boost::unordered_map t]])], [pandora_cv_boost_unordered="yes"], [pandora_cv_boost_unordered="no"])]) ]) CXXFLAGS="${save_CXXFLAGS}" AC_LANG_POP() AS_IF([test "x${pandora_cv_stl_unordered}" = "xyes"],[ AC_DEFINE(HAVE_STD_UNORDERED_MAP, 1, [if the compiler has std::unordered_map]) AC_DEFINE(HAVE_STD_UNORDERED_SET, 1, [if the compiler has std::unordered_set]) pandora_has_unordered=yes ]) AS_IF([test "x${pandora_cv_tr1_unordered}" = "xyes"],[ AC_DEFINE(HAVE_TR1_UNORDERED_MAP, 1, [if the compiler has std::tr1::unordered_map]) AC_DEFINE(HAVE_TR1_UNORDERED_SET, 1, [if the compiler has std::tr1::unordered_set]) pandora_has_unordered=yes ]) AS_IF([test "x${pandora_cv_boost_unordered}" = "xyes"],[ AC_DEFINE(HAVE_BOOST_UNORDERED_MAP, 1, [if the compiler has boost::unordered_map]) AC_DEFINE(HAVE_BOOST_UNORDERED_SET, 1, [if the compiler has boost::unordered_set]) pandora_has_unordered=yes ]) AS_IF([test "x${pandora_has_unordered}" != "xyes"],[ AC_MSG_WARN([could not find an STL unordered_map]) ]) ]) AC_DEFUN([PANDORA_HAVE_CXX_UNORDERED],[ AC_REQUIRE([PANDORA_CXX_STL_UNORDERED]) ]) AC_DEFUN([PANDORA_REQUIRE_CXX_UNORDERED],[ AC_REQUIRE([PANDORA_HAVE_CXX_UNORDERED]) AS_IF([test "x${pandora_has_unordered}" != "xyes"],[ AC_MSG_ERROR([An STL compliant unordered_map is required for ${PACKAGE}. Implementations can be found in Recent versions of gcc and in boost]) ]) ]) pandora-build-0.171.1/m4/pandora_compile_stdcxx_0x.m40000644000175000017500000000522411506166014017250 00000000000000# =========================================================================== # http://autoconf-archive.cryp.to/ac_cxx_compile_stdcxx_0x.html # =========================================================================== # # SYNOPSIS # # AC_CXX_COMPILE_STDCXX_0X # # DESCRIPTION # # Check for baseline language coverage in the compiler for the C++0x # standard. # # LICENSE # # Copyright (C) 2008 Benjamin Kosnik # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. AC_DEFUN([AC_CXX_COMPILE_STDCXX_0X], [ AC_CACHE_CHECK(if g++ supports C++0x features without additional flags, ac_cv_cxx_compile_cxx0x_native, [AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([ template struct check { static_assert(sizeof(int) <= sizeof(T), "not big enough"); }; typedef check> right_angle_brackets; int a; decltype(a) b; typedef check check_type; check_type c; check_type&& cr = c;],, ac_cv_cxx_compile_cxx0x_native=yes, ac_cv_cxx_compile_cxx0x_native=no) AC_LANG_RESTORE ]) AC_CACHE_CHECK(if g++ supports C++0x features with -std=c++0x, ac_cv_cxx_compile_cxx0x_cxx, [AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -std=c++0x" AC_TRY_COMPILE([ template struct check { static_assert(sizeof(int) <= sizeof(T), "not big enough"); }; typedef check> right_angle_brackets; int a; decltype(a) b; typedef check check_type; check_type c; check_type&& cr = c;],, ac_cv_cxx_compile_cxx0x_cxx=yes, ac_cv_cxx_compile_cxx0x_cxx=no) CXXFLAGS="$ac_save_CXXFLAGS" AC_LANG_RESTORE ]) AC_CACHE_CHECK(if g++ supports C++0x features with -std=gnu++0x, ac_cv_cxx_compile_cxx0x_gxx, [AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS -std=gnu++0x" AC_TRY_COMPILE([ template struct check { static_assert(sizeof(int) <= sizeof(T), "not big enough"); }; typedef check> right_angle_brackets; int a; decltype(a) b; typedef check check_type; check_type c; check_type&& cr = c;],, ac_cv_cxx_compile_cxx0x_gxx=yes, ac_cv_cxx_compile_cxx0x_gxx=no) CXXFLAGS="$ac_save_CXXFLAGS" AC_LANG_RESTORE ]) if test "$ac_cv_cxx_compile_cxx0x_native" = yes || test "$ac_cv_cxx_compile_cxx0x_cxx" = yes || test "$ac_cv_cxx_compile_cxx0x_gxx" = yes; then AC_DEFINE(HAVE_STDCXX_0X,,[Define if g++ supports C++0x features. ]) fi ]) pandora-build-0.171.1/m4/pandora_have_libboost_thread.m40000644000175000017500000000312111506166014017755 00000000000000dnl Copyright (C) 2010 Monty Taylor dnl This file is free software; Monty Taylor dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_BOOST_THREAD],[ AC_REQUIRE([AC_LIB_PREFIX]) AC_REQUIRE([ACX_PTHREAD]) dnl -------------------------------------------------------------------- dnl Check for boost::thread dnl -------------------------------------------------------------------- save_CFLAGS="${CFLAGS}" save_CXXFLAGS="${CXXFLAGS}" CFLAGS="${PTHREAD_CFLAGS} ${CFLAGS}" CXXFLAGS="${PTHREAD_CFLAGS} ${CXXFLAGS}" AC_LANG_PUSH(C++) AC_LIB_HAVE_LINKFLAGS(boost_thread-mt,,[ #include ],[ boost::thread id; ]) AS_IF([test "x${ac_cv_libboost_thread_mt}" = "xno"],[ AC_LIB_HAVE_LINKFLAGS(boost_thread,,[ #include ],[ boost::thread id; ]) ]) AC_LANG_POP() CFLAGS="${save_CFLAGS}" CXXFLAGS="${save_CXXFLAGS}" AM_CONDITIONAL(HAVE_BOOST_THREAD, [test "x${ac_cv_libboost_thread}" = "xyes" -o "x${ac_cv_libboost_thread_mt}" = "xyes"]) BOOST_LIBS="${BOOST_LIBS} ${LTLIBBOOST_THREAD_MT} ${LTLIBBOOST_THREAD}" AC_SUBST(BOOST_LIBS) ]) AC_DEFUN([PANDORA_HAVE_BOOST_THREAD],[ PANDORA_HAVE_BOOST($1) _PANDORA_SEARCH_BOOST_THREAD($1) ]) AC_DEFUN([PANDORA_REQUIRE_BOOST_THREAD],[ PANDORA_REQUIRE_BOOST($1) _PANDORA_SEARCH_BOOST_THREAD($1) AS_IF([test "x${ac_cv_libboost_thread}" = "xno" -a "x${ac_cv_libboost_thread_mt}" = "xno"], AC_MSG_ERROR([boost::thread is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_enable_dtrace.m40000644000175000017500000000437011506166014016365 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl --------------------------------------------------------------------------- dnl Macro: PANDORA_ENABLE_DTRACE dnl --------------------------------------------------------------------------- AC_DEFUN([PANDORA_ENABLE_DTRACE],[ AC_ARG_ENABLE([dtrace], [AS_HELP_STRING([--disable-dtrace], [Build with support for the DTRACE. @<:@default=on@:>@])], [ac_cv_enable_dtrace="$enableval"], [ac_cv_enable_dtrace="yes"]) AS_IF([test "$ac_cv_enable_dtrace" = "yes"],[ AC_CHECK_PROGS([DTRACE], [dtrace]) AC_CHECK_HEADERS(sys/sdt.h) AS_IF([test "x$ac_cv_prog_DTRACE" = "xdtrace" -a "x${ac_cv_header_sys_sdt_h}" = "xyes"],[ AC_CACHE_CHECK([if dtrace works],[ac_cv_dtrace_works],[ cat >conftest.d <<_ACEOF provider Example { probe increment(int); }; _ACEOF $DTRACE -h -o conftest.h -s conftest.d 2>/dev/zero AS_IF([test $? -eq 0],[ac_cv_dtrace_works=yes], [ac_cv_dtrace_works=no]) rm -f conftest.h conftest.d ]) AS_IF([test "x$ac_cv_dtrace_works" = "xyes"],[ AC_DEFINE([HAVE_DTRACE], [1], [Enables DTRACE Support]) ]) AC_CACHE_CHECK([if dtrace should instrument object files], [ac_cv_dtrace_needs_objects],[ dnl DTrace on MacOSX does not use -G option cat >conftest.d <<_ACEOF provider Example { probe increment(int); }; _ACEOF $DTRACE -G -o conftest.d.o -s conftest.d 2>/dev/zero AS_IF([test $? -eq 0],[ac_cv_dtrace_needs_objects=yes], [ac_cv_dtrace_needs_objects=no]) rm -f conftest.d.o conftest.d ]) AC_SUBST(DTRACEFLAGS) dnl TODO: test for -G on OSX ac_cv_have_dtrace=yes ])]) AM_CONDITIONAL([HAVE_DTRACE], [test "x$ac_cv_dtrace_works" = "xyes"]) AM_CONDITIONAL([DTRACE_NEEDS_OBJECTS], [test "x$ac_cv_dtrace_needs_objects" = "xyes"]) ]) dnl --------------------------------------------------------------------------- dnl End Macro: PANDORA_ENABLE_DTRACE dnl --------------------------------------------------------------------------- pandora-build-0.171.1/m4/pandora_with_python.m40000644000175000017500000000235111506166014016166 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl pandora-build: A pedantic build system dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl From Monty Taylor AC_DEFUN([PANDORA_WITH_PYTHON], [ AC_ARG_WITH([python], [AS_HELP_STRING([--with-python], [Build Python Bindings @<:@default=yes@:>@])], [with_python=$withval python_requested=$withval ], [with_python=yes python_requested=no ]) AS_IF([test "x$with_python" != "xno"],[ AS_IF([test "x$with_python" != "xyes"],[PYTHON=$with_python]) AM_PATH_PYTHON([2.4],,[with_python="no"]) AC_PYTHON_DEVEL() AS_IF([test "x$pythonexists" = "xno"],[with_python="no"]) ]) AS_IF([test "x$with_python" = "xno" -a "$python_requested" = "yes"],[ AC_MSG_ERROR([Python support was explicity requested, but Python support was not found. Please correct your build environment and try again]) ]) AM_CONDITIONAL(BUILD_PYTHON, [test "$with_python" = "yes"]) ]) pandora-build-0.171.1/m4/pandora_have_boost.m40000644000175000017500000000507211506166014015746 00000000000000dnl Copyright (C) 2010 Monty Taylor dnl This file is free software; Monty Taylor dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_BOOST],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for boost dnl -------------------------------------------------------------------- AC_ARG_ENABLE([boost], [AS_HELP_STRING([--disable-boost], [Build with boost support @<:@default=on@:>@])], [ac_enable_boost="$enableval"], [ac_enable_boost="yes"]) AS_IF([test "x$ac_enable_boost" = "xyes"],[ dnl link against libc because we're just looking for headers here AC_LANG_PUSH(C++) AC_LIB_HAVE_LINKFLAGS(c,, [#include ], [boost::pool<> test_pool(1);], [system]) AC_LANG_POP() ],[ ac_cv_boost="no" ]) AS_IF([test "x$1" != "x"],[ AC_CACHE_CHECK([if boost is recent enough], [pandora_cv_recent_boost],[ pandora_need_boost_version=`echo "$1" | perl -nle '/(\d+)\.(\d+)/; printf "%d%0.3d00", $[]1, $[]2 ;'` AS_IF([test "x${pandora_need_boost_version}" = "x000000"],[ pandora_cv_recent_boost=yes ],[ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #if BOOST_VERSION < ${pandora_need_boost_version} # error boost too old! #endif ]],[[]]) ],[ pandora_cv_recent_boost=yes ],[ pandora_cv_recent_boost=no ]) ]) ]) AS_IF([test "x${pandora_cv_recent_boost}" = "xno"],[ ac_cv_boost=no ]) ]) AS_IF([test "x${ac_gcc_profile_mode}" = "xyes"],[ AC_CACHE_CHECK([if boost is recent enough for GCC Profile Mode], [pandora_cv_boost_profile],[ pandora_need_boost_version=104300 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #if BOOST_VERSION < ${pandora_need_boost_version} # error boost too old! #endif ]],[[]]) ],[ pandora_cv_boost_profile=yes ],[ pandora_cv_boost_profile=no ]) ]) AS_IF([test "x${pandora_cv_boost_profile}" = "xyes"],[ AC_DEFINE([BOOST_DETAIL_NO_CONTAINER_FWD],[1],[Disable forward decl of stl in boost]) ]) ]) AM_CONDITIONAL(HAVE_BOOST, [test "x${ac_cv_boost}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_BOOST],[ _PANDORA_SEARCH_BOOST($1) ]) AC_DEFUN([PANDORA_REQUIRE_BOOST],[ PANDORA_HAVE_BOOST($1) AS_IF([test x$ac_cv_boost = xno], AC_MSG_ERROR([boost is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_flex.m40000644000175000017500000000224511506166014014552 00000000000000dnl Copyright (C) 2010 Monty Taylor dnl Copyright (C) 2010 Hartmut Holzgraefe dnl This file is free software; Monty Taylor and Hartmut Holzgraefe dnl give unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_FLEX],[ dnl -------------------------------------------------------------------- dnl Check for flex dnl -------------------------------------------------------------------- AC_CHECK_PROGS([LEX], ['flex'], [:]) AS_IF([test "x$LEX" = "x:"],[ pandora_have_flex=no LEX='if test -f "$@"; then echo "WARNING: no proper flex binary found, ignoring changes to $<"; exit 0; else echo "ERROR: no proper flex binary found"; exit 1; fi;' ],[ pandora_have_flex=yes ]) AM_CONDITIONAL(HAVE_FLEX, [test "x${pandora_have_flex}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_FLEX],[ AC_REQUIRE([_PANDORA_SEARCH_FLEX]) ]) AC_DEFUN([PANDORA_REQUIRE_FLEX],[ AC_REQUIRE([PANDORA_HAVE_FLEX]) AS_IF([test "x${pandora_have_flex}" = "xno" -a "$pandora_building_from_bzr" = "yes"], AC_MSG_ERROR(["flex is required for ${PACKAGE} to build from a bzr branch"]) ) ]) pandora-build-0.171.1/m4/pandora_have_libdl.m40000644000175000017500000000247511506166014015712 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. #-------------------------------------------------------------------- # Check for libdl #-------------------------------------------------------------------- AC_DEFUN([_PANDORA_SEARCH_LIBDL],[ save_LIBS="$LIBS" LIBS="" AC_CHECK_LIB(dl,dlopen) AC_CHECK_FUNCS(dlopen) LIBDL_LIBS="$LIBS" LIBS="${save_LIBS}" AC_SUBST(LIBDL_LIBS) AM_CONDITIONAL(HAVE_LIBDL, [test "x${ac_cv_func_dlopen}" = "xyes"]) ]) AC_DEFUN([_PANDORA_HAVE_LIBDL],[ AC_ARG_ENABLE([libdl], [AS_HELP_STRING([--disable-libdl], [Build with libdl support @<:@default=on@:>@])], [ac_enable_libdl="$enableval"], [ac_enable_libdl="yes"]) _PANDORA_SEARCH_LIBDL ]) AC_DEFUN([PANDORA_HAVE_LIBDL],[ AC_REQUIRE([_PANDORA_HAVE_LIBDL]) ]) AC_DEFUN([_PANDORA_REQUIRE_LIBDL],[ ac_enable_libdl="yes" _PANDORA_SEARCH_LIBDL AS_IF([test "$ac_cv_func_dlopen" != "yes"],[ AC_MSG_ERROR([libdl/dlopen() is required for ${PACKAGE}. On Debian this can be found in libc6-dev. On RedHat this can be found in glibc-devel.]) ]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBDL],[ AC_REQUIRE([_PANDORA_REQUIRE_LIBDL]) ]) pandora-build-0.171.1/m4/pandora_have_libpqxx.m40000644000175000017500000000232011506166014016300 00000000000000dnl Copyright (C) 2010 Padraig O'Sullivan dnl This file is free software; dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBPQXX],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libpqxx dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libpqxx], [AS_HELP_STRING([--disable-libpqxx], [Build with libpqxx support @<:@default=on@:>@])], [ac_enable_libpqxx="$enableval"], [ac_enable_libpqxx="yes"]) AS_IF([test "x$ac_enable_libpqxx" = "xyes"],[ AC_LANG_PUSH([C++]) AC_LIB_HAVE_LINKFLAGS(pqxx,,[ #include ],[ pqxx::connection conn("dbname=test"); ]) AC_LANG_POP() ],[ ac_cv_libpqxx="no" ]) AM_CONDITIONAL(HAVE_LIBPQXX, [test "x${ac_cv_libpqxx}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBPQXX],[ AC_REQUIRE([_PANDORA_SEARCH_LIBPQXX]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBPQXX],[ AC_REQUIRE([PANDORA_HAVE_LIBPQXX]) AS_IF([test "x$ac_cv_libpqxx" = "xno"],[ AC_MSG_ERROR([libpqxx is required for ${PACKAGE}]) ]) ]) pandora-build-0.171.1/m4/pandora_swig.m40000644000175000017500000000220711506166014014563 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl pandora-build: A pedantic build system dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystem dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl From Monty Taylor AC_DEFUN([PANDORA_SWIG],[ AC_PROG_SWIG(1.3.31) AC_DEFINE_UNQUOTED([SWIG_TYPE_TABLE], [$PACKAGE], [Type Table name for SWIG symbol table]) dnl Have to hard-code /usr/local/include and /usr/include into the path. dnl I hate this. Why is swig sucking me SWIG="$SWIG \${DEFS} -I\${top_srcdir} -I\${top_builddir} -I/usr/local/include -I/usr/include" AC_SUBST([SWIG]) ]) AC_DEFUN([PANDORA_SWIG_PYTHON3],[ AC_REQUIRE([PANDORA_SWIG]) AS_IF([test "x$SWIG" != "x"],[ AC_CACHE_CHECK([if swig supports Python3], [ac_cv_swig_has_python3_], [ AS_IF([$SWIG -python -help 2>&1 | grep py3 > /dev/null], [ac_cv_swig_has_python3_=yes], [ac_cv_swig_has_python3_=no]) ]) ]) ]) pandora-build-0.171.1/m4/pandora_clock_gettime.m40000644000175000017500000000113311506166014016420 00000000000000dnl Copyright (C) 2010 Monty Taylor dnl This file is free software; Monty Taylor dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. #-------------------------------------------------------------------- # Check for clock_gettime #-------------------------------------------------------------------- AC_DEFUN([PANDORA_CLOCK_GETTIME],[ AC_SEARCH_LIBS([clock_gettime],[rt]) AS_IF([test "x${ac_cv_search_clock_gettime}" != "xno"],[ AC_DEFINE([HAVE_CLOCK_GETTIME],[1],[Have a working clock_gettime function]) ]) ]) pandora-build-0.171.1/m4/pandora_with_r.m40000644000175000017500000000151211506166014015104 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl pandora-build: A pedantic build system dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl From Monty Taylor AC_DEFUN([PANDORA_WITH_R],[ dnl Check for GNU R AC_ARG_WITH([r], [AS_HELP_STRING([--with-r], [Build R Bindings @<:@default=yes@:>@])], [with_r=$withval], [with_r=yes]) AS_IF([test "x$with_r" != "xno"],[ PKG_CHECK_MODULES([R], [libR], [ with_r=yes ],[ with_r=no ]) AC_SUBST(R_CFLAGS) AC_SUBST(R_LIBS) ]) AM_CONDITIONAL(BUILD_R, test "$with_r" = "yes") ]) pandora-build-0.171.1/m4/pandora_have_libmysqlclient.m40000644000175000017500000001216311506166014017652 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl Copyright (C) 2010 Monty Taylor dnl This file is free software; Sun Microsystems dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl AC_DEFUN([PANDORA_WITH_MYSQL],[ AC_ARG_WITH([mysql], [AS_HELP_STRING([--with-mysql=PATH], [path to mysql_config binary or mysql prefix dir])], [with_mysql=$withval], [with_mysql=":"]) dnl There are three possibilities: dnl 1) nothing is given: we will search for mysql_config in PATH dnl 2) the location of mysql_config is given: we'll use that to determine dnl 3) a directory argument is given: that will be mysql_base dnl option 1: nothing, we need to insert something into MYSQL_CONFIG AS_IF([test "x$with_mysql" = "x:"],[ AC_CHECK_PROGS(MYSQL_CONFIG,[mysql_config]) ],[ MYSQL_CONFIG="${with_mysql}" ]) AC_CACHE_CHECK([for MySQL Base Location],[pandora_cv_mysql_base],[ dnl option 2: something in MYSQL_CONFIG now, use that to get a base dir AS_IF([test -f "${MYSQL_CONFIG}" -a -x "${MYSQL_CONFIG}"],[ pandora_cv_mysql_base=$(dirname $(MYSQL_CONFIG --include | sed 's/-I//')) ],[ dnl option 1: a directory AS_IF([test -d $with_mysql],[pandora_cv_mysql_base=$with_mysql],[ pandora_cv_mysql_base="not found" ]) ]) ]) ]) AC_DEFUN([_PANDORA_SEARCH_LIBMYSQLCLIENT],[ AC_REQUIRE([AC_LIB_PREFIX]) AC_ARG_ENABLE([libmysqlclient], [AS_HELP_STRING([--disable-libmysqlclient], [Build with libmysqlclient support @<:@default=on@:>@])], [ac_enable_libmysqlclient="$enableval"], [ac_enable_libmysqlclient="yes"]) AS_IF([test "x$ac_enable_libmysqlclient" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(mysqlclient_r,,[ #include ],[ MYSQL mysql; ])],[ ac_cv_libmysqlclient_r="no" ]) AM_CONDITIONAL(HAVE_LIBMYSQLCLIENT, [test "x${ac_cv_libmysqlclient_r}" = "xyes"]) AC_DEFUN([PANDORA_HAVE_LIBMYSQLCLIENT],[ AC_REQUIRE([_PANDORA_SEARCH_LIBMYSQLCLIENT]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBMYSQLCLIENT],[ AC_REQUIRE([PANDORA_HAVE_LIBMYSQLCLIENT]) AS_IF([test "x${ac_cv_libmysqlclient_r}" = "xno"], AC_MSG_ERROR([libmysqlclient_r is required for ${PACKAGE}])) ]) AS_IF([test "x$MYSQL_CONFIG" = "xISDIR"],[ IBASE="-I${with_mysql}" MYSQL_CONFIG="${with_mysql}/scripts/mysql_config" ADDIFLAGS="$IBASE/include " ADDIFLAGS="$ADDIFLAGS $IBASE/storage/ndb/include/ndbapi " ADDIFLAGS="$ADDIFLAGS $IBASE/storage/ndb/include/mgmapi " ADDIFLAGS="$ADDIFLAGS $IBASE/storage/ndb/include " LDFLAGS="-L${with_mysql}/storage/ndb/src/.libs -L${with_mysql}/libmysql_r/.libs/ -L${with_mysql}/mysys/.libs -L${with_mysql}/mysys -L${with_mysql}/strings/.libs -L${with_mysql}/strings " ],[ IBASE=`$MYSQL_CONFIG --include` ADDIFLAGS="" # add regular MySQL C flags ADDCFLAGS=`$MYSQL_CONFIG --cflags` # add NdbAPI specific C flags LDFLAGS="$LDFLAGS "`$MYSQL_CONFIG --libs_r | sed 's/-lmysqlclient_r//'` ]) ADDIFLAGS="$ADDIFLAGS $IBASE/storage/ndb" ADDIFLAGS="$ADDIFLAGS $IBASE/storage/ndb/ndbapi" ADDIFLAGS="$ADDIFLAGS $IBASE/storage/ndb/mgmapi" ADDIFLAGS="$ADDIFLAGS $IBASE/ndb" ADDIFLAGS="$ADDIFLAGS $IBASE/ndb/ndbapi" ADDIFLAGS="$ADDIFLAGS $IBASE/ndb/mgmapi" ADDIFLAGS="$ADDIFLAGS $IBASE" CFLAGS="$CFLAGS $ADDCFLAGS $ADDIFLAGS" CXXFLAGS="$CXXFLAGS $ADDCFLAGS $ADDIFLAGS" MYSQL_INCLUDES="$IBASE $ADDIFLAGS" dnl AC_CHECK_LIB([mysqlclient_r],[safe_mutex_init],,[AC_MSG_ERROR([Can't link against libmysqlclient_r])]) dnl First test to see if we can run with only ndbclient AC_CHECK_LIB([ndbclient],[decimal_bin_size],,[dnl else LDFLAGS="$LDFLAGS -lmysys -ldbug" AC_CHECK_LIB([mysqlclient_r],[safe_mutex_init],,) AC_CHECK_LIB([ndbclient],[ndb_init],,[ AC_MSG_ERROR([Can't link against libndbclient])]) AC_CHECK_LIB([mystrings],[decimal_bin_size],,[ AC_MSG_ERROR([Can't find decimal_bin_size])])]) AC_MSG_CHECKING(for NdbApi headers) AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[int attr=NdbTransaction::Commit; ]])],[ndbapi_found="yes"],[]) AS_IF([test "$ndbapi_found" = "yes"], [AC_MSG_RESULT(found)], [AC_MSG_ERROR([Couldn't find NdbApi.hpp!])]) AC_MSG_CHECKING(for NDB_LE_ThreadConfigLoop) AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[int attr=NDB_LE_ThreadConfigLoop; ]])],[have_cge63="yes"],[]) AS_IF([test "$have_cge63" = "yes"], [AC_MSG_RESULT(found) HAVE_CGE63="-DCGE63" AC_SUBST(HAVE_CGE63)], [AC_MSG_RESULT(missing)]) LDFLAGS="$LDFLAGS $LIBS" MYSQL_MAJOR_VERSION=`$MYSQL_CONFIG --version | sed -e 's/\.//g' -e 's/-//g' -e 's/[A-Za-z]//g' | cut -c1-2` case "$MYSQL_MAJOR_VERSION" in 50) AC_DEFINE(MYSQL_50, [1], [mysql5.0]) ;; 51) AC_DEFINE(MYSQL_51, [1], [mysql5.1]) ;; *) echo "Unsupported version of MySQL Detected!" ;; esac AC_SUBST(MYSQL_MAJOR_VERSION) AC_SUBST(MYSQL_CONFIG) ]) pandora-build-0.171.1/m4/pandora_have_libbdb.m40000644000175000017500000000224411506166014016034 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBBDB],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for bekerely db dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libbdb], [AS_HELP_STRING([--disable-libbdb], [Build with libbdb support @<:@default=on@:>@])], [ac_enable_libbdb="$enableval"], [ac_enable_libbdb="yes"]) AS_IF([test "x$ac_enable_libbdb" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(db,,[ #include ],[ const char *test= DB_VERSION_STRING; ]) ],[ ac_cv_libbdb="no" ]) AM_CONDITIONAL(HAVE_LIBBDB, [test "x${ac_cv_libbdb}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBBDB],[ AC_REQUIRE([_PANDORA_SEARCH_LIBBDB]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBBDB],[ AC_REQUIRE([_PANDORA_SEARCH_LIBBDB]) AS_IF([test "x${ac_cv_libbdb}" = "xno"], AC_MSG_ERROR([libbdb is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_with_memcached.m40000644000175000017500000000247011506166014016555 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_MEMCACHED],[ AC_ARG_WITH([memcached], [AS_HELP_STRING([--with-memcached], [Memcached binary to use for make test])], [ac_cv_with_memcached="$withval"], [ac_cv_with_memcached=memcached]) # just ignore the user if --without-memcached is passed.. it is # only used by make test AS_IF([test "x$ac_cv_with_memcached" = "xno"],[ ac_cv_with_memcached=memcached MEMCACHED_BINARY=memcached ],[ AS_IF([test -f "$ac_cv_with_memcached"],[ MEMCACHED_BINARY=$ac_cv_with_memcached ],[ AC_PATH_PROG([MEMCACHED_BINARY], [$ac_cv_with_memcached], "no") ]) ]) AC_DEFINE_UNQUOTED([MEMCACHED_BINARY], "$MEMCACHED_BINARY", [Name of the memcached binary used in make test]) AM_CONDITIONAL([HAVE_MEMCACHED],[test "x$MEMCACHED_BINARY" != "xno"]) ]) AC_DEFUN([PANDORA_HAVE_MEMCACHED],[ AC_REQUIRE([_PANDORA_SEARCH_MEMCACHED]) ]) AC_DEFUN([PANDORA_REQUIRE_MEMCACHED],[ AC_REQUIRE([PANDORA_HAVE_MEMCACHED]) AS_IF([test "x$MEMCACHED_BINARY" = "xno"],[ AC_MSG_ERROR(["could not find memcached binary"]) ]) ]) pandora-build-0.171.1/m4/pandora_have_libhaildb.m40000644000175000017500000000252511506166014016532 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBHAILDB],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libhaildb dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libhaildb], [AS_HELP_STRING([--disable-libhaildb], [Build with libhaildb support @<:@default=on@:>@])], [ac_enable_libhaildb="$enableval"], [ac_enable_libhaildb="yes"]) AS_IF([test "x$ac_enable_libhaildb" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(haildb,,[ #include ],[ ib_set_panic_handler(NULL); ]) AS_IF([test "x${ac_cv_libhaildb}" = "xyes"],[ AC_DEFINE([HAVE_HAILDB_H],[1],[Do we have haildb.h]) ]) ],[ ac_cv_libhaildb="no" ]) AM_CONDITIONAL(HAVE_LIBHAILDB, [test "x${ac_cv_libhaildb}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBHAILDB],[ AC_REQUIRE([_PANDORA_SEARCH_LIBHAILDB]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBHAILDB],[ AC_REQUIRE([PANDORA_HAVE_LIBHAILDB]) AS_IF([test "x${ac_cv_libhaildb}" = "xno"], AC_MSG_ERROR([libhaildb 2.2.0 or later is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_have_libreadline.m40000644000175000017500000001561511506166014017076 00000000000000# # SYNOPSIS # # PANDORA_HAVE_LIBREADLINE # # DESCRIPTION # # Searches for a readline compatible library. If found, defines # `HAVE_LIBREADLINE'. If the found library has the `add_history' # function, sets also `HAVE_READLINE_HISTORY'. Also checks for the # locations of the necessary include files and sets `HAVE_READLINE_H' # or `HAVE_READLINE_READLINE_H' and `HAVE_READLINE_HISTORY_H' or # 'HAVE_HISTORY_H' if the corresponding include files exists. # # The libraries that may be readline compatible are `libedit', # `libeditline' and `libreadline'. Sometimes we need to link a # termcap library for readline to work, this macro tests these cases # too by trying to link with `libtermcap', `libcurses' or # `libncurses' before giving up. # # Here is an example of how to use the information provided by this # macro to perform the necessary includes or declarations in a C # file: # # #ifdef HAVE_LIBREADLINE # # if defined(HAVE_READLINE_READLINE_H) # # include # # elif defined(HAVE_READLINE_H) # # include # # else /* !defined(HAVE_READLINE_H) */ # extern char *readline (); # # endif /* !defined(HAVE_READLINE_H) */ # char *cmdline = NULL; # #else /* !defined(HAVE_READLINE_READLINE_H) */ # /* no readline */ # #endif /* HAVE_LIBREADLINE */ # # #ifdef HAVE_READLINE_HISTORY # # if defined(HAVE_READLINE_HISTORY_H) # # include # # elif defined(HAVE_HISTORY_H) # # include # # else /* !defined(HAVE_HISTORY_H) */ # extern void add_history (); # extern int write_history (); # extern int read_history (); # # endif /* defined(HAVE_READLINE_HISTORY_H) */ # /* no history */ # #endif /* HAVE_READLINE_HISTORY */ # # LAST MODIFICATION # # 2009-11-17 # # Based on VL_LIB_READLINE from Ville Laurikari # # COPYLEFT # # Copyright (C) 2009 Monty Taylor # Copyright (C) 2002 Ville Laurikari # # Copying and distribution of this file, with or without # modification, are permitted in any medium without royalty provided # the copyright notice and this notice are preserved. AC_DEFUN([PANDORA_CHECK_TIOCGWINSZ],[ AC_CACHE_CHECK([for TIOCGWINSZ in sys/ioctl.h], [pandora_cv_tiocgwinsz_in_ioctl],[ AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #include #include ]],[[ int x= TIOCGWINSZ; ]]) ],[ pandora_cv_tiocgwinsz_in_ioctl=yes ],[ pandora_cv_tiocgwinsz_in_ioctl=no ]) ]) AS_IF([test "$pandora_cv_tiocgwinsz_in_ioctl" = "yes"],[ AC_DEFINE([GWINSZ_IN_SYS_IOCTL], [1], [READLINE: your system defines TIOCGWINSZ in sys/ioctl.h.]) ]) ]) AC_DEFUN([PANDORA_CHECK_RL_COMPENTRY], [ AC_CACHE_CHECK([defined rl_compentry_func_t], [pandora_cv_rl_compentry],[ AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #include "stdio.h" #include "readline/readline.h" ]],[[ rl_compentry_func_t *func2= (rl_compentry_func_t*)0; ]]) ],[ pandora_cv_rl_compentry=yes ],[ pandora_cv_rl_compentry=no ]) ]) AS_IF([test "$pandora_cv_rl_compentry" = "yes"],[ AC_DEFINE([HAVE_RL_COMPENTRY], [1], [Does system provide rl_compentry_func_t]) ]) save_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${AM_CXXFLAGS} ${CXXFLAGS}" AC_LANG_PUSH(C++) AC_CACHE_CHECK([rl_compentry_func_t works], [pandora_cv_rl_compentry_works],[ AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #include "stdio.h" #include "readline/readline.h" ]],[[ rl_completion_entry_function= (rl_compentry_func_t*)NULL; ]]) ],[ pandora_cv_rl_compentry_works=yes ],[ pandora_cv_rl_compentry_works=no ]) ]) AS_IF([test "$pandora_cv_rl_compentry_works" = "yes"],[ AC_DEFINE([HAVE_WORKING_RL_COMPENTRY], [1], [Does system provide an rl_compentry_func_t that is usable]) ]) CXXFLAGS="${save_CXXFLAGS}" AC_LANG_POP() ]) AC_DEFUN([PANDORA_CHECK_RL_COMPLETION_FUNC], [ AC_CACHE_CHECK([defined rl_completion_func_t], [pandora_cv_rl_completion],[ AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #include "stdio.h" #include "readline/readline.h" ]],[[ rl_completion_func_t *func1= (rl_completion_func_t*)0; ]]) ],[ pandora_cv_rl_completion=yes ],[ pandora_cv_rl_completion=no ]) ]) AS_IF([test "$pandora_cv_rl_completion" = "yes"],[ AC_DEFINE([HAVE_RL_COMPLETION], [1], [Does system provide rl_completion_func_t]) ]) ]) AC_DEFUN([_PANDORA_SEARCH_LIBREADLINE], [ save_LIBS="${LIBS}" LIBS="" AC_CACHE_CHECK([for a readline compatible library], ac_cv_libreadline, [ ORIG_LIBS="$LIBS" for readline_lib in readline edit editline; do for termcap_lib in "" termcap curses ncurses; do if test -z "$termcap_lib"; then TRY_LIB="-l$readline_lib" else TRY_LIB="-l$readline_lib -l$termcap_lib" fi LIBS="$ORIG_LIBS $TRY_LIB" AC_TRY_LINK_FUNC(readline, ac_cv_libreadline="$TRY_LIB") if test -n "$ac_cv_libreadline"; then break fi done if test -n "$ac_cv_libreadline"; then break fi done if test -z "$ac_cv_libreadline"; then ac_cv_libreadline="no" LIBS="$ORIG_LIBS" fi ]) if test "$ac_cv_libreadline" != "no"; then AC_DEFINE(HAVE_LIBREADLINE, 1, [Define if you have a readline compatible library]) AC_CHECK_HEADERS(readline.h readline/readline.h) AC_CACHE_CHECK([whether readline supports history], ac_cv_libreadline_history, [ ac_cv_libreadline_history="no" AC_TRY_LINK_FUNC(add_history, ac_cv_libreadline_history="yes") ]) if test "$ac_cv_libreadline_history" = "yes"; then AC_DEFINE(HAVE_READLINE_HISTORY, 1, [Define if your readline library has \`add_history']) AC_CHECK_HEADERS(history.h readline/history.h) fi fi PANDORA_CHECK_RL_COMPENTRY PANDORA_CHECK_RL_COMPLETION_FUNC PANDORA_CHECK_TIOCGWINSZ READLINE_LIBS="${LIBS}" LIBS="${save_LIBS}" AC_SUBST(READLINE_LIBS) AM_CONDITIONAL(HAVE_LIBREADLINE, [test "x${ac_cv_libreadline}" = "xyes"]) ]) AC_DEFUN([_PANDORA_HAVE_LIBREADLINE],[ AC_ARG_ENABLE([libreadline], [AS_HELP_STRING([--disable-libreadline], [Build with libreadline support @<:@default=on@:>@])], [ac_enable_libreadline="$enableval"], [ac_enable_libreadline="yes"]) _PANDORA_SEARCH_LIBREADLINE ]) AC_DEFUN([PANDORA_HAVE_LIBREADLINE],[ AC_REQUIRE([_PANDORA_HAVE_LIBREADLINE]) ]) AC_DEFUN([_PANDORA_REQUIRE_LIBREADLINE],[ ac_enable_libreadline="yes" _PANDORA_SEARCH_LIBREADLINE AS_IF([test "x$ac_cv_libreadline" = "xno"], AC_MSG_ERROR([libreadline is required for ${PACKAGE}. On Debian this can be found in libreadline5-dev. On RedHat this can be found in readline-devel.])) ]) AC_DEFUN([PANDORA_REQUIRE_LIBREADLINE],[ AC_REQUIRE([_PANDORA_REQUIRE_LIBREADLINE]) ]) pandora-build-0.171.1/m4/lib-ld.m40000644000175000017500000000653111505040437013254 00000000000000# lib-ld.m4 serial 3 (gettext-0.13) dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(acl_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) pandora-build-0.171.1/m4/pandora_have_libboost_date_time.m40000644000175000017500000000277011506166014020452 00000000000000dnl Copyright (C) 2010 Monty Taylor dnl This file is free software; Monty Taylor dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_BOOST_DATE_TIME],[ AC_REQUIRE([AC_LIB_PREFIX]) AC_REQUIRE([ACX_PTHREAD]) dnl -------------------------------------------------------------------- dnl Check for Boost.Date_Time dnl -------------------------------------------------------------------- AC_LANG_PUSH(C++) AC_LIB_HAVE_LINKFLAGS(boost_date_time-mt,,[ #include ],[ boost::gregorian::date weekstart(2002,2,1); ]) AS_IF([test "x${ac_cv_libboost_date_time_mt}" = "xno"],[ AC_LIB_HAVE_LINKFLAGS(boost_date_time,,[ #include ],[ boost::gregorian::date weekstart(2002,2,1); ]) ]) AC_LANG_POP() AM_CONDITIONAL(HAVE_BOOST_DATE_TIME, [test "x${ac_cv_libboost_date_time}" = "xyes" -o "x${ac_cv_libboost_date_time_mt}" = "xyes"]) BOOST_LIBS="${BOOST_LIBS} ${LTLIBBOOST_DATE_TIME_MT} ${LTLIBBOOST_DATE_TIME}" AC_SUBST(BOOST_LIBS) ]) AC_DEFUN([PANDORA_HAVE_BOOST_DATE_TIME],[ PANDORA_HAVE_BOOST($1) _PANDORA_SEARCH_BOOST_DATE_TIME($1) ]) AC_DEFUN([PANDORA_REQUIRE_BOOST_DATE_TIME],[ PANDORA_REQUIRE_BOOST($1) _PANDORA_SEARCH_BOOST_DATE_TIME($1) AS_IF([test "x${ac_cv_libboost_date_time}" = "xno" -a "x${ac_cv_libboost_date_time_mt}" = "xno"], AC_MSG_ERROR([Boost.Date_Time is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_have_libboost_options.m40000644000175000017500000000325011506166014020204 00000000000000dnl Copyright (C) 2010 Monty Taylor dnl This file is free software; Monty Taylor dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_BOOST_PROGRAM_OPTIONS],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for boost::program_options dnl -------------------------------------------------------------------- AC_LANG_PUSH(C++) AC_LIB_HAVE_LINKFLAGS(boost_program_options-mt,,[ #include ],[ boost::program_options::options_description d; d.add_options()("a","some option"); ]) AS_IF([test "x${ac_cv_libboost_program_options_mt}" = "xno"],[ AC_LIB_HAVE_LINKFLAGS(boost_program_options,,[ #include ],[ boost::program_options::options_description d; d.add_options()("a","some option"); ]) ]) AC_LANG_POP() AM_CONDITIONAL(HAVE_BOOST_PROGRAM_OPTIONS, [test "x${ac_cv_libboost_program_options}" = "xyes" -o "x${ac_cv_libboost_program_options_mt}" = "xyes"]) BOOST_LIBS="${BOOST_LIBS} ${LTLIBBOOST_PROGRAM_OPTIONS} ${LTLIBBOOST_PROGRAM_OPTIONS_MT}" AC_SUBST(BOOST_LIBS) ]) AC_DEFUN([PANDORA_HAVE_BOOST_PROGRAM_OPTIONS],[ PANDORA_HAVE_BOOST($1) _PANDORA_SEARCH_BOOST_PROGRAM_OPTIONS($1) ]) AC_DEFUN([PANDORA_REQUIRE_BOOST_PROGRAM_OPTIONS],[ PANDORA_REQUIRE_BOOST($1) _PANDORA_SEARCH_BOOST_PROGRAM_OPTIONS($1) AS_IF([test "x${ac_cv_libboost_program_options}" = "xno" -a "x${ac_cv_libboost_program_options_mt}" = "xno"], AC_MSG_ERROR([boost::program_options is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_use_pipe.m40000644000175000017500000000201511506166014015420 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl pandora-build: A pedantic build system dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystem dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl From Monty Taylor dnl dnl Test if we can Use -pipe to avoid making temp files during the compile. dnl Should speed up compile on slower disks AC_DEFUN([PANDORA_USE_PIPE],[ AS_IF([test "$GCC" = "yes"],[ AC_CACHE_CHECK([for working -pipe], [pandora_cv_use_pipe], [ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ #include int main(int argc, char** argv) { (void) argc; (void) argv; return 0; } ]])], [pandora_cv_use_pipe=yes], [pandora_cv_use_pipe=no]) ]) AS_IF([test "$pandora_cv_use_pipe" = "yes"],[ AM_CFLAGS="-pipe ${AM_CFLAGS}" AM_CXXFLAGS="-pipe ${AM_CXXFLAGS}" ]) ]) ]) pandora-build-0.171.1/m4/pandora_have_protobuf.m40000644000175000017500000000554711506166014016467 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl pandora-build: A pedantic build system dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl From Monty Taylor dnl -------------------------------------------------------------------- dnl Check for Google Proto Buffers dnl -------------------------------------------------------------------- AC_DEFUN([_PANDORA_SEARCH_LIBPROTOBUF],[ AC_REQUIRE([PANDORA_HAVE_PTHREAD]) AC_LANG_PUSH([C++]) save_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${PTHREAD_CFLAGS} ${CXXFLAGS}" AC_LIB_HAVE_LINKFLAGS(protobuf,, [#include ], [google::protobuf::FileDescriptor* file;], [system]) CXXFLAGS="${PTHREAD_CFLAGS} ${save_CXXFLAGS}" LIBPROTOBUF="${LIBPROTOBUF} ${PTHREAD_LIBS}" LTLIBPROTOBUF="${LTLIBPROTOBUF} ${PTHREAD_LIBS}" AC_LANG_POP() ]) AC_DEFUN([PANDORA_HAVE_LIBPROTOBUF],[ AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBPROTOBUF],[ AC_REQUIRE([PANDORA_HAVE_LIBPROTOBUF]) AS_IF([test x$ac_cv_libprotobuf = xno], AC_MSG_ERROR([libprotobuf is required for ${PACKAGE}. On Debian this can be found in libprotobuf-dev. On RedHat this can be found in protobuf-devel.])) ]) AC_DEFUN([PANDORA_PROTOBUF_REQUIRE_VERSION],[ AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF]) p_recent_ver=$1 p_recent_ver_major=`echo $p_recent_ver | cut -f1 -d.` p_recent_ver_minor=`echo $p_recent_ver | cut -f2 -d.` p_recent_ver_patch=`echo $p_recent_ver | cut -f3 -d.` p_recent_ver_hex=`printf "%d%03d%03d" $p_recent_ver_major $p_recent_ver_minor $p_recent_ver_patch` AC_LANG_PUSH([C++]) AC_CACHE_CHECK([for protobuf >= $p_recent_ver], [drizzle_cv_protobuf_recent], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #if GOOGLE_PROTOBUF_VERSION < $p_recent_ver_hex # error Your version of Protobuf is too old #endif ]])], [drizzle_cv_protobuf_recent=yes], [drizzle_cv_protobuf_recent=no])]) AS_IF([test "$drizzle_cv_protobuf_recent" = "no"],[ AC_MSG_ERROR([Your version of Google Protocol Buffers is too old. ${PACKAGE} requires at least version $p_recent_ver]) ]) AC_LANG_POP() ]) AC_DEFUN([_PANDORA_SEARCH_PROTOC],[ AC_REQUIRE([_PANDORA_SEARCH_LIBPROTOBUF]) AC_PATH_PROG([PROTOC],[protoc],[no],[$LIBPROTOBUF_PREFIX/bin:$PATH]) ]) AC_DEFUN([PANDORA_HAVE_PROTOC],[ AC_REQUIRE([_PANDORA_SEARCH_PROTOC]) ]) AC_DEFUN([PANDORA_REQUIRE_PROTOC],[ AC_REQUIRE([PANDORA_HAVE_PROTOC]) AS_IF([test "x$PROTOC" = "xno"],[ AC_MSG_ERROR([Couldn't find the protoc compiler. On Debian this can be found in protobuf-compiler. On RedHat this can be found in protobuf-compiler.]) ]) ]) pandora-build-0.171.1/m4/pandora_header_stdcxx_98.m40000644000175000017500000000403711506166014016762 00000000000000# =========================================================================== # http://autoconf-archive.cryp.to/ac_cxx_header_stdcxx_98.html # =========================================================================== # # SYNOPSIS # # AC_CXX_HEADER_STDCXX_98 # # DESCRIPTION # # Check for complete library coverage of the C++1998/2003 standard. # # LICENSE # # Copyright (C) 2008 Benjamin Kosnik # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. AC_DEFUN([AC_CXX_HEADER_STDCXX_98], [ AC_CACHE_CHECK(for ISO C++ 98 include files, ac_cv_cxx_stdcxx_98, [AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include ],, ac_cv_cxx_stdcxx_98=yes, ac_cv_cxx_stdcxx_98=no) AC_LANG_RESTORE ]) if test "$ac_cv_cxx_stdcxx_98" = yes; then AC_DEFINE(STDCXX_98_HEADERS,,[Define if ISO C++ 1998 header files are present. ]) fi ]) pandora-build-0.171.1/m4/pandora_have_libvbucket.m40000644000175000017500000000236411506166014016753 00000000000000dnl Copyright (C) 2010 NorthScale dnl This file is free software; NorthScale dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBVBUCKET],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libvbucket dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libvbucket], [AS_HELP_STRING([--disable-libvbucket], [Build with libvbucket support @<:@default=on@:>@])], [ac_enable_libvbucket="$enableval"], [ac_enable_libvbucket="yes"]) AS_IF([test "x$ac_enable_libvbucket" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(vbucket,,[ #include ],[ VBUCKET_CONFIG_HANDLE config = vbucket_config_parse_file(NULL); ]) ],[ ac_cv_libvbucket="no" ]) AM_CONDITIONAL(HAVE_LIBVBUCKET, [test "x${ac_cv_libvbucket}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBVBUCKET],[ AC_REQUIRE([_PANDORA_SEARCH_LIBVBUCKET]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBVBUCKET],[ AC_REQUIRE([PANDORA_HAVE_LIBVBUCKET]) AS_IF([test x$ac_cv_libvbucket = xno], AC_MSG_ERROR([libvbucket is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_shared_ptr.m40000644000175000017500000000363111506166014015747 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl We check two things: where is the memory include file, and in what dnl namespace does shared_ptr reside. dnl We include AC_COMPILE_IFELSE for all the combinations we've seen in the dnl wild: dnl dnl GCC 4.3: namespace: std:: #include dnl GCC 4.2: namespace: tr1:: #include dnl GCC 4.2: namespace: boost:: #include dnl dnl We define one of HAVE_HAVE_TR1_SHARED_PTR or HAVE_BOOST_SHARED_PTR dnl depending on location, and SHARED_PTR_NAMESPACE to be the namespace in dnl which shared_ptr is defined. dnl AC_DEFUN([PANDORA_SHARED_PTR],[ AC_REQUIRE([PANDORA_CHECK_CXX_STANDARD]) AC_LANG_PUSH(C++) save_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${CXX_STANDARD} ${CXXFLAGS}" AC_CHECK_HEADERS(memory tr1/memory boost/shared_ptr.hpp) AC_CACHE_CHECK([the location of shared_ptr header file], [ac_cv_shared_ptr_h],[ for namespace in std tr1 std::tr1 boost do AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #if defined(HAVE_MEMORY) # include #endif #if defined(HAVE_TR1_MEMORY) # include #endif #if defined(HAVE_BOOST_SHARED_PTR_HPP) # include #endif #include using $namespace::shared_ptr; using namespace std; ]],[[ shared_ptr test_ptr(new string("test string")); ]])], [ ac_cv_shared_ptr_namespace="${namespace}" break ],[ac_cv_shared_ptr_namespace=missing]) done ]) AC_DEFINE_UNQUOTED([SHARED_PTR_NAMESPACE], ${ac_cv_shared_ptr_namespace}, [The namespace in which SHARED_PTR can be found]) CXXFLAGS="${save_CXXFLAGS}" AC_LANG_POP() ]) pandora-build-0.171.1/m4/pandora_have_libgtest.m40000644000175000017500000000253211506166014016433 00000000000000dnl Copyright (C) 2010 Monty Taylor dnl This file is free software; Monty Taylor dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBGTEST],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libgtest dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libgtest], [AS_HELP_STRING([--disable-libgtest], [Build with libgtest support @<:@default=on@:>@])], [ac_enable_libgtest="$enableval"], [ac_enable_libgtest="yes"]) AS_IF([test "x$ac_enable_libgtest" = "xyes"],[ AC_LANG_PUSH(C++) save_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${AM_CXXFLAGS} ${CXXFLAGS}" AC_LIB_HAVE_LINKFLAGS(gtest,,[ #include TEST(pandora_test_libgtest, PandoraTest) { ASSERT_EQ(1, 1); } ],[]) CXXFLAGS="${save_CXXFLAGS}" AC_LANG_POP() ],[ ac_cv_libgtest="no" ]) AM_CONDITIONAL(HAVE_LIBGTEST, [test "x${ac_cv_libgtest}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBGTEST],[ AC_REQUIRE([_PANDORA_SEARCH_LIBGTEST]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBGTEST],[ AC_REQUIRE([_PANDORA_SEARCH_LIBGTEST]) AS_IF([test "x${ac_cv_libgtest}" = "xno"], AC_MSG_ERROR([libgtest is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_with_lua.m40000644000175000017500000000332111506166014015424 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl pandora-build: A pedantic build system dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl From Monty Taylor AC_DEFUN([PANDORA_WITH_LUA],[ dnl Check for lua AC_ARG_WITH([lua], [AS_HELP_STRING([--with-lua], [Build Lua Bindings @<:@default=yes@:>@])], [with_lua=$withval], [with_lua=yes]) AS_IF([test "x$with_lua" != "xno"],[ AS_IF([test "x$with_lua" = "xyes"], [LUAPC=lua], [LUAPC=$with_lua]) PKG_CHECK_MODULES([LUA], $LUAPC >= 5.1, [ AC_DEFINE([HAVE_LUA], [1], [liblua]) AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) with_lua=yes ],[ LUAPC=lua5.1 PKG_CHECK_MODULES([LUA], $LUAPC >= 5.1, [ AC_DEFINE([HAVE_LUA], [1], [liblua]) AC_DEFINE([HAVE_LUA_H], [1], [lua.h]) with_lua=yes ],[ AC_DEFINE([HAVE_LUA],["x"],["x"]) with_lua=no ]) ]) AC_CACHE_CHECK([for LUA installation location],[pandora_cv_lua_archdir],[ AS_IF([test "$prefix" = "NONE"],[ pandora_cv_lua_archdir=`${PKG_CONFIG} --define-variable=prefix=${ac_default_prefix} --variable=INSTALL_CMOD ${LUAPC}` ],[ pandora_cv_lua_archdir=`${PKG_CONFIG} --define-variable=prefix=${prefix} --variable=INSTALL_CMOD ${LUAPC}` ]) ]) LUA_ARCHDIR="${pandora_cv_lua_archdir}" AC_SUBST(LUA_ARCHDIR) AC_SUBST(LUA_CFLAGS) AC_SUBST(LUA_LIBS) ]) AM_CONDITIONAL(BUILD_LUA, test "$with_lua" = "yes") ]) pandora-build-0.171.1/m4/pandora_pthread.m40000644000175000017500000001633511506166014015250 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl pandora-build: A pedantic build system dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl From Monty Taylor dnl -------------------------------------------------------------------- dnl Check for libpthread dnl -------------------------------------------------------------------- AC_DEFUN([PANDORA_PTHREAD_YIELD],[ AC_REQUIRE([ACX_PTHREAD]) save_CFLAGS="${CFLAGS}" save_CXXFLAGS="${CXXFLAGS}" CFLAGS="${PTHREAD_CFLAGS} ${CFLAGS}" CXXFLAGS="${PTHREAD_CFLAGS} ${CXXFLAGS}" dnl Some OSes like Mac OS X have that as a replacement for pthread_yield() AC_CHECK_FUNCS(pthread_yield_np) AC_CACHE_CHECK([if pthread_yield takes zero arguments], [pandora_cv_pthread_yield_zero_arg], [AC_LINK_IFELSE([ AC_LANG_PROGRAM([[ #include ]],[[ pthread_yield(); ]])], [pandora_cv_pthread_yield_zero_arg=yes], [pandora_cv_pthread_yield_zero_arg=no])]) AS_IF([test "$pandora_cv_pthread_yield_zero_arg" = "yes"],[ AC_DEFINE([HAVE_PTHREAD_YIELD_ZERO_ARG], [1], [pthread_yield that doesn't take any arguments]) ]) AC_CACHE_CHECK([if pthread_yield takes one argument], [pandora_cv_pthread_yield_one_arg], [AC_LINK_IFELSE([ AC_LANG_PROGRAM([[ #include ]],[[ pthread_yield(0); ]])], [pandora_cv_pthread_yield_one_arg=yes], [pandora_cv_pthread_yield_one_arg=no])]) AS_IF([test "$pandora_cv_pthread_yield_one_arg" = "yes"],[ AC_DEFINE([HAVE_PTHREAD_YIELD_ONE_ARG], [1], [pthread_yield function with one argument]) ]) AC_CHECK_FUNCS(pthread_attr_getstacksize pthread_attr_setprio \ pthread_attr_setschedparam \ pthread_attr_setstacksize pthread_condattr_create pthread_getsequence_np \ pthread_key_delete pthread_rwlock_rdlock pthread_setprio \ pthread_setprio_np pthread_setschedparam pthread_sigmask \ pthread_attr_create rwlock_init ) # Check definition of pthread_getspecific AC_CACHE_CHECK([args to pthread_getspecific], [pandora_cv_getspecific_args], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #if !defined(_REENTRANT) #define _REENTRANT #endif #ifndef _POSIX_PTHREAD_SEMANTICS #define _POSIX_PTHREAD_SEMANTICS #endif #include ]], [[ void *pthread_getspecific(pthread_key_t key); pthread_getspecific((pthread_key_t) NULL); ]])], [pandora_cv_getspecific_args=POSIX], [pandora_cv_getspecific_args=other])]) if test "$pandora_cv_getspecific_args" = "other" then AC_DEFINE([HAVE_NONPOSIX_PTHREAD_GETSPECIFIC], [1], [For some non posix threads]) fi # Check definition of pthread_mutex_init AC_CACHE_CHECK([args to pthread_mutex_init], [pandora_cv_mutex_init_args], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #ifndef _REENTRANT #define _REENTRANT #endif #ifndef _POSIX_PTHREAD_SEMANTICS #define _POSIX_PTHREAD_SEMANTICS #endif #include ]], [[ pthread_mutexattr_t attr; pthread_mutex_t mp; pthread_mutex_init(&mp,&attr); ]])], [pandora_cv_mutex_init_args=POSIX], [pandora_cv_mutex_init_args=other])]) if test "$pandora_cv_mutex_init_args" = "other" then AC_DEFINE([HAVE_NONPOSIX_PTHREAD_MUTEX_INIT], [1], [For some non posix threads]) fi #---END: #---START: Used in for client configure # Check definition of readdir_r AC_CACHE_CHECK([args to readdir_r], [pandora_cv_readdir_r], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifndef _REENTRANT #define _REENTRANT #endif #ifndef _POSIX_PTHREAD_SEMANTICS #define _POSIX_PTHREAD_SEMANTICS #endif #include #include ]], [[ int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result); readdir_r((DIR *) NULL, (struct dirent *) NULL, (struct dirent **) NULL); ]])], [pandora_cv_readdir_r=POSIX], [pandora_cv_readdir_r=other])]) if test "$pandora_cv_readdir_r" = "POSIX" then AC_DEFINE([HAVE_READDIR_R], [1], [POSIX readdir_r]) fi # Check definition of posix sigwait() AC_CACHE_CHECK([style of sigwait], [pandora_cv_sigwait], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifndef _REENTRANT #define _REENTRANT #endif #ifndef _POSIX_PTHREAD_SEMANTICS #define _POSIX_PTHREAD_SEMANTICS #endif #include #include ]], [[ #ifndef _AIX sigset_t set; int sig; sigwait(&set,&sig); #endif ]])], [pandora_cv_sigwait=POSIX], [pandora_cv_sigwait=other])]) if test "$pandora_cv_sigwait" = "POSIX" then AC_DEFINE([HAVE_SIGWAIT], [1], [POSIX sigwait]) fi if test "$pandora_cv_sigwait" != "POSIX" then unset pandora_cv_sigwait # Check definition of posix sigwait() AC_CACHE_CHECK([style of sigwait], [pandora_cv_sigwait], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifndef _REENTRANT #define _REENTRANT #endif #ifndef _POSIX_PTHREAD_SEMANTICS #define _POSIX_PTHREAD_SEMANTICS #endif #include #include ]], [[ sigset_t set; int sig; sigwait(&set); ]])], [pandora_cv_sigwait=NONPOSIX], [pandora_cv_sigwait=other])]) if test "$pandora_cv_sigwait" = "NONPOSIX" then AC_DEFINE([HAVE_NONPOSIX_SIGWAIT], [1], [sigwait with one argument]) fi fi #---END: # Check if pthread_attr_setscope() exists AC_CACHE_CHECK([for pthread_attr_setscope], [pandora_cv_pthread_attr_setscope], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifndef _REENTRANT #define _REENTRANT #endif #ifndef _POSIX_PTHREAD_SEMANTICS #define _POSIX_PTHREAD_SEMANTICS #endif #include ]], [[ pthread_attr_t thr_attr; pthread_attr_setscope(&thr_attr,0); ]])], [pandora_cv_pthread_attr_setscope=yes], [pandora_cv_pthread_attr_setscope=no])]) if test "$pandora_cv_pthread_attr_setscope" = "yes" then AC_DEFINE([HAVE_PTHREAD_ATTR_SETSCOPE], [1], [pthread_attr_setscope]) fi AC_CACHE_CHECK([if pthread_yield takes zero arguments], ac_cv_pthread_yield_zero_arg, [AC_TRY_LINK([#define _GNU_SOURCE #include #ifdef __cplusplus extern "C" #endif ], [ pthread_yield(); ], ac_cv_pthread_yield_zero_arg=yes, ac_cv_pthread_yield_zero_arg=yeso)]) if test "$ac_cv_pthread_yield_zero_arg" = "yes" then AC_DEFINE([HAVE_PTHREAD_YIELD_ZERO_ARG], [1], [pthread_yield that doesn't take any arguments]) fi AC_CACHE_CHECK([if pthread_yield takes 1 argument], ac_cv_pthread_yield_one_arg, [AC_TRY_LINK([#define _GNU_SOURCE #include #ifdef __cplusplus extern "C" #endif ], [ pthread_yield(0); ], ac_cv_pthread_yield_one_arg=yes, ac_cv_pthread_yield_one_arg=no)]) if test "$ac_cv_pthread_yield_one_arg" = "yes" then AC_DEFINE([HAVE_PTHREAD_YIELD_ONE_ARG], [1], [pthread_yield function with one argument]) fi CFLAGS="${save_CFLAGS}" CXXFLAGS="${save_CXXFLAGS}" ]) AC_DEFUN([_PANDORA_SEARCH_PTHREAD],[ AC_REQUIRE([ACX_PTHREAD]) LIBS="${PTHREAD_LIBS} ${LIBS}" AM_CFLAGS="${PTHREAD_CFLAGS} ${AM_CFLAGS}" AM_CXXFLAGS="${PTHREAD_CFLAGS} ${AM_CXXFLAGS}" PANDORA_PTHREAD_YIELD ]) AC_DEFUN([PANDORA_HAVE_PTHREAD],[ AC_REQUIRE([_PANDORA_SEARCH_PTHREAD]) ]) AC_DEFUN([PANDORA_REQUIRE_PTHREAD],[ AC_REQUIRE([PANDORA_HAVE_PTHREAD]) AS_IF([test "x$acx_pthread_ok" != "xyes"],[ AC_MSG_ERROR(could not find libpthread)]) ]) pandora-build-0.171.1/m4/pandora_intltool.m40000644000175000017500000002475311506166014015470 00000000000000## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*- ## Copyright (C) 2001 Eazel, Inc. ## Author: Maciej Stachowiak ## Kenneth Christiansen ## ## 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; either version 2 of the License, or ## (at your option) any later version. ## ## 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 Place - Suite 330, Boston, MA 02110-1301, USA. ## ## As a special exception to the GNU General Public License, if you ## distribute this file as part of a program that contains a ## configuration script generated by Autoconf, you may include it under ## the same distribution terms that you use for the rest of that program. dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml]) # serial 40 IT_PROG_INTLTOOL AC_DEFUN([IT_PROG_INTLTOOL], [ AC_PREREQ([2.50])dnl AC_REQUIRE([AM_NLS])dnl case "$am__api_version" in 1.[01234]) AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool]) ;; *) ;; esac if test -n "$1"; then AC_MSG_CHECKING([for intltool >= $1]) INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3` [INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'` ] AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found]) AS_IF([test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT"],[ pandora_have_intltool=yes ],[ pandora_have_intltool=no AC_MSG_WARN([Your intltool is too old. You need intltool $1 or later.]) ]) fi AC_CHECK_HEADERS([libintl.h]) AS_IF([test "x${ac_cv_header_libintl_h}" = "xfalse" -o "x${ac_cv_header_libintl_h}" = "xno"],[ pandora_have_intltool=no ]) AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update]) AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge]) AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract]) if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then AC_MSG_WARN([The intltool scripts were not found. Please install intltool.]) AC_MSG_WARN([On Debian: apt-get install intltool. On Redhat: yum install intltool]) fi INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -p $(top_srcdir)/po $< [$]@' INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u /tmp $< [$]@' INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@' _IT_SUBST(INTLTOOL_DESKTOP_RULE) _IT_SUBST(INTLTOOL_DIRECTORY_RULE) _IT_SUBST(INTLTOOL_KEYS_RULE) _IT_SUBST(INTLTOOL_PROP_RULE) _IT_SUBST(INTLTOOL_OAF_RULE) _IT_SUBST(INTLTOOL_PONG_RULE) _IT_SUBST(INTLTOOL_SERVER_RULE) _IT_SUBST(INTLTOOL_SHEET_RULE) _IT_SUBST(INTLTOOL_SOUNDLIST_RULE) _IT_SUBST(INTLTOOL_UI_RULE) _IT_SUBST(INTLTOOL_XAM_RULE) _IT_SUBST(INTLTOOL_KBD_RULE) _IT_SUBST(INTLTOOL_XML_RULE) _IT_SUBST(INTLTOOL_XML_NOMERGE_RULE) _IT_SUBST(INTLTOOL_CAVES_RULE) _IT_SUBST(INTLTOOL_SCHEMAS_RULE) _IT_SUBST(INTLTOOL_THEME_RULE) _IT_SUBST(INTLTOOL_SERVICE_RULE) _IT_SUBST(INTLTOOL_POLICY_RULE) # Check the gettext tools to make sure they are GNU AC_PATH_PROG(XGETTEXT, xgettext) AC_PATH_PROG(MSGMERGE, msgmerge) AC_PATH_PROG(MSGFMT, msgfmt) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then AC_MSG_WARN([GNU gettext tools not found; required for intltool]) fi xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`" mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`" mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`" if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then AC_MSG_WARN([GNU gettext tools not found; required for intltool]) fi AC_PATH_PROG(INTLTOOL_PERL, perl) if test -z "$INTLTOOL_PERL"; then AC_MSG_WARN([perl not found]) fi AC_MSG_CHECKING([for perl >= 5.8.1]) $INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1 if test $? -ne 0; then AC_MSG_WARN([perl 5.8.1 is required for intltool]) else IT_PERL_VERSION="`$INTLTOOL_PERL -e \"printf '%vd', $^V\"`" AC_MSG_RESULT([$IT_PERL_VERSION]) fi if test "x$2" != "xno-xml"; then AC_MSG_CHECKING([for XML::Parser]) if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then AC_MSG_RESULT([ok]) else AC_MSG_WARN([XML::Parser perl module is required for intltool]) fi fi # Substitute ALL_LINGUAS so we can use it in po/Makefile AC_SUBST(ALL_LINGUAS) # Set DATADIRNAME correctly if it is not set yet # (copied from glib-gettext.m4) if test -z "$DATADIRNAME"; then AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[extern int _nl_msg_cat_cntr; return _nl_msg_cat_cntr]])], [DATADIRNAME=share], [case $host in *-*-solaris*) dnl On Solaris, if bind_textdomain_codeset is in libc, dnl GNU format message catalog is always supported, dnl since both are added to the libc all together. dnl Hence, we'd like to go with DATADIRNAME=share dnl in this case. AC_CHECK_FUNC(bind_textdomain_codeset, [DATADIRNAME=share], [DATADIRNAME=lib]) ;; *) [DATADIRNAME=lib] ;; esac]) fi AC_SUBST(DATADIRNAME) IT_PO_SUBDIR([po]) ]) # IT_PO_SUBDIR(DIRNAME) # --------------------- # All po subdirs have to be declared with this macro; the subdir "po" is # declared by IT_PROG_INTLTOOL. # AC_DEFUN([IT_PO_SUBDIR], [AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS. dnl dnl The following CONFIG_COMMANDS should be exetuted at the very end dnl of config.status. AC_CONFIG_COMMANDS_PRE([ AC_CONFIG_COMMANDS([$1/stamp-it], [ if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then AC_MSG_WARN([$1/Makefile.in.in was not created by intltoolize.]) else rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp" >"$1/stamp-it.tmp" [sed '/^#/d s/^[[].*] *// /^[ ]*$/d '"s|^| $ac_top_srcdir/|" \ "$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES" ] [sed '/^POTFILES =/,/[^\\]$/ { /^POTFILES =/!d r $1/POTFILES } ' "$1/Makefile.in" >"$1/Makefile"] rm -f "$1/Makefile.tmp" mv "$1/stamp-it.tmp" "$1/stamp-it" fi ]) ])dnl ]) # _IT_SUBST(VARIABLE) # ------------------- # Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST # AC_DEFUN([_IT_SUBST], [ AC_SUBST([$1]) m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])]) ] ) # deprecated macros AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL]) # A hint is needed for aclocal from Automake <= 1.9.4: # AC_DEFUN([AC_PROG_INTLTOOL], ...) pandora-build-0.171.1/m4/pandora_platform.m40000644000175000017500000000761611506166014015447 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl pandora-build: A pedantic build system dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl From Monty Taylor AC_DEFUN([PANDORA_PLATFORM],[ dnl Canonicalize the configuration name. AC_DEFINE_UNQUOTED([HOST_VENDOR], ["$host_vendor"],[Vendor of Build System]) AC_DEFINE_UNQUOTED([HOST_OS], ["$host_os"], [OS of Build System]) AC_DEFINE_UNQUOTED([HOST_CPU], ["$host_cpu"], [CPU of Build System]) AC_DEFINE_UNQUOTED([TARGET_VENDOR], ["$target_vendor"],[Vendor of Target System]) AC_DEFINE_UNQUOTED([TARGET_OS], ["$target_os"], [OS of Target System]) AC_DEFINE_UNQUOTED([TARGET_CPU], ["$target_cpu"], [CPU of Target System]) case "$host_os" in *solaris*) AS_IF([test "x${ac_cv_env_CPPFLAGS_set}" = "x"],[ CPPFLAGS="${CPPFLAGS} -I/usr/local/include" ]) AS_IF([test "x${ac_cv_env_LDFLAGS_set}" = "x"],[ LDFLAGS="${LDFLAGS} -L/usr/local/lib" ]) ;; *freebsd*) AS_IF([test "x${ac_cv_env_CPPFLAGS_set}" = "x"],[ CPPFLAGS="${CPPFLAGS} -isystem /usr/local/include" ]) AS_IF([test "x${ac_cv_env_LDFLAGS_set}" = "x"],[ LDFLAGS="${LDFLAGS} -L/usr/local/lib" ]) ;; esac PANDORA_OPTIMIZE_BITFIELD=1 case "$target_os" in *linux*) TARGET_LINUX="true" AC_SUBST(TARGET_LINUX) AC_DEFINE([TARGET_OS_LINUX], [1], [Whether we build for Linux]) ;; *darwin*) TARGET_OSX="true" AC_SUBST(TARGET_OSX) AC_DEFINE([TARGET_OS_OSX], [1], [Whether we build for OSX]) ;; *solaris*) TARGET_SOLARIS="true" PANDORA_OPTIMIZE_BITFIELD=0 AS_IF([test "x${USE_NLS}" = "xyes"],[LIBS="${LIBS} -lintl"]) AC_SUBST(TARGET_SOLARIS) AC_DEFINE([TARGET_OS_SOLARIS], [1], [Whether we are building for Solaris]) ;; *freebsd*) TARGET_FREEBSD="true" AC_SUBST(TARGET_FREEBSD) AC_DEFINE([TARGET_OS_FREEBSD], [1], [Whether we are building for FreeBSD]) AC_DEFINE([__APPLE_CC__],[1],[Workaround for bug in FreeBSD headers]) ;; *mingw32*) TARGET_WINDOWS="true" AC_SUBST(TARGET_WINDOWS) AC_DEFINE([TARGET_OS_WINDOWS], [1], [Whether we are building for Windows]) AC_DEFINE([WINVER], [WindowsXP], [Version of Windows]) AC_DEFINE([_WIN32_WINNT], [0x0501], [Magical number to make things work]) AC_DEFINE([EAI_SYSTEM], [11], [Another magical number]) AH_BOTTOM([ #ifndef HAVE_SYS_SOCKET_H # define SHUT_RD SD_RECEIVE # define SHUT_WR SD_SEND # define SHUT_RDWR SD_BOTH #endif ]) LIBS="$LIBS -lwsock32 -lws2_32" AM_CFLAGS="${AM_CFLAGS} -I\${top_srcdir}/win32/mingw -I\${top_builddir}/win32/mingw -I\${top_srcdir}/win32 -I\${top_builddir}/win32" ;; esac AM_CONDITIONAL(BUILD_WIN32, [test "x${TARGET_WINDOWS}" = "xtrue"]) AC_SUBST(PANDORA_OPTIMIZE_BITFIELD) AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) AC_CHECK_DECL([__ICC], [INTELCC="yes"], [INTELCC="no"]) AS_IF([test "$INTELCC" = "yes"], [enable_rpath=no]) dnl By default, Sun Studio grabs special versions of limits.h and string.h dnl when you use and . By setting this define, we can dnl disable that and cause those to wrap the standard headers instead. dnl http://www.stlport.com/doc/configure.html AS_IF([test "$SUNCC" = "yes"],[ AC_DEFINE([_STLP_NO_NEW_C_HEADERS],[1], [Cause Sun Studio to not be quite so strict with standards conflicts]) ]) AS_IF([test "x$TARGET_OSX" = "xtrue"],[ AS_IF([test "x$ac_enable_fat_binaries" = "xyes"],[ AM_CFLAGS="-arch i386 -arch x86_64 -arch ppc" AM_CXXFLAGS="-arch i386 -arch x86_64 -arch ppc" AM_LDFLAGS="-arch i386 -arch x86_64 -arch ppc" ]) ]) ]) pandora-build-0.171.1/m4/pandora_with_python3.m40000644000175000017500000000264611506166014016260 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl pandora-build: A pedantic build system dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl From Monty Taylor AC_DEFUN([PANDORA_WITH_PYTHON3], [ AC_REQUIRE([PANDORA_SWIG]) AC_ARG_WITH([python3], [AS_HELP_STRING([--with-python3], [Build Python3 Bindings @<:@default=yes@:>@])],[ with_python3=$withval python3_requested=$withval ],[ with_python3=yes python3_requested=no ]) AS_IF([test "x$ac_cv_swig_has_python3_" != "xyes"],[ with_python3=no ],[ AS_IF([test "x$with_python3" != "xno"],[ AS_IF([test "x$with_python3" != "xyes"], [PYTHON3=$with_python3],[ AC_PATH_PROG([PYTHON3],[python3],[no]) PANDORA_PYTHON3_DEVEL() AS_IF([test "x$python3exists" = "xno"],[with_python="no"]) ]) ]) ]) AS_IF([test "x$with_python3" = "xno" -a "$python3_requested" = "yes"],[ AC_MSG_ERROR([Python3 support was explicity requested, but Python3 support was not found. Please correct your build environment and try again]) ]) AM_CONDITIONAL(BUILD_PYTHON3, [test "$with_python3" = "yes"]) ]) pandora-build-0.171.1/m4/pandora_64bit.m40000644000175000017500000000400411506166014014537 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl --------------------------------------------------------------------------- dnl Macro: PANDORA_64BIT dnl --------------------------------------------------------------------------- AC_DEFUN([PANDORA_64BIT],[ AC_BEFORE([$0], [AC_LIB_PREFIX]) AC_ARG_ENABLE([64bit], [AS_HELP_STRING([--disable-64bit], [Build 64 bit binary @<:@default=on@:>@])], [ac_enable_64bit="$enableval"], [ac_enable_64bit="yes"]) AC_CHECK_PROGS(ISAINFO, [isainfo], [no]) AS_IF([test "x$ISAINFO" != "xno"], [isainfo_b=`${ISAINFO} -b`], [isainfo_b="x"]) AS_IF([test "$isainfo_b" != "x"],[ isainfo_k=`${ISAINFO} -k` DTRACEFLAGS="${DTRACEFLAGS} -${isainfo_b}" AS_IF([test "x$ac_enable_64bit" = "xyes"],[ AS_IF([test "x${ac_cv_env_LDFLAGS_set}" = "x"],[ LDFLAGS="-L/usr/local/lib/${isainfo_k} ${LDFLAGS}" ]) AS_IF([test "x$libdir" = "x\${exec_prefix}/lib"],[ dnl The user hasn't overridden the default libdir, so we'll dnl the dir suffix to match solaris 32/64-bit policy libdir="${libdir}/${isainfo_k}" ]) AS_IF([test "x${ac_cv_env_CFLAGS_set}" = "x"],[ CFLAGS="${CFLAGS} -m64" ac_cv_env_CFLAGS_set=set ac_cv_env_CFLAGS_value='-m64' ]) AS_IF([test "x${ac_cv_env_CXXFLAGS_set}" = "x"],[ CXXFLAGS="${CXXFLAGS} -m64" ac_cv_env_CXXFLAGS_set=set ac_cv_env_CXXFLAGS_value='-m64' ]) AS_IF([test "$target_cpu" = "sparc" -a "x$SUNCC" = "xyes"],[ AM_CFLAGS="-xmemalign=8s ${AM_CFLAGS}" AM_CXXFLAGS="-xmemalign=8s ${AM_CXXFLAGS}" ]) ]) ]) ]) dnl --------------------------------------------------------------------------- dnl End Macro: PANDORA_64BIT dnl --------------------------------------------------------------------------- pandora-build-0.171.1/m4/lib-prefix.m40000644000175000017500000002030711505040437014147 00000000000000# lib-prefix.m4 serial 6 (gettext-0.18) dnl Copyright (C) 2001-2005, 2008 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates dnl - a variable acl_libdirstem, containing the basename of the libdir, either dnl "lib" or "lib64" or "lib/64", dnl - a variable acl_libdirstem2, as a secondary possible value for dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or dnl "lib/amd64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. dnl On glibc systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine dnl the compiler's default mode by looking at the compiler's library search dnl path. If at least one of its elements ends in /lib64 or points to a dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. dnl Otherwise we use the default, namely "lib". dnl On Solaris systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment dnl . dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], [AC_RUN_IFELSE([ AC_LANG_PROGRAM([], [[ return sizeof(void*) == 8 ? 0 : 1; ]]) ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) ]) if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" ]) pandora-build-0.171.1/m4/pandora_print_callstack.m40000644000175000017500000000354311506166014016773 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Try to define a macro to dump the current callstack. AC_DEFUN([PANDORA_PRINT_CALLSTACK],[ AC_CHECK_HEADERS([ucontext.h]) AS_IF([test "x$ac_cv_header_ucontext_h" = "xyes"], [ AC_CHECK_FUNCS([printstack]) ]) AS_IF([ test "x$ac_cv_func_printstack" != "xyes"], [ AC_CHECK_HEADERS([dlfcn.h]) AC_CHECK_HEADERS([execinfo.h]) AC_CHECK_FUNCS([backtrace]) AC_CHECK_FUNCS([backtrace_symbols_fd]) ]) AH_BOTTOM([ #ifdef __cplusplus #include #define PANDORA_PRINTSTACK_STD_PREFIX std:: #else #include #define PANDORA_PRINTSTACK_STD_PREFIX #endif #if defined(HAVE_UCONTEXT_H) && defined(HAVE_PRINTSTACK) #include #define pandora_print_callstack(a) \ printstack(PANDORA_PRINTSTACK_STD_PREFIX fileno(a)) #elif defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE) && defined(HAVE_BACKTRACE_SYMBOLS_FD) #include #define pandora_print_callstack(a) \ { \ void *stack[100]; \ int depth = backtrace(stack, 100); \ backtrace_symbols_fd(stack, depth, PANDORA_PRINTSTACK_STD_PREFIX fileno(a)); \ } #elif defined(HAVE_EXECINFO_H) && defined(HAVE_BACKTRACE) && defined(HAVE_BACKTRACE_SYMBOLS) && !defined(HAVE_BACKTRACE_SYMBOLS_FD) #include #define pandora_print_callstack(a) \ { \ void *stack[100]; \ int depth= backtrace(stack, 100); \ char **symbol= backtrace_symbols(stack, depth); \ for (int x= 0; x < size; ++x) \ PANDORA_PRINTSTACK_STD_PREFIX fprintf(a, "%s\n", symbol[x]); \ } #else #define pandora_print_callstack(a) \ PANDORA_PRINTSTACK_STD_PREFIX fprintf(a, \ "Stackdump not supported for this platform\n"); #endif ]) ]) pandora-build-0.171.1/m4/pandora_version.m40000644000175000017500000000065711506166014015306 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([PANDORA_VERSION],[ PANDORA_HEX_VERSION=`echo $VERSION | sed 's|[\-a-z0-9]*$||' | \ awk -F. '{printf "0x%0.2d%0.3d%0.3d", $[]1, $[]2, $[]3}'` AC_SUBST([PANDORA_HEX_VERSION]) ]) pandora-build-0.171.1/m4/pandora_check_cxx_standard.m40000644000175000017500000000150011506166014017424 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([PANDORA_CHECK_CXX_STANDARD],[ dnl AC_REQUIRE([AC_CXX_COMPILE_STDCXX_0X]) AS_IF([test "$GCC" = "yes"], [AS_IF([test "$ac_cv_cxx_compile_cxx0x_native" = "yes"],[], [AS_IF([test "$ac_cv_cxx_compile_cxx0x_gxx" = "yes"], [CXX_STANDARD="-std=gnu++0x"], [CXX_STANDARD="-std=gnu++98"]) ]) ]) AM_CXXFLAGS="${CXX_STANDARD} ${AM_CXXFLAGS}" save_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${CXXFLAGS} ${CXX_STANDARD}" AC_CXX_HEADER_STDCXX_98 CXXFLAGS="${save_CXXFLAGS}" AC_SUBST([CXX_STANDARD]) ]) pandora-build-0.171.1/m4/pandora_cinttypes.m40000644000175000017500000000237011506166014015635 00000000000000# We check two things: where the include file is for cinttypes. We # include AC_TRY_COMPILE for all the combinations we've seen in the # wild. We define one of HAVE_CINTTYPES or HAVE_TR1_CINTTYPES or # HAVE_BOOST_CINTTYPES depending # on location. AC_DEFUN([PANDORA_CXX_CINTTYPES], [AC_REQUIRE([PANDORA_CXX_CSTDINT]) AC_MSG_CHECKING(the location of cinttypes) AC_LANG_PUSH(C++) save_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${CXX_STANDARD} ${CXXFLAGS}" ac_cv_cxx_cinttypes="" for location in tr1/cinttypes boost/cinttypes cinttypes; do if test -z "$ac_cv_cxx_cinttypes"; then AC_TRY_COMPILE([#include $ac_cv_cxx_cstdint; #include <$location>], [uint32_t foo= UINT32_C(1)], [ac_cv_cxx_cinttypes="<$location>";]) fi done AC_LANG_POP() CXXFLAGS="${save_CXXFLAGS}" if test -n "$ac_cv_cxx_cinttypes"; then AC_MSG_RESULT([$ac_cv_cxx_cinttypes]) else ac_cv_cxx_cinttypes="" AC_MSG_RESULT() AC_MSG_WARN([Could not find a cinttypes header.]) fi AC_DEFINE([__STDC_LIMIT_MACROS],[1],[Use STDC Limit Macros in C++]) AC_DEFINE_UNQUOTED(CINTTYPES_H,$ac_cv_cxx_cinttypes, [the location of ]) ]) pandora-build-0.171.1/m4/pandora_plugins.m40000644000175000017500000000600711506166014015275 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl-------------------------------------------------------------------- dnl PANDORA_PLUGINS dnl Declare our plugin modules dnl-------------------------------------------------------------------- AC_DEFUN([PANDORA_PLUGINS],[ dnl We do this to prime the files from a fresh checkout. Normally we want dnl these commands to be executed by make. Perhaps we should split them into dnl a few shell script snippets in config and make Make call them... we're dnl going to get there... dnl ANYWAY - syscmd gets called during aclocal - so before automake. It will dnl get called probably during autoconf too, so it's important to protect dnl with test -f ... if the files exist, we don't have the chicken/egg dnl problem and therefore don't need to do anything here m4_syscmd([python config/pandora-plugin > /dev/null]) m4_syscmd([test -f config/plugin.stamp || touch config/plugin.stamp aclocal.m4]) m4_sinclude(config/pandora-plugin.ac) dnl Add code here to read set plugin lists and set drizzled_default_plugin_list pandora_builtin_list=`echo $pandora_builtin_list | sed 's/, *$//'` pandora_builtin_symbols_list=`echo $pandora_builtin_symbols_list | sed 's/, *$//'` pandora_builtin_load_list=`echo $pandora_builtin_load_list | sed 's/, *$//'` pandora_builtin_load_symbols_list=`echo $pandora_builtin_load_symbols_list | sed 's/, *$//'` AS_IF([test "x$pandora_builtin_symbols_list" = "x"], pandora_builtin_symbols_list="NULL") AS_IF([test "x$pandora_builtin_load_symbols_list" = "x"], pandora_builtin_load_symbols_list="NULL") AC_SUBST([PANDORA_BUILTIN_LIST],[$pandora_builtin_list]) AC_SUBST([PANDORA_BUILTIN_SYMBOLS_LIST],[$pandora_builtin_symbols_list]) AC_SUBST([PANDORA_BUILTIN_LOAD_LIST],[$pandora_builtin_load_list]) AC_SUBST([PANDORA_BUILTIN_LOAD_SYMBOLS_LIST],[$pandora_builtin_load_symbols_list]) AC_SUBST([PANDORA_PLUGIN_LIST],[$pandora_default_plugin_list]) m4_ifval(m4_normalize([$1]),[ AC_CONFIG_FILES($*) ],[ AC_DEFINE_UNQUOTED([PANDORA_BUILTIN_LIST],["$pandora_builtin_list"], [List of plugins to be built in]) AC_DEFINE_UNQUOTED([PANDORA_BUILTIN_SYMBOLS_LIST],["$pandora_builtin_symbols_list"], [List of builtin plugin symbols to be built in]) AC_DEFINE_UNQUOTED([PANDORA_PLUGIN_LIST],["$pandora_default_plugin_list"], [List of plugins that should be loaded on startup if no value is given for --plugin-load]) ]) AC_SUBST(pandora_plugin_test_list) AC_SUBST(pandora_plugin_libs) pandora_plugin_defs=`echo $pandora_plugin_defs | sed 's/, *$//'` AC_SUBST(pandora_plugin_defs) AC_SUBST(PANDORA_PLUGIN_DEP_LIBS) AC_SUBST(pkgplugindir,"\$(pkglibdir)") ]) AC_DEFUN([PANDORA_ADD_PLUGIN_DEP_LIB],[ PANDORA_PLUGIN_DEP_LIBS="${PANDORA_PLUGIN_DEP_LIBS} $*" ]) pandora-build-0.171.1/m4/pandora_have_libcurl.m40000644000175000017500000000374411506166014016260 00000000000000dnl Copyright (C) 2010 Monty Taylor dnl This file is free software; Monty Taylor dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBCURL],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libcurl dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libcurl], [AS_HELP_STRING([--disable-libcurl], [Build with libcurl support @<:@default=on@:>@])], [ac_enable_libcurl="$enableval"], [ac_enable_libcurl="yes"]) AS_IF([test "x$ac_enable_libcurl" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(curl,, [#include ], [ CURL *handle; handle=curl_easy_init(); ]) ],[ ac_cv_libcurl="no" ]) AC_CACHE_CHECK([if libcurl has CURLOPT_USERNAME], [pandora_cv_curl_have_username],[ AC_COMPILE_IFELSE([ AC_LANG_PROGRAM( [[ CURL *handle; handle=curl_easy_init(); rv= curl_easy_setopt(curl_handle, CURLOPT_USERNAME, "foo"); ]])], [pandora_cv_curl_have_username=yes], [pandora_cv_curl_have_username=no]) ]) AM_CONDITIONAL(HAVE_LIBCURL,[test "x${ac_cv_libcurl}" = "xyes"]) AS_IF([test "x$pandora_cv_curl_have_username" = "xyes"], AC_DEFINE([HAVE_CURLOPT_USERNAME],[1], [Does libcurl provide the CURLOPT_USERNAME constant])) ]) AC_DEFUN([PANDORA_HAVE_LIBCURL],[ AC_REQUIRE([_PANDORA_SEARCH_LIBCURL]) AS_IF([test "x${ac_cv_libcurl}" = "xno"],[ AC_MSG_WARN([libcurl development lib not found. On Debian this is found in libcurl4-gnutls-dev. On RHEL5/Fedora11 it's in curl-devel. On RHEL6/Fedora12 it's in libcurl-devel.]) ]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBCURL],[ PANDORA_HAVE_LIBCURL($1) AS_IF([test "x${ac_cv_libcurl}" = "xno"],[ AC_MSG_ERROR([libcurl is required for ${PACKAGE}]) ]) ]) pandora-build-0.171.1/m4/pandora_python3_devel.m40000644000175000017500000002002311506166014016371 00000000000000dnl -*- mode: m4; c-basic-offset: 2; indent-tabs-mode: nil; -*- dnl vim:expandtab:shiftwidth=2:tabstop=2:smarttab: dnl dnl pandora-build: A pedantic build system dnl dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl Copyright (C) 2008 Sebastian Huber dnl Copyright (C) 2008 Alan W. Irwin dnl Copyright (C) 2008 Rafael Laboissiere dnl Copyright (C) 2008 Andrew Collier dnl Copyright (C) 2008 Matteo Settenvini dnl Copyright (C) 2008 Horst Knorr dnl dnl This program is free software: you can redistribute it and/or modify it dnl under the terms of the GNU General Public License as published by the dnl Free Software Foundation, either version 3 of the License, or (at your dnl option) any later version. dnl dnl This program is distributed in the hope that it will be useful, but dnl WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General dnl Public License for more details. dnl dnl You should have received a copy of the GNU General Public License along dnl with this program. If not, see . dnl dnl As a special exception, the respective Autoconf Macro's copyright owner dnl gives unlimited permission to copy, distribute and modify the configure dnl scripts that are the output of Autoconf when processing the Macro. You dnl need not follow the terms of the GNU General Public License when using dnl or distributing such scripts, even though portions of the text of the dnl Macro appear in them. The GNU General Public License (GPL) does govern dnl all other use of the material that constitutes the Autoconf Macro. dnl dnl This special exception to the GPL applies to versions of the Autoconf dnl Macro released by the Autoconf Macro Archive. When you make and dnl distribute a modified version of the Autoconf Macro, you may extend this dnl special exception to the GPL to apply to your modified version as well. dnl SYNOPSIS dnl dnl PANDORA_PYTHON3_DEVEL([version]) dnl dnl DESCRIPTION dnl dnl Note: Defines as a precious variable "PYTHON3_VERSION". Don't override it dnl in your configure.ac. dnl dnl This macro checks for Python and tries to get the include path to dnl 'Python.h'. It provides the $(PYTHON3_CPPFLAGS) and $(PYTHON3_LDFLAGS) dnl output variables. It also exports $(PYTHON3_EXTRA_LIBS) and dnl $(PYTHON3_EXTRA_LDFLAGS) for embedding Python in your code. dnl dnl You can search for some particular version of Python by passing a dnl parameter to this macro, for example ">= '2.3.1'", or "== '2.4'". Please dnl note that you *have* to pass also an operator along with the version to dnl match, and pay special attention to the single quotes surrounding the dnl version number. Don't use "PYTHON3_VERSION" for this: that environment dnl variable is declared as precious and thus reserved for the end-user. dnl dnl LAST MODIFICATION dnl dnl 2009-08-23 AC_DEFUN([PANDORA_PYTHON3_DEVEL],[ # # Allow the use of a (user set) custom python version # AC_ARG_VAR([PYTHON3_VERSION],[The installed Python version to use, for example '3.0'. This string will be appended to the Python interpreter canonical name.]) AS_IF([test -z "$PYTHON3"],[ AC_PATH_PROG([PYTHON3],[python[$PYTHON3_VERSION]]) ]) AS_IF([test -z "$PYTHON3"],[ AC_MSG_ERROR([Cannot find python$PYTHON3_VERSION in your system path]) PYTHON3_VERSION="" ]) # # if the macro parameter ``version'' is set, honour it # if test -n "$1"; then AC_MSG_CHECKING([for a version of Python $1]) ac_supports_python3_ver=`$PYTHON3 -c "import sys, string; \ ver = string.split(sys.version)[[0]]; \ print(ver $1)"` if test "$ac_supports_python3_ver" = "True"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) AC_MSG_ERROR([this package requires Python $1. If you have it installed, but it isn't the default Python interpreter in your system path, please pass the PYTHON3_VERSION variable to configure. See ``configure --help'' for reference. ]) PYTHON_VERSION="" fi fi # # Check if you have distutils, else fail # AC_MSG_CHECKING([for Python3 distutils package]) ac_python3_distutils_result=`$PYTHON3 -c "import distutils" 2>&1` if test -z "$ac_python3_distutils_result"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) AC_MSG_ERROR([cannot import Python3 module "distutils". Please check your Python3 installation. The error was: $ac_python3_distutils_result]) PYTHON3_VERSION="" fi # # Check for Python include path # AC_MSG_CHECKING([for Python3 include path]) if test -z "$PYTHON3_CPPFLAGS"; then python3_path=`$PYTHON3 -c "import distutils.sysconfig; \ print(distutils.sysconfig.get_python_inc());"` if test -n "${python3_path}"; then python3_path="-I$python3_path" fi PYTHON3_CPPFLAGS=$python3_path fi AC_MSG_RESULT([$PYTHON3_CPPFLAGS]) AC_SUBST([PYTHON3_CPPFLAGS]) # # Check for Python library path # AC_MSG_CHECKING([for Python3 library path]) if test -z "$PYTHON3_LDFLAGS"; then # (makes two attempts to ensure we've got a version number # from the interpreter) py3_version=`$PYTHON3 -c "from distutils.sysconfig import *; \ print(' '.join(get_config_vars('VERSION')))"` if test "$py3_version" == "[None]"; then if test -n "$PYTHON3_VERSION"; then py3_version=$PYTHON3_VERSION else py3_version=`$PYTHON3 -c "import sys; \ print(sys.version[[:3]])"` fi fi PYTHON3_LDFLAGS=`$PYTHON3 -c "from distutils.sysconfig import *; \ print('-L' + get_python_lib(0,1), \ '-lpython');"`$py3_version fi AC_MSG_RESULT([$PYTHON3_LDFLAGS]) AC_SUBST([PYTHON3_LDFLAGS]) # # Check for site packages # AC_MSG_CHECKING([for Python3 site-packages path]) if test -z "$PYTHON3_SITE_PKG"; then PYTHON3_SITE_PKG=`$PYTHON3 -c "import distutils.sysconfig; \ print(distutils.sysconfig.get_python_lib(0,0));"` fi AC_MSG_RESULT([$PYTHON3_SITE_PKG]) AC_SUBST([PYTHON3_SITE_PKG]) # # libraries which must be linked in when embedding # AC_MSG_CHECKING(for Python3 embedding libraries) if test -z "$PYTHON3_EMBED_LIBS"; then PYTHON3_EMBED_LIBS=`$PYTHON3 -c "import distutils.sysconfig; \ conf = distutils.sysconfig.get_config_var; \ print(conf('LOCALMODLIBS'), conf('LIBS'))"` fi AC_MSG_RESULT([$PYTHON3_EMBED_LIBS]) AC_SUBST(PYTHON3_EMBED_LIBS) # # linking flags needed when embedding # AC_MSG_CHECKING(for Python3 embedding linking flags) if test -z "$PYTHON3_EMBED_LDFLAGS"; then PYTHON3_EMBED_LDFLAGS=`$PYTHON3 -c "import distutils.sysconfig; \ conf = distutils.sysconfig.get_config_var; \ print(conf('LINKFORSHARED'))"` fi AC_MSG_RESULT([$PYTHON3_EMBED_LDFLAGS]) AC_SUBST(PYTHON3_EMBED_LDFLAGS) # # final check to see if everything compiles alright # AC_MSG_CHECKING([for Python3 development environment consistency]) AC_LANG_PUSH([C]) # save current global flags ac_save_LIBS="$LIBS" ac_save_CPPFLAGS="$CPPFLAGS" LIBS="$ac_save_LIBS $PYTHON3_LDFLAGS" CPPFLAGS="$ac_save_CPPFLAGS $PYTHON3_CPPFLAGS" AC_TRY_LINK([ #include ],[ Py_Initialize(); ],[python3exists=yes],[python3exists=no]) AC_MSG_RESULT([$python3exists]) if test ! "$python3exists" = "yes"; then AC_MSG_WARN([ Could not link test program to Python3. Maybe the main Python3 library has been installed in some non-standard library path. If so, pass it to configure, via the LDFLAGS environment variable. Example: ./configure LDFLAGS="-L/usr/non-standard-path/python3/lib" ============================================================================ ERROR! You probably have to install the development version of the Python3 package for your distribution. The exact name of this package varies among them. ============================================================================ ]) PYTHON3_VERSION="" fi AC_LANG_POP # turn back to default flags CPPFLAGS="$ac_save_CPPFLAGS" LIBS="$ac_save_LIBS" # # all done! # ]) pandora-build-0.171.1/m4/pandora_have_libpq.m40000644000175000017500000000243711506166014015731 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBPQ],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libpq dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libpq], [AS_HELP_STRING([--disable-libpq], [Build with libpq support @<:@default=on@:>@])], [ac_enable_libpq="$enableval"], [ac_enable_libpq="yes"]) AS_IF([test "x$ac_enable_libpq" = "xyes"],[ AC_CHECK_HEADERS([libpq-fe.h]) AC_LIB_HAVE_LINKFLAGS(pq,,[ #ifdef HAVE_LIBPQ_FE_H # include #else # include #endif ], [ PGconn *conn; conn = PQconnectdb(NULL); ]) ],[ ac_cv_libpq="no" ]) AM_CONDITIONAL(HAVE_LIBPQ, [test "x${ac_cv_libpq}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBPQ],[ AC_REQUIRE([_PANDORA_SEARCH_LIBPQ]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBPQ],[ AC_REQUIRE([PANDORA_HAVE_LIBPQ]) AS_IF([test "x${ac_cv_libpq}" = "xno"], AC_MSG_ERROR([libpq is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_have_thrift.m40000644000175000017500000000231611506166014016116 00000000000000dnl Copyright (C) 2010 Padraig O'Sullivan dnl This file is free software; Padraig O'Sullivan dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_THRIFT],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for thrift dnl -------------------------------------------------------------------- AC_ARG_ENABLE([thrift], [AS_HELP_STRING([--disable-thrift], [Build with thrift support @<:@default=on@:>@])], [ac_enable_thrift="$enableval"], [ac_enable_thrift="yes"]) AS_IF([test "x$ac_enable_thrift" = "xyes"],[ AC_LANG_PUSH(C++) AC_LIB_HAVE_LINKFLAGS(thrift,,[ #include ],[ apache::thrift::TOutput test_output; ]) AC_LANG_POP() ],[ ac_cv_thrift="no" ]) AM_CONDITIONAL(HAVE_THRIFT, [test "x${ac_cv_thrift}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_THRIFT],[ AC_REQUIRE([_PANDORA_SEARCH_THRIFT]) ]) AC_DEFUN([PANDORA_REQUIRE_THRIFT],[ AC_REQUIRE([PANDORA_HAVE_THRIFT]) AS_IF([test x$ac_cv_thrift= xno],[ AC_MSG_ERROR([thrift required for ${PACKAGE}]) ]) ]) pandora-build-0.171.1/m4/pandora_have_libmemcached.m40000644000175000017500000000660211506166014017215 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBMEMCACHED],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libmemcached dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libmemcached], [AS_HELP_STRING([--disable-libmemcached], [Build with libmemcached support @<:@default=on@:>@])], [ac_enable_libmemcached="$enableval"], [ac_enable_libmemcached="yes"]) AS_IF([test "x$ac_enable_libmemcached" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(memcached,,[ #include ],[ memcached_st memc; memcached_dump_func *df; memcached_lib_version(); ]) ],[ ac_cv_libmemcached="no" ]) AS_IF([test "x$ac_enable_libmemcached" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(memcachedprotocol,,[ #include ],[ struct memcached_protocol_st *protocol_handle; protocol_handle= memcached_protocol_create_instance(); ]) ],[ ac_cv_libmemcachedprotocol="no" ]) AC_CACHE_CHECK([if libmemcached has memcached_server_fn], [pandora_cv_libmemcached_server_fn], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include memcached_server_fn callbacks[1]; ]])], [pandora_cv_libmemcached_server_fn=yes], [pandora_cv_libmemcached_server_fn=no])]) AS_IF([test "x$pandora_cv_libmemcached_server_fn" = "xyes"],[ AC_DEFINE([HAVE_MEMCACHED_SERVER_FN],[1],[If we have the new memcached_server_fn typedef]) ]) ]) AC_DEFUN([_PANDORA_RECENT_LIBMEMCACHED],[ AC_CACHE_CHECK([if libmemcached is recent enough], [pandora_cv_recent_libmemcached],[ AS_IF([test "x${ac_cv_libmemcached}" = "xno"],[ pandora_cv_recent_libmemcached=no ],[ AS_IF([test "x$1" != "x"],[ pandora_need_libmemcached_version=`echo "$1" | perl -nle '/(\d+)\.(\d+)/; printf "%d%0.3d000", $[]1, $[]2 ;'` AS_IF([test "x${pandora_need_libmemcached_version}" = "x0000000"],[ pandora_cv_recent_libmemcached=yes ],[ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #if !defined(LIBMEMCACHED_VERSION_HEX) || LIBMEMCACHED_VERSION_HEX < 0x]]${pandora_need_libmemcached_version}[[ # error libmemcached too old! #endif ]],[[]]) ],[ pandora_cv_recent_libmemcached=yes ],[ pandora_cv_recent_libmemcached=no ]) ]) ],[ pandora_cv_recent_libmemcached=yes ]) ]) ]) AM_CONDITIONAL(HAVE_LIBMEMCACHED,[test "x${ac_cv_libmemcached}" = "xyes" -a "x${pandora_cv_recent_libmemcached}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBMEMCACHED],[ AC_REQUIRE([_PANDORA_SEARCH_LIBMEMCACHED]) _PANDORA_RECENT_LIBMEMCACHED($1) ]) AC_DEFUN([PANDORA_REQUIRE_LIBMEMCACHED],[ PANDORA_HAVE_LIBMEMCACHED($1) AS_IF([test "x{$pandora_cv_recent_libmemcached}" = "xno"], AC_MSG_ERROR([libmemcached is required for ${PACKAGE}])) ]) AC_DEFUN([PANDORA_REQUIRE_LIBMEMCACHEDPROTOCOL],[ PANDORA_HAVE_LIBMEMCACHED($1) AS_IF([test x$ac_cv_libmemcachedprotocol = xno], AC_MSG_ERROR([libmemcachedprotocol is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_have_libz.m40000644000175000017500000000236511506166014015562 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. #-------------------------------------------------------------------- # Check for libz #-------------------------------------------------------------------- AC_DEFUN([_PANDORA_SEARCH_LIBZ],[ AC_REQUIRE([AC_LIB_PREFIX]) AC_LIB_HAVE_LINKFLAGS(z,, [ #include ],[ crc32(0, Z_NULL, 0); ]) AM_CONDITIONAL(HAVE_LIBZ, [test "x${ac_cv_libz}" = "xyes"]) ]) AC_DEFUN([_PANDORA_HAVE_LIBZ],[ AC_ARG_ENABLE([libz], [AS_HELP_STRING([--disable-libz], [Build with libz support @<:@default=on@:>@])], [ac_enable_libz="$enableval"], [ac_enable_libz="yes"]) _PANDORA_SEARCH_LIBZ ]) AC_DEFUN([PANDORA_HAVE_LIBZ],[ AC_REQUIRE([_PANDORA_HAVE_LIBZ]) ]) AC_DEFUN([_PANDORA_REQUIRE_LIBZ],[ ac_enable_libz="yes" _PANDORA_SEARCH_LIBZ AS_IF([test x$ac_cv_libz = xno],[ AC_MSG_ERROR([libz is required for ${PACKAGE}. On Debian this can be found in zlib1g-dev. On RedHat this can be found in zlib-devel.]) ]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBZ],[ AC_REQUIRE([_PANDORA_REQUIRE_LIBZ]) ]) pandora-build-0.171.1/m4/pandora_have_libhashkit.m40000644000175000017500000000241311506166014016736 00000000000000dnl Copyright (C) 2010 NorthScale dnl This file is free software; NorthScale dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBHASHKIT],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libhashkit dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libhashkit], [AS_HELP_STRING([--disable-libhashkit], [Build with libhashkit support @<:@default=on@:>@])], [ac_enable_libhashkit="$enableval"], [ac_enable_libhashkit="yes"]) AS_IF([test "x$ac_enable_libhashkit" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(hashkit,,[ #include ],[ hashkit_st foo; hashkit_st *kit = hashkit_create(&foo); hashkit_free(kit); ]) ],[ ac_cv_libhashkit="no" ]) AM_CONDITIONAL(HAVE_LIBHASHKIT, [test "x${ac_cv_libhashkit}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBHASHKIT],[ AC_REQUIRE([_PANDORA_SEARCH_LIBHASHKIT]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBHASHKIT],[ AC_REQUIRE([PANDORA_HAVE_LIBHASHKIT]) AS_IF([test x$ac_cv_libhashkit = xno], AC_MSG_ERROR([libhashkit is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_bison.m40000644000175000017500000000227211506166014014726 00000000000000dnl Copyright (C) 2010 Monty Taylor dnl Copyright (C) 2010 Hartmut Holzgraefe dnl This file is free software; Monty Taylor and Hartmut Holzgraefe dnl give unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_BISON],[ dnl -------------------------------------------------------------------- dnl Check for bison dnl -------------------------------------------------------------------- AC_CHECK_PROGS([YACC], ['bison -y'], [:]) AS_IF([test "x$YACC" = "x:"],[ pandora_have_bison=no YACC='if test -f "$@"; then echo "WARNING: no proper bison binary found, ignoring changes to $<"; exit 0; else echo "ERROR: no proper bison binary found"; exit 1; fi;' ],[ pandora_have_bison=yes ]) AM_CONDITIONAL(HAVE_BISON, [test "x${pandora_have_bison}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_BISON],[ AC_REQUIRE([_PANDORA_SEARCH_BISON]) ]) AC_DEFUN([PANDORA_REQUIRE_BISON],[ AC_REQUIRE([PANDORA_HAVE_BISON]) AS_IF([test "x${pandora_have_bison}" = "xno" -a "$pandora_building_from_bzr" = "yes"], AC_MSG_ERROR(["bison is required for ${PACKAGE} to build from a bzr branch"]) ) ]) pandora-build-0.171.1/m4/pandora_have_libsqlite3.m40000644000175000017500000000241511506166014016671 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([_PANDORA_SEARCH_LIBSQLITE3],[ AC_REQUIRE([AC_LIB_PREFIX]) dnl -------------------------------------------------------------------- dnl Check for libsqlite3 dnl -------------------------------------------------------------------- AC_ARG_ENABLE([libsqlite3], [AS_HELP_STRING([--disable-libsqlite3], [Build with libsqlite3 support @<:@default=on@:>@])], [ac_enable_libsqlite3="$enableval"], [ac_enable_libsqlite3="yes"]) AS_IF([test "x$ac_enable_libsqlite3" = "xyes"],[ AC_LIB_HAVE_LINKFLAGS(sqlite3,,[ #include #include ],[ sqlite3 *db; sqlite3_open(NULL, &db); ]) ],[ ac_cv_libsqlite3="no" ]) AM_CONDITIONAL(HAVE_LIBSQLITE3, [test "x${ac_cv_libsqlite3}" = "xyes"]) ]) AC_DEFUN([PANDORA_HAVE_LIBSQLITE3],[ AC_REQUIRE([_PANDORA_SEARCH_LIBSQLITE3]) ]) AC_DEFUN([PANDORA_REQUIRE_LIBSQLITE3],[ AC_REQUIRE([_PANDORA_SEARCH_LIBSQLITE3]) AS_IF([test "x${ac_cv_libsqlite3}" = "xno"], AC_MSG_ERROR([libsqlite3 is required for ${PACKAGE}])) ]) pandora-build-0.171.1/m4/pandora_header_assert.m40000644000175000017500000000134611506166014016426 00000000000000dnl Copyright (C) 2009 Sun Microsystems, Inc. dnl This file is free software; Sun Microsystems, Inc. dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl PANDORA_HEADER_ASSERT dnl ---------------- dnl Check whether to enable assertions. AC_DEFUN([PANDORA_HEADER_ASSERT], [ AC_CHECK_HEADERS(assert.h) AC_MSG_CHECKING([whether to enable assertions]) AC_ARG_ENABLE([assert], [AS_HELP_STRING([--disable-assert], [Turn off assertions])], [ac_cv_assert="no"], [ac_cv_assert="yes"]) AC_MSG_RESULT([$ac_cv_assert]) AS_IF([test "$ac_cv_assert" = "no"], [AC_DEFINE(NDEBUG, 1, [Define to 1 if assertions should be disabled.])]) ]) pandora-build-0.171.1/config.h.in0000644000175000017500000000116111506166157013355 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Version number of package */ #undef VERSION pandora-build-0.171.1/configure.ac0000644000175000017500000000102011445502427013606 00000000000000# pandora-build # Copyright (C) 2009 Monty Taylor # All rights reserved. # # Use and distribution licensed under the BSD license. See # the COPYING file in this directory for full text. AC_INIT([pandora-build],PANDORA_CANONICAL_VERSION[.1], [http://launchpad.net/pandora-build]) AC_CONFIG_SRCDIR([m4/pandora_canonical.m4]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([config.h]) AM_INIT_AUTOMAKE(-Wall -Werror subdir-objects foreign) PANDORA_BLOCK_BAD_OPTIONS AC_CONFIG_FILES(Makefile) AC_OUTPUT pandora-build-0.171.1/README0000644000175000017500000000101611327356036012207 00000000000000Pandora-build is a set of autoconf macros and other tools intended to provide a sane and correct autoconf build environment. Currently, there are two ways to use it: a) installed on the system - everyone bulding from your VC will need an installed copy of pandora-build b) copied in to your project - copy the files from config/ and m4/ into your config/ and m4/ directories in your project Known projects using pandora-build at the moment are: Drizzle Gearmand libdrizzle libmemcached vapour kimura