UNAME := $$( uname -s ) .if ${UNAME} == "Linux" CC=clang --std=gnu99 .else CC=clang --std=c99 .endif AR=ar ruvcs CFLAGS=-Wall -Wextra -Werror -Weverything -Wpadded -pedantic LIBS=-lncurses BLDFLAGS=-g RELFLAGS=-O2 TARGET=lc DEPS=main.c HEAD= OBJ=${DEPS:.c=.o} LIB=las.a LDEPS=bullet_loan.c straight_line_loan.c LHEAD=contract.h loans.h LOBJ=${LDEPS:.c=.o} .PHONY: all clean release $(TARGET) $(LIB) all: $(LIB) $(TARGET) $(OBJ): $(HEAD) $(LOBJ): $(LHEAD) %.o: %.c $(CC) -o ./src/$@ -c $< $(CFLAGS) $(TARGET): $(OBJ) $(LIB) $(CC) -o $@ $(OBJ) $(LIB) $(LIBS) $(BLDFLAGS) $(LIB): $(LOBJ) $(AR) $(LIB) $(LOBJ) release: $(OBJ) $(CC) -o $(TARGET) $(OBJ) $(LIBS) $(RELFLAGS) clean: rm -f *.o *~ *.core $(OBJ) $(TARGET)