################################################################################
# libstanc build rules

STANC_TEMPLATE_INSTANTIATION_CPP := $(call findfiles,src/stan/lang,*_inst.cpp) $(call findfiles,src/stan/lang,*_def.cpp)
STANC_TEMPLATE_INSTANTIATION := $(STANC_TEMPLATE_INSTANTIATION_CPP:src/%.cpp=test/%.o)

test/libstanc.a : $(STANC_TEMPLATE_INSTANTIATION)
	@mkdir -p $(dir $@)
	$(AR) -rs $@ $^


$(STANC_TEMPLATE_INSTANTIATION) : O = $(O_STANC)
$(STANC_TEMPLATE_INSTANTIATION) : test/%.o : src/%.cpp
	@mkdir -p $(dir $@)
	$(COMPILE.cpp) $(OUTPUT_OPTION) $<

ifneq ($(filter test/libstanc.a $(STANC_TEMPLATE_INSTANTIATION),$(MAKECMDGOALS)),)
-include $(patsubst %.cpp,%.d,$(STANC_TEMPLATE_INSTANTIATION_CPP))
endif
