Backend Compile Error

When compiling the backends, I get an error:

`make[2]: Entering directory '/home/farside268/backends/backend'
/bin/bash ../libtool --silent  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include/sane  -D_REENTRANT -DPATH_SANE_CONFIG_DIR=/etc/sane.d 	  -DPATH_SANE_DATA_DIR=/usr/share 	  -DPATH_SANE_LOCK_DIR=/var/lock/sane 	  -DV_MAJOR=1 -DV_MINOR=0 -I. -I. -I../include -I../include  -DLIBDIR="\"/usr/lib/x86_64-linux-gnu/sane\""  -DBACKEND_NAME=pixma  -Wall -Wextra -pedantic -g -O2 -MT pixma/libpixma_la-pixma_common.lo -MD -MP -MF pixma/.deps/libpixma_la-pixma_common.Tpo -c -o pixma/libpixma_la-pixma_common.lo `test -f 'pixma/pixma_common.c' || echo './'`pixma/pixma_common.c
pixma/pixma_common.c:60:3: error: #error "The pixma backend requires libxml2"
   60 | # error "The pixma backend requires libxml2"
      |   ^~~~~
pixma/pixma_common.c: In function ‘pixma_parse_xml_response’:
pixma/pixma_common.c:1266:3: error: unknown type name ‘xmlDoc’
 1266 |   xmlDoc *doc = NULL;
      |   ^~~~~~
pixma/pixma_common.c:1267:3: error: unknown type name ‘xmlNode’
 1267 |   xmlNode *node = NULL;
      |   ^~~~~~~
pixma/pixma_common.c:1268:3: error: unknown type name ‘xmlChar’
 1268 |   xmlChar *content = NULL;
      |   ^~~~~~~
pixma/pixma_common.c:1270:9: warning: implicit declaration of function ‘xmlReadMemory’ [-Wimplicit-function-declaration]
 1270 |   doc = xmlReadMemory(xml_message, strlen(xml_message), "mem:device-resp.xml", NULL, 0);
      |         ^~~~~~~~~~~~~
pixma/pixma_common.c:1270:7: warning: assignment to ‘int *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
 1270 |   doc = xmlReadMemory(xml_message, strlen(xml_message), "mem:device-resp.xml", NULL, 0);
      |       ^
pixma/pixma_common.c:1277:10: warning: implicit declaration of function ‘xmlDocGetRootElement’ [-Wimplicit-function-declaration]
 1277 |   node = xmlDocGetRootElement(doc);
      |          ^~~~~~~~~~~~~~~~~~~~
pixma/pixma_common.c:1277:8: warning: assignment to ‘int *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
 1277 |   node = xmlDocGetRootElement(doc);
      |        ^
pixma/pixma_common.c:1284:27: error: request for member ‘next’ in something not a structure or union
 1284 |   for (; node; node = node->next) {
      |                           ^~
pixma/pixma_common.c:1285:33: error: request for member ‘name’ in something not a structure or union
 1285 |     if (strcmp((const char*)node->name, "cmd") == 0)
      |                                 ^~
pixma/pixma_common.c:1294:19: error: request for member ‘children’ in something not a structure or union
 1294 |   for (node = node->children; node; node = node->next) {
      |                   ^~
pixma/pixma_common.c:1294:48: error: request for member ‘next’ in something not a structure or union
 1294 |   for (node = node->children; node; node = node->next) {
      |                                                ^~
pixma/pixma_common.c:1295:33: error: request for member ‘name’ in something not a structure or union
 1295 |     if (strcmp((const char*)node->name, "contents") == 0)
      |                                 ^~
pixma/pixma_common.c:1304:19: error: request for member ‘children’ in something not a structure or union
 1304 |   for (node = node->children; node; node = node->next) {
      |                   ^~
pixma/pixma_common.c:1304:48: error: request for member ‘next’ in something not a structure or union
 1304 |   for (node = node->children; node; node = node->next) {
      |                                                ^~
pixma/pixma_common.c:1305:33: error: request for member ‘name’ in something not a structure or union
 1305 |     if (strcmp((const char*)node->name, "param_set") == 0)
      |                                 ^~
pixma/pixma_common.c:1314:19: error: request for member ‘children’ in something not a structure or union
 1314 |   for (node = node->children; node; node = node->next)
      |                   ^~
pixma/pixma_common.c:1314:48: error: request for member ‘next’ in something not a structure or union
 1314 |   for (node = node->children; node; node = node->next)
      |                                                ^~
pixma/pixma_common.c:1316:33: error: request for member ‘name’ in something not a structure or union
 1316 |     if (strcmp((const char*)node->name, "response") == 0) {
      |                                 ^~
pixma/pixma_common.c:1317:17: warning: implicit declaration of function ‘xmlNodeGetContent’ [-Wimplicit-function-declaration]
 1317 |       content = xmlNodeGetContent(node);
      |                 ^~~~~~~~~~~~~~~~~
pixma/pixma_common.c:1317:15: warning: assignment to ‘int *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
 1317 |       content = xmlNodeGetContent(node);
      |               ^
pixma/pixma_common.c:1322:7: warning: implicit declaration of function ‘xmlFree’ [-Wimplicit-function-declaration]
 1322 |       xmlFree(content);
      |       ^~~~~~~
pixma/pixma_common.c:1323:40: error: request for member ‘name’ in something not a structure or union
 1323 |     } else if (strcmp((const char*)node->name, "response_detail") == 0) {
      |                                        ^~
pixma/pixma_common.c:1324:15: warning: assignment to ‘int *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
 1324 |       content = xmlNodeGetContent(node);
      |               ^
pixma/pixma_common.c:1334:3: warning: implicit declaration of function ‘xmlFreeDoc’ [-Wimplicit-function-declaration]
 1334 |   xmlFreeDoc(doc);
      |   ^~~~~~~~~~
make[2]: *** [Makefile:5238: pixma/libpixma_la-pixma_common.lo] Error 1
make[2]: Leaving directory '/home/farside268/backends/backend'
make[1]: *** [Makefile:3327: all] Error 2
make[1]: Leaving directory '/home/farside268/backends/backend'
make: *** [Makefile:591: all-recursive] Error 1
`

Any ideas?

Edited by Ralph Little