diff --git a/qemu-options-wrapper.h b/qemu-options-wrapper.h index 202f5af9b4..13bfea0294 100644 --- a/qemu-options-wrapper.h +++ b/qemu-options-wrapper.h @@ -4,18 +4,26 @@ #define DEF(option, opt_arg, opt_enum, opt_help, arch_mask) \ opt_enum, #define DEFHEADING(text) +#define ARCHHEADING(text, arch_mask) #elif defined(QEMU_OPTIONS_GENERATE_HELP) -#define DEF(option, opt_arg, opt_enum, opt_help, arch_mask) \ - opt_help -#define DEFHEADING(text) stringify(text) "\n" +#define DEF(option, opt_arg, opt_enum, opt_help, arch_mask) \ + if ((arch_mask) & arch_type) \ + fputs(opt_help, stdout); + +#define ARCHHEADING(text, arch_mask) \ + if ((arch_mask) & arch_type) \ + puts(stringify(text)); + +#define DEFHEADING(text) ARCHHEADING(text, QEMU_ARCH_ALL) #elif defined(QEMU_OPTIONS_GENERATE_OPTIONS) #define DEF(option, opt_arg, opt_enum, opt_help, arch_mask) \ { option, opt_arg, opt_enum, arch_mask }, #define DEFHEADING(text) +#define ARCHHEADING(text, arch_mask) #else #error "qemu-options-wrapper.h included with no option defined" @@ -25,6 +33,7 @@ #undef DEF #undef DEFHEADING +#undef ARCHHEADING #undef GEN_DOCS #undef QEMU_OPTIONS_GENERATE_ENUM diff --git a/qemu-options.hx b/qemu-options.hx index 087a3b9376..749aee1bb7 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -1070,9 +1070,9 @@ STEXI @end table ETEXI -DEFHEADING() +ARCHHEADING(, QEMU_ARCH_I386) -DEFHEADING(i386 target only:) +ARCHHEADING(i386 target only:, QEMU_ARCH_I386) STEXI @table @option ETEXI diff --git a/scripts/hxtool b/scripts/hxtool index 7ca83ed1ff..995bb7f08c 100644 --- a/scripts/hxtool +++ b/scripts/hxtool @@ -47,6 +47,9 @@ hxtotexi() DEFHEADING*) echo "$(expr "$str" : "DEFHEADING(\(.*\))")" ;; + ARCHHEADING*) + echo "$(expr "$str" : "ARCHHEADING(\(.*\),.*)")" + ;; *) test $flag -eq 1 && echo "$str" ;; diff --git a/vl.c b/vl.c index 25ec37b563..da69f94dd1 100644 --- a/vl.c +++ b/vl.c @@ -1492,24 +1492,21 @@ static void version(void) static void help(int exitcode) { - const char *options_help = + version(); + printf("usage: %s [options] [disk_image]\n\n" + "'disk_image' is a raw hard disk image for IDE hard disk 0\n\n", + error_get_progname()); + #define QEMU_OPTIONS_GENERATE_HELP #include "qemu-options-wrapper.h" - ; - version(); - printf("usage: %s [options] [disk_image]\n" - "\n" - "'disk_image' is a raw hard disk image for IDE hard disk 0\n" - "\n" - "%s\n" - "During emulation, the following keys are useful:\n" + + printf("\nDuring emulation, the following keys are useful:\n" "ctrl-alt-f toggle full screen\n" "ctrl-alt-n switch to virtual console 'n'\n" "ctrl-alt toggle mouse and keyboard grab\n" "\n" - "When using -nographic, press 'ctrl-a h' to get some help.\n", - error_get_progname(), - options_help); + "When using -nographic, press 'ctrl-a h' to get some help.\n"); + exit(exitcode); }