blob: 9a52b0b8d7c23ddfdc89719c1114af399a1d3dc2 [file] [log] [blame]
Eric Andersen2d523c22004-10-09 01:06:03 +00001# Makefile for buildroot2
Eric Andersenffde94b2001-12-22 00:56:11 +00002#
Eric Andersen15b26ae2005-02-07 22:19:26 +00003# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
Eric Andersenffde94b2001-12-22 00:56:11 +00004#
Eric Andersen08782ae2002-04-26 11:45:55 +00005# This program is free software; you can redistribute it and/or modify
Eric Andersen2d523c22004-10-09 01:06:03 +00006# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 2 of the License, or
8# (at your option) any later version.
Eric Andersenffde94b2001-12-22 00:56:11 +00009#
Eric Andersen2d523c22004-10-09 01:06:03 +000010# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
Eric Andersen08782ae2002-04-26 11:45:55 +000012# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Eric Andersen2d523c22004-10-09 01:06:03 +000013# General Public License for more details.
Eric Andersenffde94b2001-12-22 00:56:11 +000014#
Eric Andersen2d523c22004-10-09 01:06:03 +000015# You should have received a copy of the GNU General Public License
16# along with this program; if not, write to the Free Software
17# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18#
Eric Andersenffde94b2001-12-22 00:56:11 +000019
Eric Andersen2d523c22004-10-09 01:06:03 +000020#--------------------------------------------------------------
21# Just run 'make menuconfig', configure stuff, then run 'make'.
22# You shouldn't need to mess with anything beyond this point...
23#--------------------------------------------------------------
24TOPDIR=./
25CONFIG_CONFIG_IN = Config.in
26CONFIG_DEFCONFIG = .defconfig
27CONFIG = package/config
Ulf Samuelsson7def5552007-07-11 15:01:42 +000028DATE:=$(shell date -u +%Y%m%d)
Eric Andersen2d523c22004-10-09 01:06:03 +000029
30noconfig_targets := menuconfig config oldconfig randconfig \
"Steven J. Hill"0c1e7092006-06-22 02:24:08 +000031 defconfig allyesconfig allnoconfig release tags \
Bernhard Reutner-Fischere491fba2007-07-08 12:20:58 +000032 source-check help
Bernhard Reutner-Fischer9e250352006-12-02 19:01:10 +000033
34# $(shell find . -name *_defconfig |sed 's/.*\///')
Eric Andersen2d523c22004-10-09 01:06:03 +000035
36# Pull in the user's configuration file
37ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
38-include $(TOPDIR).config
39endif
Ulf Samuelssonadbc5a12007-08-20 15:47:42 +000040ifneq ($(BUILDROOT_DL_DIR),)
Ulf Samuelsson3c567e62007-08-19 23:32:33 +000041BR2_DL_DIR:=$(BUILDROOT_DL_DIR)
42endif
Eric Andersen2d523c22004-10-09 01:06:03 +000043
Bernhard Reutner-Fischerafc61c62007-06-28 10:47:05 +000044# To put more focus on warnings, be less verbose as default
45# Use 'make V=1' to see the full commands
46ifdef V
47 ifeq ("$(origin V)", "command line")
48 KBUILD_VERBOSE = $(V)
49 endif
50endif
51ifndef KBUILD_VERBOSE
52 KBUILD_VERBOSE = 0
53endif
54
55ifeq ($(KBUILD_VERBOSE),1)
Ulf Samuelsson4df454e2007-07-06 12:19:35 +000056 quiet=
Bernhard Reutner-Fischerafc61c62007-06-28 10:47:05 +000057 Q =
58else
59 quiet=quiet_
60 Q = @
61endif
62
63CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
64 else if [ -x /bin/bash ]; then echo /bin/bash; \
65 else echo sh; fi ; fi)
66
67export CONFIG_SHELL quiet Q KBUILD_VERBOSE
68
69ifndef HOSTAR
70HOSTAR:=ar
71endif
72ifndef HOSTAS
73HOSTAS:=as
74endif
75ifndef HOSTCC
76HOSTCC:=gcc
77else
78endif
79ifndef HOSTCXX
80HOSTCXX:=g++
81endif
82ifndef HOSTLD
83HOSTLD:=ld
84endif
Ulf Samuelsson0f9c5b12007-07-15 21:54:11 +000085ifndef HOSTLN
86HOSTLN:=ln
87endif
Ulf Samuelsson83832cd2007-07-09 04:26:49 +000088HOSTAR :=$(shell $(CONFIG_SHELL) -c "which $(HOSTAR)" || type -p $(HOSTAR) || echo ar)
89HOSTAS :=$(shell $(CONFIG_SHELL) -c "which $(HOSTAS)" || type -p $(HOSTAS) || echo as)
90HOSTCC :=$(shell $(CONFIG_SHELL) -c "which $(HOSTCC)" || type -p $(HOSTCC) || echo gcc)
91HOSTCXX:=$(shell $(CONFIG_SHELL) -c "which $(HOSTCXX)" || type -p $(HOSTCXX) || echo g++)
92HOSTLD :=$(shell $(CONFIG_SHELL) -c "which $(HOSTLD)" || type -p $(HOSTLD) || echo ld)
Ulf Samuelsson0f9c5b12007-07-15 21:54:11 +000093HOSTLN :=$(shell $(CONFIG_SHELL) -c "which $(HOSTLN)" || type -p $(HOSTLN) || echo ln)
Bernhard Reutner-Fischerafc61c62007-06-28 10:47:05 +000094ifndef CFLAGS_FOR_BUILD
Bernhard Reutner-Fischerf987b7a2007-07-08 00:00:17 +000095CFLAGS_FOR_BUILD:=-g -O2
Bernhard Reutner-Fischerafc61c62007-06-28 10:47:05 +000096endif
97export HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLD
98
99
Eric Andersen2d523c22004-10-09 01:06:03 +0000100ifeq ($(strip $(BR2_HAVE_DOT_CONFIG)),y)
Eric Andersenffde94b2001-12-22 00:56:11 +0000101
Bernhard Reutner-Fischer99cf7292007-02-12 13:38:06 +0000102# cc-option
103# Usage: cflags-y += $(call cc-option, -march=winchip-c6, -march=i586)
104# sets -march=winchip-c6 if supported else falls back to -march=i586
105# without checking the latter.
106cc-option = $(shell if $(TARGET_CC) $(TARGET_CFLAGS) $(1) -S -o /dev/null -xc /dev/null \
107 > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
108
Peter Korsgaard2c649042007-06-19 15:19:27 +0000109#############################################################
110#
111# Hide troublesome environment variables from sub processes
112#
113#############################################################
114unexport CROSS_COMPILE
115unexport ARCH
Bernhard Reutner-Fischer7dcbbfb2007-06-02 09:05:40 +0000116
117#############################################################
118#
Bernhard Reutner-Fischerc6e43c92007-06-02 11:22:17 +0000119# Setup the proper filename extensions for the host
Bernhard Reutner-Fischer7dcbbfb2007-06-02 09:05:40 +0000120#
121##############################################################
122ifneq ($(findstring linux,$(BR2_GNU_BUILD_SUFFIX)),)
Bernhard Reutner-Fischerc6e43c92007-06-02 11:22:17 +0000123HOST_EXEEXT:=
124HOST_LIBEXT:=.a
125HOST_SHREXT:=.so
Bernhard Reutner-Fischer7dcbbfb2007-06-02 09:05:40 +0000126endif
127ifneq ($(findstring apple,$(BR2_GNU_BUILD_SUFFIX)),)
Bernhard Reutner-Fischerc6e43c92007-06-02 11:22:17 +0000128HOST_EXEEXT:=
129HOST_LIBEXT:=.a
130HOST_SHREXT:=.dylib
Bernhard Reutner-Fischer7dcbbfb2007-06-02 09:05:40 +0000131endif
132ifneq ($(findstring cygwin,$(BR2_GNU_BUILD_SUFFIX)),)
Bernhard Reutner-Fischerc6e43c92007-06-02 11:22:17 +0000133HOST_EXEEXT:=.exe
134HOST_LIBEXT:=.lib
135HOST_SHREXT:=.dll
Bernhard Reutner-Fischer7dcbbfb2007-06-02 09:05:40 +0000136endif
137ifneq ($(findstring mingw,$(BR2_GNU_BUILD_SUFFIX)),)
Bernhard Reutner-Fischerc6e43c92007-06-02 11:22:17 +0000138HOST_EXEEXT:=.exe
139HOST_LIBEXT:=.lib
140HOST_SHREXT:=.dll
Bernhard Reutner-Fischer7dcbbfb2007-06-02 09:05:40 +0000141endif
142
Bernhard Reutner-Fischerc6e43c92007-06-02 11:22:17 +0000143# The preferred type of libs we build for the target
Bernhard Reutner-Fischer7dcbbfb2007-06-02 09:05:40 +0000144ifeq ($(BR2_PREFER_STATIC_LIB),y)
Bernhard Reutner-Fischerc6e43c92007-06-02 11:22:17 +0000145LIBTGTEXT=.a
Bernhard Reutner-Fischer80277842007-06-20 11:26:36 +0000146#PREFERRED_LIB_FLAGS:=--disable-shared --enable-static
Bernhard Reutner-Fischer7dcbbfb2007-06-02 09:05:40 +0000147else
Bernhard Reutner-Fischerc6e43c92007-06-02 11:22:17 +0000148LIBTGTEXT=.so
Bernhard Reutner-Fischer80277842007-06-20 11:26:36 +0000149#PREFERRED_LIB_FLAGS:=--disable-static --enable-shared
Bernhard Reutner-Fischer7dcbbfb2007-06-02 09:05:40 +0000150endif
Bernhard Reutner-Fischer80277842007-06-20 11:26:36 +0000151PREFERRED_LIB_FLAGS:=--enable-static --enable-shared
Bernhard Reutner-Fischer7dcbbfb2007-06-02 09:05:40 +0000152
Bernhard Reutner-Fischer6ad07202007-07-31 15:02:06 +0000153BR2_DEPENDS_DIR=$(BASE_DIR)/package/config/buildroot-config/
Bernhard Reutner-Fischer7dcbbfb2007-06-02 09:05:40 +0000154
Bernhard Reutner-Fischer6ad07202007-07-31 15:02:06 +0000155##############################################################
Eric Andersen08782ae2002-04-26 11:45:55 +0000156#
Eric Andersen2d523c22004-10-09 01:06:03 +0000157# The list of stuff to build for the target toolchain
158# along with the packages to build for the target.
Eric Andersen08782ae2002-04-26 11:45:55 +0000159#
Eric Andersen2d523c22004-10-09 01:06:03 +0000160##############################################################
"Steven J. Hill"02f71aa2007-02-06 18:19:38 +0000161ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
Bernhard Reutner-Fischeracc706b2007-07-23 11:29:38 +0000162BASE_TARGETS:=uclibc-configured binutils gcc uclibc-target-utils
"Steven J. Hill"02f71aa2007-02-06 18:19:38 +0000163else
Bernhard Reutner-Fischeracc706b2007-07-23 11:29:38 +0000164BASE_TARGETS:=uclibc
"Steven J. Hill"02f71aa2007-02-06 18:19:38 +0000165endif
Bernhard Reutner-Fischeracc706b2007-07-23 11:29:38 +0000166TARGETS:=
167
Ulf Samuelssonf958d892007-08-14 07:45:01 +0000168include project/Makefile.in
Eric Andersen2d523c22004-10-09 01:06:03 +0000169include toolchain/Makefile.in
Eric Andersen2d523c22004-10-09 01:06:03 +0000170include package/Makefile.in
Eric Andersen27bc59d2003-01-17 04:31:36 +0000171
Eric Andersen08782ae2002-04-26 11:45:55 +0000172#############################################################
173#
Eric Andersenef407d32004-01-29 23:21:00 +0000174# You should probably leave this stuff alone unless you know
Eric Andersen08782ae2002-04-26 11:45:55 +0000175# what you are doing.
176#
177#############################################################
Manuel Novoa III d632d422003-11-01 05:34:41 +0000178
Eric Andersenffde94b2001-12-22 00:56:11 +0000179all: world
180
Eric Andersen2d523c22004-10-09 01:06:03 +0000181# In this section, we need .config
182include .config.cmd
183
Ulf Samuelssonf958d892007-08-14 07:45:01 +0000184include project/*.mk
185
Eric Andersend06645d2005-02-10 03:06:39 +0000186# We also need the various per-package makefiles, which also add
187# each selected package to TARGETS if that package was selected
188# in the .config file.
Bernhard Reutner-Fischeracc706b2007-07-23 11:29:38 +0000189ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
190# avoid pulling in external toolchain which is broken for toplvl parallel builds
191include $(filter-out $(wildcard toolchain/external-toolchain/*),$(wildcard toolchain/*/*.mk))
192else
Eric Andersend06645d2005-02-10 03:06:39 +0000193include toolchain/*/*.mk
Bernhard Reutner-Fischeracc706b2007-07-23 11:29:38 +0000194endif
195
"Steven J. Hill"62b5ae42007-07-18 18:07:19 +0000196ifeq ($(BR2_PACKAGE_LINUX),y)
197TARGETS+=linux26-modules
198endif
Bernhard Reutner-Fischeracc706b2007-07-23 11:29:38 +0000199
Eric Andersend06645d2005-02-10 03:06:39 +0000200include package/*/*.mk
Eric Andersend06645d2005-02-10 03:06:39 +0000201
Eric Andersen79f5f1e2005-02-17 03:00:29 +0000202# target stuff is last so it can override anything else
203include target/Makefile.in
204
Ulf Samuelssonc2fc93b2007-08-15 09:47:49 +0000205TARGETS+=erase-fakeroots
206
Eric Andersen08782ae2002-04-26 11:45:55 +0000207TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
Eric Andersena5c23542003-02-19 08:56:04 +0000208TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS))
Eric Andersen08782ae2002-04-26 11:45:55 +0000209TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
Eric Andersenffde94b2001-12-22 00:56:11 +0000210
Bernhard Reutner-Fischeracc706b2007-07-23 11:29:38 +0000211# all targets depend on the crosscompiler and it's prerequisites
212$(TARGETS): $(BASE_TARGETS)
213
Bernhard Reutner-Fischer5ef9e522007-07-27 14:57:34 +0000214dirs: $(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
215 $(BINARIES_DIR) $(PROJECT_BUILD_DIR)
Ulf Samuelssonf958d892007-08-14 07:45:01 +0000216
Bernhard Reutner-Fischer5ef9e522007-07-27 14:57:34 +0000217$(BASE_TARGETS): dirs
Ulf Samuelssonf958d892007-08-14 07:45:01 +0000218
Bernhard Reutner-Fischer69d692e2007-07-27 15:29:12 +0000219world: dependencies dirs target-host-info $(BASE_TARGETS) $(TARGETS)
Eric Andersenffde94b2001-12-22 00:56:11 +0000220
Bernhard Reutner-Fischer5ef9e522007-07-27 14:57:34 +0000221
Ulf Samuelssonf958d892007-08-14 07:45:01 +0000222.PHONY: all world dirs clean dirclean distclean source \
Bernhard Reutner-Fischer5ef9e522007-07-27 14:57:34 +0000223 $(BASE_TARGETS) $(TARGETS) \
Eric Andersen747b16d2004-12-11 10:33:19 +0000224 $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \
Bernhard Reutner-Fischer5ef9e522007-07-27 14:57:34 +0000225 $(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
226 $(BINARIES_DIR) $(PROJECT_BUILD_DIR)
Jon Nelsonc79e9982002-01-05 20:26:15 +0000227
Eric Andersen08782ae2002-04-26 11:45:55 +0000228#############################################################
229#
Eric Andersenef407d32004-01-29 23:21:00 +0000230# staging and target directories do NOT list these as
Mike Frysingerd99c31c2006-05-26 01:18:09 +0000231# dependencies anywhere else
Eric Andersen08782ae2002-04-26 11:45:55 +0000232#
233#############################################################
Bernhard Reutner-Fischer5ef9e522007-07-27 14:57:34 +0000234$(DL_DIR) $(TOOL_BUILD_DIR) $(BUILD_DIR) \
Ulf Samuelssonc6771df2007-08-16 05:44:55 +0000235 $(PROJECT_BUILD_DIR) $(BINARIES_DIR):
Bernhard Reutner-Fischer8d583fc2007-01-30 00:58:18 +0000236 @mkdir -p $@
Manuel Novoa III 3ad3d8a2004-09-03 00:49:43 +0000237
Eric Andersen08782ae2002-04-26 11:45:55 +0000238$(STAGING_DIR):
"Steven J. Hill"9c865d72007-05-07 03:56:47 +0000239 @mkdir -p $(STAGING_DIR)/bin
Eric Andersenbf387232004-12-11 10:35:18 +0000240 @mkdir -p $(STAGING_DIR)/lib
Bernhard Reutner-Fischer7e0c8902007-06-24 12:27:08 +0000241ifeq ($(BR2_TOOLCHAIN_SYSROOT),y)
Bernhard Reutner-Fischer80277842007-06-20 11:26:36 +0000242 @mkdir -p $(STAGING_DIR)/usr/lib
243else
244 @ln -snf . $(STAGING_DIR)/usr
245 @mkdir -p $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)
Eric Andersen3da708e2007-01-10 06:55:27 +0000246 @ln -snf ../lib $(STAGING_DIR)/usr/lib
Bernhard Reutner-Fischer80277842007-06-20 11:26:36 +0000247 @ln -snf ../lib $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/lib
248endif
249 @mkdir -p $(STAGING_DIR)/usr/include
Eric Andersen08782ae2002-04-26 11:45:55 +0000250
Ulf Samuelssonc6771df2007-08-16 05:44:55 +0000251$(PROJECT_BUILD_DIR)/.root:
Bernhard Reutner-Fischer7547c7e2007-08-21 10:53:39 +0000252 mkdir -p $(TARGET_DIR)
Bernhard Reutner-Fischerf0ca4b82007-08-21 10:56:38 +0000253 if ! [ -d "$(TARGET_DIR)/bin" ]; then \
254 if [ -d "$(TARGET_SKELETON)" ]; then \
255 cp -fa $(TARGET_SKELETON)/* $(TARGET_DIR)/ ; \
Ulf Samuelsson74cda1e2007-08-14 07:24:45 +0000256 fi; \
257 touch $(STAGING_DIR)/.fakeroot.00000 ; \
Bernhard Reutner-Fischerf0ca4b82007-08-21 10:56:38 +0000258 fi
259 -find $(TARGET_DIR) -type d -name CVS | xargs rm -rf
260 -find $(TARGET_DIR) -type d -name .svn | xargs rm -rf
Bernhard Reutner-Fischer7547c7e2007-08-21 10:53:39 +0000261 touch $@
Eric Andersenffde94b2001-12-22 00:56:11 +0000262
Ulf Samuelssonc6771df2007-08-16 05:44:55 +0000263$(TARGET_DIR): $(PROJECT_BUILD_DIR)/.root
264
Ulf Samuelssonc2fc93b2007-08-15 09:47:49 +0000265erase-fakeroots:
Ulf Samuelsson5d2be042007-08-16 18:19:42 +0000266 rm -f $(PROJECT_BUILD_DIR)/.fakeroot*
Ulf Samuelsson412ca2a2007-07-12 13:11:03 +0000267
Bernhard Reutner-Fischer73be7f92007-04-06 16:36:48 +0000268source: $(TARGETS_SOURCE) $(HOST_SOURCE)
Eric Andersenffde94b2001-12-22 00:56:11 +0000269
Ulf Samuelssone7c08c22007-07-20 07:34:28 +0000270_source-check:
271 $(MAKE) SPIDER=--spider source
Bernhard Reutner-Fischer825ff342007-06-07 12:57:03 +0000272
Eric Andersen08782ae2002-04-26 11:45:55 +0000273#############################################################
274#
275# Cleanup and misc junk
276#
277#############################################################
278clean: $(TARGETS_CLEAN)
Manuel Novoa III 3ad3d8a2004-09-03 00:49:43 +0000279 rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE)
Eric Andersenffde94b2001-12-22 00:56:11 +0000280
Eric Andersen08782ae2002-04-26 11:45:55 +0000281dirclean: $(TARGETS_DIRCLEAN)
Manuel Novoa III 3ad3d8a2004-09-03 00:49:43 +0000282 rm -rf $(STAGING_DIR) $(TARGET_DIR) $(IMAGE)
Eric Andersenffde94b2001-12-22 00:56:11 +0000283
Eric Andersen08782ae2002-04-26 11:45:55 +0000284distclean:
Mike Frysinger5bc1f0c2005-09-09 02:49:10 +0000285ifeq ($(DL_DIR),$(BASE_DIR)/dl)
286 rm -rf $(DL_DIR)
287endif
Ulf Samuelsson412ca2a2007-07-12 13:11:03 +0000288 rm -rf $(BUILD_DIR) $(PROJECT_BUILD_DIR) $(BINARIES_DIR) \
289 $(LINUX_KERNEL) $(IMAGE) $(BASE_DIR)/include \
Bernhard Reutner-Fischer81df2262007-07-09 08:06:27 +0000290 .config.cmd
Bernhard Reutner-Fischerb5136192007-01-19 18:00:49 +0000291 $(MAKE) -C $(CONFIG) clean
Eric Andersenffde94b2001-12-22 00:56:11 +0000292
Manuel Novoa III 3ad3d8a2004-09-03 00:49:43 +0000293sourceball:
Ulf Samuelsson412ca2a2007-07-12 13:11:03 +0000294 rm -rf $(BUILD_DIR) $(PROJECT_BUILD_DIR) $(BINARIES_DIR)
Eric Andersen08782ae2002-04-26 11:45:55 +0000295 set -e; \
296 cd ..; \
297 rm -f buildroot.tar.bz2; \
298 tar -cvf buildroot.tar buildroot; \
299 bzip2 -9 buildroot.tar; \
Eric Andersen2d523c22004-10-09 01:06:03 +0000300
301
302else # ifeq ($(strip $(BR2_HAVE_DOT_CONFIG)),y)
303
304all: menuconfig
305
306# configuration
307# ---------------------------------------------------------------------------
308
Bernhard Reutner-Fischerc0d7d4e2007-07-09 18:23:20 +0000309HOSTCFLAGS=$(CFLAGS_FOR_BUILD)
310export HOSTCFLAGS
311
Eric Andersen2d523c22004-10-09 01:06:03 +0000312$(CONFIG)/conf:
Bernhard Reutner-Fischerfb2c8fe2007-07-27 14:16:00 +0000313 $(MAKE) CC="$(HOSTCC)" -C $(CONFIG) conf
Eric Andersen2d523c22004-10-09 01:06:03 +0000314 -@if [ ! -f .config ] ; then \
315 cp $(CONFIG_DEFCONFIG) .config; \
316 fi
317$(CONFIG)/mconf:
Bernhard Reutner-Fischerfb2c8fe2007-07-27 14:16:00 +0000318 $(MAKE) CC="$(HOSTCC)" -C $(CONFIG) conf mconf
Eric Andersen2d523c22004-10-09 01:06:03 +0000319 -@if [ ! -f .config ] ; then \
320 cp $(CONFIG_DEFCONFIG) .config; \
321 fi
322
323menuconfig: $(CONFIG)/mconf
Bernhard Reutner-Fischer7b403ad2007-08-21 11:25:30 +0000324 @mkdir -p $(CONFIG)/buildroot-config
Bernhard Reutner-Fischer153b1be2007-07-27 12:37:30 +0000325 @if ! KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
"Steven J. Hill"62b5ae42007-07-18 18:07:19 +0000326 KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
Bernhard Reutner-Fischer153b1be2007-07-27 12:37:30 +0000327 $(CONFIG)/mconf $(CONFIG_CONFIG_IN); then \
328 test -f .config.cmd || rm -f .config; \
329 fi
Eric Andersen2d523c22004-10-09 01:06:03 +0000330
331config: $(CONFIG)/conf
Bernhard Reutner-Fischer7b403ad2007-08-21 11:25:30 +0000332 @mkdir -p $(CONFIG)/buildroot-config
"Steven J. Hill"62b5ae42007-07-18 18:07:19 +0000333 @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
334 KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
Bernhard Reutner-Fischerf987b7a2007-07-08 00:00:17 +0000335 $(CONFIG)/conf $(CONFIG_CONFIG_IN)
Eric Andersen2d523c22004-10-09 01:06:03 +0000336
337oldconfig: $(CONFIG)/conf
Bernhard Reutner-Fischer7b403ad2007-08-21 11:25:30 +0000338 @mkdir -p $(CONFIG)/buildroot-config
"Steven J. Hill"62b5ae42007-07-18 18:07:19 +0000339 @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
340 KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
Bernhard Reutner-Fischerf987b7a2007-07-08 00:00:17 +0000341 $(CONFIG)/conf -o $(CONFIG_CONFIG_IN)
Eric Andersen2d523c22004-10-09 01:06:03 +0000342
343randconfig: $(CONFIG)/conf
Bernhard Reutner-Fischer7b403ad2007-08-21 11:25:30 +0000344 @mkdir -p $(CONFIG)/buildroot-config
"Steven J. Hill"62b5ae42007-07-18 18:07:19 +0000345 @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
346 KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
Bernhard Reutner-Fischerf987b7a2007-07-08 00:00:17 +0000347 $(CONFIG)/conf -r $(CONFIG_CONFIG_IN)
Eric Andersen2d523c22004-10-09 01:06:03 +0000348
349allyesconfig: $(CONFIG)/conf
Bernhard Reutner-Fischerf987b7a2007-07-08 00:00:17 +0000350 cat $(CONFIG_DEFCONFIG) > .config
Bernhard Reutner-Fischer7b403ad2007-08-21 11:25:30 +0000351 @mkdir -p $(CONFIG)/buildroot-config
"Steven J. Hill"62b5ae42007-07-18 18:07:19 +0000352 @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
353 KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
Bernhard Reutner-Fischerf987b7a2007-07-08 00:00:17 +0000354 $(CONFIG)/conf -y $(CONFIG_CONFIG_IN)
Eric Andersen2d523c22004-10-09 01:06:03 +0000355 #sed -i -e "s/^CONFIG_DEBUG.*/# CONFIG_DEBUG is not set/" .config
Eric Andersen2d523c22004-10-09 01:06:03 +0000356
357allnoconfig: $(CONFIG)/conf
Bernhard Reutner-Fischer7b403ad2007-08-21 11:25:30 +0000358 @mkdir -p $(CONFIG)/buildroot-config
"Steven J. Hill"62b5ae42007-07-18 18:07:19 +0000359 @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
360 KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
Bernhard Reutner-Fischerf987b7a2007-07-08 00:00:17 +0000361 $(CONFIG)/conf -n $(CONFIG_CONFIG_IN)
Eric Andersen2d523c22004-10-09 01:06:03 +0000362
363defconfig: $(CONFIG)/conf
Bernhard Reutner-Fischer7b403ad2007-08-21 11:25:30 +0000364 @mkdir -p $(CONFIG)/buildroot-config
"Steven J. Hill"62b5ae42007-07-18 18:07:19 +0000365 @KCONFIG_AUTOCONFIG=$(CONFIG)/buildroot-config/auto.conf \
366 KCONFIG_AUTOHEADER=$(CONFIG)/buildroot-config/autoconf.h \
Bernhard Reutner-Fischerf987b7a2007-07-08 00:00:17 +0000367 $(CONFIG)/conf -d $(CONFIG_CONFIG_IN)
Eric Andersen2d523c22004-10-09 01:06:03 +0000368
Bernhard Reutner-Fischer825ff342007-06-07 12:57:03 +0000369# check if download URLs are outdated
370source-check: allyesconfig
371 $(MAKE) _source-check
372
Eric Andersen2d523c22004-10-09 01:06:03 +0000373#############################################################
374#
375# Cleanup and misc junk
376#
377#############################################################
378clean:
379 rm -f .config .config.old .config.cmd .tmpconfig.h
380 - $(MAKE) -C $(CONFIG) clean
381
382distclean: clean
383 rm -rf sources/*
384
385endif # ifeq ($(strip $(BR2_HAVE_DOT_CONFIG)),y)
386
Bernhard Reutner-Fischerba2e7e02007-06-25 10:56:13 +0000387%_defconfig: $(CONFIG)/conf
388 cp $(shell find ./target/ -name $@) .config
389 @$(CONFIG)/conf -o $(CONFIG_CONFIG_IN)
390
Bernhard Reutner-Fischere491fba2007-07-08 12:20:58 +0000391help:
392 @echo 'Cleaning:'
393 @echo ' clean - delete temporary files created by build'
394 @echo ' distclean - delete all non-source files (including .config)'
395 @echo
396 @echo 'Build:'
397 @echo ' all - make world'
398 @echo
399 @echo 'Configuration:'
400 @echo ' menuconfig - interactive curses-based configurator'
401 @echo ' oldconfig - resolve any unresolved symbols in .config'
402 @echo
403 @echo 'Miscellaneous:'
404 @echo ' source - download all sources needed for offline-build'
Bernhard Reutner-Fischer03380402007-08-21 10:42:05 +0000405 @echo ' source-check - check all packages for valid download URLs'
Bernhard Reutner-Fischere491fba2007-07-08 12:20:58 +0000406 @echo
Bernhard Reutner-Fischerba2e7e02007-06-25 10:56:13 +0000407
Eric Andersen2d523c22004-10-09 01:06:03 +0000408.PHONY: dummy subdirs release distclean clean config oldconfig \
Bernhard Reutner-Fischere491fba2007-07-08 12:20:58 +0000409 menuconfig tags check test depend defconfig help
Eric Andersen2d523c22004-10-09 01:06:03 +0000410
411