CRUX-ARM : Home

Home :: Documentation :: Download :: Development :: Community :: Ports :: Packages :: Bugs :: Links :: About :: Donors
Merge remote-tracking branch 'upstream/master' into 3.1
[pkgutils-cross.git] / pkgmk.in
index 97737dd2b90dc2de4456d2bd6aa0ea55d538df06..45406c6b5e1d5bdb83dd61d2c8239092b0ea0d8c 100755 (executable)
--- a/pkgmk.in
+++ b/pkgmk.in
@@ -3,7 +3,10 @@
 #  pkgutils
 # 
 #  Copyright (c) 2000-2005 Per Liden
-#  Copyright (c) 2006-2010 by CRUX team (http://crux.nu)
+#  Copyright (c) 2006-2013 by CRUX team (http://crux.nu)
+#
+#  Patches for crosscompilation by Jose V Beneyto <sepen@crux.nu>
+#  (CRUX-ARM System Team <devel@crux-arm.nu>)
 # 
 #  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
@@ -174,7 +177,7 @@ unpack_source() {
        for FILE in ${source[@]}; do
                LOCAL_FILENAME=`get_filename $FILE`
                case $LOCAL_FILENAME in
-                       *.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.zip|*.rpm)
+                       *.tar|*.tar.gz|*.tar.Z|*.tgz|*.tar.bz2|*.tbz2|*.tar.xz|*.txz|*.tar.lzma|*.zip|*.rpm)
                                COMMAND="bsdtar -p -o -C $SRC -xf $LOCAL_FILENAME" ;;
                        *)
                                COMMAND="cp $LOCAL_FILENAME $SRC" ;;
@@ -278,13 +281,13 @@ strip_files() {
        find . -type f -printf "%P\n" | $FILTER | while read FILE; do
                case $(file -b "$FILE") in
                *ELF*executable*not\ stripped)
-                       strip --strip-all "$FILE"
+                       $STRIP_CMD --strip-all "$FILE"
                        ;;
                *ELF*shared\ object*not\ stripped)
-                       strip --strip-unneeded "$FILE"
+                       $STRIP_CMD --strip-unneeded "$FILE"
                        ;;
                current\ ar\ archive)
-                       strip --strip-debug "$FILE"
+                       $STRIP_CMD --strip-debug "$FILE"
                esac
        done
 }
@@ -314,6 +317,13 @@ compress_manpages() {
        done
 }
 
+fix_cross_paths() {
+        # remove the last / from CLFS path if appeared
+        CLFS=${CLFS%*/}
+
+        find $PKG -type f -name '*.la' -exec sed -e "s|$CLFS||g" -e "s|$CROSTOOLS/$CTARGET|/usr|g" -i {} \;
+}
+
 check_footprint() {
        local FILE="$PKGMK_WORK_DIR/.tmp"
        
@@ -390,8 +400,9 @@ build_package() {
                if [ "$PKGMK_NO_STRIP" = "no" ]; then
                        strip_files
                fi
-               
+
                compress_manpages
+               fix_cross_paths
                
                cd $PKG
                info "Build result:"
@@ -611,12 +622,6 @@ parse_options() {
 }
 
 main() {
-       # multilib
-       PKGMK_ARCH=64
-       if [ -f ".32bit" ]; then
-               PKGMK_ARCH=32
-       fi
-
        local FILE TARGET
        
        parse_options "$@"