FreeCalypso > hg > fc-magnetite
annotate helpers/makeline.c @ 640:16eb1b9640dc
target gtm900 renamed to gtm900mgc2
This change reflects the fact that the build target in question supports
MGC2GSMT hardware only, and will NOT work on other hw that confusing bears
the same end user name of GTM900, neither the LoCosto-based GTM900-C
nor the Calypso-based MG01GSMT that has a different and incompatible RFFE.
If we ever get our hands on a piece of MG01GSMT hw and add support for it,
that other target will be named gtm900mg01.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 31 Jan 2020 00:46:07 +0000 |
parents | 352f80da6813 |
children |
rev | line source |
---|---|
9
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * This helper utility for the FreeCalypso Magnetite build system |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * emits potentially long generated Makefile lines, breaking them into |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * multiple lines with backslashes. |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 */ |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <stdio.h> |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <stdlib.h> |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <string.h> |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include <strings.h> |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 int is_cmd, equ_or_colon, extra_indent; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 int linelen; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 main(argc, argv) |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 char **argv; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 { |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 char **ap; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 if (argc < 4) { |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 fprintf(stderr, "error: too few arguments\n", argv[0]); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 exit(1); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 } |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 if (!strcmp(argv[1], "def")) { |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 is_cmd = 0; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 equ_or_colon = '='; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 extra_indent = 0; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 } else if (!strcmp(argv[1], "dep")) { |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 is_cmd = 0; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 equ_or_colon = ':'; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 extra_indent = 1; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 } else if (!strcmp(argv[1], "cmd")) { |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 is_cmd = 1; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 extra_indent = 1; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 } else { |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 fprintf(stderr, "error: line type \"%s\" not known\n", argv[1]); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 exit(1); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 } |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 if (is_cmd) { |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 putchar('\t'); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 linelen = 8; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 } else |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 linelen = 0; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 fputs(argv[2], stdout); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 linelen += strlen(argv[2]); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 if (is_cmd) { |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 putchar(' '); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 linelen++; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 } else { |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 putchar(equ_or_colon); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 linelen++; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 putchar('\t'); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 do |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 linelen++; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 while (linelen & 7); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 } |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57 fputs(argv[3], stdout); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 linelen += strlen(argv[3]); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59 for (ap = argv + 4; *ap; ap++) { |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60 if (linelen + 1 + strlen(*ap) <= 78) { |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61 putchar(' '); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 linelen++; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 } else { |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 fputs(" \\\n\t", stdout); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 linelen = 8; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 if (extra_indent) { |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 fputs(" ", stdout); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 linelen += 4; |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 } |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 } |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 fputs(*ap, stdout); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 linelen += strlen(*ap); |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 } |
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 putchar('\n'); |
10 | 75 exit(0); |
9
05945a9b9dda
makeline helper written
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 } |