firasuke / cross / slibtool

Forked from cross/slibtool a month ago
Clone

Blame src/skin/slbt_skin_ar.c

995aad
#include "slibtool_driver_impl.h"
4b56de
#include "slibtool_visibility_impl.h"
11f3c7
#include "argv/argv.h"
11f3c7
4b56de
const slbt_hidden struct argv_option slbt_ar_options[] = {
b87f70
	{"version",	0,TAG_AR_VERSION,ARGV_OPTARG_NONE,0,0,0,
b87f70
			"show version information"},
b87f70
11f3c7
	{"help",	'h',TAG_AR_HELP,ARGV_OPTARG_NONE,0,0,0,
11f3c7
			"display ar mode help"},
11f3c7
af36ce
	{"Wcheck",	0,TAG_AR_CHECK,ARGV_OPTARG_NONE,
af36ce
			ARGV_OPTION_HYBRID_ONLY,
af36ce
			"[ARCHIVE-FILE]",0,
d6b3d7
			"verify that each %s is a valid archive; "
af36ce
			"supported variants are BSD, SysV, and PE/COFF"},
af36ce
0b177b
	{"Wmerge",	0,TAG_AR_MERGE,ARGV_OPTARG_NONE,
0b177b
			ARGV_OPTION_HYBRID_ONLY,
0b177b
			"[ARCHIVE-FILE]",0,
0b177b
			"merge one or more archive files; "
0b177b
			"the name of the new archive, which may be the same "
0b177b
			"as one of the input archives, shall be specified "
0b177b
			"via the -Woutput switch; order of archive members "
0b177b
			"shall be retained, and symbol maps shall be "
0b177b
			"merged as well as normalized."},
0b177b
0b177b
	{"Woutput",	0,TAG_AR_OUTPUT,ARGV_OPTARG_REQUIRED,
0b177b
			ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_SPACE,
0b177b
			0,0,
0b177b
			"specify the name of the archive to be created "
0b177b
			"(or replaced) as a result of a -Wmerge operation."},
0b177b
8afddf
	{"Wprint",	0,TAG_AR_PRINT,ARGV_OPTARG_OPTIONAL,
8afddf
			ARGV_OPTION_HYBRID_EQUAL|ARGV_OPTION_HYBRID_COMMA,
b75e41
			"members|symbols",0,
8afddf
			"print out information pertaining to each archive file "
8afddf
			"and its various internal elements"},
8afddf
2dc23e
	{"Wmapfile",	0,TAG_AR_MAPFILE,ARGV_OPTARG_NONE,
2dc23e
			ARGV_OPTION_HYBRID_ONLY,
2dc23e
			0,0,
b336c5
			"print out a (sorted) map file "
b336c5
			"(aka symbol file, aka version script), "
2dc23e
			"including either all armap symbols (if no regex filter was "
2dc23e
			"specified), or otherwise only the symbols that match the "
2dc23e
			"specified regex filter."},
2dc23e
76c5e9
	{"Wregex",	0,TAG_AR_REGEX,ARGV_OPTARG_REQUIRED,
76c5e9
			ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_SPACE,
76c5e9
			0,"<regexp>",
76c5e9
			"filter armap symbols using the specified %s."},
76c5e9
dcf6a5
	{"Wdlunit",	0,TAG_AR_DLUNIT,ARGV_OPTARG_REQUIRED,
dcf6a5
			ARGV_OPTION_HYBRID_ONLY|ARGV_OPTION_HYBRID_SPACE,
dcf6a5
			0,"<dlunit>",
dcf6a5
			"consider %s to be the name of "
dcf6a5
			"the dynamic library (libfoo), the program (foo), "
dcf6a5
			"or the loaded module (foo) for which "
dcf6a5
			"a compatible dlsym vtable should be created."},
dcf6a5
dcf6a5
	{"Wdlsyms",	0,TAG_AR_DLSYMS,ARGV_OPTARG_NONE,
dcf6a5
			ARGV_OPTION_HYBRID_ONLY,
dcf6a5
			0,0,
dcf6a5
			"print out a compatible dlsyms vtable."},
dcf6a5
874b59
	{"Wnosort",	0,TAG_AR_NOSORT,ARGV_OPTARG_NONE,
874b59
			ARGV_OPTION_HYBRID_ONLY,
874b59
			0,0,
874b59
			"do not sort the symbol list; "
fe6059
			"affected switches are -Wprint=symbols and -Wmapfile."},
874b59
8afddf
	{"Wpretty",	0,TAG_AR_PRETTY,ARGV_OPTARG_REQUIRED,
8afddf
			ARGV_OPTION_HYBRID_EQUAL,
8afddf
			"posix|yaml|hexdata",0,
8afddf
			"select the pretty printer to be used: "
8afddf
			"'posix' for ar(1) compatible output; "
8afddf
			"'yaml' for yaml-formatted data; and "
8afddf
			"'hexdata' for yaml-formatted data with additional "
8afddf
			"hexdump output"},
af36ce
886865
	{"Wposix",	0,TAG_AR_POSIX,ARGV_OPTARG_NONE,
886865
			ARGV_OPTION_HYBRID_ONLY,0,0,
886865
			"a shorthand for -Wpretty=posix"},
886865
886865
	{"Wyaml",	0,TAG_AR_YAML,ARGV_OPTARG_NONE,
886865
			ARGV_OPTION_HYBRID_ONLY,0,0,
886865
			"a shorthand for -Wpretty=yaml"},
886865
191700
	{"Wverbose",	0,TAG_AR_VERBOSE,ARGV_OPTARG_NONE,
191700
			ARGV_OPTION_HYBRID_ONLY,0,0,
191700
			"produce verbose output; "
191700
			"in combination with -Wpretty=posix, this will result "
191700
			"in `ar(1) -tv` compatible output."},
191700
11f3c7
	{0,0,0,0,0,0,0,0}
11f3c7
};