BOOM=PATH=/home/moko/svn.openmoko.org/trunk/eda/boom:../boom:$$PATH boom UC_NAME = $(shell echo $(NAME) | tr [a-z] [A-Z]) EQU = $(shell ../../boom-config equ) .PHONY: all test spotless sane all: $(NAME).chr $(NAME).chr: $(EQU) $(NAME).gen $(BOOM) gen2chr $(UC_NAME) $^ >$@ || { rm -f $@; exit 1; } test: $(BOOM) gen2chr -n $(UC_NAME) $(EQU) $(NAME).gen LIMIT = sed '1{x;s/.*/--- $(1) ---/p;x;};6{s/.*/.../;q;}' MALFORMED = @grep '\<T=$(2)\>' $(NAME).chr | \ grep -v '\<$(3)=\(0R\|[1-9][0-9.]*[fnpumkMG]\?$(4)\)\>' | \ $(call LIMIT,$(1)) ABSENT = @grep '\<T=$(2)\>' $(NAME).chr | grep -v '\<$(3)=' | \ $(call LIMIT,$(1)) spotless: rm -f $(NAME).chr sane: @# general $(call ABSENT,FP missing,.*,FP) @# R $(call MALFORMED,Malformed R=,R,R,R) $(call ABSENT,T=R without ",R,P) @# special case: 0R has no meaningful tolerance @grep '\<T=R\>' $(NAME).chr | grep -v '\<R=0R\>' | \ grep -v '\<TOL=' | $(call LIMIT,T=R without TOL) @# V is optional @# TC ? @# C $(call MALFORMED,Malformed C=,C,C,F) $(call ABSENT,T=C without M,C,M) $(call ABSENT,T=C without V,C,V) $(call ABSENT,T=C without TOL,C,TOL)