diff options
author | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-10-24 20:22:12 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-10-24 20:22:12 +0200 |
commit | 7988979a722b4cdf287b2093956a76a3f19b9897 (patch) | |
tree | d35e251d0472ceca55a2eef61cff261c8ee68fab /test/Rules.mak |
add uClibc-ng test directory
Diffstat (limited to 'test/Rules.mak')
-rw-r--r-- | test/Rules.mak | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/test/Rules.mak b/test/Rules.mak new file mode 100644 index 0000000..9416a0c --- /dev/null +++ b/test/Rules.mak @@ -0,0 +1,165 @@ +# Rules.mak for uClibc test subdirs +# +# Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> +# +# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. +# + +.SUFFIXES: + +top_builddir ?= ../ +abs_top_builddir ?= $(shell cd $(top_builddir); pwd)/ + +TESTDIR=$(top_builddir)test/ + +include $(top_srcdir)Rules.mak +ifeq ($(filter $(clean_targets) CLEAN_%,$(MAKECMDGOALS)),) +ifeq ($(HAVE_DOT_CONFIG),) +$(error no HAVE_DOT_CONFIG, failed to read .config) +endif +endif + +ifdef UCLIBC_LDSO +ifeq (,$(findstring /,$(UCLIBC_LDSO))) +UCLIBC_LDSO := $(UCLIBC_LDSO) +else +UCLIBC_LDSO := $(notdir $(UCLIBC_LDSO)) +endif +else +UCLIBC_LDSO := $(notdir $(firstword $(wildcard $(top_builddir)lib/ld*))) +endif +ifndef TEST_INSTALLED_UCLIBC +ifeq ($(LDSO_SAFE_RUNPATH),y) +UCLIBC_PATH := $(abs_top_builddir)lib +else +UCLIBC_PATH := $(top_builddir)lib +endif +else +UCLIBC_PATH := $(RUNTIME_PREFIX)$(MULTILIB_DIR) +endif +#-------------------------------------------------------- +# Ensure consistent sort order, 'gcc -print-search-dirs' behavior, etc. +LC_ALL:= C +export LC_ALL + +ifeq ($(strip $(TARGET_ARCH)),) +TARGET_ARCH:=$(shell $(CC) -dumpmachine | sed -e s'/-.*//' \ + -e 's/i.86/i386/' \ + -e 's/sun.*/sparc/' -e 's/sparc.*/sparc/' \ + -e 's/sa110/arm/' -e 's/arm.*/arm/g' \ + -e 's/m68k.*/m68k/' \ + -e 's/parisc.*/hppa/' \ + -e 's/ppc/powerpc/g' \ + -e 's/sh[234]/sh/' \ + -e 's/mips.*/mips/' \ + -e 's/cris.*/cris/' \ + -e 's/xtensa.*/xtensa/' \ + ) +endif +export TARGET_ARCH + +RM_R = $(Q)$(RM) -r +LN_S = $(Q)$(LN) -fs + +ifneq ($(KERNEL_HEADERS),) +ifeq ($(patsubst /%,/,$(KERNEL_HEADERS)),/) +# Absolute path in KERNEL_HEADERS +KERNEL_INCLUDES += -I$(KERNEL_HEADERS) +else +# Relative path in KERNEL_HEADERS +KERNEL_INCLUDES += -I$(top_builddir)$(KERNEL_HEADERS) +endif +endif + +XCOMMON_CFLAGS := -I$(top_builddir)test -D_GNU_SOURCE +XWARNINGS += $(CFLAG_-Wstrict-prototypes) +CFLAGS := -nostdinc -I$(top_builddir)$(LOCAL_INSTALL_PATH)/usr/include +CFLAGS += $(XCOMMON_CFLAGS) $(KERNEL_INCLUDES) $(CC_INC) +CFLAGS += $(OPTIMIZATION) $(CPU_CFLAGS) $(XWARNINGS) + +$(eval $(call check-gcc-var,-Wno-missing-field-initializers)) +CFLAGS += $(CFLAG_-Wno-missing-field-initializers) + +# Can't add $(OPTIMIZATION) here, it may be target-specific. +# Just adding -Os for now. +HOST_CFLAGS += $(XCOMMON_CFLAGS) -Os $(XWARNINGS) -std=gnu99 + +LDFLAGS := $(CPU_LDFLAGS-y) -Wl,-z,now +ifeq ($(DODEBUG),y) + CFLAGS += -g + HOST_CFLAGS += -g + LDFLAGS += -Wl,-g + HOST_LDFLAGS += -Wl,-g +endif + +ifeq ($(DOSTRIP),y) + LDFLAGS += -Wl,-s + HOST_LDFLAGS += -Wl,-s +endif + +ifneq ($(HAVE_SHARED),y) + LDFLAGS += -Wl,-static -static-libgcc +endif + +ifndef TEST_INSTALLED_UCLIBC +LDFLAGS += -B$(UCLIBC_PATH) -Wl,-rpath,$(UCLIBC_PATH):$(shell pwd) -Wl,-rpath-link,$(UCLIBC_PATH):$(shell pwd) +else +LDFLAGS += -Wl,-rpath,$(shell pwd) +endif + +ifeq ($(findstring -static,$(LDFLAGS)),) +LDFLAGS += -Wl,--dynamic-linker,$(UCLIBC_PATH)/$(UCLIBC_LDSO) +endif + +ifeq ($(LDSO_GNU_HASH_SUPPORT),y) +# Check for binutils support is done on root Rules.mak +LDFLAGS += $(CFLAG_-Wl--hash-style=gnu) +endif + +ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS)),"") +CFLAGS += $(call qstrip,$(UCLIBC_EXTRA_CFLAGS)) +endif +ifneq ($(strip $(UCLIBC_EXTRA_LDFLAGS)),"") +LDFLAGS += $(call qstrip,$(UCLIBC_EXTRA_LDFLAGS)) +endif + +ifneq ($(findstring -s,$(MAKEFLAGS)),) +DISP := sil +Q := @ +SCAT := -@true +else +ifneq ($(V)$(VERBOSE),) +DISP := ver +Q := +SCAT := cat +else +DISP := pur +Q := @ +SCAT := -@true +endif +endif +ifneq ($(Q),) +MAKEFLAGS += --no-print-directory +endif + +banner := --------------------------------- +pur_showclean = echo " "CLEAN $(notdir $(CURDIR)) +pur_showdiff = echo " "TEST_DIFF $(notdir $(CURDIR))/ +pur_showlink = echo " "TEST_LINK $(notdir $(CURDIR))/ $@ +pur_showtest = echo " "TEST_EXEC $(notdir $(CURDIR))/ $(@:.exe=) +sil_showclean = +sil_showdiff = true +sil_showlink = true +sil_showtest = true +ver_showclean = +ver_showdiff = true echo +ver_showlink = true echo +ver_showtest = printf "\n$(banner)\nTEST $(notdir $(CURDIR))/ $(@:.exe=)\n$(banner)\n" +do_showclean = $($(DISP)_showclean) +do_showdiff = $($(DISP)_showdiff) +do_showlink = $($(DISP)_showlink) +do_showtest = $($(DISP)_showtest) +showclean = @$(do_showclean) +showdiff = @$(do_showdiff) +showlink = @$(do_showlink) +showtest = @$(do_showtest) |