clean up openwrt version handling, use a separate script that is executed at the...
authorFelix Fietkau <nbd@openwrt.org>
Thu, 13 Dec 2007 06:25:54 +0000 (06:25 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 13 Dec 2007 06:25:54 +0000 (06:25 +0000)
SVN-Revision: 9723

include/toplevel.mk
package/base-files/Makefile
scripts/getver.sh [new file with mode: 0755]

index 040ff51..63325aa 100644 (file)
@@ -7,20 +7,15 @@
 #
 
 RELEASE:=Kamikaze
-#VERSION:=2.0 # uncomment for final release
-
 SHELL:=/usr/bin/env bash
-OPENWRTVERSION:=$(RELEASE)
 PREP_MK= OPENWRT_BUILD= QUIET=0
+
 include $(TOPDIR)/include/verbose.mk
-ifneq ($(VERSION),)
-  OPENWRTVERSION:=$(VERSION) ($(OPENWRTVERSION))
-else
-  REV:=$(if $(wildcard .svn/entries),$(shell LANG=C svn info | awk '/^Revision:/ { print$$2 }' ))
-  ifneq ($(REV),)
-    OPENWRTVERSION:=$(OPENWRTVERSION)/r$(REV)
-  endif
-endif
+
+REVISION:=$(shell $(TOPDIR)/scripts/getver.sh)
+OPENWRTVERSION:=$(RELEASE)$(if $(REVISION), ($(REVISION)))
+export RELEASE
+export REVISION
 export OPENWRTVERSION
 export IS_TTY=$(shell tty -s && echo 1 || echo 0)
 
index 3e83c01..091ce0f 100644 (file)
@@ -14,14 +14,10 @@ PKG_RELEASE:=12
 
 PKG_FILE_DEPEND:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
 
-REV:=$(shell LANG=C svn info | awk '/^Revision:/ { print$$2 }' )
-ifeq ($(REV),)
-  REV:=0
-endif
 include $(INCLUDE_DIR)/package.mk
 
 ifneq ($(DUMP),1)
-  TARGET:=-$(BOARD)-$(KERNEL)
+  TARGET:=-$(BOARD)
   LIBGCC_VERSION:=$(GCC_VERSION)
 else
   UCLIBC_VERSION:=<UCLIBC_VERSION>
@@ -35,7 +31,7 @@ define Package/base-files$(TARGET)
   CATEGORY:=Base system
   TITLE:=Base filesystem for OpenWrt
   URL:=http://openwrt.org/
-  VERSION:=$(PKG_RELEASE)-$(REV)
+  VERSION:=$(PKG_RELEASE)-$(REVISION)
   $(call Config,network.lan.proto,string,static,LAN Protocol)
   $(call Config,network.lan.ipaddr,ip,192.168.1.1,LAN IP Address)
   $(call Config,network.lan.netmask,netmask,255.255.255.0,LAN Network Mask)
@@ -138,7 +134,7 @@ define Package/base-files$(TARGET)/install
                        $(CP) $(PLATFORM_SUBDIR)/base-files/* $(1)/; \
                fi \
        )
-       $(SED) 's,$$$$R,r$(REV),g' $(1)/etc/banner
+       $(SED) 's,$$$$R,r$(REVISION),g' $(1)/etc/banner
        $(SED) 's,$$$$S,$(BOARD),g' -e 's,$$$$A,$(ARCH),g' $(1)/etc/ipkg.conf
        mkdir -p $(1)/dev
        mkdir -p $(1)/etc/crontabs
diff --git a/scripts/getver.sh b/scripts/getver.sh
new file mode 100755 (executable)
index 0000000..c33505e
--- /dev/null
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+export LANG=C
+[ -n "$TOPDIR" ] && cd $TOPDIR
+
+try_version() {
+       [ -f version ] || return 1
+       REV="$(cat version)"
+       [ -n "$REV" ]
+}
+
+try_svn() {
+       [ -d .svn ] || return 1
+       REV="$(svn info | awk '/^Revision:/ { print $2 }')"
+       REV="${REV:+r$REV}"
+       [ -n "$REV" ]
+}
+
+try_git() {
+       [ -d .git ] || return 1
+       REV="$(git-log | grep -m 1 git-svn-id | awk '{ gsub(/.*@/, "", $2); print $2 }')"
+       REV="${REV:+r$REV}"
+       [ -n "$REV" ]
+}
+
+try_version || try_svn || try_git || REV="unknown"
+echo "$REV"