diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 41 |
1 files changed, 38 insertions, 3 deletions
@@ -28,24 +28,59 @@ */ #include <stdio.h> -#include <ldo/elf.h> +#include <unistd.h> #include <ldo/file.h> +#include <ldo/ldo.h> + +static ldo_flags_t flags = 0; static void usage(const char *argv0) { - fprintf(stderr, "Usage: %s <*.o>\n", argv0); + fprintf(stderr, "Usage: %s <*.oo>\n", argv0); +} + +/* + * Get linker runtime flags + */ +ldo_flags_t +ldo_rtflags(void) +{ + return flags; } int main(int argc, char **argv) { - struct ldo_file *lfp; + char c; + int i; if (argc < 2) { usage(argv[0]); return -1; } + while ((c = getopt(argc, argv, "hv")) >= 0) { + switch (c) { + case 'h': + usage(argv[0]); + return 0; + case 'v': + flags |= LDO_F_VERBOSE; + break; + case '?': + fprintf(stderr, "Bad argument: -%c\n", optopt); + break; + } + } + + ldo_init(); + + /* Load object files */ + if (optind < argc) { + for (i = optind; i < argc; ++i) { + ldo_load(argv[i]); + } + } return 0; } |