From 18a69c72f6d75c22f929ea109a1cd646989b5b26 Mon Sep 17 00:00:00 2001 From: Matt Madia Date: Tue, 30 Mar 2010 05:32:50 +0000 Subject: [PATCH] Condensed build_zip_archive & build_zip_archive into a single script, build_archive. Updated ImageRules accordingly. Tested on the following: * jam -q -sTARGET_BOOT_PLATFORM=pxe_ia32 pxehaiku-loader haiku-netboot-archive * jam -q haiku-boot-floppy * jam -q haiku-alternative-gcc-archive git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36005 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- build/jam/ImageRules | 6 +-- .../{build_zip_archive => build_archive} | 39 +++++++++++--- build/scripts/build_tgz_archive | 54 ------------------- 3 files changed, 35 insertions(+), 64 deletions(-) rename build/scripts/{build_zip_archive => build_archive} (65%) delete mode 100755 build/scripts/build_tgz_archive diff --git a/build/jam/ImageRules b/build/jam/ImageRules index 9e93bd28ee..8e27d5606c 100644 --- a/build/jam/ImageRules +++ b/build/jam/ImageRules @@ -1074,7 +1074,7 @@ rule BuildNetBootArchive archive : scripts { # BuildNetBootArchive : ; - local mainScript = build_tgz_archive ; + local mainScript = build_archive ; SEARCH on $(mainScript) = [ FDirName $(HAIKU_TOP) build scripts ] ; Depends $(archive) : $(mainScript) $(scripts) ; @@ -1139,7 +1139,7 @@ rule BuildAlternativeGCCArchive archive : scripts { # BuildAlternativeGCCArchive : ; - local mainScript = build_zip_archive ; + local mainScript = build_archive ; SEARCH on $(mainScript) = [ FDirName $(HAIKU_TOP) build scripts ] ; Depends $(archive) : $(mainScript) $(scripts) ; @@ -1317,7 +1317,7 @@ rule BuildFloppyBootArchive archive : scripts { # BuildHFloppyBootArchive : ; - local mainScript = build_tgz_archive ; + local mainScript = build_archive ; SEARCH on $(mainScript) = [ FDirName $(HAIKU_TOP) build scripts ] ; Depends $(archive) : $(mainScript) $(scripts) ; diff --git a/build/scripts/build_zip_archive b/build/scripts/build_archive similarity index 65% rename from build/scripts/build_zip_archive rename to build/scripts/build_archive index e96f27eb7c..6c13f7e2ed 100755 --- a/build/scripts/build_zip_archive +++ b/build/scripts/build_archive @@ -12,10 +12,11 @@ shift # The second argument is the shell script that initializes the variables: # tmpDir # addBuildCompatibilityLibDir -# +# # copyattr -# rmAttrs +# rmAttrs # zip +# NOTE: rmAttrs and zip are only passed in when building zip # . $1 shift @@ -35,8 +36,20 @@ ln=ln mkdir=mkdir rm=rm -# clear output dir -$rmAttrs -rf $outputDir + +cleanDir() +{ + # clearDir + if [ $rmAttrs ] ; then + $rmAttrs -rf $1 + else + $rm -rf $1 + fi +} + + +# clean output dir +cleanDir $outputDir $mkdir -p $outputDir # populate output dir @@ -56,8 +69,20 @@ cd $cwd echo "Building archive $archive ..." $rm -f $archive cd $outputDir -$zip -ryq $archive . -cd $cwd +case "$archive" in + *.zip) + $zip -ryq $archive . + ;; + *.tgz) + contents=$(ls) + tar --format ustar -czf $archive $contents + ;; + *) + echo "Unhandled archive format in build_archive" + exit 1 + ;; +esac +cd .. # clean up -$rmAttrs -rf $outputDir +cleanDir $outputDir diff --git a/build/scripts/build_tgz_archive b/build/scripts/build_tgz_archive deleted file mode 100755 index aa36e580d7..0000000000 --- a/build/scripts/build_tgz_archive +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/sh -set -o errexit - -if [ $# -lt 2 ]; then - echo "Usage: $0 ..." -fi - -# get the archive name -archive=$1 -shift - -# The second argument is the shell script that initializes the variables: -# tmpDir -# addBuildCompatibilityLibDir -# -# copyattr -# -. $1 -shift - -outputDir=$tmpDir/archive - -# this adds the build library dir to LD_LIBRARY_PATH -eval "$addBuildCompatibilityLibDir" - -# map the shell commands -sPrefix= -tPrefix="$outputDir/" -cd=cd -scd=: -cp="$copyattr -d" -ln=ln -mkdir=mkdir -rm=rm - -# clear output dir -$rm -rf $outputDir -$mkdir -p $outputDir - -# populate output dir -echo "Preparing contents of archive $archive ..." -while [ $# -gt 0 ]; do - . $1 - shift -done - -# build the archive -echo "Building archive $archive ..." -$rm -f $archive -contents=$(cd $outputDir; ls) -tar -C $outputDir --format ustar -czf $archive $contents - -# clean up -$rm -rf $outputDir