]> code.delx.au - refind/blob - mkdistrib
Version 0.5.0 release.
[refind] / mkdistrib
1 #!/bin/bash
2 #
3 # Script to prepare source code and binary distribution files of rEFInd.
4 # By Rod Smith, 3/11/2012
5 # Updated 11/8/2012 to do more things automatically
6 # Updated 12/6/2012 to sign binaries with the rEFInd MOK
7 #
8 # Usage: ./mkdistrib version
9 # where "version" is a version number
10 # MUST be run from an x86-64 system, on which the TianoCore build
11 # includes both X64 and IA32 build support ("TARGET_ARCH = IA32 X64"
12 # in Conf/target.txt). The MOK files must be available from a disk
13 # partition to be mounted via /etc/fstab at /mnt/refind.
14
15
16 StartDir=`pwd`
17 SBSign=`which sbsign 2> /dev/null`
18 KeysDir=/mnt/refind
19
20 KeysInfo=`df $KeysDir 2> /dev/null | grep $KeysDir`
21
22 if [[ ! -n $SBSign ]] ; then
23 echo "Can't find sbsign binary! Aborting!"
24 exit 1
25 fi
26
27 if [[ ! -n $KeysInfo ]] ; then
28 mount /mnt/refind
29 fi
30
31 if [[ $? -ne 0 ]] ; then
32 echo "Error mounting $KeysDir! Aborting!"
33 echo ""
34 exit 1
35 fi
36
37 # From here on, if there's an error, abort immediately.
38 set -e
39
40 make clean
41
42 # Prepare a place and copy files there....
43 mkdir -p ../snapshots/$1/refind-$1/icons
44 cp --preserve=timestamps icons/*icns ../snapshots/$1/refind-$1/icons/
45 cp -a docs images include EfiLib libeg refind filesystems install.sh CREDITS.txt NEWS.txt BUILDING.txt COPYING.txt LICENSE.txt README.txt refind.inf Make.tiano Make.common Makefile refind.conf-sample ../snapshots/$1/refind-$1
46 cp $KeysDir/refind.cer $KeysDir/refind.crt ../snapshots/$1/refind-$1/
47
48 # Go there and prepare a souce code zip file....
49 cd ../snapshots/$1/
50 zip -9r refind-src-$1.zip refind-$1
51
52 # Build the IA32 binaries
53 cd refind-$1
54 ARCH=ia32 make
55 ARCH=ia32 make fs
56 mkdir -p refind-bin-$1/refind/drivers_ia32
57 cp --preserve=timestamps drivers/*_ia32.efi refind-bin-$1/refind/drivers_ia32/
58 cp --preserve=timestamps filesystems/LICENSE*txt refind-bin-$1/refind/drivers_ia32/
59 cp refind/refind_ia32.efi refind-bin-$1/refind/refind_ia32.efi
60 cp refind/refind_ia32.efi $StartDir/
61
62 # Build the X64 binaries
63 make clean
64 make
65 make fs
66 mkdir -p refind-bin-$1/refind/drivers
67 cp -a icons refind-bin-$1/refind/
68 for File in `ls drivers/*_x64.efi` ; do
69 $SBSign --key $KeysDir/refind.key --cert $KeysDir/refind.crt --output refind-bin-$1/refind/$File $File
70 done
71 mv refind-bin-$1/refind/drivers refind-bin-$1/refind/drivers_x64
72 cp --preserve=timestamps filesystems/LICENSE*txt refind-bin-$1/refind/drivers_x64/
73 cp --preserve=timestamps refind.conf-sample refind-bin-$1/refind/
74 $SBSign --key $KeysDir/refind.key --cert $KeysDir/refind.crt --output refind-bin-$1/refind/refind_x64.efi refind/refind_x64.efi
75 cp refind-bin-$1/refind/refind_x64.efi $StartDir
76 cp -a COPYING.txt LICENSE.txt README.txt docs CREDITS.txt install.sh refind-bin-$1
77
78 # Prepare the final .zip file and clean up
79 cp $KeysDir/refind.cer $KeysDir/refind.crt refind-bin-$1/
80 zip -9r ../refind-bin-$1.zip refind-bin-$1
81 cd ..
82 rm -r refind-$1
83 cd $StartDir
84 umount $KeysDir