summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile223
1 files changed, 0 insertions, 223 deletions
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 1eddcf3..0000000
--- a/Makefile
+++ /dev/null
@@ -1,223 +0,0 @@
-default: javadoc runtests findbugs
-
-help:
- @echo "Usage: make [<target> ...]"
- @echo ""
- @echo "Targets include:"
- @echo " help - Displays this message."
- @echo " ----------- QUICK"
- @echo " clean - Delete all built files."
- @echo " default - Build documentation&classes, and run checks."
- @echo " The output will be available under out/."
- @echo " ----------- DIAGNOSTIC"
- @echo " classes - Put Java .class files under out/."
- @echo " tests - Compile tests."
- @echo " runtests - Runs tests. Some require a network connection."
- @echo " coverage - Runs tests and generates a code coverage report."
- @echo " findbugs - Runs a code quality tool. Slow."
- @echo " benchmark - Times the sanitizer against a tree builder."
- @echo " profile - Profiles the benchmark."
- @echo " ----------- ARTIFACTS"
- @echo " distrib - Build everything and package it into JARs."
- @echo " Requires an svn executable on PATH."
- @echo " release - Additionally, cut a new Maven version."
- @echo " Should be run from client that has sibling"
- @echo " directories of trunk checked out."
- @echo " download - Bundle docs, externally required jars, and"
- @echo " license files into a zip file suitable for"
- @echo " the code.google site downloads."
- @echo ""
- @echo "For more verbose test runner output, do"
- @echo " make VERBOSE=1 runtests"
- @echo ""
- @echo "To run tests with assertions on, do"
- @echo " make NOASSERTS=1 runtests"
-
-SHELL=/bin/bash
-CLASSPATH=lib/guava-libraries/guava.jar:lib/jsr305/jsr305.jar
-TEST_CLASSPATH=$(CLASSPATH):lib/htmlparser-1.3/htmlparser-1.3.jar:lib/junit/junit.jar:lib/commons-codec-1.4/commons-codec-1.4.jar:benchmark-data
-JAVAC_FLAGS=-source 1.5 -target 1.5 -Xlint -encoding UTF-8
-TEST_RUNNER=junit.textui.TestRunner
-JASSERTS=-ea
-# Run tests in the Turkish locale to trigger any extra-case-folding-rule bugs
-# http://www.moserware.com/2008/02/does-your-code-pass-turkey-test.html
-TURKEYTEST=-Duser.counter=TR -Duser.language-tr
-
-ifdef VERBOSE
-override TEST_RUNNER=org.owasp.html.VerboseTestRunner
-endif
-
-ifdef NOASSERTS
-override JASSERTS=
-endif
-
-out:
- mkdir -p out
-
-out/classes: out
- mkdir -p out/classes
-
-out/genfiles: out
- mkdir -p out/genfiles
-
-clean:
- rm -rf out
-
-classes: out/classes.tstamp
-out/classes.tstamp: out/classes src/main/org/owasp/html/*.java
- javac -g ${JAVAC_FLAGS} -classpath ${CLASSPATH} -d out/classes \
- $$(echo $^ | tr ' ' '\n' | egrep '\.java$$')
- touch out/classes.tstamp
-
-examples: out/examples.tstamp
-out/examples.tstamp: out/classes.tstamp src/main/org/owasp/html/examples/*.java
- javac -g ${JAVAC_FLAGS} -classpath ${CLASSPATH}:out/classes \
- -d out/classes \
- $$(echo $^ | tr ' ' '\n' | egrep '\.java$$')
- touch out/examples.tstamp
-
-# Depends on all java files under tests.
-tests: out/tests.tstamp
-out/tests.tstamp: out/classes.tstamp out/genfiles.tstamp out/examples.tstamp src/tests/org/owasp/html/*.java
- javac -g ${JAVAC_FLAGS} \
- -classpath out/classes:out/genfiles:${TEST_CLASSPATH} \
- -d out/classes \
- $$((echo $^; find out/genfiles -type f) | tr ' ' '\n' | \
- egrep '\.java$$')
- touch out/tests.tstamp
-
-out/genfiles.tstamp: out/genfiles/org/owasp/html/AllExamples.java out/genfiles/org/owasp/html/AllTests.java
- touch out/genfiles.tstamp
-out/genfiles/org/owasp/html/AllTests.java: src/tests/org/owasp/html/*Test.java
- mkdir -p "$$(dirname $@)"
- (echo 'package org.owasp.html;'; \
- echo 'import junit.framework.Test;'; \
- echo 'import junit.framework.TestSuite;'; \
- echo 'public class AllTests {'; \
- echo ' public static Test suite() {'; \
- echo ' TestSuite suite = new TestSuite();'; \
- echo $^ | tr ' ' '\n' | perl -pe \
- 's#^src/tests/# suite.addTestSuite(#; s#\.java$$#.class);#g; \
- s#/#.#g;'; \
- echo ' return suite;'; \
- echo ' }'; \
- echo '}'; \
- ) > $@
-
-out/genfiles/org/owasp/html/AllExamples.java: src/main/org/owasp/html/examples/*.java
- mkdir -p "$$(dirname $@)"
- (echo 'package org.owasp.html;'; \
- echo 'final class AllExamples {'; \
- echo ' static final Class<?>[] CLASSES = {'; \
- echo $^ | tr ' ' '\n' | perl -pe \
- 's#^src/main/# #; s#\.java$$#.class,#g; \
- s#/#.#g;'; \
- echo ' };'; \
- echo '}'; \
- ) > $@
-
-runtests: tests
- java ${TURKEYTEST} ${JASSERTS} \
- -classpath out/classes:src/tests:${TEST_CLASSPATH} \
- ${TEST_RUNNER} org.owasp.html.AllTests
-
-coverage: tests
- java ${JASSERTS} -cp tools/emma/lib/emma.jar:lib/guava-libraries/guava.jar:lib/jsr305/jsr305.jar:lib/htmlparser-1.3/htmlparser-1.3.jar:lib/commons-codec-1.4/commons-codec-1.4.jar:benchmark-data \
- -Demma.report.out.file=out/coverage/index.html \
- -Demma.report.out.encoding=UTF-8 \
- emmarun \
- -r html \
- -cp out/classes:src/tests:lib/junit/junit.jar \
- -sp src/main:src/tests:out/genfiles \
- -f \
- -ix '-junit.*' \
- -ix '-org.junit.*' \
- -ix '-org.hamcrest.*' \
- ${TEST_RUNNER} \
- org.owasp.html.AllTests
-
-# Runs findbugs to identify problems.
-findbugs: out/findbugs.txt
- cat $^
-out/findbugs.txt: out/tests.tstamp
- find out/classes/org -type d | \
- xargs tools/findbugs/bin/findbugs -textui -effort:max \
- -auxclasspath ${TEST_CLASSPATH} > $@
-
-# Runs a benchmark that compares performance.
-benchmark: out/tests.tstamp
- java -cp ${TEST_CLASSPATH}:out/classes \
- org.owasp.html.Benchmark benchmark-data/Yahoo\!.html
-
-# Profiles the benchmark.
-profile: out/java.hprof.txt
-out/java.hprof.txt: out/tests.tstamp
- java -cp ${TEST_CLASSPATH}:out/classes -agentlib:hprof=cpu=times,format=a,file=out/java.hprof.txt,lineno=y,doe=y org.owasp.html.Benchmark benchmark-data/Yahoo\!.html s
-
-# Builds the documentation.
-javadoc: out/javadoc.tstamp
-out/javadoc.tstamp: src/main/org/owasp/html/*.java src/main/org/owasp/html/examples/*.java
- mkdir -p out/javadoc
- javadoc -locale en -d out/javadoc \
- -notimestamp \
- -charset UTF-8 \
- -classpath ${CLASSPATH} \
- -use -splitIndex \
- -windowtitle 'OWASP Java HTML Sanitizer' \
- -doctitle 'OWASP Java HTML Sanitizer' \
- -header '<a href="http://code.google.com/p/owasp-java-html-sanitizer" target=_top>code.google.com home</a>' \
- -J-Xmx250m -nohelp -sourcetab 8 -docencoding UTF-8 -protected \
- -encoding UTF-8 -author -version $^ \
- && touch out/javadoc.tstamp
-
-# Packages the documentation, and libraries in the distrib directory,
-# and creates a script containing svn commands to commit those changes.
-distrib: out/run_me_before_committing_release.sh
-out/run_me_before_committing_release.sh: clean out/staging.tstamp
- tools/update_tree_in_svn.py out/staging distrib > $@
- chmod +x $@
-out/staging.tstamp: out/javadoc.tstamp out/classes.tstamp
- mkdir -p out/staging
- echo Copying Javadoc
- rm -rf out/staging/javadoc
- cp -r out/javadoc out/staging/javadoc
- echo Suppressing spurious Javadoc diffs
- for doc_html in $$(find out/staging/javadoc -name \*.html); do \
- perl -i -pe 's/<!-- Generated by javadoc .+?-->//; s/<META NAME="date" CONTENT="[^"]*">//' "$$doc_html"; \
- done
- echo Linking required jars
- mkdir -p out/staging/lib
- for jar in $$(echo ${CLASSPATH} | tr : ' '); do \
- cp "$$jar" out/staging/lib/; \
- cp "$$(dirname $$jar)"/COPYING out/staging/lib/"$$(basename $$jar .jar)"-COPYING; \
- done
- echo Bundling compiled classes
- jar cf out/staging/lib/owasp-java-html-sanitizer.jar -C out/classes org
- echo Bundling sources and docs
- for f in $$(find src/main -name \*.java); do \
- mkdir -p out/staging/"$$(dirname $$f)"; \
- cp "$$f" out/staging/"$$f"; \
- done
- jar cf out/staging/lib/owasp-java-html-sanitizer-sources.jar -C out/staging/src/main org
- jar cf out/staging/lib/owasp-java-html-sanitizer-javadoc.jar -C out javadoc
- rm -rf out/staging/src
- cp COPYING out/staging/lib/owasp-java-html-sanitizer-COPYING
- touch $@
-
-# Packages the distrib jars into the maven directory which is a sibling of
-# trunk.
-release: out/run_me_before_committing_maven.sh
-out/run_me_before_committing_maven.sh: distrib
- tools/cut_release.py > $@
- chmod +x $@
-
-download: out/owasp-java-html-sanitizer.zip
-out/zip.tstamp: out/staging.tstamp
- rm -f out/zip/owasp-java-html-sanitizer
- mkdir -p out/zip/owasp-java-html-sanitizer
- cp -r out/staging/lib out/staging/javadoc \
- out/zip/owasp-java-html-sanitizer/
- touch $@
-out/owasp-java-html-sanitizer.zip: out/zip.tstamp
- jar cMf out/owasp-java-html-sanitizer.zip \
- -C out/zip owasp-java-html-sanitizer