summaryrefslogtreecommitdiff
path: root/mk/pkginstall/ocaml-findlib-register
blob: 8a709bb61880233a6e09a7cd97556b29d49bf31b (plain)
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
# $NetBSD: ocaml-findlib-register,v 1.1 2016/04/12 15:52:29 jaapb Exp $
#
# Generate an +OCAML_FINDLIB_REGISTER script that handles registration for
# findlib after a binary installation
#
case "${STAGE},$1" in
UNPACK,|UNPACK,+OCAML_FINDLIB_REGISTER)
	${CAT} > ./+OCAML_FINDLIB_REGISTER << 'EOF'
#!@SH@
#
# +OCAML_FINDLIB_REGISTER - ocaml-findlib registration script
#
# Usage: ./+OCAML_FINDLIB_REGISTER ADD|REMOVE [findlib_pkg_dir]
#
# This script supports two actions, ADD and REMOVE, that will
# add or remove directories from the ocaml ld.conf file (standard location
# is in LOCALBASE/lib/ocaml/ld.conf)
#
ECHO="@ECHO@"
GREP="@GREP@"
MV="@MV@"
OCAML_FINDLIB_DIRS="@OCAML_FINDLIB_DIRS@"
PWD_CMD="@PWD_CMD@"
RM="@RM@"
TOUCH="@TOUCH@"

SELF=$0
ACTION=$1

LDCONF="@PREFIX@/lib/ocaml/ld.conf"

CURDIR=`${PWD_CMD}`
PKG_METADATA_DIR="${2-${CURDIR}}"
: ${PKGNAME=${PKG_METADATA_DIR##*/}}
: ${PKG_PREFIX=@PREFIX@}

case "${OCAML_FINDLIB_REGISTER_VERBOSE:-@OCAML_FINDLIB_REGISTER_VERBOSE@}" in
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
	echo="${ECHO}"
	;;
[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)
	echo=":"
	;;
esac

${TOUCH} ${LDCONF}.tmp
for i in ${OCAML_FINDLIB_DIRS}
do
  ${GREP} -F -v -- "$i" < "${LDCONF}" >> "${LDCONF}.tmp"
  case $ACTION in
  ADD)
    $echo "${PKGNAME}: adding $i to ${LDCONF}"
    ${ECHO} "@PREFIX@/$i" >> "${LDCONF}.tmp"
	;;

  REMOVE)
    $echo "${PKGNAME}: removing $i from ${LDCONF}"
	;;
  esac
done
${MV} -f "${LDCONF}.tmp" "${LDCONF}"

EOF
	${CHMOD} +x ./+OCAML_FINDLIB_REGISTER
	;;
esac