Application Development

Chapter 43. Preparing Applications for Release

Before delivering an application to its users, you need to package it for delivery. There are some basic constructions to remember that will make packaging your application more modular. This chapter describes general information about:

The list of files that you must include in a distribution varies depending on the application's components and the platform or platforms on which it runs. In addition, there are variations in distribution depending on your application's architecture. The documentation includes checklists for the major architectures:

Basic Deployment Steps

How to Deploy your Application

  1. Create application executables (refer to page 42-1).
  2. Make sure all binary files—screens, JPL modules, menu bars/toolbars—used by your application are stored in libraries (refer to page A-14 for details on using the formlib).

    Your Panther application consists of at least one to three Panther libraries, depending on the application's architecture: a library for storing the objects that define the user interface (client.lib); a library for storing the objects required by application servers (server.lib); and, for JetNet/Oracle Tuxedo, a common library (common.lib) for the objects that are needed by both client and server.

    If, however, the components are to be made memory-resident, extract the desired components from their respective libraries before building your executables.

  3. Make sure all graphical elements referenced, via property settings, by your Panther screens, such as pixmaps and icons, are included in a client library.

    For web applications, alternatively, you can place your graphics files in the htdocs directory on your HTTP server and set the ImageDir variable in the web initialization file to point to that location.

  4. When the libraries are complete, use formlib -o to lock the libraries. This step is irreversible. (After locking the library, you must use formlib -x to extract the contents and formlib -c to create a new library for editing or formlib -m to condense and unlock the library).
  5. Create an application directory and copy all of the required files, libraries, and subdirectories to this directory.
  6. Make sure the environment variables SMBASE, SMVARS, SMTERM are set correctly:

  1. Make sure the appropriate libraries are open on startup of your application, set the SMFLIBS variable (in smvars or in the initialization file for clients).

    On Windows, libraries are delineated with a ; or |.

    On UNIX, libraries are delineated with a : or a |.

  2. JetNet/Oracle Tuxedo:
  4. Then run your application's executable.
  5. Test the application.
  6. And ship it!

Required Files

All Panther applications require the following files:

Optional Files

The following files are optional, depending on your application's components, requirements, and how it is configured:

Specifying Files and Directories

For the client portion of your application, you can use the smvars file to specify all the libraries and directories that Panther needs to run. The only variables that must be set by the user would be SMTERM and SMVARS, which tell Panther which binary configuration files to use and where to find the application's files. Refer to page 2-1 in the Configuration Guide for more information about setting up the system environment.

Alternatively, your application can specify required files through calls to Panther functions:

Detailed information on each function and their variants is available in the Programming Guide.

Customizing the Distribution

This section describes additional measures you can take when you package your application. To ensure that these changes take effect, it is best to build your executable after customizing the appropriate files.

Configuration Support

For JetNet/Oracle Tuxedo applications, if you are administering the setup of your deployed application, you can provide a middleware configuration file that is similar to the one built when the application was being developed. If the application is being setup by your customer, you can provide documentation for using the JetNet manager and/or scripts for defining the number of client workstations, the number of machines, and the number of application servers that will be used to run your application.

Specifying a Startup File

When your application starts up it uses an initialization file (prol5w32.ini or prol5w64.ini) under Windows and a resource file (Prolifics) under Motif. For Motif, instead of using the distributed files, you can change the name to reflect your application's name and specify the file in piinit.c (found in the link directory). To include the name of your resource file, for example:


For Windows, you can specify the name of the ini file on the Start Menu command line. For example, the PlayMusic application would place PlayMusic.ini in the Windows directory and call that ini file with the following command setting:

C:\Prolifics\Panther\prorun.exe -ini PlayMusic

Specifying a Title Screen

You can design your own splash screen, just like the one that displays when you startup the screen editor, that will display when your application is initialized. The screen can be a BMP, JPEG, or GIF format. You specify the name of the screen in your startup file:

Specifying Your Own Icon

When you minimize your application in Windows, the default Panther icon is used. You can replace the default icon with one of your own. Edit the prorun.rc file located in the link directory to include the name of your .ico file, for example:

#define ICONFILE myIcon.ico