home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.yorku.ca 2015
/
ftp.cs.yorku.ca.tar
/
ftp.cs.yorku.ca
/
pub
/
FlexOr
/
FlexOr.InstallInstructions
< prev
next >
Wrap
Text File
|
1995-06-15
|
10KB
|
283 lines
How to install FlexOr processes
-------------------------------
---
1 Ftp a copy of FlexOr source files; be sure to use binary mode.
The original source is available by anonomous ftp as the set
of files /pub/FlexOr/* at ftp.cs.yorku.ca
There are several information files, the names are self descriptive,
in addition to the compressed tar file.
Place the copy in its own directory (e.g. ~/flexor). The following are
example instructions to get you to your home directory and create a
subdirectory called flexor in which the FlexOr package will be placed.
Notice that mget is used to get all the files. Use ls to verify
that you are getting the correct files.
cd ~
mkdir flexor
cd flexor
ftp ftp.cs.yorku.ca
> name anonymous
> password [who you are]
> cd pub/FlexOr
> ls
DIRECTORY.INDEX
FlexOr.CopyrightNotice
FlexOr.InstallInstructions
FlexOr.tar.Z
GNU.generalPublicLicense
> binary
> mget *
> bye
---
2 Uncompress the tar file yielding "FlexOr.tar"
uncompress FlexOr.tar.Z
---
3 Extract the FlexOr files to get the source files. A collection of
subdirectories are made.
tar -xf FlexOr.tar
---
4 Using "ls -R *" the following list of files and directories should exist.
DIRECTORY.INDEX FlexOr.tar
FlexOr.CopyrightNotice GNU.GeneralPublicLicense
FlexOr.InstallInstructions
adapt:
BmCWeave PsCWeave emitprlg.cfx
Ccd PsCpWeave emitpsc.cfx
Cflex2mif PsTuringWeave emitpscp.cfx
Cmif2flex TuringVersion frmadapt.cfx
CpVersionBmLt cfx2mif.cfx pascalTanWev.cfx
DIRECTORY.INDEX cmif2fx.cfx pathversion.cfx
Flex2Pro cyccomp.cfx turingPsWev.cfx
FrameAdapt emitbm.cfx turingTanWev.cfx
Makefile emitc.changes weavecpbmlt.cfx
PascalVersion emitca.c-flxx
base:
DIRECTORY.INDEX emitcp.cfx idenfer.c maincp.c parsecp.h
Makefile emitcp.h idenfer.cfx maincp.cfx refer.c
basetyps.h emitplc.c idenfer.h mainplc.c refer.cfx
basetyps.hfx emitplc.cfx input.c mainplc.cfx refer.h
chspace.c emitplc.h input.cfx mainplcp.c scanc.c
chspace.cfx emitplcp.c input.h mainplcp.cfx scanc.cfx
chspace.h emitplcp.cfx log.c output.c scanc.h
contents.c emitplcp.h log.cfx output.cfx scancp.c
contents.cfx file.c log.h output.h scancp.cfx
contents.h file.cfx macro.c parsec.c scancp.h
emitc.c file.h macro.cfx parsec.cfx scancpMod.cfx
emitc.cfx fxstr.c macro.h parsec.h section.c
emitc.h fxstr.cfx mainc.c parsecp.c section.cfx
emitcp.c fxstr.h mainc.cfx parsecp.cfx section.h
bin:
DIRECTORY.INDEX
doc:
DIRECTORY.INDEX bookmaster latex man1 postscript
doc/bookmaster:
DIRECTORY.INDEX emitcBm.cfx maincBm.cfx
alladtBm.cfx emitplcBm.cfx manblallBm.cfx
basetypsBm.cfx emitprlgBm.cfx outputBm.cfx
bintreeBm.cfx fileBm.cfx parsecBm.cfx
cfxmifBm.cfx frmadaptBm.cfx referABm.cfx
chspaceBm.cfx fxstrBm.cfx scancBm.cfx
cmiffxBm.cfx indenferBm.cfx sectionBm.cfx
contentsBm.cfx inputBm.cfx slinkBm.cfx
cyccompBm.cfx logBm.cfx weavecpbmltBm.cfx
emitbmBm.cfx macroBm.cfx
doc/latex:
DIRECTORY.INDEX emitprlgLt.cfx weavecpbmltLt.cfx
doc/man1:
DIRECTORY.INDEX FlexOr.1 FlexOrTangle.1 FlexOrUse.1 FlexOrWeave.1
doc/postscript:
DIRECTORY.INDEX emitpscpPs.cfx scancPs.cfx
alladtPs.cfx frmadaptPs.cfx scancpPs.cfx
basetypsPs.cfx inputPs.cfx sectionPs.cfx
emitcPs.cfx maincpPs.cfx turingPsWevPs.cfx
emitcpPs.cfx mainplcpPs.cfx turingTanWevPs.cfx
emitplcPs.cfx parsecPs.cfx weavecpbmltPs.cfx
emitplcpPs.cfx parsecpPs.cfx
emitpscPs.cfx pascalTanWev.cfx
examples:
DIRECTORY.INDEX hellow.cfx
FlexOrHowTo hellowBm.cfx
InstrDiagInFlexOr.cfx hellowPl.c
InstrDiagInFlexOr.xfig hellowPl.cfx
InstrDiagInFlexOr.xfig.eps hellowPl.cpl
InstrDiagInFlexOr.xfig.flx hellowPs.c
MathInFlexOr.cfx hellowPs.cfx
OtherExamples hellowPs.cps
Znotes.cfx tradaptBody.cfx
cspNotes.cfx tradaptBodyBm.cfx
epsFlexOrConvert transfrmBody.cfx
epsFlexOrConvert.awk transfrmBodyBm.cfx
hellow.c transfrmBodyPs.cfx
frames:
DIRECTORY.INDEX MathSymbols.header mif.header
FlexOrLaTex.tex bintree.frame slide.header
FlexOrPs.header manblall.frame slink.frame
---
5 You may choose to delete FlexOr.tar as you can recover it using ftp again.
==============================================================================
Notes on building and using FlexOr programs
1 DEFINE ENVIRONMENT VARIABLES
These variables are used in FlexOr source frames to name various
directories. The full path name, including the terminating "/"
(except for FlexBin) to separate the last directory name from a
source file name is required.
VARIABLE EXAMPLE & DESCRIPTION
FlexAdapt ~/flexor/adapt/
Location of the frames that adapt the base frames and each
other. The documentation frames in ~/flexor/doc use this
variable.
FlexBase ~/flexor/base/
Location of the basic FlexOr frames. In the distribution
package they are in the subdirectory base. Adaptations of
FlexOr programs use this variable to access the base frames.
FlexFrame ~/flexor/frames/
Location of the example frames. in the distribution package
they are in the subdirectory frame. Some of the base abstract
data types use example frames to build their program source
text.
FlexBin ~/flexor/bin
Location of FlexOr's executable programs.
In C-Shell it is suggested to put the definitions in your .login file.
setenv FlexAdapt ~/flexor/adapt
setenv FlexBase ~/flexor/base/
setenv FlexFrame ~/flexor/frames/
setenv FlexBin ~/flexor/bin
and in Korn shell in your .profile file,
export FlexAdapt=~/flexor/adapt/
export FlexBase=~/flexor/base/
export FlexFrame=~/flexor/frames/
export FlexBin=~/flexor/bin
2 BUILD THE BASIC C and C++ TANGLE AND WEAVE PROGRAMS
Examine the file Makefile in the directory flexor/base and change the macro
definitions CC, LINKER as necessary for your environment. The current
version of FlexOr was constructed under SUnOS 4.1.3 using GNU's gcc C++
compiler (although all the source is in C).
Run "make all" in the base directory. Since all the .c and .h files
exist, make will create new executable versions of TangleC and WeavPlC,
and place them in flexor/bin.
3 BUILD THE ADAPTED PROGRAMS
These are in the directory adapt. Each adaptation frame contains its own
make file. You will need to edit the make macro definitions in each frame
as you did in step 2 above (typically they are in the last section in the
frame). Now tangle each frame and run its make file.
$FlexBin/TangleC <frameFile>
make -f <custom make file>
Alternately you could tangle a frame and then edit its make file but then
you would lose the edits the next time you tangle.
The file DIRECTORY.INDEX contains a description of every file in the
directory. You may want to look at this to select which executables you
want to create.
The files in this directory are all examples of using adaptation to create
programs that are "the same as except ..." from existing frames.
Using "make all" within flexor/adapt will make all the adaptations.
WARNING: Due to a property of the SunOS make file the first time you issue
a make (e.g. make -f PsWeaveCp), make stops with an error message saying
it cannot make a .o file. Just repeat the command. Apparently, if the
.c files do not exist before make is executed then the make fails even
though the make file tangles the appropriate FlexOr frame thereby creating
the .c files. So the first make creates the .c files which remain as
make termintes too soon. The second make then succeeds.
4 EXAMPLES
The ~/flexor/examples subdirectory contains suggestions and example files.
Please read the file DIRECTORY.INDEX to find out what the files are about.
The file FlexOrHowTo gives a series of small exercises and suggestions to
help you learn about literate programming using FlexOr and adaptation of
programs.
In particular you may be interested in how xfig diagrams may be included
in FlexOr frames (weave for Postscript), and how Mathematical symbols may
be included in FlexOr frames (weave for Postscript).
==============================================================================
On-line help and the man pages.
Each directory has a DIRECTORY.INDEX file which briefly describes each file in
the installation.
The on-line help is a collection of man pages. They are in the subdirectory
man1. If you have superuser privileges, you can move the man pages to one of
"/usr/man" or "/usr/local/man" or whatever directory holds the man1 pages of
the help file on your system. Here is an example which moves the files to
"/usr/local/man"
su
cd ~yourNonSuperUserName/flexor/man1
mv F* T* W* /usr/local/man/man1
exit
If you do not have superuser privileges, then you need to define the variable
MANPATH. The examples are for the Korn shell. Check if MANPATH is defined
echo $MANPATH
If the answer is not empty, extend the definition of the variable MANPATH
to include the path to the directory in which you installed FlexOr.
export MANPATH=$MANPATH:~yourNonSuperUserName/flexor/doc
If the answer to echo is empty, define MANPATH and include the path names to
all the other directories containing man page directories. If after executing
this command, you cannot access some man pages, you will need to check with
your system administrator about which paths are missing.
export MANPATH=/usr/man:/usr/local/man:~yourNonSuperUserName/flexor/doc
Note: The path must be to a directory which has "man1" as a subdirectory
and the man pages themselves are in the "man1" subdirectory.
Available man pages
-------------------
FlexOr Introduction to FlexOr and summary of FlexOr commands.
FlexorUse General description of using FlexOr programs.
FlexOrTangle General description on using tangle programs.
FlexOrWeave General description on using weave programs.