So here's a version with a runtime option for configuring the directory
Index: fwcutter.c
===================================================================
--- fwcutter.c (revision 754)
+++ fwcutter.c (working copy)
@@ -51,7 +51,7 @@
static struct cmdline_args cmdargs;
int big_endian_cpu;
-char* target_dir;
+char* target_dir = FIRMWARE_DIR;
static void write_little_endian(FILE *f, byte *buffer, int len)
@@ -323,7 +323,8 @@
printf("\nUsage: %s [OPTION] [driver.sys]\n", argv[0]);
printf(" -l List supported driver versions\n");
printf(" -i DRIVER.SYS Identify a driver file (don't extract)\n");
- printf(" -w DRIVER.SYS Extract and write firmware to
/lib/firmware\n");
+ printf(" -w DRIVER.SYS Extract and write firmware to " FIRMWARE_DIR
"\n");
+ printf(" -d DIR Write firmware to DIR instead of "
FIRMWARE_DIR "\n");
printf(" -p \".FOO\" Postfix for firmware filenames (.FOO.fw)\n");
printf(" -v Print fwcutter version\n");
printf(" -h|--help Print this help\n");
@@ -399,9 +400,18 @@
printf("-w needs a parameter\n");
return -1;
}
- target_dir = "/lib/firmware";
cmdargs.infile = next_arg;
- } else if (cmp_arg(arg, "-p", ¶m) == 0) {
+ } else if (cmp_arg(arg, "-d", ¶m) == 0) {
+ if (param)
+ next_arg = param;
+ else
+ i++;
+ if (!next_arg) {
+ printf ("-d needs a parameter\n");
+ return -1;
+ }
+ target_dir = next_arg;
+ } else if (cmp_arg(arg, "-p", ¶m) == 0) {
if (param)
next_arg = param;
else
@@ -435,7 +445,6 @@
get_endianess();
- target_dir = ".";
cmdargs.postfix = "";
err = parse_args(argc, argv);
if (err == 1)
Index: Makefile
===================================================================
--- Makefile (revision 754)
+++ Makefile (working copy)
@@ -5,10 +5,11 @@
CFLAGS = -std=c99 -O2 -fomit-frame-pointer -Wall -pedantic -D_BSD_SOURCE
LDFLAGS =
+FIRMWARE_DIR ?= /lib/firmware
OBJECTS = fwcutter.o md5.o
-CFLAGS += -DFWCUTTER_VERSION_=$(VERSION)
+CFLAGS += -DFWCUTTER_VERSION_=$(VERSION) -DFIRMWARE_DIR=\"$(FIRMWARE_DIR)\"
all: fwcutter
@@ -22,8 +23,8 @@
-rm -f *~ *.o *.orig *.rej *.fw fwcutter
installfw:
- -if ! [ -d /lib/firmware ]; then mkdir /lib/firmware; fi
- -install -o 0 -g 0 -m 600 bcm430x_*.fw /lib/firmware/
+ -if ! [ -d $(FIRMWARE_DIR) ]; then mkdir $(FIRMWARE_DIR); fi
+ -install -o 0 -g 0 -m 600 bcm430x_*.fw $(FIRMWARE_DIR)
# dependencies
fwcutter.o: md5.h fwcutter_list.h
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
http://lists.berlios.de/mailman/listinfo/bcm43xx-dev