glfs/general/prog/other-tools.xml
Randy McMurchy 79630ddd68 Fixed typo in Other Programming Tools text, suggested by Miguel Bazdresch
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@4942 af4574ff-66df-0310-9fd7-8a98e5e911e0
2005-08-16 06:19:30 +00:00

541 lines
20 KiB
XML

<?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 a clone of
<application>ccache</application>, with the goal of supporting
compilers other 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>