home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / netdor4.zip / SETUP / CONFIG.ITL < prev    next >
Text File  |  1996-04-04  |  62KB  |  1,743 lines

  1. ******************************************************************************
  2. *                        COU Installation ITL Script                         *
  3. ******************************************************************************
  4. *                     Licensed Materials-Property of IBM                     *
  5. *                5604-472 (c) Copyright IBM Corporation, 1993                *
  6. *                            All rights reserved.                            *
  7. *                  US Government Users Restricted Rights -                   *
  8. *                 Use, duplication or disclosure restricted                  *
  9. *                by GSA ADP Schedule Contract with IBM Corp.                 *
  10. ******************************************************************************
  11. msgmode off
  12. * cls
  13. repstr <name>, NetDoor
  14. repstr <lname>, IBM NetDoor/2
  15. repstr <prodid>, COU
  16. repstr <backupdir>, &val({BOOT.DRIVE})\OS2\INSTALL
  17. eval result = date() time()
  18. msgmode &env(COU.VERBOSE), &env(COU.LOG)
  19. repstr <vernum>, &env(COU.VERNUM)
  20. say &val(<lname>) configuration &val(<vernum>) started +
  21.     (&env(COU.INSTTYPE)) -- &result()
  22. errormode halt
  23. synch tag inst 0.1-1
  24. errormode nullenv 0
  25.  
  26. ******************************************************************************
  27. * Initialization                                                             *
  28. ******************************************************************************
  29.  
  30. * Define installation disk numbers
  31. *
  32. repstr <diskroot>, &env(COU.ROOTPATH)DISK_
  33. repstr <diricons>, &val({boot.drive})\OS2\DLL\
  34. repstr <diskclient>, 1
  35. repstr <diskcmpvm>, 1
  36. repstr <diskdlls>, 1
  37. repstr <diskfinal>, 1
  38. * Disk where 1st image ZIP resides
  39. repstr <disksrvimg1>, 2
  40. * Number of image files
  41. repstr <disksrvimgN>, 12
  42. repstr <disksrvcfg>, 1
  43. repstr <disksrvdata>, 1
  44.  
  45. * In the following two sets of values, the first is always a normalized
  46. * directory name (X:\, X:\DIR);  the second is the same but will always
  47. * have a trailing backslash (X:\, X:\DIR\).
  48. *
  49. * Remote (logical) drive/path specification for use during access.
  50. *
  51. repstr <dirremote>, &env(COU.REMOTE)
  52. repstr <dirrempath>, &env(COU.REMOTEPATH)
  53. *
  54. * Local (physical) drive/path specification.
  55. *
  56. repstr <dirlocal>, &env(COU.LOCAL)
  57. * eval result=length('&val(<dirlocal>)')
  58. * if &result() <= 3
  59. *   eval result = ItlErr('Error:  Local directory specification error.')
  60. * endif
  61. repstr <dirlocpath>, &env(COU.LOCALPATH)
  62.  
  63. * Define what type(s) of server, if any, are being installed.
  64. *
  65. repstr <tcpdatasrvonly>, N
  66. if '&env(COU.INSTTYPE)' = 'SERVER'
  67.   if '&env(COU.MASTER)' = '<HERE>'
  68.     repstr <srvmaster>, Y
  69.   else
  70.     repstr <srvmaster>, N
  71.   endif
  72.  
  73. **** PTR 114 start ****
  74.   if ('&env(COU.IMAGEDRIVE<1>)' <> '' & '&env(COU.IMAGEDRIVE<1>)' <> 'NONE')
  75.     repstr <srvtypeimage>, Y
  76.   else
  77.     repstr <srvtypeimage>, N
  78.   endif
  79.   if ('&env(COU.DATADRIVE<1>)' <> '' & '&env(COU.DATADRIVE<1>)' <> 'NONE')
  80. **** PTR 114 end ****
  81.     repstr <srvtypedata>, Y
  82. **** PTR 238 start ****
  83.     if '&env(COU.SRVTYPE<1>)' <> 'DOMAIN'
  84.       repstr <tcpdatasrvonly>, Y
  85.     endif
  86. **** PTR 238 end ****
  87.   else
  88.     repstr <srvtypedata>, N
  89.   endif
  90. else
  91.   repstr <srvtypeimage>, N
  92.   repstr <srvtypedata>, N
  93.   repstr <srvmaster>, N
  94. endif
  95.  
  96. * Define installation directory and file names
  97. *
  98. repstr <dirroot>, &val(<dirlocpath>)
  99.  
  100. if '&env(COU.INSTCLASS)' = 'PRODUCT'
  101.   repstr <dirsystem>, &val(<dirroot>)SYSTEM
  102.   repstr <dirdata>, &val(<dirroot>)DATA
  103.   repstr <dirdll>, &val(<dirroot>)DLL
  104.   repstr <dirsysdata>, &val(<dirroot>)SYSDATA
  105.   repstr <fileini>, &val(<dirsystem>)\NETDOOR.INI
  106.   if '&val(<srvtypedata>)' = 'Y'
  107.     repstr <dircoudata>, &env(COU.DATADRIVE)\COUDATA
  108.   endif
  109. else
  110.   repstr <dirsystem>, &val(<dirroot>)COREDATA
  111.   repstr <dirdata>, &val(<dirroot>)USERDATA
  112.   repstr <dirdll>, &val(<dirroot>)MYDLL
  113.   repstr <dirsysdata>, &val(<dirroot>)CORESTUF
  114.   repstr <fileini>, &val(<dirsystem>)\CORE.INI
  115.   if '&val(<srvtypedata>)' = 'Y'
  116.     repstr <dircoudata>, &env(COU.DATADRIVE)\CORESTUF
  117.   endif
  118. endif
  119.  
  120. if &val({OS2VER}) >= 2.0
  121.   repstr <groupid>, <CORE_COREFOLDER>
  122. else
  123.   repstr <groupid>, &val(<name>)
  124. endif
  125. repstr <dirremadmtools>, &val(<dirrempath>)ADMTOOLS
  126. repstr <direxe>, &val(<dirroot>)UTIL
  127. repstr <dirtemp>, &val(<dirroot>)TEMP
  128. repstr <dirhelp>, &val(<dirroot>)HELP
  129. repstr <diroldconfg>, &val(<dirroot>)OLDCONFG
  130. repstr <dircache>, &val(<dirroot>)CACHE
  131. repstr <dirlogs>, &val(<dirroot>)LOGS
  132. repstr <dirstage>, &val(<dirroot>)COUSTAGE
  133. repstr <fileclientzip>, CLIENT.ZIP
  134. repstr <filesrvzip>, SERVER.ZIP
  135. repstr <nameinit>, Open &val(<name>)
  136. repstr <fileinitexe>, OPENDOOR.EXE
  137. repstr <fileinittype>, PM
  138. repstr <fileinitid>, OPENDOOR
  139. repstr <fileaddexe>, &val(<dirrempath>)CATALOG.EXE
  140. repstr <filenewpwexe>, &val(<dirrempath>)NEWPW.EXE
  141. repstr <filedooradmexe>, &val(<dirrempath>)ADMTOOLS\DOORADM.EXE
  142. repstr <filesyslevel>, SYSLEVEL.&val(<prodid>)
  143. if &val({OS2VER}) >= 2.0
  144.   eval result = x2c('0A')
  145.   repstr <lf>, &result()
  146.   repstr <namemaintS>, NetDoor Maintenance&val(<lf>)Status
  147.   repstr <namemaintO>, NetDoor Maintenance&val(<lf>)Options
  148.   repstr <catname>, <FOLDER>&val(<name>)
  149. else
  150.   repstr <namemaintS>, NetDoor Maintenance Status
  151.   repstr <namemaintO>, NetDoor Maintenance Options
  152.   repstr <catname>, &val(<name>)
  153. endif
  154. repstr <filemaintexe>, MAINT.EXE
  155. repstr <filefixlog>, &val(<dirdata>)\MAINT.LOG
  156. repstr <filetimeadm>, &val(<dirdata>)\TIMEXEC.ADM
  157. repstr <fileuserinit>, &val(<dirsystem>)\USERINIT.CMD
  158. repstr <fileservers>, SERVERS.COR
  159. if '&val(<srvtypeimage>)' = 'Y'
  160.   repstr <dirimage>, &env(COU.IMAGEDRIVE)\COUIMAGE
  161.   repstr <diradmtools>, &val(<dirimage>)\ADMTOOLS
  162. endif
  163. if '&env(COU.CMDRIVE<1>)' <> ''
  164.   repstr <dircm>, &env(COU.CMDRIVE)\CMLIB
  165. endif
  166.  
  167. eval result = date('e')
  168. repstr <date>, &result()
  169. eval result = time('c')
  170. repstr <time>, &result()
  171. repstr <timestamp>, &val(<date>)\&val(<time>)&val({NULL})
  172.  
  173. ****** (0)  Create pointer in OS2.INI file
  174. * Assume following handled by INSTALL.EXE
  175. * if '&env(COU.INSTCLASS)' = 'PRODUCT'
  176. *   addini USER, COU, Environment, 1&val({NULL})
  177. * else
  178. *   addini USER, COU, Environment, 0&val({NULL})
  179. * endif
  180. eval result=rxCouInfo('SET', 'INIFILE', '&val(<fileini>)')
  181.  
  182. ******************************************************************************
  183. if '&env(COU.JUMP<1>)' <> ''
  184.   goto &env(COU.JUMP)
  185. endif
  186. * if '&val({SYNCHPOINT})' <> ''
  187. *   goto &val({SYNCHPOINT})
  188. * endif
  189.  
  190. ******************************************************************************
  191. synch 1
  192. :INST-1
  193. if '&env(COU.INSTTYPE)' = 'SERVER'
  194.   say Configuring &val(<name>) server for &env(COU.ACCMETH) access.
  195.   if '&val(<srvtypeimage>)' = 'Y'
  196.     say   Server will provide a &val(<name>) image.
  197.   endif
  198.   if '&val(<srvtypedata>)' = 'Y'
  199. **** PTR 238 start ****
  200.     if '&val(<tcpdatasrvonly>)' = 'Y'
  201.       say   Server will provide &val(<name>) data services (TCP/IP only).
  202.     else
  203.       say   Server will provide &val(<name>) data services.
  204.     endif
  205. **** PTR 238 end ****
  206.   endif
  207.   if '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES'
  208.     say   Services will be provided via NETBIOS.
  209.   endif
  210.   if '&env(COU.PROTOCOL.NFS<1>)' = 'YES'
  211.     say   Services will be provided via NFS.
  212.   endif
  213. else
  214.   say Configuring &val(<name>) client for &env(COU.ACCMETH) access.
  215. endif
  216.  
  217. ******************************************************************************
  218. * Create client directory tree                                               *
  219. ******************************************************************************
  220. say
  221. say Creating &val(<name>) client directories...
  222.  
  223. ** The following directories are assumed to exist by unless reconfigured
  224. ** by the user.
  225. **
  226. md &val(<dirsystem>)
  227. md &val(<dirdata>)
  228. md &val(<dirdll>)
  229. md &val(<direxe>)
  230. md &val(<dirhelp>)
  231. md &val(<dirtemp>)
  232. md &val(<diroldconfg>)
  233. md &val(<dirstage>)
  234. * if '&env(COU.ACCMETH)' = 'CD-ROM'
  235. *   md &val(<dircache>)
  236. * endif
  237.  
  238. if '&env(COU.INSTTYPE)' = 'SERVER'
  239.   say Creating &val(<name>) server directories...
  240.   md &val(<dirlogs>)
  241.   md &val(<dirlogs>)\NOTIFY
  242.  
  243.   if '&val(<srvtypedata>)' = 'Y'
  244.     say Creating data directories...
  245.     md &val(<dircoudata>)
  246.   endif
  247.  
  248.   if '&val(<srvtypeimage>)' = 'Y'
  249.     say Creating image directory...
  250.     md &val(<dirimage>)
  251.   endif
  252. endif
  253.  
  254. ******************************************************************************
  255. * CONFIG.SYS modifications.                                                  *
  256. ******************************************************************************
  257. synch 2
  258. :INST-2
  259. repstr <sysfile>, &val({BOOT.DRIVE})\CONFIG.SYS
  260. say
  261. say Modifying &val(<sysfile>)...
  262.  
  263. rf &val(<sysfile>)
  264. eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
  265.  
  266. ****** (2a) Update LIBPATH
  267. say   Checking &val(<name>) entries in LIBPATH...
  268.  
  269. cp LIBPATH, ., begin, force
  270. cp LIBPATH, &val(<dirdll>), after ., force
  271. cp LIBPATH, &val(<dirrempath>)LOCAL\DLL, end, force
  272. cp LIBPATH, &val(<dirrempath>)DLL, end, force
  273. if '&env(COU.INSTCLASS)' = 'IUO'
  274.   cp PATH, &val({boot.drive})\OS2\APPS\DLL, delete
  275.   cp LIBPATH, &val({boot.drive})\OS2\APPS\DLL, after &val(<dirrempath>)DLL, force
  276. endif
  277.  
  278. ****** (2b) Update PATH
  279. say   Checking &val(<name>) entries in PATH...
  280. cp PATH, &val(<direxe>), begin, force
  281. cp PATH, &val(<dirsystem>), after &val(<direxe>), force
  282. cp PATH, &val(<dirrempath>)LOCAL, end, force
  283. cp PATH, &val(<dirremote>), end, force
  284. if '&env(COU.INSTCLASS)' = 'IUO'
  285.   cp PATH, &val({boot.drive})\OS2\APPS, after &val(<dirremote>), force
  286. endif
  287.  
  288. if '&env(COU.INSTTYPE)' = 'SERVER'
  289.   cp PATH, &val(<dirremadmtools>), end, force
  290.   if '&env(COU.INSTCLASS)' = 'IUO'
  291.     cp PATH, &val(<dirroot>)REBOOT, delete
  292.   endif
  293. endif
  294.  
  295. ****** (2c) Update DPATH
  296. say   Checking &val(<name>) entries in DPATH...
  297. cp DPATH, &val(<dirdata>), begin
  298. if '&env(COU.INSTCLASS)' = 'PRODUCT'
  299.   cp DPATH, &val(<dirrempath>)LOCAL\COMPLEX, end, force
  300. else
  301.   cp DPATH, &val(<dirrempath>)LOCAL\SITE, end, force
  302.   cp DPATH, &val(<dirremote>), delete
  303.   cp DPATH, &val(<direxe>), delete
  304.   cp DPATH, &val(<dirroot>)MAIL, delete
  305.   cp DPATH, &val(<dirrempath>)USERDATA, delete
  306. endif
  307.  
  308. ****** (2d) Update HELP
  309. say   Checking &val(<name>) entries in HELP path...
  310. if '&env(COU.INSTCLASS)' = 'PRODUCT'
  311.   cp HELP, &val(<dirhelp>), end, force
  312.   cp HELP, &val(<dirrempath>)LOCAL\HELP, end, force
  313.   cp HELP, &val(<dirrempath>)HELP, end, force
  314. else
  315.   cp HELP, &val(<dirhelp>), end, force
  316.   cp HELP, &val(<dirrempath>)LOCAL\BOOK, end, force
  317.   cp HELP, &val(<dirrempath>)BOOK, end, force
  318. endif
  319.  
  320. ****** (2e) Update BOOKSHELF
  321. say   Checking &val(<name>) entries in BOOKSHELF path...
  322. cp BOOKSHELF, &val(<dirrempath>)LOCAL\BOOK, end, force
  323. cp BOOKSHELF, &val(<dirrempath>)BOOK, end, force
  324.  
  325. ****** (2f) Update BOOKMGR
  326. say   Checking &val(<name>) entries in BOOKMGR path...
  327. eval result=Find('SET BOOKSHELF', 'ALL+', 'BEGIN')
  328. if '&env(COU.INSTCLASS)' = 'PRODUCT'
  329. **** PTR 10038 start ****
  330.   cp READIBM, &val(<dirrempath>)LOCAL\BOOKS, end, force
  331.   cp READIBM, &val(<dirrempath>)BOOKS, end, force
  332. **** PTR 10038 end ****
  333.   cp BOOKMGR, &val(<dirrempath>)LOCAL\BOOKS, end, force
  334.   cp BOOKMGR, &val(<dirrempath>)BOOKS, end, force
  335. else
  336. **** PTR 10038 start ****
  337.   cp READIBM, &val(<dirrempath>)LOCAL\BOOKMGR, end, force
  338.   cp READIBM, &val(<dirrempath>)BOOKMGR\BOOKS, end, force
  339. **** PTR 10038 end ****
  340.   cp BOOKMGR, &val(<dirrempath>)LOCAL\BOOKMGR, end, force
  341.   cp BOOKMGR, &val(<dirrempath>)BOOKMGR\BOOKS, end, force
  342. endif
  343.  
  344. ****** (2g) (IUO only) Add environment variables
  345. if '&env(COU.INSTCLASS)' = 'IUO'
  346.   say   Setting environment variables...
  347.   repstr <coucmt>, ** &val(<name>) commands follow **
  348.   rem &val(<coucmt>), bottom, , blank
  349.   env CORE.DIR , &val(<dirrempath>), after &val(<coucmt>)
  350.   env USER.DIR,  &val(<dirlocpath>), after &val(<coucmt>)
  351.   env USER.DATA, &val(<dirdata>), after &val(<coucmt>)
  352.   ** Remove obsolete environment variables that might exist from previous use.
  353.   env CORE.DRIVE,,REMOVE
  354.   env USER.DRIVE,,REMOVE
  355.   env TEMP.DIR,,REMOVE
  356.   ** Delete erroneous SET TIMESLICE statement that may have been inserted
  357.   ** by a previous version of the install.
  358.   remall SET TIMESLICE, delete
  359. else
  360.   remall CORE.DIR
  361.   remall USER.DIR
  362.   remall USER.DATA
  363. endif
  364.  
  365. ****** (2h) Add LCSF support (CD-ROM only)
  366. * if '&env(COU.ACCMETH)' = 'CD-ROM'
  367. *   env LCSFCACH, &env(COU.CACHEDIR), after &val(<coucmt>)
  368. *   remall LCSF.IFS
  369. *   remall LCSF20.IFS
  370. *   cmd IFS=&val(<direxe>)\LCSF20.IFS
  371. * endif
  372.  
  373. ****** (2i) Force IOPL=YES
  374. ** Removed from standard config -- not required by product.
  375. * cmd IOPL=YES, before BUFFERS=
  376.  
  377. ****** (2j) Update BUFFERS
  378. ** Per info in Personal Systems 10/92, page 31, large number of buffers is no
  379. ** longer required by OS/2 2.0.  Use 3 for systems that are entirely HPFS, 10 for
  380. ** all FAT or mixed systems.  On 1.3 systems, use 64.  However, empirical evidence
  381. ** suggests that more buffers are required for 2.0 systems with a CD-ROM drive
  382. ** attached.
  383. if &val({OS2VER}) >= 2.0
  384.   if '&env(COU.ACCMETH)' = 'CD-ROM'
  385.     numchk BUFFERS, 30, 100, 30
  386.   else
  387.     if '&env(COU.FATMAP<1>)' = ''
  388.       numchk BUFFERS, 3, 100, 3
  389. *     numchk BUFFERS, 3, 3, 3 - Force to 3
  390.     else
  391.       numchk BUFFERS, 10, 100, 10
  392. *     numchk BUFFERS, 10, 10, 10 - Force to 10
  393.     endif
  394.   endif
  395. else
  396.   numchk BUFFERS, 64, 100, 64
  397. endif
  398.  
  399. ****** (2k) Update THREADS
  400. ** THREADS=512 may be overkill on 2.x systems;  if reduced, should not go
  401. ** below 256.
  402. if '&env(COU.INSTTYPE)' = 'SERVER'
  403.   if &val({OS2VER}) >= 2.0
  404.     numchk THREADS, 512, 4095, 512
  405.   else
  406.     numchk THREADS, 512, 512, 512
  407.   endif
  408. else
  409.   if &val({OS2VER}) >= 2.0
  410.     numchk THREADS, 512, 4095, 512
  411.   else
  412.     numchk THREADS, 256, 512, 256
  413.   endif
  414. endif
  415.  
  416. ****** (2l) (2.x only) Set RESTARTOBJECTS if not already specified
  417. ** Not strictly required by product, but makes OS/2 2.x work more as expected
  418. ** by the average user.  Also, eliminates problems with the shell trying to
  419. ** restart broken applications which can hang OS/2.
  420. ****** (2l1) (2.x only) Set AUTOSTART
  421. ** CONNECTIONS on AUTOSTART line conflicts with COREUP strategy.
  422. if &val({OS2VER}) >= 2.0
  423.   cmd SET RESTARTOBJECTS=STARTUPFOLDERSONLY, TOP, ,NEWONLY
  424. endif
  425. if &val({OS2VER}) >= 2.0 & &val({OS2VER}) < 2.3
  426.   cmd SET AUTOSTART=PROGRAMS&val({comma})TASKLIST&val({comma})FOLDERS
  427. else
  428.   if &val({OS2VER}) >= 2.3
  429.     cmd SET AUTOSTART=PROGRAMS&val({comma})TASKLIST&val({comma})FOLDERS&val({comma})LAUNCHPAD
  430.   endif
  431. endif
  432.  
  433. ****** (2m) (2.x only) Set template DELDIR environment variable
  434. * if &val({OS2VER}) >= 2.0
  435. *   if '&env(COU.DELDIRCMD<1>)' <> ''
  436. *     eval SetCurL('BOTTOM')
  437. *     rem *** UnREM the following command to enable UNDELETE.
  438. *     rem &env(COU.DELDIRCMD), BOTTOM
  439. *   endif
  440. * endif
  441.  
  442. ****** (2n) (1.x only) Activate COM02 device driver
  443. ** Removed from standard config -- not required by product
  444. * if &val({OS2VER}) < 2.0
  445. *   cmd DEVICE=&val({BOOT.DRIVE})\OS2\COM02.SYS
  446. * endif
  447.  
  448. ****** (2o) (NETBIOS server only) Update cache sizes
  449. ** CACHE statement is redundant in 1.3/2.0 - started by PMSHELL instead
  450. * remall RUN=&val({BOOT.DRIVE})\OS2\CACHE.EXE
  451. if '&env(COU.INSTTYPE)' = 'SERVER' & '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES'
  452.   say   Updating disk cache sizes...
  453.   * For LS 1.x systems (CSD < 6000)
  454.   if &env(COU.LSCSD) < 6000
  455.     * (If SOME drives are HPFS...)
  456.     if '&env(COU.HPFSMAP<1>)' <> ''
  457.       cmd IFS=&val({BOOT.DRIVE})\OS2\HPFS.IFS /C:128 +
  458.           /AUTOCHECK:&env(COU.HPFSMAP), top
  459.       if '&val(<srvtypeimage>)' = 'Y'
  460.         cmd DISKCACHE=5976&val({comma})128
  461.       else
  462.         cmd DISKCACHE=5217&val({comma})128
  463.       endif
  464.     * (else all drives are FAT...)
  465.     else
  466.       cmd DISKCACHE=2048&val({comma})128
  467.     endif
  468.   * For LS 2.x/3.x/4.x systems
  469.   else
  470.     * For LS 2.x/3.x
  471.     if &env(COU.LSCSD) < 8000
  472.       repstr <dir386fs>, &val({BOOT.DRIVE})\IBM386FS\
  473.       * (If all drives are HPFS386...)
  474.       if '&env(COU.FATMAP<1>)' = ''
  475.   **** PTR 10206 removed /USEALLMEM from following line
  476.         cmd IFS=&val(<dir386fs>)HPFS386.IFS &val(<dir386fs>)HPFS200.386 +
  477.             /I:&env(COU.LSDRIVE)\IBMLAN /C:3586 /A:*, top
  478.       * (else SOME or ALL are FAT...)
  479.       else
  480.         cmd DISKCACHE=1793&val({comma})LW&val({comma})128&val({comma})+
  481.             AC:&env(COU.FATMAP)
  482.         * (If any are HPFS386...)
  483.   **** PTR 10055 start ****
  484.         if '&env(COU.HPFSMAP<1>)' <> ''
  485.   **** PTR 10055 end *****
  486.   **** PTR 10206 removed /USEALLMEM from following line
  487.           cmd IFS=&val(<dir386fs>)HPFS386.IFS &val(<dir386fs>)HPFS200.386 +
  488.               /I:&env(COU.LSDRIVE)\IBMLAN /C:1793 /A:*, top
  489.         endif
  490.       endif
  491.     endif
  492.   endif
  493. endif
  494.  
  495. ****** (2p) Miscellaneous settings
  496. if '&env(COU.INSTTYPE)' = 'SERVER'
  497.   * Force SWAPDOS for 1.x servers for extra memory.
  498.   if &val({OS2VER}) < 2.0
  499.     cmd MEMMAN=SWAP&val({comma})MOVE&val({comma})SWAPDOS
  500.   endif
  501.  
  502.   if '&env(COU.INSTCLASS)' = 'IUO'
  503.     envvar KEYS, ON
  504.   endif
  505. endif
  506.  
  507. ****** (2q) (CMPVM only) Set CMPVM values (Only on CM.  Ignored if CM/2 installed.)
  508. if ('&env(COU.CMPVM<1>)' = 'Y' & +
  509.     ('&env(COU.CMDRIVE<1>)' <> '' | '&env(COU.CM2DRIVE<1>)' <> ''))
  510.   say
  511.   say   Installing CM/PVM...
  512.  
  513.   env CMPVM.HOSTNODE, &env(COU.HOSTSYS<1>),       bottom
  514.   env CMPVM.GATENAME, &env(COU.CMPVMGATE<1>),     bottom
  515.   env CMPVM.USERNAME, &env(COU.MACHNAME<1>)-WSN,  bottom
  516.   env CMPVM.LTS,      5,                          bottom
  517.   env CMPVM.LANA,     0,                          bottom
  518. endif
  519.  
  520. wf &val(<backupdir>), N=&val(<prodid>)
  521.  
  522. ******************************************************************************
  523. * STARTUP.CMD modifications.                                                 *
  524. ******************************************************************************
  525. synch 3
  526. :INST-3
  527. repstr <startup>, &val({BOOT.DRIVE})\STARTUP.CMD
  528. say
  529. say Modifying &val(<startup>)...
  530. rf &val(<startup>)
  531. eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
  532.  
  533. **** PTR 10116 start ****
  534. repstr <AgentActive>, N
  535. eval Result = FIND('\LCU.CMD', 'ALL+')
  536. if '&result()' = '0'
  537.   eval Result = SETCURL(CURLN() + 2)
  538.   repstr <AgentActive>, Y
  539. else
  540.   eval Result = FIND('\NFSRFI.CMD', 'ALL+')
  541.   if '&result()' = '0'
  542.     eval Result = SETCURL(CURLN() + 2)
  543.     repstr <AgentActive>, Y
  544.   else
  545.     eval Result = FIND('CASAGENT', 'ALL+')
  546.     if '&result()' = '0'
  547.       eval Result = SETCURL(CURLN() + 2)
  548.       repstr <AgentActive>, Y
  549.     endif
  550.   endif
  551. endif
  552.  
  553. ****** (3a) (NETBIOS only) Remove conflicts
  554. ** Remove lines that might conflict with product, or are superfluous.
  555. remall csrvup
  556. if '&env(COU.ACCMETH)' = 'NETBIOS'
  557.   remall logon
  558.   remall net start req, delete
  559.   remall net start rdr, delete
  560.   remall net start requester, delete
  561.   remall LCSF
  562.   if '&env(COU.INSTTYPE)' = 'SERVER'
  563.     remall net start server, delete
  564.     if '&val(<AgentActive>)' = 'Y'
  565.       cmd NET START SRV, AFTER
  566.     else
  567.       cmd NET START SRV, TOP
  568.     endif
  569.   endif
  570. endif
  571. **** PTR 10126 start ****
  572. if '&env(COU.ACCMETH)' = 'NFS' & '&env(COU.INSTTYPE)' = 'SERVER'
  573.   eval Result=SysDestroyObject('<TCP/IP50>')
  574.   if '&val(<AgentActive>)' = 'Y'
  575.     cmd CALL TCPSTART, AFTER
  576.   else
  577.     cmd CALL TCPSTART, TOP
  578.   endif
  579. endif
  580. **** PTR 10126 end ****
  581.  
  582. ****** (3b/c) General, Product modifications
  583. remall coreup, delete
  584. remall &val(<fileinitexe>), delete
  585. if '&env(COU.STARTUP)' = 'CMD'
  586.   if '&env(COU.ACCMETH)' = 'NETBIOS'
  587.     repstr <WhereInit>, after NET START
  588.   else
  589. **** PTR 10126a start ****
  590.     if '&env(COU.ACCMETH)' = 'NFS'
  591.       repstr <WhereInit>, after TCPSTART
  592.     else
  593. **** NB: Following IF is probably superfluous.
  594.       if '&val(<AgentActive>)' = 'Y'
  595.         repstr <WhereInit>, after
  596.       else
  597.         repstr <WhereInit>, top
  598.       endif
  599.     endif
  600.   endif
  601. **** PTR 10126a end ****
  602.  
  603.   cmd @call &val(<dirsystem>)\&val(<fileinitexe>), &val(<WhereInit>), +
  604.       &val(<fileinitexe>)
  605.   cmd @exit, bottom
  606. endif
  607. **** PTR 10116 end ****
  608.  
  609. wf &val(<backupdir>), N=&val(<prodid>)
  610.  
  611. ******************************************************************************
  612. * AUTOEXEC.BAT modifications.                                                *
  613. ******************************************************************************
  614. synch 4
  615. :INST-4
  616. repstr <fileautoexec>, &val({BOOT.DRIVE})\AUTOEXEC.BAT
  617. say
  618. say Modifying &val(<fileautoexec>)...
  619. rf &val(<fileautoexec>)
  620. eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
  621.  
  622. cp PATH, &val(<dirrempath>)LOCAL, end, force
  623. cp PATH, &val(<dirremote>), end, force
  624. * if &val({OS2VER}) >= 2.0
  625. *   if '&env(COU.DELDIRCMD<1>)' <> ''
  626. *     eval SetCurL('BOTTOM')
  627. *     rem *** UnREM the following command to enable UNDELETE.
  628. *     rem &env(COU.DELDIRCMD), BOTTOM
  629. *   endif
  630. * endif
  631.  
  632. wf &val(<backupdir>), N=&val(<prodid>)
  633.  
  634. ******************************************************************************
  635. * USERINIT modifications                                                     *
  636. ******************************************************************************
  637. synch 5
  638. :INST-5
  639. say
  640. say Modifying &val(<fileuserinit>)...
  641. rf &val(<fileuserinit>)
  642. eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
  643.  
  644. if '&env(COU.INSTTYPE)' = 'SERVER'
  645.   cmd CALL SRVINIT.CMD
  646. endif
  647.  
  648. wf &val(<backupdir>), N=&val(<prodid>)
  649.  
  650. ******************************************************************************
  651. * IBMLAN.INI Modification (NETBIOS only)                                     *
  652. ******************************************************************************
  653. synch 6
  654. :INST-6
  655.  
  656. if '&env(COU.ACCMETH)' = 'NETBIOS' | '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES'
  657.   if '&env(COU.INSTTYPE)' = 'CLIENT' |  ('&env(COU.INSTTYPE)' = 'SERVER' & '&env(COU.LSCSD<1>)' < 8000)
  658.     repstr <ibmlanini>, &env(COU.LRDRIVE)\IBMLAN\IBMLAN.INI
  659.     say
  660.     say Modifying &val(<ibmlanini>)...
  661.     rf &val(<ibmlanini>)
  662.     eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
  663.  
  664.     if '&env(COU.HPFS386)' = 1
  665.       if '&env(COU.FATMAP<1>)' = ''
  666.         repstr <hpfs386>, ALL
  667.       else
  668.         if '&env(COU.HPFSMAP<1>)' = ''
  669.           repstr <hpfs386>, NO
  670.         else
  671.           repstr <hpfs386>, SOME
  672.         endif
  673.       endif
  674.     else
  675.       repstr <hpfs386>, NO
  676.     endif
  677.  
  678.   ****** (6a) Modify DOMAIN= parameter.
  679.   ** Removed -- assumed set correctly during LAN Req install
  680.   *  cmd ..  DOMAIN = &env(CS.PRIDOM)..
  681.  
  682.   ****** (6b) Modify OTHDOMAINS= parameter, logonverification if LR 3.0
  683.     if '&env(COU.INIOTHDOMAINS<1>)' <> ''
  684.       cmd ..  othdomains = &env(COU.INIOTHDOMAINS)..
  685.     endif
  686.     if &env(COU.LRCSD) >= 7000
  687.       cmd ..  logonverification = domain..
  688.     endif
  689.  
  690.   ****** (6c) Modify operating parameters
  691.     if '&env(COU.INSTTYPE)' = 'CLIENT'
  692.       if &env(COU.LRCSD) < 6000
  693.         * Set DOS session printing timeout to 8 seconds
  694.         numchk WRKHEURISTICS 31, 0, 0
  695.       else
  696.         * Increase maxcmds (default is 16)
  697.         numchk MAXCMDS,         48, 255, 48
  698.         * Increase maxthreads (default is 10)
  699.         numchk MAXTHREADS,      30, 254, 30
  700.         * Increase numworkbuf (default is 15)
  701.         numchk NUMWORKBUF,      45,  50, 45
  702.       endif
  703.     endif
  704.  
  705.     if '&env(COU.INSTTYPE)' = 'SERVER'
  706.   ** LS 1.x systems
  707.       if &env(COU.LSCSD) < 6000
  708.         repstr <netx>, netbios$&val({comma})0&val({comma})NB30
  709.         if '&val(<srvtypeimage>)' = 'N'
  710.           cmd ..  net1=&val(<netx>)&val({comma}) +
  711.               133&val({comma})145&val({comma})16.., after [networks]
  712.           numchk MAXUSERS,     115,  254,  115
  713.           numchk MAXLOCKS,     550, 8000,  550
  714.           if '&val(<HPFS386>)' <> 'ALL'
  715.             numchk MAXOPENS,  5500, 8000, 5500
  716.             numchk MAXSEARCHES, 50, 1927,   50
  717.           endif
  718.           if '&val(<HPFS386>)' = 'ALL'
  719.             numchk NUMBIGBUF,    0,    0,    0
  720.           else
  721.             numchk NUMBIGBUF,   43,  128,   43
  722.           endif
  723.           numchk SRVPIPES,       9,   20,    9
  724.         else
  725.           cmd ..  net1=&val(<netx>)&val({comma}) +
  726.               205&val({comma})145&val({comma})16.., after [networks]
  727.           numchk MAXUSERS,     201,  254,  201
  728.           numchk MAXLOCKS,     800, 8000,  800
  729.           if '&val(<HPFS386>)' <> 'ALL'
  730.             numchk MAXOPENS,  8000, 8000, 8000
  731.             numchk MAXSEARCHES, 60, 1927,   60
  732.           endif
  733.           if '&val(<HPFS386>)' = 'ALL'
  734.             numchk NUMBIGBUF,    0,    0,    0
  735.           else
  736.             numchk NUMBIGBUF,   45,  128,   45
  737.           endif
  738.           numchk SRVPIPES,      16,   20,   16
  739.         endif
  740.         numchk MAXCMDS,         32,   255,  32
  741.         numchk MAXTHREADS,      20,   254,  20
  742.         numchk AUTODISCONNECT, 120, 65535, 120
  743.         cmd ..  cleanup = no.., AFTER autodisconnect =
  744.         numchk MAXCHDEVJOB,       8, 65535,   8
  745.         numchk MAXCHDEVQ,         8, 65535,   8
  746.         numchk MAXCHDEVS,         8,    16,   8
  747.         numchk MAXCONNECTIONS, 1024,  1024
  748.         numchk MAXSESSOPENS,     55,  8000,  55
  749.         numchk MAXSHARES,        50,   500,  50
  750.         numchk NUMREQBUF,       120,   408, 120
  751.  
  752.         * Turn off opp file locking - LS bug
  753.         numchk WRKHEURISTICS 0, 0, 0
  754.         numchk SRVHEURISTICS 0, 0, 0
  755.         * Set scavenger thread interval to 20 seconds (default is 10)
  756.         numchk SRVHEURISTICS 10, 3, 3
  757.         * Set number of 64KB read-ahead buffers to at least 4 (default is 1)
  758.         numchk SRVHEURISTICS 13, 4, 9, 4
  759.       endif
  760.  
  761.  
  762.   ** LS 2.x, 3.x systems (HPFS386)
  763.       if &env(COU.LSCSD) >= 6000
  764.         repstr <netx>, netbeui$&val({comma})0&val({comma})LM10
  765.         if '&val(<srvtypeimage>)' <> 'Y'
  766.   *       ** AS, 1 16/4 or BusMaster adapter (max 81 users)
  767.           cmd ..  net1=&val(<netx>)&val({comma}) +
  768.               84&val({comma})187&val({comma})15.., after [networks]
  769.           numchk MAXUSERS, 81, 1000, 81
  770.           if '&val(<HPFS386>)' <> 'ALL'
  771.             numchk MAXCONNECTIONS, 972, 2000, 972
  772.           endif
  773.           numchk NUMREQBUF, 36, 300, 36
  774.           numchk SRVPIPES, 6, 20, 6
  775.         else
  776.   *       ** DC, 1 16/4 or BusMaster adapter (max 100 users)
  777.           cmd ..  net1=&val(<netx>)&val({comma}) +
  778.               123&val({comma})245&val({comma})15.., after [networks]
  779.           numchk MAXUSERS, 110, 1000, 110
  780.           if '&val(<HPFS386>)' <> 'ALL'
  781.             numchk MAXCONNECTIONS, 1260, 2000, 1260
  782.           endif
  783.           numchk NUMREQBUF, 220, 300, 220
  784.           numchk SRVPIPES, 9, 20, 9
  785.         endif
  786.         numchk MAXSHARES, 50, 500, 50
  787.         if '&val(<HPFS386>)' <> 'ALL'
  788.           numchk MAXLOCKS, 550, 8000, 550
  789.           numchk MAXOPENS, 5500, 8000, 550
  790.           * Set scavenger thread interval to 15 seconds (default is 10)
  791.           numchk SRVHEURISTICS 10, 2, 2, 2
  792.           * Number of bigbufs for read-ahead (default 1, CNFGLS30 says 6, vol 2 says max 5)
  793.           numchk SRVHEURISTICS 13, 5, 9, 5
  794.           * If all drives are HPFS386, bigbuffers are not used.
  795.         endif
  796.         if '&val(<HPFS386>)' = 'ALL'
  797.           numchk NUMBIGBUF,    0,    0,    0
  798.         endif
  799.       endif
  800.  
  801.     endif
  802.  
  803.     wf &val(<backupdir>), N=&val(<prodid>)
  804.   endif
  805. endif
  806.  
  807. ******************************************************************************
  808. * PROTOCOL.INI Modification (LS 2.x, 3.x NETBIOS Server only)                *
  809. ******************************************************************************
  810. synch 7
  811. :INST-7
  812.  
  813. if '&env(COU.INSTTYPE)' = 'SERVER' & '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES' +
  814.     & '&env(COU.LSCSD<1>)' >= 6000 & '&env(COU.LSCSD<1>)' < 8000
  815.   repstr <fileprotocol>, &env(COU.LAPDRIVE)\IBMCOM\PROTOCOL.INI
  816.   say
  817.   say Modifying &val(<fileprotocol>)...
  818.   rf &val(<fileprotocol>)
  819.   eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
  820.  
  821. * cmd ..   LINKS = 50&val({comma})50.. - 17 Aug 93 - PTR 10121
  822.   cmd ..   LINKS = 20&val({comma})20..
  823.   cmd ..   MAX_SAPS = 5&val({comma})5..
  824.   cmd ..   USERS = 5&val({comma})5..
  825.   cmd ..   ELEMENTS = 1200&val({comma})1200..
  826.  
  827. * numchk SESSIONS, 160, 160, 160 - 27 may 93 - not enough
  828.   numchk SESSIONS, 210, 210, 210
  829. * numchk NCBS, 220, 220, 220 - 27 May 93 - not enough
  830. * numchk NCBS, 250, 250, 250 - 6 Aug 93 - no room for SRVIFS
  831. * numchk NCBS, 254, 254, 254 - 17 Aug 93 - PTR 10121
  832.   numchk NCBS, 250, 250, 250
  833. * numchk NAMES, 60, 60, 60 - 19 Aug 93 - PTR 10121
  834.   numchk NAMES, 40, 40, 40
  835.   numchk TI, 30600, 30600, 30600
  836.   numchk T1, 500, 500, 500
  837.   numchk T2, 200, 200, 200
  838.   numchk MAXOUT, 1, 1, 1
  839.  
  840.   wf &val(<backupdir>), N=&val(<prodid>)
  841. endif
  842.  
  843. ******************************************************************************
  844. * INI Creation                                                               *
  845. ******************************************************************************
  846. synch 8
  847. :INST-8
  848. say
  849. say Creating &val(<fileini>)...
  850.  
  851. ****** (8a)  Create pointer in OS2.INI file
  852. if '&env(COU.INSTCLASS)' = 'PRODUCT'
  853.   addini USER, COU, Environment, 1&val({NULL})
  854. else
  855.   addini USER, COU, Environment, 0&val({NULL})
  856. endif
  857. eval result=rxCouInfo('SET', 'INIFILE', '&val(<fileini>)')
  858.  
  859. ****** (8b) Store operating information in INI file.
  860. eval 'ATTRIB -R &val(<fileini>) >>&env(COU.LOG) 2>&1'
  861. eval rxOs2Ini('&val(<fileini>)', 'LocalFileUpdate', '$RXDEL')
  862.  
  863. addini &val(<fileini>), COREUP, Access, &env(COU.ACCMETH)&val({NULL})
  864. if '&env(COU.HOSTID<1>)' <> ''
  865.   addini &val(<fileini>), COREUP, Uid, &env(COU.HOSTID)&val({NULL})
  866.   addini &val(<fileini>), COREUP, Flags, $RXDEL
  867. endif
  868. if "&env(COU.NAME<1>)" <> ''
  869.   addini &val(<fileini>), USERDATA, NAME, &env(COU.NAME)&val({NULL})
  870. endif
  871. if '&env(COU.HOSTID<1>)' <> ''
  872.   addini &val(<fileini>), USERDATA, MAIL-ID, &env(COU.HOSTID)&val({NULL})
  873. endif
  874. if '&env(COU.HOSTNODE<1>)' <> ''
  875.   addini &val(<fileini>), USERDATA, MAIL-NODE, &env(COU.HOSTNODE)&val({NULL})
  876. endif
  877. addini &val(<fileini>), COREFIX, @AutoFix, 1&val({NULL})
  878. addini &val(<fileini>), COREFIX, @ContMode, 1&val({NULL})
  879.  
  880. addini &val(<fileini>), SystemData, DataServer, $RXDEL
  881. addini &val(<fileini>), SystemData, ImageServer, $RXDEL
  882. if '&val(<srvtypeimage>)' = 'Y' | '&val(<srvtypedata>)' = 'Y'
  883.   addini &val(<fileini>), SystemData, SystemType, SERVER
  884.   if '&val(<srvtypeimage>)' = 'Y'
  885.     addini &val(<fileini>), SystemData, ImageServer, 1
  886.     addini &val(<fileini>), SystemData, AccessProvided, +
  887.         &env(COU.SRVPROTOCOL)
  888.   endif
  889.   if '&val(<srvtypedata>)' = 'Y'
  890.     addini &val(<fileini>), SystemData, DataServer, 1
  891.   endif
  892. else
  893.   addini &val(<fileini>), SystemData, SystemType, CLIENT
  894. endif
  895. addini &val(<fileini>), SystemData, InstallBootDrive, &val({boot.drive})
  896.  
  897. eval result=rxCouInfo('SET', 'LOCAL', '&val(<dirlocal>)')
  898. eval result=rxCouInfo('SET', 'REMOTE', '&val(<dirremote>)')
  899. eval result=rxCouInfo('SET', 'DATA', '&val(<dirdata>)')
  900. eval result=rxCouInfo('SET', 'TEMP', '&val(<dirtemp>)')
  901. eval result=rxCouInfo('SET', 'DLL', '&val(<dirdll>)')
  902. eval result=rxCouInfo('SET', 'EXE', '&val(<direxe>)')
  903. eval result=rxCouInfo('SET', 'OLDCONFIG', '&val(<diroldconfg>)')
  904. eval result=rxCouInfo('SET', 'SYSTEM', '&val(<dirsystem>)')
  905. if '&env(COU.SITE<1>)' <> ''
  906.   addini &val(<fileini>), USERDATA, SITE, &env(COU.SITE)&val({NULL})
  907. endif
  908.  
  909. **** PTR 10218 start ****
  910. if '&env(COU.ACCMETH)' = 'NETBIOS'
  911.   addini &val(<fileini>), COREUP, LDomains, &env(COU.LOGDOMS)&val({NULL})
  912.   if '&val(<srvmaster>)' = 'Y'
  913.     addini &val(<fileini>), COREUP, CServers, &env(COU.MACHNAME<1>)&val({NULL})
  914.   else
  915.     addini &val(<fileini>), COREUP, CServers, *&val({NULL}), NEWONLY
  916.   endif
  917. endif
  918. if '&env(COU.ACCMETH)' = 'NFS'
  919.   addini &val(<fileini>), COREUP, LDomains, &env(COU.NFSSRV)&val({NULL})
  920.   if '&val(<srvmaster>)' = 'Y'
  921.     addini &val(<fileini>), COREUP, CServers, &env(COU.IPNAME<1>)&val({NULL})
  922.   else
  923.     addini &val(<fileini>), COREUP, CServers, *&val({NULL}), NEWONLY
  924.   endif
  925. endif
  926. if '&env(COU.ACCMETH)' = 'CD-ROM'
  927. *   addini &val(<fileini>), Directories, CoreImage, &env(CS.COREIMAGE)
  928. *   addini &val(<fileini>), COREUP, CServers, &env(CS.COREIMAGE)
  929. *   addini &val(<fileini>), COREUP, LCSF, 1
  930. else
  931.   addini &val(<fileini>), COREUP, LCSF, 0&val({NULL})
  932.   addini &val(<fileini>), COREUP, UseTVFS, 0&val({NULL})
  933. endif
  934. **** PTR 10218 end ****
  935.  
  936. **** PTR 238 start ****
  937. ****** (8c) Set up dynamic aliases (LS only, backup DCs)
  938. if ('&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES')
  939.   addini &val(<fileini>), DynamicAliases, QNETMON, +
  940.       &val({boot.drive})\ /R:"QNET monitoring alias"'
  941. endif
  942. if ('&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES') & ('&env(COU.BKDC<1>)' = 'Y')
  943.   if '&val(<srvtypedata>)' = 'Y'
  944.     addini &val(<fileini>), DynamicAliases, &env(COU.DATARES), +
  945.         &val(<dircoudata>) /R:"&val(<name>) Data" /UN
  946.     addini &val(<fileini>), DynamicACPs, &val(<dircoudata>), +
  947.         USERS GUESTS=RXA;
  948.   endif
  949. endif
  950. **** PTR 238 end ****
  951.  
  952. ****** (8d) Set Logo timeout value IFF it's not already set.
  953. addini USER, PM_ControlPanel, LogoDisplayTime, 2000&({null}), NEWONLY
  954.  
  955. ****** (8e) (1.x only) OS2.INI patch
  956. * Set display to 8514 to bypass desktop color bug in 1.x install.
  957. if &val({OS2VER}) < 2.0
  958.   addini USER, PM_Colors, Display, 8514&val({NULL})
  959. endif
  960.  
  961. ****** (8f) IUO Cleanup
  962. if '&env(COU.INSTCLASS)' <> 'PRODUCT'
  963.   addini &val(<fileini>), COREUP, CDomains, $RXDEL
  964.   addini &val(<fileini>), COREUP, LogData, $RXDEL
  965.   addini &val(<fileini>), COREUP, AutoFix, $RXDEL
  966.   addini &val(<fileini>), COREUP, LastAcc, $RXDEL
  967.   addini &val(<fileini>), COREUP, COREUP1Data, $RXDEL
  968.   addini &val(<fileini>), COREUP, COREUP1RexxVer, $RXDEL
  969.   addini &val(<fileini>), COREUP, Id, $RXDEL
  970.   addini &val(<fileini>), COREUP, LastLoadTime, $RXDEL
  971.   addini &val(<fileini>), COREUP, ODomains, $RXDEL
  972.   addini &val(<fileini>), COREADDED, COREUP, $RXDEL
  973.   addini &val(<fileini>), COREADDED, COREADD, $RXDEL
  974.   addini &val(<fileini>), COREADDED, COREFIX, $RXDEL
  975.   addini &val(<fileini>), COREFIX, @LastArgs, $RXDEL
  976.   addini &val(<fileini>), COREFIX, @MailSlot, $RXDEL
  977. ** Delete bogus entry (w/ quotes) if exists.
  978.   addini &val(<fileini>), 'USERDATA', $RXDEL
  979. endif
  980.  
  981. ******************************************************************************
  982. * Client file creation                                                       *
  983. ******************************************************************************
  984. synch 9
  985. :INST-9
  986. say
  987. say Installing client files...
  988.  
  989. ****** (9a) Local DLLs used during installation
  990. coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<diskdlls>), +
  991.     COUINST_&val(<diskdlls>), &val(<diskdlls>)
  992.  
  993. repfile &env(COU.ROOTPATH)TOOLS\COUUPDTF.EXE, &val(<dirstage>)
  994.  
  995. eval result = rxCouCopy('&val({boot.drive})\OS2\DLL\COUENV.DLL', +
  996.     '[dll]COUENV.DLL', 'IMMEDIATE', 'COUENV', 'NORMAL')
  997. if '&result()' <> '0'
  998.   eval result = ItlErr('COUCOPY returned "&result()" installing COUENV.DLL.')
  999. endif
  1000. eval result = rxCouAssociateAppFile('COUENV', +
  1001.     '[remote]\DLL\COUENV.DLL', '[dll]\COUENV.DLL', 'AUTOUPDATE')
  1002.  
  1003. **** PTR 10021 start ****
  1004. eval result = rxCouCopy('&val({boot.drive})\OS2\DLL\COUCOPY.DLL', +
  1005.     '[dll]COUCOPY.DLL', 'IMMEDIATE', 'COUCOPY', 'NORMAL')
  1006. if '&result()' <> '0'
  1007.   eval result = ItlErr('COUCOPY returned "&result()" installing COUCOPY.DLL.')
  1008. endif
  1009. eval result = rxCouAssociateAppFile('COUCOPY', +
  1010.     '[remote]\DLL\COUCOPY.DLL', '[dll]\COUCOPY.DLL', 'AUTOUPDATE')
  1011. **** PTR 10021 end ****
  1012.  
  1013. ****** (9b) Other base client files.
  1014. coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<diskclient>), +
  1015.     COUINST_&val(<diskclient>), &val(<diskclient>)
  1016.  
  1017. if '&env(COU.ACCMETH)' = 'NETBIOS'
  1018.   repstr <fileopendll>, COUILR.DLL
  1019. else
  1020.   if '&env(COU.ACCMETH)' = 'NFS'
  1021.     repstr <fileopendll>, COUNFS.DLL
  1022.   else
  1023.     repstr <fileopendll>, ?
  1024.   endif
  1025. endif
  1026.  
  1027. copy &val(<diskroot>)&val(<diskclient>)\README, &val(<dirroot>)README
  1028.  
  1029. copy &val(<diskroot>)&val(<diskclient>)\&val(<filesyslevel>), +
  1030.     &val(<dirsystem>)\&val(<filesyslevel>)
  1031. **** PTR 10021 start ****
  1032. coreinstunzip &val(<fileclientzip>), &val(<dirsystem>), OPENDOOR.EXE +
  1033.     OPENDOOR.INF BACKOFF.EXE MAINT.EXE, +
  1034.     -o, &val(<dirtemp>)
  1035. **** PTR 10021 end ****
  1036. coreinstunzip &val(<fileclientzip>), &val(<dirhelp>), OPENDOOR.HLP +
  1037.     MAINT.HLP, -o, &val(<dirtemp>)
  1038. coreinstunzip &val(<fileclientzip>), &val(<dirdll>), NICK16.DLL, -o, +
  1039.     &val(<dirtemp>)
  1040. if '&val(<fileopendll>)' <> '?'
  1041.   coreinstunzip &val(<fileclientzip>), &val(<dirdll>), &val(<fileopendll>), +
  1042.       -o, &val(<dirtemp>)
  1043. endif
  1044. * coreinstunzip &val(<fileclientzip>), &val({boot.drive})\OS2\BITMAP, +
  1045. *     NETDOOR.BMP, -o
  1046. errormode halt
  1047.  
  1048. eval result = rxCouAssociateAppFile('&val(<prodid>)', +
  1049.     '<dummy>', '[local]\&val(<filesyslevel>)', 'NORMAL')
  1050. eval result = rxCouAssociateAppFile('OPENDOOR', +
  1051.     '[remote]\OPENDOOR\OPENDOOR.EXE', '[system]\OPENDOOR.EXE', 'AUTOUPDATE')
  1052. eval result = rxCouAssociateAppFile('OPENDOOR', +
  1053.     '[remote]\OPENDOOR\OPENDOOR.INF', '[system]\OPENDOOR.INF', 'AUTOUPDATE')
  1054. eval result = rxCouAssociateAppFile('OPENDOOR', +
  1055.     '[remote]\OPENDOOR\OPENDOOR.HLP', '[help]\OPENDOOR.HLP', 'AUTOUPDATE')
  1056. eval result = rxCouAssociateAppFile('OPENDOOR', +
  1057.     '[remote]\DLL\NICK16.DLL', '[dll]\NICK16.DLL', 'AUTOUPDATE')
  1058. eval result = rxCouAssociateAppFile('&val(<prodid>)', +
  1059.     '[remote]\BACKOFF.EXE', '[system]\BACKOFF.EXE', 'AUTOUPDATE')
  1060. eval result = rxCouAssociateAppFile('MAINT', +
  1061.     '[remote]\MAINT.EXE', '[system]\MAINT.EXE', 'AUTOUPDATE')
  1062. eval result = rxCouAssociateAppFile('MAINT', +
  1063.     '[remote]\MAINT.HLP', '[help]\MAINT.HLP', 'AUTOUPDATE')
  1064. * eval result = rxCouAssociateAppFile('&val(<prodid>)', +
  1065. *     '<dummy>', '&val({boot.drive})\OS2\BITMAP\NETDOOR.BMP', 'NORMAL')
  1066. if '&val(<fileopendll>)' <> '?'
  1067.   eval result = rxCouAssociateAppFile('OPENDOOR', +
  1068.       '[remote]\OPENDOOR\&val(<fileopendll>)', '[dll]\&val(<fileopendll>)', 'AUTOUPDATE')
  1069. endif
  1070.  
  1071. * Reset fix log
  1072. del &val(<filefixlog>)
  1073.  
  1074. copy &val(<diskroot>)&val(<diskclient>)\timexec\timexec.adm, +
  1075.     &val(<dirdata>), NEWONLY
  1076. copy &val(<diskroot>)&val(<diskclient>)\timexec\timexec.rmd, +
  1077.     &val(<dirdata>), NEWONLY
  1078.  
  1079. ****** (9c) (CD-ROM only) LCSF files
  1080. * if '&env(COU.ACCMETH)' = 'CD-ROM' & '&env(COU.INSTTYPE)' = 'CLIENT'
  1081. *   repfile &env(COU.SOURCEDIR)UTIL\LCSF.EXE,     &val(<direxe>)
  1082. *   repfile &env(COU.SOURCEDIR)UTIL\LCSF.ICO,     &val(<direxe>)
  1083. *   repfile &env(COU.SOURCEDIR)UTIL\LCSFWAIT.EXE, &val(<direxe>)
  1084. *   repfile &env(COU.SOURCEDIR)UTIL\DRVATTCH.EXE, &val(<direxe>)
  1085. *   repfile &env(COU.SOURCEDIR)UTIL\DRVDETCH.EXE, &val(<direxe>)
  1086. *   if &val({OS2VER}) >= 2.0
  1087. *     repfile &env(COU.SOURCEDIR)UTIL\LCSF20.IFS, &val(<direxe>)
  1088. *     repstr <lcsfifs>, LCSF20.IFS
  1089. *   else
  1090. *     repfile &env(COU.SOURCEDIR)UTIL\LCSF.IFS,   &val(<direxe>)
  1091. *     repstr <lcsfifs>, LCSF.IFS
  1092. *   endif
  1093. * endif
  1094.  
  1095. ****** (9d) (CMPVM only)  CMPVM files
  1096. ** (Only if specified, AND CM or CM/2 is installed.)
  1097. if ('&env(COU.CMPVM<1>)' = 'Y' & +
  1098.     ('&env(COU.CMDRIVE<1>)' <> '' | '&env(COU.CM2DRIVE<1>)' <> ''))
  1099.   coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<diskcmpvm>), +
  1100.       COUINST_&val(<diskcmpvm>), &val(<diskcmpvm>)
  1101.  
  1102.   if ('&env(COU.CM2DRIVE<1>)' <> '')
  1103.     repstr <dircm>, &env(COU.CM2DRIVE)\CMLIB
  1104.   else
  1105.     repstr <dircm>, &env(COU.CMDRIVE)\CMLIB
  1106.   endif
  1107.   repstr <dirsourcepvm>, &val(<diskroot>)&val(<diskcmpvm>)
  1108.  
  1109.   repstr <filepvmzip>, CMPVM.ZIP
  1110.   repstr <filepvmexe>, ACS3EINI.EXE
  1111.   repstr <filepvmdll>, ACSNTCA.DLL
  1112.   repstr <filepvmcpt>, 65280.CPT
  1113.  
  1114.   if &val({OS2VER}) < 2.0
  1115.     if '&env(COU.CMCSD)' >= 6000
  1116.       repstr <pvmdir>, ES
  1117.     else
  1118.       repstr <pvmdir>, 13
  1119.     endif
  1120.   else
  1121.     if ('&env(COU.CM2DRIVE<1>)' <> '')
  1122.       repstr <pvmdir>, CM2
  1123.     else
  1124.       repstr <pvmdir>, ES
  1125.     endif
  1126.   endif
  1127.  
  1128.   eval 'ATTRIB -R &val(<dircm>)\&val(<filepvmexe>) >NUL 2>&1'
  1129.   eval 'ATTRIB -R &val(<dircm>)\DLL\&val(<filepvmdll>) >NUL 2>&1'
  1130.   eval 'ATTRIB -R &val(<dircm>)\&val(<filepvmcpt>) >NUL 2>&1'
  1131.  
  1132.   coreinstunzip &val(<filepvmzip>), &val(<dircm>), 65280.CPT, -o, +
  1133.       &val(<dirtemp>)
  1134.   coreinstunzip &val(<filepvmzip>), &val(<dircm>), +
  1135.       &val(<pvmdir>)\&val(<filepvmexe>), -o, &val(<dirtemp>)
  1136.   coreinstunzip &val(<filepvmzip>), &val(<dircm>)\DLL, +
  1137.       &val(<pvmdir>)\&val(<filepvmdll>), -o, &val(<dirtemp>)
  1138.  
  1139.   eval 'ATTRIB +R &val(<dircm>)\&val(<filepvmexe>) >NUL 2>&1'
  1140.   eval 'ATTRIB +R &val(<dircm>)\DLL\&val(<filepvmdll>) >NUL 2>&1'
  1141.  
  1142.   addini &val(<fileini>), COREADDED, CMPVM, .\.\&val(<timestamp>)
  1143. endif
  1144.  
  1145. **** PTR 10142 start ****
  1146. ****** (9e) Install RXUTILS.DLL locally
  1147. eval result = rxCouCopy('&val({boot.drive})\OS2\DLL\RXUTILS.DLL', +
  1148.     '[dll]\RXUTILS.DLL', 'IMMEDIATE', 'RXUTILS', 'AUTOUPDATE')
  1149. **** PTR 10142 end ****
  1150.  
  1151. ******************************************************************************
  1152. * Group/Folder creation                                                      *
  1153. ******************************************************************************
  1154. synch 10
  1155. :INST-10
  1156. say
  1157. if &val({OS2VER}) >= 2.0
  1158.   say Creating &val(<name>) folder...
  1159. else
  1160.   say Creating &val(<name>) group...
  1161. endif
  1162. errormode continue
  1163.  
  1164. ****** (10a/b) (2.0+ only) Create base folder & startup folder
  1165. if &val({OS2VER}) >= 2.0
  1166.   errormode halt
  1167.   addobj WPFolder, &val(<name>), <WP_DESKTOP>, +
  1168.       OBJECTID=&val(<groupid>);+
  1169.       TITLE=&val(<name>);+
  1170.       ICONFILE=&val(<diricons>)&val(<prodid>).ICO;+
  1171.       ICONPOS=18 70;+
  1172.       ICONVIEWPOS=25 25 50 50;,U, TRYDEL
  1173. *     ICONVIEW=NONGRID&val({comma})NORMAL;,U, TRYDEL
  1174. *     BACKGROUND=NETDOOR.BMP;
  1175.   sleep 2
  1176.   errormode continue
  1177.   addobj WPFolder, &val(<name>) Startup, &val(<groupid>), +
  1178.       OBJECTID=<CORE_STARTUP_FOLDER>;+
  1179.       TITLE=&val(<name>) Startup;+
  1180.       ICONVIEW=NONGRID&val({comma})NORMAL;+
  1181.       ICONFILE=&val(<diricons>)&val(<prodid>)AUTO.ICO;, U, TRYDEL
  1182. endif
  1183.  
  1184. ****** (10g) Create README shadow (object on 1.3) and Welcome
  1185. if &val({OS2VER}) >= 2.0
  1186.   addobj WPShadow, README, &val(<groupid>), +
  1187.       OBJECTID=<CORE_APP_README>;+
  1188.       SHADOWID=&val(<dirroot>)README;, R, TRYDEL
  1189. else
  1190.   addp &val(<groupid>), README
  1191.      TYPE=PM
  1192.      EXE=&val({boot.drive})\OS2\E.EXE
  1193.      PARAMS=&val(<dirroot>)README
  1194.   eaddp
  1195. endif
  1196.  
  1197. repstr <namewelcome>, Welcome!
  1198. ***** PTR 163 removed following line from object below.  OS.2 2.0 treats
  1199. ***** an explict statement of NO as YES.  Defaulting to NO works.
  1200. ***** NOAUTOCLOSE=NO;
  1201. if &val({OS2VER}) >= 2.0
  1202.   addobj WPProgram, &val(<namewelcome>), <CORE_STARTUP_FOLDER>, +
  1203.       OBJECTID=<NETDOORWELCOME>;+
  1204.       EXENAME=&val(<dirrempath>)WELCOME.CMD;+
  1205.       PARAMETERS=%;+
  1206.       MINIMIZED=YES;+
  1207.       PROGTYPE=WINDOWABLEVIO;, R, TRYDEL
  1208. else
  1209.   addp &val(<groupid>), &val(<namewelcome>)
  1210.      TYPE=VIOWINDOW
  1211.      EXE=&val(<dirrempath>)WELCOME.CMD
  1212.      PARAMS=&val(<dirroot>)README*&val(<name>)\&val(<namewelcome>)
  1213.   eaddp
  1214.   addini USER, PM_Autostart, &val(<name>)\&val(<namewelcome>), 1&val({null})
  1215. endif
  1216.  
  1217. *** PTR 10138 start ***
  1218. if '&env(COU.INSTCLASS)' = 'PRODUCT'
  1219.   repstr <nameug>, &val(<name>) User's Guide
  1220.   if &val({OS2VER}) >= 2.0
  1221.     addobj WPProgram, &val(<nameug>), &val(<groupid>), +
  1222.         OBJECTID=<NETDOORUG>;+
  1223.         EXENAME=&val(<dirrempath>)READIBM2\READIBM.EXE;+
  1224.         PARAMETERS=&val(<dirrempath>)BOOKS\COUUMSTR.BOO %;+
  1225.         PROGTYPE=PM;, R, TRYDEL
  1226.   else
  1227.     addp &val(<groupid>), &val(<nameug>)
  1228.       TYPE=PM
  1229.       EXE=&val(<dirrempath>)READIBM2\READIBM.EXE
  1230.       PARAMS=&val(<dirrempath>)BOOKS\COUUMSTR.BOO
  1231.     eaddp
  1232.   endif
  1233. endif
  1234. *** PTR 10138 end ***
  1235.  
  1236. ****** (10c) Create Initialization entry
  1237.  
  1238. if &val({OS2VER}) >= 2.0
  1239.   addobj WPProgram, &val(<nameinit>), &val(<groupid>), +
  1240.       OBJECTID=<CORE_APP_&val(<fileinitid>)>;+
  1241.       TITLE=&val(<nameinit>);+
  1242.       EXENAME=&val(<dirsystem>)\&val(<fileinitexe>);+
  1243.       PARAMETERS=%;+
  1244.       STARTUPDIR=&val(<dirsystem>);+
  1245.       PROGTYPE=&val(<fileinittype>);, R, TRYDEL
  1246. else
  1247.   addp &val(<groupid>), &val(<nameinit>)
  1248.     TYPE=&val(<fileinittype>)
  1249.     EXE=&val(<dirsystem>)\&val(<fileinitexe>)
  1250.     WORKDIR=&val(<dirsystem>)
  1251.   eaddp
  1252. endif
  1253. addini &val(<fileini>), COREADDED, &val(<fileinitid>), +
  1254.     &val(<catname>)\&val(<nameinit>)\&val(<timestamp>)
  1255.  
  1256. ****** (10d) Create CATALOG entry
  1257. repstr <caname>, NetDoor Catalog
  1258. if &val({OS2VER}) >= 2.0
  1259.   addobj WPProgram, &val(<caname>), &val(<groupid>), +
  1260.       OBJECTID=<CORE_APP_CATALOG>;+
  1261.       TITLE=&val(<caname>);+
  1262.       EXENAME=&val(<fileaddexe>);+
  1263.       PARAMETERS=%;+
  1264.       ICONFILE=&val(<diricons>)CATALOG.ICO;+
  1265.       PROGTYPE=PM;, R, TRYDEL
  1266. else
  1267.   addp &val(<groupid>), &val(<caname>)
  1268.     TYPE=PM
  1269.     EXE=&val(<fileaddexe>)
  1270.   eaddp
  1271. endif
  1272. addini &val(<fileini>), COREADDED, CATALOG, +
  1273.       &val(<catname>)\&val(<caname>)\&val(<timestamp>)
  1274.  
  1275. ****** (10e) Create MAINT entries
  1276. **** PTR 10021 start ****
  1277. if &val({OS2VER}) >= 2.0
  1278.   addobj WPProgram, &val(<namemaintS>), &val(<groupid>), +
  1279.       OBJECTID=<CORE_APP_MAINTS>;+
  1280.       TITLE=&val(<namemaintS>);+
  1281.       EXENAME=&val(<dirsystem>)\&val(<filemaintexe>);+
  1282.       ICONFILE=&val(<diricons>)MAINTS.ICO;+
  1283.       PARAMETERS=% /STATUS;+
  1284.       PROGTYPE=PM;, R, TRYDEL
  1285. else
  1286.   addp &val(<groupid>), &val(<namemaintS>)
  1287.     TYPE=PM
  1288.     EXE=&val(<dirsystem>)\&val(<filemaintexe>)
  1289.     PARAMS=/STATUS
  1290.   eaddp
  1291. endif
  1292.  
  1293. if &val({OS2VER}) >= 2.0
  1294.   addobj WPProgram, &val(<namemaintO>), &val(<groupid>), +
  1295.       OBJECTID=<CORE_APP_MAINTO>;+
  1296.       TITLE=&val(<namemaintO>);+
  1297.       EXENAME=&val(<dirsystem>)\&val(<filemaintexe>);+
  1298.       ICONFILE=&val(<diricons>)MAINTO.ICO;+
  1299.       PARAMETERS=% /OPTIONS;+
  1300.       PROGTYPE=PM;, R, TRYDEL
  1301. else
  1302.   addp &val(<groupid>), &val(<namemaintO>)
  1303.     TYPE=PM
  1304.     EXE=&val(<dirsystem>)\&val(<filemaintexe>)
  1305.     PARAMS=/OPTIONS
  1306.   eaddp
  1307. endif
  1308. **** PTR 10021 end ****
  1309. **** PTR 196 start ****
  1310. addini &val(<fileini>), COREADDED, MAINT, .\.\&val(<timestamp>)
  1311. addini &val(<fileini>), COREADDED, MAINTO, +
  1312.     &val(<catname>)\&val(<namemaintO>)\&val(<timestamp>)
  1313. addini &val(<fileini>), COREADDED, MAINTS, +
  1314.     &val(<catname>)\&val(<namemaintS>)\&val(<timestamp>)
  1315. **** PTR 196 end ****
  1316.  
  1317. ****** (10f) (NETBIOS only) Create NEWPW entry
  1318. if '&env(COU.ACCMETH)' = 'NETBIOS'
  1319.   repstr <newpw>, Change Password
  1320.   if &val({OS2VER}) >= 2.0
  1321.     addobj WPProgram, &val(<newpw>), &val(<groupid>), +
  1322.         OBJECTID=<CORE_APP_NEWPW>;+
  1323.         TITLE=&val(<newpw>);+
  1324.         EXENAME=&val(<filenewpwexe>);+
  1325.         PARAMETERS=%;+
  1326.         ICONFILE=&val(<diricons>)NEWPW.ICO;+
  1327.         PROGTYPE=PM;, R, TRYDEL
  1328.   else
  1329.     addp &val(<groupid>), &val(<newpw>)
  1330.        TYPE=PM
  1331.        EXE=&val(<filenewpwexe>)
  1332.     eaddp
  1333.   endif
  1334.   addini &val(<fileini>), COREADDED, NEWPW, +
  1335.       &val(<catname>)\&val(<newpw>)\&val(<timestamp>)
  1336. endif
  1337.  
  1338. **** PTR 10266 start ****
  1339. ****** (10g) (Master SERVER & IMAGE server only ) Create DOORADM entry
  1340. ******  repstr <dooradm>, NetDoor Administration
  1341. *******    addobj WPProgram, &val(<newpw>), &val(<groupid>), +
  1342.  
  1343. if ('&val(<srvmaster>)' = 'Y')  | ('&val(<srvtypeimage>)' = 'Y')
  1344.   repstr <dooradm>, NetDoor Control Panel
  1345.   if &val({OS2VER}) >= 2.0
  1346.  
  1347.     addobj WPProgram, &val(<dooradm>), &val(<groupid>), +
  1348.         OBJECTID=<CORE_APP_DOORADM>;+
  1349.         TITLE=&val(<dooradm>);+
  1350.         EXENAME=&val(<filedooradmexe>);+
  1351.         PARAMETERS=%;+
  1352.         PROGTYPE=PM;, R, TRYDEL
  1353.   else
  1354.     * DOORADM can't be created on 1.3 system - not supported.
  1355.   endif
  1356.   addini &val(<fileini>), COREADDED, DOORADM, +
  1357.       &val(<catname>)\&val(<dooradm>)\&val(<timestamp>)
  1358. endif
  1359. **** PTR 10266 end ****
  1360.  
  1361. ****** (10?) (CD-ROM only) Create LCSF entry
  1362. * if '&env(COU.ACCMETH)' = 'CD-ROM'
  1363. *   repstr <lname>, LCSF
  1364. *   if &val({OS2VER}) >= 2.0
  1365. *     addobj WPProgram, &val(<lname>), &val(<groupid>), +
  1366. *         OBJECTID=<CORE_APP_LCSF>;+
  1367. *         EXENAME=&val(<direxe>)\LCSF.EXE;+
  1368. *         ICONFILE=&val(<diricons>)LCSF.ICO;+
  1369. *         PARAMETERS=/S10000 /I /U %;+
  1370. *         STARTUPDIR=&val(<direxe>);+
  1371. *         PROGTYPE=WINDOWABLEVIO;, R, TRYDEL
  1372. *   else
  1373. *     addp &val(<groupid>), &val(<lname>)
  1374. *       TYPE=DEFAULT
  1375. *       EXE=&val(<direxe>)\LCSF.EXE
  1376. *       WORKDIR=&val(<direxe>)
  1377. *       PARAMS=/S10000 /I /U
  1378. *     eaddp
  1379. *   endif
  1380. *   addini &val(<fileini>), COREADDED, &val(<lname>), +
  1381. *       &val(<catname>)\LCSF\&val(<timestamp>)
  1382. * endif
  1383.  
  1384. errormode halt
  1385.  
  1386. ******************************************************************************
  1387. * Server file creation                                                       *
  1388. ******************************************************************************
  1389. synch 11
  1390. :INST-11
  1391.  
  1392. if '&env(COU.INSTTYPE)' = 'SERVER'
  1393.   say
  1394.   say Installing server files...
  1395.  
  1396. ****** (11a) Server files (image)
  1397. **** PTR 107 start ****
  1398.   if '&val(<srvtypeimage>)' = 'Y'
  1399.     repstr <count>, 1
  1400.     repstr <disk>, &val(<disksrvimg1>)
  1401.  
  1402. :imageloop
  1403.     coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<disk>), +
  1404.         COUINST_&val(<disk>), &val(<disk>)
  1405.     say Installing NetDoor image from disk &val(<disk>)...
  1406.     coreinstunzip IMAGE&val(<count>).ZIP, &val(<dirimage>), *.*, -o -d
  1407.     eval result = &val(<count>) + 1
  1408.     if &result() > &val(<disksrvimgN>)
  1409.       goto imageloopexit
  1410.     endif
  1411.     repstr <count>, &result()
  1412.     eval result = &val(<disk>) + 1
  1413.     repstr <disk>, &result()
  1414.     goto imageloop
  1415. :imageloopexit
  1416. **** PTR 107 end ****
  1417.  
  1418.     repstr <fullserv>, &val(<dirimage>)\LOCAL\COMPLEX\&val(<fileservers>)
  1419.     if '&val(<srvmaster>)' = 'Y'
  1420.       say Creating &val(<fullserv>)...
  1421.     else
  1422.       say Copying &val(<fullserv>) from master...
  1423.     endif
  1424.     copy &env(COU.MASTERFILE), &val(<fullserv>)
  1425.   endif
  1426.  
  1427. ****** (11aa) Server files (data)
  1428.   if '&val(<srvtypedata>)' = 'Y'
  1429.     repstr <fullserv>, &val(<dircoudata>)\&val(<fileservers>)
  1430.     if '&val(<srvmaster>)' = 'Y'
  1431.       say Creating &val(<fullserv>)...
  1432.     else
  1433.       say Copying &val(<fullserv>) from master...
  1434.     endif
  1435.     copy &env(COU.MASTERFILE), &val(<fullserv>)
  1436.  
  1437.     coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<disksrvdata>), +
  1438.         COUINST_&val(<disksrvdata>), &val(<disksrvdata>)
  1439.  
  1440.     coreinstunzip &val(<filesrvzip>), &val(<dircoudata>), LUSACCT.EXE +
  1441.         LUSACCTC.EXE, -o, &val(<dirtemp>)
  1442.   endif
  1443.  
  1444. ****** (11b) Server patches
  1445.  
  1446. ****** (11c) (LS 1.x NETBIOS Server only)  Install sample CFG file.
  1447.   if '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES'
  1448.     if '&env(COU.LSCSD)' < 6000
  1449.       coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<disksrvcfg>), +
  1450.           COUINST_&val(<disksrvcfg>), &val(<disksrvcfg>)
  1451.       if '&val(<srvtypeimage>)' = 'Y'
  1452.         repstr <filecmcfg>, CORESRVS.CFG
  1453.       else
  1454.         repstr <filecmcfg>, CORESRVD.CFG
  1455.       endif
  1456.       say Installing sample Comm Mgr configuration file +
  1457.           &val(<dircm>)\&val(<filecmcfg>)...
  1458.       coreinstunzip &val(<filesrvzip>), &val(<dircm>), &val(<filecmcfg>), +
  1459.           -o, &val(<dirtemp>)
  1460.     endif
  1461.   endif
  1462.  
  1463. ****** (11d) Set up autoupdate entries for FIX program
  1464.   if '&val(<srvtypedata>)' = 'Y'
  1465.     eval result = rxCouAssociateAppFile('LUSACCT', +
  1466.         '[remote]ADMTOOLS\LUSACCT.EXE', +
  1467.         '&env(COU.DATADRIVE)\COUDATA\LUSACCT.EXE', 'AUTOUPDATE')
  1468.     if '&result()' <> '0'
  1469.       eval result = ItlErr('Error:  Error registering LUSACCT.EXE.')
  1470.     endif
  1471.     eval result = rxCouAssociateAppFile('LUSACCT', +
  1472.         '[remote]ADMTOOLS\LUSACCTC.EXE', +
  1473.         '&env(COU.DATADRIVE)\COUDATA\LUSACCTC.EXE', 'AUTOUPDATE')
  1474.     if '&result()' <> '0'
  1475.       eval result = ItlErr('Error:  Error registering LUSACCTC.EXE.')
  1476.     endif
  1477.   endif
  1478.  
  1479. endif
  1480.  
  1481. ******************************************************************************
  1482. * Modify TIMEXEC.ADM (Data Server only)                                      *
  1483. ******************************************************************************
  1484. synch 12
  1485. :INST-12
  1486. if '&env(COU.INSTTYPE)' = 'SERVER'
  1487.   say
  1488.   say Modifying &val(<filetimeadm>)...
  1489.   rf &val(<filetimeadm>)
  1490.   eval result = SetComment('DESC', '&val(<prodid>) installation' date())
  1491.   eval result = SetComment('SET', ';')
  1492.   eval result = SetCurL('BOTTOM')
  1493.  
  1494. ****** (12a - Add LUSACCT entries)
  1495.   if '&val(<srvtypedata>)' = 'Y'
  1496.     if '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES'
  1497.       cmd * 0&val({comma})5&val({comma})10&val({comma})15&val({comma})20+
  1498.           &val({comma})25&val({comma})30&val({comma})35&val({comma})40+
  1499.           &val({comma})45&val({comma})50&val({comma})55 * * * * * +
  1500.           detach &val(<dircoudata>)\LUSACCT.EXE &val(<dircoudata>) +
  1501.           > &val(<dircoudata>)\LUSACCT.OUT 2>&1
  1502.     else
  1503.       remall LUSACCT.EXE
  1504.     endif
  1505.     if '&env(COU.PROTOCOL.NFS<1>)' = 'YES'
  1506.       cmd * 1&val({comma})6&val({comma})11&val({comma})16&val({comma})21+
  1507.           &val({comma})26&val({comma})31&val({comma})36&val({comma})41+
  1508.           &val({comma})46&val({comma})51&val({comma})56 * * * * * +
  1509.           detach &val(<dircoudata>)\LUSACCTC.EXE &val(<dircoudata>) +
  1510.           > &val(<dircoudata>)\LUSACCTC.OUT 2>&1
  1511.     else
  1512.       remall LUSACCTC.EXE
  1513.     endif
  1514.   endif
  1515.  
  1516. ****** (12b - Add SERVERS.COR replication entries)
  1517. * if '&val(<srvtypeimage>)' = 'Y'
  1518. *   cmd * 0&val({comma})10&val({comma})20&val({comma})30&val({comma})40+
  1519. *       &val({comma})50 * * * * * +
  1520. *       should copy from master to image here, but NFS makes this a mess.
  1521. * endif
  1522.   if '&val(<srvtypedata>)' = 'Y'
  1523.     cmd * 1&val({comma})11&val({comma})21&val({comma})31&val({comma})41+
  1524.         &val({comma})51 * * * * * +
  1525.         detach REPLACE &val(<dirrempath>)LOCAL\COMPLEX\&val(<fileservers>) +
  1526.         &val(<dircoudata>) /U > &val(<dircoudata>)\SERVCOPY.OUT 2>&1
  1527.   endif
  1528.  
  1529.   wf &val(<backupdir>), N=&val(<prodid>)
  1530.  
  1531. endif
  1532.  
  1533. ******************************************************************************
  1534. * Create Alias, Access Profiles (NETBIOS Server only)                        *
  1535. ******************************************************************************
  1536. synch 13
  1537. :INST-13
  1538. if '&env(COU.PROTOCOL.NETBIOS<1>)' = 'YES'
  1539.   say
  1540.   say Creating access permissions and aliases...
  1541.  
  1542. ****** (13a) Set default ACP of none for all drives
  1543.   coreinstcreateacp &env(COU.FATMAP<1>) &env(COU.HPFSMAP<1>), +
  1544.       USERS GUESTS, N
  1545.  
  1546. ****** (13a) Create alias for image, delete ACPs
  1547.   if '&val(<srvtypeimage>)' = 'Y'
  1548.     say Creating &val(<name>) alias...
  1549.     coreinstcreatealias &env(COU.MACHNAME), &env(COU.ALIAS), &val(<dirimage>), +
  1550.         &val(<name>) Image, STARTUP
  1551.     coreinstdeleteacp &val(<dirimage>), TREE
  1552.     eval result = left('&val(<dirimage>)', 2)
  1553.     coreinstcreateacp &result(), USERS GUESTS, RXA
  1554.   endif
  1555.  
  1556. ****** (13b) Create alias for data, set ACPs
  1557. **** PTR 238 start ****
  1558.   if ('&val(<srvtypedata>)' = 'Y') & ('&val(<tcpdatasrvonly>)' = 'N')
  1559.     say Creating data alias...
  1560.     if ('&env(COU.BKDC<1>)' <> 'Y')
  1561.       coreinstcreatealias &env(COU.MACHNAME), &env(COU.DATARES), +
  1562.           &val(<dircoudata>), &val(<name>) Data, STARTUP
  1563.     endif
  1564.     coreinstdeleteacp &val(<dircoudata>)
  1565.     coreinstcreateacp &val(<dircoudata>), USERS GUESTS, RXA
  1566.   endif
  1567. **** PTR 238 end ****
  1568.  
  1569. endif
  1570. ******************************************************************************
  1571. * Modify EXPORTS file (NFS Server only)                                      *
  1572. ******************************************************************************
  1573. synch 13a
  1574. :INST-13a
  1575. if '&env(COU.PROTOCOL.NFS<1>)' = 'YES'
  1576.  
  1577.   if '&env(COU.EXPORTS<1>)' <> ''
  1578.     say
  1579.     say Modifying &env(COU.EXPORTS) file...
  1580.     rf &env(COU.EXPORTS)
  1581.     eval Result = SetComment('SET', '*')
  1582.     eval Result = SetComment('DESC', '&val(<prodid>) installation' date())
  1583.     if '&val(<srvtypeimage>)' = 'Y'
  1584.       cmd &val(<dirimage>) -ro, bottom
  1585.     endif
  1586.     if '&val(<srvtypedata>)' = 'Y'
  1587.       cmd &val(<dircoudata>) -ro, bottom
  1588.     endif
  1589.     wf &val(<backupdir>), N=&val(<prodid>)
  1590.   else
  1591.     if '&val(<srvtypeimage>)' = 'Y'
  1592.       repstr <expdirs>, &val(<dirimage>)
  1593.     else
  1594.       repstr <expdirs>,
  1595.     endif
  1596.     if '&val(<srvtypedata>)' = 'Y'
  1597.       if '&val(<expdirs>)' <> ''
  1598.         repstr <expdirs>, &val(<expdirs>)&val({comma})
  1599.       endif
  1600.       repstr <expdirs>, &val(<expdirs>) &val(<dircoudata>)
  1601.     endif
  1602.     coreinstmsgbox EXPORTS Configuration Required, The following directories +
  1603.         need to be exported read-only for all users: &val(<expdirs>).
  1604.   endif
  1605.  
  1606. endif
  1607.  
  1608. ******************************************************************************
  1609. * Autostart Programs                                                         *
  1610. ******************************************************************************
  1611. synch 14
  1612. :INST-14
  1613.  
  1614. errormode continue
  1615.  
  1616. ****** (14a) Create autostart entry for program init
  1617. if '&env(COU.STARTUP)' = 'FOLDER'
  1618.   if &val({OS2VER}) >= 2.0
  1619.     addobj WPShadow, &val(<nameinit>), <WP_START>, +
  1620.         OBJECTID=<COU_SHAD_COREINIT>;+
  1621.         SHADOWID=<CORE_APP_&val(<fileinitid>)>;, R, TRYDEL
  1622.   else
  1623.     addini USER, PM_Autostart, &val(<name>)\&val(<nameinit>), 1&val({null})
  1624.   endif
  1625. endif
  1626.  
  1627. ****** (14b) (CD-ROM only) Create autostart entry for LCSF
  1628. * if '&env(COU.ACCMETH)' = 'CD-ROM'
  1629. *   if &val({OS2VER}) >= 2.0
  1630. *     addobj WPShadow, &val(<lname>), <WP_START>, +
  1631. *         OBJECTID=<COU_SHAD_LCSF>;+
  1632. *         SHADOWID=<CORE_APP_LCSF>;, R, TRYDEL
  1633. *   endif
  1634. * endif
  1635.  
  1636. errormode halt
  1637.  
  1638. ******************************************************************************
  1639. * Beta Cleanup Code                                                          *
  1640. ******************************************************************************
  1641. synch 15
  1642. :INST-15
  1643. errormode continue
  1644. * Delete mangled DLL installation
  1645. eval rxDelete('&val(<dirdll>)\OUENV.DLL')
  1646. * Delete old log files
  1647. eval rxDelete('&val({boot.drive})\OS2\INSTALL\COU.LOG')
  1648. eval rxDelete('&val({boot.drive})\OS2\INSTALL\DOORWAY.LOG')
  1649. eval rxCouRemoveAppFile('COUENV', '&val({boot.drive})\OS2\DLL\COUENV.DLL')
  1650. if &val({OS2VER}) >= 2.0
  1651.   eval Result = sysDestroyObject('<CORE_APP_COREUP>')
  1652.   eval Result = sysDestroyObject('<CORE_APP_PMCOREUP>')
  1653.   eval Result = sysDestroyObject('<CORE_APP_COREFIXO>')
  1654.   eval Result = sysDestroyObject('<CORE_APP_COREFIXS>')
  1655.   eval Result = sysDestroyObject('<CORE_APP_COREADD>')
  1656. else
  1657.   delp &val(<name>), Open NetDoorway
  1658.   delp &val(<name>), CORE Initialization
  1659.   delp &val(<name>), Core Initialization
  1660.   delp &val(<name>), NetDoor Initialization
  1661.   delp &val(<name>), CoreFix Options
  1662.   delp &val(<name>), CoreFix Status
  1663.   delp &val(<name>), CoreAdd
  1664.   if '&env(COU.INSTCLASS)' <> 'PRODUCT'
  1665.     delp CORE, Open NetDoorway
  1666.     delp CORE, CORE Initialization
  1667.     delp CORE, Core Initialization
  1668.     delp CORE, NetDoor Initialization
  1669.     delp CORE, NetDoor Catalog
  1670.     delp CORE, CoreFix Options
  1671.     delp CORE, CoreFix Status
  1672.     delp CORE, CoreAdd
  1673.     delp CORE, README
  1674.     delp CORE, Change Password
  1675.   endif
  1676. endif
  1677. errormode halt
  1678.  
  1679. ******************************************************************************
  1680. * Cleanup Code                                                               *
  1681. ******************************************************************************
  1682. synch end
  1683. :end
  1684. coreinstdircheck &env(COU.SOURCEDR), &val(<diskroot>)&val(<diskfinal>), +
  1685.     COUINST_&val(<diskfinal>), &val(<diskfinal>)
  1686.  
  1687. **** PTR 10024 start ****
  1688. * Delete old initialization code
  1689. eval rxCouDeleteAll('PmCoreUp', 'IMMEDIATE')
  1690. eval rxDelete('&val(<dirsystem>)\PMCOREUP.EXE')
  1691. eval rxDelete('&val(<dirsystem>)\PMCOREUP.INF')
  1692. eval rxDelete('&val(<dirsystem>)\PMCOREUP.HLP')
  1693. eval rxDelete('&val(<dirsystem>)\PMCOREUP.LOG')
  1694. eval rxDelete('&val(<dirsystem>)\PMCOREUP.BAK')
  1695. eval rxDelete('&val(<dirsystem>)\COREFIX.TMP')
  1696. eval rxDelete('&val(<dirdata>)\COREFIX.TMP')
  1697. eval rxDelete('&val(<dirsystem>)\COREFIX.LOG')
  1698. eval rxDelete('&val(<dirsystem>)\COREUP.CMD')
  1699. eval rxDelete('&val(<dirsystem>)\COREUP1.CMD')
  1700. eval rxDelete('&val(<dirsystem>)\COREUP.MAC')
  1701. eval rxDelete('&val(<dirsystem>)\CORE.MSG')
  1702. eval rxDelete('&val(<dirsystem>)\CORESTAT.CMD')
  1703. eval rxDelete('&val(<dirsystem>)\COREUP.ICO')
  1704. eval rxDelete('&val(<dirsystem>)\COREUP.INF')
  1705. eval rxDelete('&val(<dirsystem>)\OLDUP.CMD')
  1706. eval rxDelete('&val(<dirsystem>)\CORE.MSG')
  1707. eval rxDelete('&val(<dirsystem>)\CREQCFG.LOG')
  1708. eval rxDelete('&val(<dirsystem>)\SYSLEVEL.COR')
  1709. eval 'DEL &val(<dirsystem>)\CORELOG.* >>&env(COU.LOG) 2>&1'
  1710. **** PTR 10024 end ****
  1711.  
  1712. * Delete DLLs which are still locked now at next boot.
  1713. eval rxCouDelete('&val({boot.drive})\OS2\DLL\FCLDLGP.DLL', 'DEFERRED')
  1714. if &val({OS2VER}) <= 2.0
  1715.   eval rxCouDelete('&val({boot.drive})\OS2\DLL\COUCOPY.DLL', 'DEFERRED')
  1716.   eval rxCouDelete('&val({boot.drive})\OS2\DLL\RXUTILS.DLL', 'DEFERRED')
  1717. endif
  1718.  
  1719. if '&env(COU.INSTTYPE)' = 'SERVER'
  1720.   if '&env(COU.PROTOCOL.NFS<1>)' = 'YES'
  1721.     coreinstmsgbox Configuration Required, +
  1722.         The NFS daemon (NFSD) must be set up to automatically start when +
  1723.         the system is started.  See your TCP/IP documentation for details.
  1724.  
  1725.     coreinstmsgbox Configuration Required, +
  1726.         In order to allow changes to the &val(<name>) environment to +
  1727.         be copied to this server, the file &env(COU.EXPORTS) must be +
  1728.         modified to allow Administrator's workstations to have read/write +
  1729.         access to the &val(<dirimage>) directory.
  1730.  
  1731.     if '&val(<srvmaster>)' = 'Y'
  1732.       coreinstmsgbox Configuration Required, +
  1733.           In order to make changes to the &val(<name>) environment +
  1734.           remotely, the file &env(COU.EXPORTS) must be modified to allow +
  1735.           Administrator's workstations to have read/write access to the +
  1736.           &val(<dircoudata>) directory.
  1737.     endif
  1738.   endif
  1739. endif
  1740. say
  1741. say Configuration complete.
  1742. exit 0
  1743.