Да, вы можете комбинировать команды «по предварительным условиям». Например:
CC=gcc
CFLAGS=-O3
INCLS=-I$(BASEDIR)/include
LIBS=$(BASEDIR)/lib/thread.a
OBJS = dotprod_mutex.o dotprod_serial.o
EXEC = dotprod
$(EXEC): $(OBJS)
$(CC) -o $(EXEC) $(OBJS) $(LIBS)
$(OBJS): dotprod.h
$(CC) $(CFLAGS) $(INCLS) -c $*.c
или сконвертировано - вам нужно пройти через детали и убедитесь, что эти библиотеки и так далее на самом деле имеет смысл.
Обратите внимание, что фраза $(OBJS): dotprod.h
означает, что $(OBJS):
зависит от наличия dotprod.h
.
Вы хотите прочитать инструкцию, чтобы получить все окровавленные детали, в частности:
Что касается инструментов для автоматизации этого материала, вы хотите AutoMake и autoconf: http://sourceware.org/autobook/
Дидье, он работает, спасибо. – David