Write git revision to a header file, then make version.h depend on that file.
This commit is contained in:
parent
915cb56448
commit
bf1b64db53
28
GNUmakefile
28
GNUmakefile
|
@ -40,7 +40,6 @@ UHUB_PREFIX ?= c:/uhub/
|
||||||
CFLAGS += -mno-cygwin
|
CFLAGS += -mno-cygwin
|
||||||
LDFLAGS += -mno-cygwin
|
LDFLAGS += -mno-cygwin
|
||||||
BIN_EXT ?= .exe
|
BIN_EXT ?= .exe
|
||||||
GIT_REVISION ?= NO
|
|
||||||
else
|
else
|
||||||
DESTDIR ?= /
|
DESTDIR ?= /
|
||||||
UHUB_CONF_DIR ?= $(DESTDIR)/etc/uhub
|
UHUB_CONF_DIR ?= $(DESTDIR)/etc/uhub
|
||||||
|
@ -51,7 +50,7 @@ BIN_EXT ?=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(SILENT),YES)
|
ifeq ($(SILENT),YES)
|
||||||
MSG_CC=@echo " CC:" $(notdir $^) &&
|
MSG_CC=@echo " CC:" $(notdir $<) &&
|
||||||
MSG_LD=@echo " LD:" $(notdir $@) &&
|
MSG_LD=@echo " LD:" $(notdir $@) &&
|
||||||
MSG_AR=@echo " AR:" $(notdir $@) &&
|
MSG_AR=@echo " AR:" $(notdir $@) &&
|
||||||
else
|
else
|
||||||
|
@ -71,10 +70,8 @@ endif
|
||||||
|
|
||||||
ifeq ($(RELEASE),YES)
|
ifeq ($(RELEASE),YES)
|
||||||
CFLAGS += -O3 -DNDEBUG
|
CFLAGS += -O3 -DNDEBUG
|
||||||
GIT_REVISION ?= NO
|
|
||||||
else
|
else
|
||||||
CFLAGS += -ggdb -DDEBUG
|
CFLAGS += -ggdb -DDEBUG
|
||||||
GIT_REVISION ?= YES
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(STACK_PROTECT),YES)
|
ifeq ($(STACK_PROTECT),YES)
|
||||||
|
@ -119,9 +116,9 @@ CFLAGS += -DSSL_SUPPORT
|
||||||
LDLIBS += -lssl
|
LDLIBS += -lssl
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(GIT_REVISION),YES)
|
GIT_VERSION=$(shell git describe --tags 2>/dev/null || echo "")
|
||||||
CFLAGS += -DGIT_REVISION=\"$(shell git show --abbrev-commit | head -n 1 | cut -f 2 -d " ")\"
|
GIT_REVISION=$(shell git show --abbrev-commit 2>/dev/null | head -n 1 | cut -f 2 -d " " || echo "")
|
||||||
endif
|
OLD_REVISION=$(shell grep GIT_REVISION revision.h 2>/dev/null | cut -f 3 -d " " | tr -d "\"")
|
||||||
|
|
||||||
# Sources
|
# Sources
|
||||||
libuhub_SOURCES := \
|
libuhub_SOURCES := \
|
||||||
|
@ -197,8 +194,10 @@ adcrush_BINARY=adcrush$(BIN_EXT)
|
||||||
admin_BINARY=uhub-admin$(BIN_EXT)
|
admin_BINARY=uhub-admin$(BIN_EXT)
|
||||||
autotest_BINARY=autotest/test$(BIN_EXT)
|
autotest_BINARY=autotest/test$(BIN_EXT)
|
||||||
|
|
||||||
%.o: %.c
|
.PHONY: revision.h.tmp
|
||||||
$(MSG_CC) $(CC) -c $(CFLAGS) -o $@ $^
|
|
||||||
|
%.o: %.c version.h revision.h
|
||||||
|
$(MSG_CC) $(CC) -c $(CFLAGS) -o $@ $<
|
||||||
|
|
||||||
all: $(uhub_BINARY)
|
all: $(uhub_BINARY)
|
||||||
|
|
||||||
|
@ -214,6 +213,17 @@ $(uhub_BINARY): $(uhub_OBJECTS) $(libuhub_OBJECTS) $(libadc_common_OBJECTS)
|
||||||
autotest.c: $(autotest_SOURCES)
|
autotest.c: $(autotest_SOURCES)
|
||||||
$(shell exotic --standalone $(autotest_SOURCES) > $@)
|
$(shell exotic --standalone $(autotest_SOURCES) > $@)
|
||||||
|
|
||||||
|
revision.h.tmp:
|
||||||
|
@rm -f $@
|
||||||
|
@echo "/* AUTOGENERATED FILE - DO NOT EDIT */" > $@
|
||||||
|
@if [ -n '$(GIT_VERSION)' ]; then echo \#define GIT_VERSION \"$(GIT_VERSION)\" >> $@; fi
|
||||||
|
@if [ -n '$(GIT_REVISION)' ]; then echo \#define GIT_REVISION \"$(GIT_REVISION)\" >> $@; fi
|
||||||
|
|
||||||
|
version.h: revision.h
|
||||||
|
|
||||||
|
revision.h: revision.h.tmp
|
||||||
|
@if [ '$(GIT_REVISION)' != '$(OLD_REVISION)' ]; then cat $@.tmp > $@; fi
|
||||||
|
|
||||||
$(autotest_OBJECTS): autotest.c
|
$(autotest_OBJECTS): autotest.c
|
||||||
$(MSG_CC) $(CC) -c $(CFLAGS) -Isrc -o $@ $<
|
$(MSG_CC) $(CC) -c $(CFLAGS) -Isrc -o $@ $<
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue