|
|
|
|
Использование средства MAKE фирмы "Майкрософт"
Утилита сопровождения программы фирмы "Майкрософт", называемая MAKE, может использоваться с целью значительного повышения
уровня автоматизации разработки программ.
Утилита MAKE используется для автоматического обновления готового к выполнению файла всякий раз, когда вносятся изменения в
один или более ее исходных объектных файлов; кроме того с помощью
этой утилиты можно обновлять любой файл всякий раз, когда вносятся изменения в другие смежные файлы.
Чтобы использовать утилиту MAKE, необходимо создать "файл
описаний", содержащий команды для утилиты MAKE по построению данного проекта.
К примеру, если вы хотите создать с помощью утилиты MAKE
программу, называемую TEST1.EXE, файл описания утилиты MAKE может
содержать операторы, показанные в листинге A-4.
Листинг A-4. Пример файла описания утилиты MAKE
----------------------------------------------------------------
# Стандартная строка команды с текстом макроопределений
f1=test1 # имя файла, подлежащего созданию
msm=masm /S /P /V /L # переключатели (операторы выбора)
# строки команд макроассемблера MASM
lnk=link /CP:1 /I # переключатели (операторы выбора)
# строки команд редактора связей LINK
#
# Перечень файлов ASM
$(f1).obj: $(f1).asm
$(msm) $(f1).asm;
#
$(f1).exe: $(f1).obj
$(lnk) $(f1).obj,$(f1).exe;
DEL $(f1).obj
----------------------------------------------------------------
|
Файл описания утилиты MAKE обычно имеет то же имя, что и готовый к выполнению файл, но без расширения. Таким образом, если
готовый к выполнению файл называется ТЕSТ1.EXE, то файл описания
утилиты MAKE, используемый для создания программы ТЕSТ1.EXE, называется просто ТЕSТ1.
Чтобы создать или обновить программу ТЕSТ1.EXE, просто введите "MAKE ТЕSТ1".
Файл описания утилиты MAKE, показанный в листинге A-4, имеет
следующие характеристики:
- Любой текст, который начинается с символа #, является комментарием и игнорируется утилитой MAKE в процессе обработки;
- "Техt=" представляет макротекст, который присваивается
строке с текстом, что позволяет отображать этот текст в
символическом виде по всему файлу описания. Пример, приведенный в листинге A-4, показывает, что макротексту присваивается значение f1 в качестве имени файла программ, который должен обрабатываться. Далее значение f1 используется
на протяжении остального файла описания с целью представления данного файла программ в виде $(f1). Если Вам необходимо изменить имя данного файла программ, оно меняется
только в одном месте, где значение f1 впервые присваивается;
- $(f1).OBJ - это имя первого целевого файла, называемого
"выходным файлом", а $(f1).ASM (который в данном примере в
"test1.ASM") - это имя исходного файла, называемого "входным файлом". Входной файл - это файл, который требуется
для создания выходного файла. Выходной файл всегда вводится первым, за ним следует двоеточие, за которым следует
один или более входных файлов, требуемых для создания выходного файла. Если выходной файл отсутствует или имеет
отметку о времени и дате, более раннюю чем, связанный с
ним входной файл(ы), то следующая строка в файле описания
выполняется как команда операционной системы MS-DOS (в
данном примере "$(msm)$(f1);", которая будет оттранслирована в "masm /s/p/v/l/test1;".
Если данный входной файл не существует, то средство
MAKE останавливает обработку в этой точке и выводит сообщение об ошибке;
- $(f1).EXE - имя конечного выходного файла, а $(f1).OBJ -
имя требуемого входного файла. И снова, если файл $(f1).EXE
(который транслируется в "test1.EXE") не существует или если
он имеет отметку о времени и дате, более раннюю по сравнению
с файлом $(f1).OBJ, то следующая строка выполняется как команда операционной системы MS-DOS $(lnk)$(f1);, которая
транслируется в "link/CP:1/I test1; в данном примере).
Если файл $(f1).OBJ не существует, то средство MAKE
останавливает обработку и выводит сообщение об ошибке;
- Файл описания, может содержать любую команду операционной
системы MS-DOS. В конце примера показано, как по команде
DEL$(f1).obj файл $(f1).obj (который транслируется в
/test1.obj) должен быть удален, но только если процесс редактирования связей был успешным.
Средство MAKE способно отреагировать на коды ошибок, возвращаемые командами операционной системы MS-DOS в файле описания.
Например, если макроассемблер MASM выдал код возврата отличный от
"0" (в данном примере $(msm) $(f1).asm;), средство MAKE остановит
обработку файла описания в этой точке и выведет на экран сообщение об ошибке.
Если макроассемблер успешно проводит трансляцию данного файла, однако редактор связей LINK возвратил ошибку, то команда удаления объектного файла (DEL$(f1).obj) не будет обработана.
Средство MAKE является отличным средством для разработки
проектов программ, особенно больших программных проектов. Файл
описания средства MAKE может содержать правила для многочисленных
исходных файлов, а также объектных файлов; кроме того, он может
описать использование нескольких различных ассемблеров, компиляторов, редакторов связей и других средств, а также и нескольких
примеров с одинаковыми средствами.
В случае создания резервных копий или архивизации всех файлов больших проектов файл описания средства MAKE может быть также
помещен в архив с тем, чтобы в случае перепостроения проекта его
легко можно было осуществить простым выполнением средства MAKE и
указанием файла описания.
|
|