CC          = g++
OUT         = siscone
OUT_TEST    = test
OUT_TIMES   = times
OUT_SAMPLE  = sample
CFLAGS      = -I../src -Wall -g -O3 -ffast-math

LDFLAGS     = -lm -L../src -lsiscone #-lprofiler -lpthread -ltcmalloc
ifeq ($(shell whoami),salam)
  # needed for Gavin to include tcmalloc
  LDFLAGS += -L/ada1/lpthe/salam/software/local/lib
endif

OBJS_MAIN   = options.o main.o
OBJS_TEST   = test.o
OBJS_TIMES  = times.o
OBJS_SAMPLE = sample.o

OBJS_ALL = options.o main.o sample.o test.o times.o
SRCS = $(patsubst %.o,%.cpp,$(OBJS_ALL))


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

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

all: main sample test times

main: $(OBJS_MAIN)
	$(CC) -o $(OUT) $(OBJS_MAIN) $(LDFLAGS)

test: $(OBJS_TEST)
	$(CC) -o $(OUT_TEST) $(OBJS_TEST) $(LDFLAGS)

times: $(OBJS_TIMES)
	$(CC) -o $(OUT_TIMES) $(OBJS_TIMES) $(LDFLAGS)

sample: $(OBJS_SAMPLE)
	$(CC) -o $(OUT_SAMPLE) $(OBJS_SAMPLE) $(LDFLAGS)

.PHONY: clean

clean:
	rm -f *.o *~


depend:
	makedepend -Y../src --   -- $(SRCS)
# DO NOT DELETE

options.o: options.h ../src/siscone.h ../src/protocones.h ../src/momentum.h
options.o: ../src/reference.h ../src/geom_2d.h ../src/defines.h
options.o: ../src/vicinity.h ../src/quadtree.h ../src/hash.h
options.o: ../src/split_merge.h
main.o: ../src/momentum.h ../src/reference.h ../src/geom_2d.h
main.o: ../src/defines.h ../src/siscone.h ../src/protocones.h
main.o: ../src/vicinity.h ../src/quadtree.h ../src/hash.h
main.o: ../src/split_merge.h options.h
sample.o: ../src/momentum.h ../src/reference.h ../src/geom_2d.h
sample.o: ../src/defines.h ../src/siscone.h ../src/protocones.h
sample.o: ../src/vicinity.h ../src/quadtree.h ../src/hash.h
sample.o: ../src/split_merge.h
test.o: ../src/ranlux.h ../src/momentum.h ../src/reference.h ../src/geom_2d.h
test.o: ../src/defines.h ../src/protocones.h ../src/vicinity.h
test.o: ../src/quadtree.h ../src/hash.h ../src/split_merge.h ../src/siscone.h
times.o: ../src/ranlux.h ../src/momentum.h ../src/reference.h
times.o: ../src/geom_2d.h ../src/defines.h ../src/protocones.h
times.o: ../src/vicinity.h ../src/quadtree.h ../src/hash.h
times.o: ../src/split_merge.h
