2

Есть ли способ автоматически запустить make при редактировании одного из файлов, необходимых для сборки?

Смежный вопрос: Сконфигурируйте make-файл для запуска при изменении файла, но у него есть ответ только для Mac OS X - я бы хотел более общее решение, если это возможно (хотя я на самом деле нацеливаюсь на Linux).

1 ответ1

3

Не существует общего решения - каждая ОС имеет свой собственный API для мониторинга файлов. В Mac OS X это FSEvents, в Linux - inotify или fanotify, в BSD - kqueue.

В Linux вы можете использовать incron или написать скрипт, используя inotifywait:

#!/usr/bin/env bash
inotifywait -r -m -q -e close_write ~/project \
| while read path event file; do
    if case $file in
        autogenerated.h)   false;;   # ignore a specific file to avoid loops
        *.c|*.h|Makefile)  true;;    # watch all .c, .h files, the Makefile
        *)                 false;;   # ignore all other files to avoid loops
    esac; then                       # (specifically, you MUST ignore auto-
        (cd ~/project && make)       # -generated files)
    fi
done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .