SDL2/Xcode/package
Sam Lantinga 7210963bc0 Eric Wing to Sam
Lots of fixes.
Fixed missing power management building.
Added template icons to the project templates.
DocSet stuff
Documentation fixes..

Fixed all the SDLtests. (Lots of tedious work.) It now depends on the static library target for convenience so I am not going to remove it from the SDL xcode project.

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403952
2009-10-01 15:30:26 +00:00

273 lines
6.3 KiB
Tcsh
Executable File

#! /bin/csh -ef
set prog = `/usr/bin/basename $0`
set usage = "Usage: $prog [-f] root-dir info-file [tiff-file] [-d dest-dir] [-r resource-dir] [-traditional | -gnutar]"
set noglob
if (-x /usr/bin/mkbom) then
set mkbom=/usr/bin/mkbom
set lsbom=/usr/bin/lsbom
else
set mkbom=/usr/etc/mkbom
set lsbom=/usr/etc/lsbom
endif
if (-x /usr/bin/awk) then
set awk=/usr/bin/awk
else
set awk=/bin/awk
endif
set gnutar=/usr/bin/gnutar
set tar=/usr/bin/tar
set pax=/bin/pax
# gather parameters
if ($#argv == 0) then
echo $usage
exit(1)
endif
while ( $#argv > 0 )
switch ( $argv[1] )
case -d:
if ( $?destDir ) then
echo ${prog}: dest-dir parameter already set to ${destDir}.
echo $usage
exit(1)
else if ( $#argv < 2 ) then
echo ${prog}: -d option requires destination directory.
echo $usage
exit(1)
else
set destDir = $argv[2]
shift; shift
breaksw
endif
case -f:
if ( $?rootDir ) then
echo ${prog}: root-dir parameter already set to ${rootDir}.
echo $usage
exit(1)
else if ( $#argv < 2 ) then
echo ${prog}: -f option requires package root directory.
echo $usage
exit(1)
else
set rootDir = $argv[2]
set fflag
shift; shift
breaksw
endif
case -r:
if ( $?resDir ) then
echo ${prog}: resource-dir parameter already set to ${resDir}.
echo $usage
exit(1)
else if ( $#argv < 2 ) then
echo ${prog}: -r option requires package resource directory.
echo $usage
exit(1)
else
set resDir = $argv[2]
shift; shift
breaksw
endif
case -traditional:
set usetar
unset usegnutar
unset usepax
breaksw
case -gnutar:
set usegnutar
unset usepax
unset usetar
case -B:
# We got long file names, better use bigtar instead
#set archiver = /NextAdmin/Installer.app/Resources/installer_bigtar
echo 2>&1 ${prog}: -B flag is no longer relevant.
shift
breaksw
case -*:
echo ${prog}: Unknown option: $argv[1]
echo $usage
exit(1)
case *.info:
if ( $?info ) then
echo ${prog}: info-file parameter already set to ${info}.
echo $usage
exit(1)
else
set info = "$argv[1]"
shift
breaksw
endif
case *.tiff:
if ( $?tiff ) then
echo ${prog}: tiff-file parameter already set to ${tiff}.
echo $usage
exit(1)
else
set tiff = "$argv[1]"
shift
breaksw
endif
default:
if ( $?rootDir ) then
echo ${prog}: unrecognized parameter: $argv[1]
echo $usage
exit(1)
else
set rootDir = "$argv[1]"
shift
breaksw
endif
endsw
end
# check for mandatory parameters
if ( ! $?rootDir ) then
echo ${prog}: missing root-dir parameter.
echo $usage
exit(1)
else if ( ! $?info) then
echo ${prog}: missing info-file parameter.
echo $usage
exit(1)
endif
# destDir gets default value if unset on command line
if ( $?destDir ) then
/bin/mkdir -p $destDir
else
set destDir = .
endif
# derive the root name for the package from the root name of the info file
set root = `/usr/bin/basename $info .info`
# create package directory
set pkg = ${destDir}/${root}.pkg
echo Generating Installer package $pkg ...
if ( -e $pkg ) /bin/rm -rf $pkg
/bin/mkdir -p -m 755 $pkg
# (gnu)tar/pax and compress root directory to package archive
echo -n " creating package archive ... "
if ( $?fflag ) then
set pkgTop = ${rootDir:t}
set parent = ${rootDir:h}
if ( "$parent" == "$pkgTop" ) set parent = "."
else
set parent = $rootDir
set pkgTop = .
endif
if ( $?usetar ) then
set pkgArchive = $pkg/$root.tar.Z
(cd $parent; $tar -w $pkgTop) | /usr/bin/compress -f -c > $pkgArchive
else if ( $?usegnutar ) then
set pkgArchive = $pkg/$root.tar.gz
(cd $parent; $gnutar zcf $pkgArchive $pkgTop)
else
set pkgArchive = $pkg/$root.pax.gz
(cd $parent; $pax -w -z -x cpio $pkgTop) > $pkgArchive
endif
/bin/chmod 444 $pkgArchive
echo done.
# copy info file to package
set pkgInfo = $pkg/$root.info
echo -n " copying ${info:t} ... "
/bin/cp $info $pkgInfo
/bin/chmod 444 $pkgInfo
echo done.
# copy tiff file to package
if ( $?tiff ) then
set pkgTiff = $pkg/$root.tiff
echo -n " copying ${tiff:t} ... "
/bin/cp $tiff $pkgTiff
/bin/chmod 444 $pkgTiff
echo done.
endif
# copy resources to package
if ( $?resDir ) then
echo -n " copying ${resDir:t} ... "
# don't want to see push/pop output
pushd $resDir > /dev/null
# get lists of resources. We'll want to change
# permissions on just these things later.
set directoriesInResDir = `find . -type d`
set filesInResDir = `find . -type f`
popd > /dev/null
# copy the resource directory contents into the package directory
foreach resFile (`ls $resDir`)
cp -r $resDir/$resFile $pkg
end
pushd $pkg > /dev/null
# Change all directories to +r+x, except the package
# directory itself
foreach resFileItem ($directoriesInResDir)
if ( $resFileItem != "." ) then
chmod 555 $resFileItem
endif
end
# change all flat files to read only
foreach resFileItem ($filesInResDir)
chmod 444 $resFileItem
end
popd > /dev/null
echo done.
endif
# generate bom file
set pkgBom = $pkg/$root.bom
echo -n " generating bom file ... "
/bin/rm -f $pkgBom
if ( $?fflag ) then
$mkbom $parent $pkgBom >& /dev/null
else
$mkbom $rootDir $pkgBom >& /dev/null
endif
/bin/chmod 444 $pkgArchive
echo done.
# generate sizes file
set pkgSizes = $pkg/$root.sizes
echo -n " generating sizes file ... "
# compute number of files in package
set numFiles = `$lsbom -s $pkgBom | /usr/bin/wc -l`
# compute package size when compressed
@ compressedSize = `/usr/bin/du -k -s $pkg | $awk '{print $1}'`
@ compressedSize += 3 # add 1KB each for sizes, location, status files
@ infoSize = `/bin/ls -s $pkgInfo | $awk '{print $1}'`
@ bomSize = `/bin/ls -s $pkgBom | $awk '{print $1}'`
if ( $?tiff ) then
@ tiffSize = `/bin/ls -s $pkgTiff | $awk '{print $1}'`
else
@ tiffSize = 0
endif
@ installedSize = `/usr/bin/du -k -s $rootDir | $awk '{print $1}'`
@ installedSize += $infoSize + $bomSize + $tiffSize + 3
# echo size parameters to sizes file
echo NumFiles $numFiles > $pkgSizes
echo InstalledSize $installedSize >> $pkgSizes
echo CompressedSize $compressedSize >> $pkgSizes
echo done.
echo " ... finished generating $pkg."
exit(0)
# end package