Как написать make-файл с несколькими целями и несколькими источниками? - PullRequest
1 голос
/ 28 марта 2019

Я учусь писать make-файлы и хотел бы создать make-файл, который может создавать несколько целей из нескольких источников в соответствии с заданным аргументом.

Вот что я попробовал:

# Compiler and others
CC=gcc

# Flags
CFLAGS = -g -c -Wall -DLOGFILE -D_REENTRANT

target1_EXEC = ../build/target1
target2_EXEC = ../build/target2

target1_SRC = ../source/target1
target2_SRC = ../source/target2

target1: TARGET=target1
target1: all

target2: TARGET=target2
target2: all

EXEC=$($(TARGET)_EXEC)
SRC=$($(TARGET)_SRC)
OBJ=$(SRC:.c=.o)

all: $(EXEC)

$(EXEC): $(OBJ)
        $(CC) $(INCLUDES) -o $@ $^ $(LDFLAGS) $(LIBS)

%.o: %.c
        $(CC) -o $@ -c $< $(CFLAGS)

Я хотел бы вызвать make-файл с целью в качестве аргумента:

makefile target1

Но тогда кажется, что он не находит подзадачу:

make: Nothing to be done for 'target1'.

Что я делаю не так?

...