Build log
host
scenic_driver_nerves_rpi 0.10.1 · fail · run scenic_driver_nerves_rpi-0.10.1-1791095742937
340 of 340 lines
1Resolving Hex dependencies...2Resolution completed in 0.262s3Unchanged:4 circular_buffer 1.1.05 elixir_make 0.7.86 ex_image_info 0.2.77 font_metrics 0.5.28 interactive_cmd 0.1.49 nerves 2.0.0-pre.210 nerves_discovery 0.1.511 nerves_logging 0.2.412 nerves_runtime 0.13.1313 nerves_system_bbb 2.30.214 nerves_system_br 1.34.415 nerves_system_mangopi_mq_pro 0.17.216 nerves_system_qemu_aarch64 0.4.217 nerves_system_rpi0 2.1.218 nerves_system_rpi4 2.1.219 nerves_system_rpi5 2.1.220 nerves_system_trellis 0.5.021 nerves_system_x86_64 1.34.222 nerves_toolchain_aarch64_nerves_linux_gnu 15.3.123 nerves_toolchain_armv6_nerves_linux_gnueabihf 15.3.124 nerves_toolchain_armv7_nerves_linux_gnueabihf 15.3.125 nerves_toolchain_riscv64_nerves_linux_gnu 15.3.126 nerves_toolchain_x86_64_nerves_linux_musl 15.3.127 nerves_uevent 0.1.728 nimble_options 1.1.129 property_table 0.3.430 ring_logger 0.11.731 scenic 0.11.232 scenic_driver_nerves_rpi 0.10.133 tablet 0.3.334 toolshed 0.5.035 truetype_metrics 0.6.136 uboot_env 1.0.237All dependencies have been fetched38==> scenic_driver_nerves_rpi39mkdir -p /work/proj/_build/host/lib/scenic_driver_nerves_rpi/priv40cc -O2 -Wall -Wextra -Wno-unused-parameter -pedantic -std=gnu99 -o /work/proj/_build/host/lib/scenic_driver_nerves_rpi/priv/scenic_driver_nerves_rpi c_src/main.c c_src/comms.c c_src/nanovg/nanovg.c c_src/render_script.c c_src/tx.c c_src/utils.c -lGLESv2 -lEGL -lm -lbcm_host -lvchostif41rsync -rupE fonts /work/proj/_build/host/lib/scenic_driver_nerves_rpi/priv/fonts42c_src/main.c:16:10: fatal error: bcm_host.h: No such file or directory43 16 | #include <bcm_host.h>44 | ^~~~~~~~~~~~45compilation terminated.46c_src/comms.c:18:10: fatal error: GLES2/gl2.h: No such file or directory47 18 | #include <GLES2/gl2.h>48 | ^~~~~~~~~~~~~49compilation terminated.50In file included from c_src/nanovg/nanovg.c:24:51c_src/nanovg/nanovg.h:40:18: warning: ISO C99 doesn’t support unnamed structs/unions [-Wpedantic]52 40 | };53 | ^54c_src/nanovg/nanovg.h:41:10: warning: ISO C99 doesn’t support unnamed structs/unions [-Wpedantic]55 41 | };56 | ^57c_src/nanovg/nanovg.h:35:8: warning: struct has no named members [-Wpedantic]58 35 | struct NVGcolor {59 | ^~~~~~~~60In file included from c_src/nanovg/nanovg.c:26:61c_src/nanovg/fontstash.h: In function ‘fonsAddFont’:62c_src/nanovg/fontstash.h:911:20: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]63 911 | if (readed != dataSize) goto error;64 | ^~65In file included from c_src/nanovg/nanovg.c:28:66c_src/nanovg/stb_image.h: In function ‘stbi__convert_format’:67c_src/nanovg/stb_image.h:1359:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]68 1359 | #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)69 | ^~~70c_src/nanovg/stb_image.h:1363:10: note: in expansion of macro ‘CASE’71 1363 | CASE(1,2) dest[0]=src[0], dest[1]=255; break;72 | ^~~~73c_src/nanovg/stb_image.h:1363:49: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’74 1363 | CASE(1,2) dest[0]=src[0], dest[1]=255; break;75 | ^~~~~76c_src/nanovg/stb_image.h:1359:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]77 1359 | #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)78 | ^~~79c_src/nanovg/stb_image.h:1364:10: note: in expansion of macro ‘CASE’80 1364 | CASE(1,3) dest[0]=dest[1]=dest[2]=src[0]; break;81 | ^~~~82c_src/nanovg/stb_image.h:1364:52: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’83 1364 | CASE(1,3) dest[0]=dest[1]=dest[2]=src[0]; break;84 | ^~~~~85c_src/nanovg/stb_image.h:1359:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]86 1359 | #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)87 | ^~~88c_src/nanovg/stb_image.h:1365:10: note: in expansion of macro ‘CASE’89 1365 | CASE(1,4) dest[0]=dest[1]=dest[2]=src[0], dest[3]=255; break;90 | ^~~~91c_src/nanovg/stb_image.h:1365:65: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’92 1365 | CASE(1,4) dest[0]=dest[1]=dest[2]=src[0], dest[3]=255; break;93 | ^~~~~94c_src/nanovg/stb_image.h:1359:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]95 1359 | #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)96 | ^~~97c_src/nanovg/stb_image.h:1366:10: note: in expansion of macro ‘CASE’98 1366 | CASE(2,1) dest[0]=src[0]; break;99 | ^~~~100c_src/nanovg/stb_image.h:1366:36: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’101 1366 | CASE(2,1) dest[0]=src[0]; break;102 | ^~~~~103c_src/nanovg/stb_image.h:1359:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]104 1359 | #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)105 | ^~~106c_src/nanovg/stb_image.h:1367:10: note: in expansion of macro ‘CASE’107 1367 | CASE(2,3) dest[0]=dest[1]=dest[2]=src[0]; break;108 | ^~~~109c_src/nanovg/stb_image.h:1367:52: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’110 1367 | CASE(2,3) dest[0]=dest[1]=dest[2]=src[0]; break;111 | ^~~~~112c_src/nanovg/stb_image.h:1359:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]113 1359 | #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)114 | ^~~115c_src/nanovg/stb_image.h:1368:10: note: in expansion of macro ‘CASE’116 1368 | CASE(2,4) dest[0]=dest[1]=dest[2]=src[0], dest[3]=src[1]; break;117 | ^~~~118c_src/nanovg/stb_image.h:1368:68: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’119 1368 | CASE(2,4) dest[0]=dest[1]=dest[2]=src[0], dest[3]=src[1]; break;120 | ^~~~~121c_src/nanovg/stb_image.h:1359:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]122 1359 | #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)123 | ^~~124c_src/nanovg/stb_image.h:1369:10: note: in expansion of macro ‘CASE’125 1369 | CASE(3,4) dest[0]=src[0],dest[1]=src[1],dest[2]=src[2],dest[3]=255; break;126 | ^~~~127c_src/nanovg/stb_image.h:1369:78: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’128 1369 | CASE(3,4) dest[0]=src[0],dest[1]=src[1],dest[2]=src[2],dest[3]=255; break;129 | ^~~~~130c_src/nanovg/stb_image.h:1359:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]131 1359 | #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)132 | ^~~133c_src/nanovg/stb_image.h:1370:10: note: in expansion of macro ‘CASE’134 1370 | CASE(3,1) dest[0]=stbi__compute_y(src[0],src[1],src[2]); break;135 | ^~~~136c_src/nanovg/stb_image.h:1370:67: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’137 1370 | CASE(3,1) dest[0]=stbi__compute_y(src[0],src[1],src[2]); break;138 | ^~~~~139c_src/nanovg/stb_image.h:1359:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]140 1359 | #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)141 | ^~~142c_src/nanovg/stb_image.h:1371:10: note: in expansion of macro ‘CASE’143 1371 | CASE(3,2) dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = 255; break;144 | ^~~~145c_src/nanovg/stb_image.h:1371:82: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’146 1371 | CASE(3,2) dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = 255; break;147 | ^~~~~148c_src/nanovg/stb_image.h:1359:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]149 1359 | #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)150 | ^~~151c_src/nanovg/stb_image.h:1372:10: note: in expansion of macro ‘CASE’152 1372 | CASE(4,1) dest[0]=stbi__compute_y(src[0],src[1],src[2]); break;153 | ^~~~154c_src/nanovg/stb_image.h:1372:67: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’155 1372 | CASE(4,1) dest[0]=stbi__compute_y(src[0],src[1],src[2]); break;156 | ^~~~~157c_src/nanovg/stb_image.h:1359:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]158 1359 | #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)159 | ^~~160c_src/nanovg/stb_image.h:1373:10: note: in expansion of macro ‘CASE’161 1373 | CASE(4,2) dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = src[3]; break;162 | ^~~~163c_src/nanovg/stb_image.h:1373:85: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’164 1373 | CASE(4,2) dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = src[3]; break;165 | ^~~~~166c_src/nanovg/stb_image.h:1359:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]167 1359 | #define CASE(a,b) case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)168 | ^~~169c_src/nanovg/stb_image.h:1374:10: note: in expansion of macro ‘CASE’170 1374 | CASE(4,3) dest[0]=src[0],dest[1]=src[1],dest[2]=src[2]; break;171 | ^~~~172c_src/nanovg/stb_image.h:1374:66: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’173 1374 | CASE(4,3) dest[0]=src[0],dest[1]=src[1],dest[2]=src[2]; break;174 | ^~~~~175c_src/nanovg/stb_image.h: In function ‘stbi__build_fast_ac’:176c_src/nanovg/stb_image.h:1578:33: warning: left shift of negative value [-Wshift-negative-value]177 1578 | if (k < m) k += (-1 << magbits) + 1;178 | ^~179c_src/nanovg/stb_image.h: In function ‘stbi__create_png_image_raw’:180c_src/nanovg/stb_image.h:4049:17: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]181 4049 | for (k=0; k < nk; ++k)182 | ^~~183c_src/nanovg/stb_image.h:4053:13: note: in expansion of macro ‘CASE’184 4053 | CASE(STBI__F_sub) cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); break;185 | ^~~~186c_src/nanovg/stb_image.h:4053:95: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’187 4053 | CASE(STBI__F_sub) cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); break;188 | ^~~~~189c_src/nanovg/stb_image.h:4049:17: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]190 4049 | for (k=0; k < nk; ++k)191 | ^~~192c_src/nanovg/stb_image.h:4054:13: note: in expansion of macro ‘CASE’193 4054 | CASE(STBI__F_up) cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break;194 | ^~~~195c_src/nanovg/stb_image.h:4054:84: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’196 4054 | CASE(STBI__F_up) cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break;197 | ^~~~~198c_src/nanovg/stb_image.h:4049:17: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]199 4049 | for (k=0; k < nk; ++k)200 | ^~~201c_src/nanovg/stb_image.h:4055:13: note: in expansion of macro ‘CASE’202 4055 | CASE(STBI__F_avg) cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); break;203 | ^~~~204c_src/nanovg/stb_image.h:4055:113: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’205 4055 | CASE(STBI__F_avg) cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); break;206 | ^~~~~207c_src/nanovg/stb_image.h:4049:17: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]208 4049 | for (k=0; k < nk; ++k)209 | ^~~210c_src/nanovg/stb_image.h:4056:13: note: in expansion of macro ‘CASE’211 4056 | CASE(STBI__F_paeth) cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); break;212 | ^~~~213c_src/nanovg/stb_image.h:4056:139: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’214 4056 | CASE(STBI__F_paeth) cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); break;215 | ^~~~~216c_src/nanovg/stb_image.h:4049:17: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]217 4049 | for (k=0; k < nk; ++k)218 | ^~~219c_src/nanovg/stb_image.h:4057:13: note: in expansion of macro ‘CASE’220 4057 | CASE(STBI__F_avg_first) cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); break;221 | ^~~~222c_src/nanovg/stb_image.h:4057:102: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’223 4057 | CASE(STBI__F_avg_first) cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); break;224 | ^~~~~225c_src/nanovg/stb_image.h:4049:17: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]226 4049 | for (k=0; k < nk; ++k)227 | ^~~228c_src/nanovg/stb_image.h:4058:13: note: in expansion of macro ‘CASE’229 4058 | CASE(STBI__F_paeth_first) cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); break;230 | ^~~~231c_src/nanovg/stb_image.h:4058:112: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’232 4058 | CASE(STBI__F_paeth_first) cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); break;233 | ^~~~~234c_src/nanovg/stb_image.h:4067:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]235 4067 | for (k=0; k < img_n; ++k)236 | ^~~237c_src/nanovg/stb_image.h:4069:13: note: in expansion of macro ‘CASE’238 4069 | CASE(STBI__F_none) cur[k] = raw[k]; break;239 | ^~~~240c_src/nanovg/stb_image.h:4069:57: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’241 4069 | CASE(STBI__F_none) cur[k] = raw[k]; break;242 | ^~~~~243c_src/nanovg/stb_image.h:4067:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]244 4067 | for (k=0; k < img_n; ++k)245 | ^~~246c_src/nanovg/stb_image.h:4070:13: note: in expansion of macro ‘CASE’247 4070 | CASE(STBI__F_sub) cur[k] = STBI__BYTECAST(raw[k] + cur[k-out_n]); break;248 | ^~~~249c_src/nanovg/stb_image.h:4070:88: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’250 4070 | CASE(STBI__F_sub) cur[k] = STBI__BYTECAST(raw[k] + cur[k-out_n]); break;251 | ^~~~~252c_src/nanovg/stb_image.h:4067:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]253 4067 | for (k=0; k < img_n; ++k)254 | ^~~255c_src/nanovg/stb_image.h:4071:13: note: in expansion of macro ‘CASE’256 4071 | CASE(STBI__F_up) cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break;257 | ^~~~258c_src/nanovg/stb_image.h:4071:84: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’259 4071 | CASE(STBI__F_up) cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break;260 | ^~~~~261c_src/nanovg/stb_image.h:4067:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]262 4067 | for (k=0; k < img_n; ++k)263 | ^~~264c_src/nanovg/stb_image.h:4072:13: note: in expansion of macro ‘CASE’265 4072 | CASE(STBI__F_avg) cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-out_n])>>1)); break;266 | ^~~~267c_src/nanovg/stb_image.h:4072:106: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’268 4072 | CASE(STBI__F_avg) cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-out_n])>>1)); break;269 | ^~~~~270c_src/nanovg/stb_image.h:4067:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]271 4067 | for (k=0; k < img_n; ++k)272 | ^~~273c_src/nanovg/stb_image.h:4073:13: note: in expansion of macro ‘CASE’274 4073 | CASE(STBI__F_paeth) cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],prior[k],prior[k-out_n])); break;275 | ^~~~276c_src/nanovg/stb_image.h:4073:125: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’277 4073 | CASE(STBI__F_paeth) cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],prior[k],prior[k-out_n])); break;278 | ^~~~~279c_src/nanovg/stb_image.h:4067:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]280 4067 | for (k=0; k < img_n; ++k)281 | ^~~282c_src/nanovg/stb_image.h:4074:13: note: in expansion of macro ‘CASE’283 4074 | CASE(STBI__F_avg_first) cur[k] = STBI__BYTECAST(raw[k] + (cur[k-out_n] >> 1)); break;284 | ^~~~285c_src/nanovg/stb_image.h:4074:95: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’286 4074 | CASE(STBI__F_avg_first) cur[k] = STBI__BYTECAST(raw[k] + (cur[k-out_n] >> 1)); break;287 | ^~~~~288c_src/nanovg/stb_image.h:4067:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]289 4067 | for (k=0; k < img_n; ++k)290 | ^~~291c_src/nanovg/stb_image.h:4075:13: note: in expansion of macro ‘CASE’292 4075 | CASE(STBI__F_paeth_first) cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],0,0)); break;293 | ^~~~294c_src/nanovg/stb_image.h:4075:105: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’295 4075 | CASE(STBI__F_paeth_first) cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],0,0)); break;296 | ^~~~~297c_src/nanovg/stb_image.h: In function ‘stbi__tga_get_comp’:298c_src/nanovg/stb_image.h:4856:18: warning: this statement may fall through [-Wimplicit-fallthrough=]299 4856 | case 16: if(is_grey) return STBI_grey_alpha;300 | ^301c_src/nanovg/stb_image.h:4858:7: note: here302 4858 | case 15: if(is_rgb16) *is_rgb16 = 1;303 | ^~~~304c_src/nanovg/fontstash.h: In function ‘fonsDeleteInternal’:305c_src/nanovg/fontstash.h:1647:9: warning: pointer ‘stash’ used after ‘free’ [-Wuse-after-free]306 1647 | fons__tt_done(stash);307 | ^~~~~~~~~~~~~~~~~~~~308c_src/nanovg/fontstash.h:1646:9: note: call to ‘free’ here309 1646 | free(stash);310 | ^~~~~~~~~~~311In file included from c_src/nanovg/fontstash.h:262:312c_src/nanovg/stb_truetype.h: In function ‘stbtt_GetGlyphSDF’:313c_src/nanovg/stb_truetype.h:4507:53: warning: ‘res[1]’ may be used uninitialized [-Wmaybe-uninitialized]314 4507 | if (num >= 2 && res[1] >= 0.0f && res[1] <= 1.0f) {315 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~316c_src/nanovg/stb_truetype.h:4472:28: note: ‘res[1]’ was declared here317 4472 | float res[3],px,py,t,it;318 | ^~~319c_src/render_script.c:15:12: fatal error: GLES2/gl2.h: No such file or directory320 15 | #include <GLES2/gl2.h>321 | ^~~~~~~~~~~~~322compilation terminated.323c_src/tx.c:14:10: fatal error: GLES2/gl2.h: No such file or directory324 14 | #include <GLES2/gl2.h>325 | ^~~~~~~~~~~~~326compilation terminated.327c_src/utils.c:16:10: fatal error: GLES2/gl2.h: No such file or directory328 16 | #include <GLES2/gl2.h>329 | ^~~~~~~~~~~~~330compilation terminated.331make: *** [Makefile:55: /work/proj/_build/host/lib/scenic_driver_nerves_rpi/priv/scenic_driver_nerves_rpi] Error 1332could not compile dependency :scenic_driver_nerves_rpi, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile scenic_driver_nerves_rpi --force", update it with "mix deps.update scenic_driver_nerves_rpi" or clean it with "mix deps.clean scenic_driver_nerves_rpi"333==> nerves_compatibility_test334** (Mix) Could not compile with "make" (exit status: 2).335You need to have gcc and make installed. If you are using336Ubuntu or any other Debian-based system, install the packages337"build-essential". Also install "erlang-dev" package if not338included in your Erlang/OTP version. If you're on Fedora, run339"dnf group install 'Development Tools'".340