-rw-r--r-- | acinclude.m4 | 17 | ||||
-rw-r--r-- | configure.ac | 32 | ||||
-rw-r--r-- | include/Makefile.am | 3 | ||||
-rw-r--r-- | include/opkele/consumer.h | 6 | ||||
-rw-r--r-- | include/opkele/server.h | 4 | ||||
-rw-r--r-- | include/opkele/types.h | 7 |
6 files changed, 59 insertions, 10 deletions
diff --git a/acinclude.m4 b/acinclude.m4 index 80defc7..fbb4cdc 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -165,2 +165,19 @@ AC_DEFUN([AC_WITH_PCREPP],[ +dnl AC_CHECK_SHAREDPTR(NS,HEADER[,ACTION-IF-FOUND[,ACTION-IF-NOT-FOUND]]) +AC_DEFUN([AC_CHECK_SHAREDPTR],[ + AC_LANG_PUSH([C++]) + AC_MSG_CHECKING([for $1::shared_ptr<> in $2]) + AC_COMPILE_IFELSE([ + #include <$2> + int main(int c,char**v) { $1::shared_ptr<int> spi(new int(0)); return *spi; } + ],[ + AC_MSG_RESULT([found]) + $3 + ],[ + AC_MSG_RESULT([not found]) + $4 + ]) + AC_LANG_POP([C++]) +]) + m4_include([acinclude.d/libcurl.m4]) diff --git a/configure.ac b/configure.ac index 1bd1873..c4e9a74 100644 --- a/configure.ac +++ b/configure.ac @@ -28,2 +28,33 @@ AC_DEFINE_UNQUOTED([PACKAGE_SRC_VERSION],["$PACKAGE_SRC_VERSION"],[more or less +tr1_mem_std="false" +tr1_mem_boost="false" +AC_CHECK_SHAREDPTR(std::tr1,tr1/memory,[ tr1_mem_std=true ]) +AC_CHECK_SHAREDPTR(boost,boost/shared_ptr.hpp,[ tr1_mem_boost=true ]) +tr1_mem="" +AC_ARG_WITH([tr1-memory], + AC_HELP_STRING([--with-tr1-memory=<boost|std>],[select tr1/memory (shared_ptr<>) implementation to use]), + [ tr1_mem="$withval" ] +) +AC_MSG_CHECKING([for tr1/memory implementation to use]) +test -z "$tr1_mem" && $tr1_mem_std && tr1_mem=std +test -z "$tr1_mem" && $tr1_mem_boost && tr1_mem=boost +test -z "$tr1_mem" && AC_MSG_RESULT([none found]) || AC_MSG_RESULT([$tr1_mem]) +case "$tr1_mem" in + std) + $tr1_mem_std || AC_MSG_ERROR([std implementation requested, but not found]) + OPKELE_TR1_MEM_NS=std::tr1 + OPKELE_TR1_MEM_HEADER=tr1/memory + ;; + boost) + $tr1_mem_boost || AC_MSG_ERROR([boost implementation requested, but not found]) + OPKELE_TR1_MEM_NS=boost + OPKELE_TR1_MEM_HEADER=boost/shared_ptr.hpp + ;; + *) + AC_MSG_ERROR([no shared_ptr<> implementation found]) + ;; +esac +AC_SUBST([OPKELE_TR1_MEM_NS]) +AC_SUBST([OPKELE_TR1_MEM_HEADER]) + PKG_CHECK_MODULES([OPENSSL],[openssl],,[ @@ -146,2 +177,3 @@ AC_CONFIG_FILES([ include/Makefile + include/opkele/tr1-mem.h lib/Makefile diff --git a/include/Makefile.am b/include/Makefile.am index 078c6dc..26cb614 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -14,3 +14,4 @@ nobase_include_HEADERS = \ opkele/discovery.h \ - opkele/uris.h + opkele/uris.h \ + opkele/tr1-mem.h EXTRA_DIST = \ diff --git a/include/opkele/consumer.h b/include/opkele/consumer.h index c463787..3c1d318 100644 --- a/include/opkele/consumer.h +++ b/include/opkele/consumer.h @@ -33,3 +33,3 @@ namespace opkele { * @param expires_in the number of seconds until the handle is expired - * @return the auto_ptr<> for the newly allocated association_t object + * @return the assoc_t for the newly allocated association_t object */ @@ -75,3 +75,3 @@ namespace opkele { * @param server the OpenID server - * @return the auto_ptr<> for the newly allocated association_t object + * @return the assoc_t for the newly allocated association_t object * @throw failed_lookup in case of absence of the handle @@ -95,3 +95,3 @@ namespace opkele { * @param server the OpenID server - * @return the auto_ptr<> for the newly allocated association_t + * @return the assoc_t for the newly allocated association_t * object, representing established association diff --git a/include/opkele/server.h b/include/opkele/server.h index dd7fc41..3c25646 100644 --- a/include/opkele/server.h +++ b/include/opkele/server.h @@ -27,3 +27,3 @@ namespace opkele { * statelessness of the association upon - * @return the auto_ptr<> for the newly allocated association_t object + * @return the assoc_t for the newly allocated association_t object */ @@ -35,3 +35,3 @@ namespace opkele { * @param h association handle - * @return the auto_ptr<> for the newly allocated association_t object + * @return the assoc_t for the newly allocated association_t object * @throw failed_lookup in case of failure diff --git a/include/opkele/types.h b/include/opkele/types.h index ca07df5..d959021 100644 --- a/include/opkele/types.h +++ b/include/opkele/types.h @@ -12,4 +12,4 @@ #include <map> -#include <memory> #include <set> +#include <opkele/tr1-mem.h> @@ -20,3 +20,2 @@ namespace opkele { using std::ostream; - using std::auto_ptr; using std::multimap; @@ -110,5 +109,5 @@ namespace opkele { /** - * the auto_ptr<> for association_t object type + * the shared_ptr<> for association_t object type */ - typedef auto_ptr<association_t> assoc_t; + typedef tr1mem::shared_ptr<association_t> assoc_t; |