Bump version to 0.36.9
[cygport.git] / cygclass / ocaml.cygclass
blob04dfe6b2feb13dbc53248e2fa73c32e0a3c153ec
1 ################################################################################
3 # ocaml.cygclass - functions for installing OCaml packages
5 # Part of cygport - Cygwin packaging application
6 # Copyright (C) 2006-2020 Cygport authors
7 # Provided by the Cygwin project <https://cygwin.com/>
9 # cygport is free software: you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation, either version 3 of the License, or
12 # (at your option) any later version.
14 # cygport is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 # GNU General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with cygport.  If not, see <https://www.gnu.org/licenses/>.
22 ################################################################################
24 #****h* Cygclasses/ocaml.cygclass
25 #  SYNOPSIS
26 #  inherit ocaml
27 #  DESCRIPTION
28 #  OCaml (previously known as Objective Caml) is an object-oriented dialect
29 #  of the ML programming language. Individual scripts can be run as with
30 #  interpreted languages, but most commonly code is compiled into bytecode
31 #  and/or stand-alone native code.  A number of extension libraries are
32 #  available in addition to the standard library.
34 #  This cygclass provides definitions for OCaml-based packages, and an install
35 #  function for OCaml library packages which use OCAMLFIND.
36 #  NOTE
37 #  OCaml bytecode executables, while behaving like an ordinary .exe, cannot be
38 #  stripped.  Cygport will automatically detect these and will not strip them
39 #  during the automatic postinstall phase.
40 #  REQUIRES
41 #  ocaml, ocaml-findlib
42 #****
44 # cross-compiling is not (yet?) supported
45 __cross_compiling_error
47 check_prog_req ocaml
49 #****d* ocaml.cygclass/OCAML
50 #  DESCRIPTION
51 #  Absolute path to the OCaml interactive toplevel (interpreter).
52 #****
53 OCAML=$(type -p ocaml)
55 #****d* ocaml.cygclass/OCAMLC
56 #  DESCRIPTION
57 #  Absolute path to the OCaml byte compiler.
58 #****
59 OCAMLC=$(type -p ocamlc.opt)
61 #****d* ocaml.cygclass/OCAMLDOC
62 #  DESCRIPTION
63 #  Absolute path to the OCaml documentation generator.
64 #****
65 OCAMLDOC=$(type -p ocamldoc.opt)
67 #****d* ocaml.cygclass/OCAMLFIND
68 #  DESCRIPTION
69 #  Absolute path to the OCaml library package manager.
70 #****
71 OCAMLFIND=$(type -p ocamlfind)
73 #****d* ocaml.cygclass/OCAMLLEX
74 #  DESCRIPTION
75 #  Absolute path to the OCaml lexer generator.
76 #****
77 OCAMLLEX=$(type -p ocamllex.opt)
79 #****d* ocaml.cygclass/OCAMLMKLIB
80 #  DESCRIPTION
81 #  Absolute path to the OCaml library linker.
82 #****
83 OCAMLMKLIB=$(type -p ocamlmklib)
85 #****d* ocaml.cygclass/OCAMLMKTOP
86 #  DESCRIPTION
87 #  Absolute path to the OCaml custom toplevel linker.
88 #****
89 OCAMLMKTOP=$(type -p ocamlmktop)
91 #****d* ocaml.cygclass/OCAMLOPT
92 #  DESCRIPTION
93 #  Absolute path to the OCaml native-code compiler.
94 #****
95 OCAMLOPT=$(type -p ocamlopt.opt)
97 #****d* ocaml.cygclass/OCAML_LIBDIR
98 #  DESCRIPTION
99 #  Installation path for OCaml included libraries.
100 #****
101 OCAML_LIBDIR=$(${OCAMLC} -where)
103 #****d* ocaml.cygclass/OCAML_INCLUDEDIR
104 #  DESCRIPTION
105 #  Absolute path to the directory containing the OCaml C headers.
106 #****
107 OCAML_INCLUDEDIR=${OCAML_LIBDIR}/caml
109 #****d* ocaml.cygclass/OCAML_SITEDIR
110 #  DESCRIPTION
111 #  Installation path for OCaml third-party libraries.
112 #****
113 OCAML_SITEDIR=${OCAML_LIBDIR}
115 #****d* ocaml.cygclass/OCAML_STUBDIR
116 #  DESCRIPTION
117 #  Installation path for OCaml C stub libraries.
118 #****
119 OCAML_STUBDIR=${OCAML_LIBDIR}/stublibs
121 #****d* ocaml.cygclass/LIBCAMLRUN
122 #  DESCRIPTION
123 #  Link flags for the OCaml shared C library.
124 #****
125 LIBCAMLRUN="-L${OCAML_LIBDIR} -lcamlrun_shared"
127 #****I* ocaml.cygclass/ocaml_install
128 #  DESCRIPTION
129 #  Defines some variables for OCAMLFIND before calling cyginstall.
130 #****
131 ocaml_install() {
132         dodir ${OCAML_STUBDIR}
133         export OCAMLFIND_DESTDIR="${D}${OCAML_LIBDIR}"
134         export OCAMLFIND_LDCONF=ignore
135         cyginstall "${@}"
138 #****o* ocaml.cygclass/src_install (ocaml)
139 #  DEFINITION
140 src_install() {
141         cd ${B}
142         ocaml_install
144 #****
146 readonly -f ocaml_install