═══ 1. Special Notices ═══ References in this help to IBM products, programs, or services do not imply that IBM intends to make these available in all countries in which IBM operates. Any reference to an IBM licensed program in this help is not intended to state or imply that only IBM's licensed program may be used. Any functionally equivalent product, program, or service that does not infringe any of IBM's intellectual property rights may be used instead of the IBM product, program, or service. Evaluation and verification of operation in conjunction with other products, except those expressly designated by IBM, is the user's responsibility. IBM may have patents or pending patent applications covering subject matter in this help. The furnishing of this help does not give you any license to these patents. The following terms are trademarks of the IBM corporation in the United States and/or other countries: BookManager C/2 C Set/2 C Set ++ Common User Access CUA IBM LibraryReader Open Class Operating System/2 OS/2 OS/2 Warp Personal System/2 PS/2 Presentation Manager Systems Application Architecture SAA VisualAge WorkFrame WorkPlace Shell System Object Model SOM Windows is a trademark of Microsoft Corporation. Pentium is a trademark of Intel Corporation. Other company, product, and service names, which may be denoted by a double asterisk (**), may be trademarks of others. This publication contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independent created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact IBM Canada Ltd., Department 071, 1150 Eglinton Ave E., North York, ONT Canada M3C 1H7. Such information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee. ═══ 2. Build Smarts Window ═══ The Build Smarts window is a fast path for setting options for the VisualAge C++ actions Compile and Link, and for two options that affect the way your project target is built. The options that you set in the Build Smarts window work in combination with the options that are set for the individual actions themselves. You can select the following options:  Debugger  Browser  Performance Analyzer  Optimizer  Generate a make file  Build any subprojects first You can also define and remove macros you specify for a particular stage of development:  Development  Production The top four settings in the Build Smarts window affect both the Compiler and Linker options. For example, selecting the Debugger checkbox effectively adds the /Ti option to the compiler command line, and the /DE option to the linker command line, when you initiate a build involving those actions. The settings in this window do not change the options already set for Compile and Link in their options dialogs. The Tools setup settings are simply added to what is already set for the involved actions. When there are conflicts, the Build Smarts settings override those already set for the individual actions. Two important build options are also included here: Generate a make file and Build any subprojects first. Select the first option to generate a new make file as part of running the build. Select the second option to build any child projects before building the current project so that all the dependencies are up to date. At any time, you can disable the Build Smarts options by deselecting the Enable Build Smarts features checkbox if you only want to use the options set for the individual VisualAge C++ actions. ═══ 2.1. Enable Build Smarts ═══ Select Enable Build Smarts to use the options settings below it, enabling the features that are selected and disabling the features that are not selected. If Enable Build Smarts is not selected, then none of the options are used, even if some are selected. The following options are controlled by Enable Build Smarts:  Debugger  Browser  Performance Analyzer  Optimizer  Generate a make file  Build any subprojects first  Development user macro sets  Production user macro sets ═══ 2.2. Debugger ═══ Select Debugger to enable your application for debugging with the VisualAge C++ debugger. Selecting this option is equivalent to specifying the following compiler and linker options:  /Ti (compiler)  /O- (compiler)  /Os- (compiler)  /DE (linker) These options are specified in addition to any options specified in the Compiler and Linker Options notebooks. In case of conflict, the options specified by Build Smarts take precedence. Do not select both Debugger and Optimizer. The debugger is very limited in its ability to debug optimized code. See Generating Debugger Information for more information. ═══ 2.3. Browser ═══ Select Browser to enable your application for browsing with the VisualAge C++ browser. Selecting this option is equivalent to specifying the following compiler and linker options:  /Fb (compiler)  /BR (linker) These options are specified in addition to any options specified in the Compiler and Linker Options notebooks. In case of conflict, the options specified by Build Smarts take precedence. ═══ 2.4. Performance Analyzer ═══ Select Performance Analyzer to enable your application for performance analysis with the VisualAge C++ Performance Analyzer. Selecting this option is equivalent to specifying the following compiler and linker options:  /Ti (compiler)  /Gh (compiler)  /DE (linker)  /NOE (linker) When you select this option, the object file CPPOPA3.OBJ, which is required by the Performance Analyzer, is linked in automatically. These options are specified in addition to any options specified in the Compiler and Linker Options notebooks. In case of conflict, the options specified by Build Smarts take precedence. ═══ 2.5. Optimizer ═══ Select Optimizer to have the compiler optimize your code to improve the speed of your application. See Optimizing Object Code for more information. Selecting this option is equivalent to specifying the following compiler option:  /O+ This option is specified in addition to any options specified in the Compiler and Linker Options notebooks. In case of conflict, options specified by Build Smarts take precedence. Do not select both Optimizer and Debugger. The debugger is very limited in its ability to debug optimized code. See Generating Debugger Information for more information. ═══ 2.6. Generate a make file ═══ Select Generate a make file if you want WorkFrame to produce a new make file each time the Build action is executed. Deselect this button if you have your own make file that you want the Build action to use. ═══ 2.7. Build any subprojects first ═══ Select Build any subprojects first to build any child projects before building the current project so that all the dependencies are up to date. Deselect this option to perform a partial build. The current project will be built, but any projects nested inside it will not. For example, you might want to build an executable without rebuilding a DLL upon which it depends. ═══ 2.8. Development ═══ Select Development when you are developing your application (debugging it rather than optimizing it) to define or remove any macros specified in the Development entry fields Define and Remove. This is equivalent to specifying those macros with the command-line compiler options /D and /U. The macros you specify in the Define and Remove fields next to the Development checkbox are only defined or removed when Development is selected. The macro definitions and removals you specify are performed in addition to any you specified in the Compiler notebook. In case of conflict, macro specifications in Build Smarts take precedence. ═══ 2.9. Production ═══ Select Production when you are working on the production of your application (optimizing it rather than debugging it) to define or remove any macros specified in the Production entry fields Define and Remove. This is equivalent to specifying those macros with the command-line compiler options /D and /U. The macros you specify in the Define and Remove fields next to the Production checkbox are only defined or removed when Production is selected. The macro definitions and removals you specify are performed in addition to any you specified in the Compiler notebook. In case of conflict, macro specifications in Build Smarts take precedence. ═══ 2.10. Define Development macros ═══ Specify macros in this field that you want defined when you are in your development phase (debugging rather than optimizing). The macros are defined when you check the Development checkbox. This is equivalent to defining the macros with the /D command-line compiler option. ═══ 2.11. Remove Development macros ═══ Specify macros in this field that you want undefined when you are in your development phase (debugging rather than optimizing). The macros are undefined when you check the Development checkbox. This is equivalent to undefining the macros with the /U command-line compiler option. ═══ 2.12. Define Production macros ═══ Specify macros in this field that you want defined when you are in your production phase (optimizing rather than debugging). The macros are defined when you check the Production checkbox. This is equivalent to defining the macros with the /D command-line compiler option. ═══ 2.13. Remove Production macros ═══ Specify macros in this field that you want undefined when you are in your production phase (optimizing rather than debugging). The macros are undefined when you check the Production checkbox. This is equivalent to undefining the macros with the /U command-line compiler option. ═══ 2.14. OK ═══ Select OK to close the Build Smarts window and save your changes. The options you selected will be in effect the next time you build your project. ═══ 2.15. Cancel ═══ Select Cancel to cancel your changes and close the Build Smarts window without saving your selections. ═══ 2.16. Help ═══ Select Help to display contextual help for the item currently in focus in the window.