X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1a39cc6fdc908c33507b5b0f8bae61f7286fd4ca..9f0d00c13d65be34542f719514038ceb7a3702ab:/include/simgrid_config.h.in diff --git a/include/simgrid_config.h.in b/include/simgrid_config.h.in index 9070c40f25..a1b3414e1d 100644 --- a/include/simgrid_config.h.in +++ b/include/simgrid_config.h.in @@ -1,21 +1,67 @@ -/* $Id$ */ - /* simgrid_config.h - Results of the configure made visible to user code */ -/* Copyright (c) 2009, Da SimGrid team. All rights reserved. */ +/* Copyright (c) 2009, 2010, 2011. Da SimGrid team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ #include "xbt/misc.h" /* XBT_PUBLIC */ +#ifndef SIMGRID_PUBLIC_CONFIG_H +#define SIMGRID_PUBLIC_CONFIG_H +SG_BEGIN_DECL() + + +/** Define the version numbers of the used header files. + sg_version() can be used to retrieve the version of the dynamic library. + But actually, if these numbers don't match, SimGrid refuses to start (so you shouldn't have to care about sg_version() yourself) */ + +#define SIMGRID_VERSION_MAJOR @SIMGRID_VERSION_MAJOR@ +#define SIMGRID_VERSION_MINOR @SIMGRID_VERSION_MINOR@ +#define SIMGRID_VERSION_PATCH @SIMGRID_VERSION_PATCH@ + +/* Version X.Y.Z will get version number XYZ: all digits concatenated without dots + * (with Y and Z must be on two positions)*/ + +#define MAKE_SIMGRID_VERSION(major, minor, patch) \ + (100UL * (100UL * (major) + (minor)) + (patch)) +#define SIMGRID_VERSION MAKE_SIMGRID_VERSION(SIMGRID_VERSION_MAJOR, \ + SIMGRID_VERSION_MINOR, \ + SIMGRID_VERSION_PATCH) + +/** Retrieves the version numbers of the used dynamic library (so, DLL or dynlib) , while + SIMGRID_VERSION_MAJOR and friends give the version numbers of the used header files */ +XBT_PUBLIC(void) sg_version(int *major,int *minor,int *patch); + +/** Check that the link-time and compile-time versions of SimGrid do match. + * There is no need to call it yourself, it's done automatically during the SimGrid initialization */ +#define sg_check_version() { \ + int ver_major,ver_minor,ver_patch; \ + sg_version(&ver_major,&ver_minor,&ver_patch); \ + if ((ver_major != SIMGRID_VERSION_MAJOR) || \ + (ver_minor != SIMGRID_VERSION_MINOR) || \ + (ver_patch != SIMGRID_VERSION_PATCH)) { \ + fprintf(stderr,"FATAL ERROR: Your program was compiled with SimGrid version %d.%d.%d, and then linked against SimGrid %d.%d.%d. Please fix this.\n", \ + SIMGRID_VERSION_MAJOR,SIMGRID_VERSION_MINOR,SIMGRID_VERSION_PATCH,ver_major,ver_minor,ver_patch); \ + } \ +} + + +/* take care of DLL usage madness */ + #ifdef _XBT_DLL_EXPORT - #define DLL_EXPORT + #ifndef DLL_EXPORT + #define DLL_EXPORT + #endif #else #ifdef _XBT_DLL_STATIC - #define DLL_STATIC + #ifndef DLL_STATIC + #define DLL_STATIC + #endif #else - #define DLL_IMPORT + #ifndef DLL_EXPORT + #define DLL_IMPORT + #endif #endif #endif @@ -30,9 +76,6 @@ #endif #endif -#ifndef SIMGRID_PUBLIC_CONFIG_H -#define SIMGRID_PUBLIC_CONFIG_H -SG_BEGIN_DECL() /* Define to 1 if you have the `mmap' function. */ #cmakedefine HAVE_MMAP @HAVE_MMAP@ @@ -95,8 +138,23 @@ XBT_PUBLIC(char *) bvprintf(const char *fmt, va_list ap); XBT_PUBLIC(char *) bprintf(const char *fmt, ...) _XBT_GNUC_PRINTF(1, 2); /** @} */ +/* Define if xbt contexts are based on our threads implementation or not */ +#cmakedefine CONTEXT_THREADS @CONTEXT_THREADS@ + /* Tracing SimGrid */ #cmakedefine HAVE_TRACING @HAVE_TRACING@ +/* Jedule output */ +#cmakedefine HAVE_JEDULE @HAVE_JEDULE@ + +/* Tracking of latency bound */ +#cmakedefine HAVE_LATENCY_BOUND_TRACKING @HAVE_LATENCY_BOUND_TRACKING@ + +/* If __thread is available */ +#cmakedefine HAVE_THREAD_LOCAL_STORAGE @HAVE_THREAD_LOCAL_STORAGE@ + +/* If Model-Checking support was requested */ +#cmakedefine HAVE_MC @HAVE_MC@ + SG_END_DECL() #endif /* SIMGRID_PUBLIC_CONFIG_H */