home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / ipfcmp.zip / README.DOC < prev   
Text File  |  1992-01-19  |  7KB  |  155 lines

  1. IPFCOMP.EXE is a shell for IPFC.EXE, the IBM Information Presentation Facility
  2. compiler. It allows for preprocessing of IPF files so you can use #include
  3. statements in your IPF file to allow for resid macro expansion.  It does this
  4. by first invoking a compiler's PreProcessor against the IPF file, then running
  5. IPFC.EXE against the preprocessed file.
  6.  
  7. IPFCOMP.EXE supports .im (imbedded) IPF files. All .im files will be
  8. preprocessed before the main IPF file is sent to IPFC.EXE. Header files found
  9. in the main IPF file will be automatically placed in the .imbedded IPF files.
  10. It is OK to also have header files in the .imbedded files, even if they are
  11. the same as those in the main file.
  12.  
  13. The /PC option allows you to specify the PreProcessor CommandLine so you can
  14. use any preprocessor you want. The default is the IBM C Set/2 compiler with
  15. the command line "icc /P+ /W0".  IPFCOMP has been tested with this command
  16. line as well as that for the MSC 16-bit compiler with the command line
  17. "cl -P". Any other command lines are not tested so it could turn out that
  18. IPFCOMP cannot support their output. Also it is assumed that the output from
  19. the PreProcessor is named with a .I extension. If you find that IPFCOMP does
  20. not work with your PreProcessor, let me know via CIS (ID 72251,750) and I
  21. should be able to easily build in support for it.
  22.  
  23. Steps are taken to ensure that the errors output by IPFC.EXE will show the
  24. correct file names and line numbers.
  25.  
  26. Ctrl-Break and Ctrl-C are fully supported at all stages of execution.
  27. Interrupting IPFCOMP at any point should direct IPFCOMP to clean up after
  28. itself and rename, delete any temporary files currently in use.
  29.  
  30. KNOWN PROBLEM: If a reboot takes place during execution of IPFCOMP, the
  31. input files and temporary files will most likely be in a transient state.
  32. Use the /tf (Temp File info) option to find out how to recover if this
  33. happens.
  34.  
  35. Invoking IPFCOMP without any command-line parameters gets this screen:
  36.  
  37. ------------------------------------------------------------------------------
  38. usage: ipfcomp [ option, option, ... ] ipf-filepath [ output-path ]
  39.  
  40. options (besides the IPFC options):
  41.         /DC - Don't Compensate for ANSI PreProcessing
  42.         /EF - Create Error File of IPFC errors
  43.         /KP - Keep Precompiler output file(s)
  44.         /PC - Precompiler Command (defaults to "icc.exe /P+ /W0")
  45.               usage: /PC "command" (leave a space between /PC and "command")
  46.                                   (command MUST be in quotes)
  47.         /PO - Precompile only (/KP assumed)
  48.         /TF - Temp File info (explain temporary file usage)
  49. ------------------------------------------------------------------------------
  50.  
  51. ALL COMMAND-LINE OPTIONS NOT RECOGNIZED BY IPFCOMP AS INTERNAL OPTIONS ARE
  52. PASSED ON TO IPFC.EXE.
  53.  
  54. ipf-filepath is the path and filename of the IPF file that is to be used as
  55.              input to IPFCOMP.  The extension does not have to be .ipf, but
  56.              defaults to .ipf if no file extension is given.
  57.  
  58. output-path allows you to specify a path to place the .HLP or .INF file output
  59.             by IPFC.EXE. It defaults to the current directory.
  60.  
  61. Further explanation of the command-line options:
  62.  
  63. /DC - ANSI PreProcessing standards call for inserting whitespace before and
  64.       after macro expansion. For example, after ANSI PreProcessing, this:
  65.  
  66.                        #define IDD_ABOUT  20
  67.                        resid=IDD_ABOUT.About Dialog Box
  68.  
  69.       translates into this:
  70.  
  71.                        resid= 20 .About Dialog Box
  72.  
  73.       The spaces after the '=' and before the '.' cause many errors by IPFC.EXE.
  74.  
  75.       Therefore IPFCOMP.EXE post-processes the precompiled file (say THAT ten
  76.       times fast) to remove the whitespace. This does impose the limitation that
  77.       if your IPF file has text that has an '=' sign followed by a space, that
  78.       space will be lost.
  79.  
  80.       The /DC option stops IPFCOMP from performing this fixup. Because of the
  81.       reasons that IPFCOMP does this in the first place, obviously /DC is only
  82.       valid if you are using a PreProcessor that does not conform to ANSI
  83.       standards, such as the MSC PreProcessor. The IBM C Set/2 compiler DOES
  84.       use ANSI PreProcessing.
  85.  
  86. /EF - This will create an error file (basename.ERR) in the current directory
  87.       that contains the error messages output by IPFC.EXE. The errors will
  88.       also be echoed to the display as usual.
  89.  
  90. /KP - You may want to see the IPF files after preprocessing and fixup as they
  91.       will be input to IPFC.EXE. The /KP option will keep all .I files (IPFCOMP
  92.       will not delete them) so they can be viewed.
  93.  
  94. /PC - This option allows you to specify an alternative PreCompiler Commandline
  95.       to "icc /P+ /W0" (the default). If used, it MUST be formatted like this
  96.       (using the MSC command line as an example):
  97.  
  98.                 /PC "cl -P"
  99.  
  100.       There MUST be a space between the /PC and the first double-quote, and
  101.       there MUST be double quotes surrounding the command.
  102.  
  103.       The only command-lines tested thus far are the two mentioned (ICC.EXE and
  104.       CL.EXE). Depending on other precompilers and the way they format their
  105.       output from the precompile stage, they may or may not work. I would
  106.       definitely not assume that they work. You'd have to give it a try. If
  107.       you find one that does not, I will be glad to build support for it if you
  108.       let me know via my CIS ID 72251,750.
  109.  
  110. /PO - Performs the PreCompile and fixup steps only and keeps the .I files that
  111.       are output by the precompiler.
  112.  
  113. /TP - Displays the temporary file extensions that are used during IPFCOMP
  114.       execution and how to recover should you reboot while IPFCOMP is running.
  115.       The following screen is displayed:
  116.  
  117. -------------------------------------------------------------------------------
  118. The following temporary files extensions are used during execution of IPFCOMP:
  119.  
  120. I   - Output from Precompiler
  121. $IH - Imbed Hold file (.im file before IPFCOMP execution)
  122. $IT - Imbed Temp file (.im file in temporary state)
  123. $FP - Fixed Precompiler output (.I file after tailoring)
  124. $MH - Main Hold file (main IPF file before IPFCOMP execution)
  125.  
  126. IF ANY OF THESE FILES EXIST AFTER IPFCOMP EXECUTION:
  127.       (probably after a reboot during IPFCOMP)
  128.  
  129. 1. You can delete any $IT or $FP files.
  130.  
  131. 2. If a $MH file remains:
  132.    A. The $MH file should be your original file. Verify this.
  133.    B. Delete the .IPF file with the same base name.
  134.    C. Rename the $MH file to .IPF.
  135.  
  136. 3. If a $IH file remains:
  137.    A. The $IH file should be the original .im file. Verify this.
  138.    B. Delete the .IPF file with the same base name.
  139.    C. Rename the $IH file to .IPF.
  140.  
  141. NOTES: 1. .im is the IPF tag used to imbed an IPF file within
  142.           another IPF file.
  143.        2. The IPF files that are input to IPFCOMP can have any
  144.           extension but those mentioned above.
  145. -------------------------------------------------------------------------------
  146.  
  147. Any comments, suggestions, bug reports can be sent to my CIS id 72251,750.
  148.  
  149. Hope this utility proves useful.
  150.  
  151. Rick Fishman
  152. Code Blazers, Inc.
  153. 4113 Apricot
  154. Irvine, CA 92720
  155.