summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile47
1 files changed, 47 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 00000000..a89f0586
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,47 @@
+CODE = amount.cc ledger.cc parse.cc gnucash.cc balance.cc
+ifndef LIBRARY
+CODE := $(CODE) main.cc
+endif
+
+OBJS = $(patsubst %.cc,%.o,$(CODE))
+
+CFLAGS = -Wall -ansi -pedantic
+DFLAGS = -g
+INCS = -I/usr/include/xmltok
+LIBS = -lgmpxx -lgmp -lpcre -lxmlparse
+
+ifdef LIBRARY
+
+CFLAGS := $(CFLAGS) -fpic
+
+all: make.deps libledger.so ledger
+
+libledger.so: $(OBJS)
+ g++ $(CFLAGS) $(INCS) $(DFLAGS) -shared -fpic -o $@ $(OBJS) $(LIBS)
+
+ledger: main.cc
+ g++ $(INCS) $(DFLAGS) -o $@ main.cc -L. -lledger
+
+else # LIBRARY
+
+all: make.deps ledger
+
+ledger: $(OBJS)
+ g++ $(CFLAGS) $(INCS) $(DFLAGS) -o $@ $(OBJS) $(LIBS)
+
+endif # LIBRARY
+
+%.o: %.cc
+ g++ $(CFLAGS) $(INCS) $(DFLAGS) -c -o $@ $<
+
+clean:
+ rm -f libledger.so ledger *.o
+
+rebuild: clean deps all
+
+deps: make.deps
+
+make.deps: Makefile
+ cc -M $(INCS) $(CODE) main.cc > $@
+
+include make.deps