summaryrefslogtreecommitdiff
path: root/mk/wrapper
diff options
context:
space:
mode:
authorgrant <grant>2004-11-20 04:37:08 +0000
committergrant <grant>2004-11-20 04:37:08 +0000
commit42df7bed2b86aa43133d5222b69b80c55ada13d1 (patch)
tree6d158b2d9ff8e8537979aced96e3ca9facb901ec /mk/wrapper
parentfe2e329a94e763001b3e35f7d037ef08affc6791 (diff)
downloadpkgsrc-42df7bed2b86aa43133d5222b69b80c55ada13d1.tar.gz
add framework support for Tru64 and the Compaq C compiler.
patches provided by Tobias Nygren <tnn at netilium dot org> with minor changes by me.
Diffstat (limited to 'mk/wrapper')
-rw-r--r--mk/wrapper/bsd.wrapper.mk34
-rw-r--r--mk/wrapper/cmd-sink-osf1-cc47
-rw-r--r--mk/wrapper/cmd-sink-osf1-ld54
-rw-r--r--mk/wrapper/transform-ccc-cc32
4 files changed, 164 insertions, 3 deletions
diff --git a/mk/wrapper/bsd.wrapper.mk b/mk/wrapper/bsd.wrapper.mk
index f53563d67b9..8020eda8b29 100644
--- a/mk/wrapper/bsd.wrapper.mk
+++ b/mk/wrapper/bsd.wrapper.mk
@@ -1,4 +1,4 @@
-# $NetBSD: bsd.wrapper.mk,v 1.11 2004/11/12 16:27:57 jlam Exp $
+# $NetBSD: bsd.wrapper.mk,v 1.12 2004/11/20 04:37:08 grant Exp $
#
# Copyright (c) 2004 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -149,7 +149,7 @@ _WRAPPEES+= ${_wrappee_}
_WRAP_ALIASES.AS= as
_WRAP_ALIASES.CC= cc gcc
-_WRAP_ALIASES.CXX= c++ g++ CC
+_WRAP_ALIASES.CXX= c++ g++ CC cxx
_WRAP_ALIASES.CPP= cpp
_WRAP_ALIASES.FC= f77 g77
_WRAP_ALIASES.IMAKE= imake
@@ -247,6 +247,13 @@ _WRAP_CACHE_BODY.CXX= ${_WRAP_CACHE_BODY.CC}
_WRAP_TRANSFORM.CXX= ${_WRAP_TRANSFORM.CC}
.endif
+.if !empty(PKGSRC_COMPILER:Mccc)
+_WRAP_CACHE_BODY.CC= ${WRAPPER_TMPDIR}/cache-body-ccc-cc
+_WRAP_TRANSFORM.CC= ${WRAPPER_TMPDIR}/transform-ccc-cc
+_WRAP_CACHE_BODY.CXX= ${_WRAP_CACHE_BODY.CC}
+_WRAP_TRANSFORM.CXX= ${_WRAP_TRANSFORM.CC}
+.endif
+
_WRAP_CMD_SINK.LD= ${WRAPPER_TMPDIR}/cmd-sink-ld
_WRAP_TRANSFORM_SED.IMAKE= # empty
@@ -264,6 +271,10 @@ _WRAP_CMD_SINK.LD= ${WRAPPER_TMPDIR}/cmd-sink-interix-ld
_WRAP_CMD_SINK.CC= ${WRAPPER_TMPDIR}/cmd-sink-unixware-gcc
_WRAP_CMD_SINK.CXX= ${_WRAP_CMD_SINK.CC}
_WRAP_CMD_SINK.LD= ${_WRAP_CMD_SINK.CC}
+.elif ${OPSYS} == "OSF1"
+_WRAP_CMD_SINK.LD= ${WRAPPER_TMPDIR}/cmd-sink-osf1-ld
+_WRAP_CMD_SINK.CC= ${WRAPPER_TMPDIR}/cmd-sink-osf1-cc
+_WRAP_CMD_SINK.CXX= ${WRAPPER_TMPDIR}/cmd-sink-osf1-cc
.endif
# Filter to scrunch shell scripts by removing comments and empty lines.
@@ -417,6 +428,24 @@ ${WRAPPER_TMPDIR}/cmd-sink-unixware-gcc: \
${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \
| ${_WRAP_SH_CRUNCH_FILTER} > ${.TARGET}
+${WRAPPER_TMPDIR}/cmd-sink-osf1-ld: \
+ ${WRAPPER_SRCDIR}/cmd-sink-osf1-ld
+ ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H}
+ ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \
+ | ${_WRAP_SH_CRUNCH_FILTER} > ${.TARGET}
+
+${WRAPPER_TMPDIR}/cmd-sink-osf1-cc: \
+ ${WRAPPER_SRCDIR}/cmd-sink-osf1-cc
+ ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H}
+ ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \
+ | ${_WRAP_SH_CRUNCH_FILTER} > ${.TARGET}
+
+${WRAPPER_TMPDIR}/transform-ccc-cc: \
+ ${WRAPPER_SRCDIR}/transform-ccc-cc
+ ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H}
+ ${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \
+ | ${_WRAP_SH_CRUNCH_FILTER} > ${.TARGET}
+
${WRAPPER_TMPDIR}/transform-mipspro-cc: \
${WRAPPER_SRCDIR}/transform-mipspro-cc
${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H}
@@ -441,7 +470,6 @@ ${WRAPPER_TMPDIR}/transform-xlc-cc: \
${_PKG_SILENT}${_PKG_DEBUG}${CAT} ${.ALLSRC} \
| ${_WRAP_SH_CRUNCH_FILTER} > ${.TARGET}
-
.if !target(${_WRAP_GEN_REORDER})
${_WRAP_GEN_REORDER}: \
${_WRAP_SHELL_LIB} \
diff --git a/mk/wrapper/cmd-sink-osf1-cc b/mk/wrapper/cmd-sink-osf1-cc
new file mode 100644
index 00000000000..b67d1da838e
--- /dev/null
+++ b/mk/wrapper/cmd-sink-osf1-cc
@@ -0,0 +1,47 @@
+# $NetBSD: cmd-sink-osf1-cc,v 1.1 2004/11/20 04:37:08 grant Exp $
+
+# Empty out the command buffer and build up the command line in $cmd.
+osf1runpath=
+while ! queue_is_empty cmdbuf; do
+ pop_queue cmdbuf arg
+ $debug_log $wrapperlog " (cmd-sink-osf1-cc) pop: $arg"
+ case $arg in
+ ##############################################################
+ # OSF1 ld doesn't support multiple rpath parameters, accumulate
+ # them into a single -rpath /path1:/path2:...:pathn
+ ##############################################################
+ -rpath)
+ pop_queue cmdbuf dir
+ case $osf1runpath in
+ "") osf1runpath="$dir" ;;
+ *) osf1runpath="$osf1runpath:$dir" ;;
+ esac
+ $debug_log $wrapperlog " (cmd-sink-osf1-cc) drop: $dir [adding to osf1runpath]"
+ ;;
+
+ -R*|-Wl,-R*|-Wl,-rpath,*|-Wl,-rpath-link,*|-Wl,--rpath,*)
+ case $arg in
+ -R*) R="-R" ;;
+ -Wl,-R*) R="-Wl,-R" ;;
+ -Wl,-rpath,*) R="-Wl,-rpath," ;;
+ -Wl,-rpath-link,*) R="-Wl,-rpath-link," ;;
+ -Wl,--rpath,*) R="-Wl,--rpath," ;;
+ esac
+ dir="${arg#$R}"
+ case $osf1runpath in
+ "") osf1runpath="$dir" ;;
+ *) osf1runpath="$osf1runpath:$dir" ;;
+ esac
+ $debug_log $wrapperlog " (cmd-sink-osf1-cc) drop: $dir [adding to osf1runpath]"
+ ;;
+ *)
+ . $buildcmd
+ ;;
+ esac
+done
+
+if $test -n "$osf1runpath"; then
+ arg="-Wl,-rpath,$osf1runpath"
+ $debug_log $wrapperlog " (cmd-sink-osf1-cc) pop: $arg [aggregate]"
+ . $buildcmd
+fi
diff --git a/mk/wrapper/cmd-sink-osf1-ld b/mk/wrapper/cmd-sink-osf1-ld
new file mode 100644
index 00000000000..1dabe3a196f
--- /dev/null
+++ b/mk/wrapper/cmd-sink-osf1-ld
@@ -0,0 +1,54 @@
+# $NetBSD: cmd-sink-osf1-ld,v 1.1 2004/11/20 04:37:08 grant Exp $
+
+# Empty out the command buffer and build up the command line in $cmd.
+osf1runpath=
+while ! queue_is_empty cmdbuf; do
+ pop_queue cmdbuf arg
+ $debug_log $wrapperlog " (cmd-sink-osf1-ld) pop: $arg"
+ case $arg in
+ ##############################################################
+ # OSF1 ld doesn't support multiple rpath parameters, accumulate
+ # them into a single -rpath /path1:/path2:...:pathn
+ ##############################################################
+ -rpath)
+ pop_queue cmdbuf dir
+ case $osf1runpath in
+ "") osf1runpath="$dir" ;;
+ *) osf1runpath="$osf1runpath:$dir" ;;
+ esac
+ $debug_log $wrapperlog " (cmd-sink-osf1-ld) drop: $dir [adding to osf1runpath]"
+ ;;
+ -R*|-Wl,-R*|-Wl,-rpath,*|-Wl,-rpath-link,*|-Wl,--rpath,*)
+ case $arg in
+ -R*) R="-R" ;;
+ -Wl,-R*) R="-Wl,-R" ;;
+ -Wl,-rpath,*) R="-Wl,-rpath," ;;
+ -Wl,-rpath-link,*) R="-Wl,-rpath-link," ;;
+ -Wl,--rpath,*) R="-Wl,--rpath," ;;
+ esac
+ dir="${arg#$R}"
+ case $osf1runpath in
+ "") osf1runpath="$dir" ;;
+ *) osf1runpath="$osf1runpath:$dir" ;;
+ esac
+ $debug_log $wrapperlog " (cmd-sink-osf1-ld) drop: $dir [adding to osf1runpath]"
+ ;;
+ -pthread)
+ arg="-lpthread"
+ $debug_log $wrapperlog " (cmd-sink-osf1-ld) pop: $arg"
+ . $buildcmd
+ ;;
+ *)
+ . $buildcmd
+ ;;
+ esac
+done
+
+if $test -n "$osf1runpath"; then
+ arg=-rpath
+ $debug_log $wrapperlog " (cmd-sink-osf1-ld) pop: $arg"
+ . $buildcmd
+ arg=$osf1runpath
+ $debug_log $wrapperlog " (cmd-sink-osf1-ld) pop: $arg [aggregate]"
+ . $buildcmd
+fi
diff --git a/mk/wrapper/transform-ccc-cc b/mk/wrapper/transform-ccc-cc
new file mode 100644
index 00000000000..e7e055d2ddc
--- /dev/null
+++ b/mk/wrapper/transform-ccc-cc
@@ -0,0 +1,32 @@
+# $NetBSD: transform-ccc-cc,v 1.1 2004/11/20 04:37:08 grant Exp $
+#
+
+case $arg in
+######################################################################
+# Directories for the runtime library search path are passed via
+# "-Wl,-rpath,<dir>", not "-Wl,-R<dir>".
+######################################################################
+-Wl,-R*)
+ arg="-Wl,-rpath,${arg#-Wl,-R}"
+ msg_log $wrapperlog " (transform-ccc-cc) to: $arg"
+ addtocache=yes
+ ;;
+-W[LlSc],*)
+ addtocache=yes
+ ;;
+-W*)
+ arg=
+ msg_log $wrapperlog " (transform-ccc-cc) to: $arg"
+ addtocache=yes
+ ;;
+-mieee)
+ arg="-ieee"
+ msg_log $wrapperlog " (transform-ccc-cc) to: $arg"
+ addtocache=yes
+ ;;
+-g)
+ arg="-g3"
+ msg_log $wrapperlog " (transform-ccc-cc) to: $arg"
+ addtocache=yes
+ ;;
+esac