.DEFAULT_GOAL := all

CFLAGS = -Werror -g -Wall -Wextra -O2 -std=gnu11 -Wfloat-equal -Wformat=2 -Wformat-signedness -Wlogical-op -Wmissing-declarations -Wmissing-prototypes -Wshadow -Wswitch-default -Wwrite-strings
INCLUDES = -I ../../hal/rpi -I ../../driver

all: repeated_position_cam312 repeated_position_cam204 repeated_position_cam502 repeated_position_cam622 firmware_upgrade_cam312 firmware_upgrade_cam204 firmware_upgrade_cam502 firmware_upgrade_cam622

clean:
	-rm repeated_position_cam312 repeated_position_cam204 repeated_position_cam502 firmware_upgrade_cam312 firmware_upgrade_cam204 firmware_upgrade_cam502 firmware_upgrade_cam622

repeated_position_cam312: ./repeated_position.c ../../hal/rpi/raspberrypi-hal.c ../../hal/rpi/raspberrypi-hal.h ../../driver/cic_ctu_registers.h ../../driver/ctu.h ../../driver/ctu.c ../../driver/cic_common.h
	$(CC) $(CFLAGS) -o $@ $(INCLUDES) -DCTUTYPE=312 $^ -lgpiod

repeated_position_cam204: ./repeated_position.c ../../hal/rpi/raspberrypi-hal.c ../../hal/rpi/raspberrypi-hal.h ../../driver/cic_ctu_registers.h ../../driver/ctu.h ../../driver/ctu.c ../../driver/cic_common.h
	$(CC) $(CFLAGS) -o $@ $(INCLUDES) -DCTUTYPE=204 $^ -lgpiod

repeated_position_cam502: ./repeated_position.c ../../hal/rpi/raspberrypi-hal.c ../../hal/rpi/raspberrypi-hal.h ../../driver/cic_ctu_registers.h ../../driver/ctu.h ../../driver/ctu.c ../../driver/cic_common.h
	$(CC) $(CFLAGS) -o $@ $(INCLUDES) -DCTUTYPE=502 $^ -lgpiod

repeated_position_cam622: ./repeated_position_cam622.c ../../hal/rpi/raspberrypi-hal.c ../../hal/rpi/raspberrypi-hal.h ../../driver/cic_ctu_registers.h ../../driver/cam622.h ../../driver/cam622.c ../../driver/cic_common.h
	$(CC) $(CFLAGS) -o $@ $(INCLUDES) -DCTUTYPE=622 $^ -lgpiod

firmware_upgrade_cam312: ./firmware_upgrade.c ../../hal/rpi/raspberrypi-hal.c ../../hal/rpi/raspberrypi-hal.h ../../driver/cic_ctu_registers.h ../../driver/ctu.h ../../driver/ctu.c ../../driver/cic_common.h
	$(CC) $(CFLAGS) -o $@ $(INCLUDES) -DCTUTYPE=312 $^ -lgpiod

firmware_upgrade_cam204: ./firmware_upgrade.c ../../hal/rpi/raspberrypi-hal.c ../../hal/rpi/raspberrypi-hal.h ../../driver/cic_ctu_registers.h ../../driver/ctu.h ../../driver/ctu.c ../../driver/cic_common.h
	$(CC) $(CFLAGS) -o $@ $(INCLUDES) -DCTUTYPE=204 $^ -lgpiod

firmware_upgrade_cam502: ./firmware_upgrade.c ../../hal/rpi/raspberrypi-hal.c ../../hal/rpi/raspberrypi-hal.h ../../driver/cic_ctu_registers.h ../../driver/ctu.h ../../driver/ctu.c ../../driver/cic_common.h
	$(CC) $(CFLAGS) -o $@ $(INCLUDES) -DCTUTYPE=502 $^ -lgpiod

firmware_upgrade_cam622: ./firmware_upgrade_cam622.c ../../hal/rpi/raspberrypi-hal.c ../../hal/rpi/raspberrypi-hal.h ../../driver/cic_cam622_registers.h ../../driver/cam622.h ../../driver/cam622.c ../../driver/cic_common.h
	$(CC) $(CFLAGS) -o $@ $(INCLUDES) -DCTUTYPE=622 $^ -lgpiod

.phony: all clean
