Применение команды make к файлам системы контроля исходного кода
Команды и файлы SCCS применяются для управления доступом к файлу и отслеживания изменений, внесенных в файл.
Файл SCCS - это любой текстовый файл, который применяется командами SCCS. При обработке файлов SCCS командами, отличными от SCCS, эти файлы могут быть повреждены.
У всех файлов SCCS есть префикс s., отличающий их от обычных текстовых файлов. Команда make не распознает ссылки на префиксы имен файлов. Из-за этого в файле описания команды make нельзя ссылаться на файлы SCCS напрямую. Для представления файлов SCCS команда make использует расширение ~ (тильду). Следовательно, .c~.o - это имя правила, которое преобразует файл SCCS, содержащий исходный код на языке C, в объектный файл. Ниже приведено внутреннее представление этого правила:
.c~.o:
$(GET) $(GFLAGS) -p $< >$*.c
$(CC) $(CFLAGS) -c $*.c
-rm -f $*.cДобавление символа ~ (тильды) к расширению имени файла приводит к тому, что вместо обычного файла будет найден файл SCCS с фактическим расширением (включающим все символы, стоящие между точкой (.) и тильдой). С помощью макроопределения GFLAGS в SCCS передаются флаги, задающие версию файла SCCS.
Команда make распознает следующие расширения имен SCCS:
| Суффикс | Описание |
|---|---|
| .C\~ | Исходный файл C++ |
| .c~ | Исходный файл c |
| .y~ | Исходная грамматика yacc |
| .s~ | Исходный файл ассемблера |
| .sh~ | Файл команд оболочки |
| .h~ | Заголовочный файл |
| .f~ | Файл на Фортране |
| .l~ | Исходная грамматика lex |
В команде make применяются следующие правила преобразования файлов SCCS:
- .C\~.a:
- .C\~.c:
- .C\~.o:
- .c~:
- .c~.a:
- .c~.c:
- .c~.o:
- .f~:
- .f~.a:
- .f~.o:
- .f~.f:
- .h~.h:
- .l~.o:
- .s~.a:
- .sh~:
- .s~.o:
- .y~.c:
- .y~.o: