The NetBSD Project

CVS log for pkgsrc/mk/compiler.mk

[BACK] Up to [cvs.NetBSD.org] / pkgsrc / mk

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.111 / (download) - annotate - [select for diffs], Sat Jan 27 00:03:49 2024 UTC (2 months, 3 weeks ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2024Q1-base, pkgsrc-2024Q1, HEAD
Changes since 1.110: +6 -6 lines
Diff to previous 1.110 (colored) to selected 1.51 (colored)

mk: add support for c++23/gnu++23

Revision 1.110 / (download) - annotate - [select for diffs], Wed Jan 3 12:20:21 2024 UTC (3 months, 2 weeks ago) by gdt
Branch: MAIN
Changes since 1.109: +2 -2 lines
Diff to previous 1.109 (colored) to selected 1.51 (colored)

mk/compiler.mk: Sort CXX_FEATURES values in comment

c99 sorts before c11 and c17, once the implicit digits are considered.
(Defer worrying about the pending Y2100 C/C++ standards naming
problem.)

This is a comment-only change.

Revision 1.109 / (download) - annotate - [select for diffs], Wed Jan 3 08:11:51 2024 UTC (3 months, 2 weeks ago) by mef
Branch: MAIN
Changes since 1.108: +2 -2 lines
Diff to previous 1.108 (colored) to selected 1.51 (colored)

(mk/compiler.mk, mk/compiler/gcc.mk) Add c17 on USE_CC_FEATURES (Re: gcc-10.x

Revision 1.108 / (download) - annotate - [select for diffs], Tue Dec 12 16:28:45 2023 UTC (4 months ago) by gdt
Branch: MAIN
CVS Tags: pkgsrc-2023Q4-base, pkgsrc-2023Q4
Changes since 1.107: +19 -12 lines
Diff to previous 1.107 (colored) to selected 1.51 (colored)

mk/compiler.mk: Adjust USE_LANGUAGES documentation to recent changes

Setting dialects in USE_LANGUAGES has been deprecated in favor of
USE_CXX_FEATURES and FORCE_CXX_STD (which is a major improvement in
cleanliness of expression).  Actually say this, rather than
documenting that it is expected to use USE_LANGUAGES for the FORCE
case.

This is a comment-only change.

Proposed in concept on tech-pkg with no objections.

Revision 1.107 / (download) - annotate - [select for diffs], Wed Aug 2 15:59:58 2023 UTC (8 months, 2 weeks ago) by nia
Branch: MAIN
CVS Tags: pkgsrc-2023Q3-base, pkgsrc-2023Q3
Changes since 1.106: +24 -1 lines
Diff to previous 1.106 (colored) to selected 1.51 (colored)

mk: Add support for FORCE_C_STD and FORCE_CXX_STD as discussed on tech-pkg.k

Revision 1.106 / (download) - annotate - [select for diffs], Sun Jul 30 21:47:44 2023 UTC (8 months, 2 weeks ago) by ryoon
Branch: MAIN
Changes since 1.105: +3 -2 lines
Diff to previous 1.105 (colored) to selected 1.51 (colored)

mk: Pass RELRO check

Revision 1.105 / (download) - annotate - [select for diffs], Sun Jul 30 15:09:25 2023 UTC (8 months, 2 weeks ago) by jperkin
Branch: MAIN
Changes since 1.104: +2 -2 lines
Diff to previous 1.104 (colored) to selected 1.51 (colored)

mk: Fix relro enablement.

Revision 1.104 / (download) - annotate - [select for diffs], Sat Jul 29 18:09:39 2023 UTC (8 months, 2 weeks ago) by nia
Branch: MAIN
Changes since 1.103: +4 -4 lines
Diff to previous 1.103 (colored) to selected 1.51 (colored)

mk: Use CWRAPPERS_PREPEND instead of APPEND to force the use of SSP

For the sake of consistency, and to allow packages to override the
choice of the infrastructure if necessary.

Revision 1.103 / (download) - annotate - [select for diffs], Sat Jul 29 17:55:47 2023 UTC (8 months, 2 weeks ago) by nia
Branch: MAIN
Changes since 1.102: +43 -1 lines
Diff to previous 1.102 (colored) to selected 1.51 (colored)

mk: Begin to refactor common support for GCC/Clang into a single file.

They share lots of command line argument features and it doesn't make
sense to duplicate our work.

Revision 1.102 / (download) - annotate - [select for diffs], Sat Jul 22 12:20:37 2023 UTC (8 months, 4 weeks ago) by nia
Branch: MAIN
Changes since 1.101: +2 -2 lines
Diff to previous 1.101 (colored) to selected 1.51 (colored)

mk: Add support for is_trivially_copy_constructible in USE_CXX_FEATURES.

While a mouthful, this is the name the GCC commit message used for the
features.

Revision 1.101 / (download) - annotate - [select for diffs], Fri Jul 21 08:29:56 2023 UTC (8 months, 4 weeks ago) by nia
Branch: MAIN
Changes since 1.100: +3 -2 lines
Diff to previous 1.100 (colored) to selected 1.51 (colored)

mk: Add put_time to USE_CXX_FEATURES. C++11 feature, but appeared in GCC 5.

Revision 1.100 / (download) - annotate - [select for diffs], Tue Jul 18 12:49:46 2023 UTC (9 months ago) by nia
Branch: MAIN
Changes since 1.99: +34 -7 lines
Diff to previous 1.99 (colored) to selected 1.51 (colored)

mk: Add support for USE_CC_FEATURES and USE_CXX_FEATURES to the pkgsrc
infrastructure, as discussed on tech-pkg@.

Revision 1.99 / (download) - annotate - [select for diffs], Wed Nov 23 13:30:38 2022 UTC (16 months, 3 weeks ago) by jperkin
Branch: MAIN
CVS Tags: pkgsrc-2023Q2-base, pkgsrc-2023Q2, pkgsrc-2023Q1-base, pkgsrc-2023Q1, pkgsrc-2022Q4-base, pkgsrc-2022Q4
Changes since 1.98: +5 -5 lines
Diff to previous 1.98 (colored) to selected 1.51 (colored)

mk: Miscellaneous performance improvements.

Inline ${RUN} calls where appropriate.  Call mkdir directly rather than via
a shell when invoked as a single command.  Avoid unnecessary mkdir calls.

Revision 1.98 / (download) - annotate - [select for diffs], Tue Jul 5 17:32:24 2022 UTC (21 months, 2 weeks ago) by jperkin
Branch: MAIN
CVS Tags: pkgsrc-2022Q3-base, pkgsrc-2022Q3
Changes since 1.97: +23 -15 lines
Diff to previous 1.97 (colored) to selected 1.51 (colored)

mk: Add support for newer C standards.

For now the GCC "c99 == gnu99" override is kept, but gnu99 is now supported as
a specific value for USE_LANGUAGES, so we may want to be specific where
required.

c11 and c17 (and the corresponding gnu11/gnu17 versions) are newly supported.

Revision 1.97 / (download) - annotate - [select for diffs], Sun Apr 10 19:54:02 2022 UTC (2 years ago) by riastradh
Branch: MAIN
CVS Tags: pkgsrc-2022Q2-base, pkgsrc-2022Q2
Changes since 1.96: +10 -1 lines
Diff to previous 1.96 (colored) to selected 1.51 (colored)

mk: Use CWRAPPERS_PREPEND for --sysroot.

Looks like maybe the -Wl,-rpath-link business isn't necessary after
all -- will leave this as is until I find evidence otherwise.  (joerg
says it was a workaround for NetBSD toolchain parts that weren't
properly adapted to use sysroot.)

With this, revert cwrappers version dependency to what it was before.
But keep it as TOOL_DEPENDS, not BUILD_DEPENDS.

Revision 1.96 / (download) - annotate - [select for diffs], Fri Dec 3 07:40:26 2021 UTC (2 years, 4 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2022Q1-base, pkgsrc-2022Q1, pkgsrc-2021Q4-base, pkgsrc-2021Q4
Changes since 1.95: +5 -4 lines
Diff to previous 1.95 (colored) to selected 1.51 (colored)

mk: add c++20 and gnu++20

Revision 1.95 / (download) - annotate - [select for diffs], Tue Jun 2 06:58:13 2020 UTC (3 years, 10 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2021Q3-base, pkgsrc-2021Q3, pkgsrc-2021Q2-base, pkgsrc-2021Q2, pkgsrc-2021Q1-base, pkgsrc-2021Q1, pkgsrc-2020Q4-base, pkgsrc-2020Q4, pkgsrc-2020Q3-base, pkgsrc-2020Q3, pkgsrc-2020Q2-base, pkgsrc-2020Q2
Changes since 1.94: +17 -1 lines
Diff to previous 1.94 (colored) to selected 1.51 (colored)

mk/compiler.mk: check for too late GCC_REQD and USE_LANGUAGES

For USE_LANGUAGES there is already a pkglint warning, but for GCC_REQD it
is missing.  It's better to have this check directly in the
infrastructure since it is more reliable.

This check is disabled by default, to not cause any new breakage.
It should be enabled in bulk builds.

Revision 1.94 / (download) - annotate - [select for diffs], Tue Jul 23 13:57:04 2019 UTC (4 years, 8 months ago) by gdt
Branch: MAIN
CVS Tags: pkgsrc-2020Q1-base, pkgsrc-2020Q1, pkgsrc-2019Q4-base, pkgsrc-2019Q4, pkgsrc-2019Q3-base, pkgsrc-2019Q3
Changes since 1.93: +4 -4 lines
Diff to previous 1.93 (colored) to selected 1.51 (colored)

mk/compiler.mk: Add c++17

We have a new language making its way into pkgsrc: C++17!  Add gnu++17
and c++17 to the list of _CXX_STD_VERSIONS.

Revision 1.93 / (download) - annotate - [select for diffs], Mon Jul 15 16:06:19 2019 UTC (4 years, 9 months ago) by ryoon
Branch: MAIN
Changes since 1.92: +6 -5 lines
Diff to previous 1.92 (colored) to selected 1.51 (colored)

Do not pass -std=c++03 to GCC 4.4

No objection on tech-pkg@.

Revision 1.92 / (download) - annotate - [select for diffs], Wed Jun 26 00:22:56 2019 UTC (4 years, 9 months ago) by ryoon
Branch: MAIN
CVS Tags: pkgsrc-2019Q2-base, pkgsrc-2019Q2
Changes since 1.91: +2 -2 lines
Diff to previous 1.91 (colored) to selected 1.51 (colored)

Fix a typo in flag in comment

Revision 1.91 / (download) - annotate - [select for diffs], Fri Feb 22 00:06:46 2019 UTC (5 years, 1 month ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2019Q1-base, pkgsrc-2019Q1
Changes since 1.90: +2 -3 lines
Diff to previous 1.90 (colored) to selected 1.51 (colored)

mk/compiler.mk: replace empty lines with empty comments

This is necessary for "bmake help" to interpret the whole comment as a
single block.

Revision 1.90 / (download) - annotate - [select for diffs], Mon Nov 12 14:22:58 2018 UTC (5 years, 5 months ago) by jperkin
Branch: MAIN
CVS Tags: pkgsrc-2018Q4-base, pkgsrc-2018Q4
Changes since 1.89: +8 -1 lines
Diff to previous 1.89 (colored) to selected 1.51 (colored)

mk: Add CTF infrastructure support.

Platform support is determined by _OPSYS_SUPPORTS_CTF from mk/platform, the
user enables support by setting PKGSRC_USE_CTF=yes, and packages can
explicitly disable support with CTF_SUPPORTED=no or skip certain files with
CTF_FILES_SKIP.

The path to ctfconvert is configured via TOOLS_PLATFORM.ctfconvert.

If all of the requisite variables are enabled, a compiler-specific debug flag
is passed via the wrappers to ensure we have DWARF information to convert,
_INSTALL_UNSTRIPPED is explicitly defined to avoid binaries being stripped
prior to conversion, and the conversion is performed during the install stage.

It is recommended that users who enable the feature also set STRIP_DEBUG=yes
to reduce the final binary size once the conversion has been performed.

This has been used for the past year in Joyent SmartOS builds.  FreeBSD is
marked as supported but is untested.

Revision 1.89 / (download) - annotate - [select for diffs], Sun Aug 12 19:36:40 2018 UTC (5 years, 8 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2018Q3-base, pkgsrc-2018Q3
Changes since 1.88: +3 -3 lines
Diff to previous 1.88 (colored) to selected 1.51 (colored)

mk/compiler.mk: sort supported compilers alphabetically

Revision 1.88 / (download) - annotate - [select for diffs], Fri Jan 26 13:14:35 2018 UTC (6 years, 2 months ago) by jperkin
Branch: MAIN
CVS Tags: pkgsrc-2018Q2-base, pkgsrc-2018Q2, pkgsrc-2018Q1-base, pkgsrc-2018Q1
Changes since 1.87: +6 -6 lines
Diff to previous 1.87 (colored) to selected 1.51 (colored)

mk/compiler.mk: Support gnu++03 and c++03 in USE_LANGUAGES.

These can be used by packages when building with a compiler which defaults
to a newer standard than the source supports (e.g. namespace issues).

Revision 1.87 / (download) - annotate - [select for diffs], Tue Jul 4 14:35:55 2017 UTC (6 years, 9 months ago) by gdt
Branch: MAIN
CVS Tags: pkgsrc-2017Q4-base, pkgsrc-2017Q4, pkgsrc-2017Q3-base, pkgsrc-2017Q3
Changes since 1.86: +9 -3 lines
Diff to previous 1.86 (colored) to selected 1.51 (colored)

Improve USE_LANGUAGES explanation

Reference the notion of making compilers visible to the build
environment.  Mention setting --std flags.  Note that the text is
currently aspirtational relative to gcc and C++.

(Comment change only.)

Revision 1.86 / (download) - annotate - [select for diffs], Sat Jun 10 11:32:32 2017 UTC (6 years, 10 months ago) by kamil
Branch: MAIN
CVS Tags: pkgsrc-2017Q2-base, pkgsrc-2017Q2
Changes since 1.85: +7 -2 lines
Diff to previous 1.85 (colored) to selected 1.51 (colored)

Restore c++ support in ccache.mk

The ccache.mk file was checking for languages "c" and "c++".
New framework for C++ dialects (or revisions) was setting implicitly c++,
translating e.g. c++11 to c++.

compiler.mk set this c++ after including ccache.mk, so c++ was undefined
and ccache was ignored.

This helps to build large projects like LLVM+Clang+LLDB with ccache.

Sponsored by <The NetBSD Foundation>

Revision 1.85 / (download) - annotate - [select for diffs], Thu May 18 08:14:08 2017 UTC (6 years, 11 months ago) by jperkin
Branch: MAIN
Changes since 1.84: +11 -1 lines
Diff to previous 1.84 (colored) to selected 1.51 (colored)

Consolidate setting of SSP flags now that multiple compilers support it.

Revision 1.84 / (download) - annotate - [select for diffs], Wed May 3 08:34:23 2017 UTC (6 years, 11 months ago) by jperkin
Branch: MAIN
Changes since 1.83: +21 -3 lines
Diff to previous 1.83 (colored) to selected 1.51 (colored)

Add support to USE_LANGUAGES for C++ standards from c++0x to gnu++14.

This allows packages to specify the version of the standard that they
require, and the infrastructure then distils that down in a similar way
to GCC_REQD to the newest standard, avoiding clashes with different -std
requirements based on CXXFLAGS.

Broad concensus on tech-pkg and tested in bulk builds.

Revision 1.83 / (download) - annotate - [select for diffs], Thu Nov 10 20:59:43 2016 UTC (7 years, 5 months ago) by joerg
Branch: MAIN
CVS Tags: pkgsrc-2017Q1-base, pkgsrc-2017Q1, pkgsrc-2016Q4-base, pkgsrc-2016Q4
Changes since 1.82: +4 -4 lines
Diff to previous 1.82 (colored) to selected 1.51 (colored)

Prepend the ABI flags to allow interested programs like qemu to
overwrite them on demand. This allows building ROM images and the like
with a special target ABI. Discussed a while ago with jperkin.

Revision 1.82 / (download) - annotate - [select for diffs], Tue Dec 9 23:43:29 2014 UTC (9 years, 4 months ago) by joerg
Branch: MAIN
CVS Tags: pkgsrc-2016Q3-base, pkgsrc-2016Q3, pkgsrc-2016Q2-base, pkgsrc-2016Q2, pkgsrc-2016Q1-base, pkgsrc-2016Q1, pkgsrc-2015Q4-base, pkgsrc-2015Q4, pkgsrc-2015Q3-base, pkgsrc-2015Q3, pkgsrc-2015Q2-base, pkgsrc-2015Q2, pkgsrc-2015Q1-base, pkgsrc-2015Q1, pkgsrc-2014Q4-base, pkgsrc-2014Q4
Changes since 1.81: +4 -1 lines
Diff to previous 1.81 (colored) to selected 1.51 (colored)

Pass down ABI flags for cwrappers too.

Revision 1.81 / (download) - annotate - [select for diffs], Sun Jul 7 09:06:23 2013 UTC (10 years, 9 months ago) by marino
Branch: MAIN
CVS Tags: pkgsrc-2014Q3-base, pkgsrc-2014Q3, pkgsrc-2014Q2-base, pkgsrc-2014Q2, pkgsrc-2014Q1-base, pkgsrc-2014Q1, pkgsrc-2013Q4-base, pkgsrc-2013Q4, pkgsrc-2013Q3-base, pkgsrc-2013Q3
Changes since 1.80: +7 -1 lines
Diff to previous 1.80 (colored) to selected 1.51 (colored)

compiler.mk: Fix Ada packages when PKGSRC_COMPILER=clang

Only one compiler is used when "ada" is listed in LANGUAGES, and that
is the one built by the lang/gcc-aux source package.  When PKGSRC_COMPILER
is defined as anything else other than "gcc", the Ada packages fail to
build.  This can be seen when clang is used with CLANGBASE=${LOCALBASE}.

This straight-forward fix is to override the user specification of
PKGSRC_COMPILER when Ada is specified and define it as "gcc" in all cases.
Tested on NetBSD 6.1 amd64 with CLANGBASE=${LOCALBASE}

Revision 1.80 / (download) - annotate - [select for diffs], Wed Dec 12 20:49:01 2012 UTC (11 years, 4 months ago) by marino
Branch: MAIN
CVS Tags: pkgsrc-2013Q2-base, pkgsrc-2013Q2, pkgsrc-2013Q1-base, pkgsrc-2013Q1, pkgsrc-2012Q4-base, pkgsrc-2012Q4
Changes since 1.79: +5 -1 lines
Diff to previous 1.79 (colored) to selected 1.51 (colored)

compiler.mk, gcc.mk: Implement DRAGONFLY_CCVER

DragonFly has two compilers in base, GCC 4.4.7 and GCC 4.7.2.
The way one switches between them for userland programs is to set
CCVER in the environment.

However, to set this via make.conf is tricky.  I've been using the
low level "ALL_ENV+= CCVER=gcc47", but this trick fails to properly
identify the compiler which results in _GCC_VERSION being incorrectly
defined.

Additionally, there are some prominent packages that do not build on
gcc 4.7 and the fix is either not fully understood or would require a
large amount of work to implement.  In these cases, it is desireable
to specify the package be built on gcc 4.4 regardless of CCVER setting.

To address these issues, a new directive is added: DRAGONFLY_CCVER.
It is only effective if OPSYS equals "DragonFly", and it will properly
set CCVER and properly define _GCC_VERSION.  It will also allow a
per package specification of a particular compiler in the pkg makefile.

Revision 1.79 / (download) - annotate - [select for diffs], Thu Aug 9 12:32:41 2012 UTC (11 years, 8 months ago) by jperkin
Branch: MAIN
CVS Tags: pkgsrc-2012Q3-base, pkgsrc-2012Q3
Changes since 1.78: +1 -2 lines
Diff to previous 1.78 (colored) to selected 1.51 (colored)

_LINKER_ABI_FLAG.* is not set anywhere in pkgsrc, remove to avoid confusion.

Revision 1.78 / (download) - annotate - [select for diffs], Thu Aug 9 12:16:24 2012 UTC (11 years, 8 months ago) by jperkin
Branch: MAIN
Changes since 1.77: +2 -1 lines
Diff to previous 1.77 (colored) to selected 1.51 (colored)

Ensure the Fortran wrappers specify the correct ABI if necessary.  Fixes a
bunch of packages on Solaris when ABI=32 with 64-bit compilers.

Revision 1.77 / (download) - annotate - [select for diffs], Sun Jul 8 19:57:10 2012 UTC (11 years, 9 months ago) by marino
Branch: MAIN
Changes since 1.76: +10 -4 lines
Diff to previous 1.76 (colored) to selected 1.51 (colored)

compiler.mk/gcc.mk: Add support for USE_LANGUAGES+= ada

All recent packages featuring Ada code have a hard dependency on the
lang/gnat-aux compiler package.  The valid values for USE_LANGUAGES
are c, c99, c++, fortran, fortran77, java, objc, so specifying a
specific compiler was necessary up into now.

One problem with lang/gnat-aux is that it is installed at ${LOCALBASE}
where the lang/gccXX compilers are installed at ${LOCALBASE}/gccXX.
The latter compilers have no possibility of sharing conflicting files
unlike lang/gnat-aux.  Rather than fundamentally update the GCC 4.6-based
lang/gnat-aux to avoid these conflicts, a new Ada-capable compiler
based on GCC 4.7 was created with the intent of being supported by
mk/compiler.mk and mk/compiler/gcc.mk.

The Ada packages will be effectively migrated from lang/gnat-aux to the
new lang/gcc-aux compiler, but lang/gcc-aux will remain as a standalone
package as it is the only GCC 4.6-based compiler that builds on
DragonFly and serves it as a world and kernel compile option.

In addition to the current language wrappers, lang/gcc-aux adds
wrappers for "ada" (unique to gcc-aux, hardlinked to gcc driver),
and the gnat, gnatmake, gnatbind, gnatlink, gnatchop, gnatprep, 
and gnatls programs.  Supporting all of these allows the wrapper
system to be used with Ada packages; currently wrappers are mostly
disabled on them.

The lang/gcc47 implicitly adds support for the "objc-c++" language by
adding it to the USE_LANGUAGES list, but it wasn't really supported.
An attempt was made to better support objc-c++, but this new enumeration
probably still needs work or needs to be removed completely.

Logic for Ada support:
1) All lang/gccXX compilers have version numbers ranging from 2.8.1 to 9.
2) lang/gcc-aux uses the release date as its version number in the form of
   YYYYMMDD with a minimum value of 20120614, so there is no version
   overlap.
3) When at least one element of USE_LANGUAGES is "ada", the value of
   20120614 is added to the set of GCC_REQD which selects lang/gcc-aux.
4) The _NEED_NEWER_GCC check is disabled.  It fails and isn't relevant;
   unless a package sets GCC_REQD over 20120614, the only way to select
   lang/gcc-aux is to specify the Ada language and only one compiler
   known to gcc.mk can support it.

Revision 1.76 / (download) - annotate - [select for diffs], Wed Jun 27 13:36:08 2012 UTC (11 years, 9 months ago) by jperkin
Branch: MAIN
CVS Tags: pkgsrc-2012Q2-base, pkgsrc-2012Q2
Changes since 1.75: +10 -1 lines
Diff to previous 1.75 (colored) to selected 1.51 (colored)

Ensure the Solaris native linker is used by default, avoids conflicts
where GNU ld is picked up first via $PATH.

Revision 1.75 / (download) - annotate - [select for diffs], Fri Apr 13 03:03:36 2012 UTC (12 years ago) by sbd
Branch: MAIN
Changes since 1.74: +1 -24 lines
Diff to previous 1.74 (colored) to selected 1.51 (colored)

Move USE_PKGSRC_GCC from compler.mk to compler/gcc.mk and make it a yes/no
check.

At the same time cleanup GCC_REQD.

Revision 1.74 / (download) - annotate - [select for diffs], Wed Nov 17 08:40:22 2010 UTC (13 years, 5 months ago) by obache
Branch: MAIN
CVS Tags: pkgsrc-2012Q1-base, pkgsrc-2012Q1, pkgsrc-2011Q4-base, pkgsrc-2011Q4, pkgsrc-2011Q3-base, pkgsrc-2011Q3, pkgsrc-2011Q2-base, pkgsrc-2011Q2, pkgsrc-2011Q1-base, pkgsrc-2011Q1, pkgsrc-2010Q4-base, pkgsrc-2010Q4
Changes since 1.73: +1 -3 lines
Diff to previous 1.73 (colored) to selected 1.51 (colored)

Revert unwanted part (uncompleted msc support) from last commit.

Revision 1.73 / (download) - annotate - [select for diffs], Wed Nov 17 08:38:15 2010 UTC (13 years, 5 months ago) by obache
Branch: MAIN
Changes since 1.72: +4 -2 lines
Diff to previous 1.72 (colored) to selected 1.51 (colored)

Replaced with ASCII char `-'.

Revision 1.72 / (download) - annotate - [select for diffs], Thu Sep 23 22:26:06 2010 UTC (13 years, 6 months ago) by ahoka
Branch: MAIN
CVS Tags: pkgsrc-2010Q3-base, pkgsrc-2010Q3
Changes since 1.71: +4 -2 lines
Diff to previous 1.71 (colored) to selected 1.51 (colored)

Add support for clang.

Revision 1.71 / (download) - annotate - [select for diffs], Fri Jul 30 07:58:58 2010 UTC (13 years, 8 months ago) by asau
Branch: MAIN
Changes since 1.70: +4 -4 lines
Diff to previous 1.70 (colored) to selected 1.51 (colored)

Implement "fortran77" as alias for "fortran".

Revision 1.70 / (download) - annotate - [select for diffs], Wed Jul 8 21:17:16 2009 UTC (14 years, 9 months ago) by markd
Branch: MAIN
CVS Tags: pkgsrc-2010Q2-base, pkgsrc-2010Q2, pkgsrc-2010Q1-base, pkgsrc-2010Q1, pkgsrc-2009Q4-base, pkgsrc-2009Q4, pkgsrc-2009Q3-base, pkgsrc-2009Q3
Changes since 1.69: +2 -2 lines
Diff to previous 1.69 (colored) to selected 1.51 (colored)

Add g95 support to the compiler framework, based on the existing f2c
support.

Revision 1.69 / (download) - annotate - [select for diffs], Sat May 30 18:16:26 2009 UTC (14 years, 10 months ago) by joerg
Branch: MAIN
CVS Tags: pkgsrc-2009Q2-base, pkgsrc-2009Q2
Changes since 1.68: +10 -2 lines
Diff to previous 1.68 (colored) to selected 1.51 (colored)

Rename GCC_USE_SYMLINKS to COMPILER_USE_SYMLINKS, implement it for the
other compiler drivers and enable it by default. Saves at least a
percent of build time even for trivial packages like lang/lua.

Revision 1.68 / (download) - annotate - [select for diffs], Mon Oct 20 20:44:49 2008 UTC (15 years, 6 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2009Q1-base, pkgsrc-2009Q1, pkgsrc-2008Q4-base, pkgsrc-2008Q4
Changes since 1.67: +2 -2 lines
Diff to previous 1.67 (colored) to selected 1.51 (colored)

Grammar fix in error message.

Revision 1.67 / (download) - annotate - [select for diffs], Mon Oct 20 18:33:50 2008 UTC (15 years, 6 months ago) by ahoka
Branch: MAIN
Changes since 1.66: +3 -3 lines
Diff to previous 1.66 (colored) to selected 1.51 (colored)

Sanitise the error message of the fail-wrapper:
 - Use PGKSRC-WARNING to note it's coming from pkgsrc and not always fatal.
 - Describe more precisely what's happening when you get this warning.

Hopefuly this will stop the misundersanding of the error message I could
see quite often amongst users.

Revision 1.66 / (download) - annotate - [select for diffs], Wed Feb 13 09:00:52 2008 UTC (16 years, 2 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2008Q3-base, pkgsrc-2008Q3, pkgsrc-2008Q2-base, pkgsrc-2008Q2, pkgsrc-2008Q1-base, pkgsrc-2008Q1, cwrapper, cube-native-xorg-base, cube-native-xorg
Changes since 1.65: +2 -1 lines
Diff to previous 1.65 (colored) to selected 1.51 (colored)

Added a keyword for "bmake help".

Revision 1.65 / (download) - annotate - [select for diffs], Thu Feb 7 21:36:13 2008 UTC (16 years, 2 months ago) by rillig
Branch: MAIN
Changes since 1.64: +4 -4 lines
Diff to previous 1.64 (colored) to selected 1.51 (colored)

Replaced _PKG_SILENT and _PKG_DEBUG with RUN.

Revision 1.64 / (download) - annotate - [select for diffs], Wed Oct 17 10:43:37 2007 UTC (16 years, 6 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2007Q4-base, pkgsrc-2007Q4
Changes since 1.63: +3 -3 lines
Diff to previous 1.63 (colored) to selected 1.51 (colored)

Made the .include lines simpler.

Revision 1.63 / (download) - annotate - [select for diffs], Thu Sep 20 17:28:48 2007 UTC (16 years, 7 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2007Q3-base, pkgsrc-2007Q3
Changes since 1.62: +6 -1 lines
Diff to previous 1.62 (colored) to selected 1.51 (colored)

Added variable descriptions.

Revision 1.62 / (download) - annotate - [select for diffs], Tue Sep 18 01:51:10 2007 UTC (16 years, 7 months ago) by reed
Branch: MAIN
Changes since 1.61: +3 -2 lines
Diff to previous 1.61 (colored) to selected 1.51 (colored)

For Portable C Compiler.

Add beginning of PKGSRC_COMPILER=pcc support.
Based on "sunpro".

Please help improve this. I have not tested with C++ or fortan.

Revision 1.61 / (download) - annotate - [select for diffs], Sat Jun 9 18:44:37 2007 UTC (16 years, 10 months ago) by rillig
Branch: MAIN
CVS Tags: pkgsrc-2007Q2-base, pkgsrc-2007Q2
Changes since 1.60: +2 -2 lines
Diff to previous 1.60 (colored) to selected 1.51 (colored)

There was one ">" too much, so the fail-wrapper warning was printed
multiple times.

Revision 1.60 / (download) - annotate - [select for diffs], Fri Jun 8 20:48:16 2007 UTC (16 years, 10 months ago) by rillig
Branch: MAIN
Changes since 1.59: +7 -3 lines
Diff to previous 1.59 (colored) to selected 1.51 (colored)

Changed the wording of the warning messages when a compiler-fail-wrapper
is run. As a new feature, an error message is printed when the wrapper
is called, so that there is a better trace to it than a completely empty
output.

See also: http://mail-index.netbsd.org/tech-pkg/2007/06/08/0017.html

Revision 1.59 / (download) - annotate - [select for diffs], Tue Apr 17 11:05:33 2007 UTC (17 years ago) by tnn
Branch: MAIN
Changes since 1.58: +3 -2 lines
Diff to previous 1.58 (colored) to selected 1.51 (colored)

add support for the HP-UX C/aC++ compilers

Revision 1.58 / (download) - annotate - [select for diffs], Sun Dec 3 08:34:45 2006 UTC (17 years, 4 months ago) by seb
Branch: MAIN
CVS Tags: pkgsrc-2007Q1-base, pkgsrc-2007Q1, pkgsrc-2006Q4-base, pkgsrc-2006Q4, jlam-pkgviews-base, jlam-pkgviews
Changes since 1.57: +6 -1 lines
Diff to previous 1.57 (colored) to selected 1.51 (colored)

If 'c99' is in USE_LANGUAGES also add 'c'.

I bet 'c99' support in USE_LANGUAGES was only tested on -current. On -current
there is no g77 command so mk/compiler/gcc.mk includes mk/compiler/f2c.mk which
adds 'c' to USE_LANGUAGES ;)

Revision 1.57 / (download) - annotate - [select for diffs], Sat Dec 2 22:32:59 2006 UTC (17 years, 4 months ago) by jschauma
Branch: MAIN
Changes since 1.56: +3 -3 lines
Diff to previous 1.56 (colored) to selected 1.51 (colored)

Instead of setting compiler flags in each package if it uses C99,
allow USE_LANGUAGES+=c99 and let gcc and mipspro do the right thing.
May need to be reviewed/added for other compilers.
ok rillig@

Revision 1.56 / (download) - annotate - [select for diffs], Thu Nov 16 02:42:13 2006 UTC (17 years, 5 months ago) by markd
Branch: MAIN
Changes since 1.55: +5 -1 lines
Diff to previous 1.55 (colored) to selected 1.51 (colored)

Allow CPP to be set to something not on the PATH (as used to work in
pre wrapper days).  Especially useful for Solaris where cpp tends to
live in /usr/css/lib/cpp.

Revision 1.55 / (download) - annotate - [select for diffs], Thu Jul 27 20:07:06 2006 UTC (17 years, 8 months ago) by joerg
Branch: MAIN
CVS Tags: pkgsrc-2006Q3-base, pkgsrc-2006Q3
Changes since 1.54: +3 -3 lines
Diff to previous 1.54 (colored) to selected 1.51 (colored)

Make the language warning a bit less forceful, since it is often a false
warning.

Revision 1.54 / (download) - annotate - [select for diffs], Sat Jul 22 05:01:17 2006 UTC (17 years, 9 months ago) by rillig
Branch: MAIN
Changes since 1.53: +3 -3 lines
Diff to previous 1.53 (colored) to selected 1.51 (colored)

The C compiler is also used for Objective C, so the c-fail-wrapper is
only created if none of these languages is mentioned in USE_LANGUAGE.

Revision 1.53 / (download) - annotate - [select for diffs], Thu Jul 20 16:44:01 2006 UTC (17 years, 9 months ago) by rillig
Branch: MAIN
Changes since 1.52: +9 -5 lines
Diff to previous 1.52 (colored) to selected 1.51 (colored)

Up to now, the language "c" has always been enabled, no matter if the
package said USE_LANGUAGES=#none or USE_LANGUAGES=fortran. Added a
c-fail-wrapper that works like the other fail-wrappers. The default
value for USE_LANGUAGES is still "c". Some problems are expected with
packages that say USE_LANGUAGES+=c++ or with packages containing GNU
configure scripts and setting USE_LANGUAGES=c++, as those scripts always
need a working C compiler.

Revision 1.52 / (download) - annotate - [select for diffs], Sun Jul 2 23:09:19 2006 UTC (17 years, 9 months ago) by rillig
Branch: MAIN
Changes since 1.51: +8 -8 lines
Diff to previous 1.51 (colored)

Reordered the variables in the interface comment so that all
user-settable variables come first.

Revision 1.51 / (download) - annotate - [selected], Fri Jun 9 13:59:08 2006 UTC (17 years, 10 months ago) by jlam
Branch: MAIN
CVS Tags: pkgsrc-2006Q2-base, pkgsrc-2006Q2
Changes since 1.50: +8 -2 lines
Diff to previous 1.50 (colored)

Introduce the capability to gather all the warnings and errors that
are generated for a target and output them all at once at the conclusion
of the target's invocation.  The implementation is in bsd.pkg.error.mk,
which defines a macro target "error-check" that will print out any
non-empty warning and error files in ${WARNING_DIR} and ${ERROR_DIR}
and exit appropriately if there were errors.

Convert some targets that were just long sequences of ${ERROR_MSG} or
${WARNING_MSG} within a single shell statement to use the new delayed
error output via error-check.

Modify the compiler "fail" wrappers for C++ and Fortran to be less
verbose during invocation.  Instead collect the warnings and only
print them at the end of the completed phase, e.g. after "configure"
and/or "build" completes.

Revision 1.38.2.8, Wed Jun 7 15:25:38 2006 UTC (17 years, 10 months ago) by tv
Branch: tv-derecurse
Changes since 1.38.2.7: +1 -1 lines
FILE REMOVED

EOL the tv-derecurse branch; it has become too outdated.  The last live
revision can be fetched at the tv-derecurse-eol tag.

Revision 1.50 / (download) - annotate - [select for diffs], Fri May 12 21:37:08 2006 UTC (17 years, 11 months ago) by jlam
Branch: MAIN
Changes since 1.49: +6 -5 lines
Diff to previous 1.49 (colored) to selected 1.51 (colored)

Fix a problem that occurs if compiler.mk is included in a package's
Makefile, which means it occurs before bsd.tools.mk is included and
thus misses the definition of TOOLS_DIR.  We now create a new subdirectory
of ${WRKDIR} to house the wrappers instead of re-using ${TOOLS_DIR}.
Problem noted by Roland Illig on tech-pkg:

	http://mail-index.netbsd.org/tech-pkg/2006/05/12/0011.html

Revision 1.49 / (download) - annotate - [select for diffs], Thu May 11 22:13:19 2006 UTC (17 years, 11 months ago) by jlam
Branch: MAIN
Changes since 1.48: +16 -3 lines
Diff to previous 1.48 (colored) to selected 1.51 (colored)

Make build failures due to the previous commit less mysterious by using
a wrapper script that emits a hint of what went wrong.

Revision 1.48 / (download) - annotate - [select for diffs], Sat May 6 15:20:05 2006 UTC (17 years, 11 months ago) by tv
Branch: MAIN
Changes since 1.47: +12 -1 lines
Diff to previous 1.47 (colored) to selected 1.51 (colored)

Force unrequested languages to be unavailable by setting them to ${FALSE}.
This way, missing language dependencies will be caught at build time.

(Tested without problems on several C++ packages by unsetting LANGUAGES in
them.  I don't have a machine fast enough to bulk build, but I shall be
watching the next round on pkgsrc-bulk to fix what I may not know about
right now.)

Revision 1.47 / (download) - annotate - [select for diffs], Sun Oct 16 19:44:44 2005 UTC (18 years, 6 months ago) by schwarz
Branch: MAIN
CVS Tags: pkgsrc-2006Q1-base, pkgsrc-2006Q1, pkgsrc-2005Q4-base, pkgsrc-2005Q4
Changes since 1.46: +3 -2 lines
Diff to previous 1.46 (colored) to selected 1.51 (colored)


added support for the SGI IDO (IRIX Development Option) cc used by IRIX 5.3.
changes approved by jschauma and recht.

Revision 1.38.2.7 / (download) - annotate - [select for diffs], Fri Feb 25 14:46:51 2005 UTC (19 years, 1 month ago) by tv
Branch: tv-derecurse
CVS Tags: tv-derecurse-eol
Changes since 1.38.2.6: +2 -2 lines
Diff to previous 1.38.2.6 (colored) to selected 1.51 (colored)

sync with HEAD

Revision 1.46 / (download) - annotate - [select for diffs], Wed Feb 16 08:41:20 2005 UTC (19 years, 2 months ago) by grant
Branch: MAIN
CVS Tags: tv-derecurse-merge, tv-derecurse-base, pkgsrc-2005Q3-base, pkgsrc-2005Q3, pkgsrc-2005Q2-base, pkgsrc-2005Q2, pkgsrc-2005Q1-base, pkgsrc-2005Q1
Changes since 1.45: +2 -2 lines
Diff to previous 1.45 (colored) to selected 1.51 (colored)

note that xlc support is on Darwin.

Revision 1.38.2.6 / (download) - annotate - [select for diffs], Tue Feb 15 16:25:22 2005 UTC (19 years, 2 months ago) by tv
Branch: tv-derecurse
Changes since 1.38.2.5: +3 -2 lines
Diff to previous 1.38.2.5 (colored) to selected 1.51 (colored)

sync with HEAD

Revision 1.45 / (download) - annotate - [select for diffs], Tue Feb 15 07:43:43 2005 UTC (19 years, 2 months ago) by grant
Branch: MAIN
Changes since 1.44: +3 -2 lines
Diff to previous 1.44 (colored) to selected 1.51 (colored)

add support for icc, the Intel C++ Compiler (Linux).

icc is a high performance compiler suite for Linux/i386 and ia64, and
is free for non-commercial use. see:

	http://www.intel.com/software/products/compilers/clin/

for more information.

tested with icc version 8.0 and 8.1 on Slackware 10/i386.

Revision 1.44 / (download) - annotate - [select for diffs], Mon Jan 24 18:07:56 2005 UTC (19 years, 2 months ago) by tv
Branch: MAIN
Changes since 1.43: +1 -4 lines
Diff to previous 1.43 (colored) to selected 1.51 (colored)

Merge down janitorial change from tv-derecurse branch:

Move definition of PKGSRC_COMPILER to defaults/mk.conf, to make it more
readily seen by the user.

Revision 1.38.2.5 / (download) - annotate - [select for diffs], Thu Jan 13 20:11:55 2005 UTC (19 years, 3 months ago) by tv
Branch: tv-derecurse
Changes since 1.38.2.4: +15 -8 lines
Diff to previous 1.38.2.4 (colored) to selected 1.51 (colored)

sync with HEAD

Revision 1.43 / (download) - annotate - [select for diffs], Wed Jan 12 15:32:01 2005 UTC (19 years, 3 months ago) by jlam
Branch: MAIN
Changes since 1.42: +15 -8 lines
Diff to previous 1.42 (colored) to selected 1.51 (colored)

Nuke USE_FORTRAN and bring the f2c handling within the mk/compiler
framework.  The list of changes include:

  * Modify compiler.mk so that "c" is always prepended to USE_LANGUAGES,
    so we no longer need to say it in package Makefiles.  Packages
    should now append to USE_LANGUAGES instead of setting it.

  * Create mk/compiler/f2c.mk which implements another pseudo-compiler
    "f2c" that may be used with any C compiler backend, e.g.

	PKGSRC_COMPILER= f2c ccache gcc

  * Teach the various "real" compiler files, e.g., sunpro.mk, mipspro.mk,
    etc., to use f2c if the native Fortran compiler isn't present.

Packages that use Fortran should now simply include the line:

	USE_LANGUAGES+=	fortran

in the package Makefile.

Revision 1.38.2.4 / (download) - annotate - [select for diffs], Mon Jan 10 16:15:25 2005 UTC (19 years, 3 months ago) by tv
Branch: tv-derecurse
Changes since 1.38.2.3: +3 -3 lines
Diff to previous 1.38.2.3 (colored) to selected 1.51 (colored)

sync with HEAD

Revision 1.42 / (download) - annotate - [select for diffs], Mon Jan 10 09:05:01 2005 UTC (19 years, 3 months ago) by jlam
Branch: MAIN
Changes since 1.41: +3 -3 lines
Diff to previous 1.41 (colored) to selected 1.51 (colored)

Sort the compiler list in the comments.

Revision 1.38.2.3 / (download) - annotate - [select for diffs], Tue Nov 30 15:10:47 2004 UTC (19 years, 4 months ago) by tv
Branch: tv-derecurse
Changes since 1.38.2.2: +5 -1 lines
Diff to previous 1.38.2.2 (colored) to selected 1.51 (colored)

merge from HEAD

Revision 1.41 / (download) - annotate - [select for diffs], Tue Nov 30 15:07:26 2004 UTC (19 years, 4 months ago) by jlam
Branch: MAIN
CVS Tags: pkgsrc-2004Q4-base, pkgsrc-2004Q4
Changes since 1.40: +5 -1 lines
Diff to previous 1.40 (colored) to selected 1.51 (colored)

Remove the trailing whitespace in the values of the toolchain variables
(CC, LD, CXX, etc.) if the default values have no arguments.  Now,
CC == "cc" and not "cc ".

Revision 1.38.2.2 / (download) - annotate - [select for diffs], Tue Nov 30 15:06:34 2004 UTC (19 years, 4 months ago) by tv
Branch: tv-derecurse
Changes since 1.38.2.1: +11 -1 lines
Diff to previous 1.38.2.1 (colored) to selected 1.51 (colored)

merge from HEAD

Revision 1.40 / (download) - annotate - [select for diffs], Tue Nov 30 14:50:37 2004 UTC (19 years, 4 months ago) by jlam
Branch: MAIN
Changes since 1.39: +10 -8 lines
Diff to previous 1.39 (colored) to selected 1.51 (colored)

Modify the way that the toolchain variables, e.g. CC, CPP, CXX, LD, etc.,
are handled.  The idea now is to simply remove the paths in the values
of these variables, leaving behind only the basename plus any arguments,
e.g.:

	CC= /usr/local/bin/gcc       becomes   CC= gcc
	CPP= /usr/local/bin/gcc -E   becomes   CPP= gcc -E

The wrapper scripts are generated for every unique executable mentioned
by the toolchain variables, so for the example above, only a "gcc"
wrapper script is generated for ${CC} and ${CPP}.  PKG_{CC,CPP,CXX,etc.}
are the paths to the executables wrapped by the wrapper scripts.

Note that it's now possible to set "CC" to something more than just the
path to the compiler, e.g.

	CC= cc -ffast-math -funroll-loops -fomit-frame-pointer

and the full value of ${CC} will be passed through via CONFIGURE_ENV
and MAKE_ENV.

Revision 1.39 / (download) - annotate - [select for diffs], Sun Nov 28 21:32:47 2004 UTC (19 years, 4 months ago) by jlam
Branch: MAIN
Changes since 1.38: +9 -1 lines
Diff to previous 1.38 (colored) to selected 1.51 (colored)

Set initial values for PKG_{CC,CPP,CXX,FC} which are used within the
${compiler}.mk files to discover the short names of the compilers.
This allows ccache.mk to properly create symlinks when CC is set
explicitly within /etc/mk.conf.

Revision 1.38.2.1 / (download) - annotate - [select for diffs], Mon Nov 22 22:48:05 2004 UTC (19 years, 5 months ago) by tv
Branch: tv-derecurse
Changes since 1.38: +1 -4 lines
Diff to previous 1.38 (colored) to selected 1.51 (colored)

So that I don't lose all this work, stash the work-in-progress derecursion
cleanup onto the tv-derecurse branch (only branched in pkgsrc/mk).

Revision 1.38 / (download) - annotate - [select for diffs], Mon Nov 22 22:24:47 2004 UTC (19 years, 5 months ago) by wiz
Branch: MAIN
Branch point for: tv-derecurse
Changes since 1.37: +1 -14 lines
Diff to previous 1.37 (colored) to selected 1.51 (colored)

Now that no package uses USE_GCC_SHLIB any longer, remove support
for it from compiler.mk.

Move the variable of the same name used by compiler/gcc.mk and
the gcc* buildlink3 files into private namespace (_USE_GCC_SHLIB).

Revision 1.37 / (download) - annotate - [select for diffs], Sat Nov 20 04:37:08 2004 UTC (19 years, 5 months ago) by grant
Branch: MAIN
Changes since 1.36: +3 -2 lines
Diff to previous 1.36 (colored) to selected 1.51 (colored)

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.

Revision 1.36 / (download) - annotate - [select for diffs], Wed Oct 6 09:49:53 2004 UTC (19 years, 6 months ago) by grant
Branch: MAIN
Changes since 1.35: +3 -2 lines
Diff to previous 1.35 (colored) to selected 1.51 (colored)

add initial support for IBM's XL C/C++ compiler. tested with version
6.0 on Mac OS X 10.3.5.

to use XL C, set PKGSRC_COMPILER=xlc in mk.conf. XLCBASE defaults to
/opt/ibmcmp/vacpp/6.0 (the default installation location on OS X),
this can be overridden in mk.conf too.

this is a work in progress - some simple packages can be built, but
there are still lots of issues that need to be worked through.

Revision 1.35 / (download) - annotate - [select for diffs], Tue Sep 21 15:01:39 2004 UTC (19 years, 7 months ago) by jlam
Branch: MAIN
Changes since 1.34: +7 -1 lines
Diff to previous 1.34 (colored) to selected 1.51 (colored)

Initial commit of a new wrapper script framework that encapsulates
the non-buildlink-related code and moves it out of mk/buildlink3 into
mk/wrapper.  The buildlink3 code is modified to simply hook its
transformations into the wrapper script framework.

The wrapper script framework has some new features:

* Support automatically passing "ABI" flags to the compiler and linker
  depending on the value of ${ABI}.  Currently supports the SunPro
  compiler with ${ABI} == 64 and the MIPSPro compiler with ${ABI} as
  any of 32, n32, o32, and 64.

* making UnixWare GCC accept -rpath options and silently converting
  them into an appropriate LD_RUN_PATH

* Add cmd-sink-interix-gcc and cmd-sink-interix-ld that errors out
  when it sees -fpic/-fPIC and -shared/-Bshareable, respectively
  (requested by <tv>).

* Much improved debugging output.  It's possible to output the wrapper
  work log in-line with normal output by setting WRAPPER_LOG to
  "stderr".

Important differences in behaviour from the old buildlink3 code include:

* Only move the -l options to the end of the command line, leaving the
  -L options in-place.

* Extend the autodetection of the libtool mode to detect "compile" and
  "uninstall".

* Fix problem noted in both PR pkg/24760 and PR pkg/25500, where
  -L/usr/lib/* was being mangled improperly.

* Remove the top-level "buildlink" target; instead, make buildlinking
  occur as part of the "wrapper" target.

* mangle and sub-mangle are only meant to transform directories in
  -I, -L, and rpath options, so remove the lines in
  buildlink3/gen-transform.sh that transformed bare directories.

* Add the ability for the libtool wrapper to be called just to unwrap
  an existing libtool archive by running:

	libtool --mode=unwrap -o libfoo.la

  The old --fix-la syntax no longer works.


20040818
========
* Initial release of a new wrapper script framework that encapsulates
  the non-buildlink-related code and moves it out of mk/buildlink3.
  These features include:

   * making MIPSpro accept GCC options
   * making MIPSpro "ucode" accept GCC options
   * making SunPro accept GCC options
   * making "ld" accept -Wl,* options and silently removing the "-Wl,"
   * (NEW) making UnixWare GCC accept -rpath options and silently
     converting them into an appropriate LD_RUN_PATH

  One major benefit of this is that the buildlink3 code is now much
  tighter and easier to understand since it concerns itself solely
  with buildlink-related details.  I haven't yet optimized the wrapper
  cache, so the new wrapper scripts may take slightly longer to execute
  than the old buildlink3 wrapper scripts, but I'll be improving this
  over time.


20040821
========
* Move the inclusion of $cmd_sink outside of the main loop in wrapper.sh
  so that the $cmd_sink script can be used to globally scan and process
  the arguments.  Move the LD_RUN_PATH code to a cmd-sink-unixware-gcc
  script.  Garbage-collect the now unused export_vars-related code.

* Add cmd-sink-aix-xlc for AIX xlc that munges -Wl,-R* into an
  appropriate -blibpath option.

* Add cmd-sink-interix-gcc and cmd-sink-interix-ld that errors out
  when it sees -fpic/-fPIC and -shared/-Bshareable, respectively
  (requested by <tv>).

* Move the code that converts full paths to shared libraries into the
  "-Ldir -llib" equivalents from the buildlink3 code into wrapper/logic.
  Remove the same from bsd.buildlink3.mk and gen-transform.sh.

* Move the code that checks for absolute rpaths from the buildlink3
  code into wrapper/arg-source.  Remove the same from bsd.buildlink3.mk
  and gen-transform.sh.

* Only move the -l options to the end of the command line, leaving the
  -L options in-place.

* Add more debugging code.


20040824
========
* Fix quoting problems after arguments are transformed.  Remove the
  hack that was inserted that magically made almost everything work
  because we do it the right way now.

* Move the inclusion of $logic outside of the main loop in wrapper.sh
  so that the $logic script doesn't have to worry about underflowing
  the argument buffer.

* Encapsulate the loop in wrapper.sh that fills the argument buffer
  entirely within the arg-source script.

* Move from the logic script into the arg-source script the
  transformations that merge or split arguments.

* Fix bug where skipargs was effectively being ignored if it was more
  than 1.

* Handle the whitespace in transformations in the logic script that
  turn one library option into multiple library options, e.g.
  "-lreadline" -> "-ledit -ltermcap".

* Allow you to specify an environment variable WRAPPER_SKIP_TRANSFORM
  for whether you wish to skip the transformation step in the logic
  script.  This is intended for testing purposes.

* Added check_prog() and init_lib() functions to the shell code library
  to make it more reusable outside of the wrapper framework.

* Allow the msg_log() function to output to "stdout" or "stderr".  If
  you want to have all of the logging appear on the screen, then you
  can now set WRAPPER_LOG=stderr.

* Make some of the script components not overridable on a per-wrapper
  basis.

* Add a gen-transform.sh script that generates transformation sedfiles.
  The "transform" script is used to transform arguments, while the
  "untransform" script is used to unwrap files.  Move the no-rpath
  logic from buildlink3/gen-transform.sh into wrapper/gen-transform.sh
  since it's not buildlink3-specific.

* Check for a non-empty blibpath before adding the option in
  cmd-sink-aix-xlc.

* Extend the autodetection of the libtool mode to detect "compile" and
  "uninstall".

* Add a cmd-sink-libtool script that doesn't pass linker options to
  libtool unless we're in "link" mode.

* Set _USE_RPATH to "yes" for UnixWare so that the wrappers will see the
  rpath options and convert them to a LD_RUN_PATH definition.

* Add more debugging code.


20040826
========
* Rewrite buildlink3/gen-transform.sh to produce more precise sed commands.
  Drop some unused commands from the mini-language, and add a few more
  that are more restrictive in their scope.

* Fix problem where repeated options weren't properly handled by some
  of sed commands.  It's not enough that they're "global replace",
  since some patterns match separator characters before and after each
  option.  We must repeat those patterns twice to catch all instances
  correctly.

* Fix problem noted in both PR pkg/24760 and PR pkg/25500, where
  -L/usr/lib/* was being mangled improperly.

* Remove the top-level "buildlink" target; instead, make buildlinking
  occur as part of the "wrapper" target.

* Add more debugging code.


20040828
========
* Added a head_queue function to shell-lib that returns the head of the
  named queue without popping it off the front of the queue.

* Strip consecutive, repeated library options from the command line when
  we read it in the logic script.

* Be more careful about not underflowing the argument buffer.


20040906
========
* shell-lib was moved into pkgsrc/mk/scripts; correct references to that
  file in the wrapper code.

* Use opt-sub instead of sub-mangle when protecting -I/usr/include/*
  and -L/usr/lib/* from buildlink transformations.  This avoids adding
  lines that look like "-I-I..." in the transformation sedfiles.

* mangle and sub-mangle are only meant to transform directories in
  -I, -L, and rpath options, so remove the lines in
  buildlink3/gen-transform.sh that transformed bare directories.

* Fix bug in strip-slashdot where the "." wasn't backquoted and thus
  matched all characters instead of only the "." character.

* Change the libtool wrapper to use a modified buildcmd script that
  doesn't rearrange any of the arguments.  This should fix spurious
  problems where libtool doesn't understand how to parse the command
  line when the -l options are moved to the end of the argument list.

* Fix bug in the logic script where the $cachearg and $cachedarg
  weren't being properly set at all times, which caused the cache to
  contain the wrong transformed argument.


20040907
========
* Support automatically passing "ABI" flags to the compiler and linker
  depending on the value of ${ABI}.  Currently supports the SunPro
  compiler with ${ABI} == 64 and the MIPSPro compiler with ${ABI} as
  any of 32, n32, o32, and 64.

* Move back the code that splits absolute paths to shared libraries
  from arg-source back into logic.  This allows us to correctly skip
  splitting those paths based on the previous option.  Also add a
  sanity check that the library name in the split argument doesn't
  contain a "/" since shell globs are not as precise as REs.

* Don't transform the path given after --dynamic-linker (used by GNU
  ld for ELF linkage).

* Add the ability for the libtool wrapper to be called just to unwrap
  an existing libtool archive by running:

	libtool --mode=unwrap -o libfoo.la


20040914
========
* Add a loop in libtool-fix-la to ensure that all of the options listed
  in the dependency_libs lines of *.lai files are processed.  This fixes
  a buildlink3 leakage bug.

* Merge the gen-transform.sh scripts between buildlink3 and wrapper and
  place them all in wrapper.  This makes sense since the commands simply
  allow for many types of transformations, which buildlink3 takes
  advantage of, but there is nothing inherently buildlink-ish about
  those commands.

* Don't directly manipulate SUBST_SED.unwrap.  Instead, create the
  value of SUBST_SED.unwrap by combining several other variables
  (currently just _UNWRAP_SED) to ensure that the correct ordering is
  preserved.

* Correct some confusing debugging messages.

Revision 1.34 / (download) - annotate - [select for diffs], Sun Jul 4 00:38:15 2004 UTC (19 years, 9 months ago) by wiz
Branch: MAIN
CVS Tags: pkgsrc-2004Q3-base, pkgsrc-2004Q3
Changes since 1.33: +9 -2 lines
Diff to previous 1.33 (colored) to selected 1.51 (colored)

Re-add USE_PKGSRC_GCC, and document it should only be
used in /etc/mk.conf. Requested by Klaus Heinz.

Revision 1.33 / (download) - annotate - [select for diffs], Sun Jul 4 00:28:30 2004 UTC (19 years, 9 months ago) by wiz
Branch: MAIN
Changes since 1.32: +2 -22 lines
Diff to previous 1.32 (colored) to selected 1.51 (colored)

Retire USE_GCC2, USE_GCC3, USE_SUNPRO, USE_MIPSPRO, and USE_PKGSRC_GCC,
now that all instances of packages using it have been fixed.

Revision 1.32 / (download) - annotate - [select for diffs], Wed May 12 21:49:39 2004 UTC (19 years, 11 months ago) by reed
Branch: MAIN
CVS Tags: pkgsrc-2004Q2-base, pkgsrc-2004Q2
Changes since 1.31: +2 -2 lines
Diff to previous 1.31 (colored) to selected 1.51 (colored)

Change date of when deprecated USE_GCC2, USE_GCC3, USE_PKGSRC_GCC,
USE_SUNPRO, USE_MIPSPRO variables would be removed. (According
to jlam@.)
mk/compiler.mk CVS:
----------------------------------------------------------------------

Revision 1.31 / (download) - annotate - [select for diffs], Sun May 9 00:04:14 2004 UTC (19 years, 11 months ago) by grant
Branch: MAIN
Changes since 1.30: +2 -2 lines
Diff to previous 1.30 (colored) to selected 1.51 (colored)

add mipspro-ucode to _COMPILERS which was missed the first time.

Revision 1.30 / (download) - annotate - [select for diffs], Sat May 8 16:36:55 2004 UTC (19 years, 11 months ago) by grant
Branch: MAIN
Changes since 1.29: +5 -6 lines
Diff to previous 1.29 (colored) to selected 1.51 (colored)

correctly preserve the user-specified order of pseudo-compilers. patch
from jlam@.

Revision 1.29 / (download) - annotate - [select for diffs], Sat May 8 15:09:31 2004 UTC (19 years, 11 months ago) by grant
Branch: MAIN
Changes since 1.28: +2 -2 lines
Diff to previous 1.28 (colored) to selected 1.51 (colored)

_PKGSRC_COMPILER needs to contain the real compiler first, then
pseudo-compilers such as ccache and distcc.

fixes problem where lang/gcc{,3} would be incorrectly pulled in when
it should not be.

Revision 1.28 / (download) - annotate - [select for diffs], Sat May 8 06:03:26 2004 UTC (19 years, 11 months ago) by grant
Branch: MAIN
Changes since 1.27: +39 -5 lines
Diff to previous 1.27 (colored) to selected 1.51 (colored)

implement {NOT,ONLY}_FOR_COMPILER so that packages can be marked as
requiring a specific compiler (most often those which use gcc-specific
hacks^wfeatures).

this allows users to define PKGSRC_COMPILER to multiple real compilers in
order to implement a compiler preference. for example,
PKGSRC_COMPILER="sunpro gcc" will use sunpro as the default compiler,
and fall back to gcc where a package is marked NOT_FOR_COMPILER=sunpro
or ONLY_FOR_COMPILER=gcc.

Revision 1.27 / (download) - annotate - [select for diffs], Wed Mar 31 09:38:36 2004 UTC (20 years ago) by sketch
Branch: MAIN
Changes since 1.26: +2 -2 lines
Diff to previous 1.26 (colored) to selected 1.51 (colored)

Since revision 1.155 of bsd.prefs.mk, compiler.mk is required in package
Makefiles for testing CC_VERSION, not bsd.prefs.mk.  Reflect that change
in the provided example.

Revision 1.26 / (download) - annotate - [select for diffs], Wed Feb 18 13:32:38 2004 UTC (20 years, 2 months ago) by jlam
Branch: MAIN
CVS Tags: pkgsrc-2004Q1-base, pkgsrc-2004Q1
Changes since 1.25: +83 -240 lines
Diff to previous 1.25 (colored) to selected 1.51 (colored)

* Move pkgsrc/mk/compiler/bsd.compiler.mk to pkgsrc/mk/compiler.mk.
  Package Makefiles may now directly include compiler.mk.

* Don't include compiler.mk within bsd.prefs.mk any longer.  It was only
  included for the purposes of defining CC_VERSION.  Packages that want
  to test the value of CC_VERSION should now first include
  "../../mk/compiler.mk".  Any GCC_REQD statements in package Makefiles
  should be set before compiler.mk is included.

* Simpllfy pkgsrc/mk/compiler/*.mk files as a result of not needing to
  be included indirectly by bsd.prefs.mk.  We remove the special handling
  associated with detecting whether the file was included from within
  bsd.prefs.mk.  These files are now much more straightforward to write
  and understand.

* G/C the BSD_PREFS_MK stack mechanism as the only users (compiler/*)
  no longer need it.

* Ensure that directories are prepended to the PATH only from within
  bsd.pkg.mk.

Revision 1.25, Sun Feb 1 01:57:39 2004 UTC (20 years, 2 months ago) by jlam
Branch: MAIN
Changes since 1.24: +1 -1 lines
FILE REMOVED

Garbage collect compiler.mk as it's superseded by the new compiler
selection framework in pkgsrc/mk/compiler.

Revision 1.24 / (download) - annotate - [select for diffs], Wed Dec 10 09:08:24 2003 UTC (20 years, 4 months ago) by sketch
Branch: MAIN
Changes since 1.23: +2 -1 lines
Diff to previous 1.23 (colored) to selected 1.51 (colored)

Ensure CPP is defined to use the Sun compiler when building packages
under USE_SUNPRO, to avoid the possibility of picking up "cpp" from a
local GCC installation.

Revision 1.23 / (download) - annotate - [select for diffs], Wed Nov 12 13:13:43 2003 UTC (20 years, 5 months ago) by grant
Branch: MAIN
CVS Tags: pkgsrc-2003Q4-base, pkgsrc-2003Q4
Changes since 1.22: +1 -1 lines
Diff to previous 1.22 (colored) to selected 1.51 (colored)

backout previous, it is no longer needed.

Revision 1.22 / (download) - annotate - [select for diffs], Fri Oct 24 12:07:14 2003 UTC (20 years, 6 months ago) by cube
Branch: MAIN
Changes since 1.21: +2 -2 lines
Diff to previous 1.21 (colored) to selected 1.51 (colored)

Remove '-' from the version part of _GCC_IN_USE  so that pkg_admin can deal
with the installed gcc when it has a localized version (such as our
gcc-3.3.2-nb1).

Revision 1.21 / (download) - annotate - [select for diffs], Sat Oct 18 09:14:47 2003 UTC (20 years, 6 months ago) by grant
Branch: MAIN
Changes since 1.20: +20 -14 lines
Diff to previous 1.20 (colored) to selected 1.51 (colored)

move the libstdc++ fake libtool archive stuff out of
!defined(COMPILER_MK) for now.

some packages include bsd.prefs.mk before defining USE_BUILDLINK2,
which resulted in the libstdc++ fake-la target being missed.

XXX the real fix is to include compiler.mk from both bsd.prefs.mk and
XXX bsd.pkg.mk, and have compiler.mk make the right decisions based on
XXX where it was included from.

Revision 1.20 / (download) - annotate - [select for diffs], Sun Oct 12 03:05:37 2003 UTC (20 years, 6 months ago) by grant
Branch: MAIN
Changes since 1.19: +8 -7 lines
Diff to previous 1.19 (colored) to selected 1.51 (colored)

fix logic error introduced in last, sync comments about CC_VERSION
with reality.

Revision 1.19 / (download) - annotate - [select for diffs], Sat Oct 11 03:43:14 2003 UTC (20 years, 6 months ago) by grant
Branch: MAIN
Changes since 1.18: +6 -4 lines
Diff to previous 1.18 (colored) to selected 1.51 (colored)

set CC_VERSION for non-gcc and use it in the BUILD_INFO file.

Revision 1.18 / (download) - annotate - [select for diffs], Sat Oct 11 02:44:18 2003 UTC (20 years, 6 months ago) by grant
Branch: MAIN
Changes since 1.17: +8 -1 lines
Diff to previous 1.17 (colored) to selected 1.51 (colored)

don't hardcode the -DHasGcc2... flags to imake, pass them only if
we're actually using gcc on Solaris.

fixes building of imake PIC code when the compiler is not gcc.

Revision 1.17 / (download) - annotate - [select for diffs], Mon Oct 6 11:14:22 2003 UTC (20 years, 6 months ago) by grant
Branch: MAIN
Changes since 1.16: +35 -24 lines
Diff to previous 1.16 (colored) to selected 1.51 (colored)

allow lang/gcc{,3} to be used to build themselves by only adding the
(build) dependency if the package being built is not the package which
is providing the compiler.

Revision 1.16 / (download) - annotate - [select for diffs], Mon Oct 6 07:11:19 2003 UTC (20 years, 6 months ago) by grant
Branch: MAIN
Changes since 1.15: +3 -3 lines
Diff to previous 1.15 (colored) to selected 1.51 (colored)

avoid F77/PKG_FC being recursively defined.

reported by krister.

XXX the Fortran gunk in bsd.pkg.mk will be moved to here later.

Revision 1.15 / (download) - annotate - [select for diffs], Sun Sep 28 09:53:56 2003 UTC (20 years, 6 months ago) by grant
Branch: MAIN
Changes since 1.14: +20 -6 lines
Diff to previous 1.14 (colored) to selected 1.51 (colored)

sync comments with reality.

note once again that USE_GCC2/USE_GCC3 must not be defined in package
Makefiles. also note CC_VERSION and provide a usage example.

Revision 1.14 / (download) - annotate - [select for diffs], Sun Sep 28 09:48:00 2003 UTC (20 years, 6 months ago) by grant
Branch: MAIN
Changes since 1.13: +14 -1 lines
Diff to previous 1.13 (colored) to selected 1.51 (colored)

if /usr/lib/libstdc++.la exists, create the corresponding fake libtool
archive in ${BUILDLINK_DIR}/lib so packages can find and use it.

fixes some build problems seen on Slackware Linux 9.

Revision 1.13 / (download) - annotate - [select for diffs], Sat Sep 27 17:20:38 2003 UTC (20 years, 6 months ago) by grant
Branch: MAIN
Changes since 1.12: +9 -1 lines
Diff to previous 1.12 (colored) to selected 1.51 (colored)

set CC and CXX defaults for SunPro when USE_SUNPRO is defined.

the path to cc and CC can be overridden in /etc/mk.conf or on
the command line.

Revision 1.12 / (download) - annotate - [select for diffs], Wed Sep 24 12:22:04 2003 UTC (20 years, 6 months ago) by grant
Branch: MAIN
Changes since 1.11: +18 -3 lines
Diff to previous 1.11 (colored) to selected 1.51 (colored)

make CC_VERSION available to packages by including bsd.prefs.mk.

it is of the form 'gcc-<version>' if gcc is being used, or empty
otherwise (for now).

requested by tron.

Revision 1.11 / (download) - annotate - [select for diffs], Wed Sep 24 03:01:02 2003 UTC (20 years, 7 months ago) by grant
Branch: MAIN
Changes since 1.10: +3 -4 lines
Diff to previous 1.10 (colored) to selected 1.51 (colored)

remove redefine of _GCC_PREFIX, whitespace fix.

Revision 1.10 / (download) - annotate - [select for diffs], Tue Sep 23 19:19:33 2003 UTC (20 years, 7 months ago) by gavan
Branch: MAIN
Changes since 1.9: +10 -2 lines
Diff to previous 1.9 (colored) to selected 1.51 (colored)

Work out _GCC_ARCHSUBDIR correctly, using the method from
lang/gcc3/buildlink2.mk

Revision 1.9 / (download) - annotate - [select for diffs], Sun Sep 21 16:43:47 2003 UTC (20 years, 7 months ago) by wiz
Branch: MAIN
Changes since 1.8: +5 -5 lines
Diff to previous 1.8 (colored) to selected 1.51 (colored)

Test for egcs needs to come first, since egcs -v output also
contains "gcc". From Greg A. Woods in PR 22866.

Revision 1.8 / (download) - annotate - [select for diffs], Wed Sep 17 19:58:08 2003 UTC (20 years, 7 months ago) by grant
Branch: MAIN
Changes since 1.7: +4 -1 lines
Diff to previous 1.7 (colored) to selected 1.51 (colored)

explain why including this file in pkg Makefiles is useless.

Revision 1.7 / (download) - annotate - [select for diffs], Wed Sep 17 14:37:32 2003 UTC (20 years, 7 months ago) by grant
Branch: MAIN
Changes since 1.6: +83 -10 lines
Diff to previous 1.6 (colored) to selected 1.51 (colored)

honour GCC_REQD by testing $CC -v against it, and only pull in pkgsrc
gcc if required. see the comments for how to use the variables which
influence the decision.

eliminate some spurious shell warnings while I'm here.

Revision 1.6 / (download) - annotate - [select for diffs], Fri Sep 12 22:53:18 2003 UTC (20 years, 7 months ago) by salo
Branch: MAIN
Changes since 1.5: +6 -6 lines
Diff to previous 1.5 (colored) to selected 1.51 (colored)

Sync comments with reality.

Revision 1.5 / (download) - annotate - [select for diffs], Fri Sep 12 20:10:17 2003 UTC (20 years, 7 months ago) by grant
Branch: MAIN
Changes since 1.4: +3 -5 lines
Diff to previous 1.4 (colored) to selected 1.51 (colored)

remove redundant comment about USE_GCC2 and USE_GCC3 until they are
better handled.

Revision 1.4 / (download) - annotate - [select for diffs], Fri Sep 12 16:07:09 2003 UTC (20 years, 7 months ago) by grant
Branch: MAIN
Changes since 1.3: +10 -1 lines
Diff to previous 1.3 (colored) to selected 1.51 (colored)

move a SunPro tweak to compiler.mk.

Revision 1.3 / (download) - annotate - [select for diffs], Fri Sep 12 15:54:40 2003 UTC (20 years, 7 months ago) by grant
Branch: MAIN
Changes since 1.2: +12 -5 lines
Diff to previous 1.2 (colored) to selected 1.51 (colored)

tidy up handling of LDFLAGS wrt USE_GCC_SHLIB a little.

Revision 1.2 / (download) - annotate - [select for diffs], Fri Sep 12 13:35:29 2003 UTC (20 years, 7 months ago) by salo
Branch: MAIN
Changes since 1.1: +2 -2 lines
Diff to previous 1.1 (colored) to selected 1.51 (colored)

Typos/punctuation/caps.

Revision 1.1 / (download) - annotate - [select for diffs], Fri Sep 12 13:03:38 2003 UTC (20 years, 7 months ago) by grant
Branch: MAIN
Diff to selected 1.51 (colored)

start of improved compiler handling, mostly derived from the existing
gcc buildlink2.mk files and splitting the non-buildlink2.mk bits out
into compiler.mk.

this allows USE_GCC2 and USE_GCC3 to work with non-buildlink2 packages
again.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>