38.1.2. Kompilace

FIXME:

Před vlastním překladem Ruby/DBI si přeložím knihovnu sqlite

$ # Překlad sqlite z cvs.  Version=2.7.5, date=2003-01-09
$ cd $HOME/source
$ mkdir sqlite-2.7.5-2003.01.09
$ cd sqlite-2.7.5-2003.01.09
$ cp -a $HOME/mirror/cvs/sqlite/* .
$ find . -name CVS -exec rm -r {} \;
$ cd $HOME/tmp
$ mkdir sqlite-bld
$ cd sqlite-bld
$ mkdir $HOME/opt/sqlite-2.7.5-2003.01.09
$ $HOME/source/sqlite-2.7.5-2003.01.09/configure --prefix=$HOME/opt/sqlite-2.7.5-2003.01.09
$ make             0:13:39

Pro kompilaci Rubi/DBI jsem si připravil skript. Tento kompiluje podel zadání ze stažených zdrojů, nebo ze staženého cvs stromu.

Příklad 38.2. Kompilace Rubi/DBI

#!/bin/sh
# $Id: compile-ruby-dbi,v 1.2 2003/01/05 19:30:00 radek Exp $
# Kompilace a instalace Rubi/DBI
# Copyright (C) 2002 Radek Hnilica
# All rights reserved.

BINDIR=$HOME/bin
RUBYDIR=$HOME/lib/ruby
TMPDIR=$HOME/tmp
CVSDIR=$HOME/mirror/ruby/ruby-dbi
DOWNLOAD_DIR=$HOME/download/ruby/ruby-dbi
COMPILE_DIR=$TMPDIR/ruby-dbi

PKGS=dbi,dbd_sqlite,dbd_pg,dbd_mysql


# Print script usage
function usage() {
    cat - <<EOF
usage: $0 [version|cvs]
EOF
    exit 0
} # usage



# Unpack source tarball of given version to $COMPILE_DIR/src
# directory
function unpack_source() {
    VERSION=$1
    FILE=$DOWNLOAD_DIR/ruby-dbi-all-${VERSION}.tar.gz

    if [ -f $FILE ]; then
	cd $COMPILE_DIR
	tar xzvf $DOWNLOAD_DIR/ruby-dbi-all-${VERSION}.tar.gz
	mv ruby-dbi-all src
    else
	echo "Source tarball ${FILE} doesn't exist"
	exit 0
    fi
} #unpack_souce



# Copy source from local CVS mirror to $COMPILE_DIR/src
# directory.
function copy_cvs() {
    cd $COMPILE_DIR
    cp -a $CVSDIR/src .
    find . -name 'CVS' -exec rm -r {} \;
} #copy_cvs



### MAIN
# FIXME: test number of arguments if wrong then do usage
VERSION=$1

# Create temporary directory for compiling
cd $TMPDIR
# FIXME: if [ -d ruby-dbi ]; then rm -r ruby-dbi; fi
rm -r ruby-dbi
mkdir ruby-dbi
cd ruby-dbi

case $VERSION in
    cvs)    copy_cvs;;
    [0-9]*) unpack_source $VERSION;;
    *)      usage
esac

# Compile and install
cd $COMPILE_DIR/src
ruby setup.rb config --with=$PKGS --without=dbd_sybase \
    --bin-dir=$BINDIR --rb-dir=$RUBYDIR --so-dir=$RUBYDIR
ruby setup.rb setup
ruby setup.rb install

# Cleanup
rm -r $COMPILE_DIR

Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .