# Makefile for GNU make, building all Solo L3 triggers. HETEPT_SOURCES = ept het_pen het_stopping HETEPT_MODELS = em1 em2 fm1 fm2 pqm HETEPT_VARIANTS = MAKEFLAGS += --no-print-directory L3C = ../../l3.py L3DIS = ../../l3dis.py MODEL = VARIANT = ifneq ($(MODEL),) DMODEL = -DM_$(shell echo $(MODEL) | tr '[:lower:]' '[:upper:]') endif ifeq ($(VARIANT),) MODVAR = $(MODEL) else MODVAR = $(shell echo $(MODEL) $(VARIANT) | tr ' ' _) DVARIANT= -DV_$(shell echo $(VARIANT) | tr '[:lower:]' '[:upper:]') endif L3FLAGS = L3FLAGSS = $(DMODEL) $(DVARIANT) $(L3FLAGS) all: hetept_all basics basics: $(HETEPT_SOURCES:%=%_l3.py) l3c_all: hetept_l3c $(HETEPT_SOURCES:%=%.l3c) l3v_all: hetept_l3v $(HETEPT_SOURCES:%=%.l3v) -include *.d %.l3c: %.l3 $(L3C) $(L3C) $(L3FLAGS) $($*_FLAGS) -g hex -o $@ -2 $< %.l3v: %.l3 $(L3C) $(L3C) $(L3FLAGS) $($*_FLAGS) -g verilog -vv -o $@ -2 -l $*.l3d $< %_l3.py: %.l3 $(L3C) $(L3C) $(L3FLAGS) $($*_FLAGS) -g python -vv -o $@ -2 -l $*.l3d $< findmodel = $(firstword $(filter $(HETEPT_MODELS),$(shell echo $* | tr _ ' '))) findvariant = $(firstword $(filter-out $(HETEPT_MODELS),$(shell echo $* | tr _ ' '))) ifeq ($(MODEL)$(VARIANT),) ept_%_l3.py ept_%.l3c ept_%.l3v: ept.l3 $(L3C) $(MAKE) MODEL=$(findmodel) VARIANT=$(findvariant) $@ het_pen_%_l3.py het_pen_%.l3c het_pen_%.l3v: het_pen.l3 $(L3C) $(MAKE) MODEL=$(findmodel) VARIANT=$(findvariant) $@ het_stopping_%_l3.py het_stopping_%.l3c het_stopping_%.l3v: het_stopping.l3 $(L3C) $(MAKE) MODEL=$(findmodel) VARIANT=$(findvariant) $@ else %_$(MODVAR).l3c: %.l3 $(L3C) $(L3C) $(L3FLAGSS) $($*_FLAGS) $($*_$(MODEL)_FLAGS) -g hex -o $@ -2 $< %_$(MODVAR).l3v: %.l3 $(L3C) $(L3C) $(L3FLAGSS) $($*_FLAGS) $($*_$(MODEL)_FLAGS) -g verilog -vv -o $@ -2 -l $*_$(MODVAR).l3d $< %_$(MODVAR)_l3.py: %.l3 $(L3C) $(L3C) $(L3FLAGSS) $($*_FLAGS) $($*_$(MODEL)_FLAGS) -g python -vv -o $@ -2 -l $*_$(MODVAR).l3d $< endif HETEPT_FILES1 = $(foreach M,$(HETEPT_MODELS),$(HETEPT_SOURCES:%=%_$M)) HETEPT_FILES = $(HETEPT_FILES1) $(foreach V,$(HETEPT_VARIANTS),$(HETEPT_FILES1:%=%_$V)) HETEPT_ALL = $(patsubst %,%_l3.py, $(HETEPT_FILES)) hetept_all: $(HETEPT_ALL) HETEPT_L3C = $(patsubst %,%.l3c, $(HETEPT_FILES)) hetept_l3c: $(HETEPT_L3C) HETEPT_L3V = $(patsubst %,%.l3v, $(HETEPT_FILES)) hetept_l3v: $(HETEPT_L3V) $(HETEPT_ALL) $(HETEPT_L3C) $(HETEPT_L3V) ept.gold het_pen.gold het_stopping.gold: $(patsubst %, %.l3, $(HETEPT_SOURCES)) hetept_config.l3 ept_calib.l3 het_calib.l3 %.l3dis: %.l3c $(L3DIS) $(L3DIS) -F 'R%(addr)-3d= %(cond)-3s %(mnem)-5s %(args)-25s # 0x%(instr)08x' $< > $@ %.l3cc: %.l3dis $(L3C) -g hex -o $@ $< -diff -u $*.l3c $*.l3cc clean: rm -f *.l3[cdv] *.l3dis *.l3cc *_l3.py *_l3.pyc .*.forward .*.forward.new *.d %.gold: $(L3C) %.l3 $(L3C) -2vv -g dis $(word 2, $^) >$@ 2>&1 gold: ept.gold het_pen.gold het_stopping.gold