# El ticket de compra: tres módulos y un main.
# Cada .o depende de su .c y de todos los .h que ese .c incluye, directa o indirectamente.

CC = gcc
CFLAGS = -Wall -Wextra -std=c17
BUILD = build
OBJECTS = $(BUILD)/receipt.o $(BUILD)/ticket.o $(BUILD)/item.o $(BUILD)/money.o

$(BUILD)/receipt: $(OBJECTS)
	$(CC) $(OBJECTS) -o $@

$(BUILD)/receipt.o: receipt.c ticket.h item.h | $(BUILD)
	$(CC) $(CFLAGS) -c $< -o $@

$(BUILD)/ticket.o: ticket.c ticket.h item.h money.h | $(BUILD)
	$(CC) $(CFLAGS) -c $< -o $@

$(BUILD)/item.o: item.c item.h | $(BUILD)
	$(CC) $(CFLAGS) -c $< -o $@

$(BUILD)/money.o: money.c money.h | $(BUILD)
	$(CC) $(CFLAGS) -c $< -o $@

$(BUILD):
	mkdir -p $@

.PHONY: clean
clean:
	rm -rf $(BUILD)
