101 lines
3 KiB
Makefile
101 lines
3 KiB
Makefile
# $NetBSD: buildlink2.mk,v 1.6 2002/10/08 09:09:12 jlam Exp $
|
|
|
|
.if !defined(GCC_BUILDLINK2_MK)
|
|
GCC_BUILDLINK2_MK= # defined
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
# If you want to allow EGCS to satisfy the GCC requirement, then set
|
|
# GCC_REQD to "2.8.0".
|
|
#
|
|
GCC_REQD?= 2.95.3
|
|
BUILDLINK_DEPENDS.gcc?= gcc>=${GCC_REQD}
|
|
BUILDLINK_PKGSRCDIR.gcc?= ../../lang/gcc
|
|
|
|
# Packages that use the C++ compiler and subsequently link against the
|
|
# shared libstdc++ from the package need a full dependency.
|
|
#
|
|
.if defined(USE_CXX)
|
|
BUILDLINK_DEPMETHOD.gcc+= full
|
|
.else
|
|
BUILDLINK_DEPMETHOD.gcc?= build
|
|
.endif
|
|
|
|
BUILDLINK_PREFIX.gcc= ${LOCALBASE}
|
|
|
|
.if ${OPSYS} == "SunOS"
|
|
_GCC_SUBPREFIX= # empty
|
|
.else
|
|
_GCC_SUBPREFIX= gcc-2.95.3/
|
|
.endif
|
|
_GCC_PREFIX= ${BUILDLINK_PREFIX.gcc}/${_GCC_SUBPREFIX}
|
|
_GCC_ARCHSUBDIR= lib/gcc-lib/${MACHINE_GNU_PLATFORM}/2.95.3
|
|
_GCC_ARCHDIR= ${_GCC_PREFIX}${_GCC_ARCHSUBDIR}
|
|
|
|
BUILDLINK_LDFLAGS.gcc= -L${_GCC_ARCHDIR} -Wl,-R${_GCC_ARCHDIR}
|
|
|
|
_GCC_VERSION!= ( gcc --version ) 2>/dev/null || ${ECHO} 0
|
|
#
|
|
# GCC_VERSION is the version number of the gcc detected above. EGCS gcc is
|
|
# considered to be "gcc-2.8.1" so that it will match "gcc>=2.8.0".
|
|
#
|
|
# GCC_PKG is the package name "gcc-${GCC_VERSION} for the gcc detected above.
|
|
#
|
|
.if !empty(_GCC_VERSION:Megcs-[0-9]*)
|
|
GCC_VERSION= 2.8.1
|
|
.else
|
|
GCC_VERSION= ${_GCC_VERSION}
|
|
.endif
|
|
GCC_PKG= gcc-${GCC_VERSION}
|
|
|
|
.if defined(USE_PKGSRC_GCC)
|
|
_NEED_PKGSRC_GCC= YES
|
|
.else
|
|
_NEED_PKGSRC_GCC!= \
|
|
if ${PKG_ADMIN} pmatch '${BUILDLINK_DEPENDS.gcc}' ${GCC_PKG}; then \
|
|
gccpath=`${TYPE} gcc | ${AWK} '{ print $$NF }'`; \
|
|
if [ "$$gccpath" = "${_GCC_PREFIX}bin/gcc" ]; then \
|
|
${ECHO} "YES"; \
|
|
else \
|
|
${ECHO} "NO"; \
|
|
fi; \
|
|
else \
|
|
${ECHO} "YES"; \
|
|
fi
|
|
.endif
|
|
|
|
.if ${_NEED_PKGSRC_GCC} == "YES"
|
|
BUILDLINK_PACKAGES+= gcc
|
|
PATH:= ${_GCC_PREFIX}bin:${PATH}
|
|
CC= ${_GCC_PREFIX}bin/gcc
|
|
CPP= ${_GCC_PREFIX}bin/cpp
|
|
CXX= ${_GCC_PREFIX}bin/g++
|
|
F77= ${_GCC_PREFIX}bin/g77
|
|
PKG_FC= ${F77}
|
|
|
|
. if defined(USE_CXX)
|
|
LDFLAGS+= ${BUILDLINK_LDFLAGS.gcc}
|
|
. endif
|
|
BUILDLINK_WRAPPER_ENV+= \
|
|
COMPILER_PATH="${BUILDLINK_DIR}/bin"; export COMPILER_PATH
|
|
.endif # _NEED_PKGSRC_GCC == YES
|
|
|
|
# These file are from gcc>=2.95.3.
|
|
BUILDLINK_FILES.gcc= ${_GCC_SUBPREFIX}include/g++-3/*
|
|
BUILDLINK_FILES.gcc+= ${_GCC_SUBPREFIX}include/g++-3/*/*
|
|
BUILDLINK_FILES.gcc+= ${_GCC_SUBPREFIX}${_GCC_ARCHSUBDIR}/include/*
|
|
BUILDLINK_FILES.gcc+= ${_GCC_SUBPREFIX}${_GCC_ARCHSUBDIR}/include/*/*
|
|
BUILDLINK_FILES.gcc+= ${_GCC_SUBPREFIX}${_GCC_ARCHSUBDIR}/include/*/*/*
|
|
BUILDLINK_FILES.gcc+= ${_GCC_SUBPREFIX}${_GCC_ARCHSUBDIR}/include/*/*/*/*
|
|
BUILDLINK_FILES.gcc+= ${_GCC_SUBPREFIX}${_GCC_ARCHSUBDIR}/lib*.*
|
|
BUILDLINK_FILES.gcc+= ${_GCC_SUBPREFIX}${_GCC_ARCHSUBDIR}/specs
|
|
BUILDLINK_FILES.gcc+= ${_GCC_SUBPREFIX}${MACHINE_GNU_PLATFORM}/include/*
|
|
BUILDLINK_FILES.gcc+= ${_GCC_SUBPREFIX}${MACHINE_GNU_PLATFORM}/include/*/*
|
|
BUILDLINK_FILES.gcc+= ${_GCC_SUBPREFIX}lib/libiberty.*
|
|
BUILDLINK_FILES.gcc+= ${_GCC_SUBPREFIX}lib/libstdc++.*
|
|
|
|
BUILDLINK_TARGETS+= gcc-buildlink
|
|
|
|
gcc-buildlink: _BUILDLINK_USE
|
|
|
|
.endif # GCC_BUILDLINK2_MK
|