bump version to 0.9.0
[rofl0r-agsutils.git] / agssemble.c
blobbd385b44a20b305fe0ec2f2bbbf0f0326e10c4da
1 #define _GNU_SOURCE
2 #include "Assembler.h"
3 #include "DataFile.h"
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <unistd.h>
7 #include "version.h"
8 #define ADS ":::AGSsemble " VERSION " by rofl0r:::"
10 __attribute__((noreturn))
11 void usage(char *argv0) {
12 dprintf(2, ADS "\nusage:\n%s file.s [file.o]\npass an ags assembly filename.\n"
13 "if optional second filename is ommited, will write into file.o\n", argv0);
14 exit(1);
17 int main(int argc, char** argv) {
18 if(argc < 2 || argc > 3) usage(argv[0]);
19 AS a_b, *a = &a_b;
20 char* file = argv[1];
21 AS_open(a, file);
22 char out [256], *outn;
23 if(argc == 2) {
24 size_t l = strlen(file);
25 snprintf(out, 256, "%s", file);
26 out[l-1] = 'o'; // overflow me!
27 outn = out;
28 } else outn = argv[2];
29 dprintf(1, "assembling %s -> %s ... ", file, outn);
30 int ret = AS_assemble(a, outn);
31 AS_close(a);
33 if(!ret) dprintf(1, "FAIL\n");
34 else dprintf(1, "OK\n");
35 return !ret;