Я использую automake.
Мне бы хотелось, чтобы скрипт запускался при каждом запуске make.
Этот скрипт выполняет git diff и генерирует MD5-суммуdiff.
Хеш записывается как #define в repos_version.h, например:
#define REPOS_DIFF "-190886e9f895e80c42cf6b426dc85afd"
Сценарий переписывает этот файл, только если он не существует или если diff имеетотличается от того, что уже есть в repos_version.h.Но сценарий нужно запускать для каждой сборки.
main.c включает repos_version.h и распечатывает хэш при запуске исполняемого файла.
Вот попытка 1 для Makefile.am
all: config.h
@chmod +x gen_diff_hash.sh
@./gen_diff_hash.sh
$(MAKE) $(AM_MAKEFLAGS) all-recursive
Это работает, но я получаю следующую ошибку
Makefile: 1234: предупреждение: переопределение рецепта для цели all'
Makefile:734: warning: ignoring old recipe for target
all '
Вот попытка 2 для Makefile.am
all-local:
@chmod +x gen_diff_hash.sh
@./gen_diff_hash.sh
main.c: repos_version.h
Тем не менее, это не работает, поскольку локальный запуск выполняется слишком поздно.Второй запуск make делает желаемый результат, но это не бегун.
Так что ни тот, ни другой.Есть идеи?Я читал документацию по ловушкам automake, но не вижу ничего, что бы соответствовало моим потребностям.