Skip to content
Snippets Groups Projects
Commit 9b987a33 authored by Tanguy Cavagna's avatar Tanguy Cavagna
Browse files

Updated makefile for better use

parent ac0c030e
No related branches found
No related tags found
No related merge requests found
......@@ -4,44 +4,42 @@ CC = gcc
CFLAGS = -Wall -Wextra -std=gnu11 -g -fsanitize=address -fsanitize=leak
LDFLAGS = -lm
LIBS = -lSDL2
VPATH:=vec2 gfx
TARGET = main
BIN = bin
RUN = ./$(BIN)/$(TARGET)
# Get source and object
SRCS = $(filter-out $(wildcard */test.c), $(wildcard *.c */*.c))
SRCS = $(filter-out $(wildcard */*_tests.c */*test.c */*tests.c */*_test.c), $(wildcard *.c */*.c))
OBJS = $(addprefix $(BIN)/, $(SRCS:.c=.o))
SRCS_TEST = $(filter-out $(wildcard main.c */main.c gfx/*), $(wildcard *.c */*.c))
OBJS_TEST = $(addprefix $(BIN)/, $(SRCS_TEST:.c=.o))
PHONY := $(TARGET)
# Create the target
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $(BIN)/$@ $(OBJS) $(LIBS) $(LDFLAGS)
main: $(OBJS)
$(CC) $(CFLAGS) -o $(BIN)/$@ $^ $(LIBS) $(LDFLAGS)
./$(BIN)/$@
# Convert the source in object, but before all, run `$(BIN)` aka mkdir
$(BIN)/%.o: %.c
mkdir -p $(@D)
$(CC) $(CFLAGS) -o $@ -c $< $(LDFLAGS)
$(CC) $(CFLAGS) -o $@ -c $< $(LDFLAGS) -lSDL2
PHONY += help
# Echo the source and object values
help:
@echo "src: $(SRCS)"
@echo "obj: $(OBJS)"
@echo "obj_test: $(OBJ_TEST)"
PHONY += run
# Run the program
run:
$(RUN)
PHONY += clean
clean:
rm -rf $(BIN)
PHONY += test-draw
test-draw: draw/test.c $(BIN)/draw/draw.o $(BIN)/gfx/gfx.o
$(CC) $(CFLAGS) -o $(BIN)/draw/$@.o -c $< $(LDFLAGS)
$(CC) $(CFLAGS) -o $(BIN)/draw/test $(BIN)/draw/$@.o $(BIN)/draw/draw.o $(BIN)/gfx/gfx.o $(LIBS) $(LDFLAGS)
./$(BIN)/draw/test
.PHONY: $(PHONY)
.PHONY: test-draw help clean main
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment