[coreboot-gerrit] New patch to review for coreboot: sconfig: Update command line parameters

Martin Roth (martinroth@google.com) gerrit at coreboot.org
Sat Aug 6 02:32:55 CEST 2016


Martin Roth (martinroth at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16078

-gerrit

commit 33f001ae766ff9e82660d3e8cd44dceef4dc74ce
Author: Martin Roth <martinroth at google.com>
Date:   Fri Aug 5 15:46:56 2016 -0600

    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 at google.com>
---
 Makefile.inc        | 17 ++++++++++-------
 util/sconfig/main.c | 27 ++++++++-------------------
 2 files changed, 18 insertions(+), 26 deletions(-)

diff --git a/Makefile.inc b/Makefile.inc
index b3c908d..90e7bb3 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -451,15 +451,18 @@ $(obj)/config.h: $(objutil)/kconfig/conf
 #######################################################################
 # needed objects that every mainboard uses
 # Creation of these is architecture and mainboard independent
-$(obj)/mainboard/$(MAINBOARDDIR)/static.c: $(src)/mainboard/$(MAINBOARDDIR)/$(call strip_quotes, $(CONFIG_DEVICETREE)) $(objutil)/sconfig/sconfig
+DEVICETREE_FILE := $(src)/mainboard/$(MAINBOARDDIR)/$(call strip_quotes, $(CONFIG_DEVICETREE))
+DEVICETREE_STATIC_C := $(obj)/mainboard/$(MAINBOARDDIR)/static.c
+
+$(DEVICETREE_STATIC_C): $(DEVICETREE_FILE) $(objutil)/sconfig/sconfig
 	@printf "    SCONFIG    $(subst $(src)/,,$(<))\n"
-	mkdir -p $(obj)/mainboard/$(MAINBOARDDIR)
-	$(objutil)/sconfig/sconfig $(MAINBOARDDIR) $(obj)/mainboard/$(MAINBOARDDIR) $(call strip_quotes, $(CONFIG_DEVICETREE))
+	mkdir -p $(dir $(DEVICETREE_STATIC_C))
+	$(objutil)/sconfig/sconfig $(MAINBOARDDIR) $(DEVICETREE_FILE) $(DEVICETREE_STATIC_C)
 
-ramstage-y+=$(obj)/mainboard/$(MAINBOARDDIR)/static.c
-romstage-y+=$(obj)/mainboard/$(MAINBOARDDIR)/static.c
-verstage-y+=$(obj)/mainboard/$(MAINBOARDDIR)/static.c
-bootblock-y+=$(obj)/mainboard/$(MAINBOARDDIR)/static.c
+ramstage-y+=$(DEVICETREE_STATIC_C)
+romstage-y+=$(DEVICETREE_STATIC_C)
+verstage-y+=$(DEVICETREE_STATIC_C)
+bootblock-y+=$(DEVICETREE_STATIC_C)
 
 $(objgenerated)/libverstage.a: $$(libverstage-objs)
 	rm -f $@
diff --git a/util/sconfig/main.c b/util/sconfig/main.c
index 3164313..24ba019 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);
 	}



More information about the coreboot-gerrit mailing list