Сделать именно это: нет, невозможно. Определения макросов препроцессора не могут содержать директивы препроцессора.
Сделать "эквивалент, который работает также" (sic): никто не знает ответа на этот вопрос, потому что вы не удосужились внятно объяснить, что вы пытаетесь сделать этим загадочным набором лексем. Ключевым моментом здесь является характер условия
arg == sd
. Это значение времени компиляции?
В любом случае, не ясно, чем вас не устроило обычное
#define somemacro(arg) if ((arg) == (sd))\
printf ("some text 1");\
else\
printf ("some text 2");