summaryrefslogtreecommitdiffstats
path: root/BSDmakefile
diff options
context:
space:
mode:
Diffstat (limited to 'BSDmakefile')
-rw-r--r--BSDmakefile52
1 files changed, 52 insertions, 0 deletions
diff --git a/BSDmakefile b/BSDmakefile
new file mode 100644
index 0000000..70c5aa7
--- /dev/null
+++ b/BSDmakefile
@@ -0,0 +1,52 @@
+UNAME := $$( uname -s )
+
+.if ${UNAME} == "Linux"
+CC=clang --std=gnu11
+.else
+CC=clang --std=c11
+.endif
+AR=ar ruvcs
+
+CFLAGS=-Wall -Wextra -Werror -Weverything -pedantic
+.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)