Jeff Thompson | b752300 | 2013-10-09 10:25:00 -0700 | [diff] [blame] | 1 | # To build using autotools on OS X: |
| 2 | # $ sudo port install autoconf |
| 3 | # $ sudo port install automake |
| 4 | # $ sudo port install doxygen |
| 5 | # Enter the following to show directory for m4 macros, and download the the following into there (use sudo): |
| 6 | # $ aclocal --print |
| 7 | # http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_cxx_compile_stdcxx_11.m4 |
| 8 | # http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_prog_doxygen.m4 |
| 9 | # http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_check_openssl.m4 |
| 10 | # http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_lib_sqlite3.m4 |
| 11 | # http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_prefix_config_h.m4 |
| 12 | |
Jeff Thompson | ff092f5 | 2013-06-19 13:38:12 -0700 | [diff] [blame] | 13 | AC_PREREQ([2.59]) |
Jeff Thompson | 93a2416 | 2013-09-27 13:28:13 -0700 | [diff] [blame] | 14 | AC_INIT([ndn-cpp], [0.2], [ndn-lib@lists.cs.ucla.edu], [ndn-cpp], [https://github.com/named-data/ndn-cpp]) |
Jeff Thompson | ff092f5 | 2013-06-19 13:38:12 -0700 | [diff] [blame] | 15 | AM_INIT_AUTOMAKE([1.10 -Wall no-define foreign]) |
| 16 | |
Jeff Thompson | 23cb742 | 2013-10-09 16:11:47 -0700 | [diff] [blame] | 17 | AC_CONFIG_MACRO_DIR([m4]) |
Jeff Thompson | 93a2416 | 2013-09-27 13:28:13 -0700 | [diff] [blame] | 18 | AC_CONFIG_SRCDIR([config.h.in]) |
Jeff Thompson | b752300 | 2013-10-09 10:25:00 -0700 | [diff] [blame] | 19 | # Create config.h without prefixes. |
| 20 | AC_CONFIG_HEADERS(config.h) |
| 21 | # Add prefixes and output to a unique file name. |
| 22 | AX_PREFIX_CONFIG_H(ndn-cpp/ndn-cpp-config.h) |
Jeff Thompson | 47053ad | 2013-08-05 10:36:53 -0700 | [diff] [blame] | 23 | AM_MAINTAINER_MODE |
Jeff Thompson | 3b3aabf | 2013-06-21 16:50:20 -0700 | [diff] [blame] | 24 | AM_PROG_AR |
Jeff Thompson | 4f03164 | 2013-08-05 11:03:16 -0700 | [diff] [blame] | 25 | AC_PROG_LIBTOOL |
Jeff Thompson | 23cb742 | 2013-10-09 16:11:47 -0700 | [diff] [blame] | 26 | LT_PREREQ([2.2]) |
| 27 | LT_INIT() |
Jeff Thompson | 4f03164 | 2013-08-05 11:03:16 -0700 | [diff] [blame] | 28 | AC_PROG_CXX |
Jeff Thompson | 1a1b4c0 | 2013-06-28 22:28:51 -0700 | [diff] [blame] | 29 | AM_PROG_CC_C_O |
Jeff Thompson | fcc4daa | 2013-10-01 14:52:23 -0700 | [diff] [blame] | 30 | AC_PROG_OBJCXX |
Jeff Thompson | ff092f5 | 2013-06-19 13:38:12 -0700 | [diff] [blame] | 31 | AC_LANG([C++]) |
Jeff Thompson | 32a2333 | 2013-10-07 18:39:00 -0700 | [diff] [blame] | 32 | AC_TYPE_SIZE_T |
| 33 | AC_TYPE_INT8_T |
| 34 | AC_TYPE_INT16_T |
| 35 | AC_TYPE_INT32_T |
| 36 | AC_TYPE_INT64_T |
| 37 | AC_TYPE_UINT8_T |
| 38 | AC_TYPE_UINT16_T |
| 39 | AC_TYPE_UINT32_T |
| 40 | AC_TYPE_UINT64_T |
| 41 | AC_CHECK_FUNCS([memcmp]) |
| 42 | AC_CHECK_FUNCS([memcpy]) |
| 43 | AC_CHECK_FUNCS([memset]) |
Jeff Thompson | 1b8f4c9 | 2013-06-19 16:18:46 -0700 | [diff] [blame] | 44 | AX_CXX_COMPILE_STDCXX_11(, optional) |
Jeff Thompson | ff092f5 | 2013-06-19 13:38:12 -0700 | [diff] [blame] | 45 | |
| 46 | AC_MSG_CHECKING([for std::shared_ptr]) |
| 47 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM( |
| 48 | [[#include <memory>]] |
| 49 | [[std::shared_ptr<int> have_shared_ptr;]]) |
| 50 | ], [ |
| 51 | AC_MSG_RESULT([yes]) |
| 52 | AC_DEFINE_UNQUOTED([HAVE_STD_SHARED_PTR], 1, [1 if have the `std::shared_ptr' class.]) |
| 53 | ], [ |
| 54 | AC_MSG_RESULT([no]) |
| 55 | AC_DEFINE_UNQUOTED([HAVE_STD_SHARED_PTR], 0, [1 if have the `std::shared_ptr' class.]) |
| 56 | ]) |
Jeff Thompson | 9e9ea9f | 2013-06-22 10:31:18 -0700 | [diff] [blame] | 57 | AC_MSG_CHECKING([for boost::shared_ptr]) |
Jeff Thompson | ff092f5 | 2013-06-19 13:38:12 -0700 | [diff] [blame] | 58 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM( |
| 59 | [[#include <boost/shared_ptr.hpp>]] |
| 60 | [[boost::shared_ptr<int> have_shared_ptr;]]) |
| 61 | ], [ |
| 62 | AC_MSG_RESULT([yes]) |
| 63 | AC_DEFINE_UNQUOTED([HAVE_BOOST_SHARED_PTR], 1, [1 if have the `boost::shared_ptr' class.]) |
| 64 | ], [ |
| 65 | AC_MSG_RESULT([no]) |
| 66 | AC_DEFINE_UNQUOTED([HAVE_BOOST_SHARED_PTR], 0, [1 if have the `boost::shared_ptr' class.]) |
| 67 | ]) |
| 68 | |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 69 | AC_MSG_CHECKING([for std::function]) |
| 70 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM( |
| 71 | [[#include <functional>]] |
| 72 | [[std::function<int> have_function();]]) |
| 73 | ], [ |
| 74 | AC_MSG_RESULT([yes]) |
| 75 | AC_DEFINE_UNQUOTED([HAVE_STD_FUNCTION], 1, [1 if have the `std::function' class.]) |
| 76 | ], [ |
| 77 | AC_MSG_RESULT([no]) |
| 78 | AC_DEFINE_UNQUOTED([HAVE_STD_FUNCTION], 0, [1 if have the `std::function' class.]) |
| 79 | ]) |
| 80 | AC_MSG_CHECKING([for boost::function]) |
| 81 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM( |
| 82 | [[#include <boost/function.hpp>]] |
| 83 | [[boost::function<int> have_function();]]) |
| 84 | ], [ |
| 85 | AC_MSG_RESULT([yes]) |
| 86 | AC_DEFINE_UNQUOTED([HAVE_BOOST_FUNCTION], 1, [1 if have the `boost::function' class.]) |
| 87 | ], [ |
| 88 | AC_MSG_RESULT([no]) |
| 89 | AC_DEFINE_UNQUOTED([HAVE_BOOST_FUNCTION], 0, [1 if have the `boost::function' class.]) |
| 90 | ]) |
| 91 | |
Jeff Thompson | d0f62e1 | 2013-10-09 17:41:25 -0700 | [diff] [blame] | 92 | # Require libcrypto. |
| 93 | AC_CHECK_LIB([crypto], [EVP_EncryptInit], [], |
| 94 | [AC_MSG_FAILURE([can't find openssl crypto lib])]) |
| 95 | |
Jeff Thompson | 3a56b01 | 2013-10-09 17:47:35 -0700 | [diff] [blame^] | 96 | # Conditionally use libsqlite3. AX_LIB_SQLITE3 defines HAVE_SQLITE3. |
Jeff Thompson | d0f62e1 | 2013-10-09 17:41:25 -0700 | [diff] [blame] | 97 | AX_LIB_SQLITE3() |
Jeff Thompson | 3a56b01 | 2013-10-09 17:47:35 -0700 | [diff] [blame^] | 98 | if test "$HAVE_SQLITE3" == 1 ; then |
Jeff Thompson | d0f62e1 | 2013-10-09 17:41:25 -0700 | [diff] [blame] | 99 | AC_CHECK_LIB([sqlite3], [sqlite3_open], [], |
| 100 | [AC_MSG_FAILURE([have sqlite2 headers but no libsqlite3])]) |
| 101 | fi |
| 102 | |
Jeff Thompson | 9cf9dfb | 2013-10-04 16:36:52 -0700 | [diff] [blame] | 103 | AC_MSG_CHECKING([for OSX SecKeychain]) |
| 104 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM( |
| 105 | [[#include <CoreFoundation/CoreFoundation.h>]] |
| 106 | [[#include <Security/Security.h>]] |
| 107 | [[#include <CoreServices/CoreServices.h>]] |
| 108 | [[void test() { SecKeychainRef x; }]]) |
| 109 | ], [ |
| 110 | AC_MSG_RESULT([yes]) |
| 111 | AC_DEFINE_UNQUOTED([HAVE_OSX_SECKEYCHAIN], 1, [1 if have OSX SecKeychain.]) |
| 112 | ], [ |
| 113 | AC_MSG_RESULT([no]) |
| 114 | AC_DEFINE_UNQUOTED([HAVE_OSX_SECKEYCHAIN], 0, [1 if have OSX SecKeychain.]) |
| 115 | ]) |
| 116 | |
Jeff Thompson | ca45e55 | 2013-06-26 17:40:06 -0700 | [diff] [blame] | 117 | DX_HTML_FEATURE(ON) |
| 118 | DX_CHM_FEATURE(OFF) |
| 119 | DX_CHI_FEATURE(OFF) |
| 120 | DX_MAN_FEATURE(OFF) |
| 121 | DX_RTF_FEATURE(OFF) |
| 122 | DX_XML_FEATURE(OFF) |
| 123 | DX_PDF_FEATURE(OFF) |
| 124 | DX_PS_FEATURE(OFF) |
| 125 | DX_INIT_DOXYGEN([$PACKAGE_NAME],[Doxyfile]) |
| 126 | |
Jeff Thompson | ff092f5 | 2013-06-19 13:38:12 -0700 | [diff] [blame] | 127 | AC_CONFIG_FILES([Makefile]) |
| 128 | AC_OUTPUT |