summaryrefslogtreecommitdiff
path: root/lang/ocaml
diff options
context:
space:
mode:
authorjmmv <jmmv>2004-12-24 18:49:09 +0000
committerjmmv <jmmv>2004-12-24 18:49:09 +0000
commite4c4ab25964cfdc730ddcc1873fd4bc40754401b (patch)
tree079f457b81dc4ed28c350c1275f4932a3fd31428 /lang/ocaml
parent68ade4cf5184f10a3cbad7c9984c21fc27c22ffe (diff)
downloadpkgsrc-e4c4ab25964cfdc730ddcc1873fd4bc40754401b.tar.gz
Looks like the rpath problem is a bit more serious than I initially thought
(it currently affects packages using X11, but I guess it will also cause problems when using pkgviews, for example). So, instead of fixing it on a package basis, create some wrappers in the buildlink directory that parse CFLAGS and LDFLAGS contents and convert them to ocaml flags (basically, prepend -ccopt to each of them).
Diffstat (limited to 'lang/ocaml')
-rw-r--r--lang/ocaml/buildlink3.mk18
-rw-r--r--lang/ocaml/files/wrapper.sh19
2 files changed, 36 insertions, 1 deletions
diff --git a/lang/ocaml/buildlink3.mk b/lang/ocaml/buildlink3.mk
index fdd0ec61157..6ef5317f468 100644
--- a/lang/ocaml/buildlink3.mk
+++ b/lang/ocaml/buildlink3.mk
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink3.mk,v 1.10 2004/12/24 17:16:04 jmmv Exp $
+# $NetBSD: buildlink3.mk,v 1.11 2004/12/24 18:49:09 jmmv Exp $
BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+
OCAML_BUILDLINK3_MK:= ${OCAML_BUILDLINK3_MK}+
@@ -23,6 +23,22 @@ INSTALL_UNSTRIPPED= yes
PRINT_PLIST_AWK+= /^@dirrm lib\/ocaml$$/ \
{ print "@comment in ocaml: " $$0; next }
+BUILDLINK_TARGETS+= ocaml-wrappers
+OCAML_WRAPPERS= ocaml ocamlc ocamlc.opt ocamlcp ocamlmklib ocamlmktop \
+ ocamlopt ocamlopt.opt
+
+ocaml-wrappers:
+ ${_PKG_SILENT}${_PKG_DEBUG} \
+ for w in ${OCAML_WRAPPERS}; do \
+ ${SED} -e 's|@SH@|${SH}|g' \
+ -e 's|@OCAML_PREFIX@|${BUILDLINK_PREFIX.ocaml}|g' \
+ -e 's|@CFLAGS@|${CFLAGS}|g' \
+ -e 's|@LDFLAGS@|${LDFLAGS}|g' \
+ <${.CURDIR}/../../lang/ocaml/files/wrapper.sh \
+ >${BUILDLINK_DIR}/bin/$$w; \
+ ${CHMOD} +x ${BUILDLINK_DIR}/bin/$$w; \
+ done
+
.endif # OCAML_BUILDLINK3_MK
BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH:S/+$//}
diff --git a/lang/ocaml/files/wrapper.sh b/lang/ocaml/files/wrapper.sh
new file mode 100644
index 00000000000..d17e8b07ed4
--- /dev/null
+++ b/lang/ocaml/files/wrapper.sh
@@ -0,0 +1,19 @@
+#!@SH@
+
+BINDIR='@OCAML_PREFIX@'
+CFLAGS='@CFLAGS@'
+LDFLAGS='@LDFLAGS@'
+
+if echo "$@" | grep ' -c ' >/dev/null
+then
+ flags="${CFLAGS}"
+else
+ flags="${CFLAGS} ${LDFLAGS}"
+fi
+
+for f in ${flags}
+do
+ MLFLAGS="${MLFLAGS} -ccopt ${f}"
+done
+
+exec "@OCAML_PREFIX@/bin/`basename $0`" ${MLFLAGS} "$@"