diff options
author | mbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2005-01-16 11:43:02 +0000 |
---|---|---|
committer | mbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2005-01-16 11:43:02 +0000 |
commit | 2f006aa5e8a74e2dd224f5e9b90d36c79651fd66 (patch) | |
tree | 85d694c0a5715a49a401cadec16be849169d8d6a /Makefile |
Initial revision
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@197 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..5434b0e7f --- /dev/null +++ b/Makefile @@ -0,0 +1,191 @@ +# Makefile for buildroot2 +# +# Copyright (C) 1999-2004 by Erik Andersen <andersen@codepoet.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +#-------------------------------------------------------------- +# Just run 'make menuconfig', configure stuff, then run 'make'. +# You shouldn't need to mess with anything beyond this point... +#-------------------------------------------------------------- +TOPDIR=./ +CONFIG_CONFIG_IN = Config.in +CONFIG_DEFCONFIG = .defconfig +CONFIG = package/config + +noconfig_targets := menuconfig config oldconfig randconfig \ + defconfig allyesconfig allnoconfig release tags + +# Pull in the user's configuration file +ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),) +-include $(TOPDIR).config +endif + +ifeq ($(BR2_TAR_VERBOSITY),y) +TAR_OPTIONS=-xvf +else +TAR_OPTIONS=-xf +endif + +ifeq ($(strip $(BR2_HAVE_DOT_CONFIG)),y) + +############################################################# +# +# The list of stuff to build for the target toolchain +# along with the packages to build for the target. +# +############################################################## +TARGETS:=linux-headers host-sed uclibc-configured binutils gcc uclibc-target-utils +include toolchain/Makefile.in +include toolchain/*/Makefile.in +include package/Makefile.in +include package/*/Makefile.in +include target/Makefile.in +include target/*/Makefile.in + +############################################################# +# +# You should probably leave this stuff alone unless you know +# what you are doing. +# +############################################################# + + + +all: world + +# In this section, we need .config +include .config.cmd + +TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS)) +TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS)) + +world: $(DL_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) $(TARGETS) + +.PHONY: all world clean distclean source $(TARGETS) \ + $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE) \ + $(DL_DIR) $(BUILD_DIR) $(TOOL_BUILD_DIR) $(STAGING_DIR) + +include toolchain/*/*.mk +include package/*/*.mk +include target/*/*.mk + +############################################################# +# +# staging and target directories do NOT list these as +# dependancies anywhere else +# +############################################################# +$(DL_DIR): + @mkdir -p $(DL_DIR) + +$(BUILD_DIR): + @mkdir -p $(BUILD_DIR) + +$(TOOL_BUILD_DIR): + @mkdir -p $(TOOL_BUILD_DIR) + +$(STAGING_DIR): + @mkdir -p $(STAGING_DIR)/lib + @mkdir -p $(STAGING_DIR)/include + @mkdir -p $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME) + @ln -sf ../lib $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib + +$(TARGET_DIR): + zcat target/default/skel.tar.gz | tar -C $(BUILD_DIR) -xf - + cp -a target/default/target_skeleton/* $(TARGET_DIR)/ + -find $(TARGET_DIR) -type d -name CVS -exec rm -rf {} \; > /dev/null 2>&1 + +source: $(TARGETS_SOURCE) + +############################################################# +# +# Cleanup and misc junk +# +############################################################# +clean: + rm -rf $(BUILD_DIR) $(IMAGE).* + @$(MAKE) -C $(CONFIG) clean + +distclean: clean + rm -rf $(DL_DIR) $(TOOL_BUILD_DIR) .config + +sourceball: + rm -rf $(BUILD_DIR) + set -e; \ + cd ..; \ + rm -f buildroot.tar.bz2; \ + tar -cvf buildroot.tar buildroot; \ + bzip2 -9 buildroot.tar; \ + + +else # ifeq ($(strip $(BR2_HAVE_DOT_CONFIG)),y) + +all: menuconfig + +# configuration +# --------------------------------------------------------------------------- + +$(CONFIG)/conf: + $(MAKE) -C $(CONFIG) conf + -@if [ ! -f .config ] ; then \ + cp $(CONFIG_DEFCONFIG) .config; \ + fi +$(CONFIG)/mconf: + $(MAKE) -C $(CONFIG) ncurses conf mconf + -@if [ ! -f .config ] ; then \ + cp $(CONFIG_DEFCONFIG) .config; \ + fi + +menuconfig: $(CONFIG)/mconf + @$(CONFIG)/mconf $(CONFIG_CONFIG_IN) + +config: $(CONFIG)/conf + @$(CONFIG)/conf $(CONFIG_CONFIG_IN) + +oldconfig: $(CONFIG)/conf + @$(CONFIG)/conf -o $(CONFIG_CONFIG_IN) + +randconfig: $(CONFIG)/conf + @$(CONFIG)/conf -r $(CONFIG_CONFIG_IN) + +allyesconfig: $(CONFIG)/conf + #@$(CONFIG)/conf -y $(CONFIG_CONFIG_IN) + #sed -i -e "s/^CONFIG_DEBUG.*/# CONFIG_DEBUG is not set/" .config + @$(CONFIG)/conf -o $(CONFIG_CONFIG_IN) + +allnoconfig: $(CONFIG)/conf + @$(CONFIG)/conf -n $(CONFIG_CONFIG_IN) + +defconfig: $(CONFIG)/conf + @$(CONFIG)/conf -d $(CONFIG_CONFIG_IN) + +############################################################# +# +# Cleanup and misc junk +# +############################################################# +clean: + @$(MAKE) -C $(CONFIG) clean + +distclean: clean + +endif # ifeq ($(strip $(BR2_HAVE_DOT_CONFIG)),y) + +.PHONY: dummy subdirs release distclean clean config oldconfig \ + menuconfig tags check test depend + + |