view release.sh @ 820:1d06b4aed7cf

Revised code in the first pass. Added code to handle anonymous unions and structs. Hope the idea will work. Added type to class Aggregate and isAnonymous to some other Symbol classes.
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Fri, 14 Mar 2008 15:42:08 +0100
parents bcb74c9b895c
children a3d1d5d5ce44
line wrap: on
line source

#!/bin/bash

if [[ $1 != [0-9].[0-9][0-9][0-9] ]]; then
  echo Wrong version format. Expected: d.ddd
  exit;
fi

BUILD="./build"
DIR="dil.$1"
DEST="$BUILD/$DIR"
FRESH_REPOS="$BUILD/fresh_repos"

# Create build directory if it doesn't exist.
[ ! -e $BUILD ] && mkdir $BUILD

# Convert Unix newlines to Windows newlines
# function unix2win
# {
#   sed {s/$/\\r/} $*
# }

# We need dil to get a list of all modules to be compiled.
if [ ! -s ./dil ]; then
  dsss build -full &> /dev/null
fi

if [ ! -s ./dil ]; then
  echo "Couldn't build DIL. Can't get list of modules to be built."
  exit;
fi

# Used by doc generation and winbuild function.
SRC_FILES=`./dil igraph src/main.d --paths`

# Recreate destination directory.
rm -rf $DEST
mkdir -p $DEST/{bin,doc/htmlsrc,src}

# Create documentation.
./dil ddoc $DEST/doc/ -v src/macros_dil.ddoc -version=DDoc src/config.d $SRC_FILES
# Generate syntax highlighted HTML files.
HTMLSRC="$DEST/doc/htmlsrc"
for filepath in $SRC_FILES;
do
  htmlfile=`echo $filepath | sed -e 's@^src/@@' -e 's@/@.@g' -e 's@.d$@@'`.html
  echo "FILE: $filepath > $HTMLSRC/$htmlfile";
  ./dil gen --lines --syntax --html $filepath > "$HTMLSRC/$htmlfile";
done

# Linux Debug
echo "***** Building Linux binaries *****"
dsss build -clean -full -version=D2
cp dil $DEST/bin/dil2_d
dsss build -clean -full
cp dil $DEST/bin/dil_d
# Linux Release
dsss build -clean -full -release -O -inline -version=D2
cp dil $DEST/bin/dil2
dsss build -clean -full -release -O -inline
cp dil $DEST/bin/dil

if [ -s ~/bin/dmd.exe ]; then
  echo "***** Building Windows binaries *****"
  function winbuild
  { # obj dir is winobj. -op = don't strip paths from obj files.
    wine ~/bin/dmd.exe -odwinobj -op -ofdil $* $SRC_FILES
  }
  # Windows Debug
  winbuild -version=D2
  cp dil.exe $DEST/bin/dil2_d.exe
  winbuild
  cp dil.exe $DEST/bin/dil_d.exe
  # Windows Release
  winbuild -release -O -inline -version=D2
  cp dil.exe $DEST/bin/dil2.exe
  winbuild -release -O -inline
  cp dil.exe $DEST/bin/dil.exe
fi

# Copy source and other files.
rm -rf $FRESH_REPOS
hg archive -r tip -t files $FRESH_REPOS
cp -r $FRESH_REPOS/trunk/* $DEST

cp $FRESH_REPOS/trunk/src/config.d $DEST/bin/
cp $FRESH_REPOS/trunk/src/lang_*.d $DEST/bin/
cp $FRESH_REPOS/trunk/src/*_map.d $DEST/bin/
cp $FRESH_REPOS/trunk/src/*.css $DEST/bin/
cp $FRESH_REPOS/trunk/src/predefined.ddoc $DEST/bin/
cp $FRESH_REPOS/trunk/src/html.css $HTMLSRC

# Build archives
# tar.gz doesn't compress well
tar --owner root --group root -czf $DEST.tar.gz $DEST
tar --owner root --group root --bzip2 -cf $DEST.tar.bz2 $DEST
zip -q -9 -r $DEST.zip $DEST