Import Upstream version 1.8.5
[hcoop/debian/openafs.git] / src / config / config.c
CommitLineData
805e021f
CE
1/*
2 * Copyright 2000, International Business Machines Corporation and others.
3 * All Rights Reserved.
4 *
5 * This software has been released under the terms of the IBM Public
6 * License. For details, see the LICENSE file in the top-level source
7 * directory or online at http://www.openafs.org/dl/license10.html
8 */
9
10#include <sys/types.h>
11#include <sys/file.h>
12#include <sys/time.h>
13#include <stdio.h>
14#include <string.h>
15#include <stdlib.h>
16#include <errno.h>
17
18#include "AFS_component_version_number.c"
19
20/* prototypes */
21int mc_copy(FILE *, FILE *, char **);
22
23int
24main(int argc, char **argv)
25{
26 FILE *infile;
27 FILE *outfile;
28 char *alist[5];
29 int code;
30 char *sysname;
31
32 if (argc != 4) {
33 printf
34 ("config: usage is 'config <from file> <to file> <system name>'\n");
35 exit(1);
36 }
37 infile = fopen(argv[1], "r");
38 if (!infile) {
39 printf("config: input file %s not found.\n", argv[1]);
40 exit(1);
41 }
42 outfile = fopen(argv[2], "w+");
43 if (!outfile) {
44 printf("config: output file %s not found.\n", argv[2]);
45 exit(1);
46 }
47 memset (alist, 0, sizeof (alist));
48 alist[0] = argv[3];
49 alist[1] = "all";
50
51 /* This allows JUST arch or JUST OS/version,
52 * Linux 2.6 uses the in-kernel build system, so
53 * just 'linux26' is enough. */
54 sysname = strdup (alist[0]);
55 alist[2] = strchr (sysname, '_');
56 if (alist[2]) {
57 alist[3] = sysname;
58 *alist[2] = 0;
59 alist[2]++;
60 }
61 code = mc_copy(infile, outfile, alist);
62 if (code) {
63 printf("config: failed to correctly write makefile '%s', code %d\n",
64 argv[2], code);
65 exit(1);
66 } else {
67 printf("Wrote new makefile '%s'.\n", argv[2]);
68 exit(0);
69 }
70}