Index: trunk/util/gsch2pcb-rnd/gsch2pcb.c =================================================================== --- trunk/util/gsch2pcb-rnd/gsch2pcb.c (revision 5838) +++ trunk/util/gsch2pcb-rnd/gsch2pcb.c (revision 5839) @@ -37,6 +37,7 @@ #include "../src/error.h" #include "../src/plugins.h" #include "../src/compat_misc.h" +#include "../src/compat_fs.h" #include "method.h" #include "help.h" #include "gsch2pcb_rnd_conf.h" @@ -326,6 +327,15 @@ } } +void require_gnetlist_backend(const char *dir, char *backend) +{ + char *path = pcb_strdup_printf("%s/gnet-%s.scm", dir, backend); + if (!pcb_file_readable(path)) + fprintf(stderr, "WARNING: %s is not found, gnetlist will probably fail; please check your pcb-rnd installation!\n", path); + free(path); +} + + #include "fp_init.h" const char *local_project_pcb_name = NULL; Index: trunk/util/gsch2pcb-rnd/method_import.c =================================================================== --- trunk/util/gsch2pcb-rnd/method_import.c (revision 5838) +++ trunk/util/gsch2pcb-rnd/method_import.c (revision 5839) @@ -54,6 +54,7 @@ verbose_str = "-q"; backend = sep_net ? "pcbrndfwd_elem" : "pcbrndfwd"; + require_gnetlist_backend(SCMDIR, backend); if (!build_and_run_command("%s %s -L %s -g %s -o %s %L %L", gnetlist, verbose_str, PCBLIBDIR, backend, cmd_file_name, &extra_gnetlist_arg_list, &schematics)) { fprintf(stderr, "Failed to run gnetlist with backend %s to generate the elements\n", backend); exit(1); Index: trunk/util/gsch2pcb-rnd/netlister.c =================================================================== --- trunk/util/gsch2pcb-rnd/netlister.c (revision 5838) +++ trunk/util/gsch2pcb-rnd/netlister.c (revision 5839) @@ -69,6 +69,7 @@ if (!conf_g2pr.utils.gsch2pcb_rnd.verbose) verbose_str = "-q"; + if (!build_and_run_command("%s %s -g pcbpins -o %s %L %L", gnetlist, verbose_str, pins_file, &extra_gnetlist_arg_list, largs)) return FALSE; @@ -77,6 +78,8 @@ mtime = (stat(pcb_file, &st) == 0) ? st.st_mtime : 0; + require_gnetlist_backend(SCMDIR, "gsch2pcb-rnd"); + if (!build_and_run_command("%s %s -L " SCMDIR " -g gsch2pcb-rnd -o %s %L %L", gnetlist, verbose_str, pcb_file, &extra_gnetlist_arg_list, largs)) { if (stat(pcb_file, &st) != 0 || mtime == st.st_mtime) {