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 | ||||
| LDFLAGS       += -mno-cygwin | ||||
| BIN_EXT       ?= .exe | ||||
| GIT_REVISION  ?= NO | ||||
| else | ||||
| DESTDIR       ?= / | ||||
| UHUB_CONF_DIR ?= $(DESTDIR)/etc/uhub | ||||
| @ -51,7 +50,7 @@ BIN_EXT       ?= | ||||
| endif | ||||
| 
 | ||||
| ifeq ($(SILENT),YES) | ||||
| 	MSG_CC=@echo "  CC:" $(notdir $^) && | ||||
| 	MSG_CC=@echo "  CC:" $(notdir $<) && | ||||
| 	MSG_LD=@echo "  LD:" $(notdir $@) && | ||||
| 	MSG_AR=@echo "  AR:" $(notdir $@) && | ||||
| else | ||||
| @ -71,10 +70,8 @@ endif | ||||
| 
 | ||||
| ifeq ($(RELEASE),YES) | ||||
| CFLAGS        += -O3 -DNDEBUG | ||||
| GIT_REVISION  ?= NO | ||||
| else | ||||
| CFLAGS        += -ggdb -DDEBUG | ||||
| GIT_REVISION  ?= YES | ||||
| endif | ||||
| 
 | ||||
| ifeq ($(STACK_PROTECT),YES) | ||||
| @ -119,9 +116,9 @@ CFLAGS        += -DSSL_SUPPORT | ||||
| LDLIBS        += -lssl | ||||
| endif | ||||
| 
 | ||||
| ifeq ($(GIT_REVISION),YES) | ||||
| CFLAGS        += -DGIT_REVISION=\"$(shell git show --abbrev-commit | head -n 1 | cut -f 2 -d " ")\" | ||||
| endif | ||||
| GIT_VERSION=$(shell git describe --tags 2>/dev/null || echo "") | ||||
| GIT_REVISION=$(shell git show --abbrev-commit  2>/dev/null | head -n 1 | cut -f 2 -d " " || echo "") | ||||
| OLD_REVISION=$(shell grep GIT_REVISION revision.h 2>/dev/null | cut -f 3 -d " " | tr -d "\"") | ||||
| 
 | ||||
| # Sources
 | ||||
| libuhub_SOURCES := \
 | ||||
| @ -197,8 +194,10 @@ adcrush_BINARY=adcrush$(BIN_EXT) | ||||
| admin_BINARY=uhub-admin$(BIN_EXT) | ||||
| autotest_BINARY=autotest/test$(BIN_EXT) | ||||
| 
 | ||||
| %.o: %.c | ||||
| 	$(MSG_CC) $(CC) -c $(CFLAGS) -o $@ $^ | ||||
| .PHONY: revision.h.tmp | ||||
| 
 | ||||
| %.o: %.c version.h revision.h | ||||
| 	$(MSG_CC) $(CC) -c $(CFLAGS) -o $@ $< | ||||
| 
 | ||||
| all: $(uhub_BINARY) | ||||
| 
 | ||||
| @ -214,6 +213,17 @@ $(uhub_BINARY): $(uhub_OBJECTS) $(libuhub_OBJECTS) $(libadc_common_OBJECTS) | ||||
| autotest.c: $(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 | ||||
| 	$(MSG_CC) $(CC) -c $(CFLAGS) -Isrc -o $@ $< | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user