FreeCalypso > hg > ueda-linux
changeset 131:125fc4ef7eb0
ueda-csvattr program written, compiles
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 31 Aug 2020 00:01:59 +0000 |
parents | c165882efdf1 |
children | 31ae8105aaa0 |
files | .hgignore ueda/mclutils/Makefile ueda/mclutils/csvattr.c |
diffstat | 3 files changed, 60 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgignore Thu Jul 30 19:56:24 2020 +0000 +++ b/.hgignore Mon Aug 31 00:01:59 2020 +0000 @@ -2,6 +2,7 @@ \.[oa]$ +^ueda/mclutils/csvattr$ ^ueda/mclutils/csvbom$ ^ueda/mclutils/getfps$ ^ueda/mclutils/mkbom$
--- a/ueda/mclutils/Makefile Thu Jul 30 19:56:24 2020 +0000 +++ b/ueda/mclutils/Makefile Mon Aug 31 00:01:59 2020 +0000 @@ -1,11 +1,14 @@ CC= gcc CFLAGS= -O2 -PROGS= csvbom getfps mkbom shortbom +PROGS= csvattr csvbom getfps mkbom shortbom LIBUEDA=../libueda/libueda.a BINDIR= /usr/local/bin all: ${PROGS} +csvattr: csvattr.o ${LIBUEDA} + ${CC} ${CFLAGS} -o $@ $@.o ${LIBUEDA} + csvbom: csvbom.o bomtally.o seqrefdes.o ${LIBUEDA} ${CC} ${CFLAGS} -o $@ $@.o bomtally.o seqrefdes.o ${LIBUEDA} @@ -19,6 +22,7 @@ ${CC} ${CFLAGS} -o $@ $@.o ${LIBUEDA} install: + install -c -o bin -g bin -m 755 csvattr ${BINDIR}/ueda-csvattr install -c -o bin -g bin -m 755 csvbom ${BINDIR}/ueda-csvbom install -c -o bin -g bin -m 755 getfps ${BINDIR}/ueda-getfps install -c -o bin -g bin -m 755 mkbom ${BINDIR}/ueda-mkbom
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ueda/mclutils/csvattr.c Mon Aug 31 00:01:59 2020 +0000 @@ -0,0 +1,54 @@ +/* + * This program generates a CSV output listing all components in their + * MCL order and carrying a selected set of attributes as columns. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <strings.h> +#include <unistd.h> +#include "../libueda/mcl.h" + +extern char *MCLfile; +extern struct component components[]; +extern int ncomponents; +extern char *get_comp_attr(); + +main(argc, argv) + char **argv; +{ + extern int optind; + register int c, ai; + register struct component *comp; + register char *attr; + + while ((c = getopt(argc, argv, "M:")) != EOF) + switch (c) { + case 'M': + MCLfile = optarg; + break; + default: + /* getopt prints the error message */ + exit(1); + } + + read_MCL(); + /* emit CSV header */ + fputs("Refdes", stdout); + for (ai = optind; ai < argc; ai++) + printf(",%s", argv[ai]); + putchar('\n'); + + for (comp = components, c = 0; c < ncomponents; comp++, c++) { + fputs(comp->name, stdout); + for (ai = optind; ai < argc; ai++) { + attr = get_comp_attr(comp, argv[ai]); + if (!attr) + attr = ""; + printf(",%s", attr); + } + putchar('\n'); + } + exit(0); +}