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 >
Text File  |  1995-06-15  |  10KB  |  283 lines

  1. How to install FlexOr processes
  2. -------------------------------
  3. ---
  4. 1  Ftp a copy of FlexOr source files; be sure to use binary mode.
  5.    The original source is available by anonomous ftp as the set
  6.    of files  /pub/FlexOr/*  at ftp.cs.yorku.ca
  7.    There are several information files, the names are self descriptive,
  8.    in addition to the compressed tar file.
  9.  
  10.    Place the copy in its own directory (e.g. ~/flexor). The following are
  11.    example instructions to get you to your home directory and create a
  12.    subdirectory called flexor in which the FlexOr package will be placed.
  13.    Notice that mget is used to get all the files.  Use ls to verify
  14.    that you are getting the correct files.
  15.  
  16.     cd ~
  17.     mkdir flexor
  18.     cd flexor
  19.     ftp ftp.cs.yorku.ca
  20.     > name anonymous
  21.     > password [who you are]
  22.         > cd pub/FlexOr
  23.         > ls
  24.           DIRECTORY.INDEX
  25.           FlexOr.CopyrightNotice
  26.           FlexOr.InstallInstructions
  27.           FlexOr.tar.Z
  28.           GNU.generalPublicLicense
  29.     > binary
  30.     > mget *
  31.     > bye
  32.  
  33. ---
  34. 2  Uncompress the tar file yielding "FlexOr.tar"
  35.  
  36.     uncompress FlexOr.tar.Z
  37.  
  38. ---
  39. 3  Extract the FlexOr files to get the source files. A collection of
  40.    subdirectories are made.
  41.  
  42.     tar -xf FlexOr.tar
  43.  
  44. ---
  45. 4  Using "ls -R *" the following list of files and directories should exist.
  46.  
  47. DIRECTORY.INDEX            FlexOr.tar
  48. FlexOr.CopyrightNotice        GNU.GeneralPublicLicense
  49. FlexOr.InstallInstructions
  50.  
  51. adapt:
  52. BmCWeave        PsCWeave        emitprlg.cfx
  53. Ccd            PsCpWeave        emitpsc.cfx
  54. Cflex2mif        PsTuringWeave        emitpscp.cfx
  55. Cmif2flex        TuringVersion        frmadapt.cfx
  56. CpVersionBmLt        cfx2mif.cfx        pascalTanWev.cfx
  57. DIRECTORY.INDEX        cmif2fx.cfx        pathversion.cfx
  58. Flex2Pro        cyccomp.cfx        turingPsWev.cfx
  59. FrameAdapt        emitbm.cfx        turingTanWev.cfx
  60. Makefile        emitc.changes        weavecpbmlt.cfx
  61. PascalVersion        emitca.c-flxx
  62.  
  63. base:
  64. DIRECTORY.INDEX    emitcp.cfx    idenfer.c    maincp.c    parsecp.h
  65. Makefile    emitcp.h    idenfer.cfx    maincp.cfx    refer.c
  66. basetyps.h    emitplc.c    idenfer.h    mainplc.c    refer.cfx
  67. basetyps.hfx    emitplc.cfx    input.c        mainplc.cfx    refer.h
  68. chspace.c    emitplc.h    input.cfx    mainplcp.c    scanc.c
  69. chspace.cfx    emitplcp.c    input.h        mainplcp.cfx    scanc.cfx
  70. chspace.h    emitplcp.cfx    log.c        output.c    scanc.h
  71. contents.c    emitplcp.h    log.cfx        output.cfx    scancp.c
  72. contents.cfx    file.c        log.h        output.h    scancp.cfx
  73. contents.h    file.cfx    macro.c        parsec.c    scancp.h
  74. emitc.c        file.h        macro.cfx    parsec.cfx    scancpMod.cfx
  75. emitc.cfx    fxstr.c        macro.h        parsec.h    section.c
  76. emitc.h        fxstr.cfx    mainc.c        parsecp.c    section.cfx
  77. emitcp.c    fxstr.h        mainc.cfx    parsecp.cfx    section.h
  78.  
  79. bin:
  80. DIRECTORY.INDEX
  81.  
  82. doc:
  83. DIRECTORY.INDEX    bookmaster    latex        man1        postscript
  84.  
  85. doc/bookmaster:
  86. DIRECTORY.INDEX        emitcBm.cfx        maincBm.cfx
  87. alladtBm.cfx        emitplcBm.cfx        manblallBm.cfx
  88. basetypsBm.cfx        emitprlgBm.cfx        outputBm.cfx
  89. bintreeBm.cfx        fileBm.cfx        parsecBm.cfx
  90. cfxmifBm.cfx        frmadaptBm.cfx        referABm.cfx
  91. chspaceBm.cfx        fxstrBm.cfx        scancBm.cfx
  92. cmiffxBm.cfx        indenferBm.cfx        sectionBm.cfx
  93. contentsBm.cfx        inputBm.cfx        slinkBm.cfx
  94. cyccompBm.cfx        logBm.cfx        weavecpbmltBm.cfx
  95. emitbmBm.cfx        macroBm.cfx
  96.  
  97. doc/latex:
  98. DIRECTORY.INDEX        emitprlgLt.cfx        weavecpbmltLt.cfx
  99.  
  100. doc/man1:
  101. DIRECTORY.INDEX    FlexOr.1    FlexOrTangle.1    FlexOrUse.1    FlexOrWeave.1
  102.  
  103. doc/postscript:
  104. DIRECTORY.INDEX        emitpscpPs.cfx        scancPs.cfx
  105. alladtPs.cfx        frmadaptPs.cfx        scancpPs.cfx
  106. basetypsPs.cfx        inputPs.cfx        sectionPs.cfx
  107. emitcPs.cfx        maincpPs.cfx        turingPsWevPs.cfx
  108. emitcpPs.cfx        mainplcpPs.cfx        turingTanWevPs.cfx
  109. emitplcPs.cfx        parsecPs.cfx        weavecpbmltPs.cfx
  110. emitplcpPs.cfx        parsecpPs.cfx
  111. emitpscPs.cfx        pascalTanWev.cfx
  112.  
  113. examples:
  114. DIRECTORY.INDEX            hellow.cfx
  115. FlexOrHowTo            hellowBm.cfx
  116. InstrDiagInFlexOr.cfx        hellowPl.c
  117. InstrDiagInFlexOr.xfig        hellowPl.cfx
  118. InstrDiagInFlexOr.xfig.eps    hellowPl.cpl
  119. InstrDiagInFlexOr.xfig.flx    hellowPs.c
  120. MathInFlexOr.cfx        hellowPs.cfx
  121. OtherExamples            hellowPs.cps
  122. Znotes.cfx            tradaptBody.cfx
  123. cspNotes.cfx            tradaptBodyBm.cfx
  124. epsFlexOrConvert        transfrmBody.cfx
  125. epsFlexOrConvert.awk        transfrmBodyBm.cfx
  126. hellow.c            transfrmBodyPs.cfx
  127.  
  128. frames:
  129. DIRECTORY.INDEX        MathSymbols.header    mif.header
  130. FlexOrLaTex.tex        bintree.frame        slide.header
  131. FlexOrPs.header        manblall.frame        slink.frame
  132.  
  133. ---
  134. 5  You may choose to delete FlexOr.tar as you can recover it using ftp again.
  135.  
  136. ==============================================================================
  137.                  Notes on building and using FlexOr programs
  138.  
  139. 1  DEFINE ENVIRONMENT VARIABLES
  140.  
  141.    These variables are used in FlexOr source frames to name various
  142.    directories.  The full path name, including the terminating "/"
  143.    (except for FlexBin) to separate the last directory name from a
  144.    source file name is required.
  145.  
  146.    VARIABLE     EXAMPLE & DESCRIPTION
  147.  
  148.    FlexAdapt    ~/flexor/adapt/
  149.                 Location of the frames that adapt the base frames and each
  150.                 other.  The documentation frames in ~/flexor/doc use this
  151.                 variable.
  152.  
  153.    FlexBase     ~/flexor/base/
  154.                 Location of the basic FlexOr frames.  In the distribution
  155.                 package they are in the subdirectory base.  Adaptations of
  156.                 FlexOr programs use this variable to access the base frames.
  157.  
  158.    FlexFrame    ~/flexor/frames/
  159.                 Location of the example frames.  in the distribution package
  160.                 they are in the subdirectory frame.  Some of the base abstract
  161.                 data types use example frames to build their program source
  162.                 text.
  163.  
  164.    FlexBin      ~/flexor/bin
  165.                 Location of FlexOr's executable programs.
  166.  
  167.    In C-Shell it is suggested to put the definitions in your .login file.
  168.  
  169.                 setenv FlexAdapt ~/flexor/adapt
  170.                 setenv FlexBase  ~/flexor/base/
  171.                 setenv FlexFrame ~/flexor/frames/
  172.                 setenv FlexBin   ~/flexor/bin
  173.  
  174.    and in Korn shell in your .profile file,
  175.  
  176.                 export FlexAdapt=~/flexor/adapt/
  177.                 export FlexBase=~/flexor/base/
  178.                 export FlexFrame=~/flexor/frames/
  179.                 export FlexBin=~/flexor/bin
  180.  
  181.  
  182. 2  BUILD THE BASIC C and C++ TANGLE AND WEAVE PROGRAMS
  183.  
  184.    Examine the file Makefile in the directory flexor/base and change the macro
  185.    definitions CC, LINKER as necessary for your environment.  The current
  186.    version of FlexOr was constructed under SUnOS 4.1.3 using GNU's gcc C++
  187.    compiler (although all the source is in C).
  188.  
  189.    Run "make all" in the base directory.  Since all the .c and .h files
  190.    exist, make will create new executable versions of TangleC and WeavPlC,
  191.    and place them in flexor/bin.
  192.  
  193.  
  194. 3  BUILD THE ADAPTED PROGRAMS
  195.  
  196.    These are in the directory adapt.  Each adaptation frame contains its own
  197.    make file.  You will need to edit the make macro definitions in each frame
  198.    as you did in step 2 above (typically they are in the last section in the
  199.    frame).  Now tangle each frame and run its make file.
  200.  
  201.                 $FlexBin/TangleC <frameFile>
  202.                 make -f <custom make file>
  203.  
  204.    Alternately you could tangle a frame and then edit its make file but then
  205.    you would lose the edits the next time you tangle.
  206.  
  207.    The file DIRECTORY.INDEX contains a description of every file in the
  208.    directory.  You may want to look at this to select which executables you
  209.    want to create.
  210.  
  211.    The files in this directory are all examples of using adaptation to create
  212.    programs that are "the same as except ..." from existing frames.
  213.  
  214.    Using "make all" within flexor/adapt will make all the adaptations.
  215.  
  216.    WARNING: Due to a property of the SunOS make file the first time you issue
  217.    a make (e.g. make -f PsWeaveCp), make stops with an error message saying
  218.    it cannot make a .o file.  Just repeat the command.  Apparently, if the 
  219.    .c files do not exist before make is executed then the make fails even
  220.    though the make file tangles the appropriate FlexOr frame thereby creating
  221.    the .c files.  So the first make creates the .c files which remain as
  222.    make termintes too soon.  The second make then succeeds.
  223.  
  224. 4  EXAMPLES
  225.  
  226.    The ~/flexor/examples subdirectory contains suggestions and example files.
  227.    Please read the file DIRECTORY.INDEX to find out what the files are about.
  228.    The file FlexOrHowTo gives a series of small exercises and suggestions to
  229.    help you learn about literate programming using FlexOr and adaptation of
  230.    programs.
  231.  
  232.    In particular you may be interested in how xfig diagrams may be included
  233.    in FlexOr frames (weave for Postscript), and how Mathematical symbols may
  234.    be included in FlexOr frames (weave for Postscript).
  235.  
  236. ==============================================================================
  237. On-line help and the man pages.
  238.  
  239. Each directory has a DIRECTORY.INDEX file which briefly describes each file in
  240. the installation.
  241.  
  242. The on-line help is a collection of man pages.  They are in the subdirectory
  243. man1.  If you have superuser privileges, you can move the man pages to one of
  244. "/usr/man" or "/usr/local/man" or whatever directory holds the man1 pages of
  245. the help file on your system.  Here is an example which moves the files to
  246. "/usr/local/man"
  247.  
  248.         su
  249.         cd ~yourNonSuperUserName/flexor/man1
  250.         mv F* T* W* /usr/local/man/man1
  251.         exit
  252.  
  253. If you do not have superuser privileges, then you need to define the variable
  254. MANPATH.  The examples are for the Korn shell.  Check if MANPATH is defined
  255.  
  256.         echo $MANPATH
  257.  
  258. If the answer is not empty, extend the definition of the variable MANPATH
  259. to include the path to the directory in which you installed FlexOr.
  260.  
  261.         export MANPATH=$MANPATH:~yourNonSuperUserName/flexor/doc
  262.  
  263. If the answer to echo is empty, define MANPATH and include the path names to
  264. all the other directories containing man page directories.  If after executing
  265. this command, you cannot access some man pages, you will need to check with
  266. your system administrator about which paths are missing.
  267.  
  268.         export MANPATH=/usr/man:/usr/local/man:~yourNonSuperUserName/flexor/doc
  269.  
  270. Note: The path must be to a directory which has "man1" as a subdirectory
  271. and the man pages themselves are in the "man1" subdirectory.
  272.  
  273.  
  274. Available man pages
  275. -------------------
  276. FlexOr          Introduction to FlexOr and summary of FlexOr commands.
  277.  
  278. FlexorUse       General description of using FlexOr programs.
  279.  
  280. FlexOrTangle    General description on using tangle programs.
  281.  
  282. FlexOrWeave     General description on using weave programs.
  283.