#!/usr/bin/env perl ############################################################################ # __________ __ ___. # Open \______ \ ____ ____ | | _\_ |__ _______ ___ # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ # \/ \/ \/ \/ \/ # $Id$ # # Copyright (C) 2005 by Jens Arnold # # All files in this archive are subject to the GNU General Public License. # See the file COPYING in the source tree root for full license agreement. # # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY # KIND, either express or implied. # ############################################################################ if (!$ARGV[0]) { print <] Check & strip header from an .ucl file and generate .c and .h from it. HERE ; exit; } my $prefix = $p; if(!$prefix) { $prefix="uclimage"; } my $input = $ARGV[0]; my $buffer; my $insize; my $readsize = 0; open(INF, "<$input") or die "Can't open $input"; binmode INF; # check UCL header # magic header read(INF, $buffer, 8); if ($buffer ne pack("C8", 0x00, 0xe9, 0x55, 0x43, 0x4c, 0xff, 0x01, 0x1a)) { die "Not an UCL file."; } read(INF, $buffer, 4); # method read(INF, $buffer, 1); if (ord($buffer) != 0x2E) { die sprintf("Wrong compression method (expected 0x2E, found 0x%02X)", ord($buffer)); } read(INF, $buffer, 9); # file size read(INF, $buffer, 4); $insize = unpack("N", $buffer) + 8; open(OUTF, ">$prefix.c") or die "Can't open $prefix.c"; print OUTF <$prefix.h") or die "Can't open $prefix.h"; print OUTF "/* This file was automatically generated using ucl2src.pl */\n"; print OUTF "extern const unsigned char image[".$insize."];\n"; close(OUTF);