crystal run делает build в /usr/tmp и потом запускает. так что макросами не уверен что возможно, а в рантайме - посмотреть в какой папке находится исполняемый файл.
почему-то часто замечаю что как-то не корректно срабатывает && в if. Почему он предполагает что может получится UNIXAdress когда я написал что он не нужен