build
上传用户:zibowangxu
上传日期:2007-01-04
资源大小:331k
文件大小:8k
源码类别:

Ftp客户端

开发平台:

Unix_Linux

  1. #!/bin/sh 
  2. #
  3. # Copyright (c) 1999 WU-FTPD Development Group.  
  4. # All rights reserved.
  5. #  
  6. # Portions Copyright (c) 1980, 1985, 1988, 1989, 1990, 1991, 1993, 1994  
  7. #   The Regents of the University of California. 
  8. # Portions Copyright (c) 1993, 1994 Washington University in Saint Louis.  
  9. # Portions Copyright (c) 1996, 1998 Berkeley Software Design, Inc.  
  10. # Portions Copyright (c) 1989 Massachusetts Institute of Technology.  
  11. # Portions Copyright (c) 1998 Sendmail, Inc.  
  12. # Portions Copyright (c) 1983, 1995, 1996, 1997 Eric P.  Allman.  
  13. # Portions Copyright (c) 1997 by Stan Barber.  
  14. # Portions Copyright (c) 1997 by Kent Landfield.  
  15. # Portions Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997  
  16. #   Free Software Foundation, Inc.    
  17. #  
  18. # Use and distribution of this software and its source code are governed   
  19. # by the terms and conditions of the WU-FTPD Software License ("LICENSE").  
  20. #  
  21. # If you did not receive a copy of the license, it may be obtained online  
  22. # at http://www.wu-ftpd.org/license.html.  
  23. #
  24. # $Id: build,v 1.23 1999/10/17 00:31:38 wuftpd Exp $
  25. #
  26. echo
  27. echo 'IMPORTANT NOTICE'
  28. echo ''
  29. echo 'Beginning with version 2.6.0, the WU-FTPD Development Group is moving the'
  30. echo 'build process to use GNU Autoconf.  Until this move is completed, both'
  31. echo 'build systems will remain supported.  You are encouraged to use the new'
  32. echo '"configure" command to select options, then "make" to compile the daemon.'
  33. echo 'For details on this, read the README.AUTOCONF file.'
  34. echo 'If problems occur, please report them to the development group via email to'
  35. echo 'wuftpd-members@wu-ftpd.org  We are soliciting feedback on the new'
  36. echo 'configuration process, and your help is greatly appreciated.'
  37. echo
  38. echo 'If you choose to continue to use the original build process, bear in mind'
  39. echo 'it will be phased out over the next few releases: when we are reasonably'
  40. echo 'sure the new configuration system works for most target platforms.'
  41. echo
  42. echo 'Sleeping for five seconds, sorry for the interruption.'
  43. sleep 5
  44. RELEASE=wu-ftpd-2.6.0
  45. cat > .bld.hlp <<EOF
  46. Usage: build <make-options> <target-platform>
  47. <target-platform> may be one of the following:
  48.   gen    : generic make (copy this when porting to a new system)
  49.   aix    : IBM AIX
  50.   aux    : AU/X
  51.   bdi    : BSD/OS
  52.   bsd    : BSD
  53.   dec    : DEC Unix 3.X
  54.   du4    : DEC Unix 4.X or later
  55.   dyn    : Dynix
  56.   fbs    : FreeBSD 2.0 or later
  57.   him    : Hitachi SR2201 and S-3600 Unix (HI-UX/MPP and HI-OSF/1-MJ)
  58.   hiu    : Hitachi 3050 Unix (HI-UX/WE2)
  59.   hpx    : HP-UX
  60.   lnx    : Linux (tested on 1.2.X and 2.0.0)
  61.   nbs    : NetBSD 1.X
  62.   nx2    : NeXTstep 2.x
  63.   nx3    : NeXTstep 3.x
  64.   osf    : OSF/1
  65.   osx    : Mac OS X
  66.   ptx    : ???
  67.   sco    : SCO Unix 3.2v4.2 / SCO OpenServer 5
  68.   sgi    : SGI Irix 5.3
  69.   ir4    : SGI Irix 4.0.5a
  70.   sny    : Sony NewsOS
  71.   sol    : SunOS 5.x / Solaris 2.x 
  72.   s41    : SunOS 4.1.x 
  73.   ult    : Ultrix 4.x
  74.   uxw    : UnixWare 1.1 or later
  75.   clean  : Clean up object files and such to reduce disk space after building.
  76.   install: Install ftpd.
  77. EOF
  78. maketarget="no-target"
  79. makeopts=""
  80. makeargs=""
  81. args=$#
  82. while [ $args -gt 0 ]
  83. do
  84.   case $1 in
  85.  
  86.     help) cat .bld.hlp
  87.           exit ;;
  88.     -*) makeargs="$makeargs $1" ;;
  89.     install|clean|distrib|???)
  90.          if [ $maketarget != no-target ]
  91.          then
  92.              echo "Can only make one target system at a time"
  93.              echo 'Both "'"$maketarget"'" and "'"$1"'" where given'
  94.              exit
  95.          else
  96.              maketarget=$1
  97.          fi
  98.        ;;
  99.     *) makeopts="$makeopts $1" ;;
  100.   esac
  101.   
  102.   shift
  103.   
  104.   args=`expr $args - 1`
  105. done
  106. rm -f config.h
  107. ln -s config.h.noac config.h
  108. rm -f src/pathnames.h
  109. ln -s pathnames.h.noac src/pathnames.h
  110. echo 'make args are : '$makeargs''
  111. echo 'make opts are : '$makeopts''
  112. case $maketarget in
  113.    ???) 
  114.         echo ''
  115.         echo "Copying Makefiles."
  116. rm -f Makefile
  117. if [ -f makefiles/common ]; then
  118. cat makefiles/Makefile.$maketarget makefiles/common > Makefile
  119. else
  120. cp makefiles/Makefile.$maketarget Makefile
  121. fi
  122. cd src
  123. rm -f Makefile
  124. if [ -f makefiles/common ]; then
  125. cat makefiles/Makefile.$maketarget makefiles/common > Makefile
  126. else
  127. cp makefiles/Makefile.$maketarget Makefile
  128. fi
  129. cd ../support
  130. rm -f Makefile
  131. if [ -f makefiles/common ]; then
  132. cat makefiles/Makefile.$maketarget makefiles/common > Makefile
  133. else
  134. cp  makefiles/Makefile.$maketarget Makefile
  135. fi
  136.         cd ..
  137.         echo ''
  138. echo "Linking src/config.h"
  139. cd ./src
  140. rm -f config.h
  141. ln -s config/config.$maketarget config.h
  142.         echo ''
  143.         echo "Making support library."
  144.         cd ../support
  145.         make $makeargs $makeopts libsupport.a
  146.         echo ''
  147.         echo "Making ftpd."
  148.         cd ../src
  149.         make $makeargs $makeopts  ftpd
  150.         echo ''
  151.         echo "Making ftpcount."
  152.         make $makeargs $makeopts  ftpcount
  153.         echo ''
  154.         echo "Making ftpshut".
  155.         make $makeargs $makeopts  ftpshut
  156.         echo ''
  157.         echo "Making ftprestart".
  158.         make $makeargs $makeopts  ftprestart
  159.         echo ''
  160.         echo "Making ckconfig."
  161.         make $makeargs $makeopts  ckconfig
  162.         echo ''
  163.         echo "Making privatepw."
  164.         make $makeargs $makeopts  privatepw
  165.         cd ..
  166.         if [ ! -d bin ] ;  then    mkdir bin;        fi
  167.         cd bin
  168.         rm -f ftpd ftpcount ftpshut ftprestart ftpwho ckconfig privatepw
  169.         if [ -s ../src/ftpd     ] ; then cp ../src/ftpd     ftpd     ; fi
  170.         if [ -s ../src/ftpcount ] ; then
  171. cp ../src/ftpcount ftpcount
  172. ln -s ftpcount ftpwho
  173. fi
  174.         if [ -s ../src/ftpshut  ] ; then cp ../src/ftpshut  ftpshut  ; fi
  175.         if [ -s ../src/ftprestart  ] ; then cp ../src/ftprestart  ftprestart ; fi
  176. if [ -s ../src/ckconfig ] ; then cp ../src/ckconfig ckconfig ; fi
  177. if [ -s ../src/privatepw ] ; then cp ../src/privatepw privatepw ; fi
  178.         cd ..
  179.         echo ''
  180.         echo "Executables are in bin directory:"
  181.         size bin/ftpd bin/ftpcount bin/ftpshut bin/ftprestart bin/ftpwho bin/ckconfig bin/privatepw
  182.         echo "Done"
  183.         ;;
  184.     clean) # This only sort of works 
  185.         echo "Cleaning root directory."
  186.         if [ -s .depend ] ;         then rm .depend  ; fi
  187.         if [ -s .bld.hlp ] ;        then rm .bld.hlp ; fi
  188.         if [ -s wu-ftpd.tar ] ;     then rm wu-ftpd.tar ; fi
  189. rm -f Makefile
  190. rm -f config.h
  191. rm -f *~ makefiles/*~ util/*~
  192.         echo "Cleaning support directory."
  193.         cd support
  194.         cat makefiles/Makefile.gen makefiles/common > Makefile
  195.         make $makeargs $makeopts clean
  196. rm -f Makefile
  197.         echo "Cleaning src directory."
  198.         cd ../src
  199.         cat makefiles/Makefile.gen makefiles/common > Makefile
  200.         make $makeargs $makeopts clean
  201. rm -f Makefile
  202. rm -f Makefile.bak
  203. rm -f config.h
  204. rm -f edit
  205. rm -f pathnames.h
  206. rm -f y.tab.h
  207. rm -f vers.c
  208.         echo "Cleaning util/privatepw directory."
  209.         echo "Cleaning bin directory."
  210.         cd ..
  211.         if [ -d bin ] ;  then    rm -rf bin;        fi
  212.         ;;
  213.     install)
  214.         make -f Makefile $makeargs $makeopts install
  215.         ;;
  216.     distrib)
  217.         ./build clean
  218.         echo "Building file list."
  219. # assumes the gnu tar program
  220. ls RCS/* */RCS/* */*/RCS/* > /tmp/xclude$$
  221. echo $RELEASE >> /tmp/xclude$$
  222. echo .bld.hlp >> /tmp/xclude$$
  223. echo RCS >> /tmp/xclude$$
  224. echo src/RCS >> /tmp/xclude$$
  225. echo support/RCS >> /tmp/xclude$$
  226. echo support/arpa/RCS >> /tmp/xclude$$
  227. echo support/man/RCS >> /tmp/xclude$$
  228. echo makefiles/RCS >> /tmp/xclude$$
  229. echo util/RCS >> /tmp/xclude$$
  230. echo doc/RCS >> /tmp/xclude$$
  231. echo doc/examples/RCS >> /tmp/xclude$$
  232.         echo "Building distribution tar file."
  233. mkdir $RELEASE
  234. tar -X/tmp/xclude$$  -cf - . |(cd $RELEASE; tar xBf - )
  235. tar -cf $RELEASE.tar $RELEASE
  236.         echo "Cleaning up."
  237. rm -rf /tmp/xclude$$ $RELEASE
  238.         ;;
  239.     no-target)
  240.         echo "No target plaform for which to build ftpd given."
  241.         echo 'Give command "build help" for help.'
  242.         ;;
  243.     *)  echo 'Do not know how to make ftpd for target "'$maketarget'".'
  244.         ;;
  245. esac