Es así, pero vaya forma de complicarse las cosas con llamar mal las cosas ¿se entiende? NO, igual que el código
Has negado la directiva de compilación y eso te conlleva negar todos los "ifdef", además tienes un sinsentido (al leer el código): "{$IFNDEF NOTMAIN} ,main{$ENDIF};"
o sea, que si no está definida el NOTMain, entonces incluyo la unidad main... uff... traduce tío, traduce...
Hazlo mejor al revés definiendo la directiva de compilación así:
{DEFINE MAIN}
y el código queda: "{$IFDEF MAIN} ,main{$ENDIF};"
que leído resulta: "Si está definida la directiva MAIN, entonces incluye la unidad main.pas";más legible ¿no?
Saludos y recordad, las prisas no son buenas consejeras jejeje!