This patch includes several changes, most of which are related to Linux, though portions may be of use to other platforms.
* Removed dependency of <LegoUSB/legousbtower.h> when building with USB support for Linux
* Set some properties so that they can be set from the "make" command line instead of modifying the Makefile, facilitating easier package creation (including DEFAULT_SERIAL_NAME and DEFAULT_USB_NAME).
* Now that the Lego USB tower driver is included in the kernel, the device is typically either /dev/legousbtower0 or /dev/usb/legousbtower0. The code files have been updated to reflect these names.
* If the NQC "-S" argument is in the format "usb[:<device>]" (e.g. usb:/dev/lego0), the program will use /dev/lego0 as the USB device; if the "-S" argument is simply "usb" then the program will check for the presence of DEFAULT_USB_NAME, /dev/legousbtower0, or /dev/usb/legousbtower
* A "tcp" option has been added as an option to the "-S" argument, performing communication over a TCP connection instead of a serial or USB IR device. This facilitates the use of NQC with programs such as BrickEmu, an RCX emulator (see http://hoenicke.ath.cx/rcx/brickemu.html ). The full option format is "tcp[:<host>[:<port>]]" If port is not provided, the program will default to the "magic" Lego port of 50637, and if the host is not provided, the program will default to localhost.