40 lines
735 B
Makefile
40 lines
735 B
Makefile
CC = gcc
|
|
CFLAGS = -Wall -Ilib
|
|
#LDFLAGS = -lgpiod
|
|
|
|
# Directories
|
|
SRCDIR = src
|
|
LIBDIR = lib
|
|
OBJDIR = obj
|
|
|
|
# Source files
|
|
LIB_SOURCES = $(wildcard $(LIBDIR)/*.c)
|
|
SRC_SOURCES = $(wildcard $(SRCDIR)/*.c)
|
|
|
|
# Object files
|
|
LIB_OBJECTS = $(LIB_SOURCES:$(LIBDIR)/%.c=$(OBJDIR)/%.o)
|
|
SRC_OBJECTS = $(SRC_SOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.o)
|
|
|
|
# Target executable
|
|
TARGET = sockets
|
|
|
|
# Create obj directory if it doesn't exist
|
|
$(shell mkdir -p $(OBJDIR))
|
|
|
|
# Rules
|
|
all: $(TARGET)
|
|
|
|
$(TARGET): $(LIB_OBJECTS) $(SRC_OBJECTS)
|
|
$(CC) $(LIB_OBJECTS) $(SRC_OBJECTS) -o $@ $(LDFLAGS)
|
|
|
|
$(OBJDIR)/%.o: $(LIBDIR)/%.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(OBJDIR)/%.o: $(SRCDIR)/%.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
clean:
|
|
rm -f $(OBJDIR)/*.o $(TARGET)
|
|
|
|
.PHONY: all clean
|