add preprocess macro