for (i = 3; i < argc; i++) {
if ((res = cmp_arg(argv, &i, "--help", "-h", 0)) == ARG_MATCH) {
- goto out_usage;
+ usage(argc, argv);
+ return 1;
} else if ((res = cmp_arg(argv, &i, "--debug", "-d", 0)) == ARG_MATCH) {
_debug++;
} else {
-#!/bin/sh
+#!/bin/bash
+#
+# b43-asm preprocessing frontend
+#
+# Copyright (c) 2007 Michael Buesch <mb@bu3sch.de>
+# Licensed under the GNU/GPL version 2.
+#
-installed=0
-if [ -z "$B43_ASM" ]; then
- if [ $installed -eq 0 ] && [ -x "./b43-asm.bin" ]; then
- B43_ASM="./b43-asm.bin"
- else
- B43_ASM="b43-asm.bin"
- fi
+# The b43-asm backend binary
+B43_ASM="b43-asm.bin"
+# The C preprocessor binary
+CPP="cpp"
+
+
+# This variable is changed by the installer scripts.
+installed=0
+if [ $installed -eq 0 ] && [ -x "./$B43_ASM" ]; then
+ B43_ASM="./$B43_ASM"
fi
-if [ -z "$CPP" ]; then
- CPP="cpp"
+# Probe the CPP binary
+$CPP --help >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+ echo "ERROR: Failed to execute the C preprocessor \"$CPP\""
+ exit 1
+fi
+# Probe the b43-asm binary
+$B43_ASM a b --help >/dev/null 2>&1
+if [ $? -ne 0 ]; then
+ echo "ERROR: Failed to execute the b43-asm binary \"$B43_ASM\""
+ exit 2
fi
if [ $# -lt 2 ]; then
$B43_ASM --help
- exit 1
+ exit 3
fi
-
infile="$1"
shift
outfile="$1"
shift
-cat "$infile" | $CPP -traditional-cpp | $B43_ASM "-" "$outfile" $@
+if [ "$infile" != "-" ]; then
+ if ! [ -r "$infile" ]; then
+ echo "ERROR: Can not read input file \"$infile\""
+ exit 4
+ fi
+fi
+
+$CPP -traditional-cpp "$infile" | $B43_ASM "-" "$outfile" $@
min(sizeof(cur_lineinfo.file) - 1,
(int)(found - str)));
- if (strcmp(cur_lineinfo.file, "<stdin>") == 0)
- strcpy(cur_lineinfo.file, "Input File");
-
return;
error:
fprintf(stderr, "Invalid CPP line directive: %s\n", orig);