I don't know protoc, but I run other programs from Makefile.
In my case programs generate platform-dependent data and don't work when cross-compiling. You probably don't need these checks.
in configure.ac:
AM_CONDITIONAL([CROSS_COMPILING], [ test "x$cross_compiling" = xyes ])
add generated file in Makefile.am (assuming that you use automake):
if !CROSS_COMPILING
pkgdata_DATA = generated_file
endif
and then just write a normal make
rule to generate it:
generated_file: input_file
generate$(EXEEXT) -input $< -output $@