2013-02-11 3 views
1

Я пытаюсь написать свой первый Makefile. В настоящее время у меня всего 3 правила. Когда я запускаю «make», выполняется только первое правило, а затем выдает выходы без запуска другого 2. Нет ничего сложного в моем Makefile. Я даже пытался сократить количество правил до 2, но получаю те же результаты. Вот что я до сих пор.Makerule только запускает одно правило

SRC = src/analytics.js 

lint: 
    jshint $(SRC) 

build: $(SRC) 
    cat $^ > build/analytics.js 

min: build 
    uglifyjs --no-mangle build/analytics.js > build/analytics.min.js 

Когда я запускаю сделать здесь то, что я получаю, я просто получаю сообщение, что казнили правило ворса: jshint src/analytics.js

Я бегу сделать 3.81 на Mac OS 10.8.2.

ответ

1

Когда вы запускаете только «make», make будет делать только цель по умолчанию, которая обычно является первой целью - в вашем случае «lint:».

Если «lint» имеет зависимости, вам необходимо их перечислить. Например:

lint: dep1 dep2 

Make сделают dep1 и dep2 перед тем, как делать ворс.

Если вы хотите, чтобы все три вещи выше для запуска с одним вызовом просто «сделать» добавить эту цель выше других ваших целей:

all: lint build min 

Вы можете поместить их в порядке, вы хотите, чтобы они происходят. Я назвал цель «все», потому что это то, что она делает, а не что-то особенное.

+0

Спасибо, что работает отлично! –

+0

Стоит отметить, что если у вас есть целевое имя, которое не представляет собой фактический файл, вы должны пометить цель как фальшивую, * i.e., '.PHONY: all'. –