2010-03-26 4 views
0

в Makefile, у меня есть:Выполнить скрипт перед компиляцией в Makefile

all: $(PROG) 

$(PROG): $(CPP_OBJS) 
     $(CPP_LD) $(CPP_LD_FLAGS) $(CPP_OBJS) -o $(PROG) 

Я хотел бы добавить сценарий до компиляции, так что я пробовал:

all: $(PROG) 

$(PROG): $(CPP_OBJS) 
     sh script.sh ; $(CPP_LD) $(CPP_LD_FLAGS) $(CPP_OBJS) -o $(PROG) 

, но он не работает.

Каков правильный способ запуска скрипта в этом случае перед компиляцией?

Thanks

+0

Вы пробовали './script.sh; $ (CPP_LD) ... '? –

ответ

2

Включить выполнение сценария на отдельной строке.

$(PROG): $(CPP_OBJS) 
     sh script.sh 
     $(CPP_LD) $(CPP_LD_FLAGS) $(CPP_OBJS) -o $(PROG) 

Это потому, что марка довольно глупа и не понимает точки с запятой так, как вы хотите. Хорошо, что новые линии дешевы!

0

Я думаю, вы могли бы использовать несколько целей, но это не будет запускать скрипт, если вместо цели в качестве цели используется $ (PROG).

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

$(PROG): $(CPP_OBJS) 
     sh myScript.sh 
     $(CPP_LD) $(CPP_LD_FLAGS) $(CPP_OBJS) -o $(PROG) 
Смежные вопросы