Build Instructions

What follows are build instructions and notes for the various OS's that AmphetaDesk has been successfully developed on. The below mostly focuses on creating the runtimes for Windows and Mac's, but does cover some environmental aspects. If you have no intention of developing or adding code to AmphetaDesk, you can leave this page. This page is NOT for end-users - only developers or hackers. If you're looking for install instructions, check the README.txt.

Required Perl Modules

There are a number of Perl modules that AmphetaDesk needs to run successfully. Most of these modules are installed on normal systems since they're pretty common for Perl use, but some, like XML::Parser and XML::Simple, require the expat C library, which may or may not be installed. If you're planning on building AmphetaDesk, it's probably a good idea to make sure you have the latest modules installed. Under ActiveState's ppm, you'd want to issue a verify (PPM2) or upgrade (PPM3) command. Under a normal CPAN shell, you'd do r instead.

On Linux systems, you can run perl -MCPAN -eshell and then install Module::Name to install specific modules. On Windows, you'd use the ActiveState ppm command line utility, with the same install line. Mac's running OS 9 require that you use the special (included) cpan-mac conversion to download and install the modules. OS X users should assume they're running a Linux system.

The most important modules are contained within Bundle::LWP, libwww-perl and XML::Parser. Make sure these packages are installed on your system, and you should be all set. Specific third party modules, like XML::Simple and Text::Template are shipped with AmphetaDesk in the lib/ directory.

Win32 Build Notes

The Win32 build of AmphetaDesk is compiled with the (freeware) ActiveState Perl 5.6.0.635 and (shareware) Perl2EXE v7.02. We'd like to switch to using PAR, but there are currently two problems facing us: 1) regardless of the .exe name you choose, it's always referred to as par.exe internally, causing worrisome firewall notices and 2) similarly, the compiled .exe is extracted to a random subdirectory of $TEMP for each run, causing spurious firewall notices for a new instance of the same program. The first problem is being addressed by the PAR maintainers for the 0.77 release.

When compiling for Win32, make sure that all Perl are set for DOS line feeds.

To build the Win32 GUI, you'll need some Perl modules intended only for Windows. You can install Win32::API via the ppm command line utility, along with Win32::TieRegistry. For AmphetaDesk v0.93, we've used versions 0.41 and 0.23 respectively. For the Win32::GUI module, however, you'll have to get the latest download from SourceForge (v0.0.670) and follow the install instructions within. Note that if you're building for Windows 95, you'll need to use the latest 0.5.x version of Win32::GUI - the v0.0.6x line works only on Windows 98 and higher.

To create the Win32 binary with Perl2EXE:

  1. Open AmphetaDesk.pl and uncomment the three lines that end with "for windows compile".
  2. Rename the lib/ directory to lib2/ (so that the modules won't be compiled into the .exe).
  3. Open a DOS window and cd to the AmphetaDesk source directory.
  4. Run perl2exe -gui -icon=templates/default/gui/win_icon.ico
    -perloptions=-p2x_noshow_includes AmphetaDesk.pl
    (all one line).
    (-perloptions may be invalid depending on your Perl2EXE version).
  5. Rename lib2/ back to lib/.

To create the Win32 binary with PAR (currently not shipped):

  1. Open AmphetaDesk.pl and uncomment the three lines that end with "for windows compile".
  2. Open a DOS window and cd to the AmphetaDesk source directory.
  3. Run pp --icon=templates/default/gui/win_icon.ico
    --gui -o AmphetaDesk.exe AmphetaDesk.pl
    .

This will create an AmphetaDesk.exe file within your AmphetaDesk source directory. At this point, manually test the compiled .exe file for stability. When you're satisifed that things are working fine, we'll finalize our build by preping the directory for archiving into our final zip file. You should remove the following files and directories, which will insure a default installation of AmphetaDesk:

At this point, you should be ready to create and name the archive.

Macintosh (OS 7.5.x through 9.x) Build Notes

The Macintosh build uses MacPerl 5.6.1r1. When compiling the Macintosh build, make sure that the AmphetaDesk.pl file and all files in the lib/ directory are set for Macintosh line feeds. We also need StandaloneBuilder, a revised version of the old MacPerl 5.2.x RuntimeBuilder, to create the distributable runtime. StandaloneBuilder is from Axel Rose.

To create the Macintosh binary:

  1. Open MacPerl and add the AmphetaDesk lib/ directory to the @INC search.
  2. Open AmphetaDesk.pl and uncomment the two lines that end with "for macintosh compile".
  3. Drop the AmphetaDesk.pl script onto StandaloneBuilder.dp.

Once the build process has finished, you'll have an AmphetaDesk f directory. This will contain the AmphetaDesk.run application, and a (possibly empty) directory called shared libs under the existing lib. Currently, the shared libs directory needs to have various MacPerl XS files copied into it (with their correct directory structure). These are: Events, Files, InternetConfig, Memory, Types, and /auto/XML/Parser/Expat/Expat.

Rename the AmphetaDesk f directory to your archive name (see "Archive File Names" below) and copy over the data/, docs/, extras/, and templates/ directories. You should also remove the following files and directories, which insure a default installation of AmphetaDesk:

Manually test the compiled AmphetaDesk.run (be sure to rename it to just AmphetaDesk before archiving) file for stability. When testing has completed, be sure to remove the automagically generated data/channels/ and data/internal/ directories.

At this point, you should be ready to create and name the archive.

Macintosh (OS X) Build Notes

The OS X wrapper is a custom Cocoa application using Mac OS X 10.1.5 and the April 2002 Developer Tools. It was developed and compiled by l.m.orchard with the Project- and Interface Builder tools and the source code and docs are available from his site or by requesting a copy from Morbus. If you learn anything from his code, make sure you tell l.m.orchard you love him, because I certainly do. Currently, this code has not been tested under Panther, and no version of AmphetaDesk is known to work.

To create the Mac OS X binary for 10.2 and below:

  1. Doubleclick the AmphetaDesk.pbproj file.
  2. Choose Build > Build. Wait patiently.
  3. Copy the AmphetaDesk.app into the AmphetaDesk source directory.

Now, manually test the compiled .app file for stability. The .app runs the AmphetaDesk.pl file, so make sure that interaction between the two (browser opening, log display, etc.) happens as intended. When you're satisifed that things are working fine, we'll finalize our build by preping the directory for archiving into our final disk image. You should remove the following files and directories, which will insure a default installation of AmphetaDesk:

At this point, you should be ready to create and name the archive.

Archive File Names

All completed archives should be named in the following conventions:

Obviously, how the archives are compressed depends on the OS.