summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortnn <tnn@pkgsrc.org>2007-04-17 11:05:33 +0000
committertnn <tnn@pkgsrc.org>2007-04-17 11:05:33 +0000
commit409fd2c40afe2001501f0e1d142ce009afbb2145 (patch)
tree65135378bd4e3e6aca4549d9b32c21c7d05d7c56
parent05620458c741079662826aa12a29e9561d36be98 (diff)
downloadpkgsrc-409fd2c40afe2001501f0e1d142ce009afbb2145.tar.gz
add support for the HP-UX C/aC++ compilers
-rw-r--r--mk/compiler.mk5
-rw-r--r--mk/compiler/hp.mk89
2 files changed, 92 insertions, 2 deletions
diff --git a/mk/compiler.mk b/mk/compiler.mk
index ca28d42c43d..edcfb835acd 100644
--- a/mk/compiler.mk
+++ b/mk/compiler.mk
@@ -1,4 +1,4 @@
-# $NetBSD: compiler.mk,v 1.58 2006/12/03 08:34:45 seb Exp $
+# $NetBSD: compiler.mk,v 1.59 2007/04/17 11:05:33 tnn Exp $
#
# This Makefile fragment implements handling for supported C/C++/Fortran
# compilers.
@@ -17,6 +17,7 @@
# icc Intel C++ Compiler (Linux)
# ido SGI IRIS Development Option cc (IRIX 5)
# gcc GNU
+# hp HP-UX C/aC++ compilers
# mipspro Silicon Graphics, Inc. MIPSpro (n32/n64)
# mipspro-ucode Silicon Graphics, Inc. MIPSpro (o32)
# sunpro Sun Microsystems, Inc. WorkShip/Forte/Sun
@@ -85,7 +86,7 @@ USE_LANGUAGES+= c
_USE_PKGSRC_GCC= yes
.endif
-_COMPILERS= ccc gcc icc ido mipspro mipspro-ucode sunpro xlc
+_COMPILERS= ccc gcc icc ido mipspro mipspro-ucode sunpro xlc hp
_PSEUDO_COMPILERS= ccache distcc f2c
.if defined(NOT_FOR_COMPILER) && !empty(NOT_FOR_COMPILER)
diff --git a/mk/compiler/hp.mk b/mk/compiler/hp.mk
new file mode 100644
index 00000000000..3c73df649bf
--- /dev/null
+++ b/mk/compiler/hp.mk
@@ -0,0 +1,89 @@
+# $NetBSD $
+#
+# This is the compiler definition for the HP-UX C/aC++ compilers.
+#
+
+.if !defined(COMPILER_HP_MK)
+COMPILER_HP_MK= defined
+
+.include "../../mk/bsd.prefs.mk"
+
+# LANGUAGES.<compiler> is the list of supported languages by the
+# compiler.
+#
+LANGUAGES.hp= # empty
+
+_HP_DIR= ${WRKDIR}/.hp
+_HP_VARS= # empty
+.if exists(/usr/bin/cc)
+LANGUAGES.hp+= c
+_HP_VARS+= CC
+_HP_CC= ${_HP_DIR}/cc
+_ALIASES.CC= cc
+CCPATH= /usr/bin/cc
+PKG_CC:= ${_HP_CC}
+.endif
+.if exists(/opt/aCC/bin/aCC)
+LANGUAGES.hp+= c++
+_HP_VARS+= CXX
+_HP_CXX= ${_HP_DIR}/aCC
+_ALIASES.CXX= c++
+CXXPATH= /opt/aCC/bin/aCC
+PKG_CXX:= ${_HP_CXX}
+.endif
+_COMPILER_STRIP_VARS+= ${_HP_VARS}
+
+.if exists(${CXXPATH}) && !defined(CC_VERSION_STRING)
+CC_VERSION_STRING!= ${CXXPATH} -V 2>&1
+CC_VERSION= ${CC_VERSION_STRING:S/ /_/Wg}
+.else
+CC_VERSION_STRING?= ${CC_VERSION}
+CC_VERSION?= hp
+.endif
+
+# HP comilers pass flags to the linker using "-Wl,".
+_COMPILER_LD_FLAG= -Wl,
+
+# linker syntax for rpath is +b /path1:/path2:...
+_LINKER_RPATH_FLAG= +b
+
+# HP compilers pass rpath directives to the linker using "-Wl,+b,"
+_COMPILER_RPATH_FLAG= ${_COMPILER_LD_FLAG}${_LINKER_RPATH_FLAG},
+
+# _LANGUAGES.<compiler> is ${LANGUAGES.<compiler>} restricted to the
+# ones requested by the package in USE_LANGUAGES.
+#
+_LANGUAGES.hp= # empty
+.for _lang_ in ${USE_LANGUAGES}
+_LANGUAGES.hp+= ${LANGUAGES.hp:M${_lang_}}
+.endfor
+
+# Prepend the path to the compiler to the PATH.
+.if !empty(_LANGUAGES.hp)
+PREPEND_PATH+= ${_HP_DIR}/bin
+.endif
+
+# Create compiler driver scripts in ${WRKDIR}.
+.for _var_ in ${_HP_VARS}
+. if !target(${_HP_${_var_}})
+override-tools: ${_HP_${_var_}}
+${_HP_${_var_}}:
+ ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H}
+ ${_PKG_SILENT}${_PKG_DEBUG} \
+ (${ECHO} '#!${TOOLS_SHELL}'; \
+ ${ECHO} 'exec ${${_var_}PATH} "$$@"'; \
+ ) > ${.TARGET}
+ ${_PKG_SILENT}${_PKG_DEBUG}${CHMOD} +x ${.TARGET}
+. for _alias_ in ${_ALIASES.${_var_}:S/^/${.TARGET:H}\//}
+ ${_PKG_SILENT}${_PKG_DEBUG} \
+ if [ ! -x "${_alias_}" ]; then \
+ ${LN} -f ${.TARGET} ${_alias_}; \
+ fi
+. endfor
+. endif
+.endfor
+
+_COMPILER_ABI_FLAG.32=+DD32
+_COMPILER_ABI_FLAG.64=+DD64
+
+.endif # COMPILER_HP_MK