summaryrefslogtreecommitdiff
path: root/schulung_tools/linking/hello/Makefile-lib
blob: f3ac0de856a5a1d3bbaae29cf52d3606b21e66e0 (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
CC = $(CROSS_COMPILE)gcc
LD = $(CROSS_COMPILE)gcc
AR = $(CROSS_COMPILE)ar
RANLIB = $(CROSS_COMPILE)ranlib

REALNAME = libfunc.so.0.0.1
SONAME = libfunc.so.0
LINKERNAME = libfunc.so
STATICNAME = libfunc.a
OBJS = func1.o func2.o

CFLAGS = -fPIC -g -Wall -Werror
LDFLAGS = -shared -Wl,-soname,$(SONAME)

$(LINKERNAME): $(REALNAME)
	ln -sf $< $@

$(REALNAME): $(OBJS)
	$(CC) -o$@ $(LDFLAGS) $(OBJS)

$(STATICNAME): $(OBJS)
	$(AR) cr $@ $(OBJS)
	$(RANLIB) $@

%.o: %.c
	$(CC) -c -o$@ $(CFLAGS) $<

install: $(REALNAME)
	echo "/opt/acme/lib" > /etc/ld.so.conf.d/acme.conf
	mkdir -p /opt/acme/lib
	cp $< /opt/acme/lib/
	ldconfig

clean:
	rm -f $(OBJS) $(REALNAME) $(SONAME) $(LINKERNAME) $(STATICNAME)

.PHONY: install clean