1 .PHONY: all 2 all: bridge no-bridge 3 4 JAVAC?=javac 5 6 JAVACVERSION = $(shell $(JAVAC) -version 2>&1) 7 ifeq (1.7.,$(findstring 1.7.,$(JAVACVERSION))) 8 JAVACTARGET = -source 7 -target 7 9 endif 10 11 .PHONY: bridge 12 # Counting bridge methods, there should be 3 @A annotations. 13 bridge: C.class 14 CLASSPATH=.:${CLASSPATH} ../../../scripts/extract-annotations C.class 15 # skip test if using javac 1.7, which doesn't copy annotations to bridge methods 16 test 3 -eq `grep -c -w '@A' C.jaif` || (echo "Didn't find 3 '@A' in C.jaif:" && cat C.jaif && false) 17 18 .PHONY: no-bridge 19 # Not counting bridge methods, there should be 2 @A annotations. 20 # -b ignores annotations on bridge methods 21 no-bridge: C.class 22 CLASSPATH=.:${CLASSPATH} ../../../scripts/extract-annotations -b C.class 23 test 2 -eq `grep -c -w '@A' C.jaif` || (echo "Didn't find 2 '@A' in C.jaif:" && cat C.jaif && false) 24 25 C.class: C.java 26 $(XJAVAC) -g $(JAVACTARGET) C.java 27 28 .PHONY: clean 29 clean: 30 rm -rf *.class C.jaif annotated out 31 32