OPTS = -DNDIM=4

HILAPP = ../../bin/hilapp -DPUHTI -I../../../llvm/lib/clang/8.0.1/include/ 
CC = mpic++ 

CFLAGS = -g $(OPTS)
CXXFLAGS = -g -x c++ $(OPTS)

test: Makefile conjReduce
	./test.sh conjReduce

test_transformer: Makefile conjReduce.cpp ../../bin/hilapp
	./test_transformer.sh conjReduce.cpp

test_conjReduce: Makefile inputs.o conjReduce.o mersenne_inline.o lattice.o setup_layout_generic.o map_node_layout_trivial.o 
	$(CC) -o conjReduce inputs.o conjReduce.o mersenne_inline.o lattice.o setup_layout_generic.o map_node_layout_trivial.o

%.exe: %.tr.o Makefile inputs.o mersenne_inline.o lattice.o setup_layout_generic.o map_node_layout_trivial.o com_mpi.o
	$(CC) -o $@ $< inputs.o mersenne_inline.o lattice.o setup_layout_generic.o map_node_layout_trivial.o com_mpi.o

%.cpt: %.cpp Makefile
	$(HILAPP) $<

%.tr.o : %.cpt
	$(CC) $(CXXFLAGS) $< -c -o $@

%.o : %.cpt
	$(CC) $(CXXFLAGS) $< -c

%.o : plumbing/%.cpp
	$(CC) $(CXXFLAGS) $< -c

%.o : %.c
	$(CC) $(CFLAGS) $< -c

clean:
	rm -rf *.cpt *.o

cleanall:
	rm -rf *.o *.exe
