#gnu-make
#gnu-make
Вопрос:
У меня есть следующее неявное правило:
CFLAGS=-I../tcp/ -I../libip_udp/ -g -Wall
LDLIBS=framework.o ../tcp/libtcp.a ../libip_udp/libip.a
%.run : %.c $(LDLIBS)
$(CC) $< $(LDLIBS) -o $@ $(CFLAGS)
./$@
Если я запущу make foo.run
, он скомпилирует foo.c и выполнит foo.run. Однако повторный запуск make foo.run
ничего не даст. Как я могу разделить неявное правило таким образом, чтобы оно компилировалось при необходимости, но выполнялось всегда?
Ответ №1:
Например:
CFLAGS=-I../tcp/ -I../libip_udp/ -g -Wall
LDLIBS=framework.o ../tcp/libtcp.a ../libip_udp/libip.a
.SECONDARY:
%.run : %.c $(LDLIBS)
$(CC) $< $(LDLIBS) -o $@ $(CFLAGS)
exec.%: %
./$<
Теперь просто запустите его
make exec.foo.run