⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 base_libs.spec

📁 coldfire MCF5445X基于unix平台的BSP
💻 SPEC
字号:
%define __os_install_post %{nil}%define pfx /opt/freescale/rootfs/%{_target_cpu}Summary         : Base Libraries (from toolchain).Name            : base_libsVersion         : 1.2Release         : 1License         : LGPLVendor          : Freescale Inc.Packager        : Steve Papacharalambous/Stuart HughesGroup           : System Environment/LibrariesBuildRoot       : %{_tmppath}/%{name}Prefix          : %{pfx}%Description%{summary}%Prep%Buildcat <<TXTPKG_LIBC_WANT_SHARED_LIBS   : $PKG_LIBC_WANT_SHARED_LIBSPKG_LIBC_WANT_CRT_FILES     : $PKG_LIBC_WANT_CRT_FILESPKG_LIBC_WANT_HEADERS1      : $PKG_LIBC_WANT_HEADERS1PKG_LIBC_WANT_STATIC_LIBS   : $PKG_LIBC_WANT_STATIC_LIBSPKG_LIBC_WANT_C_LOCALES     : $PKG_LIBC_WANT_C_LOCALESPKG_CXX_WANT_SHARED_LIBS    : $PKG_CXX_WANT_SHARED_LIBSPKG_CXX_WANT_HEADERS        : $PKG_CXX_WANT_HEADERSPKG_CXX_WANT_STATIC_LIBS    : $PKG_CXX_WANT_STATIC_LIBSPKG_GCC_WANT_LIBGCC_SHARED  : $PKG_GCC_WANT_LIBGCC_SHAREDTXTTC_PREFIX="`which ${TOOLCHAIN_PREFIX}gcc | perl -p -e 's,/bin/'${TOOLCHAIN_PREFIX}'gcc,,'`"%Installrm -rf $RPM_BUILD_ROOTX_DIR=`echo $TOOLCHAIN_PREFIX | sed -e 's,-$,,'`TC_PREFIX="`which ${TOOLCHAIN_PREFIX}gcc | perl -p -e 's,/bin/'${TOOLCHAIN_PREFIX}'gcc,,'`"if [ "$TOOLCHAIN_TYPE" = "64" ]then    SLIBS=lib64else    SLIBS=libfiif [ -d "$TC_PREFIX/$X_DIR/libc" ]then    TC_TYPE=CSLelif [ -d "$TC_PREFIX/$X_DIR/sysroot" ]then    TC_TYPE=EGLIBCelif [ -d "$TC_PREFIX/$X_DIR/sys-root" ]then    TC_TYPE=XTOOL-SYSROOTelif [ -d "$TC_PREFIX/$X_DIR/target_utils" ]then    TC_TYPE=UCLIBCelse    TC_TYPE=XTOOLfiif [ "$TC_TYPE" = "UCLIBC" ]then    SHARED_LIBS_DIR="`dirname \`${TOOLCHAIN_PREFIX}gcc ${TOOLCHAIN_CFLAGS} -print-file-name=libc.so.0\``"else    SHARED_LIBS_DIR="`dirname \`${TOOLCHAIN_PREFIX}gcc ${TOOLCHAIN_CFLAGS} -print-file-name=libc.so.6\``"fiSTATIC_LIBS_DIR="`dirname \`${TOOLCHAIN_PREFIX}gcc ${TOOLCHAIN_CFLAGS} -print-file-name=libc.a\``"GCC_SLIB_DIR="`dirname \`${TOOLCHAIN_PREFIX}gcc ${TOOLCHAIN_CFLAGS} -print-file-name=libgcc_s.so\``"CPP_LIB_DIR="`dirname \`${TOOLCHAIN_PREFIX}gcc ${TOOLCHAIN_CFLAGS} -print-file-name=libstdc++.so\``"CRT_FILES_DIR="`dirname \`${TOOLCHAIN_PREFIX}gcc ${TOOLCHAIN_CFLAGS} -print-file-name=crti.o\``"# create output directories in a dash compatible wayfor i in etc usr/bin sbin lib usr/lib usr/share usr/includedo    mkdir -p $RPM_BUILD_ROOT/%{pfx}/$idoneif [ -n "$PKG_LIBC_WANT_SHARED_LIBS" ]then    set +e    cp -dp $SHARED_LIBS_DIR/*.so* $RPM_BUILD_ROOT/%{pfx}/lib/    # Note: I think that the next copy line is really only needed for the    #       linker script files libc.so and libpthread.so    #       Don't do the next line for uClibc toolchains as usr/lib    #       is a symbolic link to lib! - Stevep    if [ -z "$UCLIBC" ]    then        cp -dp $SHARED_LIBS_DIR/../usr/lib/*.so* $RPM_BUILD_ROOT/%{pfx}/usr/lib/    fi    rm -f $RPM_BUILD_ROOT/%{pfx}/lib/libstdc++*.so*    rm -f $RPM_BUILD_ROOT/%{pfx}/usr/lib/libstdc++*.so*    rm -f $RPM_BUILD_ROOT/%{pfx}/lib/libgcc*.so*    rm -f $RPM_BUILD_ROOT/%{pfx}/usr/lib/libgcc*.so*    if [ "$TC_TYPE" = "CSL" ]    then        i=`echo $STATIC_LIBS_DIR | perl -n -e 's,.*(libc)(/\w+)?/usr.*,, && print $1,$2'`    elif [ "$TC_TYPE" = "EGLIBC" ]    then        i="sysroot"    elif [ "$TC_TYPE" = "XTOOL-SYSROOT" ]    then        i="sys-root"    else        i=    fi    if [ -z "$UCLIBC" ]    then        if [ "$TC_TYPE" = "XTOOL" ]        then            cp -a $TC_PREFIX/$X_DIR/$i/bin/ldd $RPM_BUILD_ROOT/%{pfx}/usr/bin        else            cp -a $TC_PREFIX/$X_DIR/$i/usr/bin/ldd $RPM_BUILD_ROOT/%{pfx}/usr/bin        fi        cp -a $TC_PREFIX/$X_DIR/$i/sbin/ldconfig $RPM_BUILD_ROOT/%{pfx}/sbin    else        cp $TC_PREFIX/$X_DIR/$i/target_utils/ldd $RPM_BUILD_ROOT/%{pfx}/usr/bin    fi    set -efiif [ -n "$PKG_LIBC_WANT_CRT_FILES" ]then     cp -dp $CRT_FILES_DIR/*crt*.o $RPM_BUILD_ROOT/%{pfx}/usr/lib/fiif [ -n "$PKG_LIBC_WANT_HEADERS1" ]then    if [ "$TC_TYPE" = "CSL" ]    then         cp -a $TC_PREFIX/$X_DIR/libc/usr/include $RPM_BUILD_ROOT/%{pfx}/usr    elif [ "$TC_TYPE" = "EGLIBC" ]    then        cp -a $TC_PREFIX/$X_DIR/sysroot/usr/include $RPM_BUILD_ROOT/%{pfx}/usr    elif [ "$TC_TYPE" = "XTOOL-SYSROOT" ]    then        cp -a $TC_PREFIX/$X_DIR/sys-root/usr/include $RPM_BUILD_ROOT/%{pfx}/usr    else        for i in $TC_PREFIX/$X_DIR/include $TC_PREFIX/include        do            if [ -f $i/stdio.h ]            then                cp -a $i $RPM_BUILD_ROOT/%{pfx}/usr                break            fi        done        rm -rf $RPM_BUILD_ROOT/%{pfx}/usr/include/c++    fifiif [ -n "$PKG_LIBC_WANT_STATIC_LIBS" ]then     cp -dp $STATIC_LIBS_DIR/*.a $RPM_BUILD_ROOT/%{pfx}/usr/lib/    rm -f $RPM_BUILD_ROOT/%{pfx}/usr/lib/libstdc++*a*    rm -f $RPM_BUILD_ROOT/%{pfx}/usr/lib/libsupc++*a*fiif [ -n "$PKG_LIBC_WANT_C_LOCALES" ]then    set +e    if [ -n "$UCLIBC" ]    then        cp -a $TC_PREFIX/usr/share/locale $RPM_BUILD_ROOT/%{pfx}/usr/share    else        if [ "$TC_TYPE" = "CSL" ]        then            i=`echo $STATIC_LIBS_DIR | perl -n -e 's,.*(libc)(/\w+)?(/usr).*,, && print $1,$2,$3'`        elif [ "$TC_TYPE" = "EGLIBC" ]        then            i="sysroot/usr"        elif [ "$TC_TYPE" = "XTOOL-SYSROOT" ]        then            i="sys-root/usr"        else            i=        fi        cp -a $TC_PREFIX/$X_DIR/$i/share/locale $RPM_BUILD_ROOT/%{pfx}/usr/share        for j in tzselect locale localedef        do            cp -a $TC_PREFIX/$X_DIR/$i/bin/$j $RPM_BUILD_ROOT/%{pfx}/usr/bin/        done        cp -a $TC_PREFIX/$X_DIR/$i/share/locale $RPM_BUILD_ROOT/%{pfx}/usr/share        cp -a $TC_PREFIX/$X_DIR/$i/$SLIBS/gconv $RPM_BUILD_ROOT/%{pfx}/usr/lib/    fi    set -efiif [ -n "$PKG_CXX_WANT_SHARED_LIBS" ]then    # Note: The libstdc++ shared libraries really belong in rootfs/usr/lib    #       but historically ltib has put them in rootfs/lib.  To minimize    #       changes and potential problems they have been left in rootfs/lib    #       for the time being.  - Stevep.    set +e    cp -dp $CPP_LIB_DIR/libstdc++*.so* $RPM_BUILD_ROOT/%{pfx}/lib/    set -efiif [ -n "$PKG_CXX_WANT_HEADERS" ]then    if [ "$TC_TYPE" = "CSL" -a -d $TC_PREFIX/$X_DIR/include/c++ ]    then         i=$X_DIR    else        i=     fi    cp -a $TC_PREFIX/$i/include/c++ $RPM_BUILD_ROOT/%{pfx}/usr/includefiif [ -n "$PKG_CXX_WANT_STATIC_LIBS" ]then     cp -dp $CPP_LIB_DIR/libstdc++*.a $RPM_BUILD_ROOT/%{pfx}/usr/lib/    cp -dp $CPP_LIB_DIR/libsupc++*.a $RPM_BUILD_ROOT/%{pfx}/usr/lib/fiif [ -n "$PKG_GCC_WANT_LIBGCC_SHARED" ]then    set +e    cp -dp $GCC_SLIB_DIR/libgcc*.so* $RPM_BUILD_ROOT/%{pfx}/lib/    set -efi# remove absolute paths from text search files (if they exist)perl -w -e '    @ARGV = grep { `file $_` =~ m,ASCII C program text, } @ARGV;    exit(0) unless @ARGV;    $^I = ".bak";    while(<>) {        s,[\S/]+/,,g if m,^GROUP,;        print;    }    ' $RPM_BUILD_ROOT/%{pfx}/lib/libc.so \      $RPM_BUILD_ROOT/%{pfx}/lib/libpthread.so \      $RPM_BUILD_ROOT/%{pfx}/usr/lib/libc.so \      $RPM_BUILD_ROOT/%{pfx}/usr/lib/libpthread.socd $RPM_BUILD_ROOT/%{pfx}# this is necessary to avoid annoying warnings from ldd about no execute# permissions for some malformed uClibc toolchainsfind $RPM_BUILD_ROOT/%{pfx}/lib     | xargs chmod 755find $RPM_BUILD_ROOT/%{pfx}/usr/lib | xargs chmod 755# relocate all symlink .so (linker files) to usr/libcd libfind . -name \*.so | perl -n -e '   chomp;   if(! -l && -f _  && m,(?:libpthread.so|libc.so)$, ) {       print "Moving file $_ to ../usr/lib/\n";       system("mv $_ ../usr/lib") == 0 or die;   }   next unless -l $_ ;   $ltgt = readlink();   $snam = substr($_, rindex($_, "/") + 1);   if(! -l "../usr/lib/$snam") {       print "Moving symlink $_ ($ltgt) to ../usr/lib/$snam\n";       unlink $_;       symlink("../../lib/$ltgt", "../usr/lib/$snam")                    or die "symlink(../../lib/$ltgt, ../usr/lib/$snam) : $!\n";   }' %Cleanrm -rf $RPM_BUILD_ROOT%Files%defattr(-,root,root)%{pfx}/*

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -