source: general/prog/other-tools.xml@ 9620b28

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 6.2 6.2.0 6.2.0-rc1 6.2.0-rc2 6.3 6.3-rc1 6.3-rc2 6.3-rc3 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since 9620b28 was 9620b28, checked in by Randy McMurchy <randy@…>, 19 years ago

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

  • Property mode set to 100644
File size: 19.9 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3 "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="other-tools" xreflabel="Other Programming Tools">
9 <?dbhtml filename="other-tools.html"?>
10
11 <sect1info>
12 <othername>$LastChangedBy$</othername>
13 <date>$Date$</date>
14 </sect1info>
15
16 <title>Other Programming Tools</title>
17
18 <indexterm zone="other-tools">
19 <primary sortas="a-Other-Programming-Tools">Other Programming Tools</primary>
20 </indexterm>
21
22 <sect2 role="introduction">
23 <title>Introduction</title>
24
25 <para>This section is provided to show you some additional programming
26 tools for which instructions have not yet been created in the book or for
27 those that are not appropriate for the book. Note that these packages may
28 not have been tested by the BLFS team, but their mention here is meant to
29 be a convenient source of additional information.</para>
30
31 <sect3 role="package">
32 <title>Boost</title>
33
34 <para><application>Boost</application> provides free peer-reviewed
35 portable C++ source libraries. The emphasis is on libraries which work
36 well with the C++ Standard Library. The libraries are intended to be
37 widely useful, and are in regular use by thousands of programmers across
38 a broad spectrum of applications, platforms and programming
39 environments.</para>
40
41 <itemizedlist spacing="compact">
42 <listitem>
43 <para>Project Home Page: <ulink
44 url="http://www.boost.org/"/></para>
45 </listitem>
46 <listitem>
47 <para>Download Location: <ulink
48 url="http://prdownloads.sourceforge.net/boost/"/></para>
49 </listitem>
50 </itemizedlist>
51
52 </sect3>
53
54 <sect3 role="package">
55 <title>DDD (GNU Data Display Debugger)</title>
56
57 <para><application>GNU DDD</application> is a graphical front-end for
58 command-line debuggers such as <application>GDB</application>,
59 <application>DBX</application>, <application>WDB</application>,
60 <application>Ladebug</application>, <application>JDB</application>,
61 <application>XDB</application>, the <application>Perl</application>
62 debugger, the <application>Bash</application> debugger, or the
63 <application>Python</application> debugger. Besides <quote>usual</quote>
64 front-end features such as viewing source texts,
65 <application>DDD</application> has an interactive graphical data display,
66 where data structures are displayed as graphs..</para>
67
68 <itemizedlist spacing="compact">
69 <listitem>
70 <para>Project Home Page: <ulink
71 url="http://www.gnu.org/software/ddd/"/></para>
72 </listitem>
73 <listitem>
74 <para>Download Location: <ulink
75 url="http://ftp.gnu.org/gnu/ddd/"/></para>
76 </listitem>
77 </itemizedlist>
78
79 </sect3>
80
81 <sect3 role="package">
82 <title>cachecc1</title>
83
84 <para><application>cachecc1</application> is a
85 <application>GCC</application> cache. It can be compared with the well
86 known <application>ccache</application> package. It has some unique
87 features including the use of an LD_PRELOADed shared object to catch
88 invocations to <command>cc1</command>, <command>cc1plus</command> and
89 <command>as</command>, it transparently supports all build methods, it
90 can cache <application>GCC</application> bootstraps and it can be
91 combined with <application>distcc</application> to transparently
92 distribute compilations.</para>
93
94 <itemizedlist spacing="compact">
95 <listitem>
96 <para>Project Home Page: <ulink
97 url="http://cachecc1.sourceforge.net/"/></para>
98 </listitem>
99 <listitem>
100 <para>Download Location: <ulink
101 url="http://prdownloads.sourceforge.net/cachecc1"/></para>
102 </listitem>
103 </itemizedlist>
104
105 </sect3>
106
107 <sect3 role="package">
108 <title>ccache</title>
109
110 <para><application>ccache</application> is a compiler cache. It acts as
111 a caching pre-processor to C/C++ compilers, using the <option>-E</option>
112 compiler switch and a hash to detect when a compilation can be satisfied
113 from cache. This often results in 5 to 10 times faster speeds in common
114 compilations.</para>
115
116 <itemizedlist spacing="compact">
117 <listitem>
118 <para>Project Home Page: <ulink
119 url="http://ccache.samba.org/"/></para>
120 </listitem>
121 <listitem>
122 <para>Download Location: <ulink
123 url="http://ccache.samba.org/ftp/ccache/"/></para>
124 </listitem>
125 </itemizedlist>
126
127 </sect3>
128
129 <sect3 role="package">
130 <title>distcc</title>
131
132 <para><application>distcc</application> is a program to distribute builds
133 of C, C++, Objective C or Objective C++ code across several machines on a
134 network. <application>distcc</application> should always generate the
135 same results as a local build, is simple to install and use, and is
136 usually much faster than a local compile.
137 <application>distcc</application> does not require all machines to share
138 a filesystem, have synchronized clocks, or to have the same libraries or
139 header files installed. They can even have different processors or
140 operating systems, if cross-compilers are installed.</para>
141
142 <itemizedlist spacing="compact">
143 <listitem>
144 <para>Project Home Page: <ulink
145 url="http://distcc.samba.org/"/></para>
146 </listitem>
147 <listitem>
148 <para>Download Location: <ulink
149 url="http://distcc.samba.org/download.html"/></para>
150 </listitem>
151 </itemizedlist>
152
153 </sect3>
154
155 <sect3 role="package">
156 <title>Euphoria</title>
157
158 <para><application>Euphoria</application> is a simple, flexible, and
159 easy-to-learn programming language. It lets you quickly and easily
160 develop programs for Windows, DOS, Linux and FreeBSD. Euphoria was first
161 released in 1993. Since then Rapid Deployment Software has been steadily
162 improving it with the help of a growing number of enthusiastic users.
163 Although <application>Euphoria</application> provides subscript checking,
164 uninitialized variable checking and numerous other run-time checks, it is
165 extremely fast. People have used it to develop high-speed DOS games,
166 Windows GUI programs, and Linux X Windows programs. It is also very
167 useful for CGI (Web-based) programming.</para>
168
169 <itemizedlist spacing="compact">
170 <listitem>
171 <para>Project Home Page: <ulink
172 url="http://www.rapideuphoria.com/"/></para>
173 </listitem>
174 <listitem>
175 <para>Download Location: <ulink
176 url="http://www.rapideuphoria.com/v20.htm"/></para>
177 </listitem>
178 </itemizedlist>
179
180 </sect3>
181
182 <sect3 role="package">
183 <title>FFTW (Fastest Fourier Transform in the West)</title>
184
185 <para><application>FFTW</application> is a C subroutine library for
186 computing the discrete Fourier transform (DFT) in one or more dimensions,
187 of arbitrary input size, and of both real and complex data (as well as of
188 even/odd data, i.e., the discrete cosine/sine transforms or DCT/DST).</para>
189
190 <itemizedlist spacing="compact">
191 <listitem>
192 <para>Project Home Page: <ulink
193 url="http://www.fftw.org/"/></para>
194 </listitem>
195 <listitem>
196 <para>Download Location: <ulink
197 url="http://www.fftw.org/download.html"/></para>
198 </listitem>
199 </itemizedlist>
200
201 </sect3>
202
203 <sect3 role="package">
204 <title>GDB (GNU Debugger)</title>
205
206 <para><application>GDB</application> is the GNU Project debugger. It
207 allows you to see what is going on <quote>inside</quote> another program
208 while it executes. It also allows you to see what another program was
209 doing at the moment it crashed.</para>
210
211 <itemizedlist spacing="compact">
212 <listitem>
213 <para>Project Home Page: <ulink
214 url="http://www.gnu.org/software/gdb/"/></para>
215 </listitem>
216 <listitem>
217 <para>Download Location: <ulink
218 url="ftp://ftp.gnu.org/gnu/gdb/"/></para>
219 </listitem>
220 </itemizedlist>
221
222 </sect3>
223
224 <sect3 role="package">
225 <title>GOB (GObject Builder)</title>
226
227 <para><application>GOB</application> (<application>GOB2</application>
228 anyway) is a preprocessor for making GObjects with inline C code so that
229 generated files are not edited. Syntax is inspired by
230 <application>Java</application> and <application>Yacc</application> or
231 <application>Lex</application>. The implementation is intentionally kept
232 simple, and no C actual code parsing is done.</para>
233
234 <itemizedlist spacing="compact">
235 <listitem>
236 <para>Project Home Page: <ulink
237 url="http://www.5z.com/jirka/gob.html"/></para>
238 </listitem>
239 <listitem>
240 <para>Download Location: <ulink
241 url="http://ftp.5z.com/pub/gob/"/></para>
242 </listitem>
243 </itemizedlist>
244
245 </sect3>
246
247 <sect3 role="package">
248 <title>gocache (GNU Object Cache)</title>
249
250 <para><application>ccache</application> is clone of
251 <application>ccache</application>, with the goal of supporting other
252 compilers than <application>GCC</application> and adding additional
253 features. Embedded compilers will especially be in focus.</para>
254
255 <itemizedlist spacing="compact">
256 <listitem>
257 <para>Project Home Page: <ulink
258 url="http://sourceforge.net/projects/gocache/"/></para>
259 </listitem>
260 <listitem>
261 <para>Download Location: <ulink
262 url="http://prdownloads.sourceforge.net/gocache/"/></para>
263 </listitem>
264 </itemizedlist>
265
266 </sect3>
267
268 <sect3 role="package">
269 <title>GTK+/GNOME Language Bindings (wrappers)</title>
270
271 <para><application>GTK+</application>/<application>GNOME</application>
272 language bindings allow <application>GTK+</application> to be used from
273 other programming languages, in the style of those languages.</para>
274
275 <itemizedlist spacing="compact">
276 <listitem>
277 <para>Project Home Page: <ulink
278 url="http://www.gtk.org/bindings.html"/></para>
279 </listitem>
280 </itemizedlist>
281
282 <sect4 role="package">
283 <title>gtkmm</title>
284
285 <para><application>gtkmm</application> is the official C++ interface
286 for the popular GUI library <application>GTK+</application>. Highlights
287 include typesafe callbacks, widgets extensible via inheritance and a
288 comprehensive set of widgets. You can create user interfaces either in
289 code or with the Glade designer, using
290 <application>libglademm</application>.</para>
291
292 <itemizedlist spacing="compact">
293 <listitem>
294 <para>Project Home Page: <ulink
295 url="http://www.gtkmm.org/"/></para>
296 </listitem>
297 <listitem>
298 <para>Download Location: <ulink
299 url="http://www.gtkmm.org/download.shtml"/></para>
300 </listitem>
301 </itemizedlist>
302
303 </sect4>
304
305 <sect4 role="package">
306 <title>Java-GNOME</title>
307
308 <para><application>Java-GNOME</application> is a set of Java bindings
309 for the <application>GNOME</application> and
310 <application>GTK+</application> libraries that allow
311 <application>GNOME</application> and <application>GTK+</application>
312 applications to be written in Java. The
313 <application>Java-GNOME</application> API has been carefully designed
314 to be easy to use, maintaining a good OO paradigm, yet still wrapping
315 the entire functionality of the underlying libraries.
316 <application>Java-GNOME</application> can be used with the
317 <application>Eclipse</application> development environment and Glade
318 user interface designer to create applications with ease.</para>
319
320 <itemizedlist spacing="compact">
321 <listitem>
322 <para>Project Home Page: <ulink
323 url="http://java-gnome.sourceforge.net/cgi-bin/bin/view"/></para>
324 </listitem>
325 <listitem>
326 <para>Download Location: <ulink
327 url="http://java-gnome.sourceforge.net/cgi-bin/bin/view/Main/GetJavaGnome#Source_Code"/></para>
328 </listitem>
329 </itemizedlist>
330
331 </sect4>
332
333 <sect4 role="package">
334 <title>gtk2-perl</title>
335
336 <para><application>gtk2-perl</application> is the collective name for
337 a set of perl bindings for <application>GTK+</application> 2.x and
338 various related libraries. These modules make it easy to write
339 <application>GTK</application> and <application>GNOME</application>
340 applications using a natural, perlish, object-oriented syntax.</para>
341
342 <itemizedlist spacing="compact">
343 <listitem>
344 <para>Project Home Page: <ulink
345 url="http://gtk2-perl.sourceforge.net/"/></para>
346 </listitem>
347 <listitem>
348 <para>Download Location: <ulink
349 url="http://prdownloads.sourceforge.net/gtk2-perl"/></para>
350 </listitem>
351 </itemizedlist>
352
353 </sect4>
354
355 <sect4 role="package">
356 <title>PyGTK</title>
357
358 <para><application>PyGTK</application> provides a convenient wrapper
359 for the <application>GTK</application> library for use in
360 <application>Python</application> programs, and takes care of many of
361 the boring details such as managing memory and type casting. When
362 combined with <application>PyORBit</application> and
363 <application>gnome-python</application>, it can be used to write full
364 featured <application>GNOME</application> applications.</para>
365
366 <itemizedlist spacing="compact">
367 <listitem>
368 <para>Project Home Page: <ulink
369 url="http://www.pygtk.org/"/></para>
370 </listitem>
371 <listitem>
372 <para>Download Location: <ulink
373 url="http://www.pygtk.org/downloads.html"/></para>
374 </listitem>
375 </itemizedlist>
376
377 </sect4>
378
379 </sect3>
380
381 <sect3 role="package">
382 <title>KDE Language Bindings</title>
383
384 <para><application>KDE</application> and most
385 <application>KDE</application> applications are implemented using the
386 C++ programming language, however there are number of bindings to other
387 languages are available. These include scripting languages like
388 <application>Perl</application>, <application>Python</application> and
389 <application>Ruby</application>, and systems programming languages such
390 as Java and C#.</para>
391
392 <itemizedlist spacing="compact">
393 <listitem>
394 <para>Project Home Page: <ulink
395 url="http://developer.kde.org/language-bindings/"/></para>
396 </listitem>
397 </itemizedlist>
398
399 </sect3>
400
401 <sect3 role="package">
402 <title>Numerical Python (Numpy)</title>
403
404 <para><application>Numerical Python</application> adds a fast array
405 facility to the <application>Python</application> language.</para>
406
407 <itemizedlist spacing="compact">
408 <listitem>
409 <para>Project Home Page: <ulink
410 url="http://numeric.scipy.org/"/></para>
411 </listitem>
412 <listitem>
413 <para>Download Location: <ulink
414 url="http://prdownloads.sourceforge.net/numpy/"/></para>
415 </listitem>
416 </itemizedlist>
417
418 </sect3>
419
420 <sect3 role="package">
421 <title>Perl Scripts and Additional Modules</title>
422
423 <para>There are many <application>Perl</application> scripts and
424 additional modules located on the Comprehensive Perl Archive Network
425 (CPAN) web site. Here you will find <quote>All Things Perl</quote>.</para>
426
427 <itemizedlist spacing="compact">
428 <listitem>
429 <para>Project Home Page: <ulink
430 url="http://cpan.org/"/></para>
431 </listitem>
432 </itemizedlist>
433
434 </sect3>
435
436 <sect3 role="package">
437 <title>SCons</title>
438
439 <para><application>SCons</application> is an Open Source software
440 construction tool, i.e, a next-generation build tool. Think of
441 <application>SCons</application> as an improved, cross-platform
442 substitute for the classic <command>make</command> utility with
443 integrated functionality similar to
444 <application>Autoconf</application>/<application>Automake</application>
445 and compiler caches such as <command>ccache</command>.</para>
446
447 <itemizedlist spacing="compact">
448 <listitem>
449 <para>Project Home Page: <ulink
450 url="http://scons.sourceforge.net/"/></para>
451 </listitem>
452 <listitem>
453 <para>Download Location: <ulink
454 url="http://prdownloads.sourceforge.net/scons/"/></para>
455 </listitem>
456 </itemizedlist>
457
458 </sect3>
459
460 <sect3 role="package">
461 <title>strace</title>
462
463 <para><application>strace</application> is a system call tracer, i.e., a
464 debugging tool which prints out a trace of all the system calls made by
465 another process or program.</para>
466
467 <itemizedlist spacing="compact">
468 <listitem>
469 <para>Project Home Page: <ulink
470 url="http://www.liacs.nl/~wichert/strace/"/></para>
471 </listitem>
472 <listitem>
473 <para>Download Location: <ulink
474 url="http://prdownloads.sourceforge.net/strace/"/></para>
475 </listitem>
476 </itemizedlist>
477
478 </sect3>
479
480 <sect3 role="package">
481 <title>SWIG</title>
482
483 <para><application>SWIG</application> is a software development tool
484 that connects programs written in C and C++ with a variety of high-level
485 programming languages. <application>SWIG</application> is used with
486 different types of languages including common scripting languages such as
487 <application>Perl</application>, <application>Python</application>,
488 <application>Tcl</application>/<application>Tk</application> and
489 <application>Ruby</application>. The list of supported languages also
490 includes non-scripting languages such as <application>C#</application>,
491 <application>Common Lisp</application> (Allegro CL),
492 <application>Java</application>, <application>Modula-3</application>
493 and <application>OCAML</application>. Also several interpreted and
494 compiled Scheme implementations (<application>Chicken</application>,
495 <application>Guile</application>, <application>MzScheme</application>)
496 are supported. <application>SWIG</application> is most commonly used to
497 create high-level interpreted or compiled programming environments, user
498 interfaces, and as a tool for testing and prototyping C/C++ software.
499 <application>SWIG</application> can also export its parse tree in the
500 form of XML and Lisp s-expressions.</para>
501
502 <itemizedlist spacing="compact">
503 <listitem>
504 <para>Project Home Page: <ulink
505 url="http://www.swig.org/"/></para>
506 </listitem>
507 <listitem>
508 <para>Download Location: <ulink
509 url="http://prdownloads.sourceforge.net/swig/"/></para>
510 </listitem>
511 </itemizedlist>
512
513 </sect3>
514
515 <sect3 role="package">
516 <title>Valgrind</title>
517
518 <para><application>Valgrind</application> is a collection of five tools:
519 two memory error detectors, a thread error detector, a cache profiler and
520 a heap profiler used for debugging and profiling Linux programs. Features
521 include automatic detection of many memory management and threading bugs
522 as well as detailed profiling to speed up and reduce memory use of your
523 programs.</para>
524
525 <itemizedlist spacing="compact">
526 <listitem>
527 <para>Project Home Page: <ulink
528 url="http://valgrind.org/"/></para>
529 </listitem>
530 <listitem>
531 <para>Download Location: <ulink
532 url="http://valgrind.org/downloads/source_code.html"/></para>
533 </listitem>
534 </itemizedlist>
535
536 </sect3>
537
538 </sect2>
539
540</sect1>
Note: See TracBrowser for help on using the repository browser.