summaryrefslogtreecommitdiff
path: root/Makefile
blob: a89f05863fde05c64a1de11c4a29c1eba2395ac0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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