source: general/prog/other-tools.xml@ 9aa5011

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 9aa5011 was 9aa5011, checked in by Randy McMurchy <randy@…>, 19 years ago

Added A-A-P, Mono, OProfile, OGDL and R to the 'Other Programming Tools' section

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@5257 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 25.0 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>A-A-P</title>
33
34 <para><application>A-A-P</application> makes it easy to locate, download,
35 build and install software. It also supports browsing source code,
36 developing programs, managing different versions and distribution of
37 software and documentation. This means that
38 <application> A-A-P</application> is useful both for users and for
39 developers.</para>
40
41 <itemizedlist spacing="compact">
42 <listitem>
43 <para>Project Home Page: <ulink
44 url="http://www.a-a-p.org/index.html"/></para>
45 </listitem>
46 <listitem>
47 <para>Download Location: <ulink
48 url="http://www.a-a-p.org/download.html"/></para>
49 </listitem>
50 </itemizedlist>
51
52 </sect3>
53
54 <sect3 role="package">
55 <title>Boost</title>
56
57 <para><application>Boost</application> provides free peer-reviewed
58 portable C++ source libraries. The emphasis is on libraries which work
59 well with the C++ Standard Library. The libraries are intended to be
60 widely useful, and are in regular use by thousands of programmers across
61 a broad spectrum of applications, platforms and programming
62 environments.</para>
63
64 <itemizedlist spacing="compact">
65 <listitem>
66 <para>Project Home Page: <ulink
67 url="http://www.boost.org/"/></para>
68 </listitem>
69 <listitem>
70 <para>Download Location: <ulink
71 url="http://prdownloads.sourceforge.net/boost/"/></para>
72 </listitem>
73 </itemizedlist>
74
75 </sect3>
76
77 <sect3 role="package">
78 <title>DDD (GNU Data Display Debugger)</title>
79
80 <para><application>GNU DDD</application> is a graphical front-end for
81 command-line debuggers such as <application>GDB</application>,
82 <application>DBX</application>, <application>WDB</application>,
83 <application>Ladebug</application>, <application>JDB</application>,
84 <application>XDB</application>, the <application>Perl</application>
85 debugger, the <application>Bash</application> debugger, or the
86 <application>Python</application> debugger. Besides <quote>usual</quote>
87 front-end features such as viewing source texts,
88 <application>DDD</application> has an interactive graphical data display,
89 where data structures are displayed as graphs..</para>
90
91 <itemizedlist spacing="compact">
92 <listitem>
93 <para>Project Home Page: <ulink
94 url="http://www.gnu.org/software/ddd/"/></para>
95 </listitem>
96 <listitem>
97 <para>Download Location: <ulink
98 url="http://ftp.gnu.org/gnu/ddd/"/></para>
99 </listitem>
100 </itemizedlist>
101
102 </sect3>
103
104 <sect3 role="package">
105 <title>cachecc1</title>
106
107 <para><application>cachecc1</application> is a
108 <application>GCC</application> cache. It can be compared with the well
109 known <application>ccache</application> package. It has some unique
110 features including the use of an LD_PRELOADed shared object to catch
111 invocations to <command>cc1</command>, <command>cc1plus</command> and
112 <command>as</command>, it transparently supports all build methods, it
113 can cache <application>GCC</application> bootstraps and it can be
114 combined with <application>distcc</application> to transparently
115 distribute compilations.</para>
116
117 <itemizedlist spacing="compact">
118 <listitem>
119 <para>Project Home Page: <ulink
120 url="http://cachecc1.sourceforge.net/"/></para>
121 </listitem>
122 <listitem>
123 <para>Download Location: <ulink
124 url="http://prdownloads.sourceforge.net/cachecc1"/></para>
125 </listitem>
126 </itemizedlist>
127
128 </sect3>
129
130 <sect3 role="package">
131 <title>ccache</title>
132
133 <para><application>ccache</application> is a compiler cache. It acts as
134 a caching pre-processor to C/C++ compilers, using the <option>-E</option>
135 compiler switch and a hash to detect when a compilation can be satisfied
136 from cache. This often results in 5 to 10 times faster speeds in common
137 compilations.</para>
138
139 <itemizedlist spacing="compact">
140 <listitem>
141 <para>Project Home Page: <ulink
142 url="http://ccache.samba.org/"/></para>
143 </listitem>
144 <listitem>
145 <para>Download Location: <ulink
146 url="http://ccache.samba.org/ftp/ccache/"/></para>
147 </listitem>
148 </itemizedlist>
149
150 </sect3>
151
152 <sect3 role="package">
153 <title>distcc</title>
154
155 <para><application>distcc</application> is a program to distribute builds
156 of C, C++, Objective C or Objective C++ code across several machines on a
157 network. <application>distcc</application> should always generate the
158 same results as a local build, is simple to install and use, and is
159 usually much faster than a local compile.
160 <application>distcc</application> does not require all machines to share
161 a filesystem, have synchronized clocks, or to have the same libraries or
162 header files installed. They can even have different processors or
163 operating systems, if cross-compilers are installed.</para>
164
165 <itemizedlist spacing="compact">
166 <listitem>
167 <para>Project Home Page: <ulink
168 url="http://distcc.samba.org/"/></para>
169 </listitem>
170 <listitem>
171 <para>Download Location: <ulink
172 url="http://distcc.samba.org/download.html"/></para>
173 </listitem>
174 </itemizedlist>
175
176 </sect3>
177
178 <sect3 role="package">
179 <title>Euphoria</title>
180
181 <para><application>Euphoria</application> is a simple, flexible, and
182 easy-to-learn programming language. It lets you quickly and easily
183 develop programs for Windows, DOS, Linux and FreeBSD. Euphoria was first
184 released in 1993. Since then Rapid Deployment Software has been steadily
185 improving it with the help of a growing number of enthusiastic users.
186 Although <application>Euphoria</application> provides subscript checking,
187 uninitialized variable checking and numerous other run-time checks, it is
188 extremely fast. People have used it to develop high-speed DOS games,
189 Windows GUI programs, and Linux X Windows programs. It is also very
190 useful for CGI (Web-based) programming.</para>
191
192 <itemizedlist spacing="compact">
193 <listitem>
194 <para>Project Home Page: <ulink
195 url="http://www.rapideuphoria.com/"/></para>
196 </listitem>
197 <listitem>
198 <para>Download Location: <ulink
199 url="http://www.rapideuphoria.com/v20.htm"/></para>
200 </listitem>
201 </itemizedlist>
202
203 </sect3>
204
205 <sect3 role="package">
206 <title>FFTW (Fastest Fourier Transform in the West)</title>
207
208 <para><application>FFTW</application> is a C subroutine library for
209 computing the discrete Fourier transform (DFT) in one or more dimensions,
210 of arbitrary input size, and of both real and complex data (as well as of
211 even/odd data, i.e., the discrete cosine/sine transforms or DCT/DST).</para>
212
213 <itemizedlist spacing="compact">
214 <listitem>
215 <para>Project Home Page: <ulink
216 url="http://www.fftw.org/"/></para>
217 </listitem>
218 <listitem>
219 <para>Download Location: <ulink
220 url="http://www.fftw.org/download.html"/></para>
221 </listitem>
222 </itemizedlist>
223
224 </sect3>
225
226 <sect3 role="package">
227 <title>GDB (GNU Debugger)</title>
228
229 <para><application>GDB</application> is the GNU Project debugger. It
230 allows you to see what is going on <quote>inside</quote> another program
231 while it executes. It also allows you to see what another program was
232 doing at the moment it crashed.</para>
233
234 <itemizedlist spacing="compact">
235 <listitem>
236 <para>Project Home Page: <ulink
237 url="http://www.gnu.org/software/gdb/"/></para>
238 </listitem>
239 <listitem>
240 <para>Download Location: <ulink
241 url="ftp://ftp.gnu.org/gnu/gdb/"/></para>
242 </listitem>
243 </itemizedlist>
244
245 </sect3>
246
247 <sect3 role="package">
248 <title>GOB (GObject Builder)</title>
249
250 <para><application>GOB</application> (<application>GOB2</application>
251 anyway) is a preprocessor for making GObjects with inline C code so that
252 generated files are not edited. Syntax is inspired by
253 <application>Java</application> and <application>Yacc</application> or
254 <application>Lex</application>. The implementation is intentionally kept
255 simple, and no C actual code parsing is done.</para>
256
257 <itemizedlist spacing="compact">
258 <listitem>
259 <para>Project Home Page: <ulink
260 url="http://www.5z.com/jirka/gob.html"/></para>
261 </listitem>
262 <listitem>
263 <para>Download Location: <ulink
264 url="http://ftp.5z.com/pub/gob/"/></para>
265 </listitem>
266 </itemizedlist>
267
268 </sect3>
269
270 <sect3 role="package">
271 <title>gocache (GNU Object Cache)</title>
272
273 <para><application>ccache</application> is a clone of
274 <application>ccache</application>, with the goal of supporting
275 compilers other than <application>GCC</application> and adding additional
276 features. Embedded compilers will especially be in focus.</para>
277
278 <itemizedlist spacing="compact">
279 <listitem>
280 <para>Project Home Page: <ulink
281 url="http://sourceforge.net/projects/gocache/"/></para>
282 </listitem>
283 <listitem>
284 <para>Download Location: <ulink
285 url="http://prdownloads.sourceforge.net/gocache/"/></para>
286 </listitem>
287 </itemizedlist>
288
289 </sect3>
290
291 <sect3 role="package">
292 <title>GTK+/GNOME Language Bindings (wrappers)</title>
293
294 <para><application>GTK+</application>/<application>GNOME</application>
295 language bindings allow <application>GTK+</application> to be used from
296 other programming languages, in the style of those languages.</para>
297
298 <itemizedlist spacing="compact">
299 <listitem>
300 <para>Project Home Page: <ulink
301 url="http://www.gtk.org/bindings.html"/></para>
302 </listitem>
303 </itemizedlist>
304
305 <sect4 role="package">
306 <title>gtkmm</title>
307
308 <para><application>gtkmm</application> is the official C++ interface
309 for the popular GUI library <application>GTK+</application>. Highlights
310 include typesafe callbacks, widgets extensible via inheritance and a
311 comprehensive set of widgets. You can create user interfaces either in
312 code or with the Glade designer, using
313 <application>libglademm</application>.</para>
314
315 <itemizedlist spacing="compact">
316 <listitem>
317 <para>Project Home Page: <ulink
318 url="http://www.gtkmm.org/"/></para>
319 </listitem>
320 <listitem>
321 <para>Download Location: <ulink
322 url="http://www.gtkmm.org/download.shtml"/></para>
323 </listitem>
324 </itemizedlist>
325
326 </sect4>
327
328 <sect4 role="package">
329 <title>Java-GNOME</title>
330
331 <para><application>Java-GNOME</application> is a set of Java bindings
332 for the <application>GNOME</application> and
333 <application>GTK+</application> libraries that allow
334 <application>GNOME</application> and <application>GTK+</application>
335 applications to be written in Java. The
336 <application>Java-GNOME</application> API has been carefully designed
337 to be easy to use, maintaining a good OO paradigm, yet still wrapping
338 the entire functionality of the underlying libraries.
339 <application>Java-GNOME</application> can be used with the
340 <application>Eclipse</application> development environment and Glade
341 user interface designer to create applications with ease.</para>
342
343 <itemizedlist spacing="compact">
344 <listitem>
345 <para>Project Home Page: <ulink
346 url="http://java-gnome.sourceforge.net/cgi-bin/bin/view"/></para>
347 </listitem>
348 <listitem>
349 <para>Download Location: <ulink
350 url="http://java-gnome.sourceforge.net/cgi-bin/bin/view/Main/GetJavaGnome#Source_Code"/></para>
351 </listitem>
352 </itemizedlist>
353
354 </sect4>
355
356 <sect4 role="package">
357 <title>gtk2-perl</title>
358
359 <para><application>gtk2-perl</application> is the collective name for
360 a set of perl bindings for <application>GTK+</application> 2.x and
361 various related libraries. These modules make it easy to write
362 <application>GTK</application> and <application>GNOME</application>
363 applications using a natural, perlish, object-oriented syntax.</para>
364
365 <itemizedlist spacing="compact">
366 <listitem>
367 <para>Project Home Page: <ulink
368 url="http://gtk2-perl.sourceforge.net/"/></para>
369 </listitem>
370 <listitem>
371 <para>Download Location: <ulink
372 url="http://prdownloads.sourceforge.net/gtk2-perl"/></para>
373 </listitem>
374 </itemizedlist>
375
376 </sect4>
377
378 <sect4 role="package">
379 <title>PyGTK</title>
380
381 <para><application>PyGTK</application> provides a convenient wrapper
382 for the <application>GTK</application> library for use in
383 <application>Python</application> programs, and takes care of many of
384 the boring details such as managing memory and type casting. When
385 combined with <application>PyORBit</application> and
386 <application>gnome-python</application>, it can be used to write full
387 featured <application>GNOME</application> applications.</para>
388
389 <itemizedlist spacing="compact">
390 <listitem>
391 <para>Project Home Page: <ulink
392 url="http://www.pygtk.org/"/></para>
393 </listitem>
394 <listitem>
395 <para>Download Location: <ulink
396 url="http://www.pygtk.org/downloads.html"/></para>
397 </listitem>
398 </itemizedlist>
399
400 </sect4>
401
402 </sect3>
403
404 <sect3 role="package">
405 <title>KDE Language Bindings</title>
406
407 <para><application>KDE</application> and most
408 <application>KDE</application> applications are implemented using the
409 C++ programming language, however there are number of bindings to other
410 languages are available. These include scripting languages like
411 <application>Perl</application>, <application>Python</application> and
412 <application>Ruby</application>, and systems programming languages such
413 as Java and C#.</para>
414
415 <itemizedlist spacing="compact">
416 <listitem>
417 <para>Project Home Page: <ulink
418 url="http://developer.kde.org/language-bindings/"/></para>
419 </listitem>
420 </itemizedlist>
421
422 </sect3>
423
424 <sect3 role="package">
425 <title>Mono</title>
426
427 <para><application>Mono</application> provides the necessary software to
428 develop and run .NET client and server applications on Linux, Solaris,
429 Mac OS X, Windows, and Unix. Sponsored by Novell, the
430 <application>Mono</application> open source project has an active and
431 enthusiastic contributing community and is positioned to become the
432 leading choice for development of Linux applications.</para>
433
434 <itemizedlist spacing="compact">
435 <listitem>
436 <para>Project Home Page: <ulink
437 url="http://www.mono-project.com/Main_Page"/></para>
438 </listitem>
439 <listitem>
440 <para>Download Location: <ulink
441 url="http://go-mono.com/sources/"/></para>
442 </listitem>
443 </itemizedlist>
444
445 </sect3>
446
447 <sect3 role="package">
448 <title>Numerical Python (Numpy)</title>
449
450 <para><application>Numerical Python</application> adds a fast array
451 facility to the <application>Python</application> language.</para>
452
453 <itemizedlist spacing="compact">
454 <listitem>
455 <para>Project Home Page: <ulink
456 url="http://numeric.scipy.org/"/></para>
457 </listitem>
458 <listitem>
459 <para>Download Location: <ulink
460 url="http://prdownloads.sourceforge.net/numpy/"/></para>
461 </listitem>
462 </itemizedlist>
463
464 </sect3>
465
466 <sect3 role="package">
467 <title>OProfile</title>
468
469 <para><application>OProfile</application> is a system-wide profiler for
470 Linux systems, capable of profiling all running code at low overhead.
471 <application>OProfile</application> is released under the GNU GPL. It
472 consists of a kernel driver and a daemon for collecting sample data, and
473 several post-profiling tools for turning data into information.
474 <application>OProfile</application> leverages the hardware performance
475 counters of the CPU to enable profiling of a wide variety of interesting
476 statistics, which can also be used for basic time-spent profiling. All
477 code is profiled: hardware and software interrupt handlers, kernel
478 modules, the kernel, shared libraries, and applications.
479 <application>OProfile</application> is currently in alpha status; however
480 it has proven stable over a large number of differing configurations. It
481 is being used on machines ranging from laptops to 16-way NUMA-Q
482 boxes.</para>
483
484 <itemizedlist spacing="compact">
485 <listitem>
486 <para>Project Home Page: <ulink
487 url="http://oprofile.sourceforge.net/news/"/></para>
488 </listitem>
489 <listitem>
490 <para>Download Location: <ulink
491 url="http://oprofile.sourceforge.net/download/"/></para>
492 </listitem>
493 </itemizedlist>
494
495 </sect3>
496
497 <sect3 role="package">
498 <title>Ordered Graph Data Language (OGDL)</title>
499
500 <para><application>OGDL</application> is a structured textual format that
501 represents information in the form of graphs, where the nodes are strings
502 and the arcs or edges are spaces or indentation.</para>
503
504 <itemizedlist spacing="compact">
505 <listitem>
506 <para>Project Home Page: <ulink
507 url="http://ogdl.sourceforge.net/"/></para>
508 </listitem>
509 <listitem>
510 <para>Download Location: <ulink
511 url="http://prdownloads.sourceforge.net/ogdl/"/></para>
512 </listitem>
513 </itemizedlist>
514
515 </sect3>
516
517 <sect3 role="package">
518 <title>Perl Scripts and Additional Modules</title>
519
520 <para>There are many <application>Perl</application> scripts and
521 additional modules located on the Comprehensive Perl Archive Network
522 (CPAN) web site. Here you will find <quote>All Things Perl</quote>.</para>
523
524 <itemizedlist spacing="compact">
525 <listitem>
526 <para>Project Home Page: <ulink
527 url="http://cpan.org/"/></para>
528 </listitem>
529 </itemizedlist>
530
531 </sect3>
532
533 <sect3 role="package">
534 <title>R</title>
535
536 <para><application>R</application> is a language and environment for
537 statistical computing and graphics. It is a GNU project similar to the
538 <application>S</application> language and environment which was developed
539 at Bell Laboratories (formerly AT&amp;T, now Lucent Technologies) by
540 John Chambers and colleagues. <application>R</application> can be
541 considered as a different implementation of <application>S</application>.
542 There are some important differences, but much code written for
543 <application>S</application> runs unaltered under
544 <application>R</application>. <application>R</application> provides a
545 wide variety of statistical (linear and nonlinear modelling, classical
546 statistical tests, time-series analysis, classification, clustering, ...)
547 and graphical techniques, and is highly extensible. The
548 <application>S</application> language is often the vehicle of choice for
549 research in statistical methodology, and <application>R</application>
550 provides an Open Source route to participation in that activity.</para>
551
552 <itemizedlist spacing="compact">
553 <listitem>
554 <para>Project Home Page: <ulink
555 url="http://www.r-project.org/"/></para>
556 </listitem>
557 <listitem>
558 <para>Download Location: <ulink
559 url="http://cran.r-project.org/mirrors.html"/></para>
560 </listitem>
561 </itemizedlist>
562
563 </sect3>
564
565 <sect3 role="package">
566 <title>SCons</title>
567
568 <para><application>SCons</application> is an Open Source software
569 construction tool, i.e, a next-generation build tool. Think of
570 <application>SCons</application> as an improved, cross-platform
571 substitute for the classic <command>make</command> utility with
572 integrated functionality similar to
573 <application>Autoconf</application>/<application>Automake</application>
574 and compiler caches such as <command>ccache</command>.</para>
575
576 <itemizedlist spacing="compact">
577 <listitem>
578 <para>Project Home Page: <ulink
579 url="http://scons.sourceforge.net/"/></para>
580 </listitem>
581 <listitem>
582 <para>Download Location: <ulink
583 url="http://prdownloads.sourceforge.net/scons/"/></para>
584 </listitem>
585 </itemizedlist>
586
587 </sect3>
588
589 <sect3 role="package">
590 <title>strace</title>
591
592 <para><application>strace</application> is a system call tracer, i.e., a
593 debugging tool which prints out a trace of all the system calls made by
594 another process or program.</para>
595
596 <itemizedlist spacing="compact">
597 <listitem>
598 <para>Project Home Page: <ulink
599 url="http://www.liacs.nl/~wichert/strace/"/></para>
600 </listitem>
601 <listitem>
602 <para>Download Location: <ulink
603 url="http://prdownloads.sourceforge.net/strace/"/></para>
604 </listitem>
605 </itemizedlist>
606
607 </sect3>
608
609 <sect3 role="package">
610 <title>SWIG</title>
611
612 <para><application>SWIG</application> is a software development tool
613 that connects programs written in C and C++ with a variety of high-level
614 programming languages. <application>SWIG</application> is used with
615 different types of languages including common scripting languages such as
616 <application>Perl</application>, <application>Python</application>,
617 <application>Tcl</application>/<application>Tk</application> and
618 <application>Ruby</application>. The list of supported languages also
619 includes non-scripting languages such as <application>C#</application>,
620 <application>Common Lisp</application> (Allegro CL),
621 <application>Java</application>, <application>Modula-3</application>
622 and <application>OCAML</application>. Also several interpreted and
623 compiled Scheme implementations (<application>Chicken</application>,
624 <application>Guile</application>, <application>MzScheme</application>)
625 are supported. <application>SWIG</application> is most commonly used to
626 create high-level interpreted or compiled programming environments, user
627 interfaces, and as a tool for testing and prototyping C/C++ software.
628 <application>SWIG</application> can also export its parse tree in the
629 form of XML and Lisp s-expressions.</para>
630
631 <itemizedlist spacing="compact">
632 <listitem>
633 <para>Project Home Page: <ulink
634 url="http://www.swig.org/"/></para>
635 </listitem>
636 <listitem>
637 <para>Download Location: <ulink
638 url="http://prdownloads.sourceforge.net/swig/"/></para>
639 </listitem>
640 </itemizedlist>
641
642 </sect3>
643
644 <sect3 role="package">
645 <title>Valgrind</title>
646
647 <para><application>Valgrind</application> is a collection of five tools:
648 two memory error detectors, a thread error detector, a cache profiler and
649 a heap profiler used for debugging and profiling Linux programs. Features
650 include automatic detection of many memory management and threading bugs
651 as well as detailed profiling to speed up and reduce memory use of your
652 programs.</para>
653
654 <itemizedlist spacing="compact">
655 <listitem>
656 <para>Project Home Page: <ulink
657 url="http://valgrind.org/"/></para>
658 </listitem>
659 <listitem>
660 <para>Download Location: <ulink
661 url="http://valgrind.org/downloads/source_code.html"/></para>
662 </listitem>
663 </itemizedlist>
664
665 </sect3>
666
667 </sect2>
668
669</sect1>
Note: See TracBrowser for help on using the repository browser.