ib(L) ib(L) 18 March 1994 NAME ImakeBuilder - Motif based Imakefile generator SYNOPSIS ib DESCRIPTION ImakeBuilder (IB) is an interactive tool to generate and maintain consistent Imakefiles. Multiple targets (programs, libraries and directories) are supported. Imakefiles consist of three main sections. The first section includes all information that is pertinent to each target defined. These might include CFLAGS, #define statements, etc. The middle section contains information that is specific to each target, i.e., local libraries, local includes, and the source code necessary to build the target. The last section is allocated for calls that build upon all the information provided in the first two sections, like MakeDepend or MakeSubDir calls. IB's GUI is organized similarly. The first section corresponds to IB's Preference panel, the second to the Target panels, and the last is defined implicitly. Usage IB creates its Imakefile in the current directory, thus the user begins by going to the desired directory and typing 'ib': % cd src % ib If IB has already created an Imakefile in the directory, it will load that file and display it. The IB system will warn the user if the file was not generated by IB. Defining a Target A target is an executable, library or directory which is comprised of files and specific configuration parameters. It can be considered the final product of an Imakefile. An Imakefile can have one or more targets within it. A list of targets is shown on the main panel. To add a target to this list, type a name in the Current Target input field and hit <RETURN> or click on <ADD>. A Target panel will be shown for each Target created. Targets can be deleted by either selecting it on the main panel's target list and clicking on <DELETE> or by clicking on <DELETE> on the Target's panel. Defining Source Files Source files are the body of a target. A default list of files (*.c, *.C, *.f) will be shown in the Target panel. Files can be deleted by selecting one or more items in the file list and clicking on <DELETE>. Items can be added by clicking on <ADD> which brings up a file selector, allowing the user to add files manually. Files that do not exist can also be added in the same manner. Simply type in the name you want added to the list. The default list of files can be brought back by clicking on <RESET>. Preferences IB uses a standard set of parameters to write Imakefiles. Many of these parameters can be modified through the Preferences panel. To invoke this option, choose Preferences from the File menu. Customization A method for providing additional customization of the Imakefile has been provided. Choose Custom Options from the Edit menu and place the window. Anything typed in this area will be placed, verbatim, into the Imakefile. Comments Inside the Imakefile There are two areas where the user can place - 1 - Formatted: January 15, 2025 ib(L) ib(L) 18 March 1994 comments into the Imakefile: the header and at the top of each target block. To edit comments for the Imakefile header, choose Header from the Edit menu. To edit comments for a target block, use the Comments field on the target's panel. Configuration File IB preferences can be saved to a configuration file through the Preferences panel by clicking on <SAVE>. This procedure creates a file this file will be read and the appropriate parameters set. IB looks in the current directory first and if a configuration file is not found, it then tries to find the file in the user's home directory. Building the Imakefile Once all the targets have been defined, choose Create Imakefile from the Build menu. This will copy the existing Imakefile to Imakefile.bak and will create a new Imakefile. To generate a makefile, choose Makefile from the Build menu. This invokes the bootstrap selected on the Preferences panel (see Preferences). Outside of the IB system, the user avoids retyping the bootstrap to generate the Makefile by typing: % make Makefile Imake knows what to do from here. The make depend option on the Build menu is purely a convenience function which generates the targets' dependencies on libraries and includes if the user has requested dependencies from any of the target panels. Viewing the Imakefile The Imakefile can be viewed and edited directly using the Edit Imakefile from the Edit menu. FILES .ib_config ~/.ib_config ENVIRONMENT Must run ImakeBuilder in the current directory SEE ALSO imake, xmkmf, make Software Portability with imake by DuBois (O'Reilly & Associates) BUGS IB uses the RegForm tool for registration, comments, and bug reporting. Any comments, bugs, or software modifications can be reported to the author via this mechanism. Choose Comments from the File menu and place the RegForm window. Fill in the blanks and hit <Send>. If RegForm was not installed with IB, comments and registration should be sent to: jdyvig@photon.com Be sure to include the following information: ImakeBuilder 1.1 Name Company E-Mail Address AUTHOR James R. Dyvig (jdyvig@photon.com) - 2 - Formatted: January 15, 2025