Это команда autogen, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
автоген - Автоматизированный генератор программ
СИНТАКСИС
автоген [-флаги] [-флаг [ценностное ]] [- имя-опции[[= | ]ценностное ]] [ ]
AutoGen создает текстовые файлы из шаблонов с использованием внешних определений.
ОПИСАНИЕ
Автоген предназначен для создания программных файлов, содержащих повторяющийся текст с различными
замены. Цель состоит в том, чтобы упростить обслуживание программ, содержащих большие
количество повторяющегося текста. Это особенно ценно, если есть несколько блоков
такой текст, который необходимо синхронизировать.
Одним из распространенных примеров является проблема поддержки кода, необходимого для обработки программы.
параметры. Варианты обработки требуют как минимум четырех различных конструкций, хранящихся в
правильный порядок в разных местах вашей программы. Вам нужно как минимум: Символ флага
в строке флага код для обработки флага, когда он встречается, глобальное состояние
переменная или две, и строка в тексте использования. Вам понадобится еще кое-что, кроме этого, если
вы решите реализовать длинные имена параметров, обработку файла конфигурации, среду
переменные и так далее.
Все это можно сделать механически; с соответствующими шаблонами и этой программой.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
Команда после кредита выберите определения, шаблоны и схема Функции в использование
-L директория, --templ-дирс=директория
Искать шаблоны в DIR. Эта опция может появляться неограниченное количество раз.
Добавить каталог в список каталогов автоген поиск при открытии
шаблон в качестве основного или включенного. В последней записи
наивысший приоритет в списке поиска. То есть их ищут в
обратный порядок.
-T tpl-файл, --override-tpl=tpl-файл
Используйте TPL-ФАЙЛ для шаблона. Этот параметр не может быть предварительно установлен в среде
переменных или в файлах инициализации (rc).
Файлы определений определяют стандартный шаблон, который должен быть расширен. Этот вариант
переопределит это имя и развернет другой шаблон.
-l tpl-файл, --lib-шаблон=tpl-файл
Загрузить макросы AutoGen из TPL-ФАЙЛ. Эта опция может появляться неограниченное количество
раз.
Макросы DEFINE сохраняются из этого файла шаблона для использования при обработке основных
файл макроса. Текст шаблона помимо макроса DEFINE игнорируется.
Не используйте это. Вместо этого используйте в своем шаблоне макрос INCLUDE.
ПРИМЕЧАНИЕ: ЭТО ВАРИАНТ IS DEPRECATED
- определения=файл, Fl -нет определений
Прочтите определения из ФАЙЛОВ, без определений форма отключит эту опцию. Этот
опция включена по умолчанию. Этот параметр не может быть предварительно установлен в среде
переменных или в файлах инициализации (rc).
Используйте этот аргумент, чтобы указать входной файл определений с параметром командной строки.
Если вы не укажете эту опцию, тогда должен быть аргумент командной строки, который
указывает файл, даже если указать stdin только с дефисом (-). Указать,
- без определений когда вы хотите обработать шаблон без активного AutoGen
определения.
--оболочка=оболочка
имя или путь к оболочке для использования.
По умолчанию при построении AutoGen конфигурация проверяется на разумный
Оболочка типа Bourne, используемая для обработки сценариев оболочки. Если конкретный шаблон
требуется альтернативная оболочка, она должна быть указана с помощью этой опции в команде
строка с переменной окружения (SHELL) или в конфигурации / инициализации
.
-m, --no-fmemopen
Не используйте потоки в памяти.
Если локальная библиотека C поддерживает "фопенкуки(3ГНУ)", или же "Funopen(3BSD)" потом
AutoGen предпочитает использовать открытие буфера потока в памяти вместо анонимных файлов.
Это может привести к проблемам при нехватке виртуальной памяти. Если для
определенное приложение, у вас заканчивается память, затем укажите эту опцию. Это
маловероятно в современной 64-битной среде виртуальной памяти.
На платформах без этих функций опция принимается, но игнорируется.
fmemopen (POSIX) не подходит, потому что его строковый буфер не может быть перераспределен.
open_memstream (POSIX) is причислены не подходит, потому что поток открыт только для
выход. AutoGen требуется перераспределяемый буфер, доступный как для чтения, так и для
письмо.
- адекватный=список символов
символы считаются эквивалентными. По умолчанию список символов для этого варианта:
_- ^
Эта опция изменит список символов, считающихся эквивалентными. По умолчанию
это три символа "_- ^". (Последняя обычная на Тандеме / HP-NonStop,
и я много работал над тандемами.)
Команда после кредита изменять это выходной is обрабатываются
-b имя, - имя-базы=имя
Указывать ИМЯ как базовое имя для вывода. Этот параметр не может быть предварительно установлен с
переменные среды или в файлах инициализации (rc).
В шаблоне может быть указано точное имя выходного файла. Обычно это не так.
Вместо этого имя состоит из базового имени файла определений с
добавлены суффиксы. Эта опция переопределит базовое имя, полученное из
имя файла определений. Это необходимо, если нет файла определений и
рекомендуется, если определения читаются из стандартного ввода. Если определения
читать из стандарта в, базовое имя по умолчанию STDIN. Любой ведущий каталог
компоненты в названии будут автоматически удалены. Если вы хотите, чтобы выходной файл
появляются в определенном каталоге, рекомендуется "cd" в этот каталог
каталог сначала или используйте имена каталогов в спецификации формата для вывода
списки суффиксов, см .: псевдомакрос.
--исходное время, - Fl -нет-источник-время
установить время модификации для последнего источника. В время без источника форма отключит эту опцию.
Если вы отметите свои выходные файлы DNE вывод макроса, затем ваши файлы вывода
всегда будет отличаться, даже если содержание действительно не изменилось. Если вы используете
этот параметр, то время модификации выходных файлов изменится только в том случае, если
входные файлы меняются. Это поможет уменьшить количество ненужных сборок.
- записываемый, - Fl -не-записываемый
Разрешить запись в выходные файлы. В не записываемый форма отключит эту опцию.
Эта опция оставит выходные файлы доступными для записи. Обычно выходные файлы читаются.
только.
Команда после кредита . полезный в то время как отладка новый шаблоны
Они определяют пределы, которые не позволяют шаблону занимать слишком много времени или производить больше
результат, чем ожидалось.
--loop-limit=Ит
Ограничьте количество петель приращения. Эта опция принимает целое число в качестве аргумента.
Значение Ит ограничен быть:
ровно -1, или
в диапазоне от 1 до 0x1000000
По умолчанию Ит для этого варианта:
256
Эта опция предотвращает выходящие из строя петли. Например, если вы случайно укажете "FOR
x (for-from 1) (for-to -1) (for-by 1) ", это займет много времени, чтобы закончить. Если вы
у вас более 256 записей в таблицах, вам нужно будет указать новый лимит с помощью
этот вариант.
-t секунды, - тайм-аут=секунды
Ограничьте операции оболочки сервера до СЕКУНД. Эта опция принимает целое число как
свой аргумент. Значение секунды ограничен быть:
в диапазоне от 0 до 3600
AutoGen работает с процессом сервера оболочки. Большинство обычных команд завершаются через
менее 10 секунд. Если, однако, вашим командам требуется больше времени, чем это, используйте
этот вариант.
Допустимый диапазон - от 0 до 3600 секунд (1 час). Ноль отключит серверное время
предел.
--след=уровень
отслеживание уровня детализации. Эта опция принимает ключевое слово в качестве аргумента. В
аргумент устанавливает значение перечисления, которое можно проверить, сравнив их с
макрос значения опции. Доступные ключевые слова:
ничего не отладочное сообщение серверная оболочка
шаблоны блок-макросов выражения
многое
или их числовой эквивалент.
По умолчанию уровень для этого варианта:
ничего
Эта опция заставит AutoGen отображать трассировку обработки своего шаблона.
Всего шесть уровней, каждый из которых включает сообщения с предыдущих уровней:
ничего Не отслеживает вообще (по умолчанию)
сообщение отладки Распечатать сообщения из макроса AutoGen "DEBUG" (см .: DEBUG).
серверная оболочка Отслеживает весь ввод и вывод в оболочку сервера. Это включает
"независимый" сценарий инициализации оболочки длиной около 30 строк. Его выход
отброшены и не вставлены ни в один из шаблонов.
шаблоны Прослеживает вызов ОПРЕДЕЛИТЬd макросы и ВКЛЮЧАЮТs
блок-макросы Отслеживает все макросы блока. Вышеупомянутый плюс IF, Для, Кейсы и В ТО ВРЕМЯ КАК.
выражения Отображает результаты оценки выражений.
многое Отображает вызов каждого макроса AutoGen, даже ТЕКСТ макросы (т.е.
текст вне кавычек макроса). Кроме того, если вы восстановите файл expr.ini
файл с включенной отладкой, затем все вызовы функций схемы, определенных AutoGen
также будут зарегистрированы:
cd $ {top_builddir} /agen5
DEBUG_ENABLED = истинный bash bootstrap.dir expr.ini
сделать CFLAGS = '- g -DDEBUG_ENABLED = 1'
Имейте в виду, что вы не можете перестроить этот источник таким образом, не имея предварительно
установил автоген исполняемый файл в вашем пути поиска. Из-за этого "expr.ini"
находится в списке распределенных источников, а не в зависимостях.
--проследить=файл
выходной файл трассировки или фильтр.
Указанный вывод может быть именем файла, добавленным к нему файлом или, если
аргумент option начинается с труба оператор (|), команда, которая получит
вывод трассировки стандартно в. Например, --traceout = '| меньше' запустит трассировку
вывод через Меньше программа. Добавление к файлу указывается перед
имя файла с двумя символами больше чем (>>).
--show-defs
Покажите дерево определений. Этот параметр не может быть предварительно установлен с переменными среды
или в файлах инициализации (rc).
Это распечатает полное дерево определений перед обработкой шаблона.
--used-определяет
Покажите используемые определения. Этот параметр не может быть предварительно установлен в среде
переменных или в файлах инициализации (rc).
Это распечатает имена значений определений, которые искали во время поиска.
обработка шаблона, независимо от того, найден он на самом деле или нет. Могут быть и другие
ссылочные определения в шаблоне в частях шаблона, которые не оцениваются.
Некоторые из перечисленных имен могут быть вычисляемыми именами, а другие - аргументами макроса AutoGen.
Это не средство для составления окончательного, всеобъемлющего списка всех и
только значения, используемые из файла определения. Это предназначено для помощи
только шаблонная документация.
-C, --основной
Оставьте дамп ядра при выходе из строя.
Многие системы по умолчанию используют нулевой предел размера ядра. Если в системе есть
sys / resource.h, и если эта опция указана, то в аварийном выходе
path, autogen попытается установить предел мягкого ядра для любого жесткого ядра
предел есть. Если это не сработает, то администратор должен поднять хардкор.
ограничение размера. в файлах определений и файлах шаблонов "они указывают, какие
выходы и части выходов для производства.
-s суффикс, --skip-суффикс=суффикс
Пропустить файл с этим СУФФИКС. Эта опция может появляться неограниченное количество
раз. Этот параметр не может быть предварительно установлен с переменными среды или в
файлы инициализации (rc). Этот параметр не должен появляться в сочетании с любым из
следующие параметры: select-suffix.
Иногда может быть нежелательно создавать все указанные выходные файлы.
в шаблоне. (Например, только .h заголовочный файл, но не .c программа
текст.) Для этого укажите --skip-суффикс = c в командной строке.
-o суффикс, --select-суффикс=суффикс
укажите этот выходной суффикс. Эта опция может появляться неограниченное количество раз.
Этот параметр не может быть предварительно установлен с переменными среды или при инициализации (rc)
файлы.
Если вы хотите переопределить спецификации суффиксов в шаблоне, вы можете использовать один
или более копий этого варианта. См. Спецификацию суффикса в @ref {псевдо
macro} информационного документа.
-D ценностное , --определять=ценностное
имя для добавления в список определений. Эта опция может появляться неограниченное количество
раз.
Имена определения AutoGen используются для следующих целей:
Разделы определений AutoGen могут быть включены или отключены с помощью стиля C.
Директивы #ifdef и #ifndef.
При определении значения для имени вы можете указать индекс для конкретного значения.
Этот индекс может быть буквальным значением, параметром определения или значением #define-d в
сами определения.
Имя файла может начинаться с префикса $ NAME /, $ NAME часть строки имени
будет заменено значением define-d для ИМЯ.
Когда AutoGen завершает загрузку определений, определенные значения экспортируются.
в окружающую среду с, путенв(3). Эти значения затем можно использовать в сценариях оболочки.
$ {NAME @} ссылки и в шаблонах с (получить "ИМЯ").
При обработке шаблона вы можете указать индекс для получения определенного значения.
Этот индекс также может быть значением define-d.
Это полностью эквивалентно размещению этого имени в экспортируемой среде.
Внутренне это то, что AutoGen фактически делает с этой опцией.
-U похлопать по имени, --не определить=похлопать по имени
шаблон удаления списка определений. Эта опция может появляться неограниченное количество
раз. Этот параметр не может быть предварительно установлен с переменными среды или в
файлы инициализации (rc).
Подобно C, AutoGen использует # ifdef / # ifndef директивы предварительной обработки. Этот вариант
приведет к удалению совпадающих имен из списка определенных значений.
Эти вариант is использовал в автоматизировать зависимость отслеживание
-M напишите, --make-деп [напишите]
создать файл зависимостей. Эта опция может появляться неограниченное количество раз.
Этот параметр не может быть предварительно установлен с переменными среды или при инициализации (rc)
файлы.
Этот вариант ведет себя довольно близко к тому, как -M серия вариантов работы с
компилятор gcc, за исключением того, что вместо того, чтобы просто испускать предшественника
dependencies, это также порождает зависимости преемника (выходные целевые файлы). К
по умолчанию информация о выходной зависимости будет помещена в .d, но может
также быть указано с -MF. Отметка времени в этом файле будет изменена
так что он будет на одну секунду старше самого старого основного выходного файла.
Целью в этом файле зависимости обычно будет имя файла зависимости, но
также может быть отменено с помощью -MT. AutoGen не изменит содержимое
этот файл, но он может создать его и скорректирует время модификации в соответствии с
время начала.
NB: эти вторые буквы являются частью аргумента опции, поэтому -м must have
пробел в кавычках или опущенных, и -M "F " приемлемо, потому что
F является частью аргумента опции.
-M может сопровождаться любой из букв M, F, P, T, Q, D или G. Однако только F,
Q, T и P значимы. Все, кроме F, имеют несколько разные значения. -MT
интерпретируется как значение это контрольный файл, который будет зависеть от всех входных данных
(шаблоны и файлы определений) и все выходные файлы будут зависеть от этого
дозорный файл. Он подходит для использования в качестве настоящей мишени. Q лечится
идентично T, за исключением того, что символы доллара ('$') удваиваются. P вызывает особую
clean (clobber) фальшивое правило, которое будет вставлено во фрагмент make-файла. Пустой
правило всегда создается для построения списка целей.
Это рекомендуемое использование:
-MFwhatever-you-like.dep -MTваш-sentinel-file -MP
а затем в вашем Makefile, сделать автоген править:
-include what-you-like.dep
clean_targets + = очистить-ваш-дозорный файл
.сп
ваш-дозорный-файл:
autogen -MT $ @@ -MF $ *. d .....
.сп
местная чистота:
rm -f $ (чистые_назначения)
Время модификации файла зависимости устанавливается на одну секунду раньше.
самая ранняя отметка времени любого другого выходного файла. Следовательно, он подходит для
использовать как контрольный файл, свидетельствующий об успешном запуске программы.
(-включают это способ GNU для указания «включить, если он существует». Ваша марка
должен поддерживать эту функцию, иначе ваш процесс начальной загрузки должен создать файл.)
Все это также можно указать с помощью ЗАВИСИМОСТИ_OUTPUT or AUTOGEN_MAKE_DEP
переменные среды. Если определено, будет выводиться информация о зависимостях. Если
определяется свободным текстом с пробелами, отличным от правда, ложный, Да,
нет, 0 or 1, тогда строка принимается за имя выходного файла. Если он содержит
строка символов пробела, первый токен такой же, как указано выше, а второй токен
принимается в качестве целевого (дозорного) файла как -MT в параграфах выше.
ЗАВИСИМОСТИ_OUTPUT будет проигнорирован, если есть несколько последовательностей пробелов
символов или если его содержимое, в частности, ложный, нет or 0.
Помогите, версия и вариант обращение
-?, --Помогите
Показать информацию об использовании и выйти.
-!, --больше-помощь
Передайте расширенную информацию об использовании через пейджер.
-> [cfgfile], --save-opts [=cfgfile]
Сохраните состояние параметра в cfgfile. По умолчанию последний файл конфигурации
перечислены в ВАРИАНТ ПРЕСЕТЫ раздел ниже. Команда завершится после обновления
файл конфигурации.
-< cfgfile, --load-opts=cfgfile, --no-load-опции
Варианты загрузки из cfgfile, варианты без нагрузки форма отключит загрузку
более ранние файлы config / rc / ini. --no-load-опции обрабатывается рано, вышла из строя.
-v [{v | c | n --версия [{v | c | n}]}]
Вывести версию программы и выйти. Режим по умолчанию - `v ', простая версия.
В режиме `c 'будет напечатана информация об авторских правах, а` n' - все авторские права.
заметит.
ВАРИАНТ ПРЕСЕТЫ
Любой вариант, не отмеченный как предустановленный может быть предварительно установлен путем загрузки значений из
конфигурационный ("RC" или ".INI") файл (ы) и значения из переменных среды с именами:
AUTOGEN_ or автоген
Предустановки среды имеют приоритет (обрабатываются позже) конфигурации
файлы. В Homerc файлы "$ HOMEи.". Если это каталоги, то
файл .autogenrc ищется в этих каталогах.
ОКРУЖАЮЩАЯ СРЕДА
Посмотреть ВАРИАНТ ПРЕСЕТЫ для переменных среды конфигурации.
Воспользуйтесь автогеном онлайн с помощью сервисов onworks.net