clfs-sysroot 20070915 自动编译脚本
时间:2007-10-14
来源:互联网
敲命令很麻烦,干脆把命令都弄到一个Makefile里面了。
需要的可以按自己的要求修改。
如果发现错误的话,请指出。
本脚本只编译交叉编译环境。
另附gcc arm大尾模式patch
需要的可以按自己的要求修改。
如果发现错误的话,请指出。
本脚本只编译交叉编译环境。
代码:
CLFS = ${HOME}/armv5-root PATH = ${CLFS}/cross-tools/bin:/bin:/usr/bin CLFS_HOST = i486-cross-linux-gnu CLFS_TARGET = armv5-linux CLFS_SOURCE = ${HOME}/source CLFS_BUILD = ${HOME}/build/${CLFS_TARGET} CFLAGS = CXXFLAGS = #GCC_EXTRA_CONFIG = --with-cpu=xscale --enable-cxx-flags=-mcpu=xscale GCC_EXTRA_CONFIG = --with-arch=armv5 --enable-cxx-flags=-march=armv5 all: exit 1 clean: rm -rf ${CLFS_BUILD}/* distclean: clean rm -rf ${CLFS}/* crosstools: dirs linux_headers binutils_cross glibc_headers gcc_static glibc_cross gcc_cross_final file_cross groff_cross shadow_cross dirs: install -dv ${CLFS} install -dv ${CLFS_BUILD} mkdir -pv ${CLFS}/{bin,boot,dev,{etc/,}opt,home,lib,mnt} mkdir -pv ${CLFS}/{proc,media/{floppy,cdrom},sbin,srv,sys} mkdir -pv ${CLFS}/var/{lock,log,mail,run,spool} mkdir -pv ${CLFS}/var/{opt,cache,lib/{misc,locate},local} install -dv -m 0750 ${CLFS}/root install -dv -m 1777 ${CLFS}{/var,}/tmp mkdir -pv ${CLFS}/usr/{,local/}{bin,include,lib,sbin,src} mkdir -pv ${CLFS}/usr/{,local/}share/{doc,info,locale,man} mkdir -pv ${CLFS}/usr/{,local/}share/{misc,terminfo,zoneinfo} mkdir -pv ${CLFS}/usr/{,local/}share/man/man{1,2,3,4,5,6,7,8} for dir in ${CLFS}/usr{,/local}; do ln -sfnv share/{man,doc,info} $${dir}; done echo root::0:0:root:/root:/bin/bash > ${CLFS}/etc/passwd echo root:x:0: > ${CLFS}/etc/group echo root:x:0: >> ${CLFS}/etc/group echo bin:x:1: >> ${CLFS}/etc/group echo sys:x:2: >> ${CLFS}/etc/group echo kmem:x:3: >> ${CLFS}/etc/group echo tty:x:4: >> ${CLFS}/etc/group echo tape:x:5: >> ${CLFS}/etc/group echo daemon:x:6: >> ${CLFS}/etc/group echo floppy:x:7: >> ${CLFS}/etc/group echo disk:x:8: >> ${CLFS}/etc/group echo lp:x:9: >> ${CLFS}/etc/group echo dialout:x:10: >> ${CLFS}/etc/group echo audio:x:11: >> ${CLFS}/etc/group echo video:x:12: >> ${CLFS}/etc/group echo utmp:x:13: >> ${CLFS}/etc/group echo usb:x:14: >> ${CLFS}/etc/group echo cdrom:x:15: >> ${CLFS}/etc/group linux_headers: tar -xvjf ${CLFS_SOURCE}/linux-headers-2.6.22.6-09032007.tar.bz2 -C ${CLFS_BUILD} install -dv ${CLFS}/usr/include cp -av ${CLFS_BUILD}/linux-headers-2.6.22.6/include/{asm-generic,linux,mtd,scsi,sound} ${CLFS}/usr/include cp -av ${CLFS_BUILD}/linux-headers-2.6.22.6/include/asm-arm ${CLFS}/usr/include/asm binutils_cross: tar -xvjf ${CLFS_SOURCE}/binutils-2.18.tar.bz2 -C ${CLFS_BUILD} cd ${CLFS_BUILD}/binutils-2.18 && \ patch -Np1 -i ${CLFS_SOURCE}/binutils-2.18-posix-1.patch && \ mkdir -v ${CLFS_BUILD}/binutils-build cd ${CLFS_BUILD}/binutils-build && \ AR=ar AS=as ../binutils-2.18/configure --prefix=${CLFS}/cross-tools --host=${CLFS_HOST} --target=${CLFS_TARGET} --with-sysroot=${CLFS} --disable-nls --enable-shared --disable-multilib && \ make -C ${CLFS_BUILD}/binutils-build configure-host make -C ${CLFS_BUILD}/binutils-build make -C ${CLFS_BUILD}/binutils-build install cp -v ${CLFS_BUILD}/binutils-2.18/include/libiberty.h ${CLFS}/usr/include glibc_headers: tar -xvjf ${CLFS_SOURCE}/glibc-2.6.1.tar.bz2 -C ${CLFS_BUILD} cd ${CLFS_BUILD}/glibc-2.6.1 && \ cp configure{,.orig} && \ sed -e 's/3.4/3.[0-9]/g' configure.orig > configure && \ tar -xvjf ${CLFS_SOURCE}/glibc-ports-2.6.1.tar.bz2 && mv -v glibc-ports-2.6.1 ports mkdir -v ${CLFS_BUILD}/glibc-build cd ${CLFS_BUILD}/glibc-build && \ echo "libc_cv_forced_unwind=yes" > config.cache && \ echo "libc_cv_c_cleanup=yes" >> config.cache && \ echo "libc_cv_arm_tls=yes" >> config.cache && \ echo "install_root=${CLFS}" > configparms && \ CC=gcc ../glibc-2.6.1/configure --prefix=/usr --host=${CLFS_TARGET} --build=${CLFS_HOST} --with-headers=${CLFS}/usr/include --cache-file=config.cache make -C ${CLFS_BUILD}/glibc-build install-headers cp -v ${CLFS_BUILD}/glibc-build/bits/stdio_lim.h ${CLFS}/usr/include/bits touch ${CLFS}/usr/include/gnu/stubs.h cp -v ${CLFS_BUILD}/glibc-build/../glibc-2.6.1/ports/sysdeps/unix/sysv/linux/arm/nptl/bits/pthreadtypes.h ${CLFS}/usr/include/bits rm -rf ${CLFS_BUILD}/glibc-2.6.1 rm -rf ${CLFS_BUILD}/glibc-build gcc_static: tar -xvjf ${CLFS_SOURCE}/gcc-4.2.1.tar.bz2 -C ${CLFS_BUILD} cd ${CLFS_BUILD}/gcc-4.2.1 && \ patch -Np1 -i ${CLFS_SOURCE}/gcc-4.2.1-posix-1.patch && \ patch -Np1 -i ${CLFS_SOURCE}/gcc-4.2.1-cross_search_paths-1.patch && \ patch -Np1 -i ${CLFS_SOURCE}/gcc-4.2.1-arm-bigendian.patch mkdir -v ${CLFS_BUILD}/gcc-build cd ${CLFS_BUILD}/gcc-build && \ ../gcc-4.2.1/configure --prefix=${CLFS}/cross-tools --host=${CLFS_HOST} --target=${CLFS_TARGET} ${GCC_EXTRA_CONFIG} --disable-multilib --with-sysroot=${CLFS} --disable-nls --disable-shared --enable-languages=c make -C ${CLFS_BUILD}/gcc-build all-gcc make -C ${CLFS_BUILD}/gcc-build install-gcc rm -rf ${CLFS_BUILD}/gcc-4.2.1 rm -rf ${CLFS_BUILD}/gcc-build glibc_cross: tar -xvjf ${CLFS_SOURCE}/glibc-2.6.1.tar.bz2 -C ${CLFS_BUILD} cd ${CLFS_BUILD}/glibc-2.6.1 && \ tar -xvjf ${CLFS_SOURCE}/glibc-ports-2.6.1.tar.bz2 && mv -v glibc-ports-2.6.1 ports && \ patch -Np1 -i ${CLFS_SOURCE}/glibc-2.6.1-libgcc_eh-1.patch && \ patch -Np1 -i ${CLFS_SOURCE}/glibc-2.6.1-localedef_segfault-1.patch && \ patch -Np1 -i ${CLFS_SOURCE}/glibc-2.6.1-cross_hacks-1.patch && \ patch -Np1 -i ${CLFS_SOURCE}/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch mkdir -v ${CLFS_BUILD}/glibc-build cd ${CLFS_BUILD}/glibc-build && \ echo "libc_cv_forced_unwind=yes" > config.cache && \ echo "libc_cv_c_cleanup=yes" >> config.cache && \ echo "install_root=${CLFS}" > configparms && \ 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.cache make -C ${CLFS_BUILD}/glibc-build make -C ${CLFS_BUILD}/glibc-build install #make -C ${CLFS_BUILD}/glibc-build localedata/install-locales echo "# Begin /etc/nsswitch.conf" > ${CLFS}/etc/nsswitch.conf echo "" >> ${CLFS}/etc/nsswitch.conf echo "passwd: files" >> ${CLFS}/etc/nsswitch.conf echo "group: files" >> ${CLFS}/etc/nsswitch.conf echo "shadow: files" >> ${CLFS}/etc/nsswitch.conf echo "" >> ${CLFS}/etc/nsswitch.conf echo "hosts: files dns" >> ${CLFS}/etc/nsswitch.conf echo "networks: files" >> ${CLFS}/etc/nsswitch.conf echo "" >> ${CLFS}/etc/nsswitch.conf echo "protocols: files" >> ${CLFS}/etc/nsswitch.conf echo "services: files" >> ${CLFS}/etc/nsswitch.conf echo "ethers: files" >> ${CLFS}/etc/nsswitch.conf echo "rpc: files" >> ${CLFS}/etc/nsswitch.conf echo "" >> ${CLFS}/etc/nsswitch.conf echo "# End /etc/nsswitch.conf" >> ${CLFS}/etc/nsswitch.conf echo "# Begin /etc/ld.so.conf" > ${CLFS}/etc/ld.so.conf echo "" >> ${CLFS}/etc/ld.so.conf echo "/usr/local/lib" >> ${CLFS}/etc/ld.so.conf echo "/opt/lib" >> ${CLFS}/etc/ld.so.conf echo "" >> ${CLFS}/etc/ld.so.conf echo "# End /etc/ld.so.conf" >> ${CLFS}/etc/ld.so.conf gcc_cross_final: tar -xvjf ${CLFS_SOURCE}/gcc-4.2.1.tar.bz2 -C ${CLFS_BUILD} cd ${CLFS_BUILD}/gcc-4.2.1 && \ patch -Np1 -i ${CLFS_SOURCE}/gcc-4.2.1-posix-1.patch && \ patch -Np1 -i ${CLFS_SOURCE}/gcc-4.2.1-cross_search_paths-1.patch && \ patch -Np1 -i ${CLFS_SOURCE}/gcc-4.2.1-arm-bigendian.patch mkdir -v ${CLFS_BUILD}/gcc-build cd ${CLFS_BUILD}/gcc-build && \ ../gcc-4.2.1/configure --prefix=${CLFS}/cross-tools --host=${CLFS_HOST} --target=${CLFS_TARGET} ${GCC_EXTRA_CONFIG} --disable-multilib --with-sysroot=${CLFS} --disable-nls --enable-shared --enable-languages=c,c++ --enable-__cxa_atexit --enable-c99 --enable-long-long --enable-threads=posix make -C ${CLFS_BUILD}/gcc-build make -C ${CLFS_BUILD}/gcc-build install file_cross: tar -xvzf ${CLFS_SOURCE}/file-4.21.tar.gz -C ${CLFS_BUILD} cd ${CLFS_BUILD}/file-4.21 && \ ./configure --prefix=${CLFS}/cross-tools && \ make && make install groff_cross: tar -xvzf ${CLFS_SOURCE}/groff-1.19.2.tar.gz -C ${CLFS_BUILD} cd ${CLFS_BUILD}/groff-1.19.2 && \ PAGE=A4 ./configure --prefix=${CLFS}/cross-tools --without-x make -C ${CLFS_BUILD}/groff-1.19.2 make -C ${CLFS_BUILD}/groff-1.19.2 install shadow_cross: tar -xvjf ${CLFS_SOURCE}/shadow-4.0.18.1.tar.bz2 -C ${CLFS_BUILD} cd ${CLFS_BUILD}/shadow-4.0.18.1 && \ patch -Np1 -i ${CLFS_SOURCE}/shadow-4.0.18.1-useradd_fix-1.patch && \ patch -Np1 -i ${CLFS_SOURCE}/shadow-4.0.18.1-sysroot_hacks-1.patch && \ echo "shadow_cv_passwd_dir=${CLFS}/bin" > config.cache && \ ./configure --prefix=${CLFS}/cross-tools --sbindir=${CLFS}/cross-tools/bin --sysconfdir=${CLFS}/etc --disable-shared --without-libpam --without-audit --without-selinux --program-prefix=${CLFS_TARGET}- --cache-file=config.cache && \ cp config.h{,.orig} && \ sed "/PASSWD_PROGRAM/s/passwd/${CLFS_TARGET}-&/" config.h.orig > config.h make -C ${CLFS_BUILD}/shadow-4.0.18.1 make -C ${CLFS_BUILD}/shadow-4.0.18.1 install
上传的附件
Makefile.clfs.sysroot.gz (2.1 KB, 21 次查看) | |
gcc-4.2.1-arm-bigendian.patch.gz (1.3 KB, 13 次查看) |
作者: 高热 发布时间: 2007-10-14
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28