source: freewrt/rules.mk@ 2029b2e

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

almost entirely revert r296
more "cleanup after wbx" follows, after discussion in IRC

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

  • Property mode set to 100644
File size: 4.0 KB
Line 
1# $FreeWRT$
2
3include $(TOPDIR)/lbin/prereq.mk
4include $(TOPDIR)/.config
5
6ifeq ($(V),)
7V=5
8endif
9
10
11ifneq ($(V),0)
12TRACE:=echo "---> "
13START_TRACE:=echo -n "---> "
14END_TRACE:=echo
15else
16START_TRACE:=:
17END_TRACE:=:
18TRACE:=:
19endif
20
21ifeq (${shell [ "$(V)" -ge 5 ] && echo 1},)
22CMD_TRACE:=:
23PKG_TRACE:=:
24else
25CMD_TRACE:=echo -n
26PKG_TRACE:=echo "------> "
27endif
28
29ifeq (${shell [ "$(V)" -ge 10 ] && echo 1},)
30EXTRA_MAKEFLAGS:=-s
31MAKE_TRACE:=>/dev/null 2>&1 || { echo "Build failed. Please re-run make with V=99 to see what's going on"; false; }
32else
33MAKE_TRACE:=
34EXTRA_MAKEFLAGS:=
35TRACE:=:
36PKG_TRACE:=:
37CMD_TRACE:=:
38START_TRACE:=:
39END_TRACE:=:
40endif
41
42ifeq (${shell [ "$(V)" -ge 90 ] && echo 1},)
43SET_DASHX:=:
44else
45SET_DASHX:=set -x
46endif
47
48CP=cp -fpR
49INSTALL_DIR=install -d -m0755
50INSTALL_DATA=install -m0644
51INSTALL_BIN=install -m0755
52MAKEFLAGS=-j$(BR2_JLEVEL) V=$(V) $(EXTRA_MAKEFLAGS)
53# Strip off the annoying quoting
54ARCH:=$(strip $(subst ",, $(BR2_ARCH)))
55WGET:=$(strip $(subst ",, $(BR2_WGET)))
56TARGET_OPTIMIZATION:=$(strip $(subst ",, $(BR2_TARGET_OPTIMIZATION)))
57#"))"))"))"))")) # for vim's broken syntax highlighting :)
58
59TAR_OPTIONS= -xf
60TAR_EXTRACT= ${TOPDIR}/lbin/tar ${TAR_OPTIONS} -
61
62TARGET_CFLAGS:=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)
63OPTIMIZE_FOR_CPU=$(ARCH)
64
65BASE_DIR:=$(TOPDIR)
66DL_DIR:=$(BASE_DIR)/dl
67BUILD_DIR:=$(BASE_DIR)/build_$(ARCH)$(ARCH_FPU_SUFFIX)
68STAGING_DIR:=$(BASE_DIR)/staging_dir_$(ARCH)$(ARCH_FPU_SUFFIX)
69TOOLCHAIN_BUILD_DIR=$(BASE_DIR)/toolchain_build_$(ARCH)$(ARCH_FPU_SUFFIX)
70TOOLCHAIN_STAMP_DIR:=$(STAGING_DIR)/stamp
71TOOLS_DIR=$(BASE_DIR)/tools
72TOOLS_BUILD_DIR=$(BASE_DIR)/tools_build
73TOOLS_STAMP_DIR:=$(STAGING_DIR)/stamp
74SCRIPT_DIR:=$(BASE_DIR)/scripts
75BIN_DIR:=$(BASE_DIR)/bin
76LBIN_DIR:=$(BASE_DIR)/lbin
77PACKAGE_DIR:=$(BIN_DIR)/packages
78STAMP_DIR:=$(BUILD_DIR)/stamp
79TARGET_DIR:=$(BUILD_DIR)/root
80TARGET_PATH=$(LBIN_DIR):$(STAGING_DIR)/usr/bin:$(STAGING_DIR)/bin:$(_PATH)
81IMAGE:=$(BUILD_DIR)/root_fs_$(ARCH)$(ARCH_FPU_SUFFIX)
82REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-uclibc
83GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
84KERNEL_CROSS:=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-
85TARGET_CROSS:=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-
86TARGET_CC:=$(TARGET_CROSS)gcc
87STRIP:=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-strip
88PATCH=$(SCRIPT_DIR)/patch-kernel.sh
89SED:=$(STAGING_DIR)/bin/sed -i -e
90LINUX_DIR:=$(BUILD_DIR)/linux
91LINUX_HEADERS_DIR:=$(TOOLCHAIN_BUILD_DIR)/linux
92
93
94HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
95 -e 's/sparc.*/sparc/' \
96 -e 's/arm.*/arm/g' \
97 -e 's/m68k.*/m68k/' \
98 -e 's/ppc/powerpc/g' \
99 -e 's/v850.*/v850/g' \
100 -e 's/sh[234]/sh/' \
101 -e 's/mips-.*/mips/' \
102 -e 's/mipsel-.*/mipsel/' \
103 -e 's/cris.*/cris/' \
104 -e 's/i[3-9]86/i386/' \
105 )
106
107TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
108 AR=$(TARGET_CROSS)ar \
109 AS=$(TARGET_CROSS)as \
110 LD=$(TARGET_CROSS)ld \
111 NM=$(TARGET_CROSS)nm \
112 CC=$(TARGET_CROSS)gcc \
113 GCC=$(TARGET_CROSS)gcc \
114 CXX=$(TARGET_CROSS)g++ \
115 RANLIB=$(TARGET_CROSS)ranlib
116
117# invoke ipkg-build with some default options
118IPKG_BUILD := PATH="$(TARGET_PATH)" ipkg-build -c -o 0 -g 0
119# where to build (and put) .ipk packages
120IPKG_TARGET_DIR := $(PACKAGE_DIR)
121IPKG:=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
122IPKG_STATE_DIR := $(TARGET_DIR)/usr/lib/ipkg
123
124RSTRIP:=STRIP="$(STRIP)" $(SCRIPT_DIR)/rstrip.sh
125RSTRIP_KMOD:=STRIP="$(TARGET_CROSS)strip --strip-unneeded --remove-section=.comment" $(SCRIPT_DIR)/rstrip.sh
126
127UNAME_S:=Linux
128UNAME_R:=2.4.32
129UNAME_M:=mips
130
131export UNAME_S UNAME_R UNAME_M
132
133EXTRACT_CMD= mkdir -p ${WRKDIR}; \
134 cd ${WRKDIR} && \
135 for file in ${DISTFILES}; do \
136 case $$file in \
137 *.cpio | *.tar) \
138 cpio -mid <$$file ;; \
139 *.cpio.Z | *.cpio.gz | *.cgz | *.mcz | \
140 *.tar.Z | *.tar.gz | *.taz | *.tgz) \
141 gzip -dc $$file | cpio -mid ;; \
142 *.cpio.bz2 | *.cbz | *.tar.bz2 | *.tbz | *.tbz2) \
143 bzip2 -dc $$file | cpio -mid ;; \
144 *.zip) \
145 unzip -d ${WRKDIR} $$file ;; \
146 esac; \
147 done
Note: See TracBrowser for help on using the repository browser.