File: Makefile

package info (click to toggle)
libtree 3.1.1-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 288 kB
  • sloc: ansic: 1,412; makefile: 202
file content (38 lines) | stat: -rw-r--r-- 1,050 bytes parent folder | download | duplicates (3)
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
38
# Test 32 bits exectuables and libraries
# Make sure the 64 bits versions are not picked up.

LD_LIBRARY_PATH=
CPU_ARCH=$(shell uname -m)

.PHONY: clean

all: check

ifeq ($(CPU_ARCH), $(filter x86_64 amd64 i686 i386 ppc% sparc64,$(CPU_ARCH)))
lib64/libx.so:
	mkdir -p $(@D)
	echo 'int a(){return 42;}' | $(CC) -shared -Wl,-soname,$(@F) -m64 -o $@ -nostdlib -x c -

lib32/libx.so:
	mkdir -p $(@D)
	echo 'int a(){return 42;}' | $(CC) -shared -Wl,-soname,$(@F) -m32 -o $@ -nostdlib -x c -

exe64: lib64/libx.so
	echo 'extern int a(); int _start(){return a();}' | $(CC) -m64 "-Wl,-rpath,$(CURDIR)/lib32" "-Wl,-rpath,$(CURDIR)/lib64" -o $@ -nostdlib -x c - -Llib64 -lx

exe32: lib32/libx.so
	echo 'extern int a(); int _start(){return a();}' | $(CC) -m32 "-Wl,-rpath,$(CURDIR)/lib64" "-Wl,-rpath,$(CURDIR)/lib32" -o $@ -nostdlib -x c - -Llib32 -lx

check: exe32 exe64
	../../libtree exe32
	../../libtree exe64

else
check:
	@echo Architecture does not support -m32 or -m64 options. Do nothing.
endif

clean:
	rm -rf lib32 lib64 exe*

CURDIR ?= $(.CURDIR)