xref: /dflybsd-src/share/man/man5/compilers.conf.5 (revision b0eef83f16f365805db2412080be172e586f0a55)
1c97b9141SSascha Wildner.\"
2c97b9141SSascha Wildner.\" Copyright (c) 2009
3c97b9141SSascha Wildner.\"	The DragonFly Project.  All rights reserved.
4c97b9141SSascha Wildner.\"
5c97b9141SSascha Wildner.\" Redistribution and use in source and binary forms, with or without
6c97b9141SSascha Wildner.\" modification, are permitted provided that the following conditions
7c97b9141SSascha Wildner.\" are met:
8c97b9141SSascha Wildner.\"
9c97b9141SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright
10c97b9141SSascha Wildner.\"    notice, this list of conditions and the following disclaimer.
11c97b9141SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright
12c97b9141SSascha Wildner.\"    notice, this list of conditions and the following disclaimer in
13c97b9141SSascha Wildner.\"    the documentation and/or other materials provided with the
14c97b9141SSascha Wildner.\"    distribution.
15c97b9141SSascha Wildner.\" 3. Neither the name of The DragonFly Project nor the names of its
16c97b9141SSascha Wildner.\"    contributors may be used to endorse or promote products derived
17c97b9141SSascha Wildner.\"    from this software without specific, prior written permission.
18c97b9141SSascha Wildner.\"
19c97b9141SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20c97b9141SSascha Wildner.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21c97b9141SSascha Wildner.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22c97b9141SSascha Wildner.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
23c97b9141SSascha Wildner.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24c97b9141SSascha Wildner.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
25c97b9141SSascha Wildner.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26c97b9141SSascha Wildner.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27c97b9141SSascha Wildner.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28c97b9141SSascha Wildner.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
29c97b9141SSascha Wildner.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30c97b9141SSascha Wildner.\" SUCH DAMAGE.
31c97b9141SSascha Wildner.\"
32*b0eef83fSJohn Marino.Dd July 9, 2012
33c97b9141SSascha Wildner.Dt COMPILERS.CONF 5
34fb5b3747SSascha Wildner.Os
35c97b9141SSascha Wildner.Sh NAME
36c97b9141SSascha Wildner.Nm compilers.conf
37c97b9141SSascha Wildner.Nd configuration file for external compilers
38c97b9141SSascha Wildner.Sh SYNOPSIS
39c97b9141SSascha Wildner.Pa /etc/compilers.conf
40c97b9141SSascha Wildner.Sh DESCRIPTION
41c97b9141SSascha WildnerThe
42c97b9141SSascha Wildner.Nm
43c97b9141SSascha Wildnerfile allows to configure
44c97b9141SSascha Wildner.Dq external
45c97b9141SSascha Wildnercompilers for usage with the
46c97b9141SSascha Wildner.Dx
47c97b9141SSascha Wildner.Xr build 7
48c97b9141SSascha Wildnersystem.
49c97b9141SSascha Wildner.Pp
50c97b9141SSascha WildnerThe
51c97b9141SSascha Wildner.Pa /etc/defaults/compilers.conf
52c97b9141SSascha Wildnerfile specifies the default settings for all variables, the
53c97b9141SSascha Wildner.Pa /etc/compilers.conf
54c97b9141SSascha Wildnerfile specifies override settings.
55c97b9141SSascha Wildner.Pp
56c97b9141SSascha WildnerThe following variables are available:
57c97b9141SSascha Wildner.Bl -tag -width ".Va <version>_CPPFLAGS"
58c97b9141SSascha Wildner.It Va <version>_CC
59c97b9141SSascha WildnerThe pathname of the
60c97b9141SSascha Wildner.Nm cc
61c97b9141SSascha Wildnerprogram of the compiler.
62c97b9141SSascha Wildner.It Va <version>_CFLAGS
63c97b9141SSascha WildnerAny additional flags to pass to
64c97b9141SSascha Wildner.Va <version>_CC .
65c97b9141SSascha Wildner.It Va <version>_CPP
66c97b9141SSascha WildnerThe pathname of the
67c97b9141SSascha Wildner.Nm cpp
68c97b9141SSascha Wildnerprogram of the compiler.
69c97b9141SSascha Wildner.It Va <version>_CPPFLAGS
70c97b9141SSascha WildnerAny additional flags to pass to
71c97b9141SSascha Wildner.Va <version>_CPP .
72c97b9141SSascha Wildner.It Va <version>_CXX
73c97b9141SSascha WildnerThe pathname of the
74c97b9141SSascha Wildner.Nm c++
75c97b9141SSascha Wildnerprogram of the compiler.
76c97b9141SSascha Wildner.It Va <version>_CXXFLAGS
77c97b9141SSascha WildnerAny additional flags to pass to
78c97b9141SSascha Wildner.Va <version>_CXX .
79c97b9141SSascha Wildner.It Va <version>_VERSION
80c97b9141SSascha WildnerWhat to output when the
81c97b9141SSascha Wildner.Fl dumpversion
82c97b9141SSascha Wildneroption is used.
83c97b9141SSascha WildnerThis helps
84c97b9141SSascha Wildner.Nm clang
85c97b9141SSascha Wildnerwith
86c97b9141SSascha Wildner.Xr pkgsrc 7 .
87c97b9141SSascha Wildner.El
88c97b9141SSascha Wildner.Pp
89c97b9141SSascha WildnerOnce configured the compiler can then be used like this:
90c97b9141SSascha Wildner.Bd -literal -offset indent
911c4f2fa4SSascha Wildnerenv CCVER=clang make
921c4f2fa4SSascha Wildner.Ed
931c4f2fa4SSascha Wildner.Pp
941c4f2fa4SSascha WildnerTo build world and kernel, use the following instructions:
951c4f2fa4SSascha Wildner.Bd -literal -offset indent
96c97b9141SSascha Wildnercd /usr/src
971c4f2fa4SSascha Wildnerfetch http://leaf.dragonflybsd.org/~swildner/world_clang.diff
981c4f2fa4SSascha Wildnerpatch -p1 <world_clang.diff
991c4f2fa4SSascha Wildnerenv WORLD_CCVER=clang make -DNO_GCC44 buildworld
1001c4f2fa4SSascha Wildnerenv WORLD_CCVER=clang make buildkernel KERNCONF=MYCONF
101c97b9141SSascha Wildner.Ed
102c97b9141SSascha Wildner.Pp
103cfe16058SSascha WildnerCurrently, defaults are provided for
104c97b9141SSascha Wildner.Nm clang
105cc9ebe4dSSascha Wildner(installed from
106cc9ebe4dSSascha Wildner.Xr pkgsrc 7 Ap s
107127a3eb4SSascha Wildner.Pa lang/clang ) ,
1081c4f2fa4SSascha Wildner.Nm clangsvn
1091c4f2fa4SSascha Wildner(installed from SVN trunk as described in
1106673f254SSascha Wildner.Pa http://clang.llvm.org/get_started.html ) ,
111127a3eb4SSascha Wildner.Nm gcc46
112127a3eb4SSascha Wildner(installed from
113127a3eb4SSascha Wildner.Xr pkgsrc 7 Ap s
114*b0eef83fSJohn Marino.Pa lang/gnat-aux ) ,
115*b0eef83fSJohn Marino.Nm gcc47
116*b0eef83fSJohn Marino(installed from
117*b0eef83fSJohn Marino.Xr pkgsrc 7 Ap s
118*b0eef83fSJohn Marino.Pa lang/gcc-aux )
1196673f254SSascha Wildnerand
1206673f254SSascha Wildner.Nm pcc
1216673f254SSascha Wildner(installed from
1226673f254SSascha Wildner.Xr pkgsrc 7 Ap s
1236673f254SSascha Wildner.Pa lang/pcc-current ) .
1241237441aSSascha Wildner.Sh IMPLEMENTATION NOTES
1251237441aSSascha WildnerIn
1261237441aSSascha Wildner.Dx ,
1271237441aSSascha Wildnercompilers are selected by setting the
1281237441aSSascha Wildner.Ev CCVER
1291237441aSSascha Wildnervariable.
1301237441aSSascha WildnerThe
131cc9ebe4dSSascha Wildner.Pa cpp ,
132cc9ebe4dSSascha Wildner.Pa cc
133cc9ebe4dSSascha Wildneretc\&. programs in
134cc9ebe4dSSascha Wildner.Pa /usr/bin
135cc9ebe4dSSascha Wildnerare actually links to the
1361237441aSSascha Wildner.Xr objformat 1
137cc9ebe4dSSascha Wildnerdeflector program which is responsible for executing the
138cc9ebe4dSSascha Wildnercorrect programs (located in
139cc9ebe4dSSascha Wildner.Pa /usr/libexec/$CCVER ) .
140cc9ebe4dSSascha Wildner.Pp
1411237441aSSascha WildnerTraditionally,
1421237441aSSascha Wildner.Dx
1431237441aSSascha Wildnerhas 2 compilers in base, one of which is the default compiler and the other
1441237441aSSascha Wildneris either a newer or older version.
1451237441aSSascha WildnerIn order to allow additional non-base compilers into
1461237441aSSascha Wildner.Dx Ap s
1471237441aSSascha Wildnerbuild process,
1481237441aSSascha Wildner.Xr objformat 1
1491237441aSSascha Wildnerdeflects to
1501237441aSSascha Wildner.Pa /usr/libexec/custom
1511237441aSSascha Wildnerwhen
1521237441aSSascha Wildner.Ev CCVER Ap s
1531237441aSSascha Wildnersetting is not one of the compilers in base.
1541237441aSSascha WildnerThis directory contains a
1551237441aSSascha Wildner.Pa cc
1561237441aSSascha Wildnerwrapper script (and some links to it).
1571237441aSSascha WildnerThe wrapper script then takes care of making the compiler look and behave
1581237441aSSascha Wildnerlike a compiler in base.
1591237441aSSascha Wildner.Pp
1601237441aSSascha WildnerThe settings in
1611237441aSSascha Wildner.Nm
1621237441aSSascha Wildnerspecify paths and flags for the
1631237441aSSascha Wildner.Pa /usr/libexec/custom/cc
1641237441aSSascha Wildnerscript.
165c97b9141SSascha Wildner.Sh FILES
166c97b9141SSascha Wildner.Bl -tag -width ".Pa /etc/compilers.conf" -compact
167c97b9141SSascha Wildner.It Pa /etc/compilers.conf
168c97b9141SSascha Wildnerexternal compiler configuration file
169c97b9141SSascha Wildner.El
170c97b9141SSascha Wildner.Sh SEE ALSO
171c97b9141SSascha Wildner.Xr objformat 1 ,
172c97b9141SSascha Wildner.Xr build 7
173c97b9141SSascha Wildner.Sh HISTORY
174c97b9141SSascha WildnerThe
175c97b9141SSascha Wildner.Nm
176c97b9141SSascha Wildnerfile first appeared in
177c97b9141SSascha Wildner.Dx 2.3 .
178