[coreboot] [flashrom] r587 - trunk

svn at coreboot.org svn at coreboot.org
Fri Jun 12 16:49:10 CEST 2009

Author: hailfinger
Date: 2009-06-12 16:49:10 +0200 (Fri, 12 Jun 2009)
New Revision: 587

This patch introduces two new targets which are designed to make the
life of packagers easier.
In particular, it should no longer be necessary to patch the makefile
for hassle-free compilation.

The targets are:
make export
make tarball
Both preserve svn revisions and the exported tree does not depend on
subversion in any way or shape.

Documentation for this feature has been added to README.

We need this for five reasons:
1. Packagers currently have to patch flashrom source to compile it on
systems without subversion. We should make it easier for them.
2. Snapshot tarballs currently have a .svn 1.5 directory included but
this will cause errors for users with older svn 1.4. Not requiring
subversion for snapshot compilation is best.
3. Since packagers seldom the svn revision in their fixup patches, some
packages out there have incorrect or no revision, only major version
4. Releasing a new version of flashrom needs too many changes to the
makefile which have to be reverted instantly after the release. That is
unnecessary churn.
5. Making a release is easy with the change. Update the major version,
then run "make tarball".

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>  
Acked-by: Uwe Hermann <uwe at hermann-uwe.de>

Modified: trunk/Makefile
--- trunk/Makefile	2009-06-12 14:05:25 UTC (rev 586)
+++ trunk/Makefile	2009-06-12 14:49:10 UTC (rev 587)
@@ -25,6 +25,7 @@
 PREFIX  ?= /usr/local
 MANDIR  ?= $(PREFIX)/share/man
 CFLAGS  ?= -Os -Wall -Werror
 OS_ARCH	= $(shell uname)
 ifneq ($(OS_ARCH), SunOS)
@@ -53,9 +54,14 @@
 # Set the flashrom version string from the highest revision number
 # of the checked out flashrom files.
-SVNDEF := -D'FLASHROM_VERSION="0.9.0-r$(shell svnversion -cn . \
-          | sed -e "s/.*://" -e "s/\([0-9]*\).*/\1/")"'
+# Note to packagers: Any tree exported with "make export" or "make tarball"
+# will not require subversion. The downloadable snapshots are already exported.
+SVNVERSION := $(shell LANG=C svnversion -cn . | sed -e "s/.*://" -e "s/\([0-9]*\).*/\1/" | grep "[0-9]" || echo unknown)
 	$(CC) $(LDFLAGS) -o $(PROGRAM) $(OBJS) $(LIBS)
@@ -93,6 +99,17 @@
 	$(INSTALL) -m 0755 $(PROGRAM) $(DESTDIR)$(PREFIX)/sbin
 	$(INSTALL) -m 0644 $(PROGRAM).8 $(DESTDIR)$(MANDIR)/man8
-.PHONY: all clean distclean dep pciutils
+	@rm -rf $(EXPORTDIR)/flashrom-$(VERSION)
+	@svn export -r BASE . $(EXPORTDIR)/flashrom-$(VERSION)
+	@sed "s/^SVNVERSION.*/SVNVERSION := $(SVNVERSION)/" Makefile >$(EXPORTDIR)/flashrom-$(VERSION)/Makefile
+	@echo Exported $(EXPORTDIR)/flashrom-$(VERSION)/
+tarball: export
+	@tar cfz $(EXPORTDIR)/flashrom-$(VERSION).tar.gz -C $(EXPORTDIR)/ flashrom-$(VERSION)/
+	@rm -rf $(EXPORTDIR)/flashrom-$(VERSION)
+	@echo Created $(EXPORTDIR)/flashrom-$(VERSION).tar.gz
+.PHONY: all clean distclean dep pciutils export tarball
 -include .dependencies

Modified: trunk/README
--- trunk/README	2009-06-12 14:05:25 UTC (rev 586)
+++ trunk/README	2009-06-12 14:49:10 UTC (rev 587)
@@ -15,6 +15,25 @@
 (see http://coreboot.org for details on coreboot)
+To package flashrom and remove dependencies on subversion, either use
+make export
+make tarball
+make export will export all flashrom files from the subversion repository at
+revision BASE into a directory named $EXPORTDIR/flashrom-$VERSION-r$SVNREVISION
+and will additionally modify the Makefile in that directory to contain the svn
+revision of the exported tree.
+make tarball will simply tar up the result of make export and gzip compress it.
+The snapshot tarballs are the result of make tarball and require no further
 Build Instructions

More information about the coreboot mailing list