2010-10-17 06:57:22 +03:00
|
|
|
BOOM=PATH=/home/moko/svn.openmoko.org/trunk/eda/boom:../boom:$$PATH boom
|
|
|
|
|
|
|
|
UC_NAME = $(shell echo $(NAME) | tr [a-z] [A-Z])
|
|
|
|
|
|
|
|
EQU = ../../dist/all.equ
|
|
|
|
|
2010-10-17 19:15:33 +03:00
|
|
|
.PHONY: all test sane
|
2010-10-17 06:57:22 +03:00
|
|
|
|
|
|
|
all: $(NAME).chr
|
|
|
|
|
|
|
|
$(NAME).chr: $(EQU) $(NAME).gen
|
|
|
|
$(BOOM) gen2chr $(UC_NAME) $^ >$@ || { rm -rf $@; exit 1; }
|
|
|
|
|
|
|
|
test:
|
|
|
|
$(BOOM) gen2chr -n $(UC_NAME) $(EQU) $(NAME).gen
|
2010-10-17 19:15:33 +03:00
|
|
|
|
|
|
|
LIMIT = sed '1{x;s/.*/--- $(1) ---/p;x;};6{s/.*/.../;q;}'
|
|
|
|
|
|
|
|
MALFORMED = @grep '\<T=$(2)\>' $(NAME).chr | \
|
|
|
|
grep -v '\<$(3)=[0-9][0-9.]*[fnpumkMG]\?$(4)\>' | \
|
|
|
|
$(call LIMIT,$(1))
|
|
|
|
|
|
|
|
ABSENT = @grep '\<T=$(2)\>' $(NAME).chr | grep -v '\<$(3)=' | \
|
|
|
|
$(call LIMIT,$(1))
|
|
|
|
|
|
|
|
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)
|