Вроде примитивнейший вопрос - но не могу ничего найти. Есть ли у утилиты build из DDK аналог опции -f как у make? То есть, нужна возможность заставить работать build с различными файлами sources.
gektor Мое корявое решение данной проблемы - несколько файлов sources. Компиляция производится с помощью bat скриптов: Код (Text): rem build_xp.bat setenv.bat ... x86 WXP copy sources_xp sources build Потенциально, можно попробовать писать makfile для компляции в ddk.
Кстати, поднял старуй код, посмотрел его еще раз. К компиляции с bat файлами, копирующими sorces я пришел намучавшись с макропроцессором build. Например, я попробовал сдалеть что то типа: Код (Text): !IF "$(DDK_TARGET_OS)"=="WinXP" !INCLUDE sources_1 !ELSE !INCLUDE sources_2 !ENDIF Опытным путем проверил, что "$(DDK_TARGET_OS)" действительно равен "WinXP". В файле sources_1 есть строчка SOURCES = 1.cpp, а в sources_2 есть строчка SOURCES = 2.cpp. При компиляции в XP среде, build все равно упорно ищет файл 2.cpp. Нет ли между !IF и !INCLUDE какой "заковыки"?
Сконвертировать вряд ли, но можно makefile руками написать и среду настроить, чтобы с build не возиться. Некоторые так делают.
я через nmake из WDK собираю. katrus Есть source.inc где необходимые веши разруливаются по типу. Код (Text): !if $(_NT_TARGET_VERSION) == $(_NT_TARGET_VERSION_VISTA) C_DEFINES=$(C_DEFINES) -DBLABLA=1 !ELSE !IF $(_NT_TARGET_VERSION) == $(_NT_TARGET_VERSION_WINXP) C_DEFINES=$(C_DEFINES) -DBLABLA=0 !else !error !!!-> NOT SUPPORTED OS VERSION <-!!! !ENDIF !ENDIF Попробуй разрулить TARGETTYPE и все что тебе нужно через него.
JivotnoE Пробовал. Судя по всему между условной компиляцией (!IF !ELSE !END) и включением файлов (SOURCES=) есть конфликт. Банально не работает.