tldm-universe/Ardent/UV/APP.PROGS/GCI.MAKEFILE

184 lines
5.4 KiB
Plaintext
Raw Permalink Normal View History

2024-09-09 21:51:08 +00:00
*****************************************************************************
*
* Add the names of the object modules to the Makefile
*
* Module %M% Version %I% Date %H%
*
* (c) Copyright 1998 Ardent Software Inc. - All Rights Reserved
* This is unpublished proprietary source code of Ardent Software Inc.
* The copyright notice above does not evidence any actual or intended
* publication of such source code.
*
*******************************************************************************
*
* Maintenence log - insert most recent change descriptions at top
*
* Date.... GTAR# WHO Description.........................................
* 10/14/98 23801 SAP Change copyrights.
* 07/14/93 11822 PVW Onsite linking
* 09/22/89 6314 DTW New file
*
*******************************************************************************
*
$OPTIONS DEFAULT
*
$INCLUDE UNIVERSE.INCLUDE FILENAMES.H
$INCLUDE UNIVERSE.INCLUDE MACHINE.NAME
*
prompt ""
CL = @(-4)
CL.ERR = @(0,23):CL
EQU BELL TO CHAR(7)
ERR = CL.ERR:BELL
MSG10=ERR:PROD.NAMEU:' General Calling Interface is not installed.'
OPEN '','DATA.TYPES' TO FILE.DATA.TYPES ELSE
PRINT MSG10:
INPUT Q: ; PRINT CL.ERR: ; STOP
END
print @( -1 )
print @( 0, 0 ):"General Calling Interface Administration" : @( 67, 0 ) : "GCI.MAKEFILE":
print @( 17, 1): 'Update the GCI Makefile "':UV.GCI:'/Makefile"':
print @( 0, 2 ): str( "-", 79 ):
print @( 0, 4 ):
PRINTER RESET
**************************************************************************
*
* This program adds the names of the required GCI object modules
* to the Makefile in the GCI directory. It peruses the DATA.TYPES
* file and GCI file to find the file names and replaces the
* "GCILIB =" line in the Makefile. If the Make.gci has been modified
* so that "GCILIB =" does not exist or if Make.gci does not exist,
* this program displays error messages and gives up.
*
**************************************************************************
*
*
EQU TAB1 TO CHAR(9)
EQU TAB2 TO CHAR(9):CHAR(9)
EQU TAB3 TO CHAR(9):CHAR(9):CHAR(9)
*
* open the makefile model. if the open fails print out messages
* and quit.
*
PATH=UV.GCI:'/Make.gci'
OPENSEQ PATH TO GCI.MODEL ELSE
*
* opening the makefile model failed
*
PRINT "Failed to open the file '":PATH:"'."
PRINT "This file must exist and be 'readable' to complete the Makefile Update."
PRINT "If the file does not exist, it may be necessary to re-install it from"
PRINT "the original installation tape."
STOP
END
*
* open the Makefile and truncate. if open fails, print out messages
* and quit
*
PATH=UV.GCI:'/Makefile'
OPENSEQ PATH TO GCIMAKE THEN
WEOFSEQ GCIMAKE
END ELSE
WRITESEQ '' ON GCIMAKE ELSE GOTO 910
END
100 READSEQ line FROM GCI.MODEL ELSE
PRINT "Cannot find the GCILIB definition in the file ":UV.GCI:"/Make.gci."
PRINT "The Makefile Update process has failed."
STOP
END
IF SUBSTRINGS(line, 0, 6) <> "GCILIB" THEN
WRITESEQ line ON GCIMAKE ELSE GOTO 910
GOTO 100
END
line = "GCILIB = "
SELECT FILE.DATA.TYPES
len = 0
totlen = 8
parts = 1
200 READNEXT id ELSE GOTO 210
READ rec FROM FILE.DATA.TYPES,id ELSE
PRINT "Cannot read '" : id : "'from the file DATA.TYPES."
PRINT "Makefile Update has failed."
STOP
END
module = rec<6,1>
module = TRIM(module) : ".o "
len = LEN(module)
IF len <= 3 THEN GOTO 200
*
* if there is a module name, check to see if we have already
* included it in line. If line is too long, break it into
* pieces (marked by value marks), end each piece with a backslash.
*
FINDSTR " " : module IN line SETTING fmc THEN GOTO 200 ELSE
IF totlen + len > 60 THEN
line = line : "\" : @VM : module : " "
totlen = 1
parts += 1
END ELSE
totlen += len
line = line : module : " "
END
END
GOTO 200
210 CLOSE FILE.DATA.TYPES
OPEN '','GCI' TO FILE.GCI ELSE
PRINT "Cannot open file GCI. Update will continue, but"
PRINT "no user functions will be included in the Makefile."
GOTO 310
END
SELECT FILE.GCI
300 READNEXT id ELSE GOTO 305
READ rec FROM FILE.GCI,id ELSE
PRINT "Cannot read '" : id : "'from the file GCI."
PRINT "Makefile Update has failed."
STOP
END
module = rec<7,1>
module = TRIM(module) : ".o "
len = LEN(module)
IF len <= 3 THEN GOTO 300
*
* if there is a module name, check to see if we have already
* included it in line. If line is too long, break it into
* pieces (marked by value marks), end each piece with a backslash.
*
FINDSTR " " : module IN line SETTING fmc THEN GOTO 300 ELSE
IF totlen + len > 60 THEN
line = line : "\" : @VM : module : " "
totlen = 1
parts += 1
END ELSE
totlen += len
line = line : module : " "
END
END
GOTO 300
*
* write the list of modules into the makefile, each vm marks one
* part of the line
*
305 CLOSE FILE.GCI
310 FOR x = 1 TO parts
WRITESEQ line<1, x> ON GCIMAKE ELSE GOTO 910
next x
400 READSEQ line FROM GCI.MODEL ELSE
PRINT "Makefile Update Completed."
STOP
END
WRITESEQ line ON GCIMAKE ELSE GOTO 910
GOTO 400
*
* unable to write to the new makefile
*
910 PRINT 'Unable to write to ':UV.GCI :"/Makefile."
PRINT "This file and directory must be 'writable' to complete the Makefile Update."
STOP
END