diff options
Diffstat (limited to 'src/internal_cmd.c')
-rw-r--r-- | src/internal_cmd.c | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/src/internal_cmd.c b/src/internal_cmd.c index 3801fda..f8a9701 100644 --- a/src/internal_cmd.c +++ b/src/internal_cmd.c @@ -10,13 +10,23 @@ static char *internal_commands[] = { "mkprefixbin", "generate prefix manifest (binary)", "mkprefixtext", "generate prefix manifest (text)", "rpath_set", "modify binary RPATH", + "rpath_autoset", "determine nearest lib directory and set RPATH", NULL, NULL, }; +/** + * + */ void mkprefix_interface_usage(void) { printf("usage: mkprefix[bin|text] {output_file} {dir} {prefix ...}\n"); } +/** + * Create prefix manifests from the CLI + * @param argc + * @param argv + * @return return value of `prefixes_write` + */ int mkprefix_interface(int argc, char **argv) { char *command = argv[0]; char *outfile = argv[1]; @@ -78,10 +88,10 @@ void rpath_set_interface_usage(void) { } /** - * + * Set a RPATH from the CLI * @param argc * @param argv - * @return + * @return return value of `rpath_set` */ int rpath_set_interface(int argc, char **argv) { if (argc < 3) { @@ -98,6 +108,32 @@ int rpath_set_interface(int argc, char **argv) { } /** + * + */ +void rpath_autoset_interface_usage(void) { + printf("usage: rpath_autoset {file} {rpath}\n"); +} + +/** + * Set a RPATH automatically from the CLI + * @param argc + * @param argv + * @return return value of `rpath_autoset` + */ +int rpath_autoset_interface(int argc, char **argv) { + if (argc < 2) { + rpath_autoset_interface_usage(); + return -1; + } + char *filename = argv[1]; + int result = rpath_autoset(filename); + if (result < 0) { + fprintf(SYSERROR); + } + return result; +} + +/** * Show a listing of valid internal commands */ void internal_command_list(void) { |