diff --git a/src/files.c b/src/files.c index 0ef6e9c..a78d4f5 100644 --- a/src/files.c +++ b/src/files.c @@ -552,6 +552,12 @@ pkgdatadir (void) return relocate_buffer; else { + char *bazel_runfiles_bison_pkgdatadir(); + static char *bazel_pkgdatadir_p = NULL; + if (bazel_pkgdatadir_p == NULL) { + bazel_pkgdatadir_p = bazel_runfiles_bison_pkgdatadir(); + } + if (bazel_pkgdatadir_p != NULL) { return bazel_pkgdatadir_p; } char const *cp = getenv ("BISON_PKGDATADIR"); return cp ? cp : relocate2 (PKGDATADIR, &relocate_buffer); } @@ -560,7 +566,13 @@ pkgdatadir (void) char const * m4path (void) { - char const *m4 = getenv ("M4"); + char *bazel_runfiles_m4(); + static char *bazel_m4_p = NULL; + if (bazel_m4_p == NULL) { + bazel_m4_p = bazel_runfiles_m4(); + } + + char const *m4 = bazel_m4_p? bazel_m4_p : (m4 = getenv ("M4")) ? m4 : M4; if (m4) return m4; diff --git a/src/main.c b/src/main.c index 1185bf2..c0ae4a6 100644 --- a/src/main.c +++ b/src/main.c @@ -63,6 +63,8 @@ int main (int argc, char *argv[]) { + void bazel_runfiles_init(const char *argv0); + bazel_runfiles_init(argv[0]); { char *cp = getenv ("BISON_PROGRAM_NAME"); if (cp)