Rebuild version.o when version.c or LAST_VERSION change

$(TOPDIR)/LAST_VERSION is a cached copy of common.mk's I3_VERSION var,
updated only if the two differ.
This commit is contained in:
Deiz 2015-04-07 13:27:35 -04:00
parent cd4bc2adf5
commit 5a987cfd6b
3 changed files with 12 additions and 1 deletions

1
.gitignore vendored
View File

@ -33,3 +33,4 @@ docs/*.html
i3-command-parser.stamp i3-command-parser.stamp
i3-config-parser.stamp i3-config-parser.stamp
.clang_complete .clang_complete
LAST_VERSION

View File

@ -22,6 +22,12 @@ include i3-dump-log/i3-dump-log.mk
include docs/docs.mk include docs/docs.mk
include man/man.mk include man/man.mk
# Update $(TOPDIR)/LAST_VERSION if it differs from $I3_VERSION
CACHED_VERSION := '$(shell [ -f $(TOPDIR)/LAST_VERSION ] && cat $(TOPDIR)/LAST_VERSION)'
ifneq ($(CACHED_VERSION),$(I3_VERSION))
$(shell echo -n ${I3_VERSION} > $(TOPDIR)/LAST_VERSION)
endif
real-all: $(ALL_TARGETS) real-all: $(ALL_TARGETS)
install: $(INSTALL_TARGETS) install: $(INSTALL_TARGETS)

View File

@ -32,6 +32,10 @@ include/all.h.pch: $(i3_HEADERS)
echo "[i3] PCH all.h" echo "[i3] PCH all.h"
$(CC) $(I3_CPPFLAGS) $(XCB_CPPFLAGS) $(CPPFLAGS) $(i3_CFLAGS) $(I3_CFLAGS) $(CFLAGS) -x c-header include/all.h -o include/all.h.pch $(CC) $(I3_CPPFLAGS) $(XCB_CPPFLAGS) $(CPPFLAGS) $(i3_CFLAGS) $(I3_CFLAGS) $(CFLAGS) -x c-header include/all.h -o include/all.h.pch
src/version.o: src/version.c LAST_VERSION $(i3_HEADERS_DEP)
echo "[i3] CC $<"
$(CC) $(I3_CPPFLAGS) $(XCB_CPPFLAGS) $(CPPFLAGS) $(i3_CFLAGS) $(I3_CFLAGS) $(CFLAGS) $(PCH_FLAGS) -c -o $@ ${canonical_path}/$<
src/%.o: src/%.c $(i3_HEADERS_DEP) src/%.o: src/%.c $(i3_HEADERS_DEP)
echo "[i3] CC $<" echo "[i3] CC $<"
$(CC) $(I3_CPPFLAGS) $(XCB_CPPFLAGS) $(CPPFLAGS) $(i3_CFLAGS) $(I3_CFLAGS) $(CFLAGS) $(PCH_FLAGS) -c -o $@ ${canonical_path}/$< $(CC) $(I3_CPPFLAGS) $(XCB_CPPFLAGS) $(CPPFLAGS) $(i3_CFLAGS) $(I3_CFLAGS) $(CFLAGS) $(PCH_FLAGS) -c -o $@ ${canonical_path}/$<
@ -92,4 +96,4 @@ install-i3: i3
clean-i3: clean-i3:
echo "[i3] Clean" echo "[i3] Clean"
rm -f $(i3_OBJECTS) $(i3_SOURCES_GENERATED) $(i3_HEADERS_CMDPARSER) include/loglevels.h loglevels.tmp include/all.h.pch i3-command-parser.stamp i3-config-parser.stamp i3 test.config_parser test.commands_parser src/*.gcno src/cfgparse.* src/cmdparse.* rm -f $(i3_OBJECTS) $(i3_SOURCES_GENERATED) $(i3_HEADERS_CMDPARSER) include/loglevels.h loglevels.tmp include/all.h.pch i3-command-parser.stamp i3-config-parser.stamp i3 test.config_parser test.commands_parser src/*.gcno src/cfgparse.* src/cmdparse.* LAST_VERSION