typo
[unix-history] / usr / src / usr.sbin / config / main.c
CommitLineData
ca5d0476 1/*
94e09492 2 * main.c 1.4 81/03/09
ca5d0476
MT
3 * Config
4 * Do system configuration for VAX/UNIX
5 * 1) Build system data structures
6 * 2) Build makefile
7 * 3) Create header files for devices
8 * Michael Toy -- Berkeley -- 1981
9 */
10
11#include <stdio.h>
12#include <ctype.h>
13#include "y.tab.h"
14#include "config.h"
15
16main(argc, argv)
17int argc;
18char **argv;
19{
20 if (argc != 2)
21 {
22 fprintf(stderr, "usage: config <sysname>\n");
23 exit(1);
24 }
0a2de74e 25 PREFIX = argv[1];
ca5d0476
MT
26 if (freopen(argv[1], "r", stdin) == NULL)
27 {
28 perror(argv[1]);
29 exit(2);
30 }
31 dtab = NULL;
32 if (yyparse())
33 exit(3);
34 else
35 {
36 ioconf(); /* Print ioconf.c */
37 ubglue(); /* Create ubglue.s */
38 makefile(); /* build Makefile */
39 headers(); /* make a lot of .h files */
94e09492 40 printf("Don't forget to run \"make depend\"\n");
ca5d0476
MT
41 }
42}
43
44/*
45 * get_word
46 * returns EOF on end of file
47 * NULL on end of line
48 * pointer to the word otherwise
49 */
50
51char *get_word(fp)
52register FILE *fp;
53{
54 static char line[80];
55 register int ch;
56 register char *cp;
57
58 while((ch = getc(fp)) != EOF)
59 if (ch != ' ' && ch != '\t')
60 break;
61 if (ch == EOF)
62 return EOF;
63 if (ch == '\n')
64 return NULL;
65 cp = line;
66 *cp++ = ch;
67 while((ch = getc(fp)) != EOF)
68 {
69 if (isspace(ch))
70 break;
71 *cp++ = ch;
72 }
73 *cp = '\0';
74 if (ch == EOF)
75 return EOF;
76 ungetc(ch, fp);
77 return line;
78}
0a2de74e
MT
79
80/*
81 * path:
82 * Prepend the path to a filename
83 */
84
85path(file)
86char *file;
87{
88 register char *cp;
89
d5429061
BJ
90 cp = malloc(strlen(PREFIX)+strlen(file)+5);
91 strcpy(cp, "../");
92 strcat(cp, PREFIX);
93 strcat(cp, "/");
94 strcat(cp, file);
0a2de74e
MT
95 return cp;
96}