!defined(X) && $(A) != $(B) parsed as (!defined(X) && $(A)) != $(B) and not as !defined(X) && ($(A) != $(B)) Probably it should be fixed in make
!defined(X) && $(A) != $(B) parsed as (!defined(X) && $(A)) != $(B) and not as !defined(X) && ($(A) != $(B)) Probably it should be fixed in make