summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElouan Gros <elouan.gros@astran.io>2026-09-05 09:39:49 +0200
committergonzo <gonzo@toniatuh.com>2026-09-05 10:30:27 +0200
commitdc7406f717e1381c4ecaefb5277a79a3297eae28 (patch)
tree8979e4094decf8b34654bfa2cdfcbee9f4573754
parent000e28a041f1e12a1e682df0d7fabd3cf4da4dd7 (diff)
downloadloan_calc-dc7406f717e1381c4ecaefb5277a79a3297eae28.tar.gz
split makefile -> BSDm / GNUm
-rw-r--r--BSDmakefile (renamed from Makefile)2
-rw-r--r--GNUmakefile53
2 files changed, 54 insertions, 1 deletions
diff --git a/Makefile b/BSDmakefile
index b883d7f..70c5aa7 100644
--- a/Makefile
+++ b/BSDmakefile
@@ -49,4 +49,4 @@ release:
@make -DRELEASE
clean:
- rm -f *.o *~ *.core $(OBJ) $(TARGET)
+ rm -f *.core $(OBJ) $(TARGET) $(LOBJ) $(LIB)
diff --git a/GNUmakefile b/GNUmakefile
new file mode 100644
index 0000000..995c34d
--- /dev/null
+++ b/GNUmakefile
@@ -0,0 +1,53 @@
+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)