generate if_def automatically