source: freewrt/rules.mk@ f6c2f97

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

export kernel version and arch for target

git-svn-id: svn://www.freewrt.org/trunk/freewrt@140 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
112ifeq ($(shell [[ "$(OStype)" = *BSD ]] && echo 1),)
113SED:=$(STAGING_DIR)/bin/sed -i -e
114else
115SED:=$(TOPDIR)/lbin/sed -i -e
116endif
117LINUX_DIR:=$(BUILD_DIR)/linux
118LINUX_HEADERS_DIR:=$(TOOL_BUILD_DIR)/linux
119
120
121HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
122 -e 's/sparc.*/sparc/' \
123 -e 's/arm.*/arm/g' \
124 -e 's/m68k.*/m68k/' \
125 -e 's/ppc/powerpc/g' \
126 -e 's/v850.*/v850/g' \
127 -e 's/sh[234]/sh/' \
128 -e 's/mips-.*/mips/' \
129 -e 's/mipsel-.*/mipsel/' \
130 -e 's/cris.*/cris/' \
131 -e 's/i[3-9]86/i386/' \
132 )
133TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
134 AR=$(TARGET_CROSS)ar \
135 AS=$(TARGET_CROSS)as \
136 LD=$(TARGET_CROSS)ld \
137 NM=$(TARGET_CROSS)nm \
138 CC=$(TARGET_CROSS)gcc \
139 GCC=$(TARGET_CROSS)gcc \
140 CXX=$(TARGET_CROSS)g++ \
141 RANLIB=$(TARGET_CROSS)ranlib
142
143ifeq ($(ENABLE_LOCALE),true)
144DISABLE_NLS:=
145else
146DISABLE_NLS:=--disable-nls
147endif
148
149ifeq ($(BR2_ENABLE_MULTILIB),y)
150MULTILIB:=--enable-multilib
151endif
152
153# invoke ipkg-build with some default options
154IPKG_BUILD := PATH="$(TARGET_PATH)" ipkg-build -c -o 0 -g 0
155# where to build (and put) .ipk packages
156IPKG_TARGET_DIR := $(PACKAGE_DIR)
157IPKG:=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
158IPKG_STATE_DIR := $(TARGET_DIR)/usr/lib/ipkg
159
160RSTRIP:=STRIP="$(STRIP)" $(SCRIPT_DIR)/rstrip.sh
161RSTRIP_KMOD:=STRIP="$(TARGET_CROSS)strip --strip-unneeded --remove-section=.comment" $(SCRIPT_DIR)/rstrip.sh
162
163ifeq ($(BR2_LINUX_2_4_BRCM),y)
164UNAME_S:=Linux
165UNAME_R:=2.4.32
166UNAME_M:=mips
167#elifeq ...
168else
169$(error Unknown kernel configuration selected)
170endif
Note: See TracBrowser for help on using the repository browser.