11.4.1. Файл Makefile
11.4.1. Файл Makefile
Вместо утилиты Autoconf мы воспользуемся простым файлом Makefile, совместимым с GNU-утилитой Make.[39] Этот файл упростит компиляцию и компоновку сервера и его модулей. Содержимое файла показано в листинге 11.10.
Листинг 11.10. (Makefile) Файл конфигурации сервера
### Конфигурация. ##############################################
# Стандартные параметры компилятора языка С.
CFLAGS = -Wall -g
# Исходные файлы сервера.
SOURCES = server.c module.c common.c main.c
# Соответствующие объектные файлы.
OBJECTS = $(SOURCES:.c=.o)
# Совместно используемые библиотеки серверных модулей.
MODULES = diskfree.so issue.so processes.so time.so
### Правила. ####################################################
# Служебный целевой модуль.
.PHONY: all clean
# Стандартный целевой модуль: компиляция всех файлов.
all: server $(MODULES)
# Удаление всех компонентов.
clean:
rm -f $(OBJECTS) $(MODULES) server
# Главная серверная программа, должна компоноваться с флагами
# -Wl,-export-dynamic, чтобы динамически загружаемые модули могли
# находить в программе символические константы. Подключается также
# библиотека libdl, в которой находятся функции динамической
# загрузки.
server: $(OBJECTS)
$(CC) $(CFLAGS) Wl,-export-dynamic -о $@ $^ -ldl
# Все объектные файлы сервера зависят от файла server.h.
# Используем стандартное правило создания объектных файлов из
# исходных файлов.
$(OBJECTS): server.h
# Правило создания совместно используемых библиотек из
# соответствующих исходных файлов, компилируем с флагом -fPIC и
# генерируем совместно используемый объектный файл.
$(MODULES):
%.so: %.c server.h
$(CC) $(CFLAGS) -fPIC -shared -o $@ $<
В файле Makefile есть следующие целевые модули.
? Модуль all (используется по умолчанию при вызове файла Makefile без аргументов, так как стоит первым) содержит исполняемый файл server и все серверные модули. Последние перечислены в переменной MODULES.
? Модуль clean предназначен для удаления всех скомпилированных компонентов.
? Модуль server подключает к проекту исполняемый файл сервера. Компилируются и компонуются исходные файлы, перечисленные в переменной SOURCES.
? Последнее правило представляет собой шаблон компиляции совместно используемых файлов серверных модулей.
Обратите внимание на то, что исходные файлы серверных модулей компилируются с флагом -fPIC, так как они включаются в совместно используемые библиотеки (см. раздел 2.3.2, "Совместно используемые библиотеки").
Исполняемый файл server компонуется с флагом -Wl,-export-dynamic. Благодаря этому файл будет экспортировать свои символические константы, что позволит динамически загружаемым модулям ссылаться на функции, находящиеся в файле common.c.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Файл
Файл Файл – это логически обособленная, именованная совокупность данных (текстовых, графических, звуковых, видеоданных), которая может храниться на различных носителях информации (жестком диске, компакт-диске, «флэшке», дискете) и рассматривается при хранении и
3.1.1 makefile
3.1.1 makefile hoc1: hoc.o cc hoc.o -o hoc1
3.2.2 makefile
3.2.2 makefile hoc2: hoc.o cc hoc.o -o hoc2
3.3.1 makefile
3.3.1 makefile YFLAGS = -d # force creation of y.tab.hOBJS = hoc.o init.o math.o symbol.o # abbreviationhoc3: $(OBJS) cc $(OBJS) -lm -o hoc3hoc.o: hoc.hinit.o symbol.o: hoc.h y.tab.hpr: @pr hoc.y hoc.h init.c math.c symbol.c makefileclean: rm -f $(OBJS)
3.4.5 makefile
3.4.5 makefile YFLAGS = -dOBJS = hoc.o lex.o init.o math.o symbol.ohoc3: $(OBJS) cc $(OBJS) -lm -ll -o hoc3hoc.o: hoc.hlex.o init.o symbol.o: hoc.h
3.5.5. makefile
3.5.5. makefile YFLAGS = -dOBJS = hoc.o code.o init.o math.o symbol.ohoc4: $(OBJS) cc $(OBJS) -lm -o hoc4hoc.o code.o init.o symbol.o: hoc.hcode.o init.o symbol.o: x.tab.hx.tab.h: y.tab.h -cmp -s x.tab.h y.tab.h || cp y.tab.h x.tab.hpr: hoc.y hoc.h code.c init.c math.c symbol.c @pr $? @touch prclean: rm -f $(OBJS)
3.6.7 makefile
3.6.7 makefile YFLAGS = -dOBJS = hoc.o code.o init.o math.o symbol.ohoc5: $(OBJS) cc $(OBJS) -lm -o hoc5hoc.o code.o init.o symbol.o: hoc.hcode.o init.o symbol.o: x.tab.hx.tab.h: y.tab.h -cmp -s x.tab.h y.tab.h || cp y.tab.h x.tab.hpr: hoc.y hoc.h code.c init.c math.c symbol.c @pr $? @touch prclean: rm -f $(OBJS)
3.7.17 makefile
3.7.17 makefile CC = lccYFLAGS = -dOBJS = hoc.o code.o init.o math.o symbol.ohoc6: $(OBJS) $(CC) $(CFLAGS) $(OBJS) -lm -o hoc6hoc.o code.o init.o symbol.o: hoc.hcode.o init.o symbol.o: x.tab.hx.tab.h: y.tab.h -cmp -s x.tab.h y.tab.h || cp y.tab.h x.tab.hpr: hoc.y hoc.h code.c init.c math.c symbol.c @pr $? @touch prclean: rm -f $(OBJS)
3.8.28 makefile
3.8.28 makefile files: files.o files1.o directory.o cc files.o files1.o directory.o -o filesp0: p0.c ttyin0.c cc p0.c ttyin0.cclean: rm -f *.o
Файл
Файл Пункты меню Файл сгруппированы в несколько блоков:Первый из них посвящен созданию новых файлов. Пункт Создать предполагает открытие в окне редактирования пустого документа. Пункт Создать из шаблона предоставляет на выбор с десяток вариантов, позволяющих создать
REG-файл
REG-файл Можно вносить изменения в реестр путем внесения новых значений для нужных параметров в самом редакторе реестра или при помощи импорта. Но есть и другой способ. Можно заранее подготовить файл в заданном формате, и нужные параметры автоматически установятся в
11.1.2. Файл ftphosts
11.1.2. Файл ftphosts Файл ftphosts используется для разрешения или запрещения доступа определенных пользователей с указанных узлов. Например, вы можете разрешить доступ пользователю admin только с компьютера admm.domain.ru и запретить со всех остальных. А для других пользователей
Файл
Файл Чтобы установить на записываемый компакт-диск пароль, перейдите на вкладку Файл (см. рис. 12.1) и введите пароль в поле, расположенное слева от кнопки Р. Защита паролем доступна только для Главного меню (обратите внимание на положение переключателя Тип меню). Чтобы
Файл Makefile
Файл Makefile В соответствии с рекомендациями [4] Makefile должен иметь следующий заголовок:# New ports collection makefile for: contactsmenu# Date created: 01 Mar 2006# Whom: Rashid N. Achilov shelton@granch.ru# # $FreeBSD$На этом заголовок кончается.Внимание! Для впервые отправляемого порта строка $FreeBSD$ должна выглядеть именно так, как
Меню Файл
Меню Файл Команды меню Файл не изменяются в зависимости от типа документа. Это первый пункт главного меню (рис. 1.7). Рис. 1.7. Меню ФайлЕго команды служат для работы с файлами системы КОМПАС: Создать (команда уже рассмотрена ранее), Открыть (позволяет загрузить сохраненный