From af7cdfd82bf47fde9c183c3ff5d14422fc737f24 Mon Sep 17 00:00:00 2001
From: zwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Mon, 11 May 2009 02:52:00 +0000
Subject: [PATCH] Factor system #includes out of replacements.h into new
 system.h.

git-svn-id: svn://svn.berlios.de/openocd/trunk@1702 b42882b7-edfa-0310-969c-e2dbd0fdcd60
---
 configure.in              |  7 +++-
 src/helper/Makefile.am    |  2 +-
 src/helper/replacements.h | 30 +--------------
 src/helper/system.h       | 77 +++++++++++++++++++++++++++++++++++++++
 4 files changed, 85 insertions(+), 31 deletions(-)
 create mode 100644 src/helper/system.h

diff --git a/configure.in b/configure.in
index 4d1240b5a..4b1053f08 100644
--- a/configure.in
+++ b/configure.in
@@ -9,15 +9,20 @@ AC_SEARCH_LIBS([ioperm], [ioperm])
 AC_SEARCH_LIBS([dlopen], [dl])
 
 AC_CHECK_HEADERS(elf.h)
+AC_CHECK_HEADERS(fcntl.h)
 AC_CHECK_HEADERS(ifaddrs.h)
 AC_CHECK_HEADERS(jtag_minidriver.h)
 AC_CHECK_HEADERS(malloc.h)
+AC_CHECK_HEADERS(netinet/in.h)
 AC_CHECK_HEADERS(pthread.h)
 AC_CHECK_HEADERS(strings.h)
 AC_CHECK_HEADERS(sys/param.h)
-AC_CHECK_HEADERS(sys/time.h)
+AC_CHECK_HEADERS(sys/poll.h)
 AC_CHECK_HEADERS(sys/select.h)
+AC_CHECK_HEADERS(sys/socket.h)
+AC_CHECK_HEADERS(sys/time.h)
 AC_CHECK_HEADERS(sys/types.h)
+AC_CHECK_HEADERS(unistd.h)
 
 AC_HEADER_ASSERT
 AC_HEADER_STDBOOL
diff --git a/src/helper/Makefile.am b/src/helper/Makefile.am
index a55827830..77c61455d 100644
--- a/src/helper/Makefile.am
+++ b/src/helper/Makefile.am
@@ -32,7 +32,7 @@ endif
 
 noinst_HEADERS = binarybuffer.h configuration.h types.h log.h command.h \
 	time_support.h replacements.h fileio.h jim.h jim-eventloop.h \
-	startup.tcl bin2char.c
+	system.h startup.tcl bin2char.c
 
 bin2char$(EXEEXT_FOR_BUILD): bin2char.c
 	${CC_FOR_BUILD} ${CFLAGS_FOR_BUILD} $(srcdir)/bin2char.c -o $@
diff --git a/src/helper/replacements.h b/src/helper/replacements.h
index 18c96701d..d20b5f66b 100644
--- a/src/helper/replacements.h
+++ b/src/helper/replacements.h
@@ -31,35 +31,7 @@
 #endif
 
 #include "types.h"
-
-#if BUILD_ECOSBOARD
-#include <pkgconf/system.h>
-#include <stdlib.h>
-#endif
-
-#ifdef HAVE_SYS_SELECT_H 
-#include <sys/select.h> /* select, FD_SET and friends (POSIX.1-2001) */
-#endif
-
-#ifdef HAVE_SYS_TIME_H 
-#include <sys/time.h> /* FD_SET and friends (pre-POSIX.1-2001) */
-#endif
-
-/* include necessary headers for socket functionality */
-#ifdef _WIN32
-#include <winsock2.h>
-#include <ws2tcpip.h>
-#else
-#include <sys/socket.h>
-#include <sys/poll.h>
-#include <netinet/in.h>
-#include <unistd.h>
-#include <fcntl.h>
-#endif
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h> /* for MIN/MAX macros */
-#endif
+#include "system.h"
 
 /* MIN,MAX macros */
 #ifndef MIN
diff --git a/src/helper/system.h b/src/helper/system.h
new file mode 100644
index 000000000..2e3906d46
--- /dev/null
+++ b/src/helper/system.h
@@ -0,0 +1,77 @@
+/***************************************************************************
+ *   Copyright (C) 2006 by Dominic Rath <Dominic.Rath@gmx.de>              *
+ *   Copyright (C) 2007-2008 by Øyvind Harboe <oyvind.harboe@zylin.com>    *
+ *   Copyright (C) 2008 by Spencer Oliver <spen@spen-soft.co.uk>           *
+ *   Copyright (C) 2009 by Zachary T Welch <zw@superlucidity.net>          *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+#ifndef SYSTEM_H
+#define SYSTEM_H
+
+// standard C library header files
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+
+// +++ AC_HEADER_TIME +++
+#ifdef TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# ifdef HAVE_SYS_TIME_H
+#  include <sys/time.h>
+# else
+#  include <time.h>
+# endif
+#endif
+// --- AC_HEADER_TIME ---
+
+// +++ platform specific headers +++
+#if BUILD_ECOSBOARD == 1
+#include <pkgconf/system.h>
+#endif
+#ifdef _WIN32
+#include <winsock2.h>
+#include <ws2tcpip.h>
+#endif
+// --- platform specific headers ---
+
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_SYS_POLL_H
+#include <sys/poll.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+#ifdef HAVE_SYS_SELECT_H
+#include <sys/select.h> /* select, FD_SET and friends (POSIX.1-2001) */
+#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h> /* for MIN/MAX macros */
+#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+
+#endif // SYSTEM_H
-- 
GitLab