#!/usr/bin/perl
#
# vim:set ts=4 sw=4:

use strict;

sub dwim{
	local $/=undef;
	my $file=shift;

	open(IN,"<:bytes",$file) || die "Can't open $file: $!";
	my @bytes=unpack("C*",<IN>);
	close(IN);

	$file=~s/\.[^.]+$//;

	open(OUT,">","${file}.h") || die "Can't write ${file}.h: $!";

    $file=~s!.*/!!;

	print OUT "const uint16_t loadable_${file}_size = ", scalar @bytes, ";\n";
	print OUT "const uint8_t loadable_${file}[] = {\n";

	my $ctr=0;
	for(@bytes){
		print OUT "\t" if($ctr==0);
		printf OUT "0x%02x, ",$_;
		if(++$ctr==8){
			print OUT "\n";
			$ctr=0;
		};
	};
	print OUT "\n" if($ctr!=0);

	print OUT "};\n";
	close(OUT);
};

for(@ARGV){
	dwim($_);
};