home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / LESS177.ZIP / src / linstall < prev    next >
Text File  |  1992-07-18  |  18KB  |  862 lines

  1. #! /bin/sh
  2. # Installation script for less.
  3. # This script prompts the operator for various information
  4. # and constructs a makefile.
  5.  
  6. echo "This script will build a makefile for less."
  7. echo "If you already have a file called \"makefile\" it will be overwritten,"
  8. echo "as will the file \"defines.h\"."
  9. echo "Press RETURN to continue."
  10. read ans
  11.  
  12. echo "I will ask you some questions about your system."
  13. echo "If you do not know the answer to any question,"
  14. echo "just press RETURN and I will choose a default for you."
  15. echo "Press RETURN now."
  16. read ans
  17.  
  18. ECHO=./vecho
  19. if [ ! -f $ECHO ]
  20. then
  21.     echo "One moment..."
  22.     cc -o $ECHO vecho.c
  23.     echo ""
  24. fi
  25.  
  26. $ECHO "Most Unix systems are derived from either System V"
  27. $ECHO "or Berkeley BSD 4.1, 4.2, 4.3, etc."
  28. $ECHO ""
  29. $ECHO "Is your system closest to:"
  30. $ECHO "  1. System V"
  31. $ECHO "  2. BSD 4.1"
  32. $ECHO "  3. BSD 4.2 or later"
  33. $ECHO "  4. Xenix"
  34. $ECHO "Enter a number, or just RETURN if you don't know: \c"
  35. read ans
  36. xenix=0
  37. case "X$ans" in
  38. X1) sys=sys5; sysname="System V" ;;
  39. X2) sys=bsd; bsd41=1; sysname="BSD 4.1" ;;
  40. X3) sys=bsd; bsd41=0; sysname="BSD 4.2" ;;
  41. X4) sys=sys5; xenix=1; sysname="Xenix" ;;
  42. *) sys=unknown ;;
  43. esac
  44. $ECHO ""
  45.  
  46. DATE=`date`
  47. cat >makefile <<EOF
  48. # Makefile for "less"
  49. # Generated $DATE by $0.
  50. EOF
  51.  
  52. cat >>makefile <<"EOF"
  53. #
  54. # Invoked as:
  55. #    make all
  56. #   or    make install
  57. # Plain "make" is equivalent to "make all".
  58. #
  59. # If you add or delete functions, remake funcs.h by doing:
  60. #    make newfuncs
  61. # This depends on the coding convention of function headers looking like:
  62. #    " \t public <function-type> \n <function-name> ( ... ) "
  63. #
  64. # Also provided:
  65. #    make lint    # Runs "lint" on all the sources.
  66. #    make clean    # Removes "less" and the .o files.
  67. #    make clobber    # Pretty much the same as make "clean".
  68.  
  69. SHELL = /bin/sh
  70.  
  71. EOF
  72.  
  73. cat >defines.h <<EOF
  74. /* Definition file for less */
  75. /* Generated $DATE by $0. */
  76.  
  77. EOF
  78.  
  79. cat >>defines.h <<EOF
  80. /*
  81.  * Define XENIX if running under XENIX 3.0.
  82.  */
  83. #define    XENIX        $xenix
  84.  
  85. EOF
  86. $ECHO ""
  87.  
  88.  
  89.  
  90. if [ "X$sys" = "Xunknown" ]
  91. then
  92.     alldefault=0
  93. else
  94.     def=yes
  95.     alldefault=1
  96.     $ECHO "Do you want to use ALL the defaults for $sysname?"
  97.     $ECHO "  Enter \"yes\" if you have a STANDARD $sysname."
  98.     $ECHO "  Enter \"no\" if you want to change any of the defaults. [$def] \c"
  99.     read ans
  100.     case "X$ans" in
  101.     X[yY]*) alldefault=1 ;;
  102.     X[nN]*) alldefault=0 ;;
  103.     esac
  104.     $ECHO ""
  105. fi
  106.  
  107. if [ $alldefault = 0 ]
  108. then
  109.     alloptional=0
  110. else
  111.     def=yes
  112.     alloptional=1
  113.     $ECHO "Do you want to use all the optional features of less?"
  114.     $ECHO "  Less has several features which you may or may not"
  115.     $ECHO "  wish to include, such as shell escapes."
  116.     $ECHO "  Enter \"yes\" if you want to include ALL the optional features."
  117.     $ECHO "  Enter \"no\" if you want to select individual features. [$def] \c"
  118.     read ans
  119.     case "X$ans" in
  120.     X[yY]*) alloptional=1 ;;
  121.     X[nN]*) alloptional=0 ;;
  122.     esac
  123.     $ECHO ""
  124. fi
  125.  
  126.  
  127.  
  128. def=yes
  129. x=1
  130. if [ $alldefault = 0 ]
  131. then
  132.     $ECHO "Does your C compiler support the \"void\" type? [$def] \c"
  133.     read ans
  134.     case "X$ans" in
  135.     X[yY]*) x=1 ;;
  136.     X[nN]*) x=0 ;;
  137.     esac
  138.     $ECHO ""
  139. fi
  140. cat >>defines.h <<EOF
  141. /*
  142.  * VOID is 1 if your C compiler supports the "void" type,
  143.  * 0 if it does not.
  144.  */
  145. #define    VOID        $x
  146.  
  147. EOF
  148.  
  149.  
  150.  
  151. def=yes
  152. x="void *"
  153. if [ $alldefault = 0 ]
  154. then
  155.     $ECHO "Does your C compiler support the \"void *\" type? [$def] \c"
  156.     read ans
  157.     case "X$ans" in
  158.     X[yY]*) x="void *" ;;
  159.     X[nN]*) x="char *" ;;
  160.     esac
  161.     $ECHO ""
  162. fi
  163. cat >>defines.h <<EOF
  164. /*
  165.  * VOID_POINTER is the definition of a pointer to any object.
  166.  */
  167. #define    VOID_POINTER    $x
  168.  
  169. EOF
  170.  
  171.  
  172.  
  173. def=long
  174. if [ $alldefault = 0 ]
  175. then
  176.     $ECHO "What type is the \"offset\" argument to lseek? [$def] \c"
  177.     read ans
  178.     if [ "X$ans" != "X" ]
  179.     then
  180.         def=$ans
  181.     fi
  182.     $ECHO ""
  183. fi
  184. cat >>defines.h <<EOF
  185. /*
  186.  * offset_t is the type which lseek() returns.
  187.  * It is also the type of lseek()'s second argument.
  188.  */
  189. #define    offset_t    $def
  190.  
  191. EOF
  192.  
  193.  
  194.  
  195.  
  196. def=yes; x=1
  197. if [ $alldefault = 0 ]
  198. then
  199.     $ECHO "Most Unix systems provide the stat() function."
  200.     $ECHO "Does your system have stat()? [$def] \c"
  201.     read ans
  202.     case "X$ans" in
  203.     X[yY]*) x=1 ;;
  204.     X[nN]*) x=0 ;;
  205.     esac
  206.     $ECHO ""
  207. fi
  208. cat >>defines.h <<EOF
  209. /*
  210.  * STAT is 1 if your system has the stat() call.
  211.  */
  212. #define    STAT        $x
  213.  
  214. EOF
  215.  
  216.  
  217.  
  218.  
  219. def=yes; x=1
  220. if [ $alldefault = 0 ]
  221. then
  222.     $ECHO "Most Unix systems provide the perror() function."
  223.     $ECHO "Does your system have perror()? [$def] \c"
  224.     read ans
  225.     case "X$ans" in
  226.     X[yY]*) x=1 ;;
  227.     X[nN]*) x=0 ;;
  228.     esac
  229.     $ECHO ""
  230. fi
  231. cat >>defines.h <<EOF
  232. /*
  233.  * PERROR is 1 if your system has the perror() call.
  234.  * (Actually, if it has sys_errlist, sys_nerr and errno.)
  235.  */
  236. #define    PERROR        $x
  237.  
  238. EOF
  239.  
  240.  
  241.  
  242.  
  243. def=yes; x=1
  244. if [ $alldefault = 0 ]
  245. then
  246.     $ECHO "Most Unix systems provide the time() function."
  247.     $ECHO "Does your system have time()? [$def] \c"
  248.     read ans
  249.     case "X$ans" in
  250.     X[yY]*) x=1 ;;
  251.     X[nN]*) x=0 ;;
  252.     esac
  253.     $ECHO ""
  254. fi
  255. cat >>defines.h <<EOF
  256. /*
  257.  * GET_TIME is 1 if your system has the time() call.
  258.  */
  259. #define    GET_TIME    $x
  260.  
  261. EOF
  262.  
  263. if [ $x = 0 ]
  264. then
  265.     $ECHO "What is the APPROXIMATE performance of your"
  266.     $ECHO "machine, as a percentage of a Vax 11/750?"
  267.     $ECHO "(Enter 100 if your machine is as fast as a Vax,"
  268.     $ECHO " 50 if it is half as fast, 200 if it is twice as fast, etc.)"
  269.     $ECHO "The accuracy of this information is not critical."
  270.     while :
  271.     do
  272.         $ECHO "Percent of Vax 11/750 [100]: \c"
  273.         read ans
  274.         if [ "X$ans" = "X" ]
  275.         then
  276.             ans=100
  277.         fi
  278.         longloop=`expr "$ans" "*" 3`
  279.         if [ $? = 0 ]
  280.         then
  281.             break
  282.         fi
  283.         $ECHO "Enter a number please!"
  284.     done
  285.     $ECHO ""
  286.  
  287.     cat >>defines.h <<EOF
  288. /*
  289.  * LONGLOOP is the number of lines we should process in the line number
  290.  * scan before displaying a warning that it will take a while.
  291.  */
  292. #define    LONGLOOP    ($longloop)
  293. EOF
  294. fi
  295.  
  296.  
  297.  
  298.  
  299. if [ "$sys" = "bsd" ]
  300. then
  301.     def=no; x=0
  302. else
  303.     def=yes; x=1
  304. fi
  305. if [ $alldefault = 0 ]
  306. then
  307.     $ECHO "Most System V systems have termio.h, while most"
  308.     $ECHO "Berkeley-derived systems have sgtty.h."
  309.     $ECHO "Does your system have termio.h? [$def] \c"
  310.     read ans
  311.     case "X$ans" in
  312.     X[yY]*) x=1 ;;
  313.     X[nN]*) x=0 ;;
  314.     esac
  315.     $ECHO ""
  316. fi
  317. cat >>defines.h <<EOF
  318. /*
  319.  * TERMIO is 1 if your system has /usr/include/termio.h.
  320.  * This is normally the case for System 5.
  321.  * If TERMIO is 0 your system must have /usr/include/sgtty.h.
  322.  * This is normally the case for BSD.
  323.  */
  324. #define    TERMIO        $x
  325.  
  326. EOF
  327.  
  328.  
  329.  
  330.  
  331. if [ "$sys" = "bsd" -a "$bsd41" = "0" ]
  332. then
  333.     def=yes; x=1
  334. else
  335.     def=no; x=0
  336. fi
  337. if [ $alldefault = 0 ]
  338. then
  339.     $ECHO "Most BSD 4.2 and 4.3 systems have both _setjmp() and setjmp()."
  340.     $ECHO "Most System V and BSD 4.1 systems have only setjmp()."
  341.     $ECHO "Does your system have both _setjmp() and setjmp()? [$def] \c"
  342.     read ans
  343.     case "X$ans" in
  344.     X[yY]*) x=1 ;;
  345.     X[nN]*) x=0 ;;
  346.     esac
  347.     $ECHO ""
  348. fi
  349. cat >>defines.h <<EOF
  350. /*
  351.  * HAS__SETJMP is 1 if your system has the _setjmp() call.
  352.  * This is normally the case only for BSD 4.2 and up,
  353.  * not for BSD 4.1 or System 5.
  354.  */
  355. #define    HAS__SETJMP    $x
  356.  
  357. EOF
  358.  
  359.  
  360.  
  361.  
  362. if [ "$sys" = "bsd" -a "$bsd41" = "0" ]
  363. then
  364.     def=yes; x=1
  365. else
  366.     def=no; x=0
  367. fi
  368. if [ $alldefault = 0 ]
  369. then
  370.     $ECHO "Most BSD 4.2 and 4.3 systems have the sigsetmask() call."
  371.     $ECHO "Most System V and BSD 4.1 systems do not."
  372.     $ECHO "Does your system have sigsetmask()? [$def] \c"
  373.     read ans
  374.     case "X$ans" in
  375.     X[yY]*) x=1 ;;
  376.     X[nN]*) x=0 ;;
  377.     esac
  378.     $ECHO ""
  379. fi
  380. cat >>defines.h <<EOF
  381. /*
  382.  * SIGSETMASK is 1 if your system has the sigsetmask() call.
  383.  * This is normally the case only for BSD 4.2,
  384.  * not for BSD 4.1 or System 5.
  385.  */
  386. #define    SIGSETMASK    $x
  387.  
  388. EOF
  389.  
  390.  
  391.  
  392.  
  393. if [ "$sys" = "sys5" -a "$xenix" = "0" ]
  394. then
  395.     def=yes; x=1
  396. else
  397.     def=no; x=0
  398. fi
  399. if [ $alldefault = 0 ]
  400. then
  401.     $ECHO "Some SCO System V systems need sys/ptem.h included to get"
  402.     $ECHO "the size of the screen (struct winsize)."
  403.     $ECHO "Does your system need sys/ptem.h? [$def] \c"
  404.     read ans
  405.     case "X$ans" in
  406.     X[yY]*) x=1 ;;
  407.     X[nN]*) x=0 ;;
  408.     esac
  409.     $ECHO ""
  410. fi
  411. cat >>defines.h <<EOF
  412. /*
  413.  * NEED_PTEM_H is 1 if your system needs sys/ptem.h to declare struct winsize.
  414.  * This is normally the case only for SCOs System V.
  415.  */
  416. #define    NEED_PTEM_H    $x
  417.  
  418. EOF
  419.  
  420.  
  421. if [ "$sys" = "bsd" ]
  422. then
  423.     def=2; REGCMP=0;RECOMP=1
  424. else
  425.     def=1; REGCMP=1;RECOMP=0
  426. fi
  427. if [ $alldefault = 0 ]
  428. then
  429.     $ECHO "Most System V systems have the regcmp() function."
  430.     $ECHO "Most Berkeley-derived systems have the re_comp() function."
  431.     $ECHO "Does your system have:"
  432.     $ECHO "  1. regcmp"
  433.     $ECHO "  2. re_comp"
  434.     $ECHO "  3. neither   [$def] \c"
  435.     read ans
  436.     case "X$ans" in
  437.     X1) REGCMP=1;RECOMP=0 ;;
  438.     X2) REGCMP=0;RECOMP=1 ;;
  439.     X3) REGCMP=0;RECOMP=0 ;;
  440.     esac
  441.     $ECHO ""
  442. fi
  443. cat >>defines.h <<EOF
  444. /*
  445.  * REGCMP is 1 if your system has the regcmp() function.
  446.  * This is normally the case for System 5.
  447.  * RECOMP is 1 if your system has the re_comp() function.
  448.  * This is normally the case for BSD.
  449.  * If neither is 1, pattern matching is supported, but without metacharacters.
  450.  */
  451. #define    REGCMP        $REGCMP
  452. #define    RECOMP        $RECOMP
  453.  
  454. EOF
  455.  
  456.  
  457.  
  458.  
  459. def=yes
  460. x=1
  461. if [ $alloptional = 0 ]
  462. then
  463.     $ECHO "Do you wish to allow shell escapes? [$def] \c"
  464.     read ans
  465.     case "X$ans" in
  466.     X[yY]*) x=1 ;;
  467.     X[nN]*) x=0 ;;
  468.     esac
  469.     $ECHO ""
  470. fi
  471. cat >>defines.h <<EOF
  472. /*
  473.  * SHELL_ESCAPE is 1 if you wish to allow shell escapes.
  474.  * (This is possible only if your system supplies the system() function.)
  475.  */
  476. #define    SHELL_ESCAPE    $x
  477.  
  478. EOF
  479.  
  480.  
  481.  
  482. def=yes
  483. x=1
  484. edname="vi"
  485. if [ $alloptional = 0 ]
  486. then
  487.     $ECHO "Do you wish to allow editor escapes? [$def] \c"
  488.     read ans
  489.     case "X$ans" in
  490.     X[nN]*) x=0; edname="" ;;
  491.     X[yY]*) x=1
  492.         $ECHO "What is the pathname of the default editor? [$edname] \c"
  493.         read ans 
  494.         if [ "x$ans" != "x" ]
  495.         then
  496.             edname=$ans
  497.         fi
  498.         ;;
  499.     esac
  500.     $ECHO ""
  501. fi
  502. cat >>defines.h <<EOF
  503. /*
  504.  * EDITOR is 1 if you wish to allow editor invocation (the "v" command).
  505.  * (This is possible only if your system supplies the system() function.)
  506.  * EDIT_PGM is the name of the (default) editor to be invoked.
  507.  */
  508. #define    EDITOR        $x
  509. #define    EDIT_PGM    "$edname"
  510.  
  511. EOF
  512.  
  513.  
  514.  
  515.  
  516. def=yes
  517. x=1
  518. if [ $alloptional = 0 ]
  519. then
  520.     $ECHO "Do you wish to support \"tag\" files? [$def] \c"
  521.     read ans
  522.     case "X$ans" in
  523.     X[yY]*) x=1 ;;
  524.     X[nN]*) x=0 ;;
  525.     esac
  526.     $ECHO ""
  527. fi
  528. cat >>defines.h <<EOF
  529. /*
  530.  * TAGS is 1 if you wish to support tag files.
  531.  */
  532. #define    TAGS        $x
  533.  
  534. EOF
  535.  
  536.  
  537.  
  538. def=yes
  539. x=1
  540. if [ $alloptional = 0 ]
  541. then
  542.     $ECHO "Do you wish to allow user-defined key definitions? [$def] \c"
  543.     read ans
  544.     case "X$ans" in
  545.     X[yY]*) x=1 ;;
  546.     X[nN]*) x=0 ;;
  547.     esac
  548.     $ECHO ""
  549. fi
  550. USERFILE=$x
  551. cat >>defines.h <<EOF
  552. /*
  553.  * USERFILE is 1 if you wish to allow a .less file to specify 
  554.  * user-defined key bindings.
  555.  */
  556. #define    USERFILE    $x
  557.  
  558. EOF
  559.  
  560.  
  561.  
  562. def=yes
  563. x=1
  564. if [ $alldefault = 0 ]
  565. then
  566.     $ECHO "If your system provides the popen() function and"
  567.     $ECHO "the \"echo\" shell command, you may allow shell metacharacters" 
  568.     $ECHO "to be expanded in filenames."
  569.     $ECHO "Do you wish to allow shell metacharacters in filenames? [$def] \c"
  570.     read ans
  571.     case "X$ans" in
  572.     X[yY]*) x=1 ;;
  573.     X[nN]*) x=0 ;;
  574.     esac
  575.     $ECHO ""
  576. fi
  577. cat >>defines.h <<EOF
  578. /*
  579.  * GLOB is 1 if you wish to have shell metacharacters expanded in filenames.
  580.  * This will generally work if your system provides the "popen" function
  581.  * and the "echo" shell command.
  582.  */
  583. #define    GLOB        $x
  584.  
  585. /*
  586.  * PIPEC is 1 if you wish to have the "|" command
  587.  * which allows the user to pipe data into a shell command.
  588.  */
  589. #define    PIPEC        $x
  590.  
  591. EOF
  592.  
  593.  
  594.  
  595. def=yes
  596. x=1
  597. if [ $alloptional = 0 ]
  598. then
  599.     $ECHO "Do you wish to allow log files (-l option)? [$def] \c"
  600.     read ans
  601.     case "X$ans" in
  602.     X[yY]*) x=1 ;;
  603.     X[nN]*) x=0 ;;
  604.     esac
  605.     $ECHO ""
  606. fi
  607. cat >>defines.h <<EOF
  608. /*
  609.  * LOGFILE is 1 if you wish to allow the -l option (to create log files).
  610.  */
  611. #define    LOGFILE        $x
  612.  
  613. EOF
  614.  
  615. cat >>defines.h <<EOF
  616. /*
  617.  * ONLY_RETURN is 1 if you want RETURN to be the only input which
  618.  * will continue past an error message.
  619.  * Otherwise, any key will continue past an error message.
  620.  */
  621. #define    ONLY_RETURN    0
  622.  
  623. EOF
  624.  
  625. cat >>makefile <<EOF
  626.  
  627. ##########################################################################
  628. # Compilation environment.
  629. ##########################################################################
  630.  
  631. EOF
  632.  
  633.  
  634.  
  635. if [ "$xenix" = "1" ]
  636. then
  637.     LIBS="-ltermlib"
  638. elif [ "$sys" = "bsd" ]
  639. then
  640.     LIBS="-ltermcap"
  641. else
  642.     LIBS="-lcurses -ltermcap -lPW"
  643. fi
  644. if [ $alldefault = 0 ]
  645. then
  646.     $ECHO "To build \"less\", you must link with libraries supplied by your system."
  647.     $ECHO "(If this needs to be changed later, edit the makefile"
  648.     $ECHO "and change the definition of LIBS.)"
  649.     $ECHO "What libraries should be used [$LIBS] \c"
  650.     read ans
  651.     if [ "X$ans" != "X" ]
  652.     then
  653.         LIBS="$ans"
  654.     fi
  655.     $ECHO ""
  656. fi
  657. cat >>makefile <<EOF
  658. # LIBS is the list of libraries needed.
  659. LIBS = $LIBS
  660.  
  661. EOF
  662.  
  663.  
  664.  
  665. INSTALL_LESS="/usr/local/bin/less"
  666. INSTALL_KEY="/usr/local/bin/lesskey"
  667. INSTALL_HELP="/usr/local/bin/less.hlp"
  668. INSTALL_LESSMAN="/usr/man/man1/less.1"
  669. INSTALL_KEYMAN="/usr/man/man1/lesskey.1"
  670. LESS_MANUAL="less.nro"
  671. KEY_MANUAL="lesskey.nro"
  672. if [ $alldefault = 0 ]
  673. then
  674.     $ECHO "What is the name of the \"public\" (installed) version of less?"
  675.     $ECHO " [$INSTALL_LESS] \c"
  676.     read ans
  677.     if [ "X$ans" != "X" ]
  678.     then
  679.         INSTALL_LESS="$ans"
  680.     fi
  681.     $ECHO "What is the name of the \"public\" (installed) version of lesskey?"
  682.     $ECHO " [$INSTALL_KEY] \c"
  683.     read ans
  684.     if [ "X$ans" != "X" ]
  685.     then
  686.         INSTALL_KEY="$ans"
  687.     fi
  688.     $ECHO "What is the name of the \"public\" (installed) version of the help file?"
  689.     $ECHO " [$INSTALL_HELP] \c"
  690.     read ans
  691.     if [ "X$ans" != "X" ]
  692.     then
  693.         INSTALL_HELP="$ans"
  694.     fi
  695.     $ECHO "What is the name of the \"public\" (installed) version of the less manual page?"
  696.     $ECHO " [$INSTALL_LESSMAN] \c"
  697.     read ans
  698.     if [ "X$ans" != "X" ]
  699.     then
  700.         INSTALL_LESSMAN="$ans"
  701.     fi
  702.     $ECHO "What is the name of the \"public\" (installed) version of the lesskey manual page?"
  703.     $ECHO " [$INSTALL_KEYMAN] \c"
  704.     read ans
  705.     if [ "X$ans" != "X" ]
  706.     then
  707.         INSTALL_KEYMAN="$ans"
  708.     fi
  709.     $ECHO ""
  710. fi
  711.  
  712. cat >>defines.h <<EOF
  713. /*
  714.  * HELPFILE is the full pathname of the help file.
  715.  */
  716. #define    HELPFILE    "$INSTALL_HELP"
  717.  
  718. EOF
  719.  
  720. cat >>makefile <<EOF
  721. # INSTALL_LESS is a list of the public versions of less.
  722. # INSTALL_KEY is a list of the public versions of lesskey.
  723. # INSTALL_HELP is a list of the public version of the help file.
  724. # INSTALL_LESSMAN is a list of the public versions of the less manual page.
  725. # INSTALL_KEYMAN is a list of the public versions of the lesskey manual page.
  726. INSTALL_LESS =        \$(ROOT)$INSTALL_LESS
  727. INSTALL_KEY =        \$(ROOT)$INSTALL_KEY
  728. INSTALL_HELP =        \$(ROOT)$INSTALL_HELP
  729. INSTALL_LESSMAN =    \$(ROOT)$INSTALL_LESSMAN
  730. INSTALL_KEYMAN =    \$(ROOT)$INSTALL_KEYMAN
  731. LESS_MANUAL =        $LESS_MANUAL
  732. KEY_MANUAL =        $KEY_MANUAL
  733. HELPFILE =        $INSTALL_HELP
  734.  
  735.  
  736. EOF
  737.  
  738.  
  739.  
  740. cat >>makefile <<"EOF"
  741. # OPTIM is passed to the compiler and the loader.
  742. # It is normally "-O" but may be, for example, "-g".
  743. OPTIM = -O
  744.  
  745. CFLAGS = $(OPTIM)
  746.  
  747.  
  748.  
  749. ##########################################################################
  750. # Files
  751. ##########################################################################
  752.  
  753. SRC1 =    ch.c cmdbuf.c command.c decode.c help.c input.c 
  754. SRC2 =    line.c linenum.c main.c edit.c option.c optfunc.c \
  755.     opttbl.c os.c 
  756. SRC3 =    charset.c filename.c lsystem.c output.c position.c ifile.c \
  757.     brac.c forwback.c jump.c search.c 
  758. SRC4 =    mark.c prompt.c screen.c signal.c tags.c ttyin.c version.c
  759.  
  760. SRC =    $(SRC1) $(SRC2) $(SRC3) $(SRC4)
  761.  
  762. OBJ =    brac.o ch.o charset.o cmdbuf.o command.o decode.o edit.o filename.o \
  763.     forwback.o help.o input.o jump.o line.o linenum.o \
  764.     lsystem.o main.o option.o optfunc.o opttbl.o os.o \
  765.     output.o position.o mark.o ifile.o prompt.o screen.o \
  766.     search.o signal.o tags.o ttyin.o version.o
  767.  
  768.  
  769. ##########################################################################
  770. # Rules for building stuff
  771. ##########################################################################
  772.  
  773. EOF
  774.  
  775. if [ "$USERFILE" = "1" ]
  776. then
  777.     cat >>makefile <<"EOF"
  778. all: less lesskey
  779. install: install_less install_help install_key install_lman install_kman
  780. EOF
  781. else
  782.     cat >>makefile <<"EOF"
  783. all: less
  784. install: install_less install_help install_lman
  785. EOF
  786. fi
  787.  
  788. cat >>makefile <<"EOF"
  789.  
  790. less: $(OBJ)
  791.     $(CC) $(LDFLAGS) $(OPTIM) -o less $(OBJ) $(LIBS) $(LDLIBS)
  792.  
  793. lesskey: lesskey.o
  794.     $(CC) $(LDFLAGS) $(OPTIM) -o lesskey lesskey.o $(LDLIBS)
  795.  
  796. install_less: less
  797.     for f in $(INSTALL_LESS); do  rm -f $$f; cp less $$f;  done
  798.     touch install_less
  799.  
  800. install_key: lesskey
  801.     for f in $(INSTALL_KEY); do  rm -f $$f; cp lesskey $$f;  done
  802.     touch install_key
  803.  
  804. install_help: less.hlp
  805.     for f in $(INSTALL_HELP); do  rm -f $$f; cp less.hlp $$f;  done
  806.     touch install_help
  807.  
  808. install_lman: $(LESS_MANUAL) 
  809.     for f in $(INSTALL_LESSMAN); do  rm -f $$f; cp $(LESS_MANUAL) $$f;  done
  810.     touch install_lman
  811.  
  812. install_kman: $(KEY_MANUAL)
  813.     for f in $(INSTALL_KEYMAN); do  rm -f $$f; cp $(KEY_MANUAL) $$f;  done
  814.     touch install_kman
  815.  
  816. ##########################################################################
  817. # Maintenance
  818. ##########################################################################
  819.  
  820. lint:
  821.     lint -hp $(SRC)
  822.  
  823. newfuncs funcs.h:
  824.     if [ -f funcs.h ]; then mv funcs.h funcs.h.OLD; fi
  825.     awk -f mkfuncs.awk $(SRC) >funcs.h
  826.  
  827. clean:
  828.     rm -f $(OBJ) lesskey.o less lesskey vecho
  829.  
  830. clobber:
  831.     rm -f *.o less lesskey vecho install_less install_key \
  832.         install_help install_lman install_kman
  833.  
  834. shar:
  835.     shar -v README CHANGES linstall \
  836.         less.nro lesskey.nro \
  837.         vecho.c mkfuncs.awk > less1.shr
  838.     shar -v less.man lesskey.man \
  839.         less.h position.h cmd.h option.h > less2.shr 
  840.     shar -v lesskey.c $(SRC1) > less3.shr
  841.     shar -v $(SRC2) > less4.shr
  842.     shar -v $(SRC3) less.hlp > less5.shr
  843.     shar -v $(SRC4) funcs.h > less6.shr
  844.  
  845.  
  846. ##########################################################################
  847. # Dependencies
  848. ##########################################################################
  849.  
  850. $(OBJ): less.h funcs.h defines.h position.h
  851. command.o decode.o: cmd.h
  852. option.o opttbl.o optfunc.o: option.h
  853.  
  854. lesskey.o: less.h funcs.h defines.h cmd.h
  855.  
  856. EOF
  857. $ECHO ""
  858.  
  859. $ECHO "The makefile and defines.h have been built."
  860. $ECHO "You should check them to make sure everything is as you want it to be."
  861. $ECHO "When you are satisfied, just type \"make\", and \"less\" will be built."
  862.