Обычный способ сделать это с помощью m4_esyscmd. Например, autoconf распространяет скрипт в build-aux, который генерирует номер версии из git repo и вызывает AC_INIT как:
AC_INIT([GNU Autoconf], m4_esyscmd([build-aux/git-version-gen .tarball-version]),
[bug-autoconf@gnu.org])
Вы часто можете уйти без распространения сценария и сделать что-то простое, например:
AC_INIT([Package name], m4_esyscmd([git describe --dirty | tr -d '\012']),
[bug-report-address])
Вместо git-description используйте любую команду для генерации номера версии. Одна важная деталь заключается в том, что у него не должно быть завершающего символа новой строки (отсюда и tr после git-description).
Основным недостатком этого метода является то, что номер версии генерируется только при запуске autoconf.