|< Day Day Up >|
11.4. X11-based Applications and Libraries
Fink and DarwinPorts (covered in Chapters 13 and 14, respectively) can be used to install many X11-based applications, such as the GNU Image Manipulation Program (GIMP), xfig/transfig, ImageMagick , nedit, and more. Since Fink understands dependencies, installing some of these applications causes Fink to first install several other packages. For example, since the text editor nedit depends on Motif libraries, Fink will first install lesstif. (This also gives you the Motif window manager, mwm.) Similarly, when you install the GIMP via Fink, you will also install the packages for GNOME, GTK+, and glib.
You can also use Fink to install libraries directly. For example:
$ fink install qt
installs the X11-based Qt libraries; DarwinPorts can be used in a similar manner.
11.4.1. Building X11-based Applications and Libraries
If you cannot find binaries for X11-based applications or prefer to build the applications yourself, many tools are available to do so. When you install the Xcode Tools, make sure you install the optional X11SDK , which contains development tools and header files for building X11-based applications. If you didn't install X11SDK when you first installed Xcode, you can still install it from the Xcode folder on the Mac OS X Install DVD.
The process of building software usually begins with generating one or more makefiles customized to your system. For X11 applications, there are two popular methods for generating makefiles:
With imake-driven source releases, you'll find Imakefile in the top-level source directory after you download and unpack a source tarball. After reading the README or INSTALL files, examine the Imakefile to see if you need to change anything. Then the next step is usually to issue the command:
$ xmkmf -a
When invoked with the -a option, xmkmf reads imake-related files in /usr/X11R6/lib/X11/config and performs the following tasks recursively, beginning in the top-level directory and then in the subdirectories, if there are any:
$ make Makefiles $ make includes $ make depend
The next steps are usually make, make test (or make check), and make install.
To illustrate this method of building software, consider the script in Example 11-2, which downloads and builds an X11-based game.
Example 11-2. Downloading and building an X11-based game
# Download the source tarball curl -O ftp://ftp.x.org/contrib/games/xtic1.12.tar.gz # Unpack the tarball gnutar xvfz xtic1.12.tar.gz # Change to the top-level build directory cd xtic1.12/ # Generate the Makefile xmkmf -a # Build everything (some X11 apps use 'make World') make # Have fun! ./src/xtic
The X Window System is useful to Unix developers and users, since many Unix-based software packages depend on the X11 libraries. An interesting project that sometimes eliminates the need for X windows is the BSD-licensed AquaTerm application, developed by Per Persson (http://aquaterm.sourceforge.net). AquaTerm is a Cocoa application that can display vector graphics in an X11-like fashion. It does not replace X11, but it is useful for applications that generate plots and graphs.
The output graphics formats that AquaTerm supports are PDF and EPS. Applications communicate with AquaTerm through an adapter that acts as an intermediary between your old application's API and AquaTerm's API.
At the time of this writing, AquaTerm has adapters for gnuplot and PGPLOT, as well as example adapters in C, FORTRAN, and Objective-C. For example, assuming that you have installed both X11SDK and AquaTerm, you can build gnuplot (http://www.gnuplot.info) so graphics can be displayed either in X windows or in AquaTerm windows.
See AquaTerm's web site for extensive documentation, including the latest program developments, examples, mailing lists and other helpful resources.
|< Day Day Up >|