+sub img_src ($)
+{
+my($file_base)=@_;
+
+ return $file_base if !url_is_local($file_base)
+ # Known image extension?
+ || $file_base=~m#$img_variants_re#o;
+
+ my @nego_variants;
+ for my $var (@img_variants) {
+ my $file=$file_base.".".$var->{"id"};
+ # TODO: Somehow quickly check dependencies?
+ system 'make >&2 -s --no-print-directory'
+ .' -C '."'".File::Basename::dirname($file)."' '".File::Basename::basename($file)."'";
+# if !-f $file;
+ push @nego_variants,negotiate_variant(
+ %$var,
+ "size"=>(stat $file)[7],
+ );
+ }
+ # Do not: ,$W->{"r"});
+ # but should we provide somehow either 'HTTP::Headers' or 'HTTP::Request' ?
+ my $ext=HTTP::Negotiate::choose(\@nego_variants);
+ $ext||=$img_variants[0]->{"id"}; # &HTTP::Negotiate::choose failed?
+ return $file_base.".".$ext;
+}
+