Makefile.in.advanced 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534
  1. ###############################################################################
  2. #
  3. # Linux kernel 2.6 target (Advanced configuration)
  4. #
  5. ###############################################################################
  6. ifneq ($(filter $(TARGETS),linux26),)
  7. # -----------------------------------------------------------------------------
  8. # Make sure LINUX_HEADERS_VERSION is defined
  9. ifeq ($(LINUX_HEADERS_VERSION),)
  10. # We did not have headers (this is for real???)
  11. LINUX_HEADERS_VERSION:=2.6.22.1
  12. endif
  13. # -----------------------------------------------------------------------------
  14. # STRATEGY FOR DOWNLOAD_LINUX26_VERSION
  15. # 1. Use definition from user Makefile
  16. # 2. Use definition from Kconfig
  17. # 3. Use Linux Headers version
  18. # 4. Use default (2.6.22.1)
  19. ifeq ($(DOWNLOAD_LINUX26_VERSION),)
  20. ifneq ($(BR2_DOWNLOAD_LINUX26_VERSION),)
  21. DOWNLOAD_LINUX26_VERSION:=$(call qstrip,$(BR2_DOWNLOAD_LINUX26_VERSION))
  22. else
  23. DOWNLOAD_LINUX26_VERSION:=$(LINUX_HEADERS_VERSION)
  24. endif
  25. endif
  26. # -----------------------------------------------------------------------------
  27. # STRATEGY FOR LINUX26_VERSION
  28. # 1. Use definition from user Makefile
  29. # 2. Use definition from Kconfig
  30. # 3. Use Linux Headers version
  31. # 4. Use default (2.6.22.1)
  32. ifeq ($(LINUX26_VERSION),)
  33. ifneq ($(BR2_LINUX26_VERSION),)
  34. LINUX26_VERSION:=$(call qstrip,$(BR2_LINUX26_VERSION))
  35. else
  36. LINUX26_VERSION:=$(LINUX_HEADERS_VERSION)
  37. endif
  38. endif
  39. # Ask the kernel what version number it will use when installing modules
  40. LINUX26_VERSION_PROBED = `$(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) --no-print-directory -s kernelrelease`
  41. ifeq ($(BOARD_PATH),)
  42. BOARD_PATH:=$(call qstrip,$(BR2_BOARD_PATH))
  43. endif
  44. # Version of Linux AFTER patches
  45. LINUX26_DIR:=$(BUILD_DIR)/linux-$(LINUX26_VERSION)
  46. # for packages that need it
  47. LINUX_VERSION:=$(LINUX26_VERSION)
  48. LINUX_DIR:=$(LINUX26_DIR)
  49. # -----------------------------------------------------------------------------
  50. # Define source name and sites
  51. LINUX26_SOURCE:=linux-$(DOWNLOAD_LINUX26_VERSION).tar.bz2
  52. LINUX26_SITE:=$(call qstrip,$(BR2_KERNEL_SITE))
  53. LINUX26_PATCH_SOURCE:=$(call qstrip,$(BR2_KERNEL_PATCH))
  54. LINUX26_PATCH_SITE:=$(call qstrip,$(BR2_KERNEL_PATCH_SITE))
  55. LINUX26_BSP_PATCH:=$(call qstrip,$(BR2_LINUX_BSP_PATCH))
  56. ifneq ($(LINUX26_BSP_PATCH),)
  57. LINUX_HEADERS_DEPENDS:= $(DL_DIR)/$(LINUX26_BSP_PATCH)
  58. endif
  59. ifneq ($(LINUX26_PATCH_SOURCE),)
  60. LINUX_HEADERS_DEPENDS+=$(DL_DIR)/$(LINUX26_PATCH_SOURCE)
  61. endif
  62. # ------------------------------------
  63. # kernel patches provided by buildroot
  64. ifeq ($(strip $(LINUX26_PATCH_DIR)),)
  65. LINUX26_PATCH_DIR:=$(BOARD_PATH)/kernel-patches/
  66. endif
  67. # kernel architecture patches provided by buildroot
  68. KERNEL_ARCH_PATCH_DIR:=$(call qstrip,$(BR2_KERNEL_ARCH_PATCH_DIR))
  69. # -----------------------------------------------------------------------------
  70. # Linux kernel configuration file
  71. # This is used if BR2_PACKAGE_LINUX_USE_KCONFIG is set
  72. # Has to be set by the target/device
  73. # If it is not set by the target/device, then pick the one from .config
  74. ifndef LINUX26_KCONFIG
  75. ifneq ($(call qstrip,$(BR2_PACKAGE_LINUX_KCONFIG)),)
  76. LINUX26_KCONFIG:=$(call qstrip,$(BR2_PACKAGE_LINUX_KCONFIG))
  77. else
  78. ifeq ($(BR2_i386),y)
  79. LINUX26_KCONFIG:=$(BOARD_PATH)/linux26.config
  80. else
  81. LINUX26_KCONFIG:=$(BOARD_PATH)/linux-$(LINUX26_VERSION).config
  82. endif
  83. endif
  84. endif
  85. KERNEL_CONFIG_METHOD:=$(call qstrip,$(BR2_KERNEL_CONFIG_METHOD))
  86. ifeq ($(KERNEL_CONFIG_METHOD),)
  87. KERNEL_CONFIG_METHOD:=menuconfig
  88. endif
  89. # -----------------------------------------------------------------------------
  90. ifndef LINUX26_FORMAT
  91. ifneq ($(call qstrip,$(BR2_PACKAGE_LINUX_FORMAT)),)
  92. LINUX26_FORMAT:=$(call qstrip,$(BR2_PACKAGE_LINUX_FORMAT))
  93. else
  94. LINUX26_FORMAT:=zImage
  95. endif
  96. endif
  97. # -----------------------------------------------------------------------------
  98. # Has to be set by the target/device
  99. LINUX26_MKIMAGE_DIR:=
  100. LINUX26_MKIMAGE_DEP:=
  101. # --------------
  102. # VMLINUX
  103. ifeq ($(LINUX26_FORMAT),vmlinux)
  104. ifeq ($(LINUX26_BINLOC),)
  105. LINUX26_BINLOC:=$(LINUX26_FORMAT)
  106. endif
  107. endif
  108. # --------------
  109. # UIMAGE
  110. ifeq ($(LINUX26_FORMAT),uImage)
  111. LINUX26_MKIMAGE_DIR:=$(BUILD_DIR)/u-boot-tools
  112. LINUX26_MKIMAGE_DEP:=$(LINUX26_MKIMAGE_DIR)/mkimage
  113. ifeq ($(LINUX26_BINLOC),)
  114. LINUX26_BINLOC:=arch/$(KERNEL_ARCH)/boot/$(LINUX26_FORMAT)
  115. endif
  116. endif
  117. # --------------
  118. # ZIMAGE
  119. ifeq ($(LINUX26_FORMAT),zImage)
  120. ifeq ($(LINUX26_BINLOC),)
  121. LINUX26_BINLOC:=arch/$(KERNEL_ARCH)/boot/$(LINUX26_FORMAT)
  122. endif
  123. endif
  124. # --------------
  125. # BZIMAGE
  126. ifeq ($(LINUX26_FORMAT),bzImage)
  127. ifeq ($(LINUX26_BINLOC),)
  128. LINUX26_BINLOC:=arch/$(KERNEL_ARCH)/boot/bzImage
  129. endif
  130. endif
  131. ROOTFS_STRIPPED_SUFFIX=$(call qstrip,$(ROOTFS_SUFFIX))
  132. # -----------------------------------------------------------------------------
  133. # File name for the Linux kernel binary
  134. LINUX26_KERNEL_NAME:=$(LINUX26_FORMAT)$(ROOTFS_STRIPPED_SUFFIX)
  135. ifeq ($(BOARD_NAME),)
  136. BOARD_NAME=$(ARCH)
  137. endif
  138. ifndef LINUX26_KERNEL
  139. LINUX26_KERNEL:=$(BINARIES_DIR)/$(LINUX26_KERNEL_NAME)
  140. endif
  141. # for packages that need it
  142. LINUX_KERNEL:=$(LINUX26_KERNEL)
  143. # -----------------------------------------------------------------------------
  144. LINUX26_BZCAT:=$(BZCAT)
  145. LINUX26_MAKE_FLAGS = HOSTCC="$(HOSTCC)" HOSTCFLAGS="$(HOSTCFLAGS)" \
  146. ARCH=$(KERNEL_ARCH) \
  147. INSTALL_MOD_PATH=$(TARGET_DIR) \
  148. CROSS_COMPILE=$(KERNEL_CROSS) \
  149. LDFLAGS="$(TARGET_LDFLAGS)" \
  150. LZMA="$(LZMA)" \
  151. PATH=$(LINUX26_MKIMAGE_DIR):$(PATH)
  152. # =============================================================================
  153. # ifneq ($(strip $(LINUX26_VERSION)),$(strip $(LINUX_HEADERS_VERSION)))
  154. ifneq ($(strip $(LINUX26_SOURCE)),$(strip $(LINUX_HEADERS_SOURCE)))
  155. $(DL_DIR)/$(LINUX26_SOURCE):
  156. $(call DOWNLOAD,$(LINUX26_SITE),$(LINUX26_SOURCE))
  157. endif # ($(LINUX26_VERSION),$(LINUX_HEADERS_VERSION))
  158. ifneq ($(strip $(LINUX26_PATCH_SOURCE)),)
  159. $(DL_DIR)/$(LINUX26_PATCH_SOURCE):
  160. $(call DOWNLOAD,$(LINUX26_PATCH_SITE),$(LINUX26_PATCH_SOURCE))
  161. endif
  162. $(LINUX26_DIR)/.unpacked: $(DL_DIR)/$(LINUX26_SOURCE)
  163. rm -rf $(LINUX26_DIR)
  164. @echo "*** Unpacking kernel source"
  165. $(LINUX26_BZCAT) $(DL_DIR)/$(LINUX26_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
  166. ifneq ($(DOWNLOAD_LINUX26_VERSION),$(LINUX26_VERSION))
  167. # Rename the dir from the downloaded version to the AFTER patch version
  168. mv -f $(BUILD_DIR)/linux-$(DOWNLOAD_LINUX26_VERSION) $(LINUX26_DIR)
  169. echo $(LINUX26_VERSION_PROBED) > $(BUILD_DIR)/.linux-version
  170. endif
  171. touch $@
  172. # -----------------------------------------------------------------------------
  173. LINUX26_TARGETS+=$(LINUX26_KERNEL) $(BUILD_DIR)/.linux-version
  174. ifeq ($(BR2_LINUX_COPYTO_ROOTFS),y)
  175. LINUX26_TARGETS+=$(TARGET_DIR)/boot/$(LINUX26_KERNEL_NAME)
  176. endif
  177. ifeq ($(BR2_LINUX_COPYTO_TFTPBOOT),y)
  178. LINUX26_TARGETS+=/tftpboot/$(LINUX26_KERNEL_NAME)
  179. endif
  180. ifneq ($(call qstrip,$(BR2_LINUX_COPYTO)),)
  181. LINUX_COPYTO:=$(call qstrip,$(BR2_LINUX_COPYTO))
  182. LINUX26_TARGETS+=$(LINUX_COPYTO)/$(LINUX26_KERNEL_NAME)
  183. endif
  184. ifneq ($(BR2_LINUX_COPY_CONFIGURATION),)
  185. LINUX26_TARGETS+=$(TARGET_DIR)/boot/buildroot.config
  186. LINUX26_TARGETS+=$(TARGET_DIR)/boot/linux-$(LINUX26_VERSION).config
  187. LINUX26_TARGETS+=$(TARGET_DIR)/boot/uclibc.config
  188. ifeq ($(BR2_PACKAGE_BUSYBOX),y)
  189. LINUX26_TARGETS+=$(TARGET_DIR)/boot/busybox.config
  190. endif
  191. endif
  192. # -----------------------------------------------------------------------------
  193. $(LINUX26_DIR)/.patched: $(LINUX26_DIR)/.unpacked $(LINUX_HEADERS_DEPENDS)
  194. ifneq ($(LINUX26_PATCH_SOURCE),)
  195. toolchain/patch-kernel.sh $(LINUX26_DIR) $(DL_DIR) $(LINUX26_PATCH_SOURCE)
  196. endif
  197. ifneq ($(LINUX26_BSP_PATCH),)
  198. toolchain/patch-kernel.sh $(LINUX26_DIR) $(DL_DIR) $(LINUX26_BSP_PATCH)
  199. endif
  200. toolchain/patch-kernel.sh $(LINUX26_DIR) toolchain/kernel-headers \
  201. linux-$(LINUX26_VERSION)-\*.patch{,.gz,.bz2}
  202. ifeq ($(BR2_KERNEL_HEADERS_RT),y)
  203. toolchain/patch-kernel.sh $(LINUX26_DIR) $(DL_DIR) $(LINUX_RT_SOURCE)
  204. endif
  205. ifneq ($(KERNEL_HEADERS_PATCH_DIR),)
  206. toolchain/patch-kernel.sh $(LINUX26_DIR) $(KERNEL_HEADERS_PATCH_DIR) \
  207. linux-$(LINUX26_VERSION)\*.patch{,.gz,.bz2}
  208. endif
  209. ifeq ($(BR2_PACKAGE_OPENSWAN),y)
  210. toolchain/patch-kernel.sh $(LINUX26_DIR) package/openswan \
  211. linux-$(LINUX26_VERSION)\*.patch{,.gz,.bz2}
  212. endif
  213. touch $@
  214. $(LINUX26_DIR)/.patched.arch: $(LINUX26_DIR)/.patched
  215. ifneq ($(BR2_KERNEL_ARCH_PATCH_DIR),)
  216. if [ -d $(KERNEL_ARCH_PATCH_DIR) ] ; then \
  217. toolchain/patch-kernel.sh $(LINUX26_DIR) $(KERNEL_ARCH_PATCH_DIR) \
  218. linux-\*.patch{,.gz,.bz2} ; \
  219. fi
  220. endif
  221. touch $@
  222. $(LINUX26_DIR)/.patched.board: $(LINUX26_DIR)/.patched.arch $(KERNEL_COND_PATCHES)
  223. ifneq ($(LINUX26_PATCH_DIR),)
  224. if [ -d $(LINUX26_PATCH_DIR) ] ; then \
  225. toolchain/patch-kernel.sh $(LINUX26_DIR) $(LINUX26_PATCH_DIR) \
  226. linux-$(LINUX26_VERSION)\*.patch{,.gz,.bz2} ; \
  227. fi
  228. endif
  229. touch $@
  230. # =============================================================================
  231. linux_patch: $(LINUX26_DIR)/.patched.board
  232. KERNEL_EXTRA_VERSION:=$(call qstrip,$(BR2_EXTRA_VERSION))
  233. lxcf: $(LINUX26_DIR)/.config
  234. $(LINUX26_DIR)/.config: $(LINUX26_DIR)/.patched.board
  235. ifeq ($(BR2_PACKAGE_LINUX_USE_DEFCONFIG),y)
  236. $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) $(BOARD_NAME)_defconfig
  237. endif
  238. ifeq ($(BR2_PACKAGE_LINUX_USE_XCONFIG),y)
  239. ifeq ($(KERNEL_CONFIG_METHOD),xconfig)
  240. $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) xconfig || \
  241. $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) menuconfig \
  242. else
  243. $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) menuconfig
  244. endif
  245. endif
  246. ifeq ($(BR2_PACKAGE_LINUX_USE_KCONFIG),y)
  247. # Try user defined config
  248. if [ -f "$(LINUX26_KCONFIG)" ] ; then \
  249. cp -dpf $(LINUX26_KCONFIG) $@ ; \
  250. fi
  251. # Try to get a config for this linux version in the board directory
  252. echo "LINUX26_VERSION = $(LINUX26_VERSION)"
  253. if [ ! -f "$(LINUX26_DIR)/.config" ] ; then \
  254. if [ -f "$(BOARD_PATH)/$(BOARD_NAME)-linux-$(LINUX26_VERSION).config" ] ; then \
  255. cp -dpf $(BOARD_PATH)/$(BOARD_NAME)-linux-$(LINUX26_VERSION).config $@ ; \
  256. fi ; \
  257. fi
  258. # Try to get a config for latest linux version in the board directory
  259. if [ ! -f "$(LINUX26_DIR)/.config" ] ; then \
  260. scripts/get_linux_config.sh $(BOARD_PATH) $(LINUX26_DIR) ; \
  261. fi
  262. # Use a board config defined in the linux source.
  263. if [ ! -f "$(LINUX26_DIR)/.config" ] ; then \
  264. $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) $(BOARD_NAME)_defconfig || \
  265. echo "$(BOARD_NAME)_defconfig failed..." ; \
  266. fi
  267. # let the user create his/her own config
  268. if [ ! -f "$(LINUX26_DIR)/.config" ] ; then \
  269. $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) $(KERNEL_CONFIG_METHOD) ; \
  270. fi
  271. endif
  272. ifneq ($(call qstrip,$(BR2_EXTRA_VERSION)),)
  273. $(SED) 's,^EXTRAVERSION.*,EXTRAVERSION = $(KERNEL_EXTRA_VERSION),g' $(LINUX26_DIR)/Makefile
  274. endif
  275. # $(strip $(subst ",, - ))
  276. # -----------------------------------------------------------------------------
  277. $(LINUX26_DIR)/.configured: $(LINUX26_DIR)/.config
  278. $(SED) '/CONFIG_AEABI=y/d' $(LINUX26_DIR)/.config
  279. ifeq ($(BR2_ARM_EABI),y)
  280. echo "CONFIG_AEABI=y" >> $(LINUX26_DIR)/.config
  281. $(SED) '/CONFIG_OABI_COMPAT/d' $(LINUX26_DIR)/.config
  282. echo "# CONFIG_OABI_COMPAT is not set" >> $(LINUX26_DIR)/.config
  283. else
  284. echo "# CONFIG_AEABI is not set" >> $(LINUX26_DIR)/.config
  285. endif
  286. $(SED) '/CONFIG_IPV6=y/d' $(LINUX26_DIR)/.config
  287. ifeq ($(BR2_INET_IPV6),y)
  288. echo "CONFIG_IPV6=y" >> $(LINUX26_DIR)/.config
  289. else
  290. echo "# CONFIG_IPV6 is not set" >> $(LINUX26_DIR)/.config
  291. endif
  292. $(SED) '/CONFIG_INITRAMFS_SOURCE/d' $(LINUX26_DIR)/.config
  293. $(SED) '/INITRAMFS_ROOT_.ID/d' $(LINUX26_DIR)/.config
  294. ifeq ($(BR2_TARGET_ROOTFS_INITRAMFS),y)
  295. echo "CONFIG_INITRAMFS_SOURCE=\"$(BINARIES_DIR)/rootfs.initramfs\"" >> \
  296. $(LINUX26_DIR)/.config
  297. echo "CONFIG_INITRAMFS_ROOT_UID=0" >> $(LINUX26_DIR)/.config
  298. echo "CONFIG_INITRAMFS_ROOT_GID=0" >> $(LINUX26_DIR)/.config
  299. else
  300. echo "CONFIG_INITRAMFS_SOURCE=\"\"" >> $(LINUX26_DIR)/.config
  301. endif
  302. ifeq ($(BR2_PACKAGE_BUSYBOX_INITRAMFS),y)
  303. # precedence for a small initramfs
  304. $(SED) '/CONFIG_INITRAMFS_SOURCE/d' $(LINUX26_DIR)/.config
  305. $(SED) '/INITRAMFS_ROOT_.ID/d' $(LINUX26_DIR)/.config
  306. echo "CONFIG_INITRAMFS_SOURCE=\"$(BB_INITRAMFS_TARGET)\"" >> \
  307. $(LINUX26_DIR)/.config
  308. echo "CONFIG_INITRAMFS_ROOT_UID=0" >> $(LINUX26_DIR)/.config
  309. echo "CONFIG_INITRAMFS_ROOT_GID=0" >> $(LINUX26_DIR)/.config
  310. endif
  311. $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) oldconfig
  312. touch $@
  313. # -----------------------------------------------------------------------------
  314. $(LINUX26_DIR)/.depend_done: $(LINUX26_DIR)/.configured $(LINUX26_MKIMAGE_DEP)
  315. mkdir -p $(TARGET_DIR)/boot
  316. -mv $(LINUX26_DIR)/localversion* $(TARGET_DIR)/boot
  317. $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) prepare
  318. touch $@
  319. $(LINUX26_DIR)/$(LINUX26_BINLOC): $(INITRAMFS_TARGET) $(BB_INITRAMFS_TARGET) \
  320. $(LINUX26_DIR)/.depend_done
  321. $(MAKE) $(LINUX26_MAKE_FLAGS) \
  322. -C $(LINUX26_DIR) $(LINUX26_FORMAT)
  323. touch $@
  324. $(LINUX26_KERNEL): $(LINUX26_DIR)/$(LINUX26_BINLOC)
  325. cp -pf $(LINUX26_DIR)/$(LINUX26_BINLOC) $(LINUX26_KERNEL)
  326. touch $@
  327. # -----------------------------------------------------------------------------
  328. $(STAMP_DIR)/linux_modules_target_installed: $(LINUX26_DIR)/.depend_done
  329. rm -rf $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)
  330. rm -f $(TARGET_DIR)/sbin/cardmgr
  331. # Make Linux depend on modules only if enabled in the .config.
  332. @if [ $(shell grep -c "CONFIG_MODULES=y" $(LINUX26_DIR)/.config) != 0 ] ; then \
  333. echo "*** Installing Linux kernel modules" ; \
  334. $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) modules; \
  335. $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) \
  336. DEPMOD=$(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 \
  337. INSTALL_MOD_PATH=$(TARGET_DIR) modules_install; \
  338. rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/build; \
  339. rm -f $(TARGET_DIR)/lib/modules/$(LINUX26_VERSION_PROBED)/source; \
  340. $(STAGING_DIR)/bin/$(GNU_TARGET_NAME)-depmod26 -b $(TARGET_DIR) $(LINUX26_VERSION_PROBED); \
  341. else \
  342. echo "*** Skipping installing modules since it is not enabled" ; \
  343. fi
  344. touch $@
  345. linux26-menuconfig: $(LINUX26_DIR)/.patched host-sed
  346. [ -f $(LINUX26_DIR)/.config ] || cp $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config
  347. $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) menuconfig
  348. -[ -f $(LINUX26_DIR)/.config ] && touch $(LINUX26_DIR)/.configured
  349. linux26-xconfig: $(LINUX26_DIR)/.patched host-sed
  350. [ -f $(LINUX26_DIR)/.config ] || cp $(LINUX26_KCONFIG) $(LINUX26_DIR)/.config
  351. $(MAKE) $(LINUX26_MAKE_FLAGS) -C $(LINUX26_DIR) xconfig
  352. -[ -f $(LINUX26_DIR)/.config ] && touch $(LINUX26_DIR)/.configured
  353. $(TARGET_DIR)/boot/$(LINUX26_KERNEL_NAME): $(LINUX26_KERNEL)
  354. mkdir -p $(TARGET_DIR)/boot
  355. cp -dpf $(LINUX26_KERNEL) $(TARGET_DIR)/boot/$(LINUX26_KERNEL_NAME)
  356. $(TARGET_DIR)/boot/buildroot.config: .config
  357. mkdir -p $(TARGET_DIR)/boot
  358. cp -dpf .config $(TARGET_DIR)/boot/buildroot.config
  359. $(TARGET_DIR)/boot/linux-$(LINUX26_VERSION).config: $(LINUX26_DIR)/.config
  360. mkdir -p $(TARGET_DIR)/boot
  361. cp -dpf $(LINUX26_DIR)/.config $(TARGET_DIR)/boot/linux-$(LINUX26_VERSION).config
  362. $(TARGET_DIR)/boot/uclibc.config: $(UCLIBC_DIR)/.config
  363. mkdir -p $(TARGET_DIR)/boot
  364. cp -dpf $(UCLIBC_DIR)/.config $(TARGET_DIR)/boot/uclibc.config
  365. $(TARGET_DIR)/boot/busybox.config: $(BUSYBOX_DIR)/.config
  366. mkdir -p $(TARGET_DIR)/boot
  367. cp -dpf $(BUSYBOX_DIR)/.config $(TARGET_DIR)/boot/busybox.config
  368. /tftpboot/$(LINUX26_KERNEL_NAME): $(LINUX26_KERNEL)
  369. -mkdir -p /tftpboot
  370. -cp -dpf $(LINUX26_KERNEL) $@
  371. -touch $@
  372. ifneq ($(LINUX_COPYTO),/tftpboot)
  373. $(LINUX_COPYTO)/$(LINUX26_KERNEL_NAME): $(LINUX26_KERNEL)
  374. mkdir -p $(LINUX_COPYTO)
  375. cp -dpf $(LINUX26_KERNEL) $@
  376. touch $@
  377. endif
  378. $(BUILD_DIR)/.linux-version: $(LINUX26_KERNEL)
  379. echo $(LINUX26_VERSION_PROBED) > $(BUILD_DIR)/.linux-version
  380. echo LINUX_MODULES=`$(LINUX26_VERSION_PROBED)`
  381. $(LINUX26_MKIMAGE_DIR)/mkimage: $(U_BOOT_TOOLS)
  382. mkdir -p $(LINUX26_MKIMAGE_DIR)
  383. cp $(MKIMAGE) $(LINUX26_MKIMAGE_DIR)
  384. linux26: $(LINUX26_TARGETS)
  385. linux26-version: $(BUILD_DIR)/.linux-version
  386. linux26-modules: cross-depmod26 $(STAMP_DIR)/linux_modules_target_installed
  387. linux26-source: $(DL_DIR)/$(LINUX26_SOURCE)
  388. linux26-unpacked: $(LINUX26_DIR)/.patched
  389. linux26-config: host-sed $(LINUX26_DIR)/.configured
  390. linux26-update:
  391. cp -dpf $(LINUX26_DIR)/.config $(LINUX26_KCONFIG)
  392. # force rebuild
  393. linux26-force:
  394. touch $(LINUX26_DIR)/.configured
  395. # This has been renamed so we do _NOT_ by default run this on 'make clean'
  396. linux26clean:
  397. rm -f $(STAMP_DIR)/linux_modules_target_installed
  398. rm -f $(LINUX26_KERNEL) $(LINUX26_DIR)/.configured
  399. -$(MAKE) PATH=$(TARGET_PATH) -C $(LINUX26_DIR) clean
  400. linux26-dirclean:
  401. rm -rf $(LINUX26_DIR)
  402. linux26-status: linux-status
  403. # @echo =$()
  404. linux-status:
  405. @echo BOARD_NAME=$(BOARD_NAME)
  406. @echo BR2_BOARD_PATH=$(BR2_BOARD_PATH)
  407. @echo BR2_CUSTOM_LINUX26_PATCH=$(BR2_CUSTOM_LINUX26_PATCH)
  408. @echo BR2_CUSTOM_LINUX26_PATCH_SITE=$(BR2_CUSTOM_LINUX26_PATCH_SITE)
  409. @echo BR2_DOWNLOAD_LINUX26_VERSION=$(BR2_DOWNLOAD_LINUX26_VERSION)
  410. @echo BR2_LINUX_BSP_PATCH=$(BR2_LINUX_BSP_PATCH)
  411. @echo BR2_LINUX_COPYTO=$(BR2_LINUX_COPYTO)
  412. @echo BR2_LINUX_COPYTO_ROOTFS=$(BR2_LINUX_COPYTO_ROOTFS)
  413. @echo BR2_LINUX_COPYTO_TFTPBOOT=$(BR2_LINUX_COPYTO_TFTPBOOT)
  414. @echo BR2_LINUX_VERSION=$(BR2_LINUX_VERSION)
  415. @echo BR2_LINUX26_CUSTOM=$(BR2_LINUX26_CUSTOM)
  416. @echo BR2_LINUX26_VERSION=$(BR2_LINUX26_VERSION)
  417. @echo BR2_KERNEL_ADD_LATEST_RC_PATCH=$(BR2_KERNEL_ADD_LATEST_RC_PATCH)
  418. @echo BR2_KERNEL_ADD_LATEST_SNAPSHOT=$(BR2_KERNEL_ADD_LATEST_SNAPSHOT)
  419. @echo BR2_KERNEL_ADD_MINORPATCH=$(BR2_KERNEL_ADD_MINORPATCH)
  420. @echo BR2_KERNEL_ARCH_PATCH_DIR=$(BR2_KERNEL_ARCH_PATCH_DIR)
  421. @echo BR2_KERNEL_GIT_LEVEL=$(BR2_KERNEL_GIT_LEVEL)
  422. @echo BR2_KERNEL_MINORLEVEL=$(BR2_KERNEL_MINORLEVEL)
  423. @echo BR2_KERNEL_PATCH=$(BR2_KERNEL_PATCH)
  424. @echo BR2_KERNEL_PATCH_SITE=$(BR2_KERNEL_PATCH_SITE)
  425. @echo BR2_KERNEL_RC_LEVEL=$(BR2_KERNEL_RC_LEVEL)
  426. @echo BR2_KERNEL_SITE=$(BR2_KERNEL_SITE)
  427. @echo BR2_PACKAGE_LINUX_KCONFIG=$(BR2_PACKAGE_LINUX_KCONFIG)
  428. @echo BR2_PACKAGE_LINUX_USE_DEFCONFIG=$(BR2_PACKAGE_LINUX_USE_DEFCONFIG)
  429. @echo BR2_PACKAGE_LINUX_USE_KCONFIG=$(BR2_PACKAGE_LINUX_USE_KCONFIG)
  430. @echo BR2_PACKAGE_LINUX_USE_XCONFIG=$(BR2_PACKAGE_LINUX_USE_XCONFIG)
  431. @echo DOWNLOAD_LINUX26_VERSION=$(DOWNLOAD_LINUX26_VERSION)
  432. @echo KERNEL_ARCH_PATCH_DIR=$(KERNEL_ARCH_PATCH_DIR)
  433. @echo KERNEL_COND_PATCHES=$(KERNEL_COND_PATCHES)
  434. @echo KERNEL_EXT=$(KERNEL_EXT)
  435. @echo KERNEL_EXTRA_VERSION=$(KERNEL_EXTRA_VERSION)
  436. @echo KERNEL_HEADERS_PATCH_DIR=$(KERNEL_HEADERS_PATCH_DIR)
  437. @echo LINUX_COPYTO=$(LINUX_COPYTO)
  438. @echo LINUX_HEADERS_VERSION=$(LINUX_HEADERS_VERSION)
  439. @echo LINUX26_BINLOC=$(LINUX26_BINLOC)
  440. @echo LINUX26_DIR=$(LINUX26_DIR)
  441. @echo LINUX26_FORMAT=$(LINUX26_FORMAT)
  442. @echo LINUX26_HEADERS_PATCH_DIR=$(LINUX26_HEADERS_PATCH_DIR)
  443. @echo LINUX26_KERNEL=$(LINUX26_KERNEL)
  444. @echo LINUX26_KERNEL_NAME=$(LINUX26_KERNEL_NAME)
  445. @echo LINUX26_LATEST_GIT_PATCH=$(LINUX26_LATEST_GIT_PATCH)
  446. @echo LINUX26_LATEST_RC_PATCH=$(LINUX26_LATEST_RC_PATCH)
  447. @echo LINUX26_PATCH_DIR=$(LINUX26_PATCH_DIR)
  448. @echo LINUX26_SOURCE=$(LINUX26_SOURCE)
  449. @echo LINUX26_TARGETS=$(LINUX26_TARGETS)
  450. @echo LINUX26_VERSION=$(LINUX26_VERSION)
  451. @echo LINUX26_MAKE_FLAGS=$(LINUX26_MAKE_FLAGS)
  452. @echo BUILD_DIR=$(BUILD_DIR)
  453. @echo TARGETS=$(TARGETS)
  454. endif