X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0de7df8a3bc351fdff4c4a3e106608b15c842143..48eda6a2033423e980783b6e40bc35824808bb9a:/include/simgrid_config.h.in diff --git a/include/simgrid_config.h.in b/include/simgrid_config.h.in index eea543b794..de9e3f1750 100644 --- a/include/simgrid_config.h.in +++ b/include/simgrid_config.h.in @@ -1,21 +1,57 @@ -/* $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-2012. 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 */ +#include "xbt/dynar.h" /* sg_commandline */ + +#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); + +/** Contains all the parameters we got from the command line */ +XBT_PUBLIC_DATA(xbt_dynar_t) sg_cmdline; + +/* 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 +66,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@ @@ -45,17 +78,14 @@ SG_BEGIN_DECL() @simgrid_need_asprintf@ @simgrid_need_vasprintf@ +#include /* FILE, getline if it exists */ + /* Use that config to declare missing elements */ #ifdef SIMGRID_NEED_GETLINE #include /* size_t */ -#include /* FILE* */ XBT_PUBLIC(long) getline(char **lineptr, size_t * n, FILE * stream); -#else -#ifndef _GNU_SOURCE - #define _GNU_SOURCE -#endif -#include #endif + #include /* snprintf related functions */ @@ -95,6 +125,9 @@ XBT_PUBLIC(char *) bvprintf(const char *fmt, va_list ap); XBT_PUBLIC(char *) bprintf(const char *fmt, ...) _XBT_GNUC_PRINTF(1, 2); /** @} */ +/* Whether mallocators were enabled in ccmake or not. */ +#define MALLOCATOR_COMPILED_IN @MALLOCATOR_IS_WANTED@ + /* Define if xbt contexts are based on our threads implementation or not */ #cmakedefine CONTEXT_THREADS @CONTEXT_THREADS@ @@ -107,5 +140,11 @@ XBT_PUBLIC(char *) bprintf(const char *fmt, ...) _XBT_GNUC_PRINTF(1, 2); /* 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 */