UNAME := $$( uname -s ) ifeq (${UNAME}, "Linux") CC=clang --std=gnu11 else CC=clang --std=c11 endif AR=ar ruvcs CFLAGS=-Wall -Wextra -Weverything -pedantic #-Werror CFLAGS+=-Wno-declaration-after-statement -Wno-pre-c11-compat ifdef ${RELEASE} CFLAGS+=-O2 LFLAGS=-O2 else CFLAGS+=-g LFLAGS=-g endif LIBS=-lncurses -lform -lm TARGET=lc DEPS=main.c HEAD= OBJ=${DEPS:.c=.o} LIB=las.a LDEPS=bullet_loan.c straight_line_loan.c mortgage_loan.c loans.c read_functions.c LHEAD=contract.h loans.h LOBJ=${LDEPS:.c=.o} .PHONY: all clean release lib $(TARGET) $(LIB) all: $(LIB) $(TARGET) $(OBJ): $(HEAD) $(LOBJ): $(LHEAD) .c.o: $(CC) -o $@ -c $< $(CFLAGS) $(TARGET): $(OBJ) $(LIB) $(CC) -o $@ $(OBJ) $(LIB) $(LIBS) $(LFLAGS) $(LIB): $(LOBJ) $(AR) $(LIB) $(LOBJ) lib: $(LIB) release: @make -DRELEASE clean: rm -f *~ *.core $(OBJ) $(TARGET) $(LOBJ) $(LIB)