rpcgen uses absolute paths (based on the input) when generating the output files, thus breaking builds using a separate build directory. I'm not sure this is the best (or even an acceptable) approach, but it works for me...consider it an RFC :) --- tools/rpcgen/rpc_main.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/rpcgen/rpc_main.c b/tools/rpcgen/rpc_main.c index 28aa60c..f81da47 100644 --- a/tools/rpcgen/rpc_main.c +++ b/tools/rpcgen/rpc_main.c @@ -44,6 +44,7 @@ static char sccsid[] = "@(#)rpc_main.c 1.30 89/03/30 (C) 1987 SMI"; #include <unistd.h> #include <ctype.h> #include <errno.h> +#include <libgen.h> #include "rpc_parse.h" #include "rpc_util.h" #include "rpc_scan.h" @@ -389,7 +390,7 @@ c_output(char *infile, char *define, int extend, char *outfile) open_output(infile, outfilename); add_warning(); if (infile && (include = extendfile(infile, ".h"))) { - f_print(fout, "#include \"%s\"\n", include); + f_print(fout, "#include \"%s\"\n", basename(include)); free(include); /* .h file already contains rpc/rpc.h */ } else @@ -523,7 +524,7 @@ s_output(int argc, char **argv, char *infile, char *define, int extend, open_output(infile, outfilename); add_warning(); if (infile && (include = extendfile(infile, ".h"))) { - f_print(fout, "#include \"%s\"\n", include); + f_print(fout, "#include \"%s\"\n", basename(include)); free(include); } else f_print(fout, "#include <rpc/rpc.h>\n"); @@ -630,7 +631,7 @@ l_output(char *infile, char *define, int extend, char *outfile) if (Cflag) f_print (fout, "#include <memory.h> /* for memset */\n"); if (infile && (include = extendfile(infile, ".h"))) { - f_print(fout, "#include \"%s\"\n", include); + f_print(fout, "#include \"%s\"\n", basename(include)); free(include); } else f_print(fout, "#include <rpc/rpc.h>\n"); -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html