31 lines
502 B
Makefile
31 lines
502 B
Makefile
|
|
CC = cc
|
||
|
|
CFLAGS = -Wall -Wextra -Wpedantic -Werror -std=c99 -lX11
|
||
|
|
|
||
|
|
SRCDIR = src
|
||
|
|
OBJDIR = obj
|
||
|
|
SRC = $(wildcard $(SRCDIR)/*.c)
|
||
|
|
OBJ = $(SRC:$(SRCDIR)/%.c=$(OBJDIR)/%.o)
|
||
|
|
|
||
|
|
TARGET = pgb
|
||
|
|
|
||
|
|
debug: CFLAGS += -g3 -fsanitize=address
|
||
|
|
debug: all
|
||
|
|
|
||
|
|
release: CFLAGS += -O3 -s
|
||
|
|
release: all
|
||
|
|
|
||
|
|
all: $(OBJDIR) $(TARGET)
|
||
|
|
|
||
|
|
$(TARGET): $(OBJ)
|
||
|
|
$(CC) $(CFLAGS) -o $@ $^
|
||
|
|
|
||
|
|
$(OBJDIR):
|
||
|
|
mkdir -p $(OBJDIR)
|
||
|
|
|
||
|
|
$(OBJDIR)/%.o: $(SRCDIR)/%.c
|
||
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
||
|
|
|
||
|
|
clean:
|
||
|
|
rm -rf $(OBJDIR) $(TARGET)
|
||
|
|
|
||
|
|
.PHONY: clean all debug release
|