From patchwork Thu Mar 31 12:23:49 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?C=C3=A9dric_Le_Goater?= X-Patchwork-Id: 604098 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3qbNwv3m9Yz9sDH for ; Thu, 31 Mar 2016 23:24:15 +1100 (AEDT) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3qbNwv2fRbzDq72 for ; Thu, 31 Mar 2016 23:24:15 +1100 (AEDT) X-Original-To: skiboot@lists.ozlabs.org Delivered-To: skiboot@lists.ozlabs.org Received: from e06smtp15.uk.ibm.com (e06smtp15.uk.ibm.com [195.75.94.111]) (using TLSv1.2 with cipher CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3qbNwk0K83zDq6W for ; Thu, 31 Mar 2016 23:24:05 +1100 (AEDT) Received: from localhost by e06smtp15.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 31 Mar 2016 13:24:01 +0100 Received: from d06dlp02.portsmouth.uk.ibm.com (9.149.20.14) by e06smtp15.uk.ibm.com (192.168.101.145) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Thu, 31 Mar 2016 13:24:00 +0100 X-IBM-Helo: d06dlp02.portsmouth.uk.ibm.com X-IBM-MailFrom: clg@fr.ibm.com X-IBM-RcptTo: skiboot@lists.ozlabs.org Received: from b06cxnps3075.portsmouth.uk.ibm.com (d06relay10.portsmouth.uk.ibm.com [9.149.109.195]) by d06dlp02.portsmouth.uk.ibm.com (Postfix) with ESMTP id 10BEC219005C for ; Thu, 31 Mar 2016 13:23:40 +0100 (BST) Received: from d06av11.portsmouth.uk.ibm.com (d06av11.portsmouth.uk.ibm.com [9.149.37.252]) by b06cxnps3075.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u2VCNx8X5898650 for ; Thu, 31 Mar 2016 12:23:59 GMT Received: from d06av11.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av11.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id u2VCNwPn000335 for ; Thu, 31 Mar 2016 06:23:59 -0600 Received: from hermes.ibm.com (icon-9-164-173-52.megacenter.de.ibm.com [9.164.173.52]) by d06av11.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id u2VCNus2032669; Thu, 31 Mar 2016 06:23:58 -0600 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: skiboot@lists.ozlabs.org Date: Thu, 31 Mar 2016 14:23:49 +0200 Message-Id: <1459427029-12747-2-git-send-email-clg@fr.ibm.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1459427029-12747-1-git-send-email-clg@fr.ibm.com> References: <1459427029-12747-1-git-send-email-clg@fr.ibm.com> MIME-Version: 1.0 X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 16033112-0021-0000-0000-00002C3B2512 Subject: [Skiboot] [PATCH 2/2] external: improve xscom commands Makefile X-BeenThere: skiboot@lists.ozlabs.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Mailing list for skiboot development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: skiboot-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Skiboot" The current Makefile is a bit rustic compared to other skiboot tools. This patch adds a proper install target and a new versioning target. Signed-off-by: Cédric Le Goater --- external/xscom-utils/Makefile | 54 +++++++++++++++++++++++++++++++++-------- external/xscom-utils/getscom.c | 4 ++- external/xscom-utils/getsram.c | 4 ++- external/xscom-utils/putscom.c | 4 ++- skiboot.spec | 4 +-- 5 files changed, 55 insertions(+), 15 deletions(-) Index: skiboot.git/external/xscom-utils/getscom.c =================================================================== --- skiboot.git.orig/external/xscom-utils/getscom.c +++ skiboot.git/external/xscom-utils/getscom.c @@ -74,6 +74,8 @@ static void print_chip_info(uint32_t chi } +extern const char version[]; + int main(int argc, char *argv[]) { uint64_t val, addr = -1ull; @@ -108,7 +110,7 @@ int main(int argc, char *argv[]) list_chips = true; break; case 'v': - printf("xscom utils version %s\n", VERSION); + printf("xscom utils version %s\n", version); exit(0); default: exit(1); Index: skiboot.git/external/xscom-utils/getsram.c =================================================================== --- skiboot.git.orig/external/xscom-utils/getsram.c +++ skiboot.git/external/xscom-utils/getsram.c @@ -32,6 +32,8 @@ static void print_usage(int code) exit(code); } +extern const char version[]; + int main(int argc, char *argv[]) { uint64_t val, addr = -1ull; @@ -69,7 +71,7 @@ int main(int argc, char *argv[]) print_usage(0); break; case 'v': - printf("xscom utils version %s\n", VERSION); + printf("xscom utils version %s\n", version); exit(0); default: exit(1); Index: skiboot.git/external/xscom-utils/Makefile =================================================================== --- skiboot.git.orig/external/xscom-utils/Makefile +++ skiboot.git/external/xscom-utils/Makefile @@ -1,23 +1,57 @@ -all: getscom putscom getsram +CC = $(CROSS_COMPILE)gcc XSCOM_VERSION ?= $(shell ../../make_version.sh xscom-utils) -CFLAGS?=-O2 -g -Wall -m64 -override CFLAGS += -DVERSION=\"$(XSCOM_VERSION)\" +CFLAGS += -O2 -g -Wall -m64 + +prefix = /usr/local/ +sbindir = $(prefix)/sbin +datadir = $(prefix)/share +mandir = $(datadir)/man + +%.o: %.c + $(Q_CC)$(COMPILE.c) $< -o $@ + +# Use make V=1 for a verbose build. +ifndef V + Q_CC= @echo ' CC ' $@; + Q_LINK= @echo ' LINK ' $@; + Q_LN= @echo ' LN ' $@; + Q_MKDIR=@echo ' MKDIR ' $@; +endif + +all: getscom putscom getsram + +getscom: getscom.c xscom.o version.o + $(Q_LINK)$(LINK.o) -o $@ $^ -getscom: getscom.c xscom.c - $(CC) $(CFLAGS) -o $@ $^ +getsram: getsram.o xscom.o sram.o version.o + $(Q_LINK)$(LINK.o) -o $@ $^ -getsram: getsram.c xscom.c sram.c - $(CC) $(CFLAGS) -o $@ $^ +putscom: putscom.o xscom.o version.o + $(Q_LINK)$(LINK.o) -o $@ $^ -putscom: putscom.c xscom.c - $(CC) $(CFLAGS) -o $@ $^ +install: all + install -D getscom $(DESTDIR)$(sbindir)/getscom + install -D putscom $(DESTDIR)$(sbindir)/putscom + install -D getsram $(DESTDIR)$(sbindir)/getsram .PHONY: clean clean: - rm -rf getscom putscom getsram + rm -rf *.[od] getscom putscom getsram .PHONY: distclean distclean: clean rm -rf *.c~ *.h~ *.i *.s Makefile~ +version.c: ../../make_version.sh .version + @(if [ "a$(XSCOM_VERSION)" = "a" ]; then \ + echo "#error You need to set XSCOM_VERSION environment variable" > $@ ;\ + else \ + echo "const char version[] = \"$(XSCOM_VERSION)\";" ;\ + fi) > $@ + +.PHONY: VERSION-always +.version: VERSION-always + @echo $(XSCOM_VERSION) > $@.tmp + @cmp -s $@ $@.tmp || cp $@.tmp $@ + @rm -f $@.tmp Index: skiboot.git/external/xscom-utils/putscom.c =================================================================== --- skiboot.git.orig/external/xscom-utils/putscom.c +++ skiboot.git/external/xscom-utils/putscom.c @@ -30,6 +30,8 @@ static void print_usage(int code) exit(code); } +extern const char version[]; + int main(int argc, char *argv[]) { uint64_t val = -1ull, addr = -1ull; @@ -62,7 +64,7 @@ int main(int argc, char *argv[]) chip_id = strtoul(optarg, NULL, 0); break; case 'v': - printf("xscom utils version %s\n", VERSION); + printf("xscom utils version %s\n", version); exit(0); case 'h': print_usage(0); Index: skiboot.git/skiboot.spec =================================================================== --- skiboot.git.orig/skiboot.spec +++ skiboot.git/skiboot.spec @@ -58,8 +58,7 @@ XSCOM_VERSION=%version make V=1 -C exter %install make -C external/opal-prd install DESTDIR=%{buildroot} prefix=/usr make -C external/gard install DESTDIR=%{buildroot} prefix=/usr -cp external/xscom-utils/{get,put}scom %{buildroot}%{_sbindir} -cp external/pflash/pflash %{buildroot}%{_sbindir} +make -C external/xscom-utils install DESTDIR=%{buildroot} prefix=/usr mkdir -p %{buildroot}%{_unitdir} install -m 644 -p %{SOURCE1} %{buildroot}%{_unitdir}/opal-prd.socket @@ -102,6 +101,7 @@ fi %{_sbindir}/opal-gard %{_sbindir}/getscom %{_sbindir}/putscom +%{_sbindir}/getsram %{_sbindir}/pflash %{_mandir}/man1/*