$(2)_c_objs := $$(patsubst %.c, %.o, $$($(2)_c_srcs))
$(2)_deps := $$(patsubst %.o, %.d, $$($(2)_objs))
$(2)_c_deps := $$(patsubst %.o, %.d, $$($(2)_c_objs))
-$$($(2)_pch) : %.h.gch : %.h
+$$($(2)_pch) : %.h.gch : %.h $$($(2)_gen_hdrs)
$(COMPILE) $$<
# If using clang, don't depend (and thus don't build) precompiled headers
$$($(2)_objs) : %.o : %.cc $$($(2)_gen_hdrs) $(if $(filter-out clang,$(CC)),$$($(2)_pch))
$(addsuffix .cc, $(call get_insn_list,$(src_dir)/riscv/encoding.h))
icache.h:
- $(src_dir)/riscv/gen_icache 1024 > $@
+ $(src_dir)/riscv/gen_icache 1024 > $@.tmp
+ mv $@.tmp $@
$(riscv_gen_srcs): %.cc: insns/%.h insn_template.cc
sed 's/NAME/$(subst .cc,,$@)/' $(src_dir)/riscv/insn_template.cc | sed 's/OPCODE/$(call get_opcode,$(src_dir)/riscv/encoding.h,$(subst .cc,,$@))/' > $@