Файлы, которые лежат тут:

- basics.h: копия edg_6.4/lib_src/basics.h
- decode.c: копия edg_6.4/util/decode.c
- decode.h: копия edg_6.4/util/decode.h
- defines.h: сделан ручками

Файл decode.c по замыслу edg можно компилировать в двух вариантах: с включенным
макросом COMPILE_DECODE_FOR_LIB_SRC (для включения в библиотеку libcxa) и без
макроса (для включения в утилиту edg_decode). Нам нужен первый вариант, поэтому
мы компилируем с опцией -DCOMPILE_DECODE_FOR_LIB_SRC=1 (см. файлы Makefile.in
и Makefile.am на один каталог выше). Внутри decode.c файл basics.h подключается
в двух местах, разведённых по макросу COMPILE_DECODE_FOR_LIB_SRC. Нам нужно то
место, где basics.h берётся из edg'шного lib_src. Поэтому файл basics.h у нас
взят именно из lib_src

Далее происходит что-то не понятное. В таком варианте никаких других include'ов
не должно подцепляться, кроме defines.h. В исходниках edg из defines.h ничего
лишнего не подключается. Однако в decode.c есть, например, использование
макроса USING_NAMESPACE_EDG, который описан в файле basics.h (конкретно в том
файле, который в edg'шном каталоге src, но не lib_src). В итоге не понятно, как
в decode.c должна попасть настройка макроса USING_NAMESPACE_EDG в правильном
варианте сборки. Для некоторых других настроек та же самая проблема. Поэтому
недостающие настройки мы вручную вписываем в файл defines.h
