From 0bb7c9d10935b320ada567dc0e46f3b23eea2793 Mon Sep 17 00:00:00 2001
From: oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Sun, 6 Jul 2008 19:56:15 +0000
Subject: [PATCH] fix a few compilation problems.

git-svn-id: svn://svn.berlios.de/openocd/trunk@758 b42882b7-edfa-0310-969c-e2dbd0fdcd60
---
 src/Makefile.am         |  4 ++--
 src/helper/command.c    |  8 ++++++++
 src/main.c              | 40 ++++++++++++++++++++++++++++++++++++++++
 src/openocd.c           |  7 ++++++-
 src/server/server.h     |  1 +
 src/server/tcl_server.c |  1 +
 6 files changed, 58 insertions(+), 3 deletions(-)
 create mode 100644 src/main.c

diff --git a/src/Makefile.am b/src/Makefile.am
index 924040e61..a518077e2 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,11 +3,11 @@ bin_PROGRAMS = openocd
 if ECOSBOARD
 MAINFILE = ecosboard.c
 else
-MAINFILE = openocd.c
+MAINFILE = main.c
 endif
 
 
-openocd_SOURCES = $(MAINFILE) jim.c
+openocd_SOURCES = $(MAINFILE) openocd.c jim.c
 
 # set the include path found by configure
 INCLUDES = -I$(top_srcdir)/src/helper \
diff --git a/src/helper/command.c b/src/helper/command.c
index 386572ed9..55f950bf4 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -305,6 +305,14 @@ int parse_line(char *line, char *words[], int max_words)
 	return nwords;
 }
 
+void command_output_text( command_context_t *context, const char *data )
+{
+	if( context && context->output_handler && data  ){
+		context->output_handler( context, data );
+	}
+}
+
+
 void command_print_n(command_context_t *context, char *format, ...)
 {
 	char *string;
diff --git a/src/main.c b/src/main.c
new file mode 100644
index 000000000..753adcc70
--- /dev/null
+++ b/src/main.c
@@ -0,0 +1,40 @@
+/***************************************************************************
+ *   Copyright (C) 2005 by Dominic Rath                                    *
+ *   Dominic.Rath@gmx.de                                                   *
+ *                                                                         *
+ *   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.             *
+ ***************************************************************************/
+
+
+/* 
+	This is the main entry for developer PC hosted OpenOCD.
+	
+	OpenOCD can also be used as a library that is linked with
+	another application(not mainstream yet, but possible), e.g.
+	w/as an embedded application.
+	
+	Those applications will have their own main() implementation
+	and use bits and pieces from openocd.c.
+	
+*/
+
+
+extern int openocd_main(int argc, char *argv[]);
+int main(int argc, char *argv[])
+{
+	return openocd_main(argc, argv);
+}
+
diff --git a/src/openocd.c b/src/openocd.c
index 5439ece08..197c2e32f 100644
--- a/src/openocd.c
+++ b/src/openocd.c
@@ -625,7 +625,12 @@ void initJim(void)
 	interp->cb_fgets      = openocd_jim_fgets;
 }
 
-int main(int argc, char *argv[])
+/*
+normally this is the main() function entry, but if OpenOCD is linked
+into application, then this fn will not be invoked, but rather that
+application will have it's own implementation of main().
+*/
+int openocd_main(int argc, char *argv[])
 {
 	initJim();
 	
diff --git a/src/server/server.h b/src/server/server.h
index 811e26ecd..2543f22f8 100644
--- a/src/server/server.h
+++ b/src/server/server.h
@@ -30,6 +30,7 @@ enum connection_type
 {
 	CONNECTION_GDB,
 	CONNECTION_TELNET,
+	CONNECTION_TCL,
 };
 
 typedef struct connection_s
diff --git a/src/server/tcl_server.c b/src/server/tcl_server.c
index b0073091e..cfdb8d07e 100644
--- a/src/server/tcl_server.c
+++ b/src/server/tcl_server.c
@@ -21,6 +21,7 @@
 #include "config.h"
 #endif
 
+#include <stdarg.h>
 #include "tcl_server.h"
 
 #include "../jim.h"
-- 
GitLab