1%_pm.h: passes/pmgen/pmgen.py %.pmg 2 $(P) mkdir -p passes/pmgen && $(PYTHON_EXECUTABLE) $< -o $@ -p $(subst _pm.h,,$(notdir $@)) $(filter-out $<,$^) 3 4# -------------------------------------- 5 6OBJS += passes/pmgen/test_pmgen.o 7GENFILES += passes/pmgen/test_pmgen_pm.h 8passes/pmgen/test_pmgen.o: passes/pmgen/test_pmgen_pm.h passes/pmgen/ice40_dsp_pm.h passes/pmgen/peepopt_pm.h passes/pmgen/xilinx_srl_pm.h 9$(eval $(call add_extra_objs,passes/pmgen/test_pmgen_pm.h)) 10 11# -------------------------------------- 12 13OBJS += passes/pmgen/ice40_dsp.o 14GENFILES += passes/pmgen/ice40_dsp_pm.h 15passes/pmgen/ice40_dsp.o: passes/pmgen/ice40_dsp_pm.h 16$(eval $(call add_extra_objs,passes/pmgen/ice40_dsp_pm.h)) 17 18# -------------------------------------- 19 20OBJS += passes/pmgen/ice40_wrapcarry.o 21GENFILES += passes/pmgen/ice40_wrapcarry_pm.h 22passes/pmgen/ice40_wrapcarry.o: passes/pmgen/ice40_wrapcarry_pm.h 23$(eval $(call add_extra_objs,passes/pmgen/ice40_wrapcarry_pm.h)) 24 25# -------------------------------------- 26 27OBJS += passes/pmgen/xilinx_dsp.o 28GENFILES += passes/pmgen/xilinx_dsp_pm.h 29GENFILES += passes/pmgen/xilinx_dsp48a_pm.h 30GENFILES += passes/pmgen/xilinx_dsp_CREG_pm.h 31GENFILES += passes/pmgen/xilinx_dsp_cascade_pm.h 32passes/pmgen/xilinx_dsp.o: passes/pmgen/xilinx_dsp_pm.h passes/pmgen/xilinx_dsp48a_pm.h passes/pmgen/xilinx_dsp_CREG_pm.h passes/pmgen/xilinx_dsp_cascade_pm.h 33$(eval $(call add_extra_objs,passes/pmgen/xilinx_dsp_pm.h)) 34$(eval $(call add_extra_objs,passes/pmgen/xilinx_dsp48a_pm.h)) 35$(eval $(call add_extra_objs,passes/pmgen/xilinx_dsp_CREG_pm.h)) 36$(eval $(call add_extra_objs,passes/pmgen/xilinx_dsp_cascade_pm.h)) 37 38# -------------------------------------- 39 40OBJS += passes/pmgen/peepopt.o 41GENFILES += passes/pmgen/peepopt_pm.h 42passes/pmgen/peepopt.o: passes/pmgen/peepopt_pm.h 43$(eval $(call add_extra_objs,passes/pmgen/peepopt_pm.h)) 44 45PEEPOPT_PATTERN = passes/pmgen/peepopt_shiftmul.pmg 46PEEPOPT_PATTERN += passes/pmgen/peepopt_muldiv.pmg 47 48passes/pmgen/peepopt_pm.h: passes/pmgen/pmgen.py $(PEEPOPT_PATTERN) 49 $(P) mkdir -p passes/pmgen && $(PYTHON_EXECUTABLE) $< -o $@ -p peepopt $(filter-out $<,$^) 50 51# -------------------------------------- 52 53OBJS += passes/pmgen/xilinx_srl.o 54GENFILES += passes/pmgen/xilinx_srl_pm.h 55passes/pmgen/xilinx_srl.o: passes/pmgen/xilinx_srl_pm.h 56$(eval $(call add_extra_objs,passes/pmgen/xilinx_srl_pm.h)) 57