summaryrefslogtreecommitdiff
path: root/util/sconfig/main.c
diff options
context:
space:
mode:
authorMartin Roth <martinroth@google.com>2016-08-05 15:46:56 -0600
committerMartin Roth <martinroth@google.com>2016-08-08 19:15:13 +0200
commit25f8a4f6d44c398b059b79572a11471b06af272f (patch)
tree68e7e48f4ec93574e2fd6fcee166c40f8618468a /util/sconfig/main.c
parent3205170a2e4f9d1c99f36a469ce1d228ed3b50cf (diff)
downloadcoreboot-25f8a4f6d44c398b059b79572a11471b06af272f.tar.xz
sconfig: Update command line parameters
Instead of having directories and file names hardcoded, pass in the full path and filename of both the input and output files. In the makefile, create variables for these values, and use them in places that previously had the names and paths written out. Change-Id: Icb6f536547ce3193980ec5d60c786a29755c2813 Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/16078 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'util/sconfig/main.c')
-rw-r--r--util/sconfig/main.c27
1 files changed, 8 insertions, 19 deletions
diff --git a/util/sconfig/main.c b/util/sconfig/main.c
index 316431341a..24ba019074 100644
--- a/util/sconfig/main.c
+++ b/util/sconfig/main.c
@@ -551,7 +551,7 @@ static void inherit_subsystem_ids(FILE *file, struct device *dev)
static void usage(void)
{
- printf("usage: sconfig vendor/mainboard outputdir devicetree [-{s|b|k} outputfile]\n");
+ printf("usage: sconfig vendor/mainboard devicetree_file output_file [-{s|b|k}]\n");
printf("\t-s file\tcreate ramstage static device map\n");
printf("\t-b file\tcreate bootblock init_mainboard()\n");
printf("\t-k file\tcreate Kconfig devicetree section\n");
@@ -560,31 +560,25 @@ static void usage(void)
}
enum {
- VENDOR_MAINBOARD_ARG = 1,
- OUTPUTDIR_ARG,
+ MAINBOARD_ARG = 1,
DEVICEFILE_ARG,
- OUTPUTTYPE_ARG,
- OUTPUTFILE_ARG
+ OUTPUTFILE_ARG,
+ OUTPUTTYPE_ARG
};
#define MIN_ARGS 4
-#define MAX_ARGS 6
+#define MAX_ARGS 5
int main(int argc, char** argv) {
if (argc != MIN_ARGS && argc != MAX_ARGS)
usage();
- char *mainboard = argv[VENDOR_MAINBOARD_ARG];
- char *outputdir = argv[OUTPUTDIR_ARG];
- char *devfile = argv[DEVICEFILE_ARG];
- char *devtree = malloc(strlen(mainboard) + strlen(devfile) + 30);
- sprintf(devtree, "src/mainboard/%s/%s", mainboard, devfile);
- char *outputc;
+ char *mainboard = argv[MAINBOARD_ARG];
+ char *devtree = argv[DEVICEFILE_ARG];
+ char *outputc = argv[OUTPUTFILE_ARG];
if (argc == MIN_ARGS) {
scan_mode = STATIC_MODE;
- outputc=malloc(strlen(outputdir)+20);
- sprintf(outputc, "%s/static.c", outputdir);
} else if (argc == MAX_ARGS) {
if ((argv[OUTPUTTYPE_ARG][0] != '-') ||
(argv[OUTPUTTYPE_ARG][2] == 0)) {
@@ -605,10 +599,6 @@ int main(int argc, char** argv) {
usage();
break;
}
- char *outputfile = argv[OUTPUTFILE_ARG];
-
- outputc=malloc(strlen(outputdir)+strlen(outputfile)+2);
- sprintf(outputc, "%s/%s", outputdir, outputfile);
}
headers.next = 0;
@@ -623,7 +613,6 @@ int main(int argc, char** argv) {
FILE *filec = fopen(devtree, "r");
if (!filec) {
- fprintf(stderr, "Could not open file '%s' for reading: ", devtree);
perror(NULL);
exit(1);
}