Для перехода в другую папку используется команда cd, аналогичная используемой в командной строке Windows. Аргументом команды является путь к папке относительно текущего каталога. Для обозначения каталога, содержащего текущий каталог (т.е. родительского) используется “..” (две точки).
Например:
Команда “CD Folder” перейдет в подкаталог Folder текущего каталога
Команда “CD..” перейдет в родительский каталог текущего каталога
Команда “CD..\Sibling” перейдет в “соседний” каталог (т.е. расположенный в родительском каталоге для текущего).
Папка в которой находятся файлы с исходным кодом драйвера также должна содержать два файла: makefile и sources.
Makefile является стандартным, и модифицировать его не рекомендуется. Он ссылается на другой файл makefile.def, находящийся в одной из директорий DDK и содержащий настройки для сборки драйверов.
Пример файла makefile:
# # DO NOT EDIT THIS FILE!!! Edit.\sources. if you want to add a new source # file to this component. This file merely indirects to the real make file # that is shared by all the driver components of the Windows NT DDK # !INCLUDE $(NTMAKEENV)\makefile.def |
Source файл служит для указания компилируемых файлов и для задания некоторых настроек.
|
|
Пример файла source:
# Имя файла драйвера без расширения TARGETNAME=Mydriver # Путь к файлу драйвера из текущей директории # допускается использование специальных макросов, например $(BASEDIR), # по умолчанию указывает на корневую директорию DDK TARGETPATH=Path # Тип выходного файл: драйвер TARGETTYPE=DRIVER # Список дополнительных библиотек # разделитель – “ ” (пробел), переход на новую строку - "\" (обратный слеш) TARGETLIBS=Library1.lib Library2.lib> \ Library3.lib # Список имен компилируемых файлов # разделитель - " ", переход на новую строку - "\" SOURCES=File1. c File2.c \ File3.c |
Символ “#” используется для комментирования.
Фактически файл задает значения некоторым переменным. Следует отметить, что между именем переменной и знаком равно не следует ставить пробел.
Основные требуемые имена переменных и их смысл указаны в примере.
Приведенных примеров файлов достаточно для компилирования Legacy драйвера режима ядра (состоящего из 3-х исходных файлов и включающего три библиотеки). (Для драйвера WDM, к примеру, требуется явное указание типа).
Следует упомянуть о возможности использования еще одного типа файлов – dirs.
Данные файлы служат для указания своих подкаталогов, в которых нужно произвести компиляцию. Таким образом, можно запускать компиляцию в директории с файлом dirs, при этом последовательно будет произведен поиск dirs-файлов во всех подкаталогах и т.д. до обнаружения source-файлов, которые укажут файлы, требующие компиляции.
Пример dir-файла
DIRS=SubFolder1 SubFolder2 \ SubFolder3 |
Полную информацию о средах сборки можно найти в DDK Documentation:
Widows DDK->Driver Developments Tools->The Build Utility.