diff --git a/Makefile b/Makefile index 00ae9ca39..24700f9b6 100644 --- a/Makefile +++ b/Makefile @@ -459,6 +459,8 @@ CHANGELOG: git log --no-merges U-Boot-1_1_5.. | \ unexpand -a | sed -e 's/\s\s*$$//' > $@ +include/license.h: tools/bin2header COPYING + cat COPYING | gzip -9 -c | ./tools/bin2header license_gzip > include/license.h ######################################################################### unconfig: diff --git a/common/Makefile b/common/Makefile index c2b381b4c..dd139d603 100644 --- a/common/Makefile +++ b/common/Makefile @@ -80,6 +80,7 @@ COBJS-$(CONFIG_CMD_IDE) += cmd_ide.o COBJS-$(CONFIG_CMD_IMMAP) += cmd_immap.o COBJS-$(CONFIG_CMD_ITEST) += cmd_itest.o COBJS-$(CONFIG_CMD_JFFS2) += cmd_jffs2.o +COBJS-$(CONFIG_CMD_LICENSE) += cmd_license.o COBJS-y += cmd_load.o COBJS-$(CONFIG_LOGBUFFER) += cmd_log.o COBJS-y += cmd_mem.o diff --git a/common/cmd_license.c b/common/cmd_license.c new file mode 100644 index 000000000..301af8d96 --- /dev/null +++ b/common/cmd_license.c @@ -0,0 +1,59 @@ +/* + * (C) Copyright 2007 by OpenMoko, Inc. + * Author: Harald Welte + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include + +#if defined(CONFIG_CMD_LICENSE) + +/* COPYING is currently 15951 bytes in size */ +#define LICENSE_MAX 20480 + +#include +#include +#include +int gunzip(void *, int, unsigned char *, unsigned long *); + +int do_license(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ + char *tok, *dst = malloc(LICENSE_MAX); + unsigned long len = LICENSE_MAX; + + if (!dst) + return -1; + + if (gunzip(dst, LICENSE_MAX, license_gz, &len) != 0) { + printf("Error uncompressing license text\n"); + free(dst); + return -1; + } + puts(dst); + free(dst); + + return 0; +} + +U_BOOT_CMD(license, 1, 1, do_license, + "license - print GPL license text\n", + NULL); + +#endif /* CONFIG_CMD_LICENSE */ diff --git a/include/config_cmd_all.h b/include/config_cmd_all.h index 2cb2f6782..d771696fe 100644 --- a/include/config_cmd_all.h +++ b/include/config_cmd_all.h @@ -50,6 +50,7 @@ #define CONFIG_CMD_ITEST /* Integer (and string) test */ #define CONFIG_CMD_JFFS2 /* JFFS2 Support */ #define CONFIG_CMD_KGDB /* kgdb */ +#define CONFIG_CMD_LICENSE /* console license display */ #define CONFIG_CMD_LOADB /* loadb */ #define CONFIG_CMD_LOADS /* loads */ #define CONFIG_CMD_MEMORY /* md mm nm mw cp cmp crc base loop mtest */ diff --git a/tools/Makefile b/tools/Makefile index 8533a8e5c..21ea1c204 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -171,6 +171,10 @@ $(obj)mpc86x_clk$(SFX): $(obj)mpc86x_clk.o $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ $(STRIP) $@ +$(obj)bin2header$(SFX): $(obj)bin2header.o + $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ + $(STRIP) $@ + $(obj)envcrc.o: $(src)envcrc.c $(CC) -g $(CFLAGS) -c -o $@ $< diff --git a/tools/bin2header.c b/tools/bin2header.c new file mode 100644 index 000000000..390100e24 --- /dev/null +++ b/tools/bin2header.c @@ -0,0 +1,56 @@ +/* bin2header.c - program to convert binary file into a C structure + * definition to be included in a header file. + * + * (C) Copyright 2008 by Harald Welte + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include +#include + +int main(int argc, char **argv) +{ + if (argc < 2) { + fprintf(stderr, "%s needs one argument: the structure name\n", + argv[0]); + exit(1); + } + + printf("/* bin2header output - automatically generated */\n"); + printf("unsigned char %s[] = {\n", argv[1]); + + while (1) { + int i, nread; + unsigned char buf[10]; + nread = read(0, buf, sizeof(buf)); + if (nread <= 0) + break; + + printf("\t"); + for (i = 0; i < nread - 1; i++) + printf("0x%02x, ", buf[i]); + + printf("0x%02x,\n", buf[nread-1]); + } + + printf("};\n"); + + exit(0); +}