diff options
Diffstat (limited to 'contrib/mingw/build-exes.sh')
-rwxr-xr-x | contrib/mingw/build-exes.sh | 503 |
1 files changed, 0 insertions, 503 deletions
diff --git a/contrib/mingw/build-exes.sh b/contrib/mingw/build-exes.sh deleted file mode 100755 index f32795886f..0000000000 --- a/contrib/mingw/build-exes.sh +++ /dev/null @@ -1,503 +0,0 @@ -#! /bin/sh -# RTEMS Build Executable Installers script. -# -# This script takes the RPM files built using the mingw/build-rpms.sh -# script. -# - -echo $0 $* - -source=$(dirname $0) - -terminate() -{ - echo "error: $*" >&2 - exit 1 -} - -check() -{ - if [ $? -ne 0 ]; then - terminate - fi -} - -. $source/version - -target_list=$(cat $source/targets) - -. $source/target-section-text - -mingw32_cpu_list="i686" - -rpm_topdir=$(rpm --eval "%{_topdir}") - -rtems_url="http://www.rtems.org/ftp/pub/rtems/windows/${version}/build-${tool_build}" - -common_label="common" -local_rpm_database=yes -targets=$target_list -run_prefix= -relocation= -rpm_install=yes - -package_source=$(cat $HOME/.rpmmacros | grep "^%_topdir" | sed -e "s/^.* //g")/SOURCES - -if [ "$source" = "." ]; then - source=$(pwd) -fi - -while [ $# -gt 0 ]; -do - case $1 in - -d) - set -x - ;; - -i) - rpm_install=no - ;; - -l) - shift - rpm_prefix=$1- - rpm_prefix_arg="--enable-rpmprefix=$rpm_label" - ;; - -n) - run_prefix="echo " - ;; - -p) - shift - prefix=$1 - ;; - -R) - local_rpm_database=no - ;; - -r) - shift - relocation=$1 - ;; - -t) - shift - targets=$1 - ;; - -v) - shift - version=$1 - ;; - --help) - echo "$0 -??" - exit 2 - ;; - *) - terminate "error: invalid option (try --help): $1" - ;; - esac - shift -done - -cd=${run_prefix}cd -cp=${run_prefix}cp -make=${run_prefix}make -makensis=${run_prefix}makensis -mkdir=${run_prefix}mkdir -rm=${run_prefix}rm -rpmbuild=${run_prefix}rpmbuild -rpm=${run_prefix}rpm - -if [ -z "$relocation" ]; then - terminate "error: a relocation path needs to be specified" -fi - -if [ $local_rpm_database = yes ]; then - rpm_database="--dbpath $prefix/var/lib/rpm" -else - rpm_database= -fi - -# -# Get the RPM list given the architecture and the package. -# -# $1 - architecture -# $2 - package -# -get_rpm_list() -{ - if [ -d $rpm_topdir/mingw32/RPMS/$1 ]; then - echo $(ls $rpm_topdir/mingw32/RPMS/$1/*.rpm | grep -v "debuginfo" | grep $2) - fi -} - -# -# Write target installer code. -# -# $1 - target -# $2 - target section test -# $3 - size of the tools -# $4 - Installer output file name -# $5 - Output file -# -target_installer_exec() -{ - local t=$1 - local tst=$2 - local size_in_k=$3 - local outfile=$4 - local of=$5 - - echo "" >> $of - echo "; Target: $t" >> $of - echo "Section \"${!tst}\" Section_$t" >> $of - echo " AddSize $size_in_k" >> $of - echo " StrCpy \$1 \$EXEDIR\\$outfile" >> $of - echo " DetailPrint \"Checking for \$1\"" >> $of - echo " IfFileExists \$1 ${t}_found" >> $of - echo " StrCpy \$1 \$INSTDIR\\Packages\\$outfile" >> $of - echo " DetailPrint \"Checking for \$1\"" >> $of - echo " IfFileExists \$1 ${t}_found" >> $of - echo " SetOutPath \"\$INSTDIR\Packages\"" >> $of - echo " DetailPrint \"Downloading $rtems_url/$outfile\"" >> $of - echo " NSISdl::download $rtems_url/$outfile $outfile" >> $of - echo " Pop \$R0" >> $of - echo " StrCmp \$R0 \"success\" ${t}_found_2 ${t}_not_found_2" >> $of - echo " ${t}_not_found_2:" >> $of - echo " SetDetailsView show" >> $of - echo " DetailPrint \"Download failed: \$R0\"" >> $of - echo " MessageBox MB_OK \"Download failed: \$R0\"" >> $of - echo " Goto ${t}_done" >> $of - echo " ${t}_found_2:" >> $of - echo " Strcpy \$1 \"\$INSTDIR\\Packages\\$outfile\"" >> $of - echo " ${t}_found:" >> $of - echo " DetailPrint \"Installing: \$1\"" >> $of - echo " ExecWait '\"\$1\" \$SilentOption \$DebugOption /D=\$INSTDIR' \$0" >> $of - echo " BringToFront" >> $of - echo " IntCmp \$0 0 +3" >> $of - echo " MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 \"${!tst} install failed. Do you wish to continue ?\" IDYES +2" >> $of - echo " Abort" >> $of - echo " ${t}_done:" >> $of - echo "SectionEnd" >> $of -} - -# -# Get the size if kilo-bytes of the package as the listed files. -# -# $1 - relocation directory of installed files. -# -get_size_in_k() -{ - if [ ! -d $1 ]; then - terminate "target directory not found: $1" - fi - if [ ! -f $1/files.txt ]; then - terminate "target files not found: $1/files.txt" - fi - - local here=$(pwd) - check "getting the current directory" - cd $1 - check "changing directory: $1" - - local size_in_k=$(du -c -k $(cat files.txt) | grep total | sed -e "s/\t.*//g") - check "getting total size" - - cd $here - check "changing directory: $here" - - echo $size_in_k -} - -# -# Create the installer given the architecture and package. -# -# $1 - architecture/processor -# $2 - package -# $3 - package name -# $4 - outfile -# -create_installer() -{ - local p=$1 - local t=$2 - local n=$3 - local outfile=$4 - - rpm_options="--ignoreos --force --nodeps --noorder " - - rpms=$(get_rpm_list $p $t) - check "getting the $n RPM list" - - if [ -n "$rpms" ]; then - treloc=$relocation/$n - echo "Relocation path: $treloc" - - if [ $rpm_install = yes ]; then - echo "Clean the relocation directory: $treloc" - $rm -rf $treloc - check "removing the relocation directory: $treloc" - - for r in $rpms - do - echo "rpm $rpm_database --relocate $prefix=$treloc $rpm_options -i $r" - $rpm $rpm_database --relocate $prefix=$treloc $rpm_options -i $r - check "installing rpm: $r" - done - fi - - files=$(find $treloc -type f -a -not \( -name \*.gch \ - -o -name rtems.nsi \ - -o -name rtems-files.nsi \ - -o -name rtems.ini \ - -o -name files.txt \) | \ - sed -e "s/^$(echo ${treloc} | sed 's/\//\\\//g')//" -e "s/^\///" | sort) - check "find the file list" - - echo "$files" > $treloc/files.txt - check "write the file list" - - size_in_k=$(get_size_in_k $treloc) - - of=$treloc/rtems-files.nsi - - echo "!macro RTEMS_INSTALL_FILES" > $of - echo " !ifndef EMPTY_INSTALLER" >> $of - - install_dir= - - for f in $files - do - d=$(dirname $f) - if [ "$install_dir" != "$d" ]; then - id=$(echo $d | sed -e 's/\//\\/g' -e 's/\/$//') - echo " SetOutPath \"\$INSTDIR\\$id\"" >> $of - install_dir=$d - fi - echo " File \"$treloc/$f\"" >> $of - done - - echo " !endif" >> $of - echo "!macroend" >> $of - - echo "!macro RTEMS_DELETE_FILES" >> $of - echo " !ifndef EMPTY_INSTALLER" >> $of - - # - # Get a list of directories so we can delete them once all - # the files have been deleted. We need to be selective as - # the directory maybe used by another installer. - # - # Once we get a list we need to also add the path down - # to that node and then sort them so we work from bottom up. - # - - remove_dirs= - - for f in $files - do - d=$(dirname $f) - found=no - for rd in $remove_dirs - do - if [ "$d" = "$rd" ]; then - found=yes - break; - fi - done - if [ $found = no ]; then - remove_dirs="$remove_dirs $d" - fi - rf=$(echo $f | sed -e 's/\//\\/g' -e 's/\/$//') - echo " Delete \"\$INSTDIR\\$rf\"" >> $of - done - - for d in $remove_dirs - do - while [ $d != . ] - do - found=no - for rd in $remove_dirs - do - if [ "$d" = "$rd" ]; then - found=yes - break - fi - done - if [ $found = no ]; then - remove_dirs="$remove_dirs $d" - fi - d=$(dirname $d) - done - done - - remove_dirs=$(for r in $remove_dirs; do echo $r; done | sort -r -u) - - for d in $remove_dirs - do - if [ "$d" = "." ]; then - d= - fi - rd=$(echo $d | sed -e 's/\//\\/g' -e 's/\/$//') - echo " RMDir \"\$INSTDIR\\$rd\"" >> $of - done - - echo " !endif" >> $of - echo "!macroend" >> $of - - rtems_binary=$rpm_topdir/mingw32/exe/$p - echo "mkdir -p $rtems_binary" - $mkdir -p $rtems_binary - check "make the RTEMS binary install point: $rtems_binary" - - of=$treloc/rtems.nsi - echo "!define RTEMS_TARGET \"$n\"" > $of - echo "!define RTEMS_VERSION \"$version\"" >> $of - echo "!define RTEMS_BUILD_VERSION \"$tool_build\"" >> $of - echo "!define RTEMS_PREFIX \"rtems-tools\"" >> $of - echo "!define RTEMS_SOURCE \"$source\"" >> $of - echo "!define RTEMS_RELOCATION \"$treloc\"" >> $of - echo "!define RTEMS_LOGO \"$source/rtems_logo.bmp\"" >> $of - echo "!define RTEMS_BINARY \"$rtems_binary\"" >> $of - echo "!define RTEMS_LICENSE_FILE \"$source/rtems-license.rtf\"" >> $of - echo "!define RTEMS_OUTFILE \"$outfile\"" >> $of - echo "!define TOOL_PREFIX \"$prefix\"" >> $of - echo "!define RTEMS_TOOLS_SIZE \"$size_in_k\"" >> $of - - if [ $n = $common_label ]; then - echo "!define COMMON_FILES" >> $of - fi - - echo "!include \"$treloc/rtems-files.nsi\"" >> $of - echo "!include \"$source/options.nsi\"" >> $of - - if [ $n = $common_label ]; then - echo "!include \"$relocation/rtems-sections.nsi\"" >> $of - fi - - echo "!include \"$source/rtems-tools.nsi\"" >> $of - - echo "cp $source/rtems.ini $treloc/rtems.ini" - $cp $source/rtems.ini $treloc/rtems.ini - check "coping the dialog definition file: $treloc/rtems.ini" - - if [ $n = $common_label ]; then - echo "Section -SecCommon" >> $of - echo " SetOutPath \"\$INSTDIR"\" >> $of - echo " File \"\${RTEMS_SOURCE}/AUTHORS"\" >> $of - echo " File \"\${RTEMS_SOURCE}/COPYING\"" >> $of - echo " File \"\${RTEMS_SOURCE}/README\"" >> $of - echo "SectionEnd" >> $of - fi - - echo "makensis $of" - $makensis $of - check "making the installer: $of" - - fi -} - -create_autotools_installer() -{ - local p=$1 - local t=$2 - local n=$3 - - treloc=$relocation/$n - echo "Relocation path: $treloc" - - echo "Clean the relocation directory: $treloc" - $rm -rf $treloc - check "removing the relocation directory: $treloc" - mkdir -p $treloc - check "creating relocation directory: $treloc" - - rtems_binary=$rpm_topdir/mingw32/exe/$p - echo "mkdir -p $rtems_binary" - $mkdir -p $rtems_binary - check "make the RTEMS binary install point: $rtems_binary" - - size_in_k=2000 - - outfile=rtems$version-tools-$n-$tool_build.exe - - of=$treloc/rtems.nsi - echo "!define RTEMS_TARGET \"$n\"" > $of - echo "!define RTEMS_VERSION \"$version\"" >> $of - echo "!define RTEMS_BUILD_VERSION \"$tool_build\"" >> $of - echo "!define RTEMS_PREFIX \"rtems-tools\"" >> $of - echo "!define RTEMS_SOURCE \"$source\"" >> $of - echo "!define RTEMS_PACKAGE_SOURCE \"$package_source\"" >> $of - echo "!define RTEMS_LOGO \"$source/rtems_logo.bmp\"" >> $of - echo "!define RTEMS_BINARY \"$rtems_binary\"" >> $of - echo "!define RTEMS_LICENSE_FILE \"$source/rtems-license.rtf\"" >> $of - echo "!define RTEMS_OUTFILE \"$outfile\"" >> $of - echo "!define TOOL_PREFIX \"$prefix\"" >> $of - echo "!define RTEMS_TOOLS_SIZE \"$size_in_k\"" >> $of - - . $source/autoconf.def - - echo "!define RTEMS_AUTOCONF \"$package_name\"" >> $of - echo "!define RTEMS_AUTOCONF_SOURCE \"$package_source\"" >> $of - echo "!macro RTEMS_AUTOCONF_PATCHES" >> $of - for p in $package_patches - do - echo " File \"\${RTEMS_PACKAGE_SOURCE}/$p\"" >> $of - done - echo "!macroend" >> $of - - echo "!macro RTEMS_DELETE_AUTOCONF_PATCHES" >> $of - for p in $package_patches - do - echo " Delete \"\$INSTDIR\\Packages\\Source\\$p\"" >> $of - done - echo "!macroend" >> $of - - . $source/automake.def - - echo "!define RTEMS_AUTOMAKE \"$package_name\"" >> $of - echo "!define RTEMS_AUTOMAKE_SOURCE \"$package_source\"" >> $of - echo "!macro RTEMS_AUTOMAKE_PATCHES" >> $of - for p in $package_patches - do - echo " File \"\${RTEMS_PACKAGE_SOURCE}/$p\"" >> $of - done - echo "!macroend" >> $of - - echo "!macro RTEMS_DELETE_AUTOMAKE_PATCHES" >> $of - for p in $package_patches - do - echo " Delete \"\$INSTDIR\\Packages\\Source\\$p\"" >> $of - done - echo "!macroend" >> $of - - echo "!include \"$source/rtems-autotools.nsi\"" >> $of - - echo "cp $source/rtems.ini $treloc/rtems.ini" - $cp $source/rtems.ini $treloc/rtems.ini - check "coping the dialog definition file: $treloc/rtems.ini" - - echo "makensis $of" - $makensis $of - check "making the installer: $of" -} - -# -# Handle each type of host processor. -# -for p in $mingw32_cpu_list -do - echo "; Components based on each target." > $relocation/rtems-sections.nsi - create_autotools_installer noarch auto autotools - target_installer_exec auto auto_section_text 2000 \ - rtems$version-tools-autotools-$tool_build.exe \ - $relocation/rtems-sections.nsi - for t in $targets - do - create_installer $p $t $t rtems$version-tools-$t-$tool_build.exe - done - for t in $(cat $source/targets) - do - target_installer_exec $t ${t}_section_text \ - $(get_size_in_k $relocation/$t) \ - rtems$version-tools-$t-$tool_build.exe \ - $relocation/rtems-sections.nsi - done - # Must be done last - create_installer $p $common_label $common_label $version-tools-$tool_build.exe -done |