more advanced make check
[org.ibex.crypto.git] / Makefile
1 JAVAC = javac
2 sources = $(shell find src -name '*.java')
3 classes = $(sources:src/%.java=build/%.class)
4 dats = org/ibex/net/ssl/rootcerts.dat
5
6 jar_sources = \
7         $(shell find src/org/ibex/crypto -name '*.java') \
8         src/org/ibex/net/SSL.java \
9         src/org/ibex/net/ssl/RootCerts.java
10 jar_classes = $(jar_sources:src/%.java=build/%.class)
11 jar = BriSSL.jar
12
13 all: $(classes) $(dats:%=build/%)
14
15 $(classes): $(sources)
16         @mkdir -p build
17         $(JAVAC) -d build $(sources)
18
19 build/%.dat: src/%.dat
20         @mkdir -p `dirname $@`
21         cp $^ $@
22                 
23 $(jar): $(classes) 
24         cd build && jar cf ../$@  $(jar_classes:build/%.class=%*.class)
25         
26 test: all
27         java -cp build org.ibex.net.ssl.Test ssl.brianweb.net 443
28
29 check: all
30         java -cp build org.ibex.net.ssl.Test check
31
32 clean: 
33         rm -rf build/*
34
35 # This stuff is only for Brian to use 
36 # We should probably verify this file somehow
37 tmp/.havecacertrs:
38         @mkdir -p tmp
39         wget -O - http://ftp.debian.org/debian/pool/main/c/ca-certificates/ca-certificates_20020323.tar.gz | gzip -dc | tar -C tmp -xf-
40         cd tmp/ca-certificates/mozilla && \
41                 make all \
42                 for f in *.pem; do \
43                         openssl x509 -in "$$f" -out "$$f.der" -outform der; \
44                 done
45         touch $@
46
47 update-rootcerts: tmp/.havecacerts src/org/ibex/net/ssl/GenCompactCAList.java
48         java -cp build org.ibex.net.ssl.GenCompactCAList binary tmp/ca-certificates/mozilla/*.der > src/org/ibex/net/ssl/rootcerts.dat  
49         java -cp build org.ibex.net.ssl.GenCompactCAList class tmp/ca-certificates/mozilla/*.der > src/org/ibex/net/ssl/RootCerts.java
50
51 sizecheck:
52         @for c in $(jar_classes); do \
53                 for f in `echo $$c|sed 's,\.class$$,,;'`*.class; do gzip -c $$f; done | wc -c | tr -d '\n'; \
54                 echo -e "\t`echo $$c | sed 's,build/org/ibex,,;s,\.class$$,,;s,/,.,g;'`"; \
55         done | sort -rn | awk '{ sum += $$1; print }  END { print sum,"Total"; }'