ocaml/build/otherlibs-targets.sh

121 lines
3.1 KiB
Bash

#!/bin/sh
#########################################################################
# #
# OCaml #
# #
# Nicolas Pouillard, projet Gallium, INRIA Rocquencourt #
# #
# Copyright 2008 Institut National de Recherche en Informatique et #
# en Automatique. All rights reserved. This file is distributed #
# under the terms of the Q Public License version 1.0. #
# #
#########################################################################
OTHERLIBS_BYTE=""
OTHERLIBS_NATIVE=""
OTHERLIBS_UNIX_NATIVE=""
UNIXDIR="otherlibs/unix"
add_native() {
for native_file in $@; do
OTHERLIBS_NATIVE="$OTHERLIBS_NATIVE otherlibs/$lib/$native_file"
case $lib in
unix|win32unix)
OTHERLIBS_UNIX_NATIVE="$OTHERLIBS_UNIX_NATIVE otherlibs/$lib/$native_file";;
esac
done
}
add_byte() {
for byte_file in $@; do
OTHERLIBS_BYTE="$OTHERLIBS_BYTE otherlibs/$lib/$byte_file"
done
}
add_file() {
add_byte $@
add_native $@
}
add_bin() {
for bin_file in $@; do
add_byte $bin_file.byte$EXE
add_native $bin_file.native$EXE
done
}
add_c_lib() {
add_file "lib$1.$A"
}
add_ocaml_lib() {
add_native "$1.cmxa"
add_native "$1.$A"
add_byte "$1.cma"
}
add_dll() {
add_file "dll$1$EXT_DLL"
}
add() {
add_c_lib $1
add_ocaml_lib $1
add_dll $1
}
THREADS_CMIS="thread.cmi mutex.cmi condition.cmi event.cmi threadUnix.cmi"
for lib in $OTHERLIBRARIES; do
case $lib in
num)
add nums;;
systhreads)
add_ocaml_lib threads
add_dll threads
add_file $THREADS_CMIS
add_byte libthreads.$A
add_native libthreadsnat.$A;;
graph|win32graph)
add graphics;;
threads)
add_byte pervasives.cmi pervasives.mli \
$THREADS_CMIS marshal.cmi marshal.mli \
stdlib.cma unix.cma threads.cma libvmthreads.$A;;
labltk)
add_file support/camltk.h
add_byte support/byte.otarget
add_native support/native.otarget
add_file support/liblabltk.$A
add_byte compiler/tkcompiler$EXE compiler/pp$EXE
add_file labltk/tk.ml labltk/labltk.ml
add_byte labltk/byte.otarget
add_native labltk/native.otarget
add_byte camltk/byte.otarget
add_native camltk/native.otarget
add_ocaml_lib lib/labltk
add_byte lib/labltktop$EXE lib/labltk$EXE
add_ocaml_lib jpf/jpflib
add_ocaml_lib frx/frxlib
add_byte browser/ocamlbrowser$EXE
;;
dbm)
add_ocaml_lib dbm
add_c_lib mldbm;;
dynlink)
add_ocaml_lib dynlink
add_native dynlink.cmx dynlink.$O
add_file $lib.cmi extract_crc;;
win32unix)
UNIXDIR="otherlibs/win32unix"
add_file unixsupport.h cst2constr.h socketaddr.h
add unix;;
unix)
add_file unixsupport.h
add unix;;
*)
add $lib
esac
done