summaryrefslogtreecommitdiff
path: root/schulung_tools/linking/hello/Makefile
blob: a5b4c264d0d938d6695b2f0420ec9629bedc7bf4 (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
hello: hello.c libfunc.so
	$(CROSS_COMPILE)gcc -g -ohello hello.c -L. -lfunc

hello2: hello.c libfunc.a
	rm -f libfunc.so
	$(CROSS_COMPILE)gcc -g -ohello2 hello.c -L. -lfunc

libfunc.so: libfunc.so.0.0.1
	ln -s libfunc.so.0.0.1 libfunc.so

libfunc.so.0.0.1: func1.o func2.o
	$(CROSS_COMPILE)gcc -shared -olibfunc.so.0.0.1 -Wl,-soname,libfunc.so.0 func1.o func2.o

libfunc.a: func1.o func2.o
	$(CROSS_COMPILE)ar cr libfunc.a func1.o func2.o
	$(CROSS_COMPILE)ranlib libfunc.a

func1.o: func1.c
	$(CROSS_COMPILE)gcc -fPIC -g -c func1.c

func2.o: func2.c
	$(CROSS_COMPILE)gcc -fPIC -g -c func2.c

install_lib: libfunc.so.0.0.1
	echo "/opt/acme/lib" > /etc/ld.so.conf.d/acme.conf
	mkdir -p /opt/acme/lib
	cp libfunc.so.0.0.1 /opt/acme/lib
	ldconfig

clean:
	rm -f hello hello2 *.o lib*

.PHONY: clean