Commit | Line | Data |
---|---|---|
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 | ||
16 | main(argc, argv) | |
17 | int argc; | |
18 | char **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 | ||
51 | char *get_word(fp) | |
52 | register 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 | ||
85 | path(file) | |
86 | char *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 | } |