b6e21dbc70b2d367537d4f7d022746083c7c7b38
[assman] / Makefile
1 src = $(wildcard src/*.c)
2 obj = $(src:.c=.o)
3 dep = $(obj:.o=.d)
4
5 name = assman
6 so_major = 0
7 so_minor = 1
8
9 lib_a = lib$(name).a
10 lib_so = lib$(name).so.$(so_major).$(so_minor)
11 soname = lib$(name).so.$(so_major)
12 devlink = lib$(name).so
13 shared = -shared -Wl,-soname,$(soname)
14
15 warn = -pedantic -Wall
16 dbg = -g
17 opt = -O0
18 def = -DBUILD_MOD_URL
19 pic = -fPIC
20
21 CFLAGS = $(warn) $(dbg) $(opt) $(pic) $(def) $(inc)
22 LDFLAGS = -lpthread -lcurl
23
24 .PHONY: all
25 all: $(lib_so) $(lib_a) $(soname) $(devlink)
26
27 $(lib_so): $(obj)
28         $(CC) -o $@ $(shared) $(obj) $(LDFLAGS)
29
30 $(lib_a): $(obj)
31         $(AR) rcs $@ $(obj)
32
33 $(soname): $(lib_so)
34         rm -f $@ && ln -s $< $@
35
36 $(devlink): $(soname)
37         rm -f $@ && ln -s $< $@
38
39 %.d: %.c
40         @echo "generating depfile $< -> $@"
41         @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@
42
43 .PHONY: clean
44 clean:
45         rm -f $(obj) $(lib_a) $(lib_so) $(soname) $(devlink)
46
47 .PHONY: cleandep
48 cleandep:
49         rm -f $(dep)