-#ifndef MPI_HELPERS_H
-#define MPI_HELPERS_H
+/* Copyright (c) 2018. The SimGrid Team. All rights reserved. */
-#include <unistd.h>
-#include <sys/time.h> /* Load it before the define next line to not mess with the system headers */
-#if _POSIX_TIMERS
-#include <time.h>
-#endif
+/* 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. */
-int smpi_usleep(useconds_t usecs);
-#if _POSIX_TIMERS > 0
-int smpi_nanosleep(const struct timespec* tp, struct timespec* t);
-int smpi_clock_gettime(clockid_t clk_id, struct timespec* tp);
+#ifndef SMPI_HELPERS_H
+#define SMPI_HELPERS_H
+
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
#endif
-unsigned int smpi_sleep(unsigned int secs);
-int smpi_gettimeofday(struct timeval* tv, struct timezone* tz);
-struct option;
-int smpi_getopt_long (int argc, char *const *argv, const char *options, const struct option *long_options, int *opt_index);
-int smpi_getopt (int argc, char *const *argv, const char *options);
+#include <smpi/smpi_helpers_internal.h>
#define sleep(x) smpi_sleep(x)
#define usleep(x) smpi_usleep(x)
#define getopt(x,y,z) smpi_getopt(x,y,z)
#define getopt_long(x,y,z,a,b) smpi_getopt_long(x,y,z,a,b)
+#define getopt_long_only(x,y,z,a,b) smpi_getopt_long_only(x,y,z,a,b)
#endif