PREFIX ?= /Td0Utils
BINDIR ?= $(PREFIX)
DESTDIR ?=

CC ?= gcc
CPPFLAGS =
#CFLAGS ?= -O2 -Wall -Wextra -std=c99
#LDFLAGS ?=
LDLIBS ?= -lm

PROGRAMS = $(BUILD_DIR)/check_td0 $(BUILD_DIR)/dump_td0 $(BUILD_DIR)/td02ima

.PHONY: all
all: $(PROGRAMS)

teledisk.o: teledisk.c teledisk.h | $(BUILD_DIR)
	$(CC) $(CFLAGS) -c -o $@ teledisk.c

check_td0.o: check_td0.c teledisk.h | $(BUILD_DIR)
	$(CC) $(CFLAGS) -c -o $@ check_td0.c

dump_td0.o: dump_td0.c teledisk.h | $(BUILD_DIR)
	$(CC) $(CFLAGS) -c -o $@ dump_td0.c

td02ima.o: td02ima.c teledisk.h | $(BUILD_DIR)
	$(CC) $(CFLAGS) -c -o $@ td02ima.c

check_td0: check_td0.o $(BUILD_DIR)/teledisk.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)

dump_td0: dump_td0.o $(BUILD_DIR)/teledisk.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)

td02ima: td02ima.o $(BUILD_DIR)/teledisk.o
	$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)

.PHONY: install
install: all
	install -Dm 755 ./check_td0.exe $(DESTDIR)$(BINDIR)/check_td0.exe
	install -Dm 755 ./dump_td0.exe $(DESTDIR)$(BINDIR)/dump_td0.exe
	install -Dm 755 ./td02ima.exe $(DESTDIR)$(BINDIR)/td02ima.exe

.PHONY: clean
clean:
	rm -rf *.o *.exe
