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