home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 27 Fixes20 / 27-Fixes20.zip / wfdesk.zip / wfdesk.cmd < prev    next >
OS/2 REXX Batch file  |  1994-07-27  |  28KB  |  466 lines

  1. /* */
  2.  
  3. '@echo off'
  4. /*****************************************************************************/
  5. /* WFDESK                                                                    */
  6. /*                                                                           */
  7. /*      This command file is an alternative to phase 2 of the WorkFrame/2    */
  8. /* installation.  It will build all necessary WorkPlace Shell objects.       */
  9. /* Please note that this command file does little error checking and         */
  10. /* attempts no recovery if it fails.                                         */
  11. /* If a failure does occur, clean up WPS completely by deleting both the     */
  12. /* WorkFrame/2 folder on the desktop and WorkFrame/2 templates.  After you   */
  13. /* have rebooted, run this command file with a long pause_time (at least 5   */
  14. /* seconds).  After each failure, perform the clean up, reboot and double    */
  15. /* the pause_time until pause 2 of the installation succeeds.                */
  16. /*****************************************************************************/
  17.  
  18. /*---------------------------------------------------------------------------*/
  19. /* PARSE COMMAND-LINE                                                        */
  20. /*---------------------------------------------------------------------------*/
  21. parse source os kind command  /* store command file name */
  22. parse upper arg boot_drive wf2_directory pause_time
  23.  
  24. if (boot_drive = '' | boot_drive = '/?' | boot_drive = '?' | wf2_directory = '' | wf2_directory = '/?' | wf2_directory = '?') then
  25. do
  26.       say 'Usage: 'command' boot_drive wf2_directory [pause_time]'
  27.       say ''
  28.       say '      where boot_drive = drive where OS/2 is installed (e.g., C:).'
  29.       say '         wf2_directory = full path name where WorkFrame/2 is installed (e.g., C:\IBMWF).'
  30.       say '            pause_time = number of seconds to pause between system commands (e.g., 5).'
  31.       say '                         (Range is between 0 and 999; default is zero - 0).'
  32.       say '                         (Note: On very slow machines it may be necessary to pause a considerable amount.)'
  33.       exit(0)
  34. end
  35.  
  36. /*---------------------------------------------------------------------------*/
  37. /* DEFINE SYSTEM FUNCTIONS                                                   */
  38. /*---------------------------------------------------------------------------*/
  39. call rxfuncadd sysloadfuncs, rexxutil, sysloadfuncs
  40. call sysloadfuncs
  41.  
  42. /*---------------------------------------------------------------------------*/
  43. /* CHECK ARGUMENTS                                                           */
  44. /*---------------------------------------------------------------------------*/
  45. if wf2_directory = '.' then
  46.      wf2_directory=directory()  /* pathname of cwd */
  47. else
  48. do
  49.      if wf2_directory = '..' then
  50.      do
  51.      wf2_directory=directory()       /* store cwd */
  52.      wf2_directory=directory('..')   /* pathname of directory above cwd */
  53.      rc=directory(dirCurrent)        /* move back to cwd */
  54.      end
  55. end
  56.  
  57. rc = SysFileTree(wf2_directory,dir,D) /*check directory existance*/
  58. if (rc \= 0 | dir.0 = 0) then
  59. do
  60.      say command': Error - directory='wf2_directory' does not exist.'
  61.      exit(1)
  62. end
  63.  
  64. if (pause_time = '') then
  65.      pause_time=0
  66. if (pause_time < 0 | pause_time > 999) then
  67. do
  68.      say command': Error - invalid pause_time='pause_time'; range is between 0 and 999.'
  69.      exit(1)
  70. end
  71.  
  72. say command': STARTING WORKFRAME/2 PHASE 2 INSTALLATION ...'
  73. /*---------------------------------------------------------------------------*/
  74. /* SETUP INSTALLATION PHASE INFORMATION                                      */
  75. /*---------------------------------------------------------------------------*/
  76. say command': Updating system files, please wait ...'
  77. iniFile. = ''
  78. iniFile.0 = 4
  79. iniFile.1.!name = ''
  80. iniFile.1.!app  = 'IBMWFV2'
  81. iniFile.1.!key  = 'DIR'
  82. iniFile.1.!val  = wf2_directory
  83. iniFile.2.!name = ''
  84. iniFile.2.!app  = 'IBMWFV2'
  85. iniFile.2.!key  = 'PHASE'
  86. iniFile.2.!val  = '1'
  87. iniFile.3.!name = boot_drive'\os2\ibmwfv2.ini'
  88. iniFile.3.!app  = 'IBMWFV2'
  89. iniFile.3.!key  = 'DIR'
  90. iniFile.3.!val  = wf2_directory
  91. iniFile.4.!name = boot_drive'\os2\ibmwfv2.ini'
  92. iniFile.4.!app  = 'IBMWFV2'
  93. iniFile.4.!key  = 'PHASE'
  94. iniFile.4.!val  = '1'
  95.  
  96. do i=1 to iniFile.0
  97.      rc=SysSleep(pause_time)
  98.      rc=SysIni(iniFile.i.!name, iniFile.i.!app, iniFile.i.!key, iniFile.i.!val)
  99.      if (iniFile.i.!name = '') then
  100.           iniFile.i.!name = 'USER' /* display name for default ini file */
  101.      if (rc = '') then
  102.           say command':     Successful ini file update 'i' - 'iniFile.i.!name
  103.      else
  104.      do
  105.           say command':     Failed ini file update 'i' - 'iniFile.i.!name' with RC='rc
  106.           exit(rc)
  107.      end
  108. end
  109.  
  110. /*---------------------------------------------------------------------------*/
  111. /* DEREGISTER AND REGISTER WORKFRAME/2 CLASSES                               */
  112. /*---------------------------------------------------------------------------*/
  113. say command': Deregistering WorkFrame/2 classes, please wait ...'
  114. classWF2. = ''
  115. classWF2.0 = 4
  116. classWF2.1.!name = 'DDE3Router'
  117. classWF2.1.!dll  = 'dde3worm'
  118. classWF2.2.!name = 'DDE3Profile'
  119. classWF2.2.!dll  = 'dde3sprf'
  120. classWF2.3.!name = 'DDE3Folder'
  121. classWF2.3.!dll  = 'dde3prjf'
  122. classWF2.4.!name = 'DDE3Project'
  123. classWF2.4.!dll  = 'dde3base'
  124.  
  125. do i=1 to classWF2.0
  126.      rc=SysSleep(pause_time)
  127.      rc = SysDeregisterObjectClass(classWF2.i.!name)
  128.      if (rc) then
  129.           say command':     Successful deregistration - 'classWF2.i.!name
  130.      else
  131.      do
  132.           say command':     Failed deregistration - 'classWF2.i.!name' with RC='rc' continuing ...'
  133.      end
  134. end
  135.  
  136. say command': Registering WorkFrame/2 classes, please wait ...'
  137. do i=1 to classWF2.0
  138.      rc=SysSleep(pause_time)
  139.      rc = SysRegisterObjectClass(classWF2.i.!name,classWF2.i.!dll)
  140.      if (rc) then
  141.           say command':     Successful registration - 'classWF2.i.!name
  142.      else
  143.      do
  144.           say command':     Failed registration - 'classWF2.i.!name' with RC='rc
  145.           exit(rc)
  146.      end
  147. end
  148.  
  149. /*---------------------------------------------------------------------------*/
  150. /* CREATE WORKFRAME/2 OBJECTS                                                */
  151. /*---------------------------------------------------------------------------*/
  152. say command': Creating WorkFrame/2 objects, please wait ...'
  153.  
  154. objectWF2. = ''
  155. objectWF2.0 = 22
  156. /*---------------------------------------------------------------------------*/
  157. objectWF2.1.!classname      = 'WPFolder'
  158. objectWF2.1.!title          = 'IBM WorkFrame/2 V2.1'
  159. objectWF2.1.!location       = '<WP_DESKTOP>'
  160. objectWF2.1.!setup          = 'OBJECTID=<WKF_MAINFOLDER>;NOCOPY=YES;NORENAME=YES;ICONFILE='wf2_directory'\wkframe.ico'
  161. objectWF2.1.!options        = 'replace'
  162. objectWF2.1.!objectid       = '<WKF_MAINFOLDER>'
  163. objectWF2.1.!objectdata.0   = 0
  164. objectWF2.1.!optionsdata.0  = 0
  165. /*---------------------------------------------------------------------------*/
  166. objectWF2.2.!classname      = 'WPFolder'
  167. objectWF2.2.!title          = 'Actions Profiles'
  168. objectWF2.2.!location       = '<WKF_MAINFOLDER>'
  169. objectWF2.2.!setup          = 'OBJECTID=<WKF_PROFILE_FOLDER>;NOCOPY=YES;NORENAME=YES;ICONFILE='wf2_directory'\profold.ico'
  170. objectWF2.2.!options        = 'replace'
  171. objectWF2.2.!objectid       = '<WKF_PROFILE_FOLDER>'
  172. objectWF2.2.!objectdata.0   = 0
  173. objectWF2.2.!optionsdata.0  = 0
  174. /*---------------------------------------------------------------------------*/
  175. objectWF2.3.!classname      = 'WPFolder'
  176. objectWF2.3.!title          = 'Information'
  177. objectWF2.3.!location       = '<WKF_MAINFOLDER>'
  178. objectWF2.3.!setup          = 'OBJECTID=<WKF_INFO_FOLDER>;ICONFILE='wf2_directory'\info.ico'
  179. objectWF2.3.!options        = 'replace'
  180. objectWF2.3.!objectid       = '<WKF_INFO_FOLDER>'
  181. objectWF2.3.!objectdata.0   = 0
  182. objectWF2.3.!optionsdata.0  = 0
  183. /*---------------------------------------------------------------------------*/
  184. objectWF2.4.!classname      = 'WPFolder'
  185. objectWF2.4.!title          = 'Tools'
  186. objectWF2.4.!location       = '<WKF_MAINFOLDER>'
  187. objectWF2.4.!setup          = 'OBJECTID=<WKF_TOOLSFOLDER>;ICONFILE='wf2_directory'\tools.ico'
  188. objectWF2.4.!options        = 'replace'
  189. objectWF2.4.!objectid       = '<WKF_TOOLSFOLDER>'
  190. objectWF2.4.!objectdata.0   = 0
  191. objectWF2.4.!optionsdata.0  = 0
  192. /*---------------------------------------------------------------------------*/
  193. objectWF2.5.!classname      = 'DDE3Router'
  194. objectWF2.5.!title          = 'Action Log'
  195. objectWF2.5.!location       = '<WKF_MAINFOLDER>'
  196. objectWF2.5.!setup          = 'OBJECTID=<WKF_ROUTER>'
  197. objectWF2.5.!options        = 'replace'
  198. objectWF2.5.!objectid       = '<WKF_ROUTER>'
  199. objectWF2.5.!objectdata.0   = 0
  200. objectWF2.5.!optionsdata.0  = 0
  201. /*---------------------------------------------------------------------------*/
  202. objectWF2.6.!classname      = 'DDE3Profile'
  203. objectWF2.6.!title          = 'Default Actions Profile'
  204. objectWF2.6.!location       = '<WKF_PROFILE_FOLDER>'
  205. objectWF2.6.!setup          = 'OBJECTID=<WKF_PROFILE_DFLT>;NODELETE=YES;NOCOPY=YES;NORENAME=YES;ICONFILE='wf2_directory'\DEFPRO.ICO'
  206. objectWF2.6.!options        = 'replace'
  207. objectWF2.6.!objectid       = '<WKF_PROFILE_DFLT>'
  208. objectWF2.6.!objectdata.0   = 11
  209. objectWF2.6.!objectdata.1   = 'WKF_ACTION=Monitored, RUN, *, *.exe'||x2c('0a')||'*.com*.cmd'||x2c('0a')||'*.bat, , DDE3DEF2, RUN, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE, WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,'
  210. objectWF2.6.!objectdata.2   = 'WKF_ACTION=Foreground, RUN, *, *.exe'||x2c('0a')||'*.com'||x2c('0a')||'*.cmd'||x2c('0a')||'*.bat, , DDE3DEF2, RUN, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE, WKF_MENUSCOPE_SHORT, WKF_RUNMODE_DEFAULT,'
  211. objectWF2.6.!objectdata.3   = 'WKF_ACTION=WorkFrame/2, MAKEMAKE, dde3make.exe, , *.mak'||x2c('0a')||'makefile, DDE3DEF2, DEFAULT, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_PROJECT, WKF_MENUSCOPE_SHORT, WKF_RUNMODE_DEFAULT,'
  212. objectWF2.6.!objectdata.4   = 'IF_FOUND=nmake.exe;WKF_ACTION=NMake, MAKE, nmake.exe, *.mak'||x2c('0a')||'makefile, , DDE3DEF2, MAKE, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_BOTH,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR, view toolinfo %TOPIC%, nmake'
  213. objectWF2.6.!objectdata.5   = 'WKF_ACTION=Link, LINK, link386.exe, *.obj'||x2c('0a')||'*.def, *.exe'||x2c('0a')||'*.map'||x2c('0a')||'*.dll, DDE3DEF2, LINK,    WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,    WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,'
  214. objectWF2.6.!objectdata.6   = 'WKF_ACTION=PMLib, LIB, pmlib.exe, *.obj'||x2c('0a')||'*.lib, *.lib'||x2c('0a')||'*.lst, DDE3DEF2, DEFAULT, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_PROJECT, WKF_MENUSCOPE_SHORT, WKF_RUNMODE_DEFAULT,'
  215. objectWF2.6.!objectdata.7   = 'WKF_ACTION=Object Library Manager, LIB, lib.exe, *.obj'||x2c('0a')||'*.lib, *.lib'||x2c('0a')||'*.lst, DDE3DEF2, LIB, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE, WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR, view dde3lib,'
  216. objectWF2.6.!objectdata.8   = 'IF_FOUND=e.exe;WKF_ACTION=System Edit, EDIT, e.exe, *, , DDE3DEF2, EDIT, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_DEFAULT,'
  217. objectWF2.6.!objectdata.9   = 'IF_FOUND=slink.exe;WKF_ACTION=SourceLink, EDIT, slink.exe, *, , DDE3DEF2, EDIT, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_DEFAULT,'
  218. objectWF2.6.!objectdata.10  = 'IF_FOUND=epm.exe;WKF_ACTION=EPM, EDIT, epm.exe, *, , DDE3DEF2, EDIT, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_DEFAULT,'
  219. objectWF2.6.!objectdata.11  = 'WKF_DFLTPROFILE=YES'
  220. objectWF2.6.!optionsdata.0  = 0
  221. /*---------------------------------------------------------------------------*/
  222. objectWF2.7.!classname      = 'DDE3Profile'
  223. objectWF2.7.!title          = 'IBM Toolkit Profile'
  224. objectWF2.7.!location       = '<WKF_PROFILE_FOLDER>'
  225. objectWF2.7.!setup          = 'OBJECTID=<WKF_PROFILE_TLKT>'
  226. objectWF2.7.!options        = 'replace'
  227. objectWF2.7.!objectid       = '<WKF_PROFILE_TLKT>'
  228. objectWF2.7.!objectdata.0   = 14
  229. objectWF2.7.!objectdata.1   = 'WKF_ACTION=Compress, PACKAGE, pack.exe, *, , DDE3DEF2, DEFAULT, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR, view toolinfo %TOPIC%, pack'
  230. objectWF2.7.!objectdata.2   = 'WKF_ACTION=View EXE header, INSPECT, exehdr.exe, *.exe'||x2c('0a')||'*.dll, , DDE3DEF2, DEFAULT, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,view toolinfo %TOPIC%, exehdr'
  231. objectWF2.7.!objectdata.3   = 'WKF_ACTION=Map Symbols, INSPECT, mapsym.exe, *.map, *.sym, DDE3DEF2, DEFAULT, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,view toolinfo %TOPIC%, mapsym'
  232. objectWF2.7.!objectdata.4   = 'WKF_ACTION=Resource Bind, BIND, rc.exe, *.res'||x2c('0a')||'*.exe'||x2c('0a')||'*.dll, *.exe'||x2c('0a')||'*.dll, DDE3DEF2, RESOURCE_BIND, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,view toolinfo %TOPIC%, Resource Compiler'
  233. objectWF2.7.!objectdata.5   = 'WKF_ACTION=Parse and bind messages, BIND, dde3msgb.exe, *.msg'||x2c('0a')||'*.exe'||x2c('0a')||'*.dll, *.exe'||x2c('0a')||'*.dll, DDE3DEF2, MSGBIND_PLUS, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE, WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,view toolinfo %TOPIC%, msgbind'
  234. objectWF2.7.!objectdata.6   = 'WKF_ACTION=Import Lib, LIB, implib.exe, *.def, *.lib, DDE3DEF2, IMPLIB, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,view toolinfo %TOPIC%, implib'
  235. objectWF2.7.!objectdata.7   = 'WKF_ACTION=NMake, MAKE, nmake.exe, *.mak'||x2c('0a')||'makefile, , DDE3DEF2, MAKE, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_BOTH,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,view toolinfo %TOPIC%, nmake'
  236. objectWF2.7.!objectdata.8   = 'WKF_ACTION=IPF Compile, COMPILE, ipfc.exe, *.ipf, *.hlp, DDE3DEF2, IPF_COMPILE, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,view ipfc20'
  237. objectWF2.7.!objectdata.9   = 'WKF_ACTION=Message Compile, COMPILE, mkmsgf.exe, *.txt, *.msg, DDE3DEF2, MESSAGE_COMPILE, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,view toolinfo %TOPIC%, mkmsgf'
  238. objectWF2.7.!objectdata.10  = 'WKF_ACTION=Resource Compile, COMPILE, rc.exe, *.rc, *.res, DDE3DEF2, RESOURCE_COMPILE, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,view toolinfo %TOPIC%, Resource Compiler'
  239. objectWF2.7.!objectdata.11  = 'WKF_ACTION=SOM, COMPILE, sc.exe, *.csc, *.ih, DDE3DEF2, COMPILE, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,view som'
  240. objectWF2.7.!objectdata.12  = 'WKF_ACTION=MARKEXE, EDIT, markexe.exe, *.exe, *.exe, DDE3DEF2, DEFAULT, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,view toolinfo %TOPIC%, markexe'
  241. objectWF2.7.!objectdata.13  = 'WKF_ACTION=Icon Editor, EDIT, iconedit.exe, *.ico, , DDE3DEF2, DEFAULT, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_DEFAULT,view toolinfo %TOPIC%, Icon Editor'
  242. objectWF2.7.!objectdata.14  = 'WKF_ACTION=Dialog Editor, EDIT, dlgedit.exe, *.res, , DDE3DEF2, DEFAULT, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE,  WKF_MENUSCOPE_SHORT, WKF_RUNMODE_DEFAULT,view toolinfo %TOPIC%, Dialog Editor'
  243. objectWF2.7.!optionsdata.0  = 0
  244. /*---------------------------------------------------------------------------*/
  245. objectWF2.8.!classname      = 'DDE3Profile'
  246. objectWF2.8.!title          = 'Sample Actions Profile'
  247. objectWF2.8.!location       = '<WKF_PROFILE_FOLDER>'
  248. objectWF2.8.!setup          = 'OBJECTID=<WKF_PROFILE_SAMPLE>'
  249. objectWF2.8.!options        = 'replace'
  250. objectWF2.8.!objectid       = '<WKF_PROFILE_SAMPLE>'
  251. objectWF2.8.!objectdata.0   = 0
  252. objectWF2.8.!optionsdata.0  = 0
  253. /*---------------------------------------------------------------------------*/
  254. objectWF2.9.!classname      = 'DDE3Profile'
  255. objectWF2.9.!title          = 'CLC Actions Profile'
  256. objectWF2.9.!location       = '<WKF_PROFILE_FOLDER>'
  257. objectWF2.9.!setup          = 'OBJECTID=<WKF_PROFILE_CLC>'
  258. objectWF2.9.!options        = 'replace'
  259. objectWF2.9.!objectid       = '<WKF_PROFILE_CLC>'
  260. objectWF2.9.!objectdata.0   = 5
  261. objectWF2.9.!objectdata.1   = 'WKF_ACTION=CLC C++, COMPILE, icc.exe, *.cpp, *.obj,         DDE4ICC2, COMPILE, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE, WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,'
  262. objectWF2.9.!objectdata.2   = 'WKF_ACTION=CLC Link, LINK, icc.exe, *.obj, *.exe'||x2c('0a')||'*.dll, DDE4ICL2, LINK,    WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE, WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,'
  263. objectWF2.9.!objectdata.3   = 'WKF_ACTION=IPF, COMPILE, ipfc.exe, *.ipf, *.inf'||x2c('0a')||'*.hlp,  DDE3DEF2, DEFAULT, WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE, WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,'
  264. objectWF2.9.!objectdata.4   = 'WKF_ACTION=Lib, LIB, lib.exe, *.lib'||x2c('0a')||'*.obj, ,            DDE3DEF2, LIB,     WKF_ACTIONTYPE_CMD, WKF_ACTIONSCOPE_FILE, WKF_MENUSCOPE_SHORT, WKF_RUNMODE_MONITOR,'
  265. objectWF2.9.!objectdata.5   = 'WKF_ENVIRON=INCLUDE, '||wf2_directory||'\PRJ\CLC\HEADERS^;%INCLUDE%'
  266. objectWF2.9.!optionsdata.0  = 0
  267. /*---------------------------------------------------------------------------*/
  268. objectWF2.10.!classname     = 'DDE3Folder'
  269. objectWF2.10.!title         = 'Samples'
  270. objectWF2.10.!location      = '<WKF_MAINFOLDER>'
  271. objectWF2.10.!setup         = 'OBJECTID=<WKF_COMPPROJ>'
  272. objectWF2.10.!options       = 'replace'
  273. objectWF2.10.!objectid      = '<WKF_COMPPROJ>'
  274. objectWF2.10.!objectdata.0  = 1
  275. objectWF2.10.!objectdata.1  = 'SEQUENCE=Hello World'||x2c('0a')||'CLC;'
  276. objectWF2.10.!optionsdata.0 = 0
  277. /*---------------------------------------------------------------------------*/
  278. objectWF2.11.!classname     = 'DDE3Folder'
  279. objectWF2.11.!title         = 'CLC'
  280. objectWF2.11.!location      = '<WKF_COMPPROJ>'
  281. objectWF2.11.!setup         = 'OBJECTID=<WKF_CLC_FOLDER>'
  282. objectWF2.11.!options       = 'replace'
  283. objectWF2.11.!objectid      = '<WKF_CLC_FOLDER>'
  284. objectWF2.11.!objectdata.0  = 1
  285. objectWF2.11.!objectdata.1  = 'SEQUENCE=DLL'||x2c('0a')||'EXE'||x2c('0a')||'INFO'||x2c('0a')||'LIB;'
  286. objectWF2.11.!optionsdata.0 = 0
  287. /*---------------------------------------------------------------------------*/
  288. objectWF2.12.!classname     = 'WPProgram'
  289. objectWF2.12.!title         = 'Library Utility Reference'
  290. objectWF2.12.!location      = '<WKF_INFO_FOLDER>'
  291. objectWF2.12.!setup         = 'OBJECTID=<WKF_LIBREF>;EXENAME=view.exe;PARAMETERS='wf2_directory'\help\dde3lib.inf;ICONFILE='wf2_directory'\books.ico'
  292. objectWF2.12.!options       = 'replace'
  293. objectWF2.12.!objectid      = '<WKF_LIBREF>'
  294. objectWF2.12.!objectdata.0  = 0
  295. objectWF2.12.!optionsdata.0 = 0
  296. /*---------------------------------------------------------------------------*/
  297. objectWF2.13.!classname     = 'WPProgram'
  298. objectWF2.13.!title         = 'IBM WorkFrame/2 Tutorial'
  299. objectWF2.13.!location      = '<WKF_INFO_FOLDER>'
  300. objectWF2.13.!setup         = 'OBJECTID=<WKF_WF2TUTORIAL>;EXENAME=view.exe;PARAMETERS='wf2_directory'\help\dde3tut.inf;ICONFILE='wf2_directory'\tutor.ico'
  301. objectWF2.13.!options       = 'replace'
  302. objectWF2.13.!objectid      = '<WKF_WF2TUTORIAL>'
  303. objectWF2.13.!objectdata.0  = 0
  304. objectWF2.13.!optionsdata.0 = 0
  305. /*---------------------------------------------------------------------------*/
  306. objectWF2.14.!classname     = 'WPProgram'
  307. objectWF2.14.!title         = 'IBM Library Manager Tutorial'
  308. objectWF2.14.!location      = '<WKF_INFO_FOLDER>'
  309. objectWF2.14.!setup         = 'OBJECTID=<WKF_PMLIBTUTORIAL>;EXENAME=view.exe;PARAMETERS='wf2_directory'\help\dde3ltt.inf;ICONFILE='wf2_directory'\tutor.ico'
  310. objectWF2.14.!options       = 'replace'
  311. objectWF2.14.!objectid      = '<WKF_PMLIBTUTORIAL>'
  312. objectWF2.14.!objectdata.0  = 0
  313. objectWF2.14.!optionsdata.0 = 0
  314. /*---------------------------------------------------------------------------*/
  315. objectWF2.15.!classname     = 'WPProgram'
  316. objectWF2.15.!title         = 'MakeMake'
  317. objectWF2.15.!location      = '<WKF_TOOLSFOLDER>'
  318. objectWF2.15.!setup         = 'OBJECTID=<WKF_MAKEMAKE>;EXENAME='wf2_directory'\bin\dde3make.exe;ICONFILE='wf2_directory'\makemake.ico'
  319. objectWF2.15.!options       = 'replace'
  320. objectWF2.15.!objectid      = '<WKF_MAKEMAKE>'
  321. objectWF2.15.!objectdata.0  = 0
  322. objectWF2.15.!optionsdata.0 = 0
  323. /*---------------------------------------------------------------------------*/
  324. objectWF2.16.!classname     = 'WPProgram'
  325. objectWF2.16.!title         = 'IBM Library Manager'
  326. objectWF2.16.!location      = '<WKF_TOOLSFOLDER>'
  327. objectWF2.16.!setup         = 'OBJECTID=<WKF_PMLIB>;EXENAME='wf2_directory'\bin\pmlib.exe;ICONFILE='wf2_directory'\libutil1.ico'
  328. objectWF2.16.!options       = 'replace'
  329. objectWF2.16.!objectid      = '<WKF_PMLIB>'
  330. objectWF2.16.!objectdata.0  = 0
  331. objectWF2.16.!optionsdata.0 = 0
  332. /*---------------------------------------------------------------------------*/
  333. objectWF2.17.!classname     = 'WPProgram'
  334. objectWF2.17.!title         = 'Setup'
  335. objectWF2.17.!location      = '<WKF_MAINFOLDER>'
  336. objectWF2.17.!setup         = 'OBJECTID=<WKF_SETUP>;EXENAME='wf2_directory'\wfsetup.exe;ICONFILE='wf2_directory'\setup.ico'
  337. objectWF2.17.!options       = 'replace'
  338. objectWF2.17.!objectid      = '<WKF_SETUP>'
  339. objectWF2.17.!objectdata.0  = 0
  340. objectWF2.17.!optionsdata.0 = 0
  341. /*---------------------------------------------------------------------------*/
  342. objectWF2.18.!classname     = 'DDE3Project'
  343. objectWF2.18.!title         = 'Hello World'
  344. objectWF2.18.!location      = '<WKF_COMPPROJ>'
  345. objectWF2.18.!setup         = 'OBJECTID=<WKF_BASE_SAMPLE1>;DIR='wf2_directory'\PRJ\SAMPLE1;MASK=*.c'||x2c('0a')||'*.h'||x2c('0a')||'*.mak;TARGETNAME=SAMPLE1.EXE;MONITOR=WKF_MTR_MINIMIZE;MAKEFILE=SAMPLE1.MAK;'
  346. objectWF2.18.!options       = 'replace'
  347. objectWF2.18.!objectid      = '<WKF_BASE_SAMPLE1>'
  348. objectWF2.18.!objectdata.0  = 0
  349. objectWF2.18.!optionsdata.0 = 3
  350. objectWF2.18.!optionsdata.1 = '1\nCOMPILE::Compile::FILE\n%%f\n%%f(%%i)%%t\n'
  351. objectWF2.18.!optionsdata.2 = '2\nEDIT::Edit::FILE\n%%a %%z\nNULL\n'
  352. objectWF2.18.!optionsdata.3 = '4\nLINK::Link::FILE\n0\n0\n0\n0\n0\n1\n0\n0\n0\n0\n0\n1\n0\n0\n1\n0\n0\n0\nNULL\nNULL\nNULL\nNULL\nNULL\nNULL\nNULL\n%%o\nNULL\nNULL\nNULL\n'
  353. /*---------------------------------------------------------------------------*/
  354. objectWF2.19.!classname     = 'DDE3Project'
  355. objectWF2.19.!title         = 'DLL'
  356. objectWF2.19.!location      = '<WKF_CLC_FOLDER>'
  357. objectWF2.19.!setup         = 'OBJECTID=<WKF_CLC_DLL>;DIR='wf2_directory'\PRJ\CLC\DLL'||x2c('0a')||wf2_directory'\PRJ\CLC\HEADERS;MASK=*;TARGETNAME=CALCFUNC.DLL;MONITOR=WKF_MTR_MINIMIZE;TARGETPATH='wf2_directory'\PRJ\CLC;MAKEFILE=MAK.BAK;PROFILE=<WKF_PROFILE_CLC>'
  358. objectWF2.19.!options       = 'replace'
  359. objectWF2.19.!objectid      = '<WKF_CLC_DLL>'
  360. objectWF2.19.!objectdata.0  = 0
  361. objectWF2.19.!optionsdata.0 = 1
  362. objectWF2.19.!optionsdata.1 = '4\nLINK::Link::FILE\n0\n0\n0\n0\n0\n1\n0\n0\n0\n0\n0\n1\n0\n0\n1\n0\n0\n0\nNULL\nNULL\nNULL\nNULL\nNULL\nNULL\nNULL\n%%o\nNULL\nNULL\nNULL\n'
  363. /*---------------------------------------------------------------------------*/
  364. objectWF2.20.!classname     = 'DDE3Project'
  365. objectWF2.20.!title         = 'EXE'
  366. objectWF2.20.!location      = '<WKF_CLC_FOLDER>'
  367. objectWF2.20.!setup         = 'OBJECTID=<WKF_CLC_EXE>;DIR='wf2_directory'\PRJ\CLC\EXE'||x2c('0a')||wf2_directory'\PRJ\CLC\HEADERS;MASK=*;TARGETNAME=CALC.EXE;MONITOR=WKF_MTR_MINIMIZE;TARGETPATH='wf2_directory'\PRJ\CLC;MAKEFILE=EXE.MAK;PROFILE=<WKF_PROFILE_CLC>;'
  368. objectWF2.20.!options       = 'replace'
  369. objectWF2.20.!objectid      = '<WKF_CLC_EXE>'
  370. objectWF2.20.!objectdata.0  = 0
  371. objectWF2.20.!optionsdata.0 = 1
  372. objectWF2.20.!optionsdata.1 = '4\nLINK::Link::FILE\n0\n0\n0\n0\n0\n1\n0\n0\n0\n0\n0\n1\n0\n0\n1\n0\n0\n0\nNULL\nNULL\nNULL\nNULL\nNULL\nNULL\nNULL\n%%o\nNULL\nNULL\nNULL\n'
  373. /*---------------------------------------------------------------------------*/
  374. objectWF2.21.!classname     = 'DDE3Project'
  375. objectWF2.21.!title         = 'INFO'
  376. objectWF2.21.!location      = '<WKF_CLC_FOLDER>'
  377. objectWF2.21.!setup         = 'OBJECTID=<WKF_CLC_INFO>;DIR='wf2_directory'\PRJ\CLC\INFO'||x2c('0a')||wf2_directory'\PRJ\CLC\HEADERS;MASK=*;MONITOR=WKF_MTR_MINIMIZE;TARGETPATH='wf2_directory'\PRJ\CLC;MAKEFILE=INFO.MAK;PROFILE=<WKF_PROFILE_CLC>'
  378. objectWF2.21.!options       = 'replace'
  379. objectWF2.21.!objectid      = '<WKF_CLC_INFO>'
  380. objectWF2.21.!objectdata.0  = 0
  381. objectWF2.21.!optionsdata.0 = 1
  382. objectWF2.21.!optionsdata.1 = '4\nLINK::Link::FILE\n0\n0\n0\n0\n0\n1\n0\n0\n0\n0\n0\n1\n0\n0\n1\n0\n0\n0\nNULL\nNULL\nNULL\nNULL\nNULL\nNULL\nNULL\n%%o\nNULL\nNULL\nNULL\n'
  383. /*---------------------------------------------------------------------------*/
  384. objectWF2.22.!classname     = 'DDE3Project'
  385. objectWF2.22.!title         = 'LIB'
  386. objectWF2.22.!location      = '<WKF_CLC_FOLDER>'
  387. objectWF2.22.!setup         = 'OBJECTID=<WKF_CLC_LIB>;DIR='wf2_directory'\PRJ\CLC\LIB'||x2c('0a')||wf2_directory'\PRJ\CLC\HEADERS;MASK=*;MONITOR=WKF_MTR_MINIMIZE;TARGETPATH='wf2_directory'\PRJ\CLC;MAKEFILE=LIB.MAK;PROFILE=<WKF_PROFILE_CLC>'
  388. objectWF2.22.!options       = 'replace'
  389. objectWF2.22.!objectid      = '<WKF_CLC_LIB>'
  390. objectWF2.22.!objectdata.0  = 0
  391. objectWF2.22.!optionsdata.0 = 1
  392. objectWF2.22.!optionsdata.1 = '4\nLINK::Link::FILE\n0\n0\n0\n0\n0\n1\n0\n0\n0\n0\n0\n1\n0\n0\n1\n0\n0\n0\nNULL\nNULL\nNULL\nNULL\nNULL\nNULL\nNULL\n%%o\nNULL\nNULL\nNULL\n'
  393. /*---------------------------------------------------------------------------*/
  394. do i=1 to objectWF2.0 
  395.      rc=SysSleep(pause_time)
  396.      rc = SysCreateObject(objectWF2.i.!classname, objectWF2.i.!title, objectWF2.i.!location, objectWF2.i.!setup, objectWF2.i.!options)
  397.      if (rc \= 0) then
  398.      do
  399.           say command':     Successful object creation - 'objectWF2.i.!title
  400.           do j=1 to objectWF2.i.!objectdata.0
  401.                rc=SysSleep(pause_time)
  402.                rc = SysSetObjectData(objectWF2.i.!objectid,objectWF2.i.!objectdata.j)
  403.                if (rc \= 0) then
  404.                do
  405.                     say command':          Successful object initialization 'j' - 'objectWF2.i.!title
  406.                end
  407.                else
  408.                do
  409.                     say command':          Failed object initialization 'j' - 'objectWF2.i.!title' with RC='rc
  410.                     exit(rc)
  411.                end
  412.           end /* do j */
  413.  
  414.           do j=1 to objectWF2.i.!optionsdata.0
  415.                rc=SysSleep(pause_time)
  416.                ''wf2_directory'\wfsetopt.exe "'objectWF2.i.!objectid'" "'objectWF2.i.!optionsdata.j'"'
  417.                if (rc \= 0) then
  418.                do
  419.                     say command':          Successful object option initialization 'j' - 'objectWF2.i.!title
  420.                end
  421.                else
  422.                do
  423.                     say command':          Failed object option initialization 'j' - 'objectWF2.i.!title' with RC='rc' continuing ...'
  424.                end
  425.           end /* do j */
  426.      end
  427.      else
  428.      do
  429.           say command':     Failed object creation - 'objectWF2.i.!title' with RC='rc
  430.           exit(rc)
  431.      end
  432. end /* do i */
  433. /*---------------------------------------------------------------------------*/
  434.  
  435. /*---------------------------------------------------------------------------*/
  436. /* SETUP INSTALLATION PHASE INFORMATION                                      */
  437. /*---------------------------------------------------------------------------*/
  438. say command': Updating system files, please wait ...'
  439. iniFile. = ''
  440. iniFile.0 = 2
  441. iniFile.1.!name = ''
  442. iniFile.1.!app  = 'IBMWFV2'
  443. iniFile.1.!key  = 'PHASE'
  444. iniFile.1.!val  = '2'
  445. iniFile.2.!name = boot_drive'\os2\ibmwfv2.ini'
  446. iniFile.2.!app  = 'IBMWFV2'
  447. iniFile.2.!key  = 'PHASE'
  448. iniFile.2.!val  = '2'
  449.  
  450. do i=1 to iniFile.0
  451.      rc=SysSleep(pause_time)
  452.      rc=SysIni(iniFile.i.!name, iniFile.i.!app, iniFile.i.!key, iniFile.i.!val)
  453.      if (iniFile.i.!name = '') then
  454.           iniFile.i.!name = 'USER' /* display name for default ini file */
  455.      if (rc = '') then
  456.           say command':     Successful ini file update 'i' - 'iniFile.i.!name
  457.      else
  458.      do
  459.           say command':     Failed ini file update 'i' - 'iniFile.i.!name' with RC='rc
  460.           exit(rc)
  461.      end
  462. end
  463.  
  464. say command': SUCCESSFULLY COMPLETED WORKFRAME/2 PHASE 2.'
  465. return 0
  466.