Added a new section 'Other Programming Tools' to Chapter 12 - Programming

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@4909 af4574ff-66df-0310-9fd7-8a98e5e911e0
This commit is contained in:
Randy McMurchy 2005-08-11 06:02:20 +00:00
parent b8c6324923
commit 9620b28583
5 changed files with 556 additions and 8 deletions

View File

@ -1,4 +1,4 @@
<!ENTITY day "10"> <!ENTITY day "11">
<!ENTITY month "08"> <!ENTITY month "08">
<!ENTITY year "2005"> <!ENTITY year "2005">
<!ENTITY version "svn-&year;&month;&day;"> <!ENTITY version "svn-&year;&month;&day;">

View File

@ -0,0 +1,540 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
]>
<sect1 id="other-tools" xreflabel="Other Programming Tools">
<?dbhtml filename="other-tools.html"?>
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<title>Other Programming Tools</title>
<indexterm zone="other-tools">
<primary sortas="a-Other-Programming-Tools">Other Programming Tools</primary>
</indexterm>
<sect2 role="introduction">
<title>Introduction</title>
<para>This section is provided to show you some additional programming
tools for which instructions have not yet been created in the book or for
those that are not appropriate for the book. Note that these packages may
not have been tested by the BLFS team, but their mention here is meant to
be a convenient source of additional information.</para>
<sect3 role="package">
<title>Boost</title>
<para><application>Boost</application> provides free peer-reviewed
portable C++ source libraries. The emphasis is on libraries which work
well with the C++ Standard Library. The libraries are intended to be
widely useful, and are in regular use by thousands of programmers across
a broad spectrum of applications, platforms and programming
environments.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://www.boost.org/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://prdownloads.sourceforge.net/boost/"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>DDD (GNU Data Display Debugger)</title>
<para><application>GNU DDD</application> is a graphical front-end for
command-line debuggers such as <application>GDB</application>,
<application>DBX</application>, <application>WDB</application>,
<application>Ladebug</application>, <application>JDB</application>,
<application>XDB</application>, the <application>Perl</application>
debugger, the <application>Bash</application> debugger, or the
<application>Python</application> debugger. Besides <quote>usual</quote>
front-end features such as viewing source texts,
<application>DDD</application> has an interactive graphical data display,
where data structures are displayed as graphs..</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://www.gnu.org/software/ddd/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://ftp.gnu.org/gnu/ddd/"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>cachecc1</title>
<para><application>cachecc1</application> is a
<application>GCC</application> cache. It can be compared with the well
known <application>ccache</application> package. It has some unique
features including the use of an LD_PRELOADed shared object to catch
invocations to <command>cc1</command>, <command>cc1plus</command> and
<command>as</command>, it transparently supports all build methods, it
can cache <application>GCC</application> bootstraps and it can be
combined with <application>distcc</application> to transparently
distribute compilations.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://cachecc1.sourceforge.net/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://prdownloads.sourceforge.net/cachecc1"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>ccache</title>
<para><application>ccache</application> is a compiler cache. It acts as
a caching pre-processor to C/C++ compilers, using the <option>-E</option>
compiler switch and a hash to detect when a compilation can be satisfied
from cache. This often results in 5 to 10 times faster speeds in common
compilations.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://ccache.samba.org/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://ccache.samba.org/ftp/ccache/"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>distcc</title>
<para><application>distcc</application> is a program to distribute builds
of C, C++, Objective C or Objective C++ code across several machines on a
network. <application>distcc</application> should always generate the
same results as a local build, is simple to install and use, and is
usually much faster than a local compile.
<application>distcc</application> does not require all machines to share
a filesystem, have synchronized clocks, or to have the same libraries or
header files installed. They can even have different processors or
operating systems, if cross-compilers are installed.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://distcc.samba.org/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://distcc.samba.org/download.html"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>Euphoria</title>
<para><application>Euphoria</application> is a simple, flexible, and
easy-to-learn programming language. It lets you quickly and easily
develop programs for Windows, DOS, Linux and FreeBSD. Euphoria was first
released in 1993. Since then Rapid Deployment Software has been steadily
improving it with the help of a growing number of enthusiastic users.
Although <application>Euphoria</application> provides subscript checking,
uninitialized variable checking and numerous other run-time checks, it is
extremely fast. People have used it to develop high-speed DOS games,
Windows GUI programs, and Linux X Windows programs. It is also very
useful for CGI (Web-based) programming.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://www.rapideuphoria.com/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://www.rapideuphoria.com/v20.htm"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>FFTW (Fastest Fourier Transform in the West)</title>
<para><application>FFTW</application> is a C subroutine library for
computing the discrete Fourier transform (DFT) in one or more dimensions,
of arbitrary input size, and of both real and complex data (as well as of
even/odd data, i.e., the discrete cosine/sine transforms or DCT/DST).</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://www.fftw.org/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://www.fftw.org/download.html"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>GDB (GNU Debugger)</title>
<para><application>GDB</application> is the GNU Project debugger. It
allows you to see what is going on <quote>inside</quote> another program
while it executes. It also allows you to see what another program was
doing at the moment it crashed.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://www.gnu.org/software/gdb/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="ftp://ftp.gnu.org/gnu/gdb/"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>GOB (GObject Builder)</title>
<para><application>GOB</application> (<application>GOB2</application>
anyway) is a preprocessor for making GObjects with inline C code so that
generated files are not edited. Syntax is inspired by
<application>Java</application> and <application>Yacc</application> or
<application>Lex</application>. The implementation is intentionally kept
simple, and no C actual code parsing is done.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://www.5z.com/jirka/gob.html"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://ftp.5z.com/pub/gob/"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>gocache (GNU Object Cache)</title>
<para><application>ccache</application> is clone of
<application>ccache</application>, with the goal of supporting other
compilers than <application>GCC</application> and adding additional
features. Embedded compilers will especially be in focus.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://sourceforge.net/projects/gocache/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://prdownloads.sourceforge.net/gocache/"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>GTK+/GNOME Language Bindings (wrappers)</title>
<para><application>GTK+</application>/<application>GNOME</application>
language bindings allow <application>GTK+</application> to be used from
other programming languages, in the style of those languages.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://www.gtk.org/bindings.html"/></para>
</listitem>
</itemizedlist>
<sect4 role="package">
<title>gtkmm</title>
<para><application>gtkmm</application> is the official C++ interface
for the popular GUI library <application>GTK+</application>. Highlights
include typesafe callbacks, widgets extensible via inheritance and a
comprehensive set of widgets. You can create user interfaces either in
code or with the Glade designer, using
<application>libglademm</application>.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://www.gtkmm.org/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://www.gtkmm.org/download.shtml"/></para>
</listitem>
</itemizedlist>
</sect4>
<sect4 role="package">
<title>Java-GNOME</title>
<para><application>Java-GNOME</application> is a set of Java bindings
for the <application>GNOME</application> and
<application>GTK+</application> libraries that allow
<application>GNOME</application> and <application>GTK+</application>
applications to be written in Java. The
<application>Java-GNOME</application> API has been carefully designed
to be easy to use, maintaining a good OO paradigm, yet still wrapping
the entire functionality of the underlying libraries.
<application>Java-GNOME</application> can be used with the
<application>Eclipse</application> development environment and Glade
user interface designer to create applications with ease.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://java-gnome.sourceforge.net/cgi-bin/bin/view"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://java-gnome.sourceforge.net/cgi-bin/bin/view/Main/GetJavaGnome#Source_Code"/></para>
</listitem>
</itemizedlist>
</sect4>
<sect4 role="package">
<title>gtk2-perl</title>
<para><application>gtk2-perl</application> is the collective name for
a set of perl bindings for <application>GTK+</application> 2.x and
various related libraries. These modules make it easy to write
<application>GTK</application> and <application>GNOME</application>
applications using a natural, perlish, object-oriented syntax.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://gtk2-perl.sourceforge.net/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://prdownloads.sourceforge.net/gtk2-perl"/></para>
</listitem>
</itemizedlist>
</sect4>
<sect4 role="package">
<title>PyGTK</title>
<para><application>PyGTK</application> provides a convenient wrapper
for the <application>GTK</application> library for use in
<application>Python</application> programs, and takes care of many of
the boring details such as managing memory and type casting. When
combined with <application>PyORBit</application> and
<application>gnome-python</application>, it can be used to write full
featured <application>GNOME</application> applications.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://www.pygtk.org/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://www.pygtk.org/downloads.html"/></para>
</listitem>
</itemizedlist>
</sect4>
</sect3>
<sect3 role="package">
<title>KDE Language Bindings</title>
<para><application>KDE</application> and most
<application>KDE</application> applications are implemented using the
C++ programming language, however there are number of bindings to other
languages are available. These include scripting languages like
<application>Perl</application>, <application>Python</application> and
<application>Ruby</application>, and systems programming languages such
as Java and C#.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://developer.kde.org/language-bindings/"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>Numerical Python (Numpy)</title>
<para><application>Numerical Python</application> adds a fast array
facility to the <application>Python</application> language.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://numeric.scipy.org/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://prdownloads.sourceforge.net/numpy/"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>Perl Scripts and Additional Modules</title>
<para>There are many <application>Perl</application> scripts and
additional modules located on the Comprehensive Perl Archive Network
(CPAN) web site. Here you will find <quote>All Things Perl</quote>.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://cpan.org/"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>SCons</title>
<para><application>SCons</application> is an Open Source software
construction tool, i.e, a next-generation build tool. Think of
<application>SCons</application> as an improved, cross-platform
substitute for the classic <command>make</command> utility with
integrated functionality similar to
<application>Autoconf</application>/<application>Automake</application>
and compiler caches such as <command>ccache</command>.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://scons.sourceforge.net/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://prdownloads.sourceforge.net/scons/"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>strace</title>
<para><application>strace</application> is a system call tracer, i.e., a
debugging tool which prints out a trace of all the system calls made by
another process or program.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://www.liacs.nl/~wichert/strace/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://prdownloads.sourceforge.net/strace/"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>SWIG</title>
<para><application>SWIG</application> is a software development tool
that connects programs written in C and C++ with a variety of high-level
programming languages. <application>SWIG</application> is used with
different types of languages including common scripting languages such as
<application>Perl</application>, <application>Python</application>,
<application>Tcl</application>/<application>Tk</application> and
<application>Ruby</application>. The list of supported languages also
includes non-scripting languages such as <application>C#</application>,
<application>Common Lisp</application> (Allegro CL),
<application>Java</application>, <application>Modula-3</application>
and <application>OCAML</application>. Also several interpreted and
compiled Scheme implementations (<application>Chicken</application>,
<application>Guile</application>, <application>MzScheme</application>)
are supported. <application>SWIG</application> is most commonly used to
create high-level interpreted or compiled programming environments, user
interfaces, and as a tool for testing and prototyping C/C++ software.
<application>SWIG</application> can also export its parse tree in the
form of XML and Lisp s-expressions.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://www.swig.org/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://prdownloads.sourceforge.net/swig/"/></para>
</listitem>
</itemizedlist>
</sect3>
<sect3 role="package">
<title>Valgrind</title>
<para><application>Valgrind</application> is a collection of five tools:
two memory error detectors, a thread error detector, a cache profiler and
a heap profiler used for debugging and profiling Linux programs. Features
include automatic detection of many memory management and threading bugs
as well as detailed profiling to speed up and reduce memory use of your
programs.</para>
<itemizedlist spacing="compact">
<listitem>
<para>Project Home Page: <ulink
url="http://valgrind.org/"/></para>
</listitem>
<listitem>
<para>Download Location: <ulink
url="http://valgrind.org/downloads/source_code.html"/></para>
</listitem>
</itemizedlist>
</sect3>
</sect2>
</sect1>

View File

@ -33,5 +33,6 @@
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="ruby.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="ruby.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="tcl.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="tcl.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="tk.xml"/> <xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="tk.xml"/>
<xi:include xmlns:xi="http://www.w3.org/2003/XInclude" href="other-tools.xml"/>
</chapter> </chapter>

View File

@ -24,6 +24,11 @@
<itemizedlist> <itemizedlist>
<listitem>
<para>August 11th, 2005 [randy]: Added a new section "Other Programming
Tools" to Chapter 12 - Programming.</para>
</listitem>
<listitem> <listitem>
<para>August 10th, 2005 [randy]: Added style information files and <para>August 10th, 2005 [randy]: Added style information files and
documentation installation to the JadeTeX instructions.</para> documentation installation to the JadeTeX instructions.</para>

View File

@ -34,7 +34,7 @@
</listitem> </listitem>
<listitem> <listitem>
<para><emphasis>Co-Editors:</emphasis> Randy McMurchy, <para><emphasis>Co-Editors:</emphasis> Randy McMurchy,
Larry Lawrence, Igor Zivkovic, DJ Lucas, Tushar Teredesai, David Jensen, Larry Lawrence, Igor Zivkovic, DJ Lucas, Tushar Teredesai, David Jensen,
Manuel Canales Esparcia, and Richard Downing.</para> Manuel Canales Esparcia, and Richard Downing.</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
@ -221,9 +221,10 @@
gnome-audio, gnome-backgrounds, gnome-menus, GNOME Doc Utils, GnuCash gnome-audio, gnome-backgrounds, gnome-menus, GNOME Doc Utils, GnuCash
(many additions), Heimdal, HTML Tidy, JadeTeX, Java Access Bridge, (many additions), Heimdal, HTML Tidy, JadeTeX, Java Access Bridge,
LessTif (rewrite), libexif, libgail-gnome, libgnomecups, MPlayer LessTif (rewrite), libexif, libgail-gnome, libgnomecups, MPlayer
(extensive overhaul), PDL, Perl Modules, pilot-link, Samba 3 (many (extensive overhaul), Other Programming Tools, PDL, Perl Modules,
additions), Shadow (rewrite), SANE (original instructions by Alex pilot-link, Samba 3 (many additions), Shadow (rewrite), SANE (original
Kloss), SLIB, Stunnel, Sysstat and system-tools-backends: instructions by Alex Kloss), SLIB, Stunnel, Sysstat and
system-tools-backends:
<emphasis>Randy McMurchy</emphasis></para> <emphasis>Randy McMurchy</emphasis></para>
</listitem> </listitem>
@ -256,9 +257,10 @@
<para>Epiphany, FLAC, File Roller, GNOME Magnifier, <para>Epiphany, FLAC, File Roller, GNOME Magnifier,
GNOME Netstatus, GNOME Speech, GOK, GPdf, GnomeMeeting, Gnopernicus, GNOME Netstatus, GNOME Speech, GOK, GPdf, GnomeMeeting, Gnopernicus,
Imlib2, LZO, MC, NASM, Nautilus CD Burner, OpenQuicktime, Imlib2, LZO, MC, NASM, Nautilus CD Burner, OpenQuicktime,
Speex, XScreenSaver, Zenity, compface, freeglut, gcalctool, gucharmap, id3lib, kde-i18n, Speex, XScreenSaver, Zenity, compface, freeglut, gcalctool, gucharmap,
kdeaccessibility, kdebindings, kdesdk, kdevelop, kdewebdev, libFAME, id3lib, kde-i18n, kdeaccessibility, kdebindings, kdesdk, kdevelop,
liba52, libdv, libdvdcss, libdvdread, libmad, libmikmod and libmpeg3: kdewebdev, libFAME, liba52, libdv, libdvdcss, libdvdread, libmad,
libmikmod and libmpeg3:
<emphasis>Igor Zivkovic</emphasis></para> <emphasis>Igor Zivkovic</emphasis></para>
</listitem> </listitem>