#include <caml/callback.h>
#include <caml/custom.h>
+#ifdef __GNUC__
+ #define NORETURN __attribute__ ((noreturn))
+#else
+ #define NORETURN
+#endif
+
extern CAMLprim value ocaml_augeas_create (value rootv, value loadpathv, value flagsv);
extern CAMLprim value ocaml_augeas_close (value tv);
extern CAMLprim value ocaml_augeas_get (value tv, value pathv);
extern CAMLprim value ocaml_augeas_load (value tv);
extern CAMLprim value ocaml_augeas_set (value tv, value pathv, value valuev);
extern CAMLprim value ocaml_augeas_transform (value tv, value lensv, value filev, value modev);
-extern CAMLprim value ocaml_augeas_source (value tv, value pathv);
+extern CAMLprim value ocaml_augeas_source (value tv, value pathv)
+#ifndef HAVE_AUG_SOURCE
+ NORETURN
+#endif
+;
typedef augeas *augeas_t;