2 # Copyright (C) 2006-2014 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
9 include $(INCLUDE_DIR
)/kernel.mk
10 include $(INCLUDE_DIR
)/host.mk
11 include $(INCLUDE_DIR
)/version.mk
15 PKG_OS
:=$(word 2,$(subst -, ,$(shell $(HOSTCC
) -dumpmachine
)))
16 PKG_CPU
:=$(word 1,$(subst -, ,$(shell $(HOSTCC
) -dumpmachine
)))
18 SDK_NAME
:=OpenWrt-SDK-
$(if
$(CONFIG_VERSION_FILENAMES
),$(VERSION_NUMBER
)-)$(BOARD
)-for-
$(PKG_OS
)-$(PKG_CPU
)-gcc-
$(GCCV
)_
$(LIBC
)-$(LIBCV
)
19 SDK_BUILD_DIR
:=$(BUILD_DIR
)/$(SDK_NAME
)
21 STAGING_SUBDIR_HOST
:= staging_dir
/host
22 STAGING_SUBDIR_TARGET
:= staging_dir
/target-
$(ARCH
)$(ARCH_SUFFIX
)_
$(LIBC
)-$(LIBCV
)$(if
$(CONFIG_arm
),_eabi
)
23 STAGING_SUBDIR_TOOLCHAIN
:= staging_dir
/toolchain-
$(ARCH
)$(ARCH_SUFFIX
)_gcc-
$(GCCV
)_
$(LIBC
)-$(LIBCV
)$(if
$(CONFIG_arm
),_eabi
)
25 EXCLUDE_DIRS
:=*/ccache \
38 $(STAGING_SUBDIR_HOST
) \
39 $(STAGING_SUBDIR_TARGET
) \
40 $(STAGING_SUBDIR_TOOLCHAIN
)
42 BASE_FEED
:=$(shell git config
--get remote.
origin.url
2>/dev
/null | sed
-ne
's/^/src-git base /p')
43 BASE_FEED
:=$(if
$(BASE_FEED
),$(BASE_FEED
),$(shell cd
$(TOPDIR
); LC_ALL
=C git svn
info 2>/dev
/null | sed
-ne
's/^URL: /src-gitsvn base /p'))
44 BASE_FEED
:=$(if
$(BASE_FEED
),$(BASE_FEED
),$(shell cd
$(TOPDIR
); LC_ALL
=C svn
info 2>/dev
/null | sed
-ne
's/^URL: /src-svn base /p'))
46 KDIR_BASE
= $(patsubst $(TOPDIR
)/%,%,$(LINUX_DIR
))
58 KERNEL_FILES_BASE
:= \
64 $(addprefix arch
/$(LINUX_KARCH
)/,$(KERNEL_FILES_ARCH
))
66 KERNEL_FILES
:= $(patsubst $(TOPDIR
)/%,%,$(wildcard $(addprefix $(LINUX_DIR
)/,$(KERNEL_FILES_BASE
))))
70 $(BIN_DIR
)/$(SDK_NAME
).
tar.bz2
: clean
71 mkdir
-p
$(SDK_BUILD_DIR
)/dl
$(SDK_BUILD_DIR
)/package
72 $(CP
) $(INCLUDE_DIR
) $(SCRIPT_DIR
) $(TOPDIR
)/docs
$(SDK_BUILD_DIR
)/
73 $(TAR
) -cf
- -C
$(TOPDIR
) \
74 $(foreach exclude
,$(EXCLUDE_DIRS
),--exclude
="$(exclude)") \
75 $(SDK_DIRS
) $(KERNEL_FILES
) | \
76 $(TAR
) -xf
- -C
$(SDK_BUILD_DIR
)
80 $(SDK_BUILD_DIR
)/$(STAGING_SUBDIR_HOST
)/bin \
81 $(SDK_BUILD_DIR
)/$(STAGING_SUBDIR_HOST
)/usr
/bin \
82 $(SDK_BUILD_DIR
)/$(STAGING_SUBDIR_TOOLCHAIN
)/bin \
83 $(SDK_BUILD_DIR
)/$(STAGING_SUBDIR_TOOLCHAIN
)/*/bin \
84 $(SDK_BUILD_DIR
)/$(STAGING_SUBDIR_TOOLCHAIN
)/libexec \
87 $(SDK_BUILD_DIR
)/$(STAGING_SUBDIR_HOST
)/lib \
88 $(SDK_BUILD_DIR
)/$(STAGING_SUBDIR_HOST
)/usr
/lib \
89 -type f
-name \
*.so\
* -or
-name \
*.a
; \
90 ) | xargs
strip 2>/dev
/null
>/dev
/null
92 mkdir
-p
$(SDK_BUILD_DIR
)/target
/linux
93 $(CP
) $(GENERIC_PLATFORM_DIR
) $(PLATFORM_DIR
) $(SDK_BUILD_DIR
)/target
/linux
/
95 $(SDK_BUILD_DIR
)/target
/linux
/*/files
* \
96 $(SDK_BUILD_DIR
)/target
/linux
/*/patches
*
97 .
/convert-config.pl
$(TOPDIR
)/.config
> $(SDK_BUILD_DIR
)/Config-build.in
107 $(TOPDIR
)/package
/Makefile \
108 $(SDK_BUILD_DIR
)/package
/
110 -rm -f
$(SDK_BUILD_DIR
)/feeds.conf.default
111 $(if
$(BASE_FEED
),echo
"$(BASE_FEED)" > $(SDK_BUILD_DIR
)/feeds.conf.default
)
112 if
[ -f
$(TOPDIR
)/feeds.conf
]; then \
113 cat
$(TOPDIR
)/feeds.conf
>> $(SDK_BUILD_DIR
)/feeds.conf.default
; \
115 cat
$(TOPDIR
)/feeds.conf.default
>> $(SDK_BUILD_DIR
)/feeds.conf.default
; \
117 $(SED
) 's,^# REVISION:=.*,REVISION:=$(REVISION),g' $(SDK_BUILD_DIR
)/include/version.mk
118 $(SED
) '/LINUX_VERMAGIC:=/ { s,unknown,$(LINUX_VERMAGIC),g }' $(SDK_BUILD_DIR
)/include/kernel.mk
119 find
$(SDK_BUILD_DIR
) -name .git |
$(XARGS
) rm -rf
120 find
$(SDK_BUILD_DIR
) -name .svn |
$(XARGS
) rm -rf
121 find
$(SDK_BUILD_DIR
) -name CVS |
$(XARGS
) rm -rf
123 tar cfj
$@
$(SDK_NAME
); \
128 compile
: $(BIN_DIR
)/$(SDK_NAME
).
tar.bz2
132 rm -rf
$(SDK_BUILD_DIR
) $(BIN_DIR
)/$(SDK_NAME
).
tar.bz2