author  wenzelm 
Mon, 24 Jan 2011 15:39:42 +0100  
changeset 41627  0040e0ea02e7 
parent 41611  f23ce44fbaec 
child 41650  0ec66d976f5b 
permissions  rwxrxrx 
33907
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

1 
#!/usr/bin/env bash 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

2 
# 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

3 
# makebundle  repackage with addon components 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

4 

473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

5 
## diagnostics 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

6 

473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

7 
PRG=$(basename "$0") 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

8 

473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

9 
function usage() 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

10 
{ 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

11 
echo 
37315  12 
echo "Usage: $PRG ARCHIVE PLATFORM" 
33907
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

13 
echo 
37315  14 
echo " Repackage Isabelle source distribution with addon components" 
37343  15 
echo " and heap images" 
33907
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

16 
echo 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

17 
exit 1 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

18 
} 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

19 

473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

20 
function fail() 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

21 
{ 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

22 
echo "$1" >&2 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

23 
exit 2 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

24 
} 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

25 

473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

26 

37315  27 
## implicit and explicit arguments 
33907
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

28 

37315  29 
TMP="/var/tmp/isabellemakebundle$$" 
30 
mkdir "$TMP"  fail "Cannot create directory $TMP" 

31 

32 
[ "$#" ne 2 ] && usage 

33907
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

33 

473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

34 
ARCHIVE="$1"; shift 
37315  35 
PLATFORM="$1"; shift 
33907
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

36 

37315  37 
[ f "$ARCHIVE" ]  fail "Bad source archive: $ARCHIVE" 
33907
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

38 

473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

39 

473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

40 
## main 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

41 

473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

42 
ARCHIVE_DIR="$(cd $(dirname "$ARCHIVE"); echo "$PWD")" 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

43 
ISABELLE_NAME="$(basename "$ARCHIVE" .tar.gz)" 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

44 
ISABELLE_HOME="$TMP/$ISABELLE_NAME" 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

45 

473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

46 
tar C "$TMP" x z f "$ARCHIVE" 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

47 

37315  48 

33907
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

49 
echo "#bundled components" >> "$ISABELLE_HOME/etc/components" 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

50 

37315  51 
for CONTRIB in "$ARCHIVE_DIR"/contrib/*.tar.gz 
33907
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

52 
do 
37315  53 
tar C "$ISABELLE_HOME/contrib" x z f "$CONTRIB" 
54 
NAME="$(basename "$CONTRIB" .tar.gz)" 

55 
[ d "$ISABELLE_HOME/contrib/$NAME" ]  fail "Bad archive content $CONTRIB" 

33907
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

56 

473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

57 
if [ e "$ISABELLE_HOME/contrib/$NAME/etc/settings" ]; then 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

58 
echo "component $NAME" 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

59 
echo "contrib/$NAME" >> "$ISABELLE_HOME/etc/components" 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

60 
else 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

61 
echo "package $NAME" 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

62 
fi 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

63 
done 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

64 

37315  65 

37343  66 
HEAPS_ARCHIVE="$ARCHIVE_DIR/${ISABELLE_NAME}_heaps_${PLATFORM}.tar.gz" 
67 
[ f "$HEAPS_ARCHIVE" ]  fail "Bad heaps archive: $HEAPS_ARCHIVE" 

68 
echo "heaps" 

37357  69 
tar C "$TMP" x z f "$HEAPS_ARCHIVE" 
37315  70 

71 

41627
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

72 
case "$PLATFORM" in 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

73 
x86linux) 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

74 
( 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

75 
cd "$TMP/$ISABELLE_NAME/contrib/ProofGeneral" 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

76 
find . name "*.elc" exec rm {} ";" 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

77 
) 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

78 
;; 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

79 
x86cygwin) 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

80 
rm "$TMP/$ISABELLE_NAME/contrib/ProofGeneral" 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

81 
ln s ProofGeneral3.7.1.1 "$TMP/$ISABELLE_NAME/contrib/ProofGeneral" 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

82 
;; 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

83 
*) 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

84 
;; 
0040e0ea02e7
delete compiled .elc files to improve portability on Linux, notably for GNU Emacs 23.1.x instead of 23.2.x;
wenzelm
parents:
41611
diff
changeset

85 
esac 
41611
f23ce44fbaec
Cygwin: back to ProofGeneral3.7.1.1 with XEmacs, since PG 4.x with GNU Emacs 23 is painfully slow;
wenzelm
parents:
41555
diff
changeset

86 

37315  87 
BUNDLE_ARCHIVE="${ARCHIVE_DIR}/${ISABELLE_NAME}_bundle_${PLATFORM}.tar.gz" 
88 

89 
echo "$(basename "$BUNDLE_ARCHIVE")" 

41555  90 
tar C "$TMP" c z f "$BUNDLE_ARCHIVE" "$ISABELLE_NAME" 
33907
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

91 

473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

92 

473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

93 
# clean up 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

94 
cd /tmp 
473f859e1c29
repackage Isabelle distribution with addon components;
wenzelm
parents:
diff
changeset

95 
rm rf "$TMP" 