V10/sys/mkconf/main.c

Compare this file to the similar file:
Show the results in this format:

/*
 * make configuration files for unix v9
 */

#include <libc.h>
#include "mkconf.h"

Mdev *mlist;	/* master list of devices; no particular order */
Dev *dlist;	/* configured devices; clustered by type, sorted within by id */
Scb *llist;	/* scb offsets; sorted by offset */

char *tfile = "tab";
char *dfile = "devs";
char *lfile = "low";
char *oconf = "conf.c";
char *olow = "low.s";

#define	NCF	10
char *cfile[NCF] = {"conf"};

int errs;

main(argc, argv)
int argc;
char **argv;
{
	register char **p;

	p = cfile;
	while (--argc > 0) {
		if (**++argv != '-') {
			if (p >= &cfile[NCF-1]) {
				fprint(STDERR, "too many files\n");
				exit(1);
			}
			*p++ = *argv;
			continue;
		}
		if (argc == 1)
			usage();
		if (strcmp(*argv, "-d") == 0) {
			dfile = *++argv;
			argc--;
		} else if (strcmp(*argv, "-t") == 0) {
			tfile = *++argv;
			argc--;
		} else if (strcmp(*argv, "-l") == 0) {
			lfile = *++argv;
			argc--;
		} else if (strcmp(*argv, "-c") == 0) {
			oconf = *++argv;
			argc--;
		} else if (strcmp(*argv, "-s") == 0) {
			olow = *++argv;
			argc--;
		} else
			usage();
	}
	readdevs(dfile);
	readtab(tfile);
	readlow(lfile);
	for (p = cfile; *p; p++)
		readconf(*p);
	fixup();
	if (errs)
		exit(1);
	writconf(oconf);
	writlow(olow);
	exit(0);
}

usage()
{
	fprint(STDERR, "usage: mkconf [-d devices] [-l veclist] [-c conf.c] [-s low.s] conf\n");
	exit(1);
}