ARCH = $(shell uname) TASK_CXX=tasks_pthreads.cpp TASK_LIB=-lpthread ifeq ($(ARCH), Darwin) TASK_CXX=tasks_gcd.cpp TASK_LIB= endif TASK_OBJ=$(addprefix objs/, $(TASK_CXX:.cpp=.o)) CXX=g++ -m64 CXXFLAGS=-Iobjs/ -O3 -Wall ISPC=ispc ISPCFLAGS=-O2 --target=sse4x2 --arch=x86-64 default: mandelbrot .PHONY: dirs clean dirs: /bin/mkdir -p objs/ clean: /bin/rm -rf objs *~ mandelbrot mandelbrot: dirs objs/mandelbrot.o objs/mandelbrot_serial.o objs/mandelbrot_ispc.o $(TASK_OBJ) $(CXX) $(CXXFLAGS) -o $@ objs/mandelbrot.o objs/mandelbrot_ispc.o objs/mandelbrot_serial.o $(TASK_OBJ) -lm $(TASK_LIB) objs/%.o: %.cpp $(CXX) $< $(CXXFLAGS) -c -o $@ objs/mandelbrot.o: objs/mandelbrot_ispc.h objs/%_ispc.h objs/%_ispc.o: %.ispc $(ISPC) $(ISPCFLAGS) $< -o objs/$*_ispc.o -h objs/$*_ispc.h