makefile
上传用户:huihesys
上传日期:2007-01-04
资源大小:3877k
文件大小:13k
源码类别:

WEB邮件程序

开发平台:

C/C++

  1. # CVS ID: $Id: makefile,v 1.6 2000/04/06 08:02:01 wastl Exp $
  2. # Makefile for JWebMail 
  3. #
  4. # Copyright (C) 2000 Sebastian Schaffert
  5. # This program is free software; you can redistribute it and/or
  6. # modify it under the terms of the GNU General Public License
  7. # as published by the Free Software Foundation; either version 2
  8. # of the License, or (at your option) any later version.
  9. # This program is distributed in the hope that it will be useful,
  10. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. # GNU General Public License for more details.
  13. # You should have received a copy of the GNU General Public License
  14. # along with this program; if not, write to the Free Software
  15. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  16. .PHONY: compile compile-fast clean contrib dist dist-bin dist-src jar-fast jar
  17. .PHONY: run doc parser readme xml
  18. SHELL=/bin/bash
  19. SUBDIRS_JAR_COMMON=ui ui/html ui/xml server server/http debug config misc/ storage storage/simple xml/
  20. SUBDIRS_JAR_STANDALONE=standalone
  21. SUBDIRS_JAR_SERVLET=servlet
  22. FILES_JAR_POP3=dog/mail/util/*.class dog/mail/pop3/*.class META-INF/
  23. FILES_JAR_MBOX=dog/mail/util/*.class dog/mail/mbox/*.class META-INF/
  24. FILES_JAR_NNTP=dog/mail/nntp/*.class dog/util/*.class dog/mail/util/*.class META-INF/
  25. SUBDIRS_DISTCLEAN=standalone/
  26. # Make those before compiling
  27. SUBDIRS_PARSER=standalone/
  28. # Make those after compiling
  29. SUBDIRS_DATA=
  30. LANGUAGES=en
  31. DEFAULT_LANG=en
  32. THEMES=default
  33. TAR=/bin/tar
  34. UNZIP=unzip
  35. ZIP=zip
  36. # BSD compatible install utility
  37. INSTALL=install
  38. BASEDIR:=$(shell cd .. && pwd)
  39. CONTRIBDIR:=$(shell cd ../contrib && pwd)
  40. LIBDIR:=$(shell cd ../lib && pwd)
  41. DATADIR:=$(shell cd ../data && pwd)
  42. PKGDIR="net/wastl/webmail"
  43. VERSION=$(shell grep "String VERSION" net/wastl/webmail/server/WebMailServer.java | cut --delimiter=""" -f 2)
  44. # Usage of javac is default now
  45. #JAVAC="javac"
  46. # Warning: jikes seems to produce some weird code on Solaris :-(
  47. JAVAC=jikes
  48. # Which java interpreter to use
  49. JAVA=java
  50. # Generate debugging information
  51. JFLAGS=-g
  52. # Show deprecated API usage
  53. #JFLAGS="-deprecation"
  54. # Enable to do optimization
  55. #JFLAGS="-O"
  56. # Use JDK's jar, tool
  57. #JAR=jar
  58. # or try fastjar (http://fastjar.sourceforge.net)
  59. #JAR=fastjar
  60. JAR=/usr/lib/jdk1.2.2/bin/jar
  61. JAVACUP="$(JAVA) -classpath $(CONTRIBDIR)/compile/JavaCUP.jar:${CLASSPATH} java_cup.Main -nowarn"
  62. JFLEX="$(JAVA) -classpath $(CONTRIBDIR)/compile/JFlex.jar:${CLASSPATH} JFlex.Main -q"
  63. XSLT=$(JAVA) -classpath $(CONTRIBDIR)/xalan.jar:$(CONTRIBDIR)/xerces.jar:${CLASSPATH} org.apache.xalan.xslt.Process
  64. all: install
  65. compile:
  66. @if [ "${JAVAC}" = "jikes" ]; then ( echo "*** Warning: jikes seems to produce some weird code. Please use javac. ***" ) fi;
  67. @echo ================================================================ ;
  68. echo ===  Compiling all java files for WebMail ${VERSION} ; 
  69. echo ================================================================
  70. @find . -name "*.java" | xargs ${JAVAC} -classpath .:$(CONTRIBDIR)/servlet-2.0.jar:$(LIBDIR)/mail.jar:$(LIBDIR)/ssl/itissl.jar:$(LIBDIR)/activation.jar:$(LIBDIR)/gnu-regexp-1.0.8.jar:$(LIBDIR)/java_cup.jar:$(PKGDIR)/authenticators/:$(PKGDIR)/plugins/:$(LIBDIR)/mm.mysql.jar:$(LIBDIR)/xalan.jar:$(LIBDIR)/xerces.jar:$$CLASSPATH ${JFLAGS}
  71. parser:
  72. @for i in ${SUBDIRS_PARSER}; do 
  73. echo "make[1]: Entering directory `$(PKGDIR)/$$i'" ; 
  74. cd $(PKGDIR)/$$i ; 
  75. JAVACUP=${JAVACUP} JFLEX=${JFLEX} make parser; 
  76. echo "make[1]: Leaving directory `$(PKGDIR)/$$i'" ; 
  77. ) ; 
  78. done
  79. contrib:
  80. @echo ================================================================ ;
  81. echo ===  Unpacking libraries and support files for WebMail ${VERSION} ; 
  82. echo ================================================================
  83. @echo "- unzipping JavaMail API (v1.1.3) ..."
  84. -@rm -f $(LIBDIR)/mail.jar
  85. @${UNZIP} -j -q -d $(LIBDIR) $(CONTRIBDIR)/javamail113.zip ./javamail-1.1.3/mail.jar
  86. @${UNZIP} -j -q -d $(BASEDIR) $(CONTRIBDIR)/javamail113.zip ./javamail-1.1.3/LICENSE.txt
  87. @mv $(BASEDIR)/LICENSE.txt $(BASEDIR)/LICENSE.javamail
  88. @echo "- unzipping JavaBeans Activation Framework (v1.0.1) ..."
  89. -@rm -f $(LIBDIR)/activation.jar
  90. @${UNZIP} -j -q -d $(LIBDIR) $(CONTRIBDIR)/jaf101.zip ./jaf-1.0.1/activation.jar
  91. @${UNZIP} -j -q -d $(BASEDIR) $(CONTRIBDIR)/jaf101.zip ./jaf-1.0.1/LICENSE.txt
  92. @mv $(BASEDIR)/LICENSE.txt $(BASEDIR)/LICENSE.jaf
  93. @echo "- creating lib/ and lib/ssl/ directories..."
  94. @$(INSTALL) -d -m 0755 $(LIBDIR)
  95. @$(INSTALL) -d -m 0755 $(LIBDIR)/ssl
  96. @echo "- copying ITI-SSL library..."
  97. @$(INSTALL) -m 0644 $(CONTRIBDIR)/itissl.jar $(LIBDIR)/ssl/
  98. @echo "- copying JSDK library..."
  99. @$(INSTALL) -m 0644 $(CONTRIBDIR)/servlet-2.0.jar $(LIBDIR)/
  100. @echo "- copying Xerces XML parser..."
  101. @$(INSTALL) -m 0644 $(CONTRIBDIR)/xerces.jar $(LIBDIR)/
  102. @echo "- copying Xalan XSL Processor..."
  103. @$(INSTALL) -m 0644 $(CONTRIBDIR)/xalan.jar $(LIBDIR)/
  104. @echo "- copying GNU RegExp package..."
  105. @$(INSTALL) -m 0644 $(CONTRIBDIR)/gnu-regexp-1.0.8.jar $(LIBDIR)
  106. @echo "- copying JavaCUP parser generator support classes..."
  107. @$(INSTALL) -m 0644 $(CONTRIBDIR)/java_cup.jar $(LIBDIR)
  108. @echo "- copying MySQL library classes..."
  109. @$(INSTALL) -m 0644 $(CONTRIBDIR)/mm.mysql*.jar $(LIBDIR)
  110. @echo "- copying mime.types ..."
  111. @$(INSTALL) -m 0644 $(CONTRIBDIR)/mime.types $(LIBDIR)
  112. install: clean contrib parser install-fast
  113.  
  114. jar-fast: compile
  115. @echo "Creating lib/ directory ... "; 
  116. $(INSTALL) -d -m 0755 $(LIBDIR)
  117. @echo "Creating WebMail distribution (JAR) in `$(BASEDIR)' ..." ; 
  118. -@rm -f $(LIBDIR)/webmail*.jar
  119. -@rm -fR $(LIBDIR)/plugins
  120. -@rm -fR $(LIBDIR)/authenticators
  121. @JAR_FILES=" "; 
  122. for i in ${SUBDIRS_JAR_COMMON}; do 
  123. JAR_FILES="$$JAR_FILES $(PKGDIR)/$$i/*.class" ; 
  124. done ; 
  125. $(JAR) cf $(LIBDIR)/webmail-common.jar $$JAR_FILES ; 
  126. JAR_FILES=" "; 
  127. for i in ${SUBDIRS_JAR_STANDALONE}; do 
  128. JAR_FILES="$$JAR_FILES $(PKGDIR)/$$i/*.class" ; 
  129. done ; 
  130. $(JAR) cf $(LIBDIR)/webmail-standalone.jar $$JAR_FILES ; 
  131. JAR_FILES=" "; 
  132. for i in ${SUBDIRS_JAR_SERVLET}; do 
  133. JAR_FILES="$$JAR_FILES $(PKGDIR)/$$i/*.class" ; 
  134. done ; 
  135. $(JAR) cf $(LIBDIR)/webmail-servlet.jar $$JAR_FILES ; 
  136. echo "Creating JAR-archives for www.dog.net.uk JavaMail providers (POP3/MBOX/NNTP) ..." ; 
  137. $(JAR) cf $(LIBDIR)/pop3.jar $(FILES_JAR_POP3) ; 
  138. $(JAR) cf $(LIBDIR)/mbox.jar $(FILES_JAR_MBOX) ; 
  139. $(JAR) cf $(LIBDIR)/nntp.jar $(FILES_JAR_NNTP) ; 
  140. echo "Creating lib/plugins/ and lib/authenticators/ directories ..." ; 
  141. $(INSTALL) -m 0755 -d $(LIBDIR)/plugins ; 
  142. $(INSTALL) -m 0755 -d $(LIBDIR)/authenticators ; 
  143. echo "Copying Plugins to lib/plugins/ ..." ; 
  144. $(INSTALL) -m 0644 $(PKGDIR)/plugins/*.class $(LIBDIR)/plugins/ ; 
  145. echo "Copying Authenticators to lib/authenticators/ ..." ; 
  146. $(INSTALL) -m 0644 $(PKGDIR)/authenticators/*.class $(LIBDIR)/authenticators/
  147. install-fast: jar-fast xml
  148. xml:
  149. @echo ================================================================ ;
  150. echo ===  Installing datafiles ; 
  151. echo ================================================================ ; 
  152. echo "* creating data/ directory ..." ; 
  153. $(INSTALL) -d -m 0750 $(DATADIR) ; 
  154. echo "* copying webmail.xml configuration file to data/ ..." ; 
  155. $(INSTALL) --backup=numbered -m 0640 $(PKGDIR)/data/xml/webmail.xml $(DATADIR) ; 
  156. echo "* creating lib/xml/ directory ..." ; 
  157. $(INSTALL) -d -m 0755 $(LIBDIR)/xml ; 
  158. echo "* copying XML DTDs to lib/xml/ ..." ; 
  159. $(INSTALL) -m 0644 $(PKGDIR)/data/xml/*.dtd $(LIBDIR)/xml/ ; 
  160. echo "* copying XML data files to lib/xml/ ... " ; 
  161. $(INSTALL) -m 0644 $(PKGDIR)/data/xml/mysql_statements.xml $(LIBDIR)/xml/ ; 
  162. $(INSTALL) -m 0644 $(PKGDIR)/data/xml/userdata.xml $(LIBDIR)/xml/ ; 
  163. $(INSTALL) -m 0644 $(PKGDIR)/data/xml/usermodel_template.xml $(LIBDIR)/xml/ ; 
  164. $(INSTALL) -m 0644 $(PKGDIR)/data/xml/generic_template.xml $(LIBDIR)/xml/ ; 
  165. echo "* creating lib/templates/ directory ..." ; 
  166. $(INSTALL) -d -m 0755 $(LIBDIR)/templates ; 
  167. echo "* Copying XML template files to lib/templates/ ..." 
  168. @for lang in ${LANGUAGES}; do 
  169. echo -n "  - language $$lang ... " ; 
  170. $(INSTALL) -d -m 0755 $(LIBDIR)/templates/$$lang ; 
  171. for theme in $(THEMES); do 
  172.                    $(INSTALL) -d -m 0755 $(LIBDIR)/templates/$$lang/$$theme ; 
  173.                    $(INSTALL) -d -m 0755 $(LIBDIR)/templates/$$lang/$$theme/images ; 
  174.    $(INSTALL) -m 0644 $(PKGDIR)/data/xml/$$lang/$$theme/*.x[ms]l $(LIBDIR)/templates/$$lang/$$theme ; 
  175.    $(INSTALL) -m 0644 $(PKGDIR)/data/xml/$$lang/$$theme/images/*.[pjg]?? $(LIBDIR)/templates/$$lang/$$theme/images ; 
  176.                 done; 
  177. echo " done." ; 
  178. done; 
  179. echo -n "  - default language ($(DEFAULT_LANG)) ... "; 
  180. rm -f $(LIBDIR)/templates/default ; 
  181. ln -s $(DEFAULT_LANG) $(LIBDIR)/templates/default ; 
  182. echo " done." ; 
  183. echo "* Copying locale specific resources to lib/templates/ ..." ; 
  184. $(INSTALL) -m 0644 $(PKGDIR)/data/xml/resources.xml $(LIBDIR)/templates/ ; 
  185. $(INSTALL) -m 0644  $(PKGDIR)/data/xml/resource.dtd $(LIBDIR)/templates/ ; 
  186. echo -n "Finished on " ; 
  187. date
  188. doc: readme
  189. @echo ================================================================ ;
  190. echo === Generating Java Documentation for WebMail ; 
  191. echo ================================================================
  192. @javadoc -use -d doc/javadoc/ -private -splitindex -windowtitle "WebMail Java Documentation" -classpath ${CLASSPATH}:.. net.wastl.webmail.server net.wastl.webmail.config net.wastl.webmail.server.http net.wastl.webmail.data net.wastl.webmail.debug net.wastl.webmail.misc net.wastl.webmail.ui net.wastl.webmail.ui.html net.wastl.webmail.server.admin -group "WebMail Core" net.wastl.webmail.* net/wastl/webmail/plugins/*.java net/wastl/webmail/authenticators/*.java
  193. clean: 
  194. @echo ================================================================ ;
  195. echo === Deleting all class files ; 
  196. echo ================================================================
  197. -@find . -name "*.class" | xargs rm -f
  198. @echo ================================================================ ;
  199. echo === Cleaning lib/ ; 
  200. echo ================================================================
  201. -@rm -fR $(LIBDIR)/*
  202. -@rm -f $(BASEDIR)/LICENSE.*
  203. distclean: clean
  204. @echo ================================================================ ;
  205. echo === Deleting *~, *# and core; 
  206. echo ================================================================
  207. -@find $(BASEDIR)/ -name "*~" | xargs rm -f
  208. -@find $(BASEDIR) -name "*#" | xargs rm -f
  209. -@find $(BASEDIR)/ -name "core" | xargs rm -f
  210. @echo ================================================================ ;
  211. echo === Deleting javadoc; 
  212. echo ================================================================
  213. @rm -fR $(BASEDIR)/src/doc/javadoc
  214. @for i in ${SUBDIRS_DISTCLEAN}; do 
  215. echo ;
  216. echo ================================================================ ;
  217. echo === Cleaning $(PKGDIR)/$$i ;
  218. echo ================================================================ ;
  219. echo ;
  220. make -C $(PKGDIR)/$$i distclean  ; 
  221. ) ; 
  222.         done
  223. @echo ================================================================ ;
  224. echo === Cleaning data/ ; 
  225. echo ================================================================
  226. -@rm -fR $(DATADIR)/*~
  227. -@rm -fR $(DATADIR)/*.xml
  228. -@rm -fR $(DATADIR)/*.log
  229. dist-bin: install
  230. @echo ================================================================ ;
  231. echo === Creating WebMail ${VERSION} binary distribution ; 
  232. echo ================================================================
  233. @cd ../.. ; 
  234. echo "Creating tar archive ..." ; 
  235. ${TAR} cf ${DISTDIR}/webmail-${VERSION}-binary.tar webmail/bin/* webmail/COPYING webmail/Changes webmail/README* webmail/LICENSE.* webmail/data/* webmail/lib/* webmail/webmail-servlet.properties ; 
  236. @COMPRESS=`which bzip2 > /dev/null 2>&1; if [ $$? = 0 ]; then which bzip2; else which gzip > /dev/null 2>&1; if [ $$? = 0 ]; then which gzip; else which compress; fi; fi`; 
  237. echo "Compressing with $$COMPRESS ..." ; 
  238. $$COMPRESS -f ${DISTDIR}/*.tar
  239. @echo ================================================================
  240. dist-src: distclean
  241. @echo ================================================================ ;
  242. echo === Creating WebMail ${VERSION} source distribution ; 
  243. echo ================================================================
  244. @cd ../.. ; 
  245. echo "Creating tar archive (complete distribution) ..." ; 
  246. ${TAR} cf ${DISTDIR}/webmail-${VERSION}-source.tar webmail/* ; 
  247. echo "Creating tar archive (distribution without contrib) ..." ; 
  248. ${TAR} cfX ${DISTDIR}/webmail-${VERSION}-source-nocontrib.tar webmail/nocontrib.excl webmail/* ; 
  249. echo "Creating tar archive (contrib only) ..." ; 
  250. ${TAR} cf ${DISTDIR}/webmail-${VERSION}-contrib.tar webmail/contrib/* ; 
  251. cd webmail
  252. @COMPRESS=`which bzip2 > /dev/null 2>&1; if [ $$? = 0 ]; then which bzip2; else which gzip > /dev/null 2>&1; if [ $$? = 0 ]; then which gzip; else which compress; fi; fi`; 
  253. echo "Compressing with $$COMPRESS ..." ; 
  254. $$COMPRESS -f ${DISTDIR}/*.tar
  255. dist: dist-src dist-bin
  256. readme:
  257. @echo "================================================================"
  258. @echo "== Creating WebMail README.html from XML sources ...          =="
  259. @echo "================================================================"
  260. @${XSLT} -IN $(BASEDIR)/src/doc/readme/README.xml -XSL $(BASEDIR)/src/doc/readme/README.xsl -OUT $(BASEDIR)/README.html