1 # Rules.mak for uClibc test subdirs
3 # Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
5 # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
11 abs_top_builddir ?
= $(shell cd
$(top_builddir
); pwd
)/
13 TESTDIR
=$(top_builddir
)test/
15 include $(top_srcdir
)Rules.mak
16 ifeq ($(filter $(clean_targets
) CLEAN_
%,$(MAKECMDGOALS
)),)
17 ifeq ($(HAVE_DOT_CONFIG
),)
18 $(error no HAVE_DOT_CONFIG
, failed to read .config
)
23 ifeq (,$(findstring /,$(UCLIBC_LDSO
)))
24 UCLIBC_LDSO
:= $(UCLIBC_LDSO
)
26 UCLIBC_LDSO
:= $(notdir $(UCLIBC_LDSO
))
29 UCLIBC_LDSO
:= $(notdir $(firstword $(wildcard $(top_builddir
)lib
/ld*)))
31 ifndef TEST_INSTALLED_UCLIBC
32 ifeq ($(LDSO_SAFE_RUNPATH
),y
)
33 UCLIBC_PATH
:= $(abs_top_builddir
)lib
35 UCLIBC_PATH
:= $(top_builddir
)lib
38 UCLIBC_PATH
:= $(RUNTIME_PREFIX
)$(MULTILIB_DIR
)
40 #--------------------------------------------------------
41 # Ensure consistent sort order, 'gcc -print-search-dirs' behavior, etc.
45 ifeq ($(strip $(TARGET_ARCH
)),)
46 TARGET_ARCH
:=$(shell $(CC
) -dumpmachine | sed
-e s
'/-.*//' \
48 -e
's/sun.*/sparc/' -e
's/sparc.*/sparc/' \
49 -e
's/sa110/arm/' -e
's/arm.*/arm/g' \
51 -e
's/parisc.*/hppa/' \
52 -e
's/ppc/powerpc/g' \
56 -e
's/xtensa.*/xtensa/' \
64 ifneq ($(KERNEL_HEADERS
),)
65 ifeq ($(patsubst /%,/,$(KERNEL_HEADERS
)),/)
66 # Absolute path in KERNEL_HEADERS
67 KERNEL_INCLUDES
+= -I
$(KERNEL_HEADERS
)
69 # Relative path in KERNEL_HEADERS
70 KERNEL_INCLUDES
+= -I
$(top_builddir
)$(KERNEL_HEADERS
)
74 XCOMMON_CFLAGS
:= -I
$(top_builddir
)test -D_GNU_SOURCE
75 XWARNINGS
+= $(CFLAG_-Wstrict-prototypes
)
76 CFLAGS
:= -nostdinc
-I
$(top_builddir
)$(LOCAL_INSTALL_PATH
)/usr
/include
77 CFLAGS
+= $(XCOMMON_CFLAGS
) $(KERNEL_INCLUDES
) $(CC_INC
)
78 CFLAGS
+= $(OPTIMIZATION
) $(CPU_CFLAGS
) $(XWARNINGS
)
80 $(eval
$(call check-gcc-var
,-Wno-missing-field-initializers
))
81 CFLAGS
+= $(CFLAG_-Wno-missing-field-initializers
)
83 # Can't add $(OPTIMIZATION) here, it may be target-specific.
84 # Just adding -Os for now.
85 HOST_CFLAGS
+= $(XCOMMON_CFLAGS
) -Os
$(XWARNINGS
) -std
=gnu99
87 LDFLAGS
:= $(CPU_LDFLAGS-y
) -Wl
,-z
,now
92 HOST_LDFLAGS
+= -Wl
,-g
97 HOST_LDFLAGS
+= -Wl
,-s
100 ifneq ($(HAVE_SHARED
),y
)
101 LDFLAGS
+= -Wl
,-static
-static-libgcc
104 ifndef TEST_INSTALLED_UCLIBC
105 LDFLAGS
+= -B
$(UCLIBC_PATH
) -Wl
,-rpath
,$(UCLIBC_PATH
):$(shell pwd
) -Wl
,-rpath-link
,$(UCLIBC_PATH
):$(shell pwd
)
107 LDFLAGS
+= -Wl
,-rpath
,$(shell pwd
)
110 ifeq ($(findstring -static
,$(LDFLAGS
)),)
111 LDFLAGS
+= -Wl
,--dynamic-linker
,$(UCLIBC_PATH
)/$(UCLIBC_LDSO
)
114 ifeq ($(LDSO_GNU_HASH_SUPPORT
),y
)
115 # Check for binutils support is done on root Rules.mak
116 LDFLAGS
+= $(CFLAG_-Wl--hash-style
=gnu
)
119 ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS
)),"")
120 CFLAGS
+= $(call qstrip
,$(UCLIBC_EXTRA_CFLAGS
))
122 ifneq ($(strip $(UCLIBC_EXTRA_LDFLAGS
)),"")
123 LDFLAGS
+= $(call qstrip
,$(UCLIBC_EXTRA_LDFLAGS
))
126 ifneq ($(findstring -s
,$(MAKEFLAGS
)),)
131 ifneq ($(V
)$(VERBOSE
),)
142 MAKEFLAGS
+= --no-print-directory
145 banner
:= ---------------------------------
146 pur_showclean
= echo
" "CLEAN
$(notdir $(CURDIR
))
147 pur_showdiff
= echo
" "TEST_DIFF
$(notdir $(CURDIR
))/
148 pur_showlink
= echo
" "TEST_LINK
$(notdir $(CURDIR
))/ $@
149 pur_showtest
= echo
" "TEST_EXEC
$(notdir $(CURDIR
))/ $(@
:.exe
=)
155 ver_showdiff
= true echo
156 ver_showlink
= true echo
157 ver_showtest
= printf
"\n$(banner)\nTEST $(notdir $(CURDIR))/ $(@:.exe=)\n$(banner)\n"
158 do_showclean
= $($(DISP
)_showclean
)
159 do_showdiff
= $($(DISP
)_showdiff
)
160 do_showlink
= $($(DISP
)_showlink
)
161 do_showtest
= $($(DISP
)_showtest
)
162 showclean
= @
$(do_showclean
)
163 showdiff
= @
$(do_showdiff
)
164 showlink
= @
$(do_showlink
)
165 showtest
= @
$(do_showtest
)