pkgsrc/lang/gcc9/options.mk
rillig c668b88e94 lang/gcc9: enable nls on all platforms by default
Having nls enabled on some platforms and not on others doesn't make sense
since the code for doing that didn't provide any rationale. If some
platforms don't support nls, it's better to blacklist them explicitly.
2020-01-11 09:48:11 +00:00

146 lines
3.6 KiB
Makefile

# $NetBSD: options.mk,v 1.4 2020/01/11 09:48:11 rillig Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.gcc9
PKG_SUPPORTED_OPTIONS= nls gcc-inplace-math gcc-c++ gcc-fortran \
gcc-go gcc-objc gcc-objc++ always-libgcc
PKG_SUGGESTED_OPTIONS= nls gcc-inplace-math gcc-c++ gcc-fortran \
gcc-objc gcc-objc++
.if ${OPSYS} == "SunOS"
PKG_SUGGESTED_OPTIONS+= gcc-inplace-math always-libgcc
.endif
.include "../../mk/compiler.mk"
.if !${PKGSRC_COMPILER:Mgcc}
PKG_SUGGESTED_OPTIONS+= always-libgcc
.endif
###
### Determine if multilib is avalible.
###
MULTILIB_SUPPORTED?= unknown
.if ${MACHINE_PLATFORM:MLinux-*-x86_64}
. if exists(/usr/include/x86_64-linux-gnu/gnu)
GCC9_INCLUDE_DIR= /usr/include/x86_64-linux-gnu/gnu
. else
GCC9_INCLUDE_DIR= /usr/include/gnu
. endif
. if exists(${GCC9_INCLUDE_DIR}/stubs-64.h) && \
!exists(${GCC9_INCLUDE_DIR}/stubs-32.h)
MULTILIB_SUPPORTED= no
. else
MULTILIB_SUPPORTED= yes
. endif
. if ${MULTILIB_SUPPORTED} == yes
PKG_SUPPORTED_OPTIONS+= gcc-multilib
PKG_SUGGESTED_OPTIONS+= gcc-multilib
. endif
.endif
.include "../../mk/bsd.options.mk"
###
### Don't install libgcc if it's older than the system one
###
.if !${PKG_OPTIONS:Malways-libgcc}
. for dir in ${_OPSYS_LIB_DIRS}
. if exists(${dir})
BASE_LIBGCC!= find ${dir} -name libgcc_s.so
BASE_LIBGCC_MATCH_STRING!= \
${ECHO} ${BASE_LIBGCC} ${GCC9_VERSION} \
| ${AWK} -f ../../mk/scripts/larger_symbol_version.awk
. if ${BASE_LIBGCC_MATCH_STRING:Mnewer}
DELETE_INSTALLED_LIBGCC= yes
. endif
. endif
. endfor
. if ${DELETE_INSTALLED_LIBGCC:Uno}
post-install: delete-installed-libgcc
delete-installed-libgcc: .PHONY
${FIND} ${DESTDIR} -name 'libgcc_s.so*' -delete
. endif
.endif
###
### Native Language Support
###
PLIST_VARS+= nls
.if ${PKG_OPTIONS:Mnls}
USE_TOOLS+= msgfmt
CONFIGURE_ARGS+= --enable-nls
CONFIGURE_ARGS+= --with-libiconv-prefix=${BUILDLINK_PREFIX.iconv}
MAKE_ENV+= ICONVPREFIX=${BUILDLINK_PREFIX.iconv}
PLIST.nls= yes
.include "../../converters/libiconv/buildlink3.mk"
.include "../../devel/gettext-lib/buildlink3.mk"
.else
CONFIGURE_ARGS+= --disable-nls
.endif
###
### Multilib Support
###
.if ${MULTILIB_SUPPORTED} == no \
|| (${MULTILIB_SUPPORTED} == yes && !${PKG_OPTIONS:Mgcc-multilib})
CONFIGURE_ARGS+= --disable-multilib
.endif
###
### Build math libraries in place
###
.if ${PKG_OPTIONS:Mgcc-inplace-math}
. include "../../devel/gmp/inplace.mk"
. include "../../math/mpcomplex/inplace.mk"
. include "../../math/mpfr/inplace.mk"
.else
CONFIGURE_ARGS+= --with-gmp=${BUILDLINK_PREFIX.gmp}
CONFIGURE_ARGS+= --with-mpc=${BUILDLINK_PREFIX.mpcomplex}
CONFIGURE_ARGS+= --with-mpfr=${BUILDLINK_PREFIX.mpfr}
LIBS.SunOS+= -lgmp
. include "../../devel/gmp/buildlink3.mk"
. include "../../math/mpcomplex/buildlink3.mk"
. include "../../math/mpfr/buildlink3.mk"
.endif
PLIST_VARS+= objcxx
.if ${PKG_OPTIONS:Mgcc-objc++}
. if !${PKG_OPTIONS:Mgcc-c++}
PKG_OPTIONS+= gcc-c++
. endif
. if !${PKG_OPTIONS:Mgcc-objc}
PKG_OPTIONS+= gcc-objc
. endif
PLIST.objcxx= yes
LANGS+= obj-c++
.endif
PLIST_VARS+= objc
.if ${PKG_OPTIONS:Mgcc-objc}
LANGS+= objc
PLIST.objc= yes
.endif
.if ${PKG_OPTIONS:Mgcc-go}
LANGS+= go
.endif
PLIST_VARS+= fortran
.if ${PKG_OPTIONS:Mgcc-fortran}
LANGS+= fortran
PLIST.fortran= yes
.endif
.if ${PKG_OPTIONS:Mgcc-c++}
LANGS+= c++
USE_TOOLS+= perl
CONFIGURE_ARGS+= --enable-__cxa_atexit
CONFIGURE_ARGS+= --with-gxx-include-dir=${GCC9_PREFIX}/include/c++/
PLIST_SUBST+= CXXINCDIR=${GCC9_SUBPREFIX}/include/c++
.else
CONFIGURE_ARGS+= --disable-build-with-cxx
CONFIGURE_ARGS+= --disable-build-poststage1-with-cxx
PLIST_SUBST+= CXXINCDIR=${GCC9_SUBPREFIX}/include/c++/${GCC9_VERSION}
.endif