This section gives a list of what you should to to a Starlink package to enable it to cope with large images. Many of the steps can be applied equally to modifying non-USSC code which makes use of the USSC. The steps here give an indication of how to proceed, but for more discussion of what's going on, refer to other sections in this document. Some examples of the commands you could use are given, but obviously you can change these to personal taste.
% tar xf package_source.tar % echo >ffiles *.f *.gen pkg1_par pkg1_err % echo >cfiles *.c *.h
% extreme EXTREME commands are now available -- Version 0.1-0
% do-inscnf `cat ffiles` pkg1_sub.f: Constant %VAL arg in PKG1_ADD? 5 new dependencies on include file 'CNF_PAR'. 5/25 modified files written in ./inscnf.changed. Logfile is ./inscnf.log.
% vi inscnf.changed/pkg1_sub.f
% mkdir retar % cd retar % tar xf ../package_source.tar % cp ../inscnf.changed/* . % tar cf ../package_source.tar * % cd .. % rm -r retar inscnf.changed ...
% tar xf package_source.tar `cat ffiles` % do-frepint `cat ffiles` pgk1_mult.f: INTEGER*2 declaration not changed pkg1_divid.f: No IMPLICIT NONE in module PKG1_DIVID pkg1_misc.f: Nowhere to declare INT__'s in module PKG1_MISC 22/25 modified files written in ./frepint.changed. Logfile is ./frepint.log
% frepint pkg1_misc.f >/dev/null frepint: Nowhere to declare INT__'s in module PGK1_MISC * Local constants for use as actual arguments: INTEGER * 8 INT__0 INTEGER * 8 INT__12 PARAMETER ( INT__0 = 0 ) PARAMETER ( INT__12 = 12 )
% gcc -fsyntax-only -Wimplicit-function-declaration -Wstrict-prototypes *.c tmp.c:160: warning: implicit declaration of function `pipe' % man pipe ...
% tar xf package_source.tar `cat cfiles` % do-crepint `cat cfiles` input.c: 2 x Format string implies int * (comment inserted) output.c: 5 x Format string has %[cdiouxX*] (comment inserted) output.c: Format string non-literal (comment inserted) toplevel.c: Non-stdlib system header file <unistd.h> toplevel.c: Type of main not changed from int toplevel.c: Type of argc not changed from int 8/8 modified files written in ./crepint.changed. Logfile is ./crepint.log.
% grep -v '<unistd.h>' toplevel.c >tmp.c % gcc -fsyntax-only -Wimplicit-function-declaration tmp.c
% grep 'crepint:' crepint.changed/*
or the -proto flag of the Tru64 Unix C compiler:% gcc -fsyntax-only -Wimplicit-int -Wstrict-prototypes *.c
% cc -noobject -protois -DINT_BIG=long crepint.changed/*.c % grep '[^a-z]int[^a-z]' *.H
% mkdir retar % cd retar % tar xf ../package_source.tar % cp ../frepint.changed/* . % cp ../crepint.changed/* . % tar cf ../package_source.tar * % cd .. % rm -r retar frepint.changed crepint.changed
% mv mk mk.orig % extmk < mk.orig > mk % chmod 755 mk
andSOURCE_VARIANT='alpha_OSF1'
to the new alpha_OSF1_64 and sun4_Solaris_64 stanzas of the mk file respectively, or generate new platform-dependent files for the two new platforms.SOURCE_VARIANT='sun4_Solaris'
% mv makefile makefile.orig % extmakefile < makefile.orig >makefile % diff makefile.orig makefile