File: build

package info (click to toggle)
xmlm 1.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 424 kB
  • ctags: 670
  • sloc: ml: 1,770; sh: 90; makefile: 19
file content (108 lines) | stat: -rwxr-xr-x 2,307 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#!/bin/sh
set -e

# Project info
PROJECTNAME="xmlm"
VERSION="1.0.2"
COPYRIGHTYEAR="2007-2009"
SHORTDESCRIPTION="Streaming XML input\/output for OCaml"
EMAIL="daniel.buenzl i\\\@erratique.ch"

INSTALLDIR=${INSTALLDIR:="`ocamlc -where`/$PROJECTNAME"}
DOCDIR=${DOCDIR:="doc"}
F=${F:="_build/src/$PROJECTNAME"}

# Caml tools
OCAMLDOC=${OCAMLDOC:="ocamldoc"}
OCAMLBUILD=${OCAMLBUILD:="ocamlbuild"}
BUILDFLAGS=${BUILDFLAGS:="-classic-display"}

# Misc tools
CP=${CP:="cp"}
RM=${RM:="rm"}
MKDIR=${MKDIR:="mkdir"}

ocb () { $OCAMLBUILD $BUILDFLAGS $* ; }

action () 
{
  case $1 in
    module-byte)
      ocb $PROJECTNAME.cmo ;;
    module-native) 
      ocb $PROJECTNAME.cmx ;;
    module-plugin) 
      ocb $PROJECTNAME.cmxs ;;
    module)
      action module-byte
      action module-native ;;
    doc)
      ocb $PROJECTNAME.cmi
      $OCAMLDOC -html -I src -colorize-code -d $DOCDIR src/$PROJECTNAME.mli ;;
    distrib) distrib ;;
    install-byte)
      action module-byte
      $MKDIR -p $INSTALLDIR
      $CP $F.ml $F.mli $F.cmi $F.cmo src/META $INSTALLDIR ;;
    install)
      action install-byte
      action module-native
      $CP $F.cmx $F.o $INSTALLDIR ;;
    install-plugin)
      action install
      action module-plugin
      $CP $F.cmxs $INSTALLDIR ;;
    clean) 
      ocb -clean ;;
    clean-all) 
      action clean
      $RM -f $DOCDIR/*.html ;;
    *) 
      ocb $1;;
  esac;
} 

distrib ()
{
  CD=${CD:="cd"}
  FIND=${FIND:="find"}
  GREP=${GREP:="grep"}
  TAR=${TAR:="tar"}

  DIRNAME=$PROJECTNAME-$VERSION
  ROOTDIR=/tmp/$DIRNAME
  $RM -rf $ROOTDIR
  $MKDIR -p $ROOTDIR
  $CP -r . $ROOTDIR
  $CD $ROOTDIR
  action clean-all

  $RM -rf _darcs
  $RM -f TODO
  $FIND $ROOTDIR \
    \( -name "*~" -o -name ".DS_Store" -o -name ".gdb_history" \) \
    -exec $RM {} ';'
  for file in `$FIND $ROOTDIR -type f -print`; do
    sed -i "s/1.0.2/$VERSION/; \
            s/2007-2009/$COPYRIGHTYEAR/; \
            s/Streaming XML input/output for OCaml/$SHORTDESCRIPTION/; \
            s/daniel.buenzl i\@erratique.ch/$EMAIL/;" \
	$file
  done

  action module
  action xmltrip.native
  action examples.cmo
  action doc
  action clean

  $CD ..
  $TAR -cvjf $DIRNAME.tbz $DIRNAME
  $RM -r $DIRNAME
}

if [ $# -eq 0 ]; then action module ; else
  while [ $# -gt 0 ]; do action $1; shift ; done
fi