#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.
+++ /dev/null
-/*
- 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, ¶ms, 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);
-}
+++ /dev/null
-/** @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 */