Makefile OptionsΒΆ
These options are passed as shell environment variables to the Makefile, e.g.
$ PLATFORM=FORDBOARD make
Note
Try adding the -j4 flag to your calls to make to build 4 jobs in
parallel - the speedup can be quite dramatic.
Note
Don’t miss the Fabric helper scripts for the most common build
configurations.
PLATFORMSelect the target microcontroller platform.
Values:
FORDBOARD, CHIPKIT, CROSSCHASM_C5_BT, CROSSCHASM_C5_CELLULAR, BLUEBOARDDefault:
CHIPKIT
Note
The old Platform variable CROSSCHASM_C5 has been renamed to CROSSCHASM_C5_BT
DEBUGSet to
1to compile with debugging symbols and to enable debug logging. By default the logging will be available via the logging USB endpoint - for UART output, see theDEFAULT_LOGGING_OUTPUTflag. This also forcesDEFAULT_POWER_MANAGEMENT=ALWAYS_ONandDEFAULT_CAN_ACK_STATUS=1.Values:
0or1Default:
0BOOTLOADERBy default, the firmware is built to run on a microcontroller with a bootloader (if one is available for the selected platform), allowing you to update the firmware without specialized hardware. If you want to build to run on bare-metal hardware (i.e. start at the top of flash memory) set this to
0.Values:
0or1Default:
1TRANSMITTERSet this to
1to forceDEFAULT_POWER_MANAGEMENT=ALWAYS_ONandDEFAULT_USB_PRODUCT_ID=0x2. This is useful if you are using the VI as a transmitter in a local CAN bus for bench testing. You can address it separately from a receiving VI because of the different USB product ID.Values:
0or1Default:
0DEFAULT_LOGGING_OUTPUTWhen combined with
DEBUG, controls the output interface used for debug logging. See the platform docs for details on how to read this output.Values:
OFF,USB,UARTorBOTHDefault:
USBDEFAULT_METRICS_STATUSSet to
1to enable logging CAN message and output message statistics over the normal DEBUG output.Values:
0or1Default:
0DEFAULT_CAN_ACK_STATUSIf 1, the VI will be an active CAN bus participant and send low-level ACKs. If the bus speed is incorrect, can interfere with normal bus operation. This is useful if you are bench testing with 2 VIs and you need the CAN messages to be propagated up the stack.
If 0, the VI will be a listen only node and will not ACK messages. An incorrect bus speed will not have a negative impact on the bus, but you still won’t be able to read anything.
See the testing section for more details.
Values:
0or1Default:
0DEFAULT_ALLOW_RAW_WRITE_NETWORKBy default, raw CAN message write requests are not allowed from the network interface even if the CAN bus is configured to allow raw writes - set this to
1to accept them.Values:
0or1Default:
0DEFAULT_ALLOW_RAW_WRITE_UARTBy default, raw CAN message write requests are not allowed from the Bluetooth interface even if the CAN bus is configured to allow raw writes - set this to
1to accept them.Values:
0or1Default:
0DEFAULT_ALLOW_RAW_WRITE_USBBy default, raw CAN message write requests are allowed from the wired USB interface (if the CAN bus is also configured to allow raw writes) - set this to
0to block them.Values:
0or1Default:
1DEFAULT_OUTPUT_FORMATBy default, the output format is
JSON. Set this toPROTOBUFto use a binary output format, described more in Binary Output Format.Values:
JSON,PROTOBUFDefault:
JSONDEFAULT_RECURRING_OBD2_REQUESTS_STATUSSet this to
1to include a set of recurring OBD-II requests in the build, to be requests immediately on startup.Values:
0or1Default:
0DEFAULT_POWER_MANAGEMENTValid options are
ALWAYS_ON,SILENT_CANandOBD2_IGNITION_CHECK.Values:
ALWAYS_ON,SILENT_CAN,OBD2_IGNITION_CHECK(will cause the VI to write messages to the bus)Default:
SILENT_CANDEFAULT_USB_PRODUCT_IDChange the default USB product ID for the device. This is useful if you want to address 2 VIs connected to the same computer.
Values:
0x0to0xffffDefault:
0x1DEFAULT_EMULATED_DATA_STATUSSet this to
1to have the VI generate random data and publish it as OpenXC vehicle messages.Values:
0or1Default:
0DEFAULT_OBD2_BUSSets the default CAN controller to use for sending OBD-II requests. Valid options are
0(don’t send any OBD-II requests),1or2. The default value is1.Values:
0(off),1or2Default:
1NETWORKBy default, TCP output of OpenXC vehicle data is disabled. Set this to
1to enable TCP output on boards that have an Network interface. Note that the NETWORK option is broken on the chipKIT Max32 build for the moment, see https://github.com/openxc/vi-firmware/issues/189.Values:
0or1Default:
0