-dump.o: CFLAGS = -std=gnu99 -Wall -Werror -g -D_GNU_SOURCE=1
-dump2.o: CFLAGS = -std=gnu99 -Wall -Werror -g -D_GNU_SOURCE=1 -Wno-unused
-all: dump dump2
+CFLAGS := -std=gnu99 -Wall -Werror -g -D_GNU_SOURCE=1
+base_cflags := $(CFLAGS)
+base_ldflags := $(LDFLAGS)
+parse-xml.o: CFLAGS := $(shell pkg-config --cflags libxml-2.0) $(base_cflags)
+parse-xml: LDFLAGS := $(shell pkg-config --libs libxml-2.0) $(LDFLAGS)
+dump2.o: CFLAGS := $(base_cflags) -Wno-unused
+
+all: dump dump2 parse-xml