commit f0eff04bd637c4536f73fa7bc71d233c5e644036 Author: Zack Weinberg zackw@cmu.edu Date: Tue Jun 5 10:14:18 2012 -0700
Top level directory tidying. --- .gitignore | 7 +- LICENSE | 14 +++- Makefile.am | 2 +- README.Linda | 117 ---------------------------- config-aux/cxx_delete_method.m4 | 78 +++++++++++++++++++ config-aux/cxx_static_assert.m4 | 57 ++++++++++++++ config-aux/cxxflags_stdcxx_11.m4 | 102 ++++++++++++++++++++++++ config-aux/maintainer.m4 | 39 +++++++++ config-aux/pkg.m4 | 159 ++++++++++++++++++++++++++++++++++++++ config-aux/ranlib.m4 | 69 ++++++++++++++++ config-aux/system_extensions.m4 | 81 +++++++++++++++++++ config-aux/winsock.m4 | 56 +++++++++++++ configure.ac | 1 + doc/README.Linda | 117 ++++++++++++++++++++++++++++ m4/cxx_delete_method.m4 | 78 ------------------- m4/cxx_static_assert.m4 | 57 -------------- m4/cxxflags_stdcxx_11.m4 | 102 ------------------------ m4/maintainer.m4 | 39 --------- m4/pkg.m4 | 159 -------------------------------------- m4/ranlib.m4 | 69 ---------------- m4/system_extensions.m4 | 81 ------------------- m4/winsock.m4 | 56 ------------- 22 files changed, 773 insertions(+), 767 deletions(-)
diff --git a/.gitignore b/.gitignore index 8de7c1e..aa3eb46 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,6 @@
/aclocal.m4 /autom4te.cache -/compile /config.guess /config.h /config.h.in @@ -24,12 +23,12 @@ /config.status /config.sub /configure -/depcomp -/install-sh /Makefile /Makefile.in -/missing /stamp-* +/config-aux/depcomp +/config-aux/install-sh +/config-aux/missing
/protolist.c /steglist.c diff --git a/LICENSE b/LICENSE index 3bcae2b..7aea274 100644 --- a/LICENSE +++ b/LICENSE @@ -34,7 +34,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
=====
-The files in m4/ and scripts/ each have their own individual copyright -and licensing, which may be more or less permissive than the above -license. However, those licenses DO NOT extend to the collective -work, the generated configure script, or to StegoTorus itself. +Some files in src/ contain material which is copyright other people +or organizations, and which may be licensed more permissively than the +above. Comments at the top of each file document its precise provenance +and licensing. + +All the files in config-aux/ and scripts/ have their own copyright and +licensing, indicated in comments at the top of the file; these licenses +may be more or *less* permissive than the above. Those licenses DO NOT +extend to the collective work, the generated configure script, or to +StegoTorus itself. diff --git a/Makefile.am b/Makefile.am index a21f053..64d1d33 100644 --- a/Makefile.am +++ b/Makefile.am @@ -2,7 +2,7 @@ # Copyright 2011, 2012 SRI International # See LICENSE for other credits and copying information
-ACLOCAL_AMFLAGS = -I m4 --install +ACLOCAL_AMFLAGS = -I config-aux --install
AM_CXXFLAGS = -Werror -Wall -Wextra -Wformat=2 AM_CPPFLAGS = -I. -I$(srcdir)/src -D_FORTIFY_SOURCE=2 $(lib_CPPFLAGS) diff --git a/README.Linda b/README.Linda deleted file mode 100644 index 3cb4d2e..0000000 --- a/README.Linda +++ /dev/null @@ -1,117 +0,0 @@ -compiling stegotorus on Mac OS X 10.6 -===================================== - -0) prelims - -Install Mac Ports from http://www.macports.org (here v2.0.3). -$> sudo port selfupdate [for good measure] - - a) autoconf 2.68 - -$> sudo port install autoconf -$> autoconf --version -autoconf (GNU Autoconf) 2.68 - - b) automake 1.11 - -$> sudo port install automake -$> automake --version -automake (GNU automake) 1.11.1 - - c) pkgconfig - -$> sudo port install pkgconfig - - d) openssl >= 1.0.1, libevent-2 - -$> sudo port install openssl -$> sudo port install libevent - - e) tor - -$> sudo port install tor -$> tor --version -[...] -Tor version 0.2.2.34 (git-c4eae752f0d157ce). - - -1) StegoTorus - -$> cd ~/src/DEFIANCE/stegotorus/sri -$> autoreconf -i -$> ./configure --disable-integration-tests --enable-silent-rules -[...] -configure: error: Package requirements (libcrypto++ >= 5.6.0) were not met: - -No package 'libcrypto++' found -[...] -$> sudo cp Desktop/libcrypto++.pc /usr/lib/pkgconfig/ -$> ./configure --disable-integration-tests --enable-silent-rules -$> make - - -compiling stegotorus under Ubuntu 11.10 -======================================= - -$> sudo apt-get install pkg-config libevent-2.0-5 libevent-dev - -Tor: ----- - -$> sudo cat >> /etc/apt/sources.list <<EOF -> deb http://deb.torproject.org/torproject.org oneiric main -> EOF -$> gpg --keyserver keys.gnupg.net --recv 886DDD89 -$> gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add - -$> sudo apt-get install tor tor-geoipdb -$> tor --version -[É] -Tor version 0.2.2.35 (git-73ff13ab3cc9570d). - -StegoTorus: ------------ - -$> autoreconf -i -$> ./configure --disable-integration-tests --enable-silent-rules -[...] -configure: error: Package requirements (libcrypto++ >= 5.6.0) were not met: - -No package 'libcrypto++' found -[...] -$> sudo apt-get install libcrypto++9 libcrypto++9-dbg libcrypto++-dev -$> ./configure --disable-integration-tests --enable-silent-rules -[...] -configure: error: Package requirements (zlib >= 1.2.3.4) were not met: - -No package 'zlib' found -[...] -$> sudo apt-get install zlib1g-dbg zlib1g-dev -$> ./configure --disable-integration-tests --enable-silent-rules -[...] -configure: error: Package requirements (zlib >= 1.2.3.4) were not met: - -No package 'zlib' found -[...] -$> sudo find /usr -name zlib.pc -/usr/lib/i386-linux-gnu/pkgconfig/zlib.pc -$> echo $PKG_CONFIG_PATH - -$> export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig -$> ./configure --disable-integration-tests --enable-silent-rules -$> make - - -compiling obfsproxy under Ubuntu 10.04 (DETERlab) -================================================= - -create local disk space: - -$> sudo /usr/local/etc/emulab/mkextrafs.pl /mnt - -copy source code there to compile: - -$> sudo mkdir /mnt/local/alice -$> sudo chown linda:SAF-DEFIANCE /mnt/local/alice -$> cd /mnt/local/alice -$> tar -xzvf ~/src/stegotorus.tar.gz -etc. diff --git a/config-aux/cxx_delete_method.m4 b/config-aux/cxx_delete_method.m4 new file mode 100644 index 0000000..2d467e7 --- /dev/null +++ b/config-aux/cxx_delete_method.m4 @@ -0,0 +1,78 @@ +# ============================================================================ +# http://www.gnu.org/software/autoconf-archive/ax_cxx_delete_method.m4 +# ============================================================================ +# +# SYNOPSIS +# +# AX_CXX_DELETE_METHOD +# +# DESCRIPTION +# +# Check whether the C++11 '= delete' syntax, for suppressing undesired +# implicit methods, is supported. If it is, the macro DELETE_METHOD is +# defined to '= delete'; otherwise it is defined to nothing. Thus, you +# can write +# +# class foo { +# ... +# private: +# foo(foo const&) DELETE_METHOD; +# }; +# +# to delete the 'foo' copy constructor or fall back to the idiom of +# a private undefined method if the compiler doesn't support this. +# +# Does not test '= delete' on a template specialization. +# Does not ensure that the compiler is in C++11 mode. +# +# LICENSE +# +# Copyright (c) 2012 Zack Weinberg zackw@panix.com +# +# 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. This file is offered as-is, without any +# warranty. + +AC_DEFUN([AX_CXX_DELETE_METHOD], [dnl + AC_LANG_ASSERT([C++]) + # This compilation should succeed... + AC_CACHE_CHECK(whether $CXX accepts method deletion, + ax_cv_cxx_delete_method_syntax, [ + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + struct foo { + foo(double); + foo(int) = delete; + }; + extern void t(foo const&); + void tt(double n) { t(n); } + ]])], + [ax_cv_cxx_delete_method_syntax=yes], + [ax_cv_cxx_delete_method_syntax=no])]) + # ... and this one should fail. + if test x$ax_cv_cxx_delete_method_syntax = xyes; then + AC_CACHE_CHECK(whether $CXX enforces method deletion, + ax_cv_cxx_delete_method_enforced, [ + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + struct foo { + foo(double); + foo(int) = delete; + }; + extern void t(foo const&); + void tt(int n) { t(n); } + ]])], + [ax_cv_cxx_delete_method_enforced=no], + [ax_cv_cxx_delete_method_enforced=yes])]) + fi + if test x$ax_cv_cxx_delete_method_syntax = xyes && + test x$ax_cv_cxx_delete_method_enforced = xyes + then + AC_DEFINE([DELETE_METHOD], [= delete], + [Define as `= delete' if your compiler supports C++11 method + deletion, as nothing otherwise.]) + else + AC_DEFINE([DELETE_METHOD], [], + [Define as `= delete' if your compiler supports C++11 method + deletion, as nothing otherwise.]) + fi +]) diff --git a/config-aux/cxx_static_assert.m4 b/config-aux/cxx_static_assert.m4 new file mode 100644 index 0000000..7bf69f8 --- /dev/null +++ b/config-aux/cxx_static_assert.m4 @@ -0,0 +1,57 @@ +# SYNOPSIS +# +# AX_CXX_STATIC_ASSERT +# +# DESCRIPTION +# +# Detect whether the C++ compiler, in its present operating mode, +# supports the C++11 'static_assert' construct. If it doesn't, +# define 'static_assert' as a preprocessor macro which provides +# more-or-less the same functionality. +# +# LICENSE +# +# Copyright (c) 2012 Zack Weinberg zackw@panix.com +# +# 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. This file is offered as-is, without any +# warranty. + +#serial 1 + +AC_DEFUN([AX_CXX_STATIC_ASSERT], [dnl + AC_LANG_ASSERT([C++])dnl + AC_CACHE_CHECK(whether $CXX accepts static_assert, ax_cv_cxx_static_assert, + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([dnl + template <typename T> + struct check + { static_assert(sizeof(int) <= sizeof(T), "not big enough"); }; + check<int> ok;])], + [ax_cv_cxx_static_assert=yes], [ax_cv_cxx_static_assert=no])]) + if test x$ax_cv_cxx_static_assert = xyes; then + AC_CACHE_CHECK(whether $CXX enforces static_assert, ax_cv_cxx_static_assert_e, + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([dnl + template <typename T> + struct check + { static_assert(sizeof(char[2]) <= sizeof(T), "not big enough"); }; + check<char> bad;])], + [ax_cv_cxx_static_assert_e=no], [ax_cv_cxx_static_assert_e=yes])]) + fi + if test x$ax_cv_cxx_static_assert = xyes && + test x$ax_cv_cxx_static_assert_e = xyes; then + AC_DEFINE(HAVE_STATIC_ASSERT, 1, + [Define to 1 if the C++ compiler supports static_assert.]) + fi + AH_VERBATIM([HAVE_STATIC_ASSERT_], +[#ifndef HAVE_STATIC_ASSERT +# define static_assert(expr, msg) typedef char static_assert_id[(expr)?1:-1] +# ifdef __COUNTER__ +# define static_assert_id static_assert_paste(static_assert_, __COUNTER__) +# else +# define static_assert_id static_assert_paste(static_assert_, __LINE__) +# endif +# define static_assert_paste(a,b) static_assert_paste_(a,b) +# define static_assert_paste_(a,b) a##b +#endif]) +]) diff --git a/config-aux/cxxflags_stdcxx_11.m4 b/config-aux/cxxflags_stdcxx_11.m4 new file mode 100644 index 0000000..7f06ed2 --- /dev/null +++ b/config-aux/cxxflags_stdcxx_11.m4 @@ -0,0 +1,102 @@ +# ============================================================================ +# http://www.gnu.org/software/autoconf-archive/ax_cxxflags_stdcxx_11.html +# ============================================================================ +# +# SYNOPSIS +# +# AX_CXXFLAGS_STDCXX_11([ext|noext]) +# +# DESCRIPTION +# +# Check for baseline language coverage in the compiler for the C++11 +# standard; if necessary, add switches to CXXFLAGS to enable support. +# The argument, if specified, indicates whether you insist on an extended +# mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. -std=c++11). +# If neither is specified, you get whatever works, with preference for an +# extended mode. +# +# LICENSE +# +# Copyright (c) 2008 Benjamin Kosnik bkoz@redhat.com +# Copyright (c) 2012 Zack Weinberg zackw@panix.com +# +# 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. This file is offered as-is, without any +# warranty. + +#serial 8 + +m4_define([_AX_CXXFLAGS_STDCXX_11_testbody], [ + template <typename T> + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + typedef check<check<bool>> right_angle_brackets; + + int a; + decltype(a) b; + + typedef check<int> check_type; + check_type c; + check_type&& cr = static_cast<check_type&&>(c); +]) + +AC_DEFUN([AX_CXXFLAGS_STDCXX_11], [dnl + m4_if([$1], [], [], + [$1], [ext], [], + [$1], [noext], [], + [m4_fatal([invalid argument `$1' to AX_CXXFLAGS_STDCXX_11])])dnl + AC_LANG_ASSERT([C++])dnl + ac_success=no + AC_CACHE_CHECK(whether $CXX supports C++11 features by default, + ax_cv_cxx_compile_cxx11, + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXXFLAGS_STDCXX_11_testbody])], + [ax_cv_cxx_compile_cxx11=yes], + [ax_cv_cxx_compile_cxx11=no])]) + if test x$ax_cv_cxx_compile_cxx11 = xyes; then + ac_success=yes + fi + + m4_if([$1], [noext], [], [dnl + if test x$ac_success = xno; then + for switch in -std=gnu++11 -std=gnu++0x; do + cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch]) + AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch, + $cachevar, + [ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $switch" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXXFLAGS_STDCXX_11_testbody])], + [eval $cachevar=yes], + [eval $cachevar=no]) + CXXFLAGS="$ac_save_CXXFLAGS"]) + if eval test x$$cachevar = xyes; then + CXXFLAGS="$CXXFLAGS $switch" + ac_success=yes + break + fi + done + fi]) + + m4_if([$1], [ext], [], [dnl + if test x$ac_success = xno; then + for switch in -std=c++11 -std=c++0x; do + cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch]) + AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch, + $cachevar, + [ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $switch" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXXFLAGS_STDCXX_11_testbody])], + [eval $cachevar=yes], + [eval $cachevar=no]) + CXXFLAGS="$ac_save_CXXFLAGS"]) + if eval test x$$cachevar = xyes; then + CXXFLAGS="$CXXFLAGS $switch" + ac_success=yes + break + fi + done + fi]) +]) diff --git a/config-aux/maintainer.m4 b/config-aux/maintainer.m4 new file mode 100644 index 0000000..07948a7 --- /dev/null +++ b/config-aux/maintainer.m4 @@ -0,0 +1,39 @@ +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2011 +# 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_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless `enable' is passed literally. +# For symmetry, `disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], +[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) diff --git a/config-aux/pkg.m4 b/config-aux/pkg.m4 new file mode 100644 index 0000000..9a71878 --- /dev/null +++ b/config-aux/pkg.m4 @@ -0,0 +1,159 @@ +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# serial 1 (pkg-config-0.24) +# +# Copyright © 2004 Scott James Remnant scott@netsplit.com. +# +# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +# only at the first occurence in configure.ac, so if the first place +# it's called might be skipped (such as if it is within an "if", you +# have to call PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$$1"; then + pkg_cv_[]$1="$$1" + elif test -n "$PKG_CONFIG"; then + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], + [pkg_failed=yes]) + else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see http://pkg-config.freedesktop.org/.])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +])# PKG_CHECK_MODULES diff --git a/config-aux/ranlib.m4 b/config-aux/ranlib.m4 new file mode 100644 index 0000000..ce4fe33 --- /dev/null +++ b/config-aux/ranlib.m4 @@ -0,0 +1,69 @@ +# SYNOPSIS +# +# AX_PROG_RANLIB +# +# DESCRIPTION +# +# In addition to everything AC_PROG_RANLIB does, determine whether it is +# _necessary_ to run 'ranlib' after 'ar'. If it is unnecessary (which is +# the case on most modern systems), reset the RANLIB variable to ':'. +# +# LICENSE +# +# Same as Autoconf proper. + +# serial 1 + +# 'ranlib' may be needed to make it possible for objects that occur +# later in an archive library to refer to symbols defined by objects +# earlier in the archive. Therefore, the testing strategy is to +# compile three small files where A refers to B refers to C, put C and +# B in an archive *in that order*, and then see if we can link A +# against the archive. + +AC_DEFUN([AX_PROG_RANLIB], +[AC_CHECK_TOOL([AR], [ar]) +AC_CHECK_TOOL([RANLIB], [ranlib], [:]) +if test x$RANLIB != x:; then + AC_CACHE_CHECK([whether ranlib is necessary], [ac_cv_prog_RANLIB_necessary], + [AC_LANG_PUSH([C]) + + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + extern int B(void); + int main(void) { return B(); } + ]])], + [cp conftest.$ac_objext conftA.$ac_objext], + [AC_MSG_ERROR([failed to compile test file A])]) + + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + extern int C(void); + int B(void) { return C(); } + ]])], + [cp conftest.$ac_objext conftB.$ac_objext], + [AC_MSG_ERROR([failed to compile test file B])]) + + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ + int C(void) { return 0; } + ]])], + [cp conftest.$ac_objext conftC.$ac_objext], + [AC_MSG_ERROR([failed to compile test file C])]) + + dnl There is no standard macro for creating an archive. + _AC_DO([$AR cru conftest.a conftC.$ac_objext conftB.$ac_objext]) || + AC_MSG_ERROR([failed to create test archive]) + + dnl There's no good way to make AC_LINK_IFELSE do what we need. + AS_IF([_AC_DO([$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftA.$ac_objext conftest.a >&AS_MESSAGE_LOG_FD])], + [ac_cv_prog_RANLIB_necessary=no], + [AS_IF([_AC_DO([$RANLIB conftest.a && $CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftA.$ac_objext conftest.a >&AS_MESSAGE_LOG_FD])], + [ac_cv_prog_RANLIB_necessary=yes], + [AC_MSG_ERROR([test link failed with and without ranlib])])]) + + rm -f conftest$ac_exeext conft[ABC].$ac_objext conftest.a + AC_LANG_POP([C]) + ]) + if test $ac_cv_prog_RANLIB_necessary = no; then + RANLIB=: + fi +fi +]) diff --git a/config-aux/system_extensions.m4 b/config-aux/system_extensions.m4 new file mode 100644 index 0000000..46b2f9e --- /dev/null +++ b/config-aux/system_extensions.m4 @@ -0,0 +1,81 @@ +# SYNOPSIS +# +# AX_SYS_EXTENSIONS +# +# DESCRIPTION +# +# Functionally equivalent to the stock AC_USE_SYSTEM_EXTENSIONS, but: +# does not trigger AC_CHECK_HEADER's backward compatibility mode; +# does not make use of AC_INCLUDES_DEFAULT; +# does not define _MINIX. +# +# LICENSE +# +# Same as Autoconf proper. + +# serial 1 + +# Enable extensions on systems that normally disable them, +# typically due to standards-conformance issues. +# +# Remember that #undef in AH_VERBATIM gets replaced with #define by +# AC_DEFINE. The goal here is to define all known feature-enabling +# macros, then, if reports of conflicts are made, disable macros that +# cause problems on some platforms (such as __EXTENSIONS__). +AC_DEFUN_ONCE([AX_SYS_EXTENSIONS], +[AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl +AC_BEFORE([$0], [AC_RUN_IFELSE])dnl +AC_PROVIDE([AC_USE_SYSTEM_EXTENSIONS])dnl Suppress the stock macro if used. + + AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=], [/**/]) + if test "$MINIX" = yes; then + AC_DEFINE([_POSIX_SOURCE], [1], + [Define to 1 if you need to in order for `stat' and other + things to work.]) + AC_DEFINE([_POSIX_1_SOURCE], [2], + [Define to 2 if the system does not provide POSIX.1 features + except with this defined.]) + fi + +dnl Use a different key than __EXTENSIONS__, as that name broke existing +dnl configure.ac when using autoheader 2.62. + AH_VERBATIM([USE_SYSTEM_EXTENSIONS], +[/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +]) + AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], + [ac_cv_safe_to_define___extensions__], + [AC_COMPILE_IFELSE( + dnl http://lists.gnu.org/archive/html/bug-gnulib/2006-02/msg00002.html + dnl implies that testing <stdlib.h> is adequate. + [AC_LANG_PROGRAM([[ +# define __EXTENSIONS__ 1 +# include <stdlib.h> + ]])], + [ac_cv_safe_to_define___extensions__=yes], + [ac_cv_safe_to_define___extensions__=no])]) + test $ac_cv_safe_to_define___extensions__ = yes && + AC_DEFINE([__EXTENSIONS__]) + AC_DEFINE([_ALL_SOURCE]) + AC_DEFINE([_GNU_SOURCE]) + AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) + AC_DEFINE([_TANDEM_SOURCE]) +])# AX_SYS_EXTENSIONS diff --git a/config-aux/winsock.m4 b/config-aux/winsock.m4 new file mode 100644 index 0000000..fd3d8b5 --- /dev/null +++ b/config-aux/winsock.m4 @@ -0,0 +1,56 @@ +# Copyright © 2011 Zack Weinberg zackw@panix.com +# +# Copying and distribution of this software, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This software is offered as-is, +# without any warranty. + +# The socket API requires a special library on Windows, but +# AC_SEARCH_LIBS cannot be used to find it, because it will +# mis-declare 'ntohl' on windows and cause the link to fail. +# +# This macro sets the substitution @ws2_LIBS@ to "-lws2_32" +# if you need that, and "" otherwise. It does not provide +# any #defines for the differences in socket headers between +# Windows and Unix -- just use #ifdef _WIN32. +# +# Implementation note: we use the same _cv_ variable that +# AC_SEARCH_LIBS would, because the test is what AC_SEARCH_LIBS +# *should* have done in this situation. +AC_DEFUN([AX_LIB_WINSOCK2], + [AC_CACHE_CHECK([for library containing ntohl], [ac_cv_search_ntohl], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([ + #ifdef _WIN32 + #include <winsock2.h> + #else + #include <arpa/inet.h> + #endif + ], [ + return (int)ntohl(42);]) + ]) + + ax_lib_winsock2_save_LIBS="$LIBS" + for ac_lib in '' -lws2_32; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=$ac_lib + fi + LIBS="$ac_lib $ax_lib_winsock2_save_LIBS" + AC_LINK_IFELSE([], [AS_VAR_SET([ac_cv_search_ntohl], [$ac_res])]) + AS_VAR_SET_IF([ac_cv_search_ntohl], [break]) + done + AS_VAR_SET_IF([ac_cv_search_ntohl], , + [AS_VAR_SET([ac_cv_search_ntohl], [no])]) + rm conftest.$ac_ext + LIBS="$ax_lib_winsock2_save_LIBS" + ]) + + ws32_LIBS= + case "$ac_cv_search_ntohl" in + no) AC_MSG_ERROR([could not find ntohl]) ;; + "none required") ;; + *) ws32_LIBS="$ac_cv_search_ntohl" + esac + AC_SUBST(ws32_LIBS) +]) diff --git a/configure.ac b/configure.ac index 4c23af6..0c858dc 100644 --- a/configure.ac +++ b/configure.ac @@ -5,6 +5,7 @@ dnl AC_PREREQ([2.61])dnl Possibly earlier will do, but this is what I have AC_INIT([stegotorus], [0.0]) AC_CONFIG_SRCDIR([src/main.cc]) +AC_CONFIG_AUX_DIR([config-aux]) AC_LANG([C++]) AM_INIT_AUTOMAKE([foreign nostdinc silent-rules subdir-objects]) AM_MAINTAINER_MODE([enable]) diff --git a/doc/README.Linda b/doc/README.Linda new file mode 100644 index 0000000..3cb4d2e --- /dev/null +++ b/doc/README.Linda @@ -0,0 +1,117 @@ +compiling stegotorus on Mac OS X 10.6 +===================================== + +0) prelims + +Install Mac Ports from http://www.macports.org (here v2.0.3). +$> sudo port selfupdate [for good measure] + + a) autoconf 2.68 + +$> sudo port install autoconf +$> autoconf --version +autoconf (GNU Autoconf) 2.68 + + b) automake 1.11 + +$> sudo port install automake +$> automake --version +automake (GNU automake) 1.11.1 + + c) pkgconfig + +$> sudo port install pkgconfig + + d) openssl >= 1.0.1, libevent-2 + +$> sudo port install openssl +$> sudo port install libevent + + e) tor + +$> sudo port install tor +$> tor --version +[...] +Tor version 0.2.2.34 (git-c4eae752f0d157ce). + + +1) StegoTorus + +$> cd ~/src/DEFIANCE/stegotorus/sri +$> autoreconf -i +$> ./configure --disable-integration-tests --enable-silent-rules +[...] +configure: error: Package requirements (libcrypto++ >= 5.6.0) were not met: + +No package 'libcrypto++' found +[...] +$> sudo cp Desktop/libcrypto++.pc /usr/lib/pkgconfig/ +$> ./configure --disable-integration-tests --enable-silent-rules +$> make + + +compiling stegotorus under Ubuntu 11.10 +======================================= + +$> sudo apt-get install pkg-config libevent-2.0-5 libevent-dev + +Tor: +---- + +$> sudo cat >> /etc/apt/sources.list <<EOF +> deb http://deb.torproject.org/torproject.org oneiric main +> EOF +$> gpg --keyserver keys.gnupg.net --recv 886DDD89 +$> gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add - +$> sudo apt-get install tor tor-geoipdb +$> tor --version +[É] +Tor version 0.2.2.35 (git-73ff13ab3cc9570d). + +StegoTorus: +----------- + +$> autoreconf -i +$> ./configure --disable-integration-tests --enable-silent-rules +[...] +configure: error: Package requirements (libcrypto++ >= 5.6.0) were not met: + +No package 'libcrypto++' found +[...] +$> sudo apt-get install libcrypto++9 libcrypto++9-dbg libcrypto++-dev +$> ./configure --disable-integration-tests --enable-silent-rules +[...] +configure: error: Package requirements (zlib >= 1.2.3.4) were not met: + +No package 'zlib' found +[...] +$> sudo apt-get install zlib1g-dbg zlib1g-dev +$> ./configure --disable-integration-tests --enable-silent-rules +[...] +configure: error: Package requirements (zlib >= 1.2.3.4) were not met: + +No package 'zlib' found +[...] +$> sudo find /usr -name zlib.pc +/usr/lib/i386-linux-gnu/pkgconfig/zlib.pc +$> echo $PKG_CONFIG_PATH + +$> export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig +$> ./configure --disable-integration-tests --enable-silent-rules +$> make + + +compiling obfsproxy under Ubuntu 10.04 (DETERlab) +================================================= + +create local disk space: + +$> sudo /usr/local/etc/emulab/mkextrafs.pl /mnt + +copy source code there to compile: + +$> sudo mkdir /mnt/local/alice +$> sudo chown linda:SAF-DEFIANCE /mnt/local/alice +$> cd /mnt/local/alice +$> tar -xzvf ~/src/stegotorus.tar.gz +etc. diff --git a/m4/cxx_delete_method.m4 b/m4/cxx_delete_method.m4 deleted file mode 100644 index 2d467e7..0000000 --- a/m4/cxx_delete_method.m4 +++ /dev/null @@ -1,78 +0,0 @@ -# ============================================================================ -# http://www.gnu.org/software/autoconf-archive/ax_cxx_delete_method.m4 -# ============================================================================ -# -# SYNOPSIS -# -# AX_CXX_DELETE_METHOD -# -# DESCRIPTION -# -# Check whether the C++11 '= delete' syntax, for suppressing undesired -# implicit methods, is supported. If it is, the macro DELETE_METHOD is -# defined to '= delete'; otherwise it is defined to nothing. Thus, you -# can write -# -# class foo { -# ... -# private: -# foo(foo const&) DELETE_METHOD; -# }; -# -# to delete the 'foo' copy constructor or fall back to the idiom of -# a private undefined method if the compiler doesn't support this. -# -# Does not test '= delete' on a template specialization. -# Does not ensure that the compiler is in C++11 mode. -# -# LICENSE -# -# Copyright (c) 2012 Zack Weinberg zackw@panix.com -# -# 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. This file is offered as-is, without any -# warranty. - -AC_DEFUN([AX_CXX_DELETE_METHOD], [dnl - AC_LANG_ASSERT([C++]) - # This compilation should succeed... - AC_CACHE_CHECK(whether $CXX accepts method deletion, - ax_cv_cxx_delete_method_syntax, [ - AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ - struct foo { - foo(double); - foo(int) = delete; - }; - extern void t(foo const&); - void tt(double n) { t(n); } - ]])], - [ax_cv_cxx_delete_method_syntax=yes], - [ax_cv_cxx_delete_method_syntax=no])]) - # ... and this one should fail. - if test x$ax_cv_cxx_delete_method_syntax = xyes; then - AC_CACHE_CHECK(whether $CXX enforces method deletion, - ax_cv_cxx_delete_method_enforced, [ - AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ - struct foo { - foo(double); - foo(int) = delete; - }; - extern void t(foo const&); - void tt(int n) { t(n); } - ]])], - [ax_cv_cxx_delete_method_enforced=no], - [ax_cv_cxx_delete_method_enforced=yes])]) - fi - if test x$ax_cv_cxx_delete_method_syntax = xyes && - test x$ax_cv_cxx_delete_method_enforced = xyes - then - AC_DEFINE([DELETE_METHOD], [= delete], - [Define as `= delete' if your compiler supports C++11 method - deletion, as nothing otherwise.]) - else - AC_DEFINE([DELETE_METHOD], [], - [Define as `= delete' if your compiler supports C++11 method - deletion, as nothing otherwise.]) - fi -]) diff --git a/m4/cxx_static_assert.m4 b/m4/cxx_static_assert.m4 deleted file mode 100644 index 7bf69f8..0000000 --- a/m4/cxx_static_assert.m4 +++ /dev/null @@ -1,57 +0,0 @@ -# SYNOPSIS -# -# AX_CXX_STATIC_ASSERT -# -# DESCRIPTION -# -# Detect whether the C++ compiler, in its present operating mode, -# supports the C++11 'static_assert' construct. If it doesn't, -# define 'static_assert' as a preprocessor macro which provides -# more-or-less the same functionality. -# -# LICENSE -# -# Copyright (c) 2012 Zack Weinberg zackw@panix.com -# -# 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. This file is offered as-is, without any -# warranty. - -#serial 1 - -AC_DEFUN([AX_CXX_STATIC_ASSERT], [dnl - AC_LANG_ASSERT([C++])dnl - AC_CACHE_CHECK(whether $CXX accepts static_assert, ax_cv_cxx_static_assert, - [AC_COMPILE_IFELSE([AC_LANG_SOURCE([dnl - template <typename T> - struct check - { static_assert(sizeof(int) <= sizeof(T), "not big enough"); }; - check<int> ok;])], - [ax_cv_cxx_static_assert=yes], [ax_cv_cxx_static_assert=no])]) - if test x$ax_cv_cxx_static_assert = xyes; then - AC_CACHE_CHECK(whether $CXX enforces static_assert, ax_cv_cxx_static_assert_e, - [AC_COMPILE_IFELSE([AC_LANG_SOURCE([dnl - template <typename T> - struct check - { static_assert(sizeof(char[2]) <= sizeof(T), "not big enough"); }; - check<char> bad;])], - [ax_cv_cxx_static_assert_e=no], [ax_cv_cxx_static_assert_e=yes])]) - fi - if test x$ax_cv_cxx_static_assert = xyes && - test x$ax_cv_cxx_static_assert_e = xyes; then - AC_DEFINE(HAVE_STATIC_ASSERT, 1, - [Define to 1 if the C++ compiler supports static_assert.]) - fi - AH_VERBATIM([HAVE_STATIC_ASSERT_], -[#ifndef HAVE_STATIC_ASSERT -# define static_assert(expr, msg) typedef char static_assert_id[(expr)?1:-1] -# ifdef __COUNTER__ -# define static_assert_id static_assert_paste(static_assert_, __COUNTER__) -# else -# define static_assert_id static_assert_paste(static_assert_, __LINE__) -# endif -# define static_assert_paste(a,b) static_assert_paste_(a,b) -# define static_assert_paste_(a,b) a##b -#endif]) -]) diff --git a/m4/cxxflags_stdcxx_11.m4 b/m4/cxxflags_stdcxx_11.m4 deleted file mode 100644 index 7f06ed2..0000000 --- a/m4/cxxflags_stdcxx_11.m4 +++ /dev/null @@ -1,102 +0,0 @@ -# ============================================================================ -# http://www.gnu.org/software/autoconf-archive/ax_cxxflags_stdcxx_11.html -# ============================================================================ -# -# SYNOPSIS -# -# AX_CXXFLAGS_STDCXX_11([ext|noext]) -# -# DESCRIPTION -# -# Check for baseline language coverage in the compiler for the C++11 -# standard; if necessary, add switches to CXXFLAGS to enable support. -# The argument, if specified, indicates whether you insist on an extended -# mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. -std=c++11). -# If neither is specified, you get whatever works, with preference for an -# extended mode. -# -# LICENSE -# -# Copyright (c) 2008 Benjamin Kosnik bkoz@redhat.com -# Copyright (c) 2012 Zack Weinberg zackw@panix.com -# -# 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. This file is offered as-is, without any -# warranty. - -#serial 8 - -m4_define([_AX_CXXFLAGS_STDCXX_11_testbody], [ - template <typename T> - struct check - { - static_assert(sizeof(int) <= sizeof(T), "not big enough"); - }; - - typedef check<check<bool>> right_angle_brackets; - - int a; - decltype(a) b; - - typedef check<int> check_type; - check_type c; - check_type&& cr = static_cast<check_type&&>(c); -]) - -AC_DEFUN([AX_CXXFLAGS_STDCXX_11], [dnl - m4_if([$1], [], [], - [$1], [ext], [], - [$1], [noext], [], - [m4_fatal([invalid argument `$1' to AX_CXXFLAGS_STDCXX_11])])dnl - AC_LANG_ASSERT([C++])dnl - ac_success=no - AC_CACHE_CHECK(whether $CXX supports C++11 features by default, - ax_cv_cxx_compile_cxx11, - [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXXFLAGS_STDCXX_11_testbody])], - [ax_cv_cxx_compile_cxx11=yes], - [ax_cv_cxx_compile_cxx11=no])]) - if test x$ax_cv_cxx_compile_cxx11 = xyes; then - ac_success=yes - fi - - m4_if([$1], [noext], [], [dnl - if test x$ac_success = xno; then - for switch in -std=gnu++11 -std=gnu++0x; do - cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch]) - AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch, - $cachevar, - [ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS $switch" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXXFLAGS_STDCXX_11_testbody])], - [eval $cachevar=yes], - [eval $cachevar=no]) - CXXFLAGS="$ac_save_CXXFLAGS"]) - if eval test x$$cachevar = xyes; then - CXXFLAGS="$CXXFLAGS $switch" - ac_success=yes - break - fi - done - fi]) - - m4_if([$1], [ext], [], [dnl - if test x$ac_success = xno; then - for switch in -std=c++11 -std=c++0x; do - cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch]) - AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch, - $cachevar, - [ac_save_CXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS $switch" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXXFLAGS_STDCXX_11_testbody])], - [eval $cachevar=yes], - [eval $cachevar=no]) - CXXFLAGS="$ac_save_CXXFLAGS"]) - if eval test x$$cachevar = xyes; then - CXXFLAGS="$CXXFLAGS $switch" - ac_success=yes - break - fi - done - fi]) -]) diff --git a/m4/maintainer.m4 b/m4/maintainer.m4 deleted file mode 100644 index 07948a7..0000000 --- a/m4/maintainer.m4 +++ /dev/null @@ -1,39 +0,0 @@ -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2011 -# 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_MAINTAINER_MODE([DEFAULT-MODE]) -# ---------------------------------- -# Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless `enable' is passed literally. -# For symmetry, `disable' may be passed as well. Anyway, the user -# can override the default with the --enable/--disable switch. -AC_DEFUN([AM_MAINTAINER_MODE], -[m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], -[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl -] -) - -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) diff --git a/m4/pkg.m4 b/m4/pkg.m4 deleted file mode 100644 index 9a71878..0000000 --- a/m4/pkg.m4 +++ /dev/null @@ -1,159 +0,0 @@ -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# serial 1 (pkg-config-0.24) -# -# Copyright © 2004 Scott James Remnant scott@netsplit.com. -# -# 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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. - -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) -m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) -AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) -AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi -fi[]dnl -])# PKG_PROG_PKG_CONFIG - -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -# only at the first occurence in configure.ac, so if the first place -# it's called might be skipped (such as if it is within an "if", you -# have to call PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_default([$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) - -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- -m4_define([_PKG_CONFIG], -[if test -n "$$1"; then - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes ], - [pkg_failed=yes]) - else - pkg_failed=untried -fi[]dnl -])# _PKG_CONFIG - -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED - - -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $1]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - AC_MSG_RESULT([no]) - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - m4_default([$4], [AC_MSG_ERROR( -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT])[]dnl - ]) -elif test $pkg_failed = untried; then - AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( -[The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -_PKG_TEXT - -To get pkg-config, see http://pkg-config.freedesktop.org/.])[]dnl - ]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - $3 -fi[]dnl -])# PKG_CHECK_MODULES diff --git a/m4/ranlib.m4 b/m4/ranlib.m4 deleted file mode 100644 index ce4fe33..0000000 --- a/m4/ranlib.m4 +++ /dev/null @@ -1,69 +0,0 @@ -# SYNOPSIS -# -# AX_PROG_RANLIB -# -# DESCRIPTION -# -# In addition to everything AC_PROG_RANLIB does, determine whether it is -# _necessary_ to run 'ranlib' after 'ar'. If it is unnecessary (which is -# the case on most modern systems), reset the RANLIB variable to ':'. -# -# LICENSE -# -# Same as Autoconf proper. - -# serial 1 - -# 'ranlib' may be needed to make it possible for objects that occur -# later in an archive library to refer to symbols defined by objects -# earlier in the archive. Therefore, the testing strategy is to -# compile three small files where A refers to B refers to C, put C and -# B in an archive *in that order*, and then see if we can link A -# against the archive. - -AC_DEFUN([AX_PROG_RANLIB], -[AC_CHECK_TOOL([AR], [ar]) -AC_CHECK_TOOL([RANLIB], [ranlib], [:]) -if test x$RANLIB != x:; then - AC_CACHE_CHECK([whether ranlib is necessary], [ac_cv_prog_RANLIB_necessary], - [AC_LANG_PUSH([C]) - - AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ - extern int B(void); - int main(void) { return B(); } - ]])], - [cp conftest.$ac_objext conftA.$ac_objext], - [AC_MSG_ERROR([failed to compile test file A])]) - - AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ - extern int C(void); - int B(void) { return C(); } - ]])], - [cp conftest.$ac_objext conftB.$ac_objext], - [AC_MSG_ERROR([failed to compile test file B])]) - - AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ - int C(void) { return 0; } - ]])], - [cp conftest.$ac_objext conftC.$ac_objext], - [AC_MSG_ERROR([failed to compile test file C])]) - - dnl There is no standard macro for creating an archive. - _AC_DO([$AR cru conftest.a conftC.$ac_objext conftB.$ac_objext]) || - AC_MSG_ERROR([failed to create test archive]) - - dnl There's no good way to make AC_LINK_IFELSE do what we need. - AS_IF([_AC_DO([$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftA.$ac_objext conftest.a >&AS_MESSAGE_LOG_FD])], - [ac_cv_prog_RANLIB_necessary=no], - [AS_IF([_AC_DO([$RANLIB conftest.a && $CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftA.$ac_objext conftest.a >&AS_MESSAGE_LOG_FD])], - [ac_cv_prog_RANLIB_necessary=yes], - [AC_MSG_ERROR([test link failed with and without ranlib])])]) - - rm -f conftest$ac_exeext conft[ABC].$ac_objext conftest.a - AC_LANG_POP([C]) - ]) - if test $ac_cv_prog_RANLIB_necessary = no; then - RANLIB=: - fi -fi -]) diff --git a/m4/system_extensions.m4 b/m4/system_extensions.m4 deleted file mode 100644 index 46b2f9e..0000000 --- a/m4/system_extensions.m4 +++ /dev/null @@ -1,81 +0,0 @@ -# SYNOPSIS -# -# AX_SYS_EXTENSIONS -# -# DESCRIPTION -# -# Functionally equivalent to the stock AC_USE_SYSTEM_EXTENSIONS, but: -# does not trigger AC_CHECK_HEADER's backward compatibility mode; -# does not make use of AC_INCLUDES_DEFAULT; -# does not define _MINIX. -# -# LICENSE -# -# Same as Autoconf proper. - -# serial 1 - -# Enable extensions on systems that normally disable them, -# typically due to standards-conformance issues. -# -# Remember that #undef in AH_VERBATIM gets replaced with #define by -# AC_DEFINE. The goal here is to define all known feature-enabling -# macros, then, if reports of conflicts are made, disable macros that -# cause problems on some platforms (such as __EXTENSIONS__). -AC_DEFUN_ONCE([AX_SYS_EXTENSIONS], -[AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl -AC_BEFORE([$0], [AC_RUN_IFELSE])dnl -AC_PROVIDE([AC_USE_SYSTEM_EXTENSIONS])dnl Suppress the stock macro if used. - - AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=], [/**/]) - if test "$MINIX" = yes; then - AC_DEFINE([_POSIX_SOURCE], [1], - [Define to 1 if you need to in order for `stat' and other - things to work.]) - AC_DEFINE([_POSIX_1_SOURCE], [2], - [Define to 2 if the system does not provide POSIX.1 features - except with this defined.]) - fi - -dnl Use a different key than __EXTENSIONS__, as that name broke existing -dnl configure.ac when using autoheader 2.62. - AH_VERBATIM([USE_SYSTEM_EXTENSIONS], -[/* Enable extensions on AIX 3, Interix. */ -#ifndef _ALL_SOURCE -# undef _ALL_SOURCE -#endif -/* Enable GNU extensions on systems that have them. */ -#ifndef _GNU_SOURCE -# undef _GNU_SOURCE -#endif -/* Enable threading extensions on Solaris. */ -#ifndef _POSIX_PTHREAD_SEMANTICS -# undef _POSIX_PTHREAD_SEMANTICS -#endif -/* Enable extensions on HP NonStop. */ -#ifndef _TANDEM_SOURCE -# undef _TANDEM_SOURCE -#endif -/* Enable general extensions on Solaris. */ -#ifndef __EXTENSIONS__ -# undef __EXTENSIONS__ -#endif -]) - AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], - [ac_cv_safe_to_define___extensions__], - [AC_COMPILE_IFELSE( - dnl http://lists.gnu.org/archive/html/bug-gnulib/2006-02/msg00002.html - dnl implies that testing <stdlib.h> is adequate. - [AC_LANG_PROGRAM([[ -# define __EXTENSIONS__ 1 -# include <stdlib.h> - ]])], - [ac_cv_safe_to_define___extensions__=yes], - [ac_cv_safe_to_define___extensions__=no])]) - test $ac_cv_safe_to_define___extensions__ = yes && - AC_DEFINE([__EXTENSIONS__]) - AC_DEFINE([_ALL_SOURCE]) - AC_DEFINE([_GNU_SOURCE]) - AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) - AC_DEFINE([_TANDEM_SOURCE]) -])# AX_SYS_EXTENSIONS diff --git a/m4/winsock.m4 b/m4/winsock.m4 deleted file mode 100644 index fd3d8b5..0000000 --- a/m4/winsock.m4 +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright © 2011 Zack Weinberg zackw@panix.com -# -# Copying and distribution of this software, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This software is offered as-is, -# without any warranty. - -# The socket API requires a special library on Windows, but -# AC_SEARCH_LIBS cannot be used to find it, because it will -# mis-declare 'ntohl' on windows and cause the link to fail. -# -# This macro sets the substitution @ws2_LIBS@ to "-lws2_32" -# if you need that, and "" otherwise. It does not provide -# any #defines for the differences in socket headers between -# Windows and Unix -- just use #ifdef _WIN32. -# -# Implementation note: we use the same _cv_ variable that -# AC_SEARCH_LIBS would, because the test is what AC_SEARCH_LIBS -# *should* have done in this situation. -AC_DEFUN([AX_LIB_WINSOCK2], - [AC_CACHE_CHECK([for library containing ntohl], [ac_cv_search_ntohl], - [AC_LANG_CONFTEST([AC_LANG_PROGRAM([ - #ifdef _WIN32 - #include <winsock2.h> - #else - #include <arpa/inet.h> - #endif - ], [ - return (int)ntohl(42);]) - ]) - - ax_lib_winsock2_save_LIBS="$LIBS" - for ac_lib in '' -lws2_32; do - if test -z "$ac_lib"; then - ac_res="none required" - else - ac_res=$ac_lib - fi - LIBS="$ac_lib $ax_lib_winsock2_save_LIBS" - AC_LINK_IFELSE([], [AS_VAR_SET([ac_cv_search_ntohl], [$ac_res])]) - AS_VAR_SET_IF([ac_cv_search_ntohl], [break]) - done - AS_VAR_SET_IF([ac_cv_search_ntohl], , - [AS_VAR_SET([ac_cv_search_ntohl], [no])]) - rm conftest.$ac_ext - LIBS="$ax_lib_winsock2_save_LIBS" - ]) - - ws32_LIBS= - case "$ac_cv_search_ntohl" in - no) AC_MSG_ERROR([could not find ntohl]) ;; - "none required") ;; - *) ws32_LIBS="$ac_cv_search_ntohl" - esac - AC_SUBST(ws32_LIBS) -])
tor-commits@lists.torproject.org