home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / misc / volume34 / fsp / part01 / Makefile < prev    next >
Encoding:
Makefile  |  1992-12-18  |  13.1 KB  |  332 lines

  1. #############################################################################
  2. # You need to do a successful 'make' in the bsd_src directory first before
  3. # trying to run 'make' in this directory.  The bsd_src directory contains
  4. # several files derived from those found in the ftp.uu.net archive.
  5. # Run "make install" to install binaries.
  6. # Run "make installm" to install man pages.
  7. # Run "make de-install" to remove installed binaries and man pages.
  8.  
  9. #############################################################################
  10. # This is where you want to install the binary
  11. #
  12. BIN=/usr/local/bin
  13.  
  14. #############################################################################
  15. # This is where you want to install the man pages, don't worry about it if
  16. # you don't plan to install man pages.
  17. #
  18. MAN=/usr/local/man/man1
  19.  
  20. #############################################################################
  21. # If you want to provide FSP service, this should be set to the working
  22. # directory of the FSP server.  Don't worry about it and other server-related
  23. # definitions if you do not plan to start a FSP server.
  24. #
  25. DEF_FSP_HOME=/usr/tmp/fsp_home
  26.  
  27. #############################################################################
  28. # If the server is to run on a machine with file name length limit, set the
  29. # following variable to the length.  Otherwise, set it to something big.
  30. #
  31. FILE_NAME_LIMIT=99999
  32.  
  33. #############################################################################
  34. # If you want to provide FSP service, this should be set to the UDP socket
  35. # port number the FSP server should use.
  36. #
  37. DEF_FSP_PORT=21
  38.  
  39. #############################################################################
  40. # FSP servers normally keep a directory listing file in each directory it
  41. # exports.  In situation where this is not appropriate, FSP can store the
  42. # listing in another directory instead.  DEF_DIRECTORY_CACHE should contain
  43. # a directory where such a listing is to be placed.  The path is relative
  44. # to DEF_FSP_HOME unless it starts with a '/'.  FSP server also uses this
  45. # directory to hold temporary files during upload, so this variable must
  46. # refer to a valid directory even if all subdirectories are writable by
  47. # the fspd process.
  48.  
  49. DEF_DIRECTORY_CACHE=.
  50.  
  51. # MAX_DIR_CACHE_COUNT should contain the number of listings to be cached in
  52. # DEF_DIRECTORY_CACHE.  The number should be a power of 2.
  53.  
  54. MAX_DIR_CACHE_COUNT=16
  55.  
  56. # ALWAYS_USE_CACHE_DIR should be 1 if you want it used as the default way to
  57. # store directory listing files.  (Note, .FSP_CONTENT files will still be
  58. # used if they alreay exist.
  59.  
  60. ALWAYS_USE_CACHE_DIR=0
  61.  
  62. #############################################################################
  63. # This is where the version number string comes from:
  64. #
  65. VERSION_STR="Original Caltech version 2.6.4, December 1992"
  66.  
  67. #############################################################################
  68. # FSP uses BSD random/srandom functions.  If your system does not have
  69. # them, include them from the bsd_src directory.
  70. #
  71. #RANDOM=bsd_src/random.o
  72.  
  73. #############################################################################
  74. # Below are definitions related to the client utilities.
  75. #############################################################################
  76. # If your machine has either lockf or flock functions, you may be able to
  77. # compile the client codes so that multiple client commands can be run
  78. # concurrently.  Uncomment one of the following and set the LOCK_PREFIX
  79. # string appropriately.  In most cases, they are prefixes used to create 
  80. # a lock file in your file system.  There are some restrictions, for example
  81. # on SunOS, lock files may not be on a file system of type tmp.  The most
  82. # efficient locking choice is the one that uses SysV shared memory plus lockf.
  83. # Note, it is possible for some UNIX to have hooks for the locking mechanism
  84. # exist in the C library but unsupported in the kernel.  In such a case,
  85. # compilation will complete normally, but you will get run time errors.
  86. #
  87. #LOCK_FLAGS= -DUSE_SHAREMEM_AND_LOCKF -DKEY_PREFIX=\"/usr/tmp/.FL\"
  88. #LOCK_FLAGS= -DUSE_FLOCK -DKEY_PREFIX=\"/usr/tmp/.FL\"
  89. #LOCK_FLAGS= -DUSE_LOCKF -DKEY_PREFIX=\"/usr/tmp/.FL\"
  90. LOCK_FLAGS= -DNOLOCKING
  91.  
  92. #############################################################################
  93. # The following variable defines the compiler to use in your compilation.
  94. CC=cc
  95.  
  96. #############################################################################
  97. # Include -DDIRENT in CFLAGS if you have /usr/include/dirent.h.
  98. # Remove  -DDIRENT if you do not.
  99. CFLAGS=-g -DDIRENT
  100.  
  101. #############################################################################
  102. # If you need to link in any additional libraries, do it here.
  103. # AT&T 3B2/600G + AT&T Unix Sys V R 3.2.3 + WIN/TCP R 3.2 use -lnet -lnsl_s 
  104. LIB=
  105.  
  106. SHELL=/bin/sh
  107.  
  108. PROGS=    flscmd fcdcmd fgetcmd frmcmd frmdircmd fprocmd \
  109.     fmkdir fput fver fcatcmd fgrabcmd
  110.  
  111. IPROGS=    ${BIN}/flscmd ${BIN}/fcdcmd \
  112.     ${BIN}/fgetcmd ${BIN}/frmcmd ${BIN}/frmdircmd ${BIN}/fprocmd \
  113.     ${BIN}/fmkdir ${BIN}/fput ${BIN}/fver ${BIN}/fcatcmd ${BIN}/fgrabcmd
  114.  
  115. IMANS=    ${MAN}/fcatcmd.1 ${MAN}/fcat.1 ${MAN}/fcdcmd.1 ${MAN}/fcd.1 \
  116.     ${MAN}/fgetcmd.1 ${MAN}/fget.1 ${MAN}/flscmd.1 ${MAN}/fls.1 \
  117.     ${MAN}/fmkdir.1 ${MAN}/fprocmd.1 ${MAN}/fpro.1 ${MAN}/fput.1 \
  118.     ${MAN}/frmcmd.1 ${MAN}/frm.1 ${MAN}/frmdircmd.1 ${MAN}/frmdir.1 \
  119.     ${MAN}/fspd.1 ${MAN}/fver.1 ${MAN}/fgrab.1 ${MAN}/fgrabcmd.1
  120.  
  121. all:
  122.     @ cd bsd_src; make CC="${CC}" CFLAGS="${CFLAGS}"
  123.     @ make all1
  124.  
  125. merge:
  126.     @ cd bsd_src; make
  127.     @ make fspd fsp_client_merge
  128.  
  129. all1:      ${PROGS} fspd
  130. install:  ${IPROGS} ${BIN}/fspd
  131. installm: ${IMANS}
  132.  
  133. install-merge: ${BIN}/fspd fsp_client_merge
  134.     - rm -f ${IPROGS} ${BIN}/fsp_client_merge
  135.     cp fsp_client_merge ${BIN}/fsp_client_merge
  136.     for A in ${IPROGS} ; do ln ${BIN}/fsp_client_merge $$A; done
  137.     rm -f ${BIN}/fsp_client_merge
  138.  
  139. SERVER_OBJ= server_main.o server_lib.o server_host.o udp_io.o server_file.o
  140. CLIENT_OBJ= client_lib.o udp_io.o client_util.o client_lock.o
  141. GLOB_OBJ= bsd_src/glob.o
  142. UTIL_LS_OBJ= bsd_src/cmp.o bsd_src/ls.o bsd_src/print.o bsd_src/util.o \
  143.         ${GLOB_OBJ}
  144.  
  145. #############################################################################
  146.  
  147. fspd: ${SERVER_OBJ} ${RANDOM}
  148.     ${CC} ${CFLAGS} -o fspd ${SERVER_OBJ} ${RANDOM} ${LIB}
  149.  
  150. fgetcmd: fgetcmd.o ${CLIENT_OBJ} ${GLOB_OBJ}
  151.     ${CC} ${CFLAGS} -o fgetcmd fgetcmd.o ${CLIENT_OBJ} ${GLOB_OBJ} ${LIB}
  152.  
  153. fgrabcmd: fgrabcmd.o ${CLIENT_OBJ} ${GLOB_OBJ}
  154.     ${CC} ${CFLAGS} -o fgrabcmd fgrabcmd.o ${CLIENT_OBJ} ${GLOB_OBJ} ${LIB}
  155.  
  156. fcatcmd: fcatcmd.o ${CLIENT_OBJ} ${GLOB_OBJ}
  157.     ${CC} ${CFLAGS} -o fcatcmd fcatcmd.o ${CLIENT_OBJ} ${GLOB_OBJ} ${LIB}
  158.  
  159. fput: fput.o ${CLIENT_OBJ}
  160.     ${CC} ${CFLAGS} -o fput fput.o ${CLIENT_OBJ} ${LIB}
  161.  
  162. frmcmd: frmcmd.o ${CLIENT_OBJ} ${GLOB_OBJ}
  163.     ${CC} ${CFLAGS} -o frmcmd frmcmd.o ${CLIENT_OBJ} ${GLOB_OBJ} ${LIB}
  164.  
  165. flscmd: flscmd.o ${CLIENT_OBJ} ${UTIL_LS_OBJ}
  166.     ${CC} ${CFLAGS} -o flscmd flscmd.o ${CLIENT_OBJ} ${UTIL_LS_OBJ} ${LIB}
  167.  
  168. fcdcmd: fcdcmd.o ${CLIENT_OBJ} ${GLOB_OBJ}
  169.     ${CC} ${CFLAGS} -o fcdcmd fcdcmd.o ${CLIENT_OBJ} ${GLOB_OBJ} ${LIB}
  170.  
  171. frmdircmd: frmdircmd.o ${CLIENT_OBJ} ${GLOB_OBJ}
  172.     ${CC} ${CFLAGS} -o frmdircmd frmdircmd.o ${CLIENT_OBJ} ${GLOB_OBJ} \
  173.                                     ${LIB}
  174.  
  175. fprocmd: fprocmd.o ${CLIENT_OBJ} ${GLOB_OBJ}
  176.     ${CC} ${CFLAGS} -o fprocmd fprocmd.o ${CLIENT_OBJ} ${GLOB_OBJ} ${LIB}
  177.  
  178. fmkdir: fmkdir.o ${CLIENT_OBJ}
  179.     ${CC} ${CFLAGS} -o fmkdir fmkdir.o ${CLIENT_OBJ} ${LIB}
  180.  
  181. fver: fver.o ${CLIENT_OBJ}
  182.     ${CC} ${CFLAGS} -o fver fver.o ${CLIENT_OBJ} ${LIB}
  183.  
  184. fver.o: fver.c client_def.h common_def.h Makefile
  185.     ${CC} ${CFLAGS} -c -DVERSION_STR=\"${VERSION_STR}\" fver.c
  186.  
  187. #############################################################################
  188.  
  189. MERGE_OBJ = fcatcmd_merge.o fcdcmd_merge.o fgetcmd_merge.o fgrabcmd_merge.o \
  190.         flscmd_merge.o fmkdir_merge.o fprocmd_merge.o fput_merge.o \
  191.         frmcmd_merge.o frmdircmd_merge.o fver_merge.o
  192.  
  193. fgetcmd_merge.o: fgetcmd.o
  194.     echo '#include "fgetcmd.c"' > fgetcmd_merge.c
  195.     ${CC} ${CFLAGS} -c -Dmain=fgetcmd_main fgetcmd_merge.c
  196.     rm -f fgetcmd_merge.c
  197.  
  198. fgrabcmd_merge.o: fgrabcmd.o
  199.     echo '#include "fgrabcmd.c"' > fgrabcmd_merge.c
  200.     ${CC} ${CFLAGS} -c -Dmain=fgrabcmd_main fgrabcmd_merge.c
  201.     rm -f fgrabcmd_merge.c
  202.  
  203. fcatcmd_merge.o: fcatcmd.o
  204.     echo '#include "fcatcmd.c"' > fcatcmd_merge.c
  205.     ${CC} ${CFLAGS} -c -Dmain=fcatcmd_main fcatcmd_merge.c
  206.     rm -f fcatcmd_merge.c
  207.  
  208. fput_merge.o: fput.o
  209.     echo '#include "fput.c"' > fput_merge.c
  210.     ${CC} ${CFLAGS} -c -Dmain=fput_main fput_merge.c
  211.     rm -f fput_merge.c
  212.  
  213. frmcmd_merge.o: frmcmd.o
  214.     echo '#include "frmcmd.c"' > frmcmd_merge.c
  215.     ${CC} ${CFLAGS} -c -Dmain=frmcmd_main frmcmd_merge.c
  216.     rm -f frmcmd_merge.c
  217.  
  218. flscmd_merge.o: flscmd.o
  219.     echo '#include "flscmd.c"' > flscmd_merge.c
  220.     ${CC} ${CFLAGS} -c -Dmain=flscmd_main flscmd_merge.c
  221.     rm -f flscmd_merge.c
  222.  
  223. fcdcmd_merge.o: fcdcmd.o
  224.     echo '#include "fcdcmd.c"' > fcdcmd_merge.c
  225.     ${CC} ${CFLAGS} -c -Dmain=fcdcmd_main fcdcmd_merge.c
  226.     rm -f fcdcmd_merge.c
  227.  
  228. frmdircmd_merge.o: frmdircmd.o
  229.     echo '#include "frmdircmd.c"' > frmdircmd_merge.c
  230.     ${CC} ${CFLAGS} -c -Dmain=frmdircmd_main frmdircmd_merge.c
  231.     rm -f frmdircmd_merge.c
  232.  
  233. fprocmd_merge.o: fprocmd.o
  234.     echo '#include "fprocmd.c"' > fprocmd_merge.c
  235.     ${CC} ${CFLAGS} -c -Dmain=fprocmd_main fprocmd_merge.c
  236.     rm -f fprocmd_merge.c
  237.  
  238. fmkdir_merge.o: fmkdir.o
  239.     echo '#include "fmkdir.c"' > fmkdir_merge.c
  240.     ${CC} ${CFLAGS} -c -Dmain=fmkdir_main fmkdir_merge.c
  241.     rm -f fmkdir_merge.c
  242.  
  243. fver_merge.o: fver.o Makefile
  244.     echo '#include "fver.c"' > fver_merge.c
  245.     ${CC} ${CFLAGS} -c -Dmain=fver_main -DVERSION_STR=\"${VERSION_STR}\" \
  246.                 fver_merge.c
  247.     rm -f fver_merge.c
  248.  
  249. fsp_client_merge: merge.o ${MERGE_OBJ} ${CLIENT_OBJ} ${UTIL_LS_OBJ}
  250.     ${CC} -o fsp_client_merge merge.o ${MERGE_OBJ} \
  251.                 ${CLIENT_OBJ} ${UTIL_LS_OBJ} ${LIB}
  252.  
  253. #############################################################################
  254.  
  255.  
  256. ${BIN}/fspd     : fspd      ; cp fspd      ${BIN}/fspd
  257. ${BIN}/fgetcmd  : fgetcmd   ; cp fgetcmd   ${BIN}/fgetcmd
  258. ${BIN}/fgrabcmd : fgrabcmd  ; cp fgrabcmd  ${BIN}/fgrabcmd
  259. ${BIN}/fcatcmd  : fcatcmd   ; cp fcatcmd   ${BIN}/fcatcmd
  260. ${BIN}/fput     : fput      ; cp fput      ${BIN}/fput
  261. ${BIN}/frmcmd   : frmcmd    ; cp frmcmd    ${BIN}/frmcmd
  262. ${BIN}/flscmd   : flscmd    ; cp flscmd    ${BIN}/flscmd
  263. ${BIN}/fcdcmd   : fcdcmd    ; cp fcdcmd    ${BIN}/fcdcmd
  264. ${BIN}/frmdircmd: frmdircmd ; cp frmdircmd ${BIN}/frmdircmd
  265. ${BIN}/fprocmd  : fprocmd   ; cp fprocmd   ${BIN}/fprocmd
  266. ${BIN}/fmkdir   : fmkdir    ; cp fmkdir    ${BIN}/fmkdir
  267. ${BIN}/fver     : fver      ; cp fver      ${BIN}/fver
  268.  
  269. #############################################################################
  270.  
  271. ${MAN}/fcat.1     : fcatcmd.1  ; cp fcat.1      ${MAN}/fcat.1
  272. ${MAN}/fcatcmd.1  : fcatcmd.1  ; cp fcatcmd.1   ${MAN}/fcatcmd.1
  273. ${MAN}/fcd.1      : fcdcmd.1   ; cp fcd.1       ${MAN}/fcd.1
  274. ${MAN}/fcdcmd.1   : fcdcmd.1   ; cp fcdcmd.1    ${MAN}/fcdcmd.1
  275. ${MAN}/fget.1     : fgetcmd.1  ; cp fget.1      ${MAN}/fget.1
  276. ${MAN}/fgetcmd.1  : fgetcmd.1  ; cp fgetcmd.1   ${MAN}/fgetcmd.1
  277. ${MAN}/fgrab.1    : fgrabcmd.1 ; cp fgrab.1     ${MAN}/fgrab.1
  278. ${MAN}/fgrabcmd.1 : fgrabcmd.1 ; cp fgrabcmd.1  ${MAN}/fgrabcmd.1
  279. ${MAN}/fls.1      : flscmd.1   ; cp fls.1       ${MAN}/fls.1
  280. ${MAN}/flscmd.1   : flscmd.1   ; cp flscmd.1    ${MAN}/flscmd.1
  281. ${MAN}/fmkdir.1   : fmkdir.1   ; cp fmkdir.1    ${MAN}/fmkdir.1
  282. ${MAN}/fpro.1     : fprocmd.1  ; cp fpro.1      ${MAN}/fpro.1
  283. ${MAN}/fprocmd.1  : fprocmd.1  ; cp fprocmd.1   ${MAN}/fprocmd.1
  284. ${MAN}/fput.1     : fput.1     ; cp fput.1      ${MAN}/fput.1
  285. ${MAN}/frm.1      : frmcmd.1   ; cp frm.1       ${MAN}/frm.1
  286. ${MAN}/frmcmd.1   : frmcmd.1   ; cp frmcmd.1    ${MAN}/frmcmd.1
  287. ${MAN}/frmdir.1   : frmdircmd.1; cp frmdir.1    ${MAN}/frmdir.1
  288. ${MAN}/frmdircmd.1: frmdircmd.1; cp frmdircmd.1 ${MAN}/frmdircmd.1
  289. ${MAN}/fspd.1     : fspd.1     ; cp fspd.1      ${MAN}/fspd.1
  290. ${MAN}/fver.1     : fver.1     ; cp fver.1      ${MAN}/fver.1
  291.  
  292. #############################################################################
  293.  
  294. server_main.o: server_main.c server_def.h common_def.h Makefile
  295.     ${CC} ${CFLAGS} -DDEF_FSP_PORT=${DEF_FSP_PORT}    \
  296.              -DDEF_FSP_HOME=\"${DEF_FSP_HOME}\"    \
  297.              -DVERSION_STR=\"${VERSION_STR}\"    \
  298.              -DFILE_NAME_LIMIT=${FILE_NAME_LIMIT} \
  299.              -DALWAYS_USE_CACHE_DIR=${ALWAYS_USE_CACHE_DIR} \
  300.              -DMAX_DIR_CACHE_COUNT=${MAX_DIR_CACHE_COUNT} \
  301.              -DDEF_DIRECTORY_CACHE=\"${DEF_DIRECTORY_CACHE}\"    \
  302.              -c server_main.c
  303.  
  304. client_lock.o: client_lock.c client_def.h common_def.h Makefile
  305.     ${CC} ${CFLAGS} ${LOCK_FLAGS} -c client_lock.c
  306.  
  307. client_lib.o: client_lib.c client_def.h common_def.h
  308. client_util.o: client_util.c client_def.h common_def.h
  309. fcatcmd.o: fcatcmd.c client_def.h common_def.h
  310. fcdcmd.o: fcdcmd.c client_def.h common_def.h
  311. fgetcmd.o: fgetcmd.c client_def.h common_def.h
  312. fgrabcmd.o: fgrabcmd.c client_def.h common_def.h
  313. flscmd.o: flscmd.c client_def.h common_def.h
  314. fmkdir.o: fmkdir.c client_def.h common_def.h
  315. fprocmd.o: fprocmd.c client_def.h common_def.h
  316. fput.o: fput.c client_def.h common_def.h
  317. frmcmd.o: frmcmd.c client_def.h common_def.h
  318. fver.o: fver.c client_def.h common_def.h
  319. frmdircmd.o: frmdircmd.c client_def.h common_def.h
  320. server_host.o: server_host.c server_def.h common_def.h
  321. server_file.o: server_file.c server_def.h common_def.h
  322. server_lib.o: server_lib.c server_def.h common_def.h
  323. server_main.o: server_main.c server_def.h common_def.h
  324. udp_io.o: udp_io.c common_def.h
  325.  
  326. clean:
  327.     rm -f *.o fspd fsp_client_merge ${PROGS}
  328.     @ cd bsd_src; make clean
  329.  
  330. de-install:
  331.     rm -f ${BIN}/fspd ${IPROGS} ${IMANS}
  332.