firmware: Handle new mag_cal.c location and dependencies

The mag_cal.c file was moved and the Android.mk files were updated, but
the makefile fragments used for the GNU Make system were not updated.

Additionally, the mag_cal.c file now depends on the kasa.c math
functions and diversity_checker.c, so these files must also be
included.

Bug: 112656064
Test: local build test only
Change-Id: Ida6515ae2c37479889cb916399b1cf5a7d6ee8c5
diff --git a/firmware/argonkey_aux_variant_config.mk b/firmware/argonkey_aux_variant_config.mk
index e677395..6e244f6 100644
--- a/firmware/argonkey_aux_variant_config.mk
+++ b/firmware/argonkey_aux_variant_config.mk
@@ -54,25 +54,26 @@
     device/google/contexthub/firmware/variant/$(my_variant)/inc \
 
 # this is relative to NANOHUB_OS_PATH
-NANO_VARIANT_OSCFG_SRC_FILES_$(my_variant) :=               \
-    os/algos/calibration/accelerometer/accel_cal.c          \
-    os/algos/calibration/gyroscope/gyro_cal.c               \
-    os/algos/calibration/gyroscope/gyro_stillness_detect.c  \
-    os/algos/calibration/magnetometer/mag_cal.c             \
-    os/algos/calibration/common/diversity_checker.c         \
-    os/algos/calibration/over_temp/over_temp_cal.c          \
-    os/algos/common/math/mat.c                              \
-    os/algos/common/math/quat.c                             \
-    os/algos/common/math/vec.c                              \
-    os/algos/fusion.c                                       \
-    os/algos/time_sync.c                                    \
-    os/drivers/hall/hall.c                                  \
-    os/drivers/intersil_isl29034/isl29034.c                 \
-    os/drivers/leds/leds_gpio.c                             \
-    os/drivers/leds/leds_lp3943.c                           \
-    os/drivers/orientation/orientation.c                    \
-    os/drivers/st_hts221/hts221.c                           \
-    os/drivers/st_lps22hb/lps22hb.c                         \
-    os/drivers/st_lsm6dsm/st_lsm6dsm.c                      \
-    os/drivers/tilt_detection/tilt_detection.c              \
-    os/drivers/window_orientation/window_orientation.c      \
+NANO_VARIANT_OSCFG_SRC_FILES_$(my_variant) :=                  \
+    os/algos/calibration/accelerometer/accel_cal.c             \
+    os/algos/calibration/gyroscope/gyro_cal.c                  \
+    os/algos/calibration/gyroscope/gyro_stillness_detect.c     \
+    os/algos/calibration/magnetometer/mag_cal/mag_cal.c        \
+    os/algos/calibration/diversity_checker/diversity_checker.c \
+    os/algos/calibration/over_temp/over_temp_cal.c             \
+    os/algos/common/math/kasa.c                                \
+    os/algos/common/math/mat.c                                 \
+    os/algos/common/math/quat.c                                \
+    os/algos/common/math/vec.c                                 \
+    os/algos/fusion.c                                          \
+    os/algos/time_sync.c                                       \
+    os/drivers/hall/hall.c                                     \
+    os/drivers/intersil_isl29034/isl29034.c                    \
+    os/drivers/leds/leds_gpio.c                                \
+    os/drivers/leds/leds_lp3943.c                              \
+    os/drivers/orientation/orientation.c                       \
+    os/drivers/st_hts221/hts221.c                              \
+    os/drivers/st_lps22hb/lps22hb.c                            \
+    os/drivers/st_lsm6dsm/st_lsm6dsm.c                         \
+    os/drivers/tilt_detection/tilt_detection.c                 \
+    os/drivers/window_orientation/window_orientation.c         \
diff --git a/firmware/lunchbox_aux_variant_config.mk b/firmware/lunchbox_aux_variant_config.mk
index e0228c9..b4e0285 100644
--- a/firmware/lunchbox_aux_variant_config.mk
+++ b/firmware/lunchbox_aux_variant_config.mk
@@ -59,29 +59,30 @@
 #'Lu' -> lunchbox
 NANO_VARIANT_CFLAGS_$(my_variant) += -DPLATFORM_HW_TYPE=0x4C75
 
-NANO_VARIANT_C_INCLUDES_$(my_variant) :=                    \
-    device/google/contexthub/firmware/variant/lunchbox/inc  \
+NANO_VARIANT_C_INCLUDES_$(my_variant) :=                   \
+    device/google/contexthub/firmware/variant/lunchbox/inc \
 
 # this is relative to NANOHUB_OS_PATH
-NANO_VARIANT_OSCFG_SRC_FILES_$(my_variant) :=               \
-    os/algos/calibration/accelerometer/accel_cal.c          \
-    os/algos/calibration/gyroscope/gyro_cal.c               \
-    os/algos/calibration/gyroscope/gyro_stillness_detect.c  \
-    os/algos/calibration/magnetometer/mag_cal.c             \
-    os/algos/calibration/common/diversity_checker.c         \
-    os/algos/calibration/over_temp/over_temp_cal.c          \
-    os/algos/common/math/mat.c                              \
-    os/algos/common/math/quat.c                             \
-    os/algos/common/math/vec.c                              \
-    os/algos/fusion.c                                       \
-    os/algos/time_sync.c                                    \
-    os/drivers/ams_tmd2772/ams_tmd2772.c                    \
-    os/drivers/bosch_bmi160/bosch_bmi160.c                  \
-    os/drivers/bosch_bmi160/bosch_bmm150_slave.c            \
-    os/drivers/bosch_bmp280/bosch_bmp280.c                  \
-    os/drivers/hall/hall.c                                  \
-    os/drivers/orientation/orientation.c                    \
-    os/drivers/rohm_rpr0521/rohm_rpr0521.c                  \
-    os/drivers/tilt_detection/tilt_detection.c              \
-    os/drivers/vsync/vsync.c                                \
-    os/drivers/window_orientation/window_orientation.c      \
+NANO_VARIANT_OSCFG_SRC_FILES_$(my_variant) :=                  \
+    os/algos/calibration/accelerometer/accel_cal.c             \
+    os/algos/calibration/gyroscope/gyro_cal.c                  \
+    os/algos/calibration/gyroscope/gyro_stillness_detect.c     \
+    os/algos/calibration/magnetometer/mag_cal/mag_cal.c        \
+    os/algos/calibration/diversity_checker/diversity_checker.c \
+    os/algos/calibration/over_temp/over_temp_cal.c             \
+    os/algos/common/math/kasa.c                                \
+    os/algos/common/math/mat.c                                 \
+    os/algos/common/math/quat.c                                \
+    os/algos/common/math/vec.c                                 \
+    os/algos/fusion.c                                          \
+    os/algos/time_sync.c                                       \
+    os/drivers/ams_tmd2772/ams_tmd2772.c                       \
+    os/drivers/bosch_bmi160/bosch_bmi160.c                     \
+    os/drivers/bosch_bmi160/bosch_bmm150_slave.c               \
+    os/drivers/bosch_bmp280/bosch_bmp280.c                     \
+    os/drivers/hall/hall.c                                     \
+    os/drivers/orientation/orientation.c                       \
+    os/drivers/rohm_rpr0521/rohm_rpr0521.c                     \
+    os/drivers/tilt_detection/tilt_detection.c                 \
+    os/drivers/vsync/vsync.c                                   \
+    os/drivers/window_orientation/window_orientation.c         \
diff --git a/firmware/neonkey_aux_variant_config.mk b/firmware/neonkey_aux_variant_config.mk
index 6698c7c..d53ad8c 100644
--- a/firmware/neonkey_aux_variant_config.mk
+++ b/firmware/neonkey_aux_variant_config.mk
@@ -55,26 +55,27 @@
     device/google/contexthub/firmware/variant/neonkey/inc \
 
 # this is relative to NANOHUB_OS_PATH
-NANO_VARIANT_OSCFG_SRC_FILES_$(my_variant) :=               \
-    os/algos/calibration/accelerometer/accel_cal.c          \
-    os/algos/calibration/gyroscope/gyro_cal.c               \
-    os/algos/calibration/gyroscope/gyro_stillness_detect.c  \
-    os/algos/calibration/magnetometer/mag_cal.c             \
-    os/algos/calibration/common/diversity_checker.c         \
-    os/algos/calibration/over_temp/over_temp_cal.c          \
-    os/algos/common/math/mat.c                              \
-    os/algos/common/math/quat.c                             \
-    os/algos/common/math/vec.c                              \
-    os/algos/fusion.c                                       \
-    os/algos/time_sync.c                                    \
-    os/drivers/bosch_bmi160/bosch_bmi160.c                  \
-    os/drivers/bosch_bmi160/bosch_bmm150_slave.c            \
-    os/drivers/bosch_bmp280/bosch_bmp280.c                  \
-    os/drivers/hall/hall.c                                  \
-    os/drivers/leds/leds_gpio.c                             \
-    os/drivers/leds/leds_lp3943.c                           \
-    os/drivers/orientation/orientation.c                    \
-    os/drivers/rohm_rpr0521/rohm_rpr0521.c                  \
-    os/drivers/si_si7034/si7034a10.c                        \
-    os/drivers/tilt_detection/tilt_detection.c              \
-    os/drivers/window_orientation/window_orientation.c      \
+NANO_VARIANT_OSCFG_SRC_FILES_$(my_variant) :=                  \
+    os/algos/calibration/accelerometer/accel_cal.c             \
+    os/algos/calibration/gyroscope/gyro_cal.c                  \
+    os/algos/calibration/gyroscope/gyro_stillness_detect.c     \
+    os/algos/calibration/magnetometer/mag_cal/mag_cal.c        \
+    os/algos/calibration/diversity_checker/diversity_checker.c \
+    os/algos/calibration/over_temp/over_temp_cal.c             \
+    os/algos/common/math/kasa.c                                \
+    os/algos/common/math/mat.c                                 \
+    os/algos/common/math/quat.c                                \
+    os/algos/common/math/vec.c                                 \
+    os/algos/fusion.c                                          \
+    os/algos/time_sync.c                                       \
+    os/drivers/bosch_bmi160/bosch_bmi160.c                     \
+    os/drivers/bosch_bmi160/bosch_bmm150_slave.c               \
+    os/drivers/bosch_bmp280/bosch_bmp280.c                     \
+    os/drivers/hall/hall.c                                     \
+    os/drivers/leds/leds_gpio.c                                \
+    os/drivers/leds/leds_lp3943.c                              \
+    os/drivers/orientation/orientation.c                       \
+    os/drivers/rohm_rpr0521/rohm_rpr0521.c                     \
+    os/drivers/si_si7034/si7034a10.c                           \
+    os/drivers/tilt_detection/tilt_detection.c                 \
+    os/drivers/window_orientation/window_orientation.c         \
diff --git a/firmware/nucleo_aux_variant_config.mk b/firmware/nucleo_aux_variant_config.mk
index 06b01a5..c5b6d6b 100644
--- a/firmware/nucleo_aux_variant_config.mk
+++ b/firmware/nucleo_aux_variant_config.mk
@@ -55,25 +55,26 @@
     device/google/contexthub/firmware/variant/nucleo/inc \
 
 # this is relative to NANOHUB_OS_PATH
-NANO_VARIANT_OSCFG_SRC_FILES_$(my_variant) :=               \
-    os/algos/calibration/accelerometer/accel_cal.c          \
-    os/algos/calibration/gyroscope/gyro_cal.c               \
-    os/algos/calibration/gyroscope/gyro_stillness_detect.c  \
-    os/algos/calibration/magnetometer/mag_cal.c             \
-    os/algos/calibration/common/diversity_checker.c         \
-    os/algos/calibration/over_temp/over_temp_cal.c          \
-    os/algos/common/math/mat.c                              \
-    os/algos/common/math/quat.c                             \
-    os/algos/common/math/vec.c                              \
-    os/algos/fusion.c                                       \
-    os/algos/time_sync.c                                    \
-    os/drivers/ams_tmd2772/ams_tmd2772.c                    \
-    os/drivers/bosch_bmi160/bosch_bmi160.c                  \
-    os/drivers/bosch_bmi160/bosch_bmm150_slave.c            \
-    os/drivers/bosch_bmp280/bosch_bmp280.c                  \
-    os/drivers/hall/hall.c                                  \
-    os/drivers/orientation/orientation.c                    \
-    os/drivers/rohm_rpr0521/rohm_rpr0521.c                  \
-    os/drivers/tilt_detection/tilt_detection.c              \
-    os/drivers/vsync/vsync.c                                \
-    os/drivers/window_orientation/window_orientation.c      \
+NANO_VARIANT_OSCFG_SRC_FILES_$(my_variant) :=                  \
+    os/algos/calibration/accelerometer/accel_cal.c             \
+    os/algos/calibration/gyroscope/gyro_cal.c                  \
+    os/algos/calibration/gyroscope/gyro_stillness_detect.c     \
+    os/algos/calibration/magnetometer/mag_cal/mag_cal.c        \
+    os/algos/calibration/diversity_checker/diversity_checker.c \
+    os/algos/calibration/over_temp/over_temp_cal.c             \
+    os/algos/common/math/kasa.c                                \
+    os/algos/common/math/mat.c                                 \
+    os/algos/common/math/quat.c                                \
+    os/algos/common/math/vec.c                                 \
+    os/algos/fusion.c                                          \
+    os/algos/time_sync.c                                       \
+    os/drivers/ams_tmd2772/ams_tmd2772.c                       \
+    os/drivers/bosch_bmi160/bosch_bmi160.c                     \
+    os/drivers/bosch_bmi160/bosch_bmm150_slave.c               \
+    os/drivers/bosch_bmp280/bosch_bmp280.c                     \
+    os/drivers/hall/hall.c                                     \
+    os/drivers/orientation/orientation.c                       \
+    os/drivers/rohm_rpr0521/rohm_rpr0521.c                     \
+    os/drivers/tilt_detection/tilt_detection.c                 \
+    os/drivers/vsync/vsync.c                                   \
+    os/drivers/window_orientation/window_orientation.c         \
diff --git a/firmware/variant/argonkey/argonkey.mk b/firmware/variant/argonkey/argonkey.mk
index 75dc5af..d6f2613 100644
--- a/firmware/variant/argonkey/argonkey.mk
+++ b/firmware/variant/argonkey/argonkey.mk
@@ -31,22 +31,23 @@
 SRCS_os += $(VARIANT_PATH)/src/os/spi.c
 #keys
 
-#drivers
-# Fusion algorithms
-SRCS_os += os/algos/fusion.c \
-	os/algos/common/math/mat.c \
-	os/algos/common/math/quat.c \
-	os/algos/common/math/vec.c
+SRCS_os += \
+    os/algos/calibration/accelerometer/accel_cal.c \
+    os/algos/calibration/gyroscope/gyro_cal.c \
+    os/algos/calibration/gyroscope/gyro_stillness_detect.c \
+    os/algos/calibration/magnetometer/mag_cal/mag_cal.c \
+    os/algos/calibration/diversity_checker/diversity_checker.c \
+    os/algos/calibration/over_temp/over_temp_cal.c \
+    os/algos/common/math/kasa.c \
+    os/algos/common/math/mat.c \
+    os/algos/common/math/quat.c \
+    os/algos/common/math/vec.c \
+    os/algos/fusion.c \
+    os/algos/time_sync.c
 
+#drivers
 # LSM6DSL accel+gyro with mag slave
-SRCS_os += os/drivers/st_lsm6dsm/st_lsm6dsm.c \
-        os/algos/calibration/accelerometer/accel_cal.c \
-        os/algos/calibration/gyroscope/gyro_cal.c \
-        os/algos/calibration/gyroscope/gyro_stillness_detect.c \
-        os/algos/calibration/magnetometer/mag_cal.c \
-        os/algos/calibration/common/diversity_checker.c \
-        os/algos/calibration/over_temp/over_temp_cal.c \
-        os/algos/time_sync.c
+SRCS_os += os/drivers/st_lsm6dsm/st_lsm6dsm.c
 
 # Orientation sensor driver
 SRCS_os += os/drivers/orientation/orientation.c
diff --git a/firmware/variant/lunchbox/lunchbox.mk b/firmware/variant/lunchbox/lunchbox.mk
index 4b400eb..90ed90f 100644
--- a/firmware/variant/lunchbox/lunchbox.mk
+++ b/firmware/variant/lunchbox/lunchbox.mk
@@ -30,22 +30,25 @@
 SRCS_os += $(VARIANT_PATH)/src/os/spi.c
 #keys
 
+SRCS_os += \
+    os/algos/calibration/magnetometer/mag_cal/mag_cal.c \
+    os/algos/calibration/diversity_checker/diversity_checker.c \
+    os/algos/common/math/kasa.c \
+    os/algos/common/math/mat.c \
+    os/algos/common/math/quat.c \
+    os/algos/common/math/vec.c \
+    os/algos/fusion.c \
+    os/algos/time_sync.c
+
 #drivers
-# ROHM ALS/prox
-SRCS_os += os/drivers/rohm_rpr0521/rohm_rpr0521.c
-
-# Fusion algorithms
-SRCS_os += os/algos/fusion.c \
-	os/algos/common/math/mat.c \
-	os/algos/common/math/quat.c \
-	os/algos/common/math/vec.c
-
 # BMI160 accel and gyro, BMM150 mag drivers
 FLAGS += -DUSE_BMM150 -DMAG_SLAVE_PRESENT
-SRCS_os += os/drivers/bosch_bmi160/bosch_bmi160.c \
-	os/drivers/bosch_bmi160/bosch_bmm150_slave.c \
-	os/algos/calibration/magnetometer/mag_cal.c \
-	os/algos/time_sync.c
+SRCS_os += \
+    os/drivers/bosch_bmi160/bosch_bmi160.c \
+    os/drivers/bosch_bmi160/bosch_bmm150_slave.c
+
+# ROHM ALS/prox
+SRCS_os += os/drivers/rohm_rpr0521/rohm_rpr0521.c
 
 # Orientation sensor driver
 SRCS_os += os/drivers/orientation/orientation.c
diff --git a/firmware/variant/neonkey/neonkey.mk b/firmware/variant/neonkey/neonkey.mk
index b762f92..217f8e6 100644
--- a/firmware/variant/neonkey/neonkey.mk
+++ b/firmware/variant/neonkey/neonkey.mk
@@ -32,7 +32,22 @@
 SRCS_os += $(VARIANT_PATH)/src/os/led.c
 #keys
 
+SRCS_os += \
+    os/algos/calibration/magnetometer/mag_cal/mag_cal.c \
+    os/algos/calibration/diversity_checker/diversity_checker.c \
+    os/algos/common/math/kasa.c \
+    os/algos/common/math/mat.c \
+    os/algos/common/math/quat.c \
+    os/algos/common/math/vec.c \
+    os/algos/fusion.c \
+    os/algos/time_sync.c
+
 #drivers
+# Bosch BMI160 accel and gyro, BMM150 mag drivers
+FLAGS += -DUSE_BMM150 -DMAG_SLAVE_PRESENT
+SRCS_os += \
+    os/drivers/bosch_bmi160/bosch_bmi160.c \
+    os/drivers/bosch_bmi160/bosch_bmm150_slave.c
 
 # ROHM ALS/prox
 SRCS_os += os/drivers/rohm_rpr0521/rohm_rpr0521.c
@@ -52,23 +67,10 @@
 # Bosch BMP280 Barometer/Temperature
 SRCS_os += os/drivers/bosch_bmp280/bosch_bmp280.c
 
-# Bosch BMI160 accel and gyro, BMM150 mag drivers
-FLAGS += -DUSE_BMM150 -DMAG_SLAVE_PRESENT
-SRCS_os += os/drivers/bosch_bmi160/bosch_bmi160.c \
-	os/drivers/bosch_bmi160/bosch_bmm150_slave.c \
-	os/algos/calibration/magnetometer/mag_cal.c \
-	os/algos/time_sync.c
-
 # Hall effect sensor driver
 SRCS_os += os/drivers/hall/hall.c
 
 # Tilt detection
 SRCS_os += os/drivers/tilt_detection/tilt_detection.c
 
-# Fusion algorithm
-SRCS_os += os/algos/fusion.c \
-	os/algos/common/math/mat.c \
-	os/algos/common/math/quat.c \
-	os/algos/common/math/vec.c
-
 $(info included NEONKEY variant)
diff --git a/firmware/variant/nucleo/nucleo.mk b/firmware/variant/nucleo/nucleo.mk
index 2e09dae..eddd644 100644
--- a/firmware/variant/nucleo/nucleo.mk
+++ b/firmware/variant/nucleo/nucleo.mk
@@ -29,29 +29,31 @@
 #board configuration shims
 SRCS_os += $(VARIANT_PATH)/src/os/i2c.c
 SRCS_os += $(VARIANT_PATH)/src/os/spi.c
-
 #keys
 
+SRCS_os += \
+    os/algos/calibration/magnetometer/mag_cal/mag_cal.c \
+    os/algos/calibration/diversity_checker/diversity_checker.c \
+    os/algos/common/math/kasa.c \
+    os/algos/common/math/mat.c \
+    os/algos/common/math/quat.c \
+    os/algos/common/math/vec.c \
+    os/algos/fusion.c \
+    os/algos/time_sync.c
+
 #drivers
+# BMI160 accel and gyro, BMM150 mag drivers
+FLAGS += -DUSE_BMM150 -DMAG_SLAVE_PRESENT
+SRCS_os += \
+    os/drivers/bosch_bmi160/bosch_bmi160.c \
+    os/drivers/bosch_bmi160/bosch_bmm150_slave.c \
+
 # AMS ALS/prox
 SRCS_os += os/drivers/ams_tmd2772/ams_tmd2772.c
 
 # ROHM ALS/prox
 SRCS_os += os/drivers/rohm_rpr0521/rohm_rpr0521.c
 
-# Fusion algorithm
-SRCS_os += os/algos/fusion.c \
-	os/algos/common/math/mat.c \
-	os/algos/common/math/quat.c \
-	os/algos/common/math/vec.c
-
-# BMI160 accel and gyro, BMM150 mag drivers
-FLAGS += -DUSE_BMM150 -DMAG_SLAVE_PRESENT
-SRCS_os += os/drivers/bosch_bmi160/bosch_bmi160.c \
-	os/drivers/bosch_bmi160/bosch_bmm150_slave.c \
-	os/algos/calibration/magnetometer/mag_cal.c \
-	os/algos/time_sync.c
-
 # Orientation sensor driver
 SRCS_os += os/drivers/orientation/orientation.c