资源预览内容
第1页 / 共105页
第2页 / 共105页
第3页 / 共105页
第4页 / 共105页
第5页 / 共105页
第6页 / 共105页
第7页 / 共105页
第8页 / 共105页
第9页 / 共105页
第10页 / 共105页
亲,该文档总共105页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
CLFSCLFS分三种版本:CLFS1.0CLFS2.0(现改名为CLFS-SYSROOT)CLFS3.0(现改名为CLFS- EMBEDDED) 改名是为了不给人一种高版本号代表更先进版本的错觉。三个版本采取不同的编译安装策略CLFS-1.0版是在主机上为目标系统建立一个基础环境,即目标版体系的GLIBC、GCC、BINUTILS和其他一些辅助工具,然后在目标板启动,然后在目标板上进行系统从GLIBC到所有软件包的安装和编译工作,这样操作能得到绝对独立纯净的目标系统三个版本采取不同的编译安装策略SYSROOT版采取的是完全交叉编译安装的策略,所有软件包都在主机上交叉编译安装EMBEDDED主要是使用BUZYBOX和UCLIBC针对uclinux本机环境要求:BashBinutilsBzip2CoreutilsDiffutilsFindutilsGawkGccGlibcGrepGzipMakePatchSedTar建立安装环境磁盘分区:输入命令:cfdisk保存退出后进行磁盘分区的格式化mkswap /dev/hda7 mkfs.ext3 /dev/hda6 磁盘格式化一定要在磁盘分区未进行加载前进行建立安装环境激活交换分区swapon /dev/hda7创建CLFS的“创作基地”export CLFS=/mnt/clfs mkdir -pv $CLFS加载CLFS文件系统存放的分区mount /dev/hda6 $CLFS准备工作建立用户groupadd clfsuseradd -s /bin/bash -g clfs -m -k /dev/null clfspasswd clfs创建工作目录mkdir -pv /mnt/clfs/build,downloadchown -Rv clfs $CLFS切换用户su - clfs设置环境变量cat /.bash_profile /.bashrc /.bashrcecho unset CXXFLAGS /.bashrc在建立交叉编译工具和将来进行交叉编译时需要一些特定的变量export CLFS_HOST=$(echo $MACHTYPE | sed s/$(echo $MACHTYPE | cut -d- -f2)/cross/)export CLFS_TARGET=mipsel-linux-gnuecho export CLFS_HOST=$CLFS_HOST /.bashrcecho export CLFS_TARGET=$CLFS_TARGET /.bashrc到这里建立交叉编译工具链的环境已经搭建完毕,可以开始制作交叉编译工具链。然后加载.bash_profile。source /.bash_profile建立目标系统目录结构建立目标系统目录结构pushd $CLFSmkdir -pv bin,boot,dev,etc/,opt,home,lib,mntmkdir -pv proc,media/floppy,cdrom,sbin,srv,sysmkdir -pv var/lock,log,mail,run,spoolmkdir -pv var/opt,cache,lib/misc,locate,localinstall -dv -m 0750 rootinstall -dv -m 1777 var/,tmpmkdir -pv usr/,local/bin,include,lib,sbin,srcmkdir -pv usr/,local/share/doc,info,locale,manmkdir -pv usr/,local/share/misc,terminfo,zoneinfomkdir -pv usr/,local/share/man/man1.8for dir in usr,/local; doln -sv share/man,doc,info $dirdonecd bootln -svf . bootmkdir -v $CLFS/cross-toolspopd创建必要的用户、组和日志文件cat $CLFS/etc/passwd $CLFS/etc/group configuretar xvf $DOWNLOADDIR/glibc-ports-2.6.1.tar.bz2mv -v glibc-ports-2.6.1/ ports/glibc能够支持mips而安装的,标准的glibc并不支持mips等几个体系,而glibc-ports就是为了补充这部分的支持而出现的(这里必须将其改为ports,否则编译无法找到)。echo ports/sysdeps/mips/mips32/Makefile /清空ports/sysdeps/mips/mips32/Makefile,mipsel-linux-gcc无法识别该Makefile中传参变量abi。sed -i s/wordsize.h$/wordsize.hn#define _WORDSIZE 32/g bits/types.hmkdir -v ./glibc-buildcd ./glibc-build3.目标系统glibc头文件(2)echo libc_cv_forced_unwind=yes config.cacheecho libc_cv_c_cleanup=yes config.cacheecho libc_cv_mips_tls=yes config.cacheecho install_root=$CLFS configparmsCC=gcc ./glibc-2.6.1/configure -prefix=/usr -host=$CLFS_TARGET -build=$CLFS_HOST -with-headers=$CLFS/usr/include -cache-file=config.cache这个编译参数说明gcc用的是主系统的gcc,这里需要注意的是-prefix=/usr虽然指定的是/usr目录,但实际上最后安装到的是$ install_root/usr下,如果没有指定install_root,那自然是安装到了/usr,而因为前面指定了install_root 的目录,实际上最后安装到了$CLFS/usr下。-with-headers指定了使用的头文件的目录,glibc唯一必须要的头文件就是内核的头文件,因为glibc也是可以支持多种内核平台的,比如BSD,所以它也必须了解所服务的内核的所有特征细节,因此就不难理解为什么内核头文件必须先于glibc的头文件安装,只有这样 glibc才能“了解”到准确的内核信息。3.目标系统glibc头文件(3)make install-headersinstall -dv $CLFS/usr/include/bitscp -v bits/stdio_lim.h $CLFS/usr/include/bitstouch $TARGET_DIR/usr/include/bits/stdio_lim.h touch $CLFS/usr/include/gnu/stubs.hcp -v ./glibc-2.6.1/ports/sysdeps/unix/sysv/linux/mips/nptl/bits/pthreadtypes.h $CLFS/usr/include/bitscd .rm -rf glibc-2.6.1/ glibc-build/popd4.gcc-4.2.1第一遍(1)tar xvf $DOWNLOADDIR/gcc-4.2.1.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/gcc-4.2.1/patch -Np1 -i $DOWNLOADDIR/gcc-4.2.1-posix-1.patchpatch -Np1 -i $DOWNLOADDIR/gcc-4.2.1-cross_search_paths-1.patchmkdir -v ./gcc-buildcd ./gcc-build./gcc-4.2.1/configure -prefix=$CLFS/cross-tools -host=$CLFS_HOST -target=$CLFS_TARGET -disable-multilib -with-sysroot=$CLFS -disable-nls -disable-shared -enable-languages=c从参数上理解就是,gcc将被安装到$CLFS/cross-tools,而且只编译c语言部分,同时将$CLFS所定义的目录作为根目录(-with-sysroot)。如果要生成支持C+的交叉版的GCC需要目标版的Glibc库,而现在我们还没有目标版的Glibc库,还好编译Glibc只需要支持C的交叉版GCC,而支持C的交叉版GCC只需要Glibc头文件就可以编译出来。这样看来第一次编译的GCC的使命就十分明显了:他就是用来编译接下来的Glibc库。这里第二次用到-with-sysroot这个参数。4.gcc-4.2.1第一遍(2)make all-gccmake install-gcccd .rm -rf gcc-build/ gcc-4.2.1/popd5.目标系统的glibc (1)tar xvf $DOWNLOADDIR/glibc-2.6.1.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/glibc-2.6.1/tar xvf $DOWNLOADDIR/glibc-ports-2.6.1.tar.bz2mv -v glibc-ports-2.6.1/ portspatch -Np1 -i $DOWNLOADDIR/glibc-2.6.1-libgcc_eh-1.patchpatch -Np1 -i $DOWNLOADDIR/glibc-2.6.1-localedef_segfault-1.patchpatch -Np1 -i $DOWNLOADDIR/glibc-2.6.1-cross_hacks-1.patchpatch -Np1 -i $DOWNLOADDIR/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patchln -s nptl/sysdeps/unix/sysv/linux/i386 ports/sysdeps/unix/mkdir -v ./glibc-buildcd ./glibc-buildecho libc_cv_forced_unwind=yes config.cacheecho libc_cv_c_cleanup=yes config.cacheecho install_root=$CLFS configparms5.目标系统的glibc (2)BUILD_CC=gcc CC=$CLFS_TARGET-gcc AR=$CLFS_TARGET-ar RANLIB=$CLFS_TARGET-ranlib ./glibc-2.6.1/configure -prefix=/usr -libexecdir=/usr/lib/glibc -host=$CLFS_TARGET -build=$CLFS_HOST -disable-profile -enable-add-ons -with-tls -enable-kernel=2.6.0 -with-_thread -with-binutils=$CLFS/cross-tools/bin -with-headers=$CLFS/usr/include -cache-file=config.cacheBUILD_CC使用的是主机的GCC而不是刚才编译生成的交叉版GCC,这是运行于I386上生成的二进制执行文件也是运行于I386上的,这是来编译一些临时文件用的。CC指定的是刚编译出来的交叉版的GCC,这里我们编译生成的Glibc是目标版上运行的所以要用到交叉版的GCC。AR和RANLIB是binutils中的工具,它们也是在编译过程中需要用到的,而且是用来处理目标平台的二进制文件,所以它们也是使用交叉编译用的版本。-prefix=/usr -libexecdir=/usr/lib/glibc前面已经提过是在$CLFS目录下的/usr和/usr/lib/glibc。-host指定了生成的Glibc是运行于目标体系的,这与刚才编译的Binutils和GCC不同,Binutils和GCC是交叉版,他们运行于主系统(i386)生成的2进制文件运行于目标平台。-with-binutils=$CLFS/cross-tools/bin则是表明使用的binutils是用的交叉版的。5.目标系统的glibc (3)makemake instal上面的命令没有安装 locale(用另一种语言反馈信息),所以用下面的命令来安装它们make localedata/install-localescd .rm -rf glibc-2.6.1/ glibc-build/popd6.Configuring Glibccat $CLFS/etc/nsswitch.conf $CLFS/etc/ld.so.conf EOF# Begin /etc/ld.so.conf/usr/local/lib/opt/lib# End /etc/ld.so.confEOF默认情况下,动态链接库加载程序(/lib/ld-linux.so.2)搜索 /lib 和 /usr/lib 目录来寻找程序需要使用的动态连接库。但是,如果某些库在这两个目录之外,你就需要把它们的路径加到 /etc/ld.so.conf 文件里,以便动态链接库加载程序能够找到它们。 /usr/local/lib 和 /opt/lib 是两个经常包含动态连接库但又不在默认目录中的目录,我们要把它们添加到动态链接库加载程序的搜索路径中7.gcc-4.1.1第二遍tar xvf $DOWNLOADDIR/gcc-4.2.1.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/gcc-4.2.1/patch -Np1 -i $DOWNLOADDIR/gcc-4.2.1-posix-1.patchpatch -Np1 -i $DOWNLOADDIR/gcc-4.2.1-cross_search_paths-1.patchmkdir -v ./gcc-buildcd ./gcc-build./gcc-4.2.1/configure -prefix=$CLFS/cross-tools -host=$CLFS_HOST -target=$CLFS_TARGET -disable-multilib -with-sysroot=$CLFS -disable-nls -enable-shared -enable-languages=c,c+ -enable-_cxa_atexit -enable-c99 -enable-long-long -enable-threads=posix这里加入了对C+的系列支持,多线程编程支持。在这里第三次的出现了-with-sysroot这个参数,它是建立交叉工具链的关键,也将解释为什么需要两次编译GCC。makemake installcd .rm -rf gcc-4.2.1/ gcc-build/popdwith-sysroot参数-with-sysroot参数GCC在执行编译时是默认从/usr/include中找头文件来编译的,而binutils中的工具ld是从/lib /usr/lib、LD_LIBRARY_PATH、/etc/ld.so.conf等设置中所指定的路径搜索动态库或者静态库进行链接操作的,也就是说他们都会到根目录去寻找相关的东西,而我们进行交叉编译如果去连接主机的这些库和头文件,这样生成的二进制执行文件是不能在目标板上运行的。而-with-sysroot参数的功能正是让交叉工具以-with-sysroot指定的目录作为根目录,在这个下面寻找相关文件。with-sysroot参数三次-with-sysroot参数分别出现在Binutils、GCC第一次和GCC第二次中。 第一次,Binutils下使用,目的是让Binutils在查找库的时候到-with-sysroot指定的地方查,接着的glibc-headers和gcc都没有用到这个Binutils,这个交叉版的Binutils是后面安装目标系统Glibc和软件包时用到的;第二次,第一次编译GCC下使用,目的是让这个GCC在编译的时候默认到-with-sysroot/usr/include下找头文件。接着我们就开始编译目标体系平台下的Glibc了,这个时候交叉版本的Binutils和第一次编译的GCC都用上了,则我们也就清楚了,在编译这个 Glibc的时候是到$CLFS/usr/include里找头文件,到$CLFS/lib等目录下链接库的,不过Glibc是目标系统的第一个软件包,因此,他并不需要到$CLFS/lib等目录下的库链接,但交叉版本的Binutils还是顺利的完成了Glibc编译目录下自己众多库文件的链接工作。这里Binutils的-with-sysroot没有体现出来,但GCC的-with-sysroot已经发挥作用了。 第三次,实际上这次是为了替换掉第一次编译的gcc而重复的,所以可以理解和第二次使用-with-sysroot是一样的。8.File软件包tar xvf $DOWNLOADDIR/file-4.21.tar.gz -C $BUILDDIRpushd $BUILDDIR/file-4.21/./configure -prefix=$TARGET_DIR/cross-toolsmakemake installcd .rm -rf file-4.21/popdFlex 包含一个工具,可用于生成识别文本中图形的程序。7.Groff软件包tar xvf $DOWNLOADDIR/groff-1.19.2.tar.gz -C $BUILDDIRpushd $BUILDDIR/groff-1.19.2/PAGE=A4 ./configure -prefix=$CLFS/cross-tools -without-xmakemake installcd .rm -rf groff-1.19.2/popd测试交叉工具#include intmain() printf(HELLO!n); return 0;编译生成二进制文件mipsel-linux-gnu-gcc -o hello hello.c查看file hello将hello传到目标板上看是否能运行。目标系统制作export CC=$CLFS_TARGET-gccexport CXX=$CLFS_TARGET-g+export AR=$CLFS_TARGET-arexport AS=$CLFS_TARGET-asexport RANLIB=$CLFS_TARGET-ranlibexport LD=$CLFS_TARGET-ldexport STRIP=$CLFS_TARGET-stripecho export CC=$CC /.bashrcecho export CXX=$CXX /.bashrcecho export AR=$AR /.bashrcecho export AS=$AS /.bashrcecho export RANLIB=$RANLIB /.bashrcecho export LD=$LD /.bashrcecho export STRIP=$STRIP /.bashrc编译内核Linux-2.6.17.6tar xvf $DOWNLOADDIR/linux-2.6.22.6.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/linux-2.6.22.6/cp arch/mips/configs/qemu_defconfig .configmake ARCH=mips CROSS_COMPILE=$CLFS_TARGET- menuconfigmake ARCH=mips CROSS_COMPILE=$CLFS_TARGET-make ARCH=mips CROSS_COMPILE=$CLFS_TARGET- INSTALL_MOD_PATH=$CLFSmodules_installcp vmlinux $CLFS/boot/clfskernel-2.6.17.6cp System.map $CLFS/boot/System.map-2.6.17.6cp .config $CLFS/boot/config-2.6.17.6目标系统制作(1) Man-pages-2.64 Binutils-2.18 GCC-4.2.1 Sed-4.1.5 一个流编辑程序,在一个输入流(从一个文件或者一个管道的输入)上进行基本的文本编辑操作。 E2fsprogs-1.40.2 提供用于 ext2 文件系统的工具。它还支持 ext3 日志文件系统。 Coreutils-6.9 软件包包括一整套基本的 shell 工具。 Iana-Etc-2.20 软件包提供了网络服务和协议的数据。 M4-1.4.10 M4 软件包包含一个宏处理器。 目标系统制作(2) Bison-2.3 包括一个语法分析程序生成器 Ncurses-5.6 提供字符终端处理库,包括面板和菜单。 Procps-3.2.7 用于监视系统进程的程序。 Libtool-1.5.24 一个通用库支持脚本,将使用动态库的复杂性隐藏在统一的、可移植的接口中。 Perl-5.8.8 Readline-5.2 一个提供命令行编辑和历史纪录功能的库集合。 Zlib-1.2.3 包含 zlib 库,很多程序中的压缩或者解压缩程序都会用到这个库。 Autoconf-2.61 生成用于自动配置源代码的 shell 脚本 Automake-1.10 与 Autoconf 配合使用,产生 Makefile 文件。 Bash-3.2 命令行解释器 Bzip2-1.0.4 包含了对文件进行压缩和解压缩的工具,对于文本文件,bzip2 比传统的 gzip 拥有更高压缩比。 Diffutils-2.8.7 软件包里的程序向你显示两个文件或目录的差异,常用来生成软件的补丁。 File-4.21 用来判断文件类型的工具。目标系统制作(3)Findutils-4.2.31 包含查找文件的工具,既能即时查找(递归的搜索目录,并可以显示、创建和维护文件),也能在数据库里查找(通常比递归查找快但是在数据库没有及时更新的情况下,结果并不可靠)。Flex-2.5.33 包含一个能生成识别文本模式的程序的工具。Gawk-3.1.5 Gawk 软件包包含用于管理文本文件的程序。Gettext-0.16.1用于系统的国际化和本地化,可以在编译程序的时候使用本国语言支持(NLS),可以使程序的输出使用用户设置的语言而不是英文Grep-2.5.3 可以搜索文件中符合指定匹配模式的行。Groff-1.19.2 Groff 软件包包含几个处理和格式化文本的程序。Groff 把标准的文本和特殊的命令翻译成格式化的输出,就像你在 man 手册页里看到的那样。目标系统制作(4)Gzip-1.3.12 包含用 Lempel-Ziv 编码(LZ77)来压缩和解压文件的程序。 Inetutils-1.5 Inetutils 包含基本的网络程序IPRoute2-2.6.19-061214 包含了基本的和高级的基于 IPv4 网络的程序。Kbd-1.13 包含键盘映射表和键盘工具。Less-406 包含一个文本显示程序Make-3.81 Make 自动地确定一个大型程序的哪些片段需要重新编译,并且发出命令去重新编译它们。 Man-1.6eMktemp-1.5 此软件包包含用于在 shell 脚本中创建安全临时文件的程序。Module-Init-Tools-3.2.2处理内核模块目标系统制作(5)Patch-2.5.9根据补丁文件的内容来修改原来的文件。补丁文件通常是用 diff 程序创建的,包含如何修改文件的指导。Psmisc-22.5包含有用于显示进程信息的程序。Shadow-4.0.18.1Sysklogd-1.5Sysvinit-2.86Tar-1.18Texinfo-4.9 Texinfo 软件包包含读取、写入、转换 Info 文档的程序。Udev-115软件包包含动态地创建设备节点的程序。Util-linux-ng-2.13Util-linux 软件包包含许多工具。其中比较重要的是加载、卸载、格式化、分区和管理硬盘驱动器,打开 tty 端口和得到内核消息Vim-7.1编译内核tar xvf $DOWNLOADDIR/linux-2.6.18.1.tar.gz -C $BUILDDIRpushd $BUILDDIR/linux-2.6.18.1 make mrproper /这样可以确保内核源码树是绝对干净的cp $DOWNLOADDIR/cq8401 .config &make ARCH=mips CROSS_COMPILE=$CLFS_TARGET- menuconfig &make ARCH=mips CROSS_COMPILE=$CLFS_TARGET- &make ARCH=mips CROSS_COMPILE=$CLFS_TARGET- INSTALL_MOD_PATH=$TARGET_DIR modules_install &cp vmlinux.32 $TARGET_DIR/boot/loongson-vmlinux-64-2.6.18.1 &cp System.map $TARGET_DIR/boot/loongson-System.map-64-2.6.18.1cd .popd配置 setclock 脚本setclock 脚本从硬件时钟,也就是 BIOS 或 CMOS 时钟读取时间。如果硬件时钟设置为 UTC ,这个脚本会使用 /etc/localtime 文件(这个文件把用户所在的时区告诉 hwclock 程序)将硬件时钟的时间转换为本地时间。没有办法自动检测硬件时钟是否设置为 UTC 时间,因此需要手动设置。cat $TARGET_DIR/etc/sysconfig/clock /etc/sysconfig/console /etc/inputrc EOF# Begin /etc/inputrc# Modified by Chris Lynn # Allow the command prompt to wrap to the next lineset horizontal-scroll-mode Off# Enable 8bit inputset meta-flag Onset input-meta On# Turns off 8th bit strippingset convert-meta Off# Keep the 8th bit for displayset output-meta On# none, visible or audibleset bell-style none# All of the following map the escape sequence of the value# contained in the 1st argument to the readline specific functionseOd: backward-wordeOc: forward-word# for linux consolee1: beginning-of-linee4: end-of-linee5: beginning-of-historye6: end-of-historye3: delete-chare2: quoted-insert# for xtermeOH: beginning-of-lineeOF: end-of-line# for KonsoleeH: beginning-of-lineeF: end-of-line# End /etc/inputrcEOF创建 /etc/inputrc 文件 设置inputrc 文件为特定的情况处理键盘映射,这个文件被 Readline 用作启动文件,Readline 是 Bash 和其它大多数 shell 使用的与输入相关的库。( bash下的键盘功能键设置)cat $TARGET_DIR/etc/inputrc $TARGET_DIR/etc/profile $TARGET_DIR/etc/sysconfig/network创建 /etc/hosts 文件在 /etc/hosts 文件里配置网卡的 IP 地址、FQDN 和可能会用的别名cat $TARGET_DIR/etc/hosts $TARGET_DIR/etc/resolv.conf ifconfig.eth0/ipv4 $TARGET_DIR/etc/fstab libiberty/Makefile.incp gcc/gccbug.in,.origsed s/have_mktemp_command/yes/ gcc/gccbug.in.orig gcc/gccbug.incp gcc/Makefile.in,.origsed s./fixinc.sh-c true gcc/Makefile.in.orig gcc/Makefile.inmkdir -v ./gcc-buildcd ./gcc-build./gcc-4.2.1/configure -prefix=/usr -libexecdir=/usr/lib -build=$CLFS_HOST -host=$CLFS_TARGET -target=$CLFS_TARGET -enable-shared -enable-threads=posix -enable-_cxa_atexit -enable-c99 -enable-long-long -enable-clocale=gnu -enable-languages=c,c+ -disable-libstdcxx-pchmakemake DESTDIR=$CLFS installln -sfv ./usr/bin/cpp $CLFS/libln -sfv gcc $CLFS/usr/bin/cccd .rm -rf gcc-build/ gcc-4.2.1/Popd-Sed- tar xvf $DOWNLOADDIR/sed-4.1.5.tar.gz -C $BUILDDIRpushd $BUILDDIR/sed-4.1.5./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usr -bindir=/bin -enable-htmlmakemake DESTDIR=$TARGET_DIR installcd .rm -rf sed-4.1.5popd-E2fsprogs-tar xvf $DOWNLOADDIR/e2fsprogs-1.40.2.tar.gz -C $BUILDDIRpushd $BUILDDIR/e2fsprogs-1.40.2/mkdir -v buildcd build./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usr -with-root-prefix= -enable-elf-shlibs -disable-evmsmakemake DESTDIR=$TARGET_DIR installmake DESTDIR=$TARGET_DIR install-libscd ./.rm -rf e2fsprogs-1.40.2popd-Coreutils-tar xvf $DOWNLOADDIR/coreutils-6.9.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/coreutils-6.9patch -Np1 -i $DOWNLOADDIR/coreutils-6.9-suppress_uptime_kill_su-1.patchpatch -Np1 -i $DOWNLOADDIR/coreutils-6.9-uname-1.patchsed -i s/futimens/gl_&/ $(grep -lr futimens *)touch man/uname.1 man/touch.1echo fu_cv_sys_stat_statfs2_bsize=yes config.cache./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usr -cache-file=config.cachemakemake DESTDIR=$TARGET_DIR installmv -v $TARGET_DIR/usr/bin/cat,chgrp,chmod,chown,cp,date $TARGET_DIR/binmv -v $TARGET_DIR/usr/bin/dd,df,echo,false,hostname,ln,ls,mkdir,mknod $TARGET_DIR/binmv -v $TARGET_DIR/usr/bin/mv,pwd,rm,rmdir,stty,true,uname $TARGET_DIR/binmv -v $TARGET_DIR/usr/bin/chroot $TARGET_DIR/usr/sbinmv -v $TARGET_DIR/usr/bin/,basename,head,install,nice $TARGET_DIR/binmv -v $TARGET_DIR/usr/bin/readlink,sleep,sync,test,touch $TARGET_DIR/binln -svf ././bin/install $TARGET_DIR/usr/bincd .rm -rf coreutils-6.9popd-Iana_Etc-tar xvf $DOWNLOADDIR/iana-etc-2.20.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/iana-etc-2.20makemake DESTDIR=$TARGET_DIR installcd .rm -rf iana-etc-2.20popd-M4-tar xvf $DOWNLOADDIR/m4-1.4.10.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/m4-1.4.10/./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usrmakemake DESTDIR=$TARGET_DIR installcd .rm -rf m4-1.4.10popd-Bison-tar xvf $DOWNLOADDIR/bison-2.3.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/bison-2.3./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usrecho #define YYENABLE_NLS 1 config.hmakemake DESTDIR=$TARGET_DIR installcd .rm -rf bison-2.3popd-Ncurses-tar xvf $DOWNLOADDIR/ncurses-5.6.tar.gz -C $BUILDDIRpushd $BUILDDIR/ncurses-5.6patch -Np1 -i /mnt/clfs/download/ncurses-5.6-bash_fix-1.patch./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usr -libdir=/lib -with-shared -without-debug -without-ada -with-build-cc=gccmakemake DESTDIR=$TARGET_DIR installmv -v $TARGET_DIR/lib/libpanel,menu,form,ncurses,ncurses+,curses.a $TARGET_DIR/usr/librm -v $TARGET_DIR/lib/libncurses,menu,panel,form,curses.soln -svf ././lib/libncurses.so.5 $TARGET_DIR/usr/lib/libcurses.soln -svf ././lib/libncurses.so.5 $TARGET_DIR/usr/lib/libncurses.soln -svf ././lib/libmenu.so.5 $TARGET_DIR/usr/lib/libmenu.soln -svf ././lib/libpanel.so.5 $TARGET_DIR/usr/lib/libpanel.soln -svf ././lib/libform.so.5 $TARGET_DIR/usr/lib/libform.sochmod -v 755 $TARGET_DIR/lib/libpanel,menu,form,ncurses.so.5.6cd .rm -rf ncurses-5.6popd-Procps-tar xvf $DOWNLOADDIR/procps-3.2.7.tar.gz -C $BUILDDIRpushd $BUILDDIR/procps-3.2.7make CPPFLAGS=make DESTDIR=$CLFS lib64=lib ldconfig= install=install -D installcd .rm -rf procps-3.2.7popd-Libtool-tar xvf $DOWNLOADDIR/libtool-1.5.24.tar.gz -C $BUILDDIRpushd $BUILDDIR/libtool-1.5.24./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usrmakemake DESTDIR=$TARGET_DIR installcd .rm -rf libtool-1.5.24popd-Perl-5.8.8-tar xvf $DOWNLOADDIR/perl-5.8.8.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/perl-5.8.8/patch -Np1 -i $DOWNLOADDIR/perl-5.8.8-gcc42_fix-1.patchpatch -Np1 -i $DOWNLOADDIR/perl-5.8.8-cross_compile-5.patchsed -i -e spldlflags=pldlflags=$cccdlflagsg -e sstatic_target=staticstatic_target=static_picg Makefile.SHcd Crossmake ARCH=mips CROSS_COMPILE=$CLFS_TARGET-make DESTDIR=$CLFS installcd .rm -rf perl-5.8.8/popd-Readline-tar xvf $DOWNLOADDIR/readline-5.2.tar.gz -C $BUILDDIRpushd $BUILDDIR/readline-5.2patch -Np1 -i $DOWNLOADDIR/readline-5.2-fixes-3.patch./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usr -libdir=/libmake SHLIB_XLDFLAGS=-lncursesmake DESTDIR=$TARGET_DIR installchmod -v 755 $TARGET_DIR/lib/libreadline,history.so*mv -v $TARGET_DIR/lib/libreadline,history.a $TARGET_DIR/usr/librm -v $TARGET_DIR/lib/libreadline,history.soln -svf ././lib/libreadline.so.5 $TARGET_DIR/usr/lib/libreadline.soln -svf ././lib/libhistory.so.5 $TARGET_DIR/usr/lib/libhistory.socd .rm -rf readline-5.2popd-Zlib-tar xvf $DOWNLOADDIR/zlib-1.2.3.tar.gz -C $BUILDDIRpushd $BUILDDIR/zlib-1.2.3patch -Np1 -i $DOWNLOADDIR/zlib-1.2.3-fPIC-1.patch./configure -prefix=/usr -sharedmake AR=$AR rcmake prefix=$TARGET_DIR/usr installmv -v $TARGET_DIR/usr/lib/libz.so.* $TARGET_DIR/libln -svf ././lib/libz.so.1 $TARGET_DIR/usr/lib/libz.sochmod -v 644 $TARGET_DIR/usr/lib/libz.acd .rm -rf zlib-1.2.3popd-Autoconf-tar xvf $DOWNLOADDIR/autoconf-2.61.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/autoconf-2.61./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usrmakemake DESTDIR=$TARGET_DIR installcd .rm -rf autoconf-2.61popd-Automake-tar xvf $DOWNLOADDIR/automake-1.10.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/automake-1.10./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usrmakemake DESTDIR=$TARGET_DIR installcd .rm -rf automake-1.10popd-Bash-tar xvf $DOWNLOADDIR/bash-3.2.tar.gz -C $BUILDDIRpushd $BUILDDIR/bash-3.2tar -xvf $DOWNLOADDIR/bash-doc-3.2.tar.gzpatch -Np1 -i $DOWNLOADDIR/bash-3.2-fixes-6.patchecho bash_cv_sys_named_pipes=yes config.cache./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usr -bindir=/bin -cache-file=config.cache -without-bash-malloc -with-installed-readlinemakemake DESTDIR=$TARGET_DIR htmldir=/usr/share/doc/bash-3.2 installln -sfv bash $TARGET_DIR/bin/shcd .rm -rf bash-3.2popd-Bzip2-tar xvf $DOWNLOADDIR/bzip2-1.0.4.tar.gz -C $BUILDDIRpushd $BUILDDIR/bzip2-1.0.4cp Makefile,.orig &sed -e /all:/s/ test/ Makefile.orig Makefilemake -f Makefile-libbz2_so CC=$CC AR=$AR RANLIB=$RANLIBmake cleanmake CC=$CC AR=$AR RANLIB=$RANLIBmake PREFIX=$TARGET_DIR/usr installcp -v bzip2-shared $TARGET_DIR/bin/bzip2cp -av libbz2.so* $TARGET_DIR/libln -sfv ././lib/libbz2.so.1.0 $TARGET_DIR/usr/lib/libbz2.sorm -v $TARGET_DIR/usr/bin/bunzip2,bzcat,bzip2ln -sfv bzip2 $TARGET_DIR/bin/bunzip2ln -sfv bzip2 $TARGET_DIR/bin/bzcatcd .rm -rf bzip2-1.0.4popd-Diffutils-tar xvf $DOWNLOADDIR/diffutils-2.8.7.tar.gz -C $BUILDDIRpushd $BUILDDIR/diffutils-2.8.7./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usrmakemake DESTDIR=$TARGET_DIR installcd .rm -rf diffutils-2.8.7popd-File-tar xvf $DOWNLOADDIR/file-4.21.tar.gz -C $BUILDDIRpushd $BUILDDIR/file-4.21./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usrmakemake DESTDIR=$TARGET_DIR installcd .rm -rf file-4.21popd-Findutils-tar xvf $DOWNLOADDIR/findutils-4.2.31.tar.gz -C $BUILDDIRpushd $BUILDDIR/findutils-4.2.31./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usr -libexecdir=/usr/lib/locate -localstatedir=/var/lib/locatemakemake DESTDIR=$TARGET_DIR installmv -v $TARGET_DIR/usr/bin/find $TARGET_DIR/bincp $TARGET_DIR/usr/bin/updatedb,.origsed sfind:=$BINDIRfind:=/bin $TARGET_DIR/usr/bin/updatedb.orig $TARGET_DIR/usr/bin/updatedbrm $TARGET_DIR/usr/bin/updatedb.origcd .rm -rf findutils-4.2.31popd-Flex-tar xvf $DOWNLOADDIR/flex-2.5.33.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/flex-2.5.33cp -v Makefile.in,.orig &sed s/-Iincludedir/g Makefile.in.orig Makefile.in./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usrmake CC=$CC -fPIC libfl.amakemake DESTDIR=$TARGET_DIR installln -sfv libfl.a $TARGET_DIR/usr/lib/libl.acd .rm -rf flex-2.5.33cat $TARGET_DIR/usr/bin/lex config.h $dir/Makefiledone cp misc/Makefile,.origsed /TARGETS/sarpdg misc/Makefile.orig misc/Makefilemake CC=$CC SBINDIR=/sbinmake DESTDIR=$CLFS SBINDIR=/sbin installcd .rm -rf iproute2-2.6.19-061214popd-Kbd-tar xvf $DOWNLOADDIR/kbd-1.13.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/kbd-1.13cp configure,.origsed -e s& ./conftest configure.orig configurecp src/Makefile.in,.orig &sed -e s/install -s/install/ src/Makefile.in.orig src/Makefile.in./configure -datadir=/lib/kbdcp make_include,.orig &sed /ARCH/s/=.*/=mips/ make_include.orig make_includemake CC=$CCmake DESTDIR=$TARGET_DIR installmv -v $TARGET_DIR/usr/bin/kbd_mode,openvt,setfont $TARGET_DIR/bincd .rm -rf kbd-1.13popd-Less-tar xvf $DOWNLOADDIR/less-406.tar.gz -C $BUILDDIRpushd $BUILDDIR/less-406./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usr -sysconfdir=/etcmakemake prefix=$TARGET_DIR/usr installmv -v $TARGET_DIR/usr/bin/less $TARGET_DIR/bincd .rm -rf less-406popd-Make-tar xvf $DOWNLOADDIR/make-3.81.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/make-3.81./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usrmakemake DESTDIR=$TARGET_DIR installcd .rm -rf make-3.81popd-Man-tar xvf $DOWNLOADDIR/man-1.6e.tar.gz -C $BUILDDIRpushd $BUILDDIR/man-1.6ecp configure,.orig &sed -e /PREPATH=/s=.*=$(eval echo $TARGET_DIR/,usr/sbin,bin)g -e s-is&Rg configure.orig configurecp src/man.conf.in,.orig &sed -e sMANPATH./usr/man#&g -e sMANPATH./usr/local/man#g src/man.conf.in.orig src/man.conf.in./configure -confdir=/etccp conf_script,.orig &sed s$TARGET_DIR conf_script.orig conf_scriptgcc src/makemsg.c -o src/makemsgmake make DESTDIR=$TARGET_DIR installcd .rm -rf man-1.6epopd-Mktemp-tar xvf $DOWNLOADDIR/mktemp-1.5.tar.gz -C $BUILDDIRpushd $BUILDDIR/mktemp-1.5patch -Np1 -i $DOWNLOADDIR/mktemp-1.5-add_tempfile-3.patchcp Makefile.in,.orig &sed -e s/-s $(PROG)/$(PROG)/ Makefile.in.orig Makefile.in./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usr -with-libcmakemake prefix=$TARGET_DIR/usr installmake prefix=$TARGET_DIR/usr install-tempfilecd .rm -rf mktemp-1.5popd-Module_Init_Tools-tar xvf $DOWNLOADDIR/module-init-tools-3.2.2.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/module-init-tools-3.2.2./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/ -enable-zlibmakemake DESTDIR=$TARGET_DIR INSTALL=install installcd .rm -rf module-init-tools-3.2.2popd-Patch-tar xvf $DOWNLOADDIR/patch-2.5.9.tar.gz -C $BUILDDIRpushd $BUILDDIR/patch-2.5.9echo ac_cv_path_ed_PROGRAM=ed config.cache./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usrmakemake prefix=$TARGET_DIR/usr installcd .rm -rf patch-2.5.9popd-Psmisc-tar xvf $DOWNLOADDIR/psmisc-22.5.tar.gz -C $BUILDDIRpushd $BUILDDIR/psmisc-22.5echo ac_cv_func_malloc_0_nonnull=yes config.cacheecho ac_cv_func_realloc_0_nonnull=yes config.cache./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usr -exec-prefix= -cache-file=config.cachemakemake DESTDIR=$TARGET_DIR installmv -v $TARGET_DIR/bin/pstree* $TARGET_DIR/usr/binln -sfv killall $TARGET_DIR/bin/pidofcd .rm -rf psmisc-22.5popd-Shadow-tar xvf $DOWNLOADDIR/shadow-4.0.18.1.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/shadow-4.0.18.1patch -Np1 -i $DOWNLOADDIR/shadow-4.0.18.1-fixes-1.patchpatch -Np1 -i $DOWNLOADDIR/shadow-4.0.18.1-sysroot_hacks-1.patchecho ac_cv_func_setpgrp_void=yes config.cache./configure -build=$CLFS_HOST -host=$CLFS_TARGET -libdir=/lib -sysconfdir=/etc -enable-shared -without-libpam -without-audit -without-selinux -cache-file=config.cachecp src/Makefile,.orig sed s/groups$(EXEEXT) / src/Makefile.orig src/Makefilecp man/Makefile,.orig sed -e /groups1.xml/d -e s/groups.1/ man/Makefile.orig man/Makefilemakemake DESTDIR=$TARGET_DIR installcp $CLFS/etc/login.defs login.defs.origsed -es#MD5_CRYPT_ENAB.noMD5_CRYPT_ENAB yes -e s/var/spool/mail/var/mail login.defs.orig $CLFS/etc/login.defsmv -v $TARGET_DIR/usr/bin/passwd $TARGET_DIR/binmv -v $TARGET_DIR/lib/libshadow.*a $TARGET_DIR/usr/librm -v $TARGET_DIR/lib/libshadow.soln -svf ././lib/libshadow.so.0 $TARGET_DIR/usr/lib/libshadow.so*$CLFS_TARGET-pwconv$CLFS_TARGET-grpconv$CLFS_TARGET-passwd root*cd .rm -rf shadow-4.0.18.1popd-Sysklogd-tar xvf $DOWNLOADDIR/sysklogd-1.5.tar.gz -C $BUILDDIRpushd $BUILDDIR/sysklogd-1.5cp Makefile,.orig &sed -e s/-o $MAN_USER -g $MAN_GROUP/ -e s/500 -s/500/ Makefile.orig Makefilemake CC=$CCmake prefix=$TARGET_DIR installcd .rm -rf sysklogd-1.5cat $CLFS/etc/syslog.conf src/init.ccp -v src/Makefile src/Makefile.origsed -e s/dev/initctl$(ROOT)&g -e s(mknod )-m (0-9* )(.* )p13p; chmod 23g -e /ifeq/s/$(ROOT)/ -e s/usr/lib$(ROOT)& src/Makefile.orig src/Makefilemake -C src clobbermake -C src ROOT=$CLFS CC=$CCmake -C src ROOT=$CLFS INSTALL=install installcd .rm -rf sysvinit-2.86cat $CLFS/etc/inittab /dev/nulldonepopd-Udev-tar xvf $DOWNLOADDIR/udev-115.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/udev-115make CROSS_COMPILE=$CLFS_TARGET- CC=$CC LD=$CC EXTRAS=extras/ata_id extras/cdrom_id extras/collect extras/edd_id extras/firmware extras/floppy extras/path_id extras/rule_generator extras/scsi_id extras/usb_id extras/volume_id udevdir=/devmake DESTDIR=$CLFS EXTRAS=extras/ata_id extras/cdrom_id extras/collect extras/edd_id extras/firmware extras/floppy extras/path_id extras/rule_generator extras/scsi_id extras/usb_id extras/volume_id udevdir=/dev installinstall -v -m644 -D docs/writing_udev_rules/index.html $CLFS/usr/share/doc/udev-115/index.htmlinstall -dv $CLFS/lib/firmwarecd .rm -rf udev-115popd-Util_Linux-tar xvf $DOWNLOADDIR/util-linux-ng-2.13.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/util-linux-ng-2.13cp hwclock/hwclock.c,.origsed -e setc/adjtimevar/lib/hwclock/adjtimeg hwclock/hwclock.c.orig hwclock/hwclock.cmkdir -pv $CLFS/var/lib/hwclock./configure -build=$CLFS_HOST -host=$CLFS_TARGET -enable-partx -disable-wall -enable-write -disable-makeinstall-chownmake make DESTDIR=$CLFS installmv -v $CLFS/usr/bin/logger $CLFS/bincd .rm -rf util-linux-ng-2.13popd-Vim-tar xvf $DOWNLOADDIR/vim-7.1.tar.bz2 -C $BUILDDIRtar xvf $DOWNLOADDIR/vim-7.1-lang.tar.gz -C $BUILDDIRpushd $BUILDDIR/vim71patch -Np1 -i $DOWNLOADDIR/vim-7.1-cross_compile-1.patchpatch -Np1 -i $DOWNLOADDIR/vim-7.1-fixes-3.patchecho #define SYS_VIMRC_FILE /etc/vimrc src/feature.h./configure -build=$CLFS_HOST -host=$CLFS_TARGET -prefix=/usr -enable-multibyte -enable-gui=no -disable-gtktest -disable-xim -with-features=normal -disable-gpm -without-x -disable-netbeans -with-tlib=ncursesmakemake DESTDIR=$CLFS installln -sfv vim $CLFS/usr/bin/viln -sfnv ./vim/vim71/doc $CLFS/usr/share/doc/vim-7.1cd .rm -rf vim71cat $CLFS/etc/vimrc EOF Begin /etc/vimrcset nocompatibleset backspace=2syntax onif (&term = iterm) | (&term = putty) set background=darkendif End /etc/vimrcEOFpopd-Bootscripts-1.1-pre3-tar xvf $DOWNLOADDIR/bootscripts-cross-lfs-1.1-pre4.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/bootscripts-cross-lfsmake DESTDIR=$TARGET_DIR installcd .rm -rf bootscripts-cross-lfspopd-Udev_Rules-1.1-pre3-tar xvf $DOWNLOADDIR/udev-cross-lfs-1.1-pre3.tar.bz2 -C $BUILDDIRpushd $BUILDDIR/udev-cross-lfsmake DESTDIR=$TARGET_DIR installcd .rm -rf udev-cross-lfspopd
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号