33 lines
577 B
Makefile
33 lines
577 B
Makefile
CC = gcc
|
|
CFLAGS = -Wall -g
|
|
SRCDIR = src
|
|
BUILDDIR = build
|
|
TARGET = main
|
|
|
|
SOURCES = $(wildcard $(SRCDIR)/**/*.c $(SRCDIR)/*.c)
|
|
OBJECTS = $(patsubst $(SRCDIR)/%.c, $(BUILDDIR)/%.o, $(SOURCES))
|
|
|
|
ifeq ($(OS),Windows_NT)
|
|
EXECUTABLE = $(BUILDDIR)/$(TARGET).exe
|
|
RM = del /Q
|
|
MKDIR = mkdir
|
|
else
|
|
EXECUTABLE = $(BUILDDIR)/$(TARGET)
|
|
RM = rm -rf
|
|
MKDIR = mkdir -p
|
|
endif
|
|
|
|
all: $(EXECUTABLE)
|
|
|
|
$(EXECUTABLE): $(OBJECTS)
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
|
|
$(BUILDDIR)/%.o: $(SRCDIR)/%.c
|
|
@$(MKDIR) -p $(@D)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
clean:
|
|
$(RM) $(BUILDDIR)/*
|
|
|
|
.PHONY: clean
|