Use AC_CHECK_FILE to set a cached variable instead:
ac_cv_file__etc_printcap
When cross-compiling, this variable should be set to "yes" or "no" as appropriate for the target platform.
This is a bit of a brute-force approach: If you're cross-compiling, you will be forced to set this variable, as no assumption can be made from the build host.
Have you considered to remove the HAVE_PRINTCAP macro and to add a runtime check for the /etc/printcap file instead?