FreeCalypso > hg > fc-magnetite
view helpers/makeline.c @ 684:269554439ace
targets/fcdev3b.h: bring back CONFIG_TARGET_FCDEV3B
C preprocessor symbol CONFIG_TARGET_FCMODEM is no longer used anywhere
in our code base, thus it is being fully retired. OTOH, CONFIG_TARGET_FCDEV3B
is being brought back: with our earlier FC modem family idea now being
withdrawn in light of the discovery of Tango modules, FCDEV3B goes back to
being its own unique target.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 24 Sep 2020 20:21:51 +0000 |
parents | 352f80da6813 |
children |
line wrap: on
line source
/* * This helper utility for the FreeCalypso Magnetite build system * emits potentially long generated Makefile lines, breaking them into * multiple lines with backslashes. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> int is_cmd, equ_or_colon, extra_indent; int linelen; main(argc, argv) char **argv; { char **ap; if (argc < 4) { fprintf(stderr, "error: too few arguments\n", argv[0]); exit(1); } if (!strcmp(argv[1], "def")) { is_cmd = 0; equ_or_colon = '='; extra_indent = 0; } else if (!strcmp(argv[1], "dep")) { is_cmd = 0; equ_or_colon = ':'; extra_indent = 1; } else if (!strcmp(argv[1], "cmd")) { is_cmd = 1; extra_indent = 1; } else { fprintf(stderr, "error: line type \"%s\" not known\n", argv[1]); exit(1); } if (is_cmd) { putchar('\t'); linelen = 8; } else linelen = 0; fputs(argv[2], stdout); linelen += strlen(argv[2]); if (is_cmd) { putchar(' '); linelen++; } else { putchar(equ_or_colon); linelen++; putchar('\t'); do linelen++; while (linelen & 7); } fputs(argv[3], stdout); linelen += strlen(argv[3]); for (ap = argv + 4; *ap; ap++) { if (linelen + 1 + strlen(*ap) <= 78) { putchar(' '); linelen++; } else { fputs(" \\\n\t", stdout); linelen = 8; if (extra_indent) { fputs(" ", stdout); linelen += 4; } } fputs(*ap, stdout); linelen += strlen(*ap); } putchar('\n'); exit(0); }