PLT_FILES := $(wildcard *.plt)
TARGETS   := $(PLT_FILES:%.plt=%.tex)

%.tex: %.plt
	gnuplot < $<

all: 1a 1c 2 run $(TARGETS)

IDIR =../include
CC=cc
GCC=gcc
CFLAGS=-I$(IDIR)

ODIR=~/astro/Shipley_HW2
LDIR =../lib

LIBS=-lm -g

_DEPS = ES_HW2.h
DEPS = $(patsubst %,$(IDIR)/%,$(_DEPS))

_OBJ1 = problem1a.o
OBJ1 = $(patsubst %,$(ODIR)/%,$(_OBJ1))

1a: $(OBJ1)
	$(CC) -O0 -o $@ $^ $(CFLAGS) $(LIBS)

1c: $(OBJ1)
	$(CC) -O2 -o 1c $^ $(CFLAGS) $(LIBS)

_OBJ2 = problem2.o
OBJ2 = $(patsubst %,$(ODIR)/%,$(_OBJ2))

2: $(OBJ2)
	$(CC) -O2 -o 2 $^ $(CFLAGS) $(LIBS)

$(ODIR)/%.o: %.c $(DEPS)
	$(CC) -c -o $@ $< $(CFLAGS)

.PHONY: clean

clean:
	rm -f 1a 1b 1c 2 a.out
	rm -f *.o *~ core $(INCDIR)/*~
	rm -f *.csv *~ core $(INCDIR)/*~
	rm -f *.png *~ core $(INCDIR)/*~

define NEWLINE
endef

run: 1a 1c 2
	./1a 1 # Static -O0 = 1a
	cp static_data1c_ij.csv static_data1a_ij.csv
	cp static_data1c_ji.csv static_data1a_ji.csv
	./1a 2 # Dynamic -O0 = 1b
	cp dynamic_data1c.csv dynamic_data1b.csv
	printf "\n\nStatic and Dynamic Arrays with O2 optimization \n\n"
	./1c 1 # Static -O2 = 1c
	./1c 2 # Dynamic -O2 = 1c
	./2