Makefile 830 Bytes
CC        = clang
LINKER	  = clang
BUILDDIR  = build
OBJDIR	  = obj
SRCDIR    = src
TESTDIR   = tests


INCLUDEDIR = include
CFLAGS	   = -c -std=c17 -I$(INCLUDEDIR) -ggdb -Wall -Werror -pedantic -Wno-attributes
LDFLAGS    =

SOURCES     = $(wildcard $(SRCDIR)/*.c) $(wildcard $(SRCDIR)/transform/*.c)
OBJECTS     = $(SOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.o)

TARGET      = image-transformer

ifneq ($(with), )
    CFLAGS += $(with)
    LDFLAGS += $(with)
endif


all: $(BUILDDIR)/$(TARGET)

$(BUILDDIR)/$(TARGET): $(OBJECTS) | $(BUILDDIR) $(BUILDDIR)/transform
	$(LINKER) $(LDFLAGS) $(OBJECTS) -o $@

$(OBJECTS): $(OBJDIR)/%.o:$(SRCDIR)/%.c | $(OBJDIR) $(OBJDIR)/transform
	$(CC) $(CFLAGS) -c $< -o $@

$(BUILDDIR) $(BUILDDIR)/transform $(OBJDIR) $(OBJDIR)/transform:
	mkdir -p $@

clean:
	rm -rf $(BUILDDIR) $(OBJDIR)

.PHONY: clean