Found that with nmea2000 minimal build aivdm and other structure pieces are not correctly ifdef guarded. Not sure correct way to fix this from initial glance.
$ scons minimal=on leapfetch=off nmea2000=on
gcc -o driver_nmea2000.o -c -D_GNU_SOURCE -Wmissing-prototypes -Wextra -Wall -Wno-uninitialized -Wno-missing-field-initializers -Wcast-align -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -Wreturn-type -pthread -Wmissing-declarations -O2 -pthread driver_nmea2000.c
driver_nmea2000.c: In function 'print_data':
driver_nmea2000.c:62:46: warning: unused parameter 'context' [-Wunused-parameter]
static void print_data(struct gps_context_t *context,
^
driver_nmea2000.c:63:25: warning: unused parameter 'buffer' [-Wunused-parameter]
unsigned char *buffer, int len, PGN *pgn)
^
driver_nmea2000.c:63:37: warning: unused parameter 'len' [-Wunused-parameter]
unsigned char *buffer, int len, PGN *pgn)
^
driver_nmea2000.c:63:47: warning: unused parameter 'pgn' [-Wunused-parameter]
unsigned char *buffer, int len, PGN *pgn)
^
driver_nmea2000.c: In function 'decode_ais_channel_info':
driver_nmea2000.c:145:24: error: 'union <anonymous>' has no member named 'aivdm'
session->driver.aivdm.ais_channel = 'A';
^
driver_nmea2000.c:153:24: error: 'union <anonymous>' has no member named 'aivdm'
session->driver.aivdm.ais_channel = 'B';
^
driver_nmea2000.c:156:24: error: 'union <anonymous>' has no member named 'aivdm'
session->driver.aivdm.ais_channel = 'A';
^
driver_nmea2000.c: In function 'hnd_129809':
driver_nmea2000.c:779:49: error: 'union <anonymous>' has no member named 'aivdm'
int index = session->driver.aivdm.context[0].type24_queue.index;
^
driver_nmea2000.c:780:50: error: 'union <anonymous>' has no member named 'aivdm'
struct ais_type24a_t *saveptr = &session->driver.aivdm.context[0].type24_queue.ships[index];
^
driver_nmea2000.c:797:17: error: 'union <anonymous>' has no member named 'aivdm'
session->driver.aivdm.context[0].type24_queue.index = index;
^
driver_nmea2000.c: In function 'hnd_129810':
driver_nmea2000.c:859:25: error: 'union <anonymous>' has no member named 'aivdm'
if (session->driver.aivdm.context[0].type24_queue.ships[i].mmsi == ais->mmsi) {
^
driver_nmea2000.c:861:55: error: 'union <anonymous>' has no member named 'aivdm'
ais->type24.shipname[l] = (char)(session->driver.aivdm.context[0].type24_queue.ships[i].shipname[l]);
^
driver_nmea2000.c:869:18: error: 'union <anonymous>' has no member named 'aivdm'
session->driver.aivdm.context[0].type24_queue.ships[i].mmsi = 0;
^
scons: *** [driver_nmea2000.o] Error 1
scons: building terminated because of errors.