CC=gcc
CFLAGS=-Wall
RCC=rustc
RCFLAGS=--edition 2021 -g

all: clean bin/part01 bin/part02 bin/part01_rs bin/part02_rs
	@echo "built all"

crun1: clean bin/part01
	cat data/p01data.txt | bin/part01

crun2: clean bin/part02
	cat data/p02data.txt | bin/part02

ctest1: clean bin/part01
	cat data/p01test.txt | bin/part01

ctest2: clean bin/part02
	cat data/p02test.txt | bin/part02

rsrun1: clean bin/part01_rs
	cat data/p01data.txt | bin/part01_rs

rsrun2: clean bin/part02_rs
	cat data/p02data.txt | bin/part02_rs

rstest1: clean bin/part01_rs
	cat data/p01test.txt | bin/part01_rs

rstest2: clean bin/part02_rs
	cat data/p02test.txt | bin/part02_rs

bin/part01:
	$(CC) $(CFLAGS) src/part01.c -o bin/part01 

bin/part02:
	$(CC) $(CFLAGS) src/part02.c -o bin/part02

bin/part01_rs:
	$(RCC) src/part01.rs $(RCFLAGS) -o bin/part01_rs

bin/part02_rs:
	$(RCC) src/part02.rs $(RCFLAGS) -o bin/part02_rs

.PHONY: clean,pytest1,pytest2,pyrun1,pyrun2

clean:
	rm -f bin/*

pytest1:
	cat data/p01test.txt | python3 src/part01.py

pyrun1:
	cat data/p01data.txt | python3 src/part01.py

pytest2:
	cat data/p02test.txt | python3 src/part02.py

pyrun2:
	cat data/p02data.txt | python3 src/part02.py