File: Makefile

package info (click to toggle)
libtree 3.1.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 288 kB
  • sloc: ansic: 1,412; makefile: 202
file content (30 lines) | stat: -rw-r--r-- 1,203 bytes parent folder | download | duplicates (2)
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
LD_LIBRARY_PATH=

.PHONY: clean

all: check

some_dir/lib_f.so:
	mkdir some_dir
	echo 'int f(){return 42;}' | $(CC) -shared -Wl,-soname,$(@F) -Wl,--no-as-needed -o $@ -x c -

lib_g.so: some_dir/lib_f.so
	echo 'extern int f(); int g(){return f();}' | $(CC) -shared -Wl,-soname,$@ -Wl,--no-as-needed "-Wl,-rpath,$(CURDIR)/some_dir" -L./some_dir -l_f -o $@ -x c -

lib_without_soname.so:
	echo 'int i(){return 1;}' | $(CC) -shared -Wl,--no-as-needed -o $@ -x c -

exe_a: some_dir/lib_f.so lib_g.so lib_without_soname.so
	echo 'extern int i(); extern int f(); extern int g(); int main(){return f() + g() + i();}' | $(CC) -Wl,--no-as-needed "-Wl,-rpath,$(CURDIR)/" -L. -L./some_dir -l_f -l_g $(CURDIR)/lib_without_soname.so -o $@ -x c -

exe_b: some_dir/lib_f.so lib_g.so lib_without_soname.so
	echo 'extern int i(); extern int f(); extern int g(); int main(){return f() + g() + i();}' | $(CC) -Wl,--no-as-needed "-Wl,-rpath,$(CURDIR)/" "-Wl,-rpath,$(CURDIR)/some_dir" -L. -L./some_dir -l_f -l_g $(CURDIR)/lib_without_soname.so -o $@ -x c -

check: exe_a exe_b
	! ../../libtree exe_a # cannot find lib_f.so
	../../libtree exe_b # should find lib_f.so

clean:
	rm -rf *.so some_dir exe*

CURDIR ?= $(.CURDIR)