mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	Better help message printing for command line tool
This commit is contained in:
		
							parent
							
								
									7751c491fb
								
							
						
					
					
						commit
						d6ee6f653f
					
				
					 1 changed files with 77 additions and 72 deletions
				
			
		
							
								
								
									
										149
									
								
								kernel/driver.cc
									
										
									
									
									
								
							
							
						
						
									
										149
									
								
								kernel/driver.cc
									
										
									
									
									
								
							|  | @ -92,6 +92,82 @@ int main(int argc, char **argv) | |||
| 	} | ||||
| #endif | ||||
| 
 | ||||
| 	if (argc == 2 && (!strcmp(argv[1], "-h") || !strcmp(argv[1], "-help") || !strcmp(argv[1], "--help"))) | ||||
| 	{ | ||||
| 		printf("\n"); | ||||
| 		printf("Usage: %s [options] [<infile> [..]]\n", argv[0]); | ||||
| 		printf("\n"); | ||||
| 		printf("    -Q\n"); | ||||
| 		printf("        suppress printing of banner (copyright, disclaimer, version)\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -T\n"); | ||||
| 		printf("        suppress printing of footer (log hash, version, timing statistics)\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -q\n"); | ||||
| 		printf("        quiet operation. only write warnings and error messages to console\n"); | ||||
| 		printf("        use this option twice to also quiet warning messages\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -v <level>\n"); | ||||
| 		printf("        print log headers up to level <level> to the console. (implies -q)\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -t\n"); | ||||
| 		printf("        annotate all log messages with a time stamp\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -d\n"); | ||||
| 		printf("        print more detailed timing stats at exit\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -l logfile\n"); | ||||
| 		printf("        write log messages to the specified file\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -o outfile\n"); | ||||
| 		printf("        write the design to the specified file on exit\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -b backend\n"); | ||||
| 		printf("        use this backend for the output file specified on the command line\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -f backend\n"); | ||||
| 		printf("        use the specified front for the input files on the command line\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -H\n"); | ||||
| 		printf("        print the command list\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -h command\n"); | ||||
| 		printf("        print the help message for the specified command\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -s scriptfile\n"); | ||||
| 		printf("        execute the commands in the script file\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -c tcl_scriptfile\n"); | ||||
| 		printf("        execute the commands in the tcl script file (see 'help tcl' for details)\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -p command\n"); | ||||
| 		printf("        execute the commands\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -m module_file\n"); | ||||
| 		printf("        load the specified module (aka plugin)\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -A\n"); | ||||
| 		printf("        will call abort() at the end of the script. useful for debugging\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    -V\n"); | ||||
| 		printf("        print version information and exit\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("The option -S is an shortcut for calling the \"synth\" command, a default\n"); | ||||
| 		printf("script for transforming the verilog input to a gate-level netlist. For example:\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("    yosys -o output.blif -S input.v\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("For more complex synthesis jobs it is recommended to use the read_* and write_*\n"); | ||||
| 		printf("commands in a script file instead of specifying input and output files on the\n"); | ||||
| 		printf("command line.\n"); | ||||
| 		printf("\n"); | ||||
| 		printf("When no commands, script files or input files are specified on the command\n"); | ||||
| 		printf("line, yosys automatically enters the interactive command mode. Use the 'help'\n"); | ||||
| 		printf("command to get information on the individual commands.\n"); | ||||
| 		printf("\n"); | ||||
| 		exit(0); | ||||
| 	} | ||||
| 
 | ||||
| 	int opt; | ||||
| 	while ((opt = getopt(argc, argv, "AQTVSm:f:Hh:b:o:p:l:qv:tds:c:")) != -1) | ||||
| 	{ | ||||
|  | @ -165,78 +241,7 @@ int main(int argc, char **argv) | |||
| 			scriptfile_tcl = true; | ||||
| 			break; | ||||
| 		default: | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "Usage: %s [-V -S -Q -T -q] [-v <level>[-t] [-l <logfile>] [-o <outfile>] [-f <frontend>] [-h cmd] \\\n", argv[0]); | ||||
| 			fprintf(stderr, "       %*s[{-s|-c} <scriptfile>] [-p <pass> [-p ..]] [-b <backend>] [-m <module_file>] [<infile> [..]]\n", int(strlen(argv[0])+1), ""); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -Q\n"); | ||||
| 			fprintf(stderr, "        suppress printing of banner (copyright, disclaimer, version)\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -T\n"); | ||||
| 			fprintf(stderr, "        suppress printing of footer (log hash, version, timing statistics)\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -q\n"); | ||||
| 			fprintf(stderr, "        quiet operation. only write warnings and error messages to console\n"); | ||||
| 			fprintf(stderr, "        use this option twice to also quiet warning messages\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -v <level>\n"); | ||||
| 			fprintf(stderr, "        print log headers up to level <level> to the console. (implies -q)\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -t\n"); | ||||
| 			fprintf(stderr, "        annotate all log messages with a time stamp\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -d\n"); | ||||
| 			fprintf(stderr, "        print more detailed timing stats at exit\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -l logfile\n"); | ||||
| 			fprintf(stderr, "        write log messages to the specified file\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -o outfile\n"); | ||||
| 			fprintf(stderr, "        write the design to the specified file on exit\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -b backend\n"); | ||||
| 			fprintf(stderr, "        use this backend for the output file specified on the command line\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -f backend\n"); | ||||
| 			fprintf(stderr, "        use the specified front for the input files on the command line\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -H\n"); | ||||
| 			fprintf(stderr, "        print the command list\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -h command\n"); | ||||
| 			fprintf(stderr, "        print the help message for the specified command\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -s scriptfile\n"); | ||||
| 			fprintf(stderr, "        execute the commands in the script file\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -c tcl_scriptfile\n"); | ||||
| 			fprintf(stderr, "        execute the commands in the tcl script file (see 'help tcl' for details)\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -p command\n"); | ||||
| 			fprintf(stderr, "        execute the commands\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -m module_file\n"); | ||||
| 			fprintf(stderr, "        load the specified module (aka plugin)\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -A\n"); | ||||
| 			fprintf(stderr, "        will call abort() at the end of the script. useful for debugging\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    -V\n"); | ||||
| 			fprintf(stderr, "        print version information and exit\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "The option -S is an shortcut for calling the \"synth\" command, a default\n"); | ||||
| 			fprintf(stderr, "script for transforming the verilog input to a gate-level netlist. For example:\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "    yosys -o output.blif -S input.v\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "For more complex synthesis jobs it is recommended to use the read_* and write_*\n"); | ||||
| 			fprintf(stderr, "commands in a script file instead of specifying input and output files on the\n"); | ||||
| 			fprintf(stderr, "command line.\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "When no commands, script files or input files are specified on the command\n"); | ||||
| 			fprintf(stderr, "line, yosys automatically enters the interactive command mode. Use the 'help'\n"); | ||||
| 			fprintf(stderr, "command to get information on the individual commands.\n"); | ||||
| 			fprintf(stderr, "\n"); | ||||
| 			fprintf(stderr, "Run '%s -h' for help.\n", argv[0]); | ||||
| 			exit(1); | ||||
| 		} | ||||
| 	} | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue