diff --git a/bin/install.pike b/bin/install.pike index f55e6dd72090d20ae84e4b89f7bc2561f77f9cfb..b9c6999dddb41e52dff426bd50e1293fa76d828d 100644 --- a/bin/install.pike +++ b/bin/install.pike @@ -211,6 +211,14 @@ int compare_files(string a,string b) return 0; } +int compare_to_file(string data,string a) +{ + mixed sa=file_stat(a); + if(sa && sa[1]==sizeof(data)) + return Stdio.read_file(a) == data; + return 0; +} + int low_install_file(string from, string to, void|int mode) @@ -1027,7 +1035,11 @@ void make_master(string dest, string master, string lib_prefix, if((vars->PIKE_MODULE_RELOC||"") != "") master_data = replace(master_data, "#undef PIKE_MODULE_RELOC", "#define PIKE_MODULE_RELOC 1"); - Stdio.write_file(combine_path(vars->TMP_LIBDIR,"master.pike"),master_data); + if(compare_to_file(master_data, dest)) { + status("Finalizing",dest,"Already finalized"); + return; + } + Stdio.write_file(dest,master_data); status("Finalizing",master,"done"); } @@ -1038,6 +1050,10 @@ void make_aclocal(string src, string dest, string include_prefix) string aclocal_data=Stdio.read_file(src); aclocal_data = "define(PIKE_INCLUDE_PATH,"+include_prefix+")\n" + aclocal_data; + if(compare_to_file(aclocal_data, dest)) { + status("Finalizing",dest,"Already finalized"); + return; + } Stdio.write_file(dest,aclocal_data); status("Finalizing",dest,"done"); } @@ -1054,6 +1070,10 @@ void fix_smartlink(string src, string dest, string include_prefix) else return s; })*"\n"; + if(compare_to_file(data, dest)) { + status("Finalizing",dest,"Already finalized"); + return; + } Stdio.write_file(dest,data); status("Finalizing",dest,"done"); }