if only ifdefs