source: freewrt/rules.mk@ a316a45

freewrt_1_0 freewrt_2_0
Last change on this file since a316a45 was a316a45, checked in by Thorsten Glaser <tg@…>, 19 years ago

use the GNU sed built by toolchain again, but prevent it
from picking up I18N support (causes it to segfault at
least under mirbsd - GNU libregex clashes)

ok wbx@

git-svn-id: svn://www.freewrt.org/trunk/freewrt@144 afb5a338-a214-0410-bd46-81f09a774fd1

  • Property mode set to 100644
File size: 4.3 KB
Line 
1include $(TOPDIR)/lbin/prereq.mk
2include $(TOPDIR)/.config
3
4ifeq ($(V),)
5V=5
6endif
7
8
9ifneq ($(V),0)
10TRACE:=echo "---> "
11START_TRACE:=echo -n "---> "
12END_TRACE:=echo
13else
14START_TRACE:=:
15END_TRACE:=:
16TRACE:=:
17endif
18
19ifeq (${shell [ "$(V)" -ge 5 ] && echo 1},)
20CMD_TRACE:=:
21PKG_TRACE:=:
22else
23CMD_TRACE:=echo -n
24PKG_TRACE:=echo "------> "
25endif
26
27ifeq (${shell [ "$(V)" -ge 10 ] && echo 1},)
28EXTRA_MAKEFLAGS:=-s
29MAKE_TRACE:=>/dev/null 2>&1 || { echo "Build failed. Please re-run make with V=99 to see what's going on"; false; }
30else
31MAKE_TRACE:=
32EXTRA_MAKEFLAGS:=
33TRACE:=:
34PKG_TRACE:=:
35CMD_TRACE:=:
36START_TRACE:=:
37END_TRACE:=:
38endif
39
40ifeq (${shell [ "$(V)" -ge 90 ] && echo 1},)
41SET_DASHX:=:
42else
43SET_DASHX:=set -x
44endif
45
46CP=cp -fpR
47MAKEFLAGS=-j$(BR2_JLEVEL) V=$(V) $(EXTRA_MAKEFLAGS)
48# Strip off the annoying quoting
49ARCH:=$(strip $(subst ",, $(BR2_ARCH)))
50WGET:=$(strip $(subst ",, $(BR2_WGET)))
51GCC_VERSION:=$(strip $(subst ",, $(BR2_GCC_VERSION)))
52GCC_USE_SJLJ_EXCEPTIONS:=$(strip $(subst ",, $(BR2_GCC_USE_SJLJ_EXCEPTIONS)))
53TARGET_OPTIMIZATION:=$(strip $(subst ",, $(BR2_TARGET_OPTIMIZATION)))
54#"))"))"))"))")) # for vim's broken syntax highlighting :)
55
56
57ifeq ($(BR2_SOFT_FLOAT),y)
58# gcc 3.4.x soft float configuration is different than previous versions.
59ifeq ($(findstring 3.4.,$(GCC_VERSION)),3.4.)
60SOFT_FLOAT_CONFIG_OPTION:=--with-float=soft
61else
62SOFT_FLOAT_CONFIG_OPTION:=--without-float
63endif
64TARGET_SOFT_FLOAT:=-msoft-float
65ARCH_FPU_SUFFIX:=_nofpu
66else
67SOFT_FLOAT_CONFIG_OPTION:=
68TARGET_SOFT_FLOAT:=
69ARCH_FPU_SUFFIX:=
70endif
71
72
73ifeq ($(BR2_TAR_VERBOSITY),y)
74TAR_OPTIONS=-xvf
75else
76TAR_OPTIONS=-xf
77endif
78
79#ifeq ($(shell which pax 2>/dev/null),)
80TAR_EXTRACT= $(TOPDIR)/lbin/tar $(TAR_OPTIONS) -
81#else
82#TAR_EXTRACT= pax -r -pma
83#endif
84
85ifneq ($(BR2_LARGEFILE),y)
86DISABLE_LARGEFILE= --disable-largefile
87endif
88TARGET_CFLAGS:=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)
89
90OPTIMIZE_FOR_CPU=$(ARCH)
91BASE_DIR:=$(TOPDIR)
92DL_DIR:=$(BASE_DIR)/dl
93BUILD_DIR:=$(BASE_DIR)/build_$(ARCH)$(ARCH_FPU_SUFFIX)
94STAGING_DIR:=$(BASE_DIR)/staging_dir_$(ARCH)$(ARCH_FPU_SUFFIX)
95SCRIPT_DIR:=$(BASE_DIR)/scripts
96BIN_DIR:=$(BASE_DIR)/bin
97LBIN_DIR:=$(BASE_DIR)/lbin
98STAMP_DIR:=$(BUILD_DIR)/stamp
99PACKAGE_DIR:=$(BIN_DIR)/packages
100STAMP_DIR:=$(BUILD_DIR)/stamp
101TARGET_DIR:=$(BUILD_DIR)/root
102TOOL_BUILD_DIR=$(BASE_DIR)/toolchain_build_$(ARCH)$(ARCH_FPU_SUFFIX)
103TARGET_PATH=$(LBIN_DIR):$(STAGING_DIR)/usr/bin:$(STAGING_DIR)/bin:$(_PATH)
104IMAGE:=$(BUILD_DIR)/root_fs_$(ARCH)$(ARCH_FPU_SUFFIX)
105REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-uclibc
106GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
107KERNEL_CROSS:=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-
108TARGET_CROSS:=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-
109TARGET_CC:=$(TARGET_CROSS)gcc
110STRIP:=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-strip
111PATCH=$(SCRIPT_DIR)/patch-kernel.sh
112SED:=$(STAGING_DIR)/bin/sed -i -e
113LINUX_DIR:=$(BUILD_DIR)/linux
114LINUX_HEADERS_DIR:=$(TOOL_BUILD_DIR)/linux
115
116
117HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
118 -e 's/sparc.*/sparc/' \
119 -e 's/arm.*/arm/g' \
120 -e 's/m68k.*/m68k/' \
121 -e 's/ppc/powerpc/g' \
122 -e 's/v850.*/v850/g' \
123 -e 's/sh[234]/sh/' \
124 -e 's/mips-.*/mips/' \
125 -e 's/mipsel-.*/mipsel/' \
126 -e 's/cris.*/cris/' \
127 -e 's/i[3-9]86/i386/' \
128 )
129TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
130 AR=$(TARGET_CROSS)ar \
131 AS=$(TARGET_CROSS)as \
132 LD=$(TARGET_CROSS)ld \
133 NM=$(TARGET_CROSS)nm \
134 CC=$(TARGET_CROSS)gcc \
135 GCC=$(TARGET_CROSS)gcc \
136 CXX=$(TARGET_CROSS)g++ \
137 RANLIB=$(TARGET_CROSS)ranlib
138
139ifeq ($(ENABLE_LOCALE),true)
140DISABLE_NLS:=
141else
142DISABLE_NLS:=--disable-nls
143endif
144
145ifeq ($(BR2_ENABLE_MULTILIB),y)
146MULTILIB:=--enable-multilib
147endif
148
149# invoke ipkg-build with some default options
150IPKG_BUILD := PATH="$(TARGET_PATH)" ipkg-build -c -o 0 -g 0
151# where to build (and put) .ipk packages
152IPKG_TARGET_DIR := $(PACKAGE_DIR)
153IPKG:=IPKG_TMP=$(BUILD_DIR)/tmp IPKG_INSTROOT=$(TARGET_DIR) IPKG_CONF_DIR=$(STAGING_DIR)/etc IPKG_OFFLINE_ROOT=$(BUILD_DIR)/root $(SCRIPT_DIR)/ipkg -force-defaults -force-depends
154IPKG_STATE_DIR := $(TARGET_DIR)/usr/lib/ipkg
155
156RSTRIP:=STRIP="$(STRIP)" $(SCRIPT_DIR)/rstrip.sh
157RSTRIP_KMOD:=STRIP="$(TARGET_CROSS)strip --strip-unneeded --remove-section=.comment" $(SCRIPT_DIR)/rstrip.sh
158
159ifeq ($(BR2_LINUX_2_4_BRCM),y)
160UNAME_S:=Linux
161UNAME_R:=2.4.32
162UNAME_M:=mips
163#elifeq ...
164else
165$(error Unknown kernel configuration selected)
166endif
167export UNAME_S UNAME_R UNAME_M
Note: See TracBrowser for help on using the repository browser.