# GCC Makefile

CC      = gcc
CFLAGS  = -pedantic -Wall -ggdb -fopenmp --std=c99 -O3 ${MYFLAGS}
LDFLAGS = -fopenmp

all: build/seq build/recurse build/datapar build/hillis_partial build/hillis_sum build/reduce

build/seq: build/prefix.o build/seq.o
	$(CC) -o $@ $? $(LDFLAGS)

build/recurse: build/prefix.o build/recurse.o
	$(CC) -o $@ $? $(LDFLAGS)

build/datapar: build/prefix.o build/datapar.o
	$(CC) -o $@ $? $(LDFLAGS)

build/hillis_partial: build/prefix.o build/hillis_partial.o
	$(CC) -o $@ $? $(LDFLAGS)

build/hillis_sum: build/prefix.o build/hillis_sum.o
	$(CC) -o $@ $? $(LDFLAGS)

build/reduce: build/prefix.o build/reduce.o
	$(CC) -o $@ $? $(LDFLAGS)

build/%.o: %.c mkdir
	$(CC) $(CFLAGS) -c $< -o $@

mkdir:
	mkdir -p build

.PHONY: clean
clean:
	rm -rf build