shellfiles/build_stx_libjava.sh
changeset 226 a48cbce777eb
parent 113 28d9dbbe08c2
child 227 8f0a7e9bddfb
equal deleted inserted replaced
225:07dd0c1e4e6d 226:a48cbce777eb
    11     UNIX=0
    11     UNIX=0
    12 else
    12 else
    13     WIN32=0
    13     WIN32=0
    14     UNIX=1
    14     UNIX=1
    15 fi
    15 fi
    16 
       
    17 if [ "$1" == "-tests" ]; then
       
    18     SKIP_CHECKOUT=yes
       
    19     SKIP_COMPILE=yes
       
    20     SKIP_ARTIFACTS=yes
       
    21 
       
    22     RUN_REPORTS=yes
       
    23 fi
       
    24 
       
    25 
       
    26 
       
    27 
    16 
    28 # Setup...
    17 # Setup...
    29 if [ "$WIN32" == "1" ]; then
    18 if [ "$WIN32" == "1" ]; then
    30     # WINDOWS
    19     # WINDOWS
    31     # MUST export this, otherwise libjpeg fails to build!!!"
    20     # MUST export this, otherwise libjpeg fails to build!!!"
    40     MAKE="cmd /C bmake.bat"
    29     MAKE="cmd /C bmake.bat"
    41 else
    30 else
    42     # LINUX
    31     # LINUX
    43     # to get Mercurial
    32     # to get Mercurial
    44     export PATH=$PATH:/home/vrany/bin
    33     export PATH=$PATH:/home/vrany/bin
       
    34     if [ $(uname -n) == 'exeptn' ]; then
       
    35     	# On exeptn, default Java is 1.4, sigh
       
    36     	export PATH=/usr/java/jdk1.7.0_13/bin:$PATH
       
    37     fi
       
    38 
    45     # Make using regular make here..."
    39     # Make using regular make here..."
    46     MAKE=make
    40     MAKE=make
    47     # Defaults
    41     # Defaults
    48     export CVSROOT="/cvs/stx"
    42     export CVSROOT="/cvs/stx"
    49 fi
    43 fi
    85     mkdir -p "$BUILD"
    79     mkdir -p "$BUILD"
    86 fi
    80 fi
    87 
    81 
    88 pushd "$BUILD"
    82 pushd "$BUILD"
    89 
    83 
       
    84 function checkout_hg {
       
    85 	local directory=$1
       
    86 	local repository=$2
       
    87 	local branch=$3
       
    88 
       
    89 	if [ -z "$branch" ]; then
       
    90 		branch=default
       
    91 	fi
       
    92 
       
    93     if [ -d "$directory/CVS" ]; then
       
    94       rm -rf "$directory"
       
    95     fi
       
    96 
       
    97     if [ ! -d "$directory" ]; then
       
    98       if ! hg clone "$repository" "$directory" -b "$branch";  then
       
    99         echo "ERROR: HG: Cannot clone $directory";
       
   100         exit;
       
   101       fi
       
   102     else
       
   103       if ! hg --cwd "$directory" pull;  then
       
   104         echo "ERROR: HG: Cannot pull $directory";
       
   105         exit;
       
   106       fi
       
   107       if ! hg --cwd "$directory" update;  then
       
   108         echo "ERROR: HG: Cannot update $directory";
       
   109         exit;
       
   110       fi
       
   111     fi
       
   112 
       
   113 }
       
   114 
       
   115 
    90 if [ -z "$SKIP_CHECKOUT" ]; then
   116 if [ -z "$SKIP_CHECKOUT" ]; then
    91 
   117 
    92     echo "INFO: Checking out source code"
   118     echo "INFO: Checking out source code"
    93     
   119 
    94     # Checkout stx
   120     # Checkout stx
    95     if [ ! -d stx ]; then
   121     if [ ! -d stx ]; then
    96       if ! cvs co stx; then
   122       if ! cvs co stx; then
    97         echo "ERROR: CVS: Cannot checkout stx";  
   123         echo "ERROR: CVS: Cannot checkout stx";
    98         exit;
   124         exit;
    99       fi
   125       fi
   100     else
   126     else
   101       (cd stx && cvs update -d)
   127       (cd stx && cvs update -d)
   102     fi
   128     fi
   103     
   129 
   104     # Checkout stx:libjava
   130     checkout_hg stx/stc /home/vrany/repositories/hg/stx.stc jv
   105     if [ -d stx/libjava/CVS ]; then
   131     checkout_hg stx/librun /home/vrany/repositories/hg/stx.librun jv
   106       rm -rf stx/libjava
   132 
       
   133     # stx:libjava repo is huge, so first update from local cache
       
   134     # and then fetch updates from BitBucket.  
       
   135     if [ $(uname -n) == 'exeptn' ]; then
       
   136        checkout_hg stx/libjava /home/vrany/repositories/hg/stx.libjava development
   107     fi
   137     fi
   108 
   138     checkout_hg stx/libjava https://janvrany@bitbucket.org/janvrany/stx-libjava development
   109     if [ ! -d stx/libjava ]; then
       
   110       if ! hg clone https://swing.fit.cvut.cz/hg/stx.libjava/ stx/libjava -b development;  then
       
   111         echo "ERROR: HG: Cannot clone stx/libjava";  
       
   112         exit;
       
   113       fi     
       
   114     else 
       
   115       if ! hg --cwd stx/libjava pull;  then
       
   116         echo "ERROR: HG: Cannot pull stx/libjava";  
       
   117         exit;
       
   118       fi
       
   119       if ! hg --cwd stx/libjava update;  then
       
   120         echo "ERROR: HG: Cannot update stx/libjava";  
       
   121         exit;
       
   122       fi
       
   123     fi
       
   124 
   139 
   125 else
   140 else
   126     echo "INFO: Checkout skipped (SKIP_CHECKOUT=$SKIP_CHECKOUT)"
   141     echo "INFO: Checkout skipped (SKIP_CHECKOUT=$SKIP_CHECKOUT)"
   127 fi
   142 fi
   128 
   143 
   129 # Compile
   144 # Compile
   130 
   145 
   131 if [ -z "$SKIP_COMPILE" ]; then
   146 if [ -z "$SKIP_COMPILE" ]; then
   132 
   147 
       
   148     if [ "$UNIX" == "1" ]; then
       
   149 	if [ ! -f stx/configurations/myConf ]; then
       
   150 	    (cd stx && ./CONFIG)
       
   151 	fi
       
   152 	# Hack...
       
   153         if [ ! -f stx/librun/makefile ]; then
       
   154             (cd stx/librun && ../rules/stmkmf)
       
   155         fi
       
   156     fi
       
   157 
   133     echo "INFO: Compiling"
   158     echo "INFO: Compiling"
   134     TARGETS1="stx stx/libjava stx/goodies/petitparser stx/libjava/tools stx/libjava/experiments stx/projects/smalltalk stx/librun"
   159     TARGETS1="stx stx/libjava stx/goodies/petitparser stx/libjava/tools stx/libjava/experiments stx/projects/smalltalk stx/librun"
   135     for target in $TARGETS1; do
   160     for target in $TARGETS1; do
   136       if ! (cd "$target" && $MAKE); then
   161       if ! (cd "$target" && $MAKE); then
   137         echo "ERROR:  cannot $MAKE in $target"
   162         echo "ERROR:  cannot $MAKE in $target"
   138         exit 3
   163         exit 3
   139       fi
   164       fi
   140     done
   165     done
   141   
   166 
   142 else
   167 else
   143     echo "INFO: Compilation skipped (SKIP_COMPILE=$SKIP_COMPILE)"
   168     echo "INFO: Compilation skipped (SKIP_COMPILE=$SKIP_COMPILE)"
   144 fi
   169 fi
   145 
   170 
   146 popd
   171 popd