summaryrefslogtreecommitdiffstats
path: root/obsolete-buildroot/Makefile
diff options
context:
space:
mode:
authormbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73>2004-05-25 04:32:27 +0000
committermbm <mbm@3c298f89-4303-0410-b956-a3cf2f4a3e73>2004-05-25 04:32:27 +0000
commit3ac1acb9ea70080aaaf49ae211835f057e60eefa (patch)
treea2e08d2be3224409a033d25af8861d9853e72de7 /obsolete-buildroot/Makefile
parent1eb1b593980fdc06ab92f8e354129b0aadc4f1b0 (diff)
Initial revision
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'obsolete-buildroot/Makefile')
-rw-r--r--obsolete-buildroot/Makefile370
1 files changed, 370 insertions, 0 deletions
diff --git a/obsolete-buildroot/Makefile b/obsolete-buildroot/Makefile
new file mode 100644
index 000000000..96fa2494a
--- /dev/null
+++ b/obsolete-buildroot/Makefile
@@ -0,0 +1,370 @@
+# Makefile for a simple busybox/uClibc root filesystem
+#
+# Copyright (C) 2001-2004 Erik Andersen <andersen@codepoet.org>
+# Copyright (C) 2002 by Tim Riker <Tim@Rikers.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Library 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
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library 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
+
+
+#############################################################
+#
+# EDIT this stuff to suit your system and preferences
+#
+# Use := when possible to get precomputation, thereby
+# speeding up the build process.
+#
+#############################################################
+
+# What sortof target system shall we compile this for?
+#ARCH:=i386
+#ARCH:=arm
+#ARCH:=mips
+ARCH:=mipsel
+#ARCH:=powerpc
+#ARCH:=sh4
+# Busybox link failing due to needing libgcc functions that are statics.
+#ARCH:=cris
+
+# The following currently fail to build since no shared lib support.
+#ARCH:=sh64
+#ARCH:=m68k
+#ARCH:=v850
+#ARCH:=sparc
+#ARCH:=whatever
+
+# If you are building a native gcc toolchain, do you want to
+# build the old gcc-2.95 based toolchain, or would you prefer
+# a nice and shiny new gcc-3.3.2 toolchain?
+# WARNING -- 2.95 currently only builds for i386, arm, mips*, and powerpc.
+# WARNING -- 2.95 does not currently build natively for the target.
+GCC_2_95_TOOLCHAIN:=false
+
+# Enable this to use the uClibc daily snapshot instead of a released
+# version. Daily snapshots may contain new features and bugfixes. Or
+# they may not even compile at all, depending on what Erik is doing...
+#USE_UCLIBC_SNAPSHOT:=
+#USE_UCLIBC_SNAPSHOT:=snapshot
+USE_UCLIBC_SNAPSHOT:=20040509
+
+# Temporary option... Fall back to (slightly modified) ldso 0.9.24 code?
+# This is here temporarily since I'm having problems with the current
+# cvs ldso code on mipsel.
+USE_UCLIBC_LDSO_0_9_24:=true
+#USE_UCLIBC_LDSO_0_9_24:=false
+
+# Enable this to use the busybox daily snapshot instead of a released
+# version. Daily snapshots may contain new features and bugfixes. Or
+# they may not even compile at all....
+#USE_BUSYBOX_SNAPSHOT:=
+#USE_BUSYBOX_SNAPSHOT:=snapshot
+USE_BUSYBOX_SNAPSHOT:=20040509
+
+# Enable large file (files > 2 GB) support
+BUILD_WITH_LARGEFILE:=true
+
+# Command used to download source code
+WGET:=wget --passive-ftp
+
+# Optimize toolchain for which type of CPU?
+OPTIMIZE_FOR_CPU=$(ARCH)
+#OPTIMIZE_FOR_CPU=i686
+# Note... gcc 2.95 does not seem to like anything higher than i586.
+#OPTIMIZE_FOR_CPU=i586
+#OPTIMIZE_FOR_CPU=whatever
+
+# Soft floating point options.
+# Notes:
+# Currently builds with gcc 3.3 for arm, mips, mipsel, powerpc.
+# (i386 support will be added back in at some point.)
+# Only tested with multilib enabled.
+# For i386, long double is the same as double (64 bits). While this
+# is unusual for x86, it seemed the best approach considering the
+# limitations in the gcc floating point emulation library.
+# For arm, soft float uses the usual libfloat routines.
+# Custom specs files are used to set the default gcc mode to soft float
+# as a convenience, since you shouldn't link hard and soft float
+# together. In fact, arm won't even let you.
+# (Un)comment the appropriate line below.
+#SOFT_FLOAT:=true
+SOFT_FLOAT:=false
+
+TARGET_OPTIMIZATION=-Os -mips2
+TARGET_DEBUGGING= #-g
+
+# Currently the unwind stuff seems to work for staticly linked apps but
+# not dynamic. So use setjmp/longjmp exceptions by default.
+GCC_USE_SJLJ_EXCEPTIONS:=--enable-sjlj-exceptions
+#GCC_USE_SJLJ_EXCEPTIONS:=
+
+# Any additional gcc options you may want to include....
+EXTRA_GCC_CONFIG_OPTIONS:=
+
+# Enable the following if you want locale/gettext/i18n support.
+# NOTE! Currently the pregnerated locale stuff only works for x86!
+#ENABLE_LOCALE:=true
+ENABLE_LOCALE:=false
+
+# If you want multilib enabled, enable this...
+MULTILIB:=--enable-multilib
+
+# Build/install c++ compiler and libstdc++?
+#INSTALL_LIBSTDCPP:=true
+INSTALL_LIBSTDCPP:=false
+
+# Build/install java compiler and libgcj? (requires c++)
+# WARNING!!! DOES NOT BUILD FOR TARGET WITHOUT INTERVENTION!!! mjn3
+#INSTALL_LIBGCJ:=true
+INSTALL_LIBGCJ:=false
+
+# For SMP machines some stuff can be run in parallel
+#JLEVEL=-j3
+
+#############################################################
+#
+# The list of stuff to build for the target filesystem
+#
+#############################################################
+TARGETS:=host-sed
+
+ifeq ($(GCC_2_95_TOOLCHAIN),true)
+TARGETS+=uclibc-configured binutils gcc2_95
+else
+TARGETS+=uclibc-configured binutils gcc3_3
+endif
+
+# Do you want user mode Linux (x86 only), or are you building a
+# your own kernel that will run on its own? Perhaps you have a
+# kernel you have already configured and you want to use that?
+# The default is to just use a set of known working kernel
+# headers. Unless you want to build a kernel, I recommend just
+# using that...
+#TARGETS+=kernel-headers
+#TARGETS+=linux
+#TARGETS+=user-mode-linux
+#TARGETS+=system-linux
+TARGETS+= openwrt-base
+
+# The default minimal set
+#TARGETS+=busybox tinylogin
+
+# Openssh...
+#TARGETS+=zlib openssl openssh
+# Dropbear sshd is much smaller than openssl + openssh
+#TARGETS+=dropbear_sshd
+
+# Everything needed to build a full uClibc development system!
+#TARGETS+=coreutils findutils bash make diffutils patch sed
+#TARGETS+=ed flex bison file gawk tar grep bzip2
+
+#If you want a development system, you probably want gcc built
+# with uClibc so it can run within your dev system...
+#TARGETS+=gcc2_95_target ccache_target # NOT WORKING!!!
+#TARGETS+=gcc3_3_target ccache_target
+
+# Of course, if you are installing a development system, you
+# may want some header files so you can compile stuff....
+#TARGETS+=ncurses-headers zlib-headers openssl-headers
+
+# More development system stuff for those that want it
+#TARGETS+=m4 autoconf automake libtool
+
+# Perl
+#TARGETS+=perl
+
+# Some nice debugging tools
+#TARGETS+=gdb strace ltrace
+
+# The Valgrind debugger (x86 only)
+#TARGETS+=valgrind
+
+# Some stuff for access points and firewalls
+#TARGETS+=iptables hostap wtools dhcp_relay bridge
+#TARGETS+=iproute2 netsnmp
+
+# Run customize.mk at the very end to add your own special config.
+# This is useful for making your own distro within the buildroot
+# process.
+# TARGETS+=customize
+
+#############################################################
+#
+# Pick your root filesystem type.
+#
+#############################################################
+#TARGETS+=ext2root
+
+# Must mount cramfs with 'ramdisk_blocksize=4096'
+#TARGETS+=cramfsroot
+
+# You may need to edit make/jffs2root.mk to change target
+# endian-ness or similar, but this is sufficient for most
+# things as-is...
+#TARGETS+=jffs2root
+
+#TARGETS+= openwrt-linux.trx
+TARGETS+= openwrt-code.bin
+
+#############################################################
+#
+# You should probably leave this stuff alone unless you know
+# what you are doing.
+#
+#############################################################
+
+ifeq ($(SOFT_FLOAT),true)
+SOFT_FLOAT_CONFIG_OPTION:=--without-float
+TARGET_SOFT_FLOAT:=-msoft-float
+ARCH_FPU_SUFFIX:=_nofpu
+else
+SOFT_FLOAT_CONFIG_OPTION:=
+TARGET_SOFT_FLOAT:=
+ARCH_FPU_SUFFIX:=
+endif
+
+ifeq ($(INSTALL_LIBGCJ),true)
+INSTALL_LIBSTDCPP:=true
+endif
+
+# WARNING -- uClibc currently disables large file support on cris.
+ifeq ("$(strip $(ARCH))","cris")
+BUILD_WITH_LARGEFILE:=false
+endif
+
+ifneq ($(BUILD_WITH_LARGEFILE),true)
+DISABLE_LARGEFILE= --disable-largefile
+endif
+TARGET_CFLAGS=$(TARGET_OPTIMIZATION) $(TARGET_DEBUGGING)
+
+HOSTCC:=gcc
+BASE_DIR:=${shell pwd}
+SOURCE_DIR:=$(BASE_DIR)/sources
+DL_DIR:=$(SOURCE_DIR)/dl
+PATCH_DIR=$(SOURCE_DIR)/patches
+BUILD_DIR:=$(BASE_DIR)/build_$(ARCH)$(ARCH_FPU_SUFFIX)
+TARGET_DIR:=$(BUILD_DIR)/root
+STAGING_DIR=$(BUILD_DIR)/staging_dir
+TOOL_BUILD_DIR=$(BASE_DIR)/toolchain_build_$(ARCH)$(ARCH_FPU_SUFFIX)
+TARGET_PATH=$(STAGING_DIR)/bin:/bin:/sbin:/usr/bin:/usr/sbin
+IMAGE:=$(BASE_DIR)/root_fs_$(ARCH)$(ARCH_FPU_SUFFIX)
+REAL_GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux-uclibc
+GNU_TARGET_NAME=$(OPTIMIZE_FOR_CPU)-linux
+KERNEL_CROSS=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-
+TARGET_CROSS=$(STAGING_DIR)/bin/$(OPTIMIZE_FOR_CPU)-linux-uclibc-
+TARGET_CC=$(TARGET_CROSS)gcc
+STRIP=$(TARGET_CROSS)strip --remove-section=.comment --remove-section=.note
+
+
+HOST_ARCH:=$(shell $(HOSTCC) -dumpmachine | sed -e s'/-.*//' \
+ -e 's/sparc.*/sparc/' \
+ -e 's/arm.*/arm/g' \
+ -e 's/m68k.*/m68k/' \
+ -e 's/ppc/powerpc/g' \
+ -e 's/v850.*/v850/g' \
+ -e 's/sh[234]/sh/' \
+ -e 's/mips-.*/mips/' \
+ -e 's/mipsel-.*/mipsel/' \
+ -e 's/cris.*/cris/' \
+ -e 's/i[3-9]86/i386/' \
+ )
+GNU_HOST_NAME:=$(HOST_ARCH)-pc-linux-gnu
+TARGET_CONFIGURE_OPTS=PATH=$(TARGET_PATH) \
+ AR=$(TARGET_CROSS)ar \
+ AS=$(TARGET_CROSS)as \
+ LD=$(TARGET_CROSS)ld \
+ NM=$(TARGET_CROSS)nm \
+ CC=$(TARGET_CROSS)gcc \
+ GCC=$(TARGET_CROSS)gcc \
+ CXX=$(TARGET_CROSS)g++ \
+ RANLIB=$(TARGET_CROSS)ranlib
+
+ifeq ($(ENABLE_LOCALE),true)
+DISABLE_NLS:=
+else
+DISABLE_NLS:=--disable-nls
+endif
+
+
+all: world
+
+TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
+TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS))
+TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
+
+world: $(DL_DIR) $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) $(TARGETS)
+ @echo "ALL DONE."
+
+.PHONY: all world clean dirclean distclean source $(TARGETS) \
+ $(TARGETS_CLEAN) $(TARGETS_DIRCLEAN) $(TARGETS_SOURCE)
+
+include make/*.mk
+
+#############################################################
+#
+# staging and target directories do NOT list these as
+# dependancies anywhere else
+#
+#############################################################
+$(DL_DIR):
+ mkdir $(DL_DIR)
+
+$(BUILD_DIR):
+ mkdir $(BUILD_DIR)
+
+$(STAGING_DIR):
+ rm -rf $(STAGING_DIR)
+ mkdir -p $(STAGING_DIR)/lib
+ mkdir -p $(STAGING_DIR)/usr
+ ln -fs $(REAL_GNU_TARGET_NAME)/include $(STAGING_DIR)/include
+ ln -fs ../lib $(STAGING_DIR)/usr/lib
+ ln -fs ../$(REAL_GNU_TARGET_NAME)/include $(STAGING_DIR)/usr/include
+
+
+$(TARGET_DIR): $(DL_DIR)/$(OPENWRT_ROOT_SKEL)
+ rm -rf $(TARGET_DIR)
+ #zcat $(SOURCE_DIR)/skel.tar.gz | tar -C $(BUILD_DIR) -xf -
+ zcat $(DL_DIR)/$(OPENWRT_ROOT_SKEL) | tar -C $(BUILD_DIR) -xf -
+ #cp -a $(SOURCE_DIR)/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 $(TOOL_BUILD_DIR) $(BUILD_DIR) $(IMAGE) \
+ openwrt-linux.trx openwrt-g-code.bin openwrt-gs-code.bin \
+ openwrt-kmodules.tar.bz2
+
+dirclean: $(TARGETS_DIRCLEAN)
+ rm -rf $(TARGET_DIR) $(STAGING_DIR) $(IMAGE) \
+ openwrt-linux.trx openwrt-g-code.bin openwrt-gs-code.bin \
+ openwrt-kmodules.tar.bz2
+
+distclean:
+ rm -rf $(DL_DIR) $(BUILD_DIR) $(LINUX_KERNEL) $(IMAGE) \
+ openwrt-linux.trx openwrt-g-code.bin openwrt-gs-code.bin \
+ openwrt-kmodules.tar.bz2
+
+sourceball:
+ rm -rf $(BUILD_DIR)
+ set -e; \
+ cd ..; \
+ rm -f buildroot.tar.bz2; \
+ tar -cvf buildroot.tar buildroot; \
+ bzip2 -9 buildroot.tar; \