summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile45
1 files changed, 45 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..a4b2611
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,45 @@
+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
+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)