1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
3 <!ENTITY % general-entities SYSTEM "../general.ent">
6 <sect1 id="ch-tools-creatingtoolsdir">
7 <title>Creating the $LFS/tools directory</title>
8 <?dbhtml filename="creatingtoolsdir.html"?>
10 <para>All programs compiled in this chapter will be installed under <filename
11 class="directory">$LFS/tools</filename> to keep them separate from the
12 programs compiled in the next chapter. The programs compiled here are only
13 temporary tools and won't be a part of the final LFS system and by keeping them
14 in a separate directory, we can later easily throw them away. This also
15 helps prevent them from ending up in your host's production directories
16 (easy to do in Chapter 5), which could be a very bad thing.</para>
18 <para>Later on you might wish to search through the binaries of your system to
19 see what files they make use of or link against. To make this searching easier
20 you may want to choose a unique name for the directory in which the temporary
21 tools are stored. Instead of the simple <quote>tools</quote> you could use
22 something like <quote>tools-for-lfs</quote>. However, you'll need to be careful
23 to adjust all references to <quote>tools</quote> throughout the book --
24 including those in any patches, notably the GCC Specs Patch.</para>
26 <para>Create the required directory by running the following:</para>
28 <screen><userinput>mkdir $LFS/tools</userinput></screen>
30 <para>The next step is to create a <filename>/tools</filename> symlink on
31 your <emphasis>host</emphasis> system. It will point to the directory we just created on the LFS
34 <screen><userinput>ln -s $LFS/tools /</userinput></screen>
36 <note><para>The above command is correct. The <command>ln</command> command
37 has a few syntactic variations, so be sure to check the info page before
38 reporting what you may think is an error.</para></note>
40 <para>The created symlink enables us to compile our toolchain so that it always
41 refers to <filename>/tools</filename>, meaning that the compiler, assembler
42 and linker will work both in this chapter (when we are still using some tools
43 from the host) <emphasis>and</emphasis> in the next (when we are <quote>chrooted</quote> to
44 the LFS partition).</para>