c89 ist normalerweise auch nur gcc mit -ansi aufgerufen (oder allgemeiner halt der ortsansässige C-Compiler im strengen C89-Modus). Falls du nur diese beiden unterscheiden willst: gcc definiert das Makro __STRICT_ANSI__ genau dann, wenn mit -ansi kompiliert wird. Vielleicht reicht es ja für deine Zwecke, das zu testen.