DistributedEmbeddedSystemsL.../04_intro_to_sockets/Makefile

40 lines
674 B
Makefile

# Compiler and flags
CC = gcc
CFLAGS = -Wall -Ilib
# Directories
SRCDIR = src
LIBDIR = lib
BINDIR = bin
OBJDIR = obj
# Source files
LIB_SOURCES = $(wildcard $(LIBDIR)/*.c)
SRC_SOURCES = $(wildcard $(SRCDIR)/*.c)
# Object files
LIB_OBJECTS = $(LIB_SOURCES:$(LIBDIR)/%.c=$(OBJDIR)/%.o)
# Executables
EXECS = $(SRC_SOURCES:$(SRCDIR)/%.c=$(BINDIR)/%)
# Create necessary directories
$(shell mkdir -p $(OBJDIR))
$(shell mkdir -p $(BINDIR))
# Rules
all: $(EXECS)
$(BINDIR)/%: $(SRCDIR)/%.c $(LIB_OBJECTS)
$(CC) $(CFLAGS) -o $@ $< $(LIB_OBJECTS)
$(OBJDIR)/%.o: $(LIBDIR)/%.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(OBJDIR)/*.o
rm -f $(BINDIR)/*
.PHONY: all clean