E aí, Alberto!
Pra montar esse makefile no estilo ninja pro teu compilador GCC e libcurl, dá uma olhada nesse exemplo:
CC = gcc
CFLAGS = -Wall -Iheader
LDFLAGS = -lcurl
SRC_DIR = source
OBJ_DIR = obj
BIN_DIR = bin
SRC = $(wildcard $(SRC_DIR)/*.c)
OBJ = $(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SRC))
EXECUTABLE = $(BIN_DIR)/meu_programa
all: $(EXECUTABLE)
$(EXECUTABLE): $(OBJ)
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -rf $(OBJ_DIR)/*.o $(EXECUTABLE)
.PHONY: all clean
Aqui a parada é organizada: os arquivos .c na pasta source
, os .h na pasta header
, e o executável lá na bin
. Se liga, a libcurl tá no mix com -lcurl
, então o GCC vai encontrar a lib quando for compilar.
Se precisar de mais ajuda, só dar um grito!