]> git.sur5r.net Git - openocd/blobdiff - src/helper/options.c
Update parse_type macro definitions to allow re-use with signed types.
[openocd] / src / helper / options.c
index 203791bd66024fd68c9c70615db2f672e37840c8..8242a8dd1bd70f1a8aac9b98bf9daa6942a9b520 100644 (file)
 #include "config.h"
 #endif
 
-#include "replacements.h"
-
-#include "types.h"
-#include "command.h"
 #include "configuration.h"
 #include "log.h"
+// @todo the inclusion of server.h here is a layering violation
 #include "server.h"
 
-#include <stdio.h>
-#include <stdlib.h>
 #include <getopt.h>
-#include <string.h>
 
 static int help_flag, version_flag;
 
@@ -54,7 +48,7 @@ static struct option long_options[] =
 
 int configuration_output_handler(struct command_context_s *context, const char* line)
 {
-       LOG_USER_N(line);
+       LOG_USER_N("%s", line);
 
        return ERROR_OK;
 }
@@ -80,11 +74,37 @@ int add_default_dirs(void)
                strcat(strExePath, "\\..");
                add_script_search_dir(strExePath);
        }
+       /*
+        * Add support for the default (as of 20080121) layout when
+        * using autotools and cygwin to build native MinGW binary.
+        * Path separator is converted to UNIX style so that MinGW is
+        * pleased.
+        *
+        * bin/openocd.exe
+        * lib/openocd/event/at91eb40a_reset.cfg
+        * lib/openocd/target/at91eb40a.cfg
+        */
+       {
+               char strExePath [MAX_PATH];
+               char *p;
+               GetModuleFileName (NULL, strExePath, MAX_PATH);
+               *strrchr(strExePath, '\\')=0;
+               strcat(strExePath, "/../lib/"PACKAGE);
+               for(p=strExePath; *p; p++) {
+                       if(*p == '\\')
+                               *p = '/';
+               }
+               add_script_search_dir(strExePath);
+       }
 #else
-       /* Add dir for openocd supplied scripts last so that user can over
-          ride those scripts if desired. */
-       add_script_search_dir(PKGDATADIR);
-       add_script_search_dir(PKGLIBDIR);
+       /*
+        * The directory containing OpenOCD-supplied scripts should be
+        * listed last in the built-in search order, so the user can
+        * override these scripts with site-specific customizations.
+        */
+       /// @todo Implement @c add_script_search_dir("${HOME}/.openocd").
+       add_script_search_dir(PKGDATADIR "/site");
+       add_script_search_dir(PKGDATADIR "/scripts");
 #endif
        return ERROR_OK;
 }
@@ -148,14 +168,8 @@ int parse_cmdline_args(struct command_context_s *cmd_ctx, int argc, char *argv[]
 #if BUILD_ECOSBOARD == 1
                                /* pipes unsupported on hosted platforms */
                                LOG_WARNING("pipes not supported on this platform");
-#else
-#ifdef IS_MINGW
-                               /* pipes currently unsupported on win32 */
-                               LOG_WARNING("pipes currently unsupported on win32");
-                               exit(1);
 #else
                                server_use_pipes = 1;
-#endif
 #endif
                                break;
                }