переопределить цель Makefile - PullRequest
0 голосов
/ 03 апреля 2012

Ситуация выглядит следующим образом: Мы используем общую систему управления источниками. Каждый раз, когда мы строим, мы синхронизируем самый последний код и запускаем Makefile по запросу (назовем его основным Makefile). Есть ли возможность переопределить цель внутри основного файла Makefile с очень незначительными изменениями, чтобы мы могли вставить некоторые настраиваемые действия для одной цели.

Например, основной Makefile выглядит так

all:
     echo "main Makefile actions"

Как мы можем вставить наши индивидуальные действия в одно правило, включив личный Makefile.personal

all:
     echo "my actions"

Ожидаемый результат состоит в том, что когда мы делаем make all, выполняемые действия оба

echo "main Makefile actions"
echo "my actions"

Любые предложения приветствуются. Спасибо и наилучшие пожелания

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012

Если вы хотите make вместо make all, вы можете сделать это:

основной Makefile:

include Makefile.personal

all:
     echo "main Makefile actions"

Makefile.personal:

my_all: all
     echo "my actions"

Если вы хотите make all, но вам не важен порядок двух наборов действий, вы можете сделать это:

основной Makefile:

include Makefile.personal

all:
     echo "main Makefile actions"

Makefile.personal:

my_all:
     echo "my actions"

all: my_all

Если вы хотите make all, а вы делаете заботитесь о заказе, есть несколько разных способов сделать это, ни один симпатичный.

1 голос
/ 03 апреля 2012

Существует как минимум пара способов:

1) Иметь другую цель со своими пользовательскими действиями в другом make-файле, который включает основной make-файл:

# my_makefile.mk
include Makefile   

my_custom_actions : all
    echo "my actions"

$ make -f my_makefile.mk my_custom_actions

2) Использовать правила двойного двоеточия в главном Makefile, чтобы другой make-файл мог добавлять действия к существующим целям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...