home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume9 / elm2 / part09 / Makefile next >
Makefile  |  1987-03-08  |  10KB  |  278 lines

  1. #
  2. #  Makefile for the entire ELM mail system
  3. #
  4. #         (C) Copyright 1986, Dave Taylor
  5. #
  6. #  Last modification: October 8th, 1986
  7.  
  8. SHELL=/bin/sh
  9.  
  10. #########################
  11. #
  12. # The following entries need to be customized for the local site:  
  13. #    The first is the address of the data-cassette drive to allow
  14. # easy tape copies to be made, and the second is the final location 
  15. # that all the software should be installed in when 'make install'
  16. # is run.
  17. #
  18. #########################
  19.  
  20. TAPE=   /dev/rct 
  21. DEST=   /usr/local/bin
  22.  
  23. LIB=    /usr/local/lib
  24. MAN=    /usr/man/man1
  25. CATMAN= /usr/man/cat1
  26. SHAR=   /usr/local/bin/shar -s 60000
  27.  
  28. DEFINE = -DBSD
  29. LIB2   = -lcurses
  30.  
  31. #########################
  32.  
  33. LIBS=   -ltermcap
  34. CFLAGS= -O
  35. CC=    /bin/cc
  36. RM=    /bin/rm -f
  37. MV=     /bin/mv -f
  38. CP=    /bin/cp
  39.  
  40. # if you want to use "nroff", change this...
  41.  
  42. FORMATTER = /usr/bin/troff
  43. TBL       = cat
  44.  
  45. DOCS=   Alias.guide Config.guide Elm.coversheet Filter.guide Ref.guide     \
  46.     Forms.guide Users.guide answer.1 autoreply.1 checkalias.1          \
  47.     elm.1 fastmail.1 filter.1 from.1 listalias.1 messages.1 newalias.1 \
  48.     newmail.1 printmail.1 readmsg.1 trim-headers.1 wnewmail.1
  49.  
  50. UTILSRC= utils/answer.c utils/arepdaemon.c utils/autoreply.c           \
  51.     utils/fastmail.c utils/from.c utils/newalias.c \
  52.     utils/newmail.c utils/printmail.c utils/readmsg.c utils/wnewmail.c \
  53.     utils/trim-headers
  54.  
  55. FILTSRC= filter/actions.c filter/filter.c filter/parse.c filter/rules.c     \
  56.     filter/summarize.c filter/utils.c
  57.  
  58. ELMSRC=    src/addr_utils.c src/alias.c src/aliasdb.c src/aliaslib.c src/args.c  \
  59.     src/bounceback.c src/builtin.c src/calendar.c src/connect_to.c          \
  60.     src/curses.c src/date.c src/delete.c src/domains.c src/edit.c          \
  61.     src/editmsg.c src/elm.c src/encode.c src/errno.c src/file.c          \
  62.     src/file_utils.c src/fileio.c src/forms.c src/getopt.c src/hdrconfg.c \
  63.     src/help.c src/initialize.c src/input_utils.c src/leavembox.c          \
  64.     src/limit.c src/mailmsg1.c src/mailmsg2.c src/mailtime.c src/mkhdrs.c \
  65.     src/newmbox.c src/opt_utils.c src/options.c src/output_utils.c        \
  66.     src/pattern.c src/pmalloc.c src/quit.c src/read_rc.c src/remail.c     \
  67.     src/reply.c src/return_addr.c src/save_opts.c src/savecopy.c          \
  68.     src/screen.c src/showmsg.c src/signals.c src/softkeys.c src/sort.c    \
  69.     src/string2.c src/strings.c src/syscall.c src/utils.c src/validname.c
  70.  
  71. MISCHDRS  = hdrs/defs.h hdrs/sysdefs.h
  72. ELMHDRS   = hdrs/headers.h 
  73. FILTHDRS  = hdrs/filter.h
  74. MAINHDRS  = hdrs/elm.h
  75.  
  76. ################
  77.  
  78. all:    bin/elm filter utils 
  79.     @echo Everything is up to date!
  80.  
  81. documentation:  doc/Users.fmtd doc/Ref.fmtd doc/Config.fmtd doc/Alias.fmtd \
  82.         doc/Form.fmtd doc/Filter.fmtd
  83.     
  84. doc/Users.fmtd: doc/Users.guide
  85.     ${TBL} doc/Users.guide | ${FORMATTER} -mm > doc/Users.fmtd
  86.  
  87. doc/Form.fmtd: doc/Form.guide
  88.     ${FORMATTER} -mm doc/Form.guide > doc/Form.fmtd
  89.  
  90. doc/Filter.fmtd: doc/Filter.guide
  91.     ${FORMATTER} -mm doc/Filter.guide > doc/Filter.fmtd
  92.  
  93. doc/Ref.fmtd: doc/Ref.guide
  94.     ${FORMATTER} -mm doc/Ref.guide > doc/Ref.fmtd
  95.  
  96. doc/Config.fmtd:  doc/Config.guide
  97.     ${TBL} doc/Config.guide | ${FORMATTER} -mm > doc/Config.fmtd
  98.  
  99. doc/Alias.fmtd:  doc/Alias.guide
  100.     ${FORMATTER} -mm doc/Alias.guide > doc/Alias.fmtd
  101.  
  102. bin/elm: ${ELMSRC} ${MISCHDRS} ${ELMHDRS} ${MAINHDRS}
  103.     cd src;make 'DEFINE=${DEFINE}' 'LIB2=${LIB2}' ../bin/elm
  104.     
  105. bin/utils: ${UTILSRC} ${MISCHHDRS}
  106.     cd utils; make 'DEFINE=${DEFINE}' 'LIBS=${LIB2}' all
  107.  
  108. bin/filter: ${FILTSRC} ${FILTHDR}
  109.     cd filter; make 'DEFINE=${DEFINE}' 'LIBS=${LIB2}' all
  110.  
  111. install: all
  112.     ${CP} bin/elm          ${DEST}/elm
  113.     ${CP} bin/from         ${DEST}/from
  114.     ${CP} bin/newalias     ${DEST}/newalias
  115.     ${CP} bin/printmail    ${DEST}/printmail
  116.     ${CP} bin/fastmail     ${DEST}/fastmail
  117.     ${CP} bin/readmsg      ${DEST}/readmsg
  118.     ${CP} bin/newmail      ${DEST}/newmail
  119.     ${CP} bin/wnewmail     ${DEST}/wnewmail
  120.     ${CP} bin/checkalias   ${DEST}/checkalias
  121.     ${CP} bin/messages     ${DEST}/messages
  122.     ${CP} bin/trim-headers ${DEST}/trim-headers
  123.     ${CP} bin/arepdaemon   ${DEST}/arepdaemon
  124.     ${CP} bin/autoreply    ${DEST}/autoreply
  125.     ${CP} bin/listalias    ${DEST}/listalias
  126.     ${CP} bin/filter       ${DEST}/filter
  127.     ${RM} ${CATMAN}/elm.1 ${CATMAN}/from.1 \
  128.           ${CATMAN}/newalias.1 ${CATMAN}/printmail.1 \
  129.           ${CATMAN}/fastmail.1 ${CATMAN}/elm.1 \
  130.           ${CATMAN}/readmsg.1 ${CATMAN}/answer.1 \
  131.           ${CATMAN}/newmail.1 ${CATMAN}/checkalias.1 \
  132.           ${CATMAN}/autoreply.1 ${CATMAN}/wnewmail.1 \
  133.           ${CATMAN}/messages.1 ${CATMAN}/trim-headers.1 \
  134.           ${CATMAN}/listalias.1 ${CATMAN}/filter.1
  135.     ${CP} doc/elm.1        ${MAN}/elm.1
  136.     ${CP} doc/from.1       ${MAN}/from.1
  137.     ${CP} doc/newalias.1   ${MAN}/newalias.1
  138.     ${CP} doc/printmail.1  ${MAN}/printmail.1
  139.     ${CP} doc/fastmail.1   ${MAN}/fastmail.1
  140.     ${CP} doc/checkalias.1 ${MAN}/checkalias.1
  141.     ${CP} doc/messages.1   ${MAN}/messages.1
  142.     ${CP} doc/trim-headers.1 ${MAN}/trim-headers.1
  143.     ${CP} doc/autoreply.1  ${MAN}/autoreply.1
  144.     ${CP} doc/answer.1     ${MAN}/answer.1
  145.     ${CP} doc/readmsg.1    ${MAN}/readmsg.1
  146.     ${CP} doc/newmail.1    ${MAN}/newmail.1
  147.     ${CP} doc/wnewmail.1   ${MAN}/wnewmail.1
  148.     ${CP} doc/listalias.1  ${MAN}/listalias.1
  149.     ${CP} doc/filter.1     ${MAN}/filter.1
  150.     ${CP} doc/elm-help.?   ${LIB}
  151.     ${CP} doc/elmrc-info   ${LIB}
  152.     chmod a+rx ${DEST}/from ${DEST}/newalias \
  153.            ${DEST}/printmail ${DEST}/fastmail \
  154.            ${DEST}/readmsg ${DEST}/trim-headers \
  155.            ${DEST}/checkalias ${DEST}/autoreply \
  156.            ${DEST}/newmail ${DEST}/wnewmail ${DEST}/messages \
  157.            ${DEST}/listalias
  158.     chgrp mail ${DEST}/elm ${DEST}/filter
  159.     chmod 2755 ${DEST}/elm ${DEST}/filter
  160.     @echo Done with installation.
  161.  
  162. rmt-install: remote-defined
  163.     @echo " "
  164.     @echo Warning: This assumes "install" has been done on the
  165.     @echo "         remote machine.  If this is not the case you"
  166.     @echo "         better hit BREAK quickly!"
  167.     @echo " "
  168.     ${CP} ${REMOTE}${DEST}/elm          ${DEST}/elm
  169.     ${CP} ${REMOTE}${DEST}/from         ${DEST}/from
  170.     ${CP} ${REMOTE}${DEST}/newalias     ${DEST}/newalias
  171.     ${CP} ${REMOTE}${DEST}/printmail    ${DEST}/printmail
  172.     ${CP} ${REMOTE}${DEST}/fastmail     ${DEST}/fastmail
  173.     ${CP} ${REMOTE}${DEST}/readmsg      ${DEST}/readmsg
  174.     ${CP} ${REMOTE}${DEST}/wnewmail     ${DEST}/wnewmail
  175.     ${CP} ${REMOTE}${DEST}/newmail      ${DEST}/newmail
  176.     ${CP} ${REMOTE}${DEST}/checkalias   ${DEST}/checkalias
  177.     ${CP} ${REMOTE}${DEST}/messages     ${DEST}/messages
  178.     ${CP} ${REMOTE}${DEST}/arepdaemon   ${DEST}/arepdaemon
  179.     ${CP} ${REMOTE}${DEST}/autoreply    ${DEST}/autoreply
  180.     ${CP} ${REMOTE}${DEST}/listalias    ${DEST}/listalias
  181.     ${RM} ${CATMAN}/elm.1 \
  182.           ${CATMAN}/from.1 \
  183.               ${CATMAN}/newalias.1 \
  184.           ${CATMAN}/printmail.1 \
  185.           ${CATMAN}/fastmail.1 \
  186.               ${CATMAN}/checkalias.1 \
  187.               ${CATMAN}/autoreply.1 \
  188.           ${CATMAN}/readmsg.1 \
  189.           ${CATMAN}/answer.1 \
  190.           ${CATMAN}/newmail.1 \
  191.           ${CATMAN}/wnewmail.1 \
  192.           ${CATMAN}/listalias.1 \
  193.               ${CATMAN}/elm.1
  194.     ${CP} ${REMOTE}${MAN}/elm.1        ${MAN}/elm.1
  195.     ${CP} ${REMOTE}${MAN}/from.1       ${MAN}/from.1
  196.     ${CP} ${REMOTE}${MAN}/newalias.1   ${MAN}/newalias.1
  197.     ${CP} ${REMOTE}${MAN}/printmail.1  ${MAN}/printmail.1
  198.     ${CP} ${REMOTE}${MAN}/fastmail.1   ${MAN}/fastmail.1
  199.     ${CP} ${REMOTE}${MAN}/checkalias.1 ${MAN}/checkalias.1
  200.     ${CP} ${REMOTE}${MAN}/autoreply.1  ${MAN}/autoreply.1
  201.     ${CP} ${REMOTE}${MAN}/readmsg.1    ${MAN}/readmsg.1
  202.     ${CP} ${REMOTE}${MAN}/answer.1     ${MAN}/answer.1
  203.     ${CP} ${REMOTE}${MAN}/wnewmail.1   ${MAN}/wnewmail.1
  204.     ${CP} ${REMOTE}${MAN}/newmail.1    ${MAN}/newmail.1
  205.     ${CP} ${REMOTE}${MAN}/listalias.1  ${MAN}/listalias.1
  206.     ${CP} ${REMOTE}${LIB}/elm-help.?   ${LIB}
  207.     ${CP} ${REMOTE}${LIB}/elmrc-info   ${LIB}
  208.     chmod a+rx ${DEST}/from ${DEST}/newalias ${DEST}/printmail \
  209.                ${DEST}/fastmail ${DEST}/readmsg \
  210.            ${DEST}/checkalias ${DEST}/autoreply ${DEST}/wnewmail \
  211.            ${DEST}/newmail ${DEST}/messages ${DEST}/listalias
  212.     chgrp mail ${DEST}/elm
  213.     chmod 2755 ${DEST}/elm
  214.     @echo everything is installed based on files from ${REMOTE}
  215.  
  216. source: 
  217.     tar cvf ${TAPE} bin/makelisting utils/*.c src/*.c doc/* hdrs/* \
  218.     Instructions Makefile* utils/Makefile* src/Makefile* test/*    \
  219.     utils/*.awk Overview filter/*.c filter/Makefile*
  220.  
  221. # Note that the production for SHAR assumes a pretty snazzy shar program
  222. # that can break down the output into a number of files as needed...
  223. #   The current threshold is 60,000 bytes per file, for email/netnews
  224.  
  225. shar:   
  226.     ${SHAR} *
  227.  
  228. lint:
  229.     lint ${UTILSRC} > lint.out
  230.  
  231. listing:
  232.     @echo listing all source files 
  233.     @/bin/echo \\f > LISTING
  234.     @echo adding file 'README'...
  235.     @cat README >> LISTING
  236.     @/bin/echo \\f >> LISTING
  237.     @echo adding file 'Instructions...
  238.     @cat Instructions >> LISTING
  239.     @/bin/echo \\f >> LISTING
  240.     @echo adding file 'Makefile'...
  241.     @cat Makefile >> LISTING
  242.     @bin/makelisting Makefile ${UTILSRC} src/Makefile src/*.c hdrs/*.h \
  243.     ${FILTSRC}
  244.     @echo LISTING generated.
  245.  
  246. elm-listing: 
  247.     @echo listing just the ELM system source files
  248.     @echo ' ' > src/LISTING
  249.     @cd src ; make listing ; cd ..
  250.     @echo LISTING generated \(in directory /src\).
  251.  
  252. clean:
  253.     @cd src ; make clean 
  254.     @cd utils; make clean
  255.     @cd filter; make clean
  256.     @echo All spurious files removed
  257.  
  258. elm: bin/elm
  259. filter: bin/filter
  260. utils: bin/utils
  261. utils/checkalias:
  262. utils/messages:
  263. doc/Users.guide:
  264. doc/Ref.guide:
  265. doc/Alias.guide:
  266. doc/Config.guide:
  267.  
  268. remote-defined:
  269.     @if ( "${REMOTE}" == "" ) then; \
  270.        echo " " ; \
  271.        echo "You need to define 'REMOTE' as the remote file system" ; \
  272.        echo "for this particular command.   The easiest way to do " ; \
  273.        echo "this is to type:" ;\
  274.        echo "    make -f <makefile> REMOTE=<remote file system> rmt-install" ; \
  275.        echo " " ; \
  276.      endif
  277.     @if ( "${REMOTE}" == "" ) exit 1
  278.