]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
getopt is not re-entrant, so we rely on the external popt library to parse
authorandreaskoepke <andreaskoepke>
Mon, 5 Nov 2007 18:03:20 +0000 (18:03 +0000)
committerandreaskoepke <andreaskoepke>
Mon, 5 Nov 2007 18:03:20 +0000 (18:03 +0000)
command line options

tools/platforms/msp430/cppbsl/configure
tools/platforms/msp430/cppbsl/configure.in
tools/platforms/msp430/cppbsl/src/Makefile.am
tools/platforms/msp430/cppbsl/src/Parameters.cc
tools/platforms/msp430/cppbsl/src/cmdline.cc [deleted file]
tools/platforms/msp430/cppbsl/src/cmdline.h [deleted file]

index 53dc469ecc145c44bec1f6c0334502a67f67012d..7ef6bab143555ea987b8af65d3ccafef875441b0 100755 (executable)
@@ -4144,8 +4144,219 @@ fi
 #checks for header files and libraries
 #AC_CHECK_HEADER(readline.h)
 #AC_CHECK_LIB(readline, rl_initialize)
-# AC_CHECK_HEADER(popt.h)
-# AC_CHECK_LIB(popt, poptGetNextOpt)
+if test "${ac_cv_header_popt_h+set}" = set; then
+  echo "$as_me:$LINENO: checking for popt.h" >&5
+echo $ECHO_N "checking for popt.h... $ECHO_C" >&6
+if test "${ac_cv_header_popt_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_popt_h" >&5
+echo "${ECHO_T}$ac_cv_header_popt_h" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking popt.h usability" >&5
+echo $ECHO_N "checking popt.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <popt.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking popt.h presence" >&5
+echo $ECHO_N "checking popt.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <popt.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: popt.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: popt.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: popt.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: popt.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: popt.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: popt.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: popt.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: popt.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: popt.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: popt.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: popt.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: popt.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: popt.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: popt.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: popt.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: popt.h: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## -------------------------------------- ##
+## Report this to koepke@tkn.tu-berlin.de ##
+## -------------------------------------- ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for popt.h" >&5
+echo $ECHO_N "checking for popt.h... $ECHO_C" >&6
+if test "${ac_cv_header_popt_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_popt_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_popt_h" >&5
+echo "${ECHO_T}$ac_cv_header_popt_h" >&6
+
+fi
+
+
+
+echo "$as_me:$LINENO: checking for poptGetNextOpt in -lpopt" >&5
+echo $ECHO_N "checking for poptGetNextOpt in -lpopt... $ECHO_C" >&6
+if test "${ac_cv_lib_popt_poptGetNextOpt+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpopt  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char poptGetNextOpt ();
+int
+main ()
+{
+poptGetNextOpt ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+        { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_popt_poptGetNextOpt=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_popt_poptGetNextOpt=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_popt_poptGetNextOpt" >&5
+echo "${ECHO_T}$ac_cv_lib_popt_poptGetNextOpt" >&6
+if test $ac_cv_lib_popt_poptGetNextOpt = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBPOPT 1
+_ACEOF
+
+  LIBS="-lpopt $LIBS"
+
+fi
+
 #AC_CHECK_HEADER(pthread.h)
 
 # Checks for typedefs, structures, and compiler characteristics.
index e45cad400f6c777c394f11fd1181aea5586d8053..293ae8b655c0e9ce8a57899cca064e5510dcdb95 100644 (file)
@@ -20,8 +20,8 @@ AC_C_CONST
 #checks for header files and libraries
 #AC_CHECK_HEADER(readline.h)
 #AC_CHECK_LIB(readline, rl_initialize)
-AC_CHECK_HEADER(popt.h)
-AC_CHECK_LIB(popt, poptGetNextOpt)
+AC_CHECK_HEADER(popt.h)
+AC_CHECK_LIB(popt, poptGetNextOpt)
 #AC_CHECK_HEADER(pthread.h)
 
 # Checks for typedefs, structures, and compiler characteristics.
index 4f7ec416ce3c73098d0578a63ed312db6d6598d2..8195481b7fe42c4af80a230c5f7b07d0a0fe463a 100644 (file)
@@ -3,8 +3,6 @@
 MAINTAINERCLEANFILES = Makefile.in
 bin_PROGRAMS=cppbsl
 cppbsl_SOURCES=\
-       cmdline.h \
-       cmdline.cc \
        Parameters.h \
        Parameters.cc \
        Serial.h \
index fff595848c81764c1629a0e23690aa01addc445d..578035c3e8ed5830e22a89ca2ce92431910839fc 100644 (file)
 #include <stdlib.h>
 #include <errno.h>
 #include <iostream>
-#include "cmdline.h"
+#include <popt.h>
 #include "Parameters.h"
 
 using namespace std;
 
 Parameters::Parameters(int argc, char **argv) {
+    int c;
     action = NONE;
-    gengetopt_args_info args_info;
-    cmdline_parser_init(&args_info);    
-    if(cmdline_parser(argc, argv, &args_info) != 0) {
-        exit(1);
+    device = 0;
+    verbose = false;
+    action = NONE;
+    image = 0;
+    telosb = false;
+
+    poptOption optionsTable[] = {
+        {"debug",'D', 0, 0, 'd', "print many statements on progress"},
+        {"f1x",'1', 0, 0, '1', "Specify CPU family, in case autodetect fails"},
+        {"invert-reset",'R', 0, 0, 'R', "RESET pin is inverted"},
+        {"invert-test",'T', 0, 0, 'T', "TEST pin is inverted"},
+        {"telosb",'b', 0, 0, 'b', "Assume a TelosB node"},
+        {"tmote",'b', 0, 0, 'b', "Assume a Tmote node"},
+        {"intelhex",'I', 0, 0, 'I', "force fileformat to be  IntelHex"},
+        {"erase",'e', 0, 0, 'e', "erase device"},
+        {"reset",'r', 0, 0, 'r', "reset device"},
+        {"program",'p', POPT_ARG_STRING, &image, 0,
+         "Program file", ""},
+        {"comport",'c', POPT_ARG_STRING, &device, 0,
+         "communicate with MSP430 using this device", ""},
+        POPT_AUTOHELP
+        POPT_TABLEEND
+    };
+    
+    poptContext optCon;   /* context for parsing command-line options */
+    optCon = poptGetContext(NULL, argc, (const char**)argv, optionsTable, 0);
+    /* Now do options processing */
+    while((c = poptGetNextOpt(optCon)) >= 0) {
+        switch(c) {
+            case 'R':
+                invertReset = true;
+                break;
+            case 'T':
+                invertTest = true;
+                break;
+            case 'd':
+                verbose = true;
+                break;
+            case 'r':
+                if(action < RESET) {
+                    action = RESET;
+                }
+                break;
+            case 'e':
+                if(action < ERASE) {
+                    action = ERASE;
+                }
+                break;
+            case 'b':
+                telosb = true;
+                break;
+            default:
+                break;
+        }
     }
-    if(args_info.invert_test_given) {
-        invertTest = true;
-    } else {
-        invertTest = false;
+    if (c < -1) {
+        /* an error occurred during option processing */
+        fprintf(stderr, "%s: %s\n",
+                poptBadOption(optCon, POPT_BADOPTION_NOALIAS),
+                poptStrerror(c));
+        exit(1);
     }
-    if(args_info.invert_reset_given) {
-        invertReset = true;
-    } else {
+    if(telosb) {
         invertReset = false;
+        invertTest = false;
     }
-    if(args_info.debug_given) {
-        verbose = true;
-    } else {
-        verbose = false;
-    }
-    if((args_info.erase_given) && (action < ERASE)) {
-        action = ERASE;
+    if(image != 0) {
+        action = FLASH;
     }
-    if((args_info.reset_given) && (action < RESET)) {
-        action = RESET;
+    if(device != 0) {
+        dev = device;
     }
-    if(args_info.program_given) {
-        action = FLASH;
-        img = args_info.program_arg;
+    else {
+        exit(1);
     }
-    if(args_info.comport_given) {
-        dev = args_info.comport_arg;
+    if(image != 0) {
+        img = image;
     }
-    if(args_info.telosb_given  || args_info.tmote_given) {
-        telosb = true;
-        invertReset = false;
-        invertTest = false;
+    else if(action == FLASH) {
+        exit(1);
     }
-    cmdline_parser_free(&args_info);
+    poptFreeContext(optCon);
 };
 
 
diff --git a/tools/platforms/msp430/cppbsl/src/cmdline.cc b/tools/platforms/msp430/cppbsl/src/cmdline.cc
deleted file mode 100755 (executable)
index 9e07133..0000000
+++ /dev/null
@@ -1,620 +0,0 @@
-/*
-  File autogenerated by gengetopt version 2.21
-  generated with the following command:
-  ./src/gengetopt -i sample2.ggo 
-
-  The developers of gengetopt consider the fixed text that goes in all
-  gengetopt output files to be in the public domain:
-  we make no copyright claims on it.
-*/
-
-/* If we use autoconf.  */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "getopt.h"
-
-#include "cmdline.h"
-
-const char *gengetopt_args_info_purpose = "this is just a test program for gengetopt";
-
-const char *gengetopt_args_info_usage = "Usage: " CMDLINE_PARSER_PACKAGE " [OPTIONS]...";
-
-const char *gengetopt_args_info_description = "";
-
-const char *gengetopt_args_info_help[] = {
-  "  -h, --help            Print help and exit",
-  "  -V, --version         Print version and exit",
-  "  -T, --invert-test     TEST pin is inverted  (default=off)",
-  "  -R, --invert-reset    RESET pin is inverted  (default=off)",
-  "      --telosb          Assume a TelosB node  (default=off)",
-  "      --tmote           Assume a Tmote node  (default=off)",
-  "  -v, --debug           be verbose for debug purposes  (default=off)",
-  "  -1, --f1x             Specify CPU family  (default=off)",
-  "  -I, --intelhex        force fileformat to be IntelHex  (default=off)",
-  "  -e, --erase           erase device  (default=off)",
-  "  -r, --reset           reset device  (default=off)",
-  "  -p, --program=STRING  program file",
-  "  -c, --comport=STRING  communicate using this device",
-    0
-};
-
-static
-void clear_given (struct gengetopt_args_info *args_info);
-static
-void clear_args (struct gengetopt_args_info *args_info);
-
-static int
-cmdline_parser_internal (int argc, char * const *argv, struct gengetopt_args_info *args_info,
-                        struct cmdline_parser_params *params, const char *additional_error);
-
-static int
-cmdline_parser_required2 (struct gengetopt_args_info *args_info, const char *prog_name, const char *additional_error);
-
-static char *
-gengetopt_strdup (const char *s);
-
-static
-void clear_given (struct gengetopt_args_info *args_info)
-{
-  args_info->help_given = 0 ;
-  args_info->version_given = 0 ;
-  args_info->invert_test_given = 0 ;
-  args_info->invert_reset_given = 0 ;
-  args_info->telosb_given = 0 ;
-  args_info->tmote_given = 0 ;
-  args_info->debug_given = 0 ;
-  args_info->f1x_given = 0 ;
-  args_info->intelhex_given = 0 ;
-  args_info->erase_given = 0 ;
-  args_info->reset_given = 0 ;
-  args_info->program_given = 0 ;
-  args_info->comport_given = 0 ;
-}
-
-static
-void clear_args (struct gengetopt_args_info *args_info)
-{
-  args_info->invert_test_flag = 0;
-  args_info->invert_reset_flag = 0;
-  args_info->telosb_flag = 0;
-  args_info->tmote_flag = 0;
-  args_info->debug_flag = 0;
-  args_info->f1x_flag = 0;
-  args_info->intelhex_flag = 0;
-  args_info->erase_flag = 0;
-  args_info->reset_flag = 0;
-  args_info->program_arg = NULL;
-  args_info->program_orig = NULL;
-  args_info->comport_arg = NULL;
-  args_info->comport_orig = NULL;
-  
-}
-
-static
-void init_args_info(struct gengetopt_args_info *args_info)
-{
-  args_info->help_help = gengetopt_args_info_help[0] ;
-  args_info->version_help = gengetopt_args_info_help[1] ;
-  args_info->invert_test_help = gengetopt_args_info_help[2] ;
-  args_info->invert_reset_help = gengetopt_args_info_help[3] ;
-  args_info->telosb_help = gengetopt_args_info_help[4] ;
-  args_info->tmote_help = gengetopt_args_info_help[5] ;
-  args_info->debug_help = gengetopt_args_info_help[6] ;
-  args_info->f1x_help = gengetopt_args_info_help[7] ;
-  args_info->intelhex_help = gengetopt_args_info_help[8] ;
-  args_info->erase_help = gengetopt_args_info_help[9] ;
-  args_info->reset_help = gengetopt_args_info_help[10] ;
-  args_info->program_help = gengetopt_args_info_help[11] ;
-  args_info->comport_help = gengetopt_args_info_help[12] ;
-  
-}
-
-void
-cmdline_parser_print_version (void)
-{
-  printf ("%s %s\n", CMDLINE_PARSER_PACKAGE, CMDLINE_PARSER_VERSION);
-}
-
-void
-cmdline_parser_print_help (void)
-{
-  int i = 0;
-  cmdline_parser_print_version ();
-
-  if (strlen(gengetopt_args_info_purpose) > 0)
-    printf("\n%s\n", gengetopt_args_info_purpose);
-
-  printf("\n%s\n\n", gengetopt_args_info_usage);
-
-  if (strlen(gengetopt_args_info_description) > 0)
-    printf("%s\n", gengetopt_args_info_description);
-
-  while (gengetopt_args_info_help[i])
-    printf("%s\n", gengetopt_args_info_help[i++]);
-}
-
-void
-cmdline_parser_init (struct gengetopt_args_info *args_info)
-{
-  clear_given (args_info);
-  clear_args (args_info);
-  init_args_info (args_info);
-}
-
-struct cmdline_parser_params *
-cmdline_parser_params_init()
-{
-  struct cmdline_parser_params *params = 
-    (struct cmdline_parser_params *)malloc(sizeof(struct cmdline_parser_params));
-
-  if (params)
-    { 
-      params->override = 0;
-      params->initialize = 0;
-      params->check_required = 0;
-      params->check_ambiguity = 0;
-    }
-    
-  return params;
-}
-
-static void
-cmdline_parser_release (struct gengetopt_args_info *args_info)
-{
-  
-  if (args_info->program_arg)
-    {
-      free (args_info->program_arg); /* free previous argument */
-      args_info->program_arg = 0;
-    }
-  if (args_info->program_orig)
-    {
-      free (args_info->program_orig); /* free previous argument */
-      args_info->program_orig = 0;
-    }
-  if (args_info->comport_arg)
-    {
-      free (args_info->comport_arg); /* free previous argument */
-      args_info->comport_arg = 0;
-    }
-  if (args_info->comport_orig)
-    {
-      free (args_info->comport_orig); /* free previous argument */
-      args_info->comport_orig = 0;
-    }
-  
-  clear_given (args_info);
-}
-
-int
-cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info)
-{
-  FILE *outfile;
-  int i = 0;
-
-  outfile = fopen(filename, "w");
-
-  if (!outfile)
-    {
-      fprintf (stderr, "%s: cannot open file for writing: %s\n", CMDLINE_PARSER_PACKAGE, filename);
-      return EXIT_FAILURE;
-    }
-
-  if (args_info->help_given) {
-    fprintf(outfile, "%s\n", "help");
-  }
-  if (args_info->version_given) {
-    fprintf(outfile, "%s\n", "version");
-  }
-  if (args_info->invert_test_given) {
-    fprintf(outfile, "%s\n", "invert-test");
-  }
-  if (args_info->invert_reset_given) {
-    fprintf(outfile, "%s\n", "invert-reset");
-  }
-  if (args_info->telosb_given) {
-    fprintf(outfile, "%s\n", "telosb");
-  }
-  if (args_info->tmote_given) {
-    fprintf(outfile, "%s\n", "tmote");
-  }
-  if (args_info->debug_given) {
-    fprintf(outfile, "%s\n", "debug");
-  }
-  if (args_info->f1x_given) {
-    fprintf(outfile, "%s\n", "f1x");
-  }
-  if (args_info->intelhex_given) {
-    fprintf(outfile, "%s\n", "intelhex");
-  }
-  if (args_info->erase_given) {
-    fprintf(outfile, "%s\n", "erase");
-  }
-  if (args_info->reset_given) {
-    fprintf(outfile, "%s\n", "reset");
-  }
-  if (args_info->program_given) {
-    if (args_info->program_orig) {
-      fprintf(outfile, "%s=\"%s\"\n", "program", args_info->program_orig);
-    } else {
-      fprintf(outfile, "%s\n", "program");
-    }
-  }
-  if (args_info->comport_given) {
-    if (args_info->comport_orig) {
-      fprintf(outfile, "%s=\"%s\"\n", "comport", args_info->comport_orig);
-    } else {
-      fprintf(outfile, "%s\n", "comport");
-    }
-  }
-  
-  fclose (outfile);
-
-  i = EXIT_SUCCESS;
-  return i;
-}
-
-void
-cmdline_parser_free (struct gengetopt_args_info *args_info)
-{
-  cmdline_parser_release (args_info);
-}
-
-
-/* gengetopt_strdup() */
-/* strdup.c replacement of strdup, which is not standard */
-char *
-gengetopt_strdup (const char *s)
-{
-  char *result = NULL;
-  if (!s)
-    return result;
-
-  result = (char*)malloc(strlen(s) + 1);
-  if (result == (char*)0)
-    return (char*)0;
-  strcpy(result, s);
-  return result;
-}
-
-int
-cmdline_parser (int argc, char * const *argv, struct gengetopt_args_info *args_info)
-{
-  return cmdline_parser2 (argc, argv, args_info, 0, 1, 1);
-}
-
-int
-cmdline_parser_ext (int argc, char * const *argv, struct gengetopt_args_info *args_info,
-                   struct cmdline_parser_params *params)
-{
-  int result;
-  result = cmdline_parser_internal (argc, argv, args_info, params, NULL);
-
-  if (result == EXIT_FAILURE)
-    {
-      cmdline_parser_free (args_info);
-      exit (EXIT_FAILURE);
-    }
-  
-  return result;
-}
-
-int
-cmdline_parser2 (int argc, char * const *argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required)
-{
-  int result;
-  struct cmdline_parser_params params;
-  
-  params.override = override;
-  params.initialize = initialize;
-  params.check_required = check_required;
-  params.check_ambiguity = 0;
-
-  result = cmdline_parser_internal (argc, argv, args_info, &params, NULL);
-
-  if (result == EXIT_FAILURE)
-    {
-      cmdline_parser_free (args_info);
-      exit (EXIT_FAILURE);
-    }
-  
-  return result;
-}
-
-int
-cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name)
-{
-  int result = EXIT_SUCCESS;
-
-  if (cmdline_parser_required2(args_info, prog_name, NULL) > 0)
-    result = EXIT_FAILURE;
-
-  if (result == EXIT_FAILURE)
-    {
-      cmdline_parser_free (args_info);
-      exit (EXIT_FAILURE);
-    }
-  
-  return result;
-}
-
-int
-cmdline_parser_required2 (struct gengetopt_args_info *args_info, const char *prog_name, const char *additional_error)
-{
-  int error = 0;
-
-  /* checks for required options */
-  if (! args_info->comport_given)
-    {
-      fprintf (stderr, "%s: '--comport' ('-c') option required%s\n", prog_name, (additional_error ? additional_error : ""));
-      error = 1;
-    }
-  
-  
-  /* checks for dependences among options */
-
-  return error;
-}
-
-int
-cmdline_parser_internal (int argc, char * const *argv, struct gengetopt_args_info *args_info,
-                        struct cmdline_parser_params *params, const char *additional_error)
-{
-  int c;       /* Character of the parsed option.  */
-
-  int error = 0;
-  struct gengetopt_args_info local_args_info;
-  
-  int override;
-  int initialize;
-  int check_required;
-  int check_ambiguity;
-  
-  override = params->override;
-  initialize = params->initialize;
-  check_required = params->check_required;
-  check_ambiguity = params->check_ambiguity;
-
-  if (initialize)
-    cmdline_parser_init (args_info);
-
-  cmdline_parser_init (&local_args_info);
-
-  optarg = 0;
-  optind = 0;
-  opterr = 1;
-  optopt = '?';
-
-  while (1)
-    {
-      int option_index = 0;
-      char *stop_char;
-
-      static struct option long_options[] = {
-        { "help",      0, NULL, 'h' },
-        { "version",   0, NULL, 'V' },
-        { "invert-test",       0, NULL, 'T' },
-        { "invert-reset",      0, NULL, 'R' },
-        { "telosb",    0, NULL, 0 },
-        { "tmote",     0, NULL, 0 },
-        { "debug",     0, NULL, 'v' },
-        { "f1x",       0, NULL, '1' },
-        { "intelhex",  0, NULL, 'I' },
-        { "erase",     0, NULL, 'e' },
-        { "reset",     0, NULL, 'r' },
-        { "program",   1, NULL, 'p' },
-        { "comport",   1, NULL, 'c' },
-        { NULL,        0, NULL, 0 }
-      };
-
-      stop_char = 0;
-      c = getopt_long (argc, argv, "hVTRv1Ierp:c:", long_options, &option_index);
-
-      if (c == -1) break;      /* Exit from `while (1)' loop.  */
-
-      switch (c)
-        {
-        case 'h':      /* Print help and exit.  */
-          cmdline_parser_print_help ();
-          cmdline_parser_free (&local_args_info);
-          exit (EXIT_SUCCESS);
-
-        case 'V':      /* Print version and exit.  */
-          cmdline_parser_print_version ();
-          cmdline_parser_free (&local_args_info);
-          exit (EXIT_SUCCESS);
-
-        case 'T':      /* TEST pin is inverted.  */
-          if (local_args_info.invert_test_given || (check_ambiguity && args_info->invert_test_given))
-            {
-              fprintf (stderr, "%s: `--invert-test' (`-T') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
-              goto failure;
-            }
-          if (args_info->invert_test_given && ! override)
-            continue;
-          local_args_info.invert_test_given = 1;
-          args_info->invert_test_given = 1;
-          args_info->invert_test_flag = !(args_info->invert_test_flag);
-          break;
-
-        case 'R':      /* RESET pin is inverted.  */
-          if (local_args_info.invert_reset_given || (check_ambiguity && args_info->invert_reset_given))
-            {
-              fprintf (stderr, "%s: `--invert-reset' (`-R') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
-              goto failure;
-            }
-          if (args_info->invert_reset_given && ! override)
-            continue;
-          local_args_info.invert_reset_given = 1;
-          args_info->invert_reset_given = 1;
-          args_info->invert_reset_flag = !(args_info->invert_reset_flag);
-          break;
-
-        case 'v':      /* be verbose for debug purposes.  */
-          if (local_args_info.debug_given || (check_ambiguity && args_info->debug_given))
-            {
-              fprintf (stderr, "%s: `--debug' (`-v') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
-              goto failure;
-            }
-          if (args_info->debug_given && ! override)
-            continue;
-          local_args_info.debug_given = 1;
-          args_info->debug_given = 1;
-          args_info->debug_flag = !(args_info->debug_flag);
-          break;
-
-        case '1':      /* Specify CPU family.  */
-          if (local_args_info.f1x_given || (check_ambiguity && args_info->f1x_given))
-            {
-              fprintf (stderr, "%s: `--f1x' (`-1') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
-              goto failure;
-            }
-          if (args_info->f1x_given && ! override)
-            continue;
-          local_args_info.f1x_given = 1;
-          args_info->f1x_given = 1;
-          args_info->f1x_flag = !(args_info->f1x_flag);
-          break;
-
-        case 'I':      /* force fileformat to be IntelHex.  */
-          if (local_args_info.intelhex_given || (check_ambiguity && args_info->intelhex_given))
-            {
-              fprintf (stderr, "%s: `--intelhex' (`-I') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
-              goto failure;
-            }
-          if (args_info->intelhex_given && ! override)
-            continue;
-          local_args_info.intelhex_given = 1;
-          args_info->intelhex_given = 1;
-          args_info->intelhex_flag = !(args_info->intelhex_flag);
-          break;
-
-        case 'e':      /* erase device.  */
-          if (local_args_info.erase_given || (check_ambiguity && args_info->erase_given))
-            {
-              fprintf (stderr, "%s: `--erase' (`-e') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
-              goto failure;
-            }
-          if (args_info->erase_given && ! override)
-            continue;
-          local_args_info.erase_given = 1;
-          args_info->erase_given = 1;
-          args_info->erase_flag = !(args_info->erase_flag);
-          break;
-
-        case 'r':      /* reset device.  */
-          if (local_args_info.reset_given || (check_ambiguity && args_info->reset_given))
-            {
-              fprintf (stderr, "%s: `--reset' (`-r') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
-              goto failure;
-            }
-          if (args_info->reset_given && ! override)
-            continue;
-          local_args_info.reset_given = 1;
-          args_info->reset_given = 1;
-          args_info->reset_flag = !(args_info->reset_flag);
-          break;
-
-        case 'p':      /* program file.  */
-          if (local_args_info.program_given || (check_ambiguity && args_info->program_given))
-            {
-              fprintf (stderr, "%s: `--program' (`-p') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
-              goto failure;
-            }
-          if (args_info->program_given && ! override)
-            continue;
-          local_args_info.program_given = 1;
-          args_info->program_given = 1;
-          if (args_info->program_arg)
-            free (args_info->program_arg); /* free previous string */
-          args_info->program_arg = gengetopt_strdup (optarg);
-          if (args_info->program_orig)
-            free (args_info->program_orig); /* free previous string */
-          args_info->program_orig = gengetopt_strdup (optarg);
-          break;
-
-        case 'c':      /* communicate using this device.  */
-          if (local_args_info.comport_given || (check_ambiguity && args_info->comport_given))
-            {
-              fprintf (stderr, "%s: `--comport' (`-c') option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
-              goto failure;
-            }
-          if (args_info->comport_given && ! override)
-            continue;
-          local_args_info.comport_given = 1;
-          args_info->comport_given = 1;
-          if (args_info->comport_arg)
-            free (args_info->comport_arg); /* free previous string */
-          args_info->comport_arg = gengetopt_strdup (optarg);
-          if (args_info->comport_orig)
-            free (args_info->comport_orig); /* free previous string */
-          args_info->comport_orig = gengetopt_strdup (optarg);
-          break;
-
-
-        case 0:        /* Long option with no short option */
-          /* Assume a TelosB node.  */
-          if (strcmp (long_options[option_index].name, "telosb") == 0)
-          {
-            if (local_args_info.telosb_given || (check_ambiguity && args_info->telosb_given))
-              {
-                fprintf (stderr, "%s: `--telosb' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
-                goto failure;
-              }
-            if (args_info->telosb_given && ! override)
-              continue;
-            local_args_info.telosb_given = 1;
-            args_info->telosb_given = 1;
-            args_info->telosb_flag = !(args_info->telosb_flag);
-          }
-          /* Assume a Tmote node.  */
-          else if (strcmp (long_options[option_index].name, "tmote") == 0)
-          {
-            if (local_args_info.tmote_given || (check_ambiguity && args_info->tmote_given))
-              {
-                fprintf (stderr, "%s: `--tmote' option given more than once%s\n", argv[0], (additional_error ? additional_error : ""));
-                goto failure;
-              }
-            if (args_info->tmote_given && ! override)
-              continue;
-            local_args_info.tmote_given = 1;
-            args_info->tmote_given = 1;
-            args_info->tmote_flag = !(args_info->tmote_flag);
-          }
-          
-          break;
-        case '?':      /* Invalid option.  */
-          /* `getopt_long' already printed an error message.  */
-          goto failure;
-
-        default:       /* bug: option not considered.  */
-          fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : ""));
-          abort ();
-        } /* switch */
-    } /* while */
-
-
-
-  if (check_required)
-    {
-      error += cmdline_parser_required2 (args_info, argv[0], additional_error);
-    }
-
-  cmdline_parser_release (&local_args_info);
-
-  if ( error )
-    return (EXIT_FAILURE);
-
-  return 0;
-
-failure:
-  
-  cmdline_parser_release (&local_args_info);
-  return (EXIT_FAILURE);
-}
diff --git a/tools/platforms/msp430/cppbsl/src/cmdline.h b/tools/platforms/msp430/cppbsl/src/cmdline.h
deleted file mode 100755 (executable)
index 773e3b2..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/** @file cmdline.h
- *  @brief The header file for the command line option parser
- *  generated by GNU Gengetopt version 2.21
- *  http://www.gnu.org/software/gengetopt.
- *  DO NOT modify this file, since it can be overwritten
- *  @author GNU Gengetopt by Lorenzo Bettini */
-
-#ifndef CMDLINE_H
-#define CMDLINE_H
-
-/* If we use autoconf.  */
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-#ifndef CMDLINE_PARSER_PACKAGE
-/** @brief the program name */
-#define CMDLINE_PARSER_PACKAGE PACKAGE
-#endif
-
-#ifndef CMDLINE_PARSER_VERSION
-/** @brief the program version */
-#define CMDLINE_PARSER_VERSION VERSION
-#endif
-
-/** @brief Where the command line options are stored */
-struct gengetopt_args_info
-{
-  const char *help_help; /**< @brief Print help and exit help description.  */
-  const char *version_help; /**< @brief Print version and exit help description.  */
-  int invert_test_flag;        /**< @brief TEST pin is inverted (default=off).  */
-  const char *invert_test_help; /**< @brief TEST pin is inverted help description.  */
-  int invert_reset_flag;       /**< @brief RESET pin is inverted (default=off).  */
-  const char *invert_reset_help; /**< @brief RESET pin is inverted help description.  */
-  int telosb_flag;     /**< @brief Assume a TelosB node (default=off).  */
-  const char *telosb_help; /**< @brief Assume a TelosB node help description.  */
-  int tmote_flag;      /**< @brief Assume a Tmote node (default=off).  */
-  const char *tmote_help; /**< @brief Assume a Tmote node help description.  */
-  int debug_flag;      /**< @brief be verbose for debug purposes (default=off).  */
-  const char *debug_help; /**< @brief be verbose for debug purposes help description.  */
-  int f1x_flag;        /**< @brief Specify CPU family (default=off).  */
-  const char *f1x_help; /**< @brief Specify CPU family help description.  */
-  int intelhex_flag;   /**< @brief force fileformat to be IntelHex (default=off).  */
-  const char *intelhex_help; /**< @brief force fileformat to be IntelHex help description.  */
-  int erase_flag;      /**< @brief erase device (default=off).  */
-  const char *erase_help; /**< @brief erase device help description.  */
-  int reset_flag;      /**< @brief reset device (default=off).  */
-  const char *reset_help; /**< @brief reset device help description.  */
-  char * program_arg;  /**< @brief program file.  */
-  char * program_orig; /**< @brief program file original value given at command line.  */
-  const char *program_help; /**< @brief program file help description.  */
-  char * comport_arg;  /**< @brief communicate using this device.  */
-  char * comport_orig; /**< @brief communicate using this device original value given at command line.  */
-  const char *comport_help; /**< @brief communicate using this device help description.  */
-  
-  int help_given ;     /**< @brief Whether help was given.  */
-  int version_given ;  /**< @brief Whether version was given.  */
-  int invert_test_given ;      /**< @brief Whether invert-test was given.  */
-  int invert_reset_given ;     /**< @brief Whether invert-reset was given.  */
-  int telosb_given ;   /**< @brief Whether telosb was given.  */
-  int tmote_given ;    /**< @brief Whether tmote was given.  */
-  int debug_given ;    /**< @brief Whether debug was given.  */
-  int f1x_given ;      /**< @brief Whether f1x was given.  */
-  int intelhex_given ; /**< @brief Whether intelhex was given.  */
-  int erase_given ;    /**< @brief Whether erase was given.  */
-  int reset_given ;    /**< @brief Whether reset was given.  */
-  int program_given ;  /**< @brief Whether program was given.  */
-  int comport_given ;  /**< @brief Whether comport was given.  */
-
-} ;
-
-/** @brief The additional parameters to pass to parser functions */
-struct cmdline_parser_params
-{
-  int override; /**< @brief whether to override possibly already present options (default 0) */
-  int initialize; /**< @brief whether to initialize the option structure gengetopt_args_info (default 0) */
-  int check_required; /**< @brief whether to check that all required options were provided (default 0) */
-  int check_ambiguity; /**< @brief whether to check for options already specified in the option structure gengetopt_args_info (default 0) */
-} ;
-
-/** @brief the purpose string of the program */
-extern const char *gengetopt_args_info_purpose;
-/** @brief the usage string of the program */
-extern const char *gengetopt_args_info_usage;
-/** @brief all the lines making the help output */
-extern const char *gengetopt_args_info_help[];
-
-/**
- * The command line parser
- * @param argc the number of command line options
- * @param argv the command line options
- * @param args_info the structure where option information will be stored
- * @return 0 if everything went fine, NON 0 if an error took place
- */
-int cmdline_parser (int argc, char * const *argv,
-  struct gengetopt_args_info *args_info);
-
-/**
- * The command line parser (version with additional parameters - deprecated)
- * @param argc the number of command line options
- * @param argv the command line options
- * @param args_info the structure where option information will be stored
- * @param override whether to override possibly already present options
- * @param initialize whether to initialize the option structure my_args_info
- * @param check_required whether to check that all required options were provided
- * @return 0 if everything went fine, NON 0 if an error took place
- * @deprecated use cmdline_parser_ext() instead
- */
-int cmdline_parser2 (int argc, char * const *argv,
-  struct gengetopt_args_info *args_info,
-  int override, int initialize, int check_required);
-
-/**
- * The command line parser (version with additional parameters)
- * @param argc the number of command line options
- * @param argv the command line options
- * @param args_info the structure where option information will be stored
- * @param params additional parameters for the parser
- * @return 0 if everything went fine, NON 0 if an error took place
- */
-int cmdline_parser_ext (int argc, char * const *argv,
-  struct gengetopt_args_info *args_info,
-  struct cmdline_parser_params *params);
-
-/**
- * Save the contents of the option struct into a (text) file.
- * This file can be read by the config file parser (if generated by gengetopt)
- * @param filename the file where to save
- * @param args_info the option struct to save
- * @return 0 if everything went fine, NON 0 if an error took place
- */
-int cmdline_parser_file_save(const char *filename,
-  struct gengetopt_args_info *args_info);
-
-/**
- * Print the help
- */
-void cmdline_parser_print_help(void);
-/**
- * Print the version
- */
-void cmdline_parser_print_version(void);
-
-/**
- * Allocates dynamically a cmdline_parser_params structure and initializes
- * all its fields to 0
- * @return the initialized cmdline_parser_params structure
- */
-struct cmdline_parser_params *cmdline_parser_params_init();
-
-/**
- * Initializes the passed gengetopt_args_info structure's fields
- * (also set default values for options that have a default)
- * @param args_info the structure to initialize
- */
-void cmdline_parser_init (struct gengetopt_args_info *args_info);
-/**
- * Deallocates the string fields of the gengetopt_args_info structure
- * (but does not deallocate the structure itself)
- * @param args_info the structure to deallocate
- */
-void cmdline_parser_free (struct gengetopt_args_info *args_info);
-
-/**
- * Checks that all the required options were specified
- * @param args_info the structure to check
- * @param prog_name the name of the program that will be used to print
- *   possible errors
- * @return
- */
-int cmdline_parser_required (struct gengetopt_args_info *args_info,
-  const char *prog_name);
-
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-#endif /* CMDLINE_H */