summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@euromail.se>2010-06-17 21:41:26 +0200
committerHenrik Rydberg <rydberg@euromail.se>2010-06-17 21:41:26 +0200
commitba07cbb24bd226ead1f8f96b0e969822aa734076 (patch)
treeb7a89cbc9731bbf71b46532c8f3672871645dbaf /Makefile
parent7d392652bae52b76cb5fe907cc1e86e0e0c4ced9 (diff)
Output both a static and a dynamic library
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile29
1 files changed, 18 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index 0d81f7a..a8ead25 100644
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@ VERSION = 1
2PATCHLEVEL = 0 2PATCHLEVEL = 0
3EXTRAVERSION = beta1 3EXTRAVERSION = beta1
4 4
5LIBRARY = libmtdev.so 5LIBRARY = libmtdev
6MODULES = src 6MODULES = src
7 7
8o_src = match iobuf caps core 8o_src = match iobuf caps core
@@ -15,12 +15,13 @@ OBJECTS = $(addsuffix .o,\
15 $(addprefix $(mod)/,$(o_$(mod))))) 15 $(addprefix $(mod)/,$(o_$(mod)))))
16 16
17TBIN = $(addprefix bin/,$(TARGETS)) 17TBIN = $(addprefix bin/,$(TARGETS))
18TLIB = $(addprefix obj/,$(LIBRARY)) 18SLIB = $(addprefix obj/,$(LIBRARY).a)
19DLIB = $(addprefix obj/,$(LIBRARY).so)
19TOBJ = $(addprefix obj/,$(addsuffix .o,$(TARGETS))) 20TOBJ = $(addprefix obj/,$(addsuffix .o,$(TARGETS)))
20OBJS = $(addprefix obj/,$(OBJECTS)) 21OBJS = $(addprefix obj/,$(OBJECTS))
21LIBS = 22LIBS =
22 23
23DLIB = usr/lib 24DESTLIB = usr/lib
24 25
25INCLUDE = -Iinclude 26INCLUDE = -Iinclude
26OPTS = -O3 -fPIC 27OPTS = -O3 -fPIC
@@ -28,14 +29,18 @@ OPTS = -O3 -fPIC
28.PHONY: all clean 29.PHONY: all clean
29.PRECIOUS: obj/%.o 30.PRECIOUS: obj/%.o
30 31
31all: $(OBJS) $(TLIB) $(TOBJ) $(TBIN) 32all: $(OBJS) $(SLIB) $(DLIB) $(TOBJ) $(TBIN)
32 33
33bin/%: obj/%.o $(TLIB) 34bin/%: obj/%.o $(SLIB)
34 @mkdir -p $(@D) 35 @mkdir -p $(@D)
35 gcc $< -o $@ $(TLIB) $(LIBS) 36 gcc $< -o $@ $(SLIB) $(LIBS)
36 37
37$(TLIB): $(OBJS) $(XOBJS) 38$(SLIB): $(OBJS) $(XOBJS)
38 @rm -f $(TLIB) 39 @rm -f $(SLIB)
40 ar qc $@ $(OBJS) $(XOBJS)
41
42$(DLIB): $(OBJS) $(XOBJS)
43 @rm -f $(DLIB)
39 gcc -shared $(OBJS) $(XOBJS) -Wl,-soname -Wl,$(LIBRARY) -o $@ 44 gcc -shared $(OBJS) $(XOBJS) -Wl,-soname -Wl,$(LIBRARY) -o $@
40 45
41obj/%.o: %.c 46obj/%.o: %.c
@@ -48,6 +53,8 @@ clean:
48distclean: clean 53distclean: clean
49 rm -rf debian/*.log debian/files 54 rm -rf debian/*.log debian/files
50 55
51install: $(TLIB) $(TFDI) 56install: $(SLIB) $(DLIB)
52 install -d "$(DESTDIR)/$(DLIB)" 57 install -d $(DESTDIR)/$(DESTLIB)
53 install -m 755 $(TLIB) "$(DESTDIR)/$(DLIB)" 58 install -m 755 $(SLIB) $(DESTDIR)/$(DESTLIB)
59 install -m 755 $(DLIB) $(DESTDIR)/$(DESTLIB)
60 ldconfig -n $(DESTDIR)/$(DESTLIB)