tmp
support variable length macro argument (__VA_ARGS__ and ...)
now has_include, has_include_next never throw error when file not exist
add gcc output cache