summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-12-13 06:25:54 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-12-13 06:25:54 +0000
commitf2ea91f2c1499e6e7a8962540385e821f19c2128 (patch)
tree0f0417bb685fd2df11ad192254a394cd7401e162
parent8ffc910447a1f43d5e13ef9433cfdcf5ff2a5ac4 (diff)
clean up openwrt version handling, use a separate script that is executed at the beginning of the build process, fix revision checking with git
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@9723 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--include/toplevel.mk17
-rw-r--r--package/base-files/Makefile10
-rwxr-xr-xscripts/getver.sh26
3 files changed, 35 insertions, 18 deletions
diff --git a/include/toplevel.mk b/include/toplevel.mk
index 040ff51249..63325aa018 100644
--- a/include/toplevel.mk
+++ b/include/toplevel.mk
@@ -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)
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 3e83c01d93..091ce0f016 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -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
index 0000000000..c33505edc7
--- /dev/null
+++ b/scripts/getver.sh
@@ -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"