diff options
Diffstat (limited to 'mk/compiler/gcc.mk')
-rw-r--r-- | mk/compiler/gcc.mk | 454 |
1 files changed, 0 insertions, 454 deletions
diff --git a/mk/compiler/gcc.mk b/mk/compiler/gcc.mk deleted file mode 100644 index da1ca9b1382..00000000000 --- a/mk/compiler/gcc.mk +++ /dev/null @@ -1,454 +0,0 @@ -# $NetBSD: gcc.mk,v 1.74.2.5 2005/05/17 18:29:45 tv Exp $ - -.if !defined(COMPILER_GCC_MK) -COMPILER_GCC_MK= defined - -.include "../../mk/bsd.prefs.mk" - -USE_NATIVE_GCC?= no - -GCC_REQD+= 2.8.0 - -# _GCC_DIST_VERSION is the highest version of GCC installed by the pkgsrc -# without the PKGREVISIONs. -# -_GCC_DIST_VERSION= 3.4.3 - -# _GCC2_PATTERNS matches N s.t. N <= 2.95.3. -_GCC2_PATTERNS= [0-1].* 2.[0-9] 2.[0-9].* 2.[1-8][0-9] 2.[1-8][0-9].* \ - 2.9[0-4] 2.9[0-4].* 2.95 2.95.[0-3] - -# _GCC3_PATTERNS matches N s.t. 2.95.3 < N < 3.4. -_GCC3_PATTERNS= 2.95.[4-9]* 2.95.[1-9][0-9]* 2.9[6-9] 2.9[6-9].* \ - 2.[1-9][0-9][0-9]* 3.[0-3] 3.[0-3].* - -# _GCC34_PATTERNS matches N s.t. 3.4 <= N. -_GCC34_PATTERNS= 3.[4-9] 3.[4-9].* 3.[1-9][0-9]* [4-9]* - -# _CC is the full path to the compiler named by ${CC} if it can be found. -.if !defined(_CC) -_CC:= ${CC:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//} -. for _dir_ in ${PATH:C/\:/ /g} -. if empty(_CC:M/*) -. if exists(${_dir_}/${CC:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//}) -_CC:= ${_dir_}/${CC:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//} -. endif -. endif -. endfor -MAKEFLAGS+= _CC=${_CC:Q} -.endif - -.if !defined(_GCC_VERSION) -_GCC_VERSION_STRING!= \ - ( ${_CC} -v 2>&1 | ${GREP} 'gcc version' ) 2>/dev/null || ${ECHO} 0 -. if !empty(_GCC_VERSION_STRING:Megcs*) -_GCC_VERSION= 2.8.1 # egcs is considered to be gcc-2.8.1. -. elif !empty(_GCC_VERSION_STRING:Mgcc*) -_GCC_VERSION!= ${_CC} -dumpversion -. else -_GCC_VERSION= 0 -. endif -.endif -_GCC_PKG= gcc-${_GCC_VERSION} - -.if !empty(_CC:M${LOCALBASE}/*) -_IS_BUILTIN_GCC= NO -GCC_REQD+= ${_GCC_VERSION} -.else -. if !empty(_CC:M/*) -# -# GCC in older versions of Darwin report "Apple Computer ... based on gcc -# version ...", so we can't just grep for "^gcc". -# -. if ${_GCC_VERSION} != "0" -_IS_BUILTIN_GCC= YES -. else -_IS_BUILTIN_GCC= NO -. endif -. else -_IS_BUILTIN_GCC= NO -. endif -.endif - -# Distill the GCC_REQD list into a single _GCC_REQD value that is the -# highest version of GCC required. -# -_GCC_STRICTEST_REQD?= none -.for _version_ in ${GCC_REQD} -. for _pkg_ in gcc-${_version_} -. if ${_GCC_STRICTEST_REQD} == "none" -_GCC_PKG_SATISFIES_DEP= YES -. for _vers_ in ${GCC_REQD} -. if !empty(_GCC_PKG_SATISFIES_DEP:M[yY][eE][sS]) -_GCC_PKG_SATISFIES_DEP!= \ - if ${PKG_ADMIN} pmatch 'gcc>=${_vers_}' ${_pkg_} 2>/dev/null; then \ - ${ECHO} "YES"; \ - else \ - ${ECHO} "NO"; \ - fi -. endif -. endfor -. if !empty(_GCC_PKG_SATISFIES_DEP:M[yY][eE][sS]) -_GCC_STRICTEST_REQD= ${_version_} -. endif -. endif -. endfor -.endfor -_GCC_REQD= ${_GCC_STRICTEST_REQD} - -# Determine whether we require GCC-2.x or GCC-3.x by examining _GCC_REQD. -_NEED_GCC2?= no -.for _pattern_ in ${_GCC2_PATTERNS} -. if !empty(_GCC_REQD:M${_pattern_}) -_NEED_GCC2= yes -. endif -.endfor -_NEED_GCC3?= no -.for _pattern_ in ${_GCC3_PATTERNS} -. if !empty(_GCC_REQD:M${_pattern_}) -_NEED_GCC3= yes -. endif -.endfor -_NEED_GCC34?= no -.for _pattern_ in ${_GCC34_PATTERNS} -. if !empty(_GCC_REQD:M${_pattern_}) -_NEED_GCC34= yes -. endif -.endfor -.if !empty(_NEED_GCC2:M[nN][oO]) && !empty(_NEED_GCC3:M[nN][oO]) && \ - !empty(_NEED_GCC34:M[nN][oO]) -_NEED_GCC3= yes -.endif - -# Assume by default that GCC will only provide a C compiler. -LANGUAGES.gcc?= c -.if !empty(_NEED_GCC2:M[yY][eE][sS]) -LANGUAGES.gcc= c c++ fortran objc -.elif !empty(_NEED_GCC3:M[yY][eE][sS]) -LANGUAGES.gcc= c c++ fortran java objc -.elif !empty(_NEED_GCC34:M[yY][eE][sS]) -LANGUAGES.gcc= c c++ fortran objc -.endif -_LANGUAGES.gcc= # empty -.for _lang_ in ${USE_LANGUAGES} -_LANGUAGES.gcc+= ${LANGUAGES.gcc:M${_lang_}} -.endfor - -# GCC has this annoying behaviour where it advocates in a multi-line -# banner the use of "#include" over "#import" when including headers. -# This generates a huge number of warnings when building practically all -# Objective-C code where it is convention to use "#import". Suppress -# the warning if we're building Objective-C code using GCC. -# -.if !empty(_LANGUAGES.gcc:Mobjc) -CFLAGS+= -Wno-import -.endif - -.if !empty(_NEED_GCC2:M[yY][eE][sS]) -# -# We require gcc-2.x in the lang/gcc directory. -# -_GCC_PKGBASE= gcc -. if !empty(PKGPATH:Mlang/gcc) -_IGNORE_GCC= yes -MAKEFLAGS+= _IGNORE_GCC=yes -. endif -. if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) -_GCC_PKGSRCDIR= ../../lang/gcc -_GCC_DEPENDENCY= gcc>=${_GCC_REQD}:../../lang/gcc -. if !empty(_LANGUAGES.gcc:Mc++) || \ - !empty(_LANGUAGES.gcc:Mfortran) || \ - !empty(_LANGUAGES.gcc:Mobjc) -_USE_GCC_SHLIB?= yes -. endif -. endif -.elif !empty(_NEED_GCC3:M[yY][eE][sS]) -# -# We require gcc-3.x in the lang/gcc3-* directories. -# -_GCC_PKGBASE= gcc3-c -. if !empty(PKGPATH:Mlang/gcc3-c) -_IGNORE_GCC= yes -MAKEFLAGS+= _IGNORE_GCC=yes -. endif -. if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc:Mc) -_GCC_PKGSRCDIR= ../../lang/gcc3-c -_GCC_DEPENDENCY= gcc3-c>=${_GCC_REQD}:../../lang/gcc3-c -. endif -.elif !empty(_NEED_GCC34:M[yY][eE][sS]) -# -# We require gcc-3.4.x in the lang/gcc34 directory. -# -_GCC_PKGBASE= gcc34 -. if !empty(PKGPATH:Mlang/gcc34) -_IGNORE_GCC= yes -MAKEFLAGS+= _IGNORE_GCC=yes -. endif -. if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc) -_GCC_PKGSRCDIR= ../../lang/gcc34 -_GCC_DEPENDENCY= gcc34>=${_GCC_REQD}:../../lang/gcc34 -. if !empty(_LANGUAGES.gcc:Mc++) || \ - !empty(_LANGUAGES.gcc:Mfortran) || \ - !empty(_LANGUAGES.gcc:Mobjc) -_USE_GCC_SHLIB?= yes -. endif -. endif -.endif -_GCC_DEPENDS= ${_GCC_PKGBASE}>=${_GCC_REQD} - -.if !empty(_NEED_GCC3:M[yY][eE][sS]) -. if !empty(PKGPATH:Mlang/gcc3-c++) -_IGNORE_GCC3CXX= yes -MAKEFLAGS+= _IGNORE_GCC3CXX=yes -. endif -. if !defined(_IGNORE_GCC3CXX) && !empty(_LANGUAGES.gcc:Mc++) -_GCC_PKGSRCDIR+= ../../lang/gcc3-c++ -_GCC_DEPENDENCY+= gcc3-c++>=${_GCC_REQD}:../../lang/gcc3-c++ -_USE_GCC_SHLIB?= yes -. endif -. if !empty(PKGPATH:Mlang/gcc3-f77) -_IGNORE_GCC3F77= yes -MAKEFLAGS+= _IGNORE_GCC3F77=yes -. endif -. if !defined(_IGNORE_GCC3F77) && !empty(_LANGUAGES.gcc:Mfortran) -_GCC_PKGSRCDIR+= ../../lang/gcc3-f77 -_GCC_DEPENDENCY+= gcc3-f77>=${_GCC_REQD}:../../lang/gcc3-f77 -_USE_GCC_SHLIB?= yes -. endif -. if !empty(PKGPATH:Mlang/gcc3-objc) -_IGNORE_GCC3OBJC= yes -MAKEFLAGS+= _IGNORE_GCC3OBJC=yes -. endif -. if !defined(_IGNORE_GCC3OBJC) && !empty(_LANGUAGES.gcc:Mobjc) -_GCC_PKGSRCDIR+= ../../lang/gcc3-objc -_GCC_DEPENDENCY+= gcc3-objc>=${_GCC_REQD}:../../lang/gcc3-objc -_USE_GCC_SHLIB?= yes -. endif -.endif - -.if !empty(USE_NATIVE_GCC:M[yY][eE][sS]) -_USE_PKGSRC_GCC= no -.endif - -.if defined(_IGNORE_GCC) -_USE_PKGSRC_GCC= NO -.endif - -.if !defined(_USE_PKGSRC_GCC) -_USE_PKGSRC_GCC= YES -. if !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) -_GCC_TEST_DEPENDS= gcc>=${_GCC_REQD} -_USE_PKGSRC_GCC!= \ - if ${PKG_ADMIN} pmatch '${_GCC_TEST_DEPENDS}' ${_GCC_PKG} 2>/dev/null; then \ - ${ECHO} "NO"; \ - else \ - ${ECHO} "YES"; \ - fi -. endif -.endif - -# Check if any of the versions of GCC in pkgsrc can satisfy the _GCC_REQD -# requirement. -# -.if !defined(_NEED_NEWER_GCC) -_PKGSRC_GCC_VERSION= ${_GCC_PKGBASE}-${_GCC_DIST_VERSION} -_NEED_NEWER_GCC!= \ - if ${PKG_ADMIN} pmatch '${_GCC_DEPENDS}' ${_PKGSRC_GCC_VERSION} 2>/dev/null; then \ - ${ECHO} "NO"; \ - else \ - ${ECHO} "YES"; \ - fi -#MAKEFLAGS+= _NEED_NEWER_GCC=${_NEED_NEWER_GCC} -.endif -.if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) && \ - !empty(_NEED_NEWER_GCC:M[yY][eE][sS]) -PKG_SKIP_REASON= "Unable to satisfy dependency: ${_GCC_DEPENDS}" -.endif - -# GNU ld option used to set the rpath -_LINKER_RPATH_FLAG= -R - -# GCC passes rpath directives to the linker using "-Wl,-R". -_COMPILER_RPATH_FLAG= -Wl,${_LINKER_RPATH_FLAG} - -.if !empty(MACHINE_ARCH:Mmips*) -_COMPILER_ABI_FLAG.32= -mabi=n32 # ABI == "32" == "n32" -_COMPILER_ABI_FLAG.n32= -mabi=n32 -_COMPILER_ABI_FLAG.o32= -mabi=32 -_COMPILER_ABI_FLAG.64= -mabi=64 - -. if defined(ABI) && !empty(ABI) -MABIFLAG= ${_COMPILER_ABI_FLAG.${ABI}} -. endif -.endif - -.if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) -# -# Ensure that the correct rpath is passed to the linker if we need to -# link against gcc shared libs. -# -_GCC_SUBPREFIX!= \ - if ${PKG_INFO} -qe ${_GCC_PKGBASE}; then \ - ${PKG_INFO} -f ${_GCC_PKGBASE} | \ - ${GREP} "File:.*bin/gcc" | \ - ${SED} -e "s/.*File: *//;s/bin\/gcc.*//;q"; \ - else \ - case ${_CC} in \ - ${LOCALBASE}/*) \ - subprefix="${_CC:H:S/\/bin$//:S/${LOCALBASE}\///:S/${LOCALBASE}//}"; \ - case "$${subprefix}" in \ - "") ${ECHO} "$${subprefix}" ;; \ - *) ${ECHO} "$${subprefix}/" ;; \ - esac; \ - ;; \ - *) \ - ${ECHO} "_GCC_SUBPREFIX_not_found/"; \ - ;; \ - esac; \ - fi -_GCC_PREFIX= ${LOCALBASE}/${_GCC_SUBPREFIX} -_GCC_ARCHDIR!= \ - if [ -x ${_GCC_PREFIX}bin/gcc ]; then \ - ${DIRNAME} `${_GCC_PREFIX}bin/gcc ${MABIFLAG} -print-libgcc-file-name 2>/dev/null`; \ - else \ - ${ECHO} "_GCC_ARCHDIR_not_found"; \ - fi -. if empty(_GCC_ARCHDIR:M*not_found*) -. if defined(MABIFLAG) && !empty(MABIFLAG) -_GCC_PREFIX:= ${_GCC_ARCHDIR:H:H:H:H:H}/ -_GCC_SUBPREFIX:= ${_GCC_ARCHDIR:H:H:H:H:H:T}/ -. else -_GCC_PREFIX:= ${_GCC_ARCHDIR:H:H:H:H}/ -_GCC_SUBPREFIX:= ${_GCC_ARCHDIR:H:H:H:H:T}/ -. endif -. endif -_GCC_LIBDIRS= ${_GCC_ARCHDIR} ${_GCC_PREFIX}lib -_GCC_LDFLAGS= # empty -. for _dir_ in ${_GCC_LIBDIRS:N*not_found*} -_GCC_LDFLAGS+= -L${_dir_} ${COMPILER_RPATH_FLAG}${_dir_} -. endfor -LDFLAGS+= ${_GCC_LDFLAGS} -.endif - -# Point the variables that specify the compiler to the installed -# GCC executables. -# -_GCC_DIR= ${WRKDIR}/.gcc -_GCC_VARS= # empty - -.if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) -_GCCBINDIR= ${_GCC_PREFIX}bin -.elif !empty(_IS_BUILTIN_GCC:M[yY][eE][sS]) -_GCCBINDIR= ${_CC:H} -.endif -.if exists(${_GCCBINDIR}/gcc) -_GCC_VARS+= CC -_GCC_CC= ${_GCC_DIR}/bin/gcc -_ALIASES.CC= cc gcc -CCPATH= ${_GCCBINDIR}/gcc -PKG_CC:= ${_GCC_CC} -.endif -.if exists(${_GCCBINDIR}/cpp) -_GCC_VARS+= CPP -_GCC_CPP= ${_GCC_DIR}/bin/cpp -_ALIASES.CPP= cpp -CPPPATH= ${_GCCBINDIR}/cpp -PKG_CPP:= ${_GCC_CPP} -.endif -.if exists(${_GCCBINDIR}/g++) -_GCC_VARS+= CXX -_GCC_CXX= ${_GCC_DIR}/bin/g++ -_ALIASES.CXX= c++ g++ -CXXPATH= ${_GCCBINDIR}/g++ -PKG_CXX:= ${_GCC_CXX} -.endif -.if exists(${_GCCBINDIR}/g77) -_GCC_VARS+= FC -_GCC_FC= ${_GCC_DIR}/bin/g77 -_ALIASES.FC= f77 g77 -FCPATH= ${_GCCBINDIR}/g77 -F77PATH= ${_GCCBINDIR}/g77 -PKG_FC:= ${_GCC_FC} -.endif -_COMPILER_STRIP_VARS+= ${_GCC_VARS} - -# Pass the required flags to imake to tell it we're using gcc on Solaris. -.if ${OPSYS} == "SunOS" -IMAKEOPTS+= -DHasGcc2=YES -DHasGcc2ForCplusplus=YES -.endif - -.if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) -. if exists(${CCPATH}) -CC_VERSION_STRING!= ${CCPATH} -v 2>&1 -CC_VERSION!= \ - if ${CCPATH} -dumpversion > /dev/null 2>&1; then \ - ${ECHO} "gcc-`${CCPATH} -dumpversion`"; \ - else \ - ${ECHO} "gcc-${_GCC_REQD}"; \ - fi - -. else -CC_VERSION_STRING= ${CC_VERSION} -CC_VERSION= gcc-${_GCC_REQD} -. endif -.else -CC_VERSION_STRING= ${CC_VERSION} -CC_VERSION= ${_GCC_PKG} -.endif - -# Prepend the path to the compiler to the PATH. -.if !empty(_LANGUAGES.gcc) -PREPEND_PATH+= ${_GCC_DIR}/bin -.endif - -# Add the dependency on GCC. -.if !empty(_USE_PKGSRC_GCC:M[yY][eE][sS]) -. for _dir_ in ${_GCC_PKGSRCDIR} -. include "${_dir_}/buildlink3.mk" -. endfor -.endif - -# Create compiler driver scripts in ${WRKDIR}. -GCC_USE_SYMLINKS?= no -.for _var_ in ${_GCC_VARS} -. if !target(${_GCC_${_var_}}) -override-tools: ${_GCC_${_var_}} -${_GCC_${_var_}}: - ${_PKG_SILENT}${_PKG_DEBUG}${MKDIR} ${.TARGET:H} -. if !empty(GCC_USE_SYMLINKS:Myes) - ${_PKG_SILENT}${_PKG_DEBUG}${RM} -f ${.TARGET} - ${_PKG_SILENT}${_PKG_DEBUG}${LN} -s ${_GCCBINDIR}/${.TARGET:T} ${.TARGET} -. else - ${_PKG_SILENT}${_PKG_DEBUG} \ - (${ECHO} '#!${TOOLS_SHELL}'; \ - ${ECHO} 'exec ${_GCCBINDIR}/${.TARGET:T} "$$@"'; \ - ) > ${.TARGET} - ${_PKG_SILENT}${_PKG_DEBUG}${CHMOD} +x ${.TARGET} -. endif -. for _alias_ in ${_ALIASES.${_var_}:S/^/${.TARGET:H}\//} - ${_PKG_SILENT}${_PKG_DEBUG} \ - if [ ! -x "${_alias_}" ]; then \ - ${LN} -f -s ${.TARGET:T} ${_alias_}; \ - fi -. endfor -. endif -.endfor - -# On older NetBSD systems and where the Fortran compiler doesn't exist, -# force the use of f2c-f77. -# -_GCC_USE_F2C= no -.if !exists(${FCPATH}) -_GCC_USE_F2C= yes -.else -. for _pattern_ in 0.* 1.[0-4] 1.[0-4].* -. if !empty(MACHINE_PLATFORM:MNetBSD-${_pattern_}-*) -_GCC_USE_F2C= yes -. endif -. endfor -.endif -.if !empty(_GCC_USE_F2C:M[yY][eE][sS]) -. include "../../mk/compiler/f2c.mk" -.endif - -.endif # COMPILER_GCC_MK |