diff options
author | midipix <writeonce@midipix.org> | 2015-11-26 21:43:06 -0500 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2016-11-10 23:35:27 -0500 |
commit | 4ab720b44ac5a98a9192d87a50630f964ab5eaa6 (patch) | |
tree | 49adfdc87e639265b6f9e80d3e5bd617a612d0a2 | |
parent | 9c5807c7cadf7219a32f3b2c081a8d21aceb4837 (diff) | |
download | perk-4ab720b44ac5a98a9192d87a50630f964ab5eaa6.tar.bz2 perk-4ab720b44ac5a98a9192d87a50630f964ab5eaa6.tar.xz |
build system: version.sh: initial implementation.
-rw-r--r-- | Makefile.in | 16 | ||||
-rwxr-xr-x | sysinfo/version.sh | 61 |
2 files changed, 73 insertions, 4 deletions
diff --git a/Makefile.in b/Makefile.in index 6c64a0e..df3113b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -128,11 +128,11 @@ shared-implib: shared-lib -default-app: static $(DEFAULT_APP) $(APP) +default-app: version.tag static $(DEFAULT_APP) $(APP) -shared-app: shared $(SHARED_APP) +shared-app: version.tag shared $(SHARED_APP) -static-app: static $(STATIC_APP) +static-app: version.tag static $(STATIC_APP) @@ -172,6 +172,13 @@ host.tag: Makefile $(PROJECT_DIR)/sysinfo/host/host.sh --compiler="$(CC)" --cflags="$(CFLAGS)" touch host.tag +version.tag: + $(PROJECT_DIR)/sysinfo/version.sh \ + -s $(PROJECT_DIR) \ + -o build/$(PACKAGE)_version.h \ + -p $(PACKAGE) + touch version.tag + distclean: clean rm -f Makefile @@ -179,6 +186,7 @@ clean: rm -f tree.tag rm -f dirs.tag rm -f host.tag + rm -f version.tag rm -f $(SHARED_OBJS) rm -f $(STATIC_OBJS) rm -f $(APP_OBJS) @@ -285,6 +293,6 @@ clean: default-app shared-app static-app \ install-shared install-static install-implib \ install-headers install-app \ - clean distclean \ + clean distclean version \ .display-env .display-tools .display-flags \ .display-pe .display-elf .display-dirs .display-build diff --git a/sysinfo/version.sh b/sysinfo/version.sh new file mode 100755 index 0000000..fb1e8c3 --- /dev/null +++ b/sysinfo/version.sh @@ -0,0 +1,61 @@ +#!/bin/sh + +usage() +{ +cat << EOF >&2 + +Usage: + -h show this HELP message + -s SRCDIR set source directory + -o OUTPUT set output header + -p PREFIX set macro prefix + +EOF +exit 1 +} + + +# one +workdir=$(pwd) +srcdir= +output= +prefix= + + +while getopts "hs:o:p:" opt; do + case $opt in + h) + usage + ;; + s) + srcdir="$OPTARG" + ;; + o) + output="$OPTARG" + ;; + p) + prefix="$OPTARG" + ;; + \?) + printf "Invalid option: -%s" "$OPTARG" >&2 + usage + ;; + esac +done + + +# two +if [ -z "$srcdir" ] || [ -z "$output" ] || [ -z "$prefix" ]; then + usage +fi + +cd "$srcdir" || exit 2 + +gitver=`git rev-parse --verify HEAD` || gitver="unknown" +macro=`echo "$prefix"_GIT_VERSION | tr '[:lower:]' '[:upper:]'` + +cd "$workdir" || exit 2 +printf "#define $macro\t\"$gitver\"\n" > "$output" + +# all done +exit 0 |