File: pkg-builder

package info (click to toggle)
cmdliner 0.9.4-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 504 kB
  • ctags: 312
  • sloc: ml: 1,373; sh: 145; makefile: 28
file content (108 lines) | stat: -rwxr-xr-x 2,824 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

# Should be included by a script. The includer should set the variable 
# $NATIVE to "false" if it doesn't want native code compilation.

OCAMLBUILD=${OCAMLBUILD:="ocamlbuild -use-ocamlfind -classic-display"}
B="_build"
NL="
"

LIBS=""; ILIBS=""
BINS=""; IBINS=""
SBIS=""; ISBIS=""
TOPS=""; ITOPS=""
SHRS=""; ISHRS=""
ETCS=""; IETCS=""
DOCS=""; IDOCS=""
MISC=""; IMISC=""
STBS=""; ISTBS=""
MANS=""; IMANS=""

add_lib ()      { LIBS="$LIBS $1"; ILIBS="$ILIBS$NL  \"$B/$1\" {\"$2\"}"; }
add_lib_nobuild () {               ILIBS="$ILIBS$NL  \"?$B/$1\" {\"$2\"}"; }
add_bin ()      { BINS="$BINS $1"; IBINS="$IBINS$NL  \"$B/$1\" {\"$2\"}"; }
add_sbin ()     { SBIS="$SBIS $1"; ISBIS="$ISBIS$NL  \"$B/$1\" {\"$2\"}"; }
add_toplevel () { TOPS="$TOPS $1"; ITOPS="$ITOPS$NL  \"$B/$1\" {\"$2\"}"; }
add_share ()    { SHRS="$SHRS $1"; ISHRS="$ISHRS$NL  \"$B/$1\" {\"$2\"}"; }
add_etc ()      { ETCS="$ETCS $1"; IETCS="$IETCS$NL  \"$B/$1\" {\"$2\"}"; }
add_doc ()      { DOCS="$DOCS $1"; IDOCS="$IDOCS$NL  \"$B/$1\" {\"$2\"}"; }
add_misc ()     { MISC="$MISC $1"; IMISC="$IMISC$NL  \"$B/$1\" {\"$2\"}"; }
add_stublibs () { STBS="$STBS $1"; ISTBS="$ISTBS$NL  \"$B/$1\" {\"$2\"}"; }
add_man ()      { MANS="$MANS $1"; IMANS="$IMANS$NL  \"$B/$1\" {\"$2\"}"; }
add ()
{
    SRC=$2
    DST=$3
    if [ "$DST" = "" ]; then 
        DST=`basename $SRC`
    fi
    case $1 in
        lib)
            if [ "$NATIVE" != "false" ]; then 
                case $2 in 
                    *.cmti | *.cmt) add_lib_nobuild $SRC $DST ;;
                    *) add_lib $SRC $DST ;;
                esac
            else
                case $2 in
                    *.a | *.cmx | *.cmxa | *.cmxs) ;;
                    *.cmti | *.cmt) add_lib_nobuild $SRC $DST ;;
                    *) add_lib $SRC $DST ;;
                esac
            fi
            ;;
        bin)
            if [ "$NATIVE" != "false" ]; then 
                add_bin $SRC.native $DST
            else
                add_bin $SRC.byte $DST
            fi
            ;;
        sbin)
            if [ "$NATIVE" != "false" ]; then 
                add_sbin $SRC.native $DST
            else
                add_sbin $SRC.byte $DST
            fi
            ;;
        share)    add_share $SRC $DST ;;
        etc)      add_etc $SRC $DST ;;
        toplevel) add_top $SRC.top $DST ;; 
        doc)      add_doc $SRC $DST ;;
        misc)     add_misc $SRC $DST ;;
        stublibs) add_stublibs $SRC $DST ;;
        man)      add_man $SRC $DST ;;
    esac
}

build () 
{ 
    $OCAMLBUILD $LIBS $BINS $SBIS $DOCS $TOPS $SHRS $ETCS $MISC $STBS $MANS; 
}

install ()
{
    cat > $1.install <<EOF 
lib: [$ILIBS
]
bin: [$IBINS
]
sbin: [$ISBIS
]
toplevel: [$ITOPS
]
share: [$ISHRS
]
etc: [$IETCS
]
doc: [$IDOCS
]
misc: [$IMISC
]
stublibs: [$ISTBS
]
man: [$IMANS
]
EOF
}