diff --git a/Makefile b/Makefile index 7b28cd2..bcd317b 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,25 @@ -all: - g++ -O3 graphics.cpp main.cpp mandelbrot.cpp utils.cpp -o mandelbrot -lSDL2 -lSDL2_ttf -lmpfr -lgmp -fopenmp -pthread -noop: - g++ graphics.cpp main.cpp mandelbrot.cpp utils.cpp -o mandelbrot -lSDL2 -lSDL2_ttf -lmpfr -lgmp -fopenmp -pthread -debug: - g++ graphics.cpp main.cpp mandelbrot.cpp utils.cpp -o mandelbrot -lSDL2 -lSDL2_ttf -lmpfr -lgmp -fopenmp -g -pthread +CC=g++ +EXT=.cpp +FLAGS=-O2 +DEPFLAGS=-MD -MP +LIBS=-lSDL2 -lSDL2_ttf -lmpfr -lgmp -fopenmp -pthread +EXEC_NAME=mandelbrot + +OBJDIR=obj + +SRC=$(wildcard *$(EXT)) +OBJS=$(patsubst %,$(OBJDIR)/%.o, $(basename $(SRC))) + +$(shell mkdir -p $(dir $(OBJS)) > /dev/null) + +$(EXEC_NAME): $(OBJS) + $(CC) $(FLAGS) $(LIBS) $^ -o $(EXEC_NAME) + +$(OBJDIR)/%.o: %$(EXT) + $(CC) $(FLAGS) $(DEPFLAGS) -c -o $@ $< + +.PHONY: clean +clean: + rm -rf $(OBJDIR) + +-include $(SRC:$(EXT)=.d)