#ifndef LIBSERIALPORT_LIBSERIALPORT_INTERNAL_H
#define LIBSERIALPORT_LIBSERIALPORT_INTERNAL_H
+/* These MSVC-specific defines must appear before other headers.*/
+#ifdef _MSC_VER
+#define _CRT_NONSTDC_NO_DEPRECATE
+#define _CRT_SECURE_NO_WARNINGS
+#endif
-#ifdef __linux__
+/* These feature test macros must appear before other headers.*/
+#if defined(__linux__) || defined(__CYGWIN__)
/* For timeradd, timersub, timercmp, realpath. */
#define _BSD_SOURCE 1 /* for glibc < 2.19 */
#define _DEFAULT_SOURCE 1 /* for glibc >= 2.20 */
#define _POSIX_C_SOURCE 199309L
#endif
+#ifdef LIBSERIALPORT_ATBUILD
+/* If building with autoconf, include the generated config.h. */
+#include <config.h>
+#endif
+
+#ifdef LIBSERIALPORT_MSBUILD
+/* If building with MS tools, define necessary things that
+ would otherwise appear in config.h. */
+#define SP_PRIV
+#endif
+
+#include "libserialport.h"
+
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <time.h>
#include <poll.h>
#include <unistd.h>
+#ifdef HAVE_SYS_FILE_H
+#include <sys/file.h>
+#endif
#endif
#ifdef __APPLE__
#include <CoreFoundation/CoreFoundation.h>