англійськафранцузькаіспанська

Значок OnWorks

mppg - Інтернет у хмарі

Запустіть mppg у постачальнику безкоштовного хостингу OnWorks через Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

Це команда mppg, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

ПРОГРАМА:

ІМ'Я


makeppgraph -- Графічний аналіз графіка залежностей

ОПИС


?: -?, A: -A,
--файл-args,
--файл аргументів, B: -б,
--тому що,
--причини побудови, C: &cwd, D: -Д,
-d,
--залежності,
&dir,
--крапка,
-- вниз,
-- вниз, G: -g,
--graphviz, H: -h,
--допомога,
&дім,
--html, I: -я,
-я,
--включати,
--include-dir,
--включає, L: -л,
-- журнал,
--файл журналу, M: -М,
-м,
&makepp,
$MAKEPPGRAPHFLAGS,
--злиття,
-- модуль, O: -о,
--вихід, P: -p,
-- звичайний, R: -р,
--перейменувати, S: -так,
--окремі напрямки,
&suf, T: -t,
--текст, U: -у,
--вгору,
-- вгору,
&usr, V: -V,
-- версія

makeppgraph [ варіант ...] [ модель ...]

mppg [ варіант ...] [ модель ...]

Кажуть: «Картина вартує тисячі слів». Тож давайте намалюємо вашу залежність або включимо
графік з різних точок зору. Перегляньте галерею
<http://makepp.sourceforge.net/gallery/> щоб отримати уявлення про те, що ви можете зробити.

Кожен вузол представляє вихідний файл або цільовий файл, забарвлений відповідно до шаблонів імен файлів.
Вузол файлу є прямокутним. Вузол фальшивої цілі овальний. Кожне суцільне ребро представляє
пряма залежність. Альтернативно або додатково ви можете відобразити включати зв’язки як
пунктирні лінії. Для більш детального, але не дуже красивого текстового перегляду дивіться makepplog.

Але будьте обережні, навіть для невеликої конструкції складність може бути вражаючою! Це тому, що с
.o файли та системні елементи, у вас легко мати вдвічі більше вузлів, ніж вихідні файли. Але
це нічого – кількість ребер часто значно перевищує кількість вузлів через множину
включати заяви. Розкладка без перетину зазвичай неможлива.

У реальних проектах складність стає шаленою. Такі прийоми, як джерело на основі шаблонів
генерування файлів, препроцесори (наприклад, вбудований SQL, мови визначення інтерфейсу, Qt
бібліотека) або публікація файлів у центральних каталогах (наприклад, мати тільки один "-I" або "-L"
варіант) зробити графік вибухнути. Навіть якщо краї мають ширину всього в один піксель, ви отримаєте
широкі чорні смуги з перехресними краями.

Як тільки ви усвідомите, що відбувається насправді, якщо вам пощастить, ви, можливо, зможете знайти вихід
спрощення налаштування збірки. Але перш ніж туди потрапити, ви повинні різко зменшити
кількість інформації, яку ви відображаєте. Для цього існують різноманітні виділення, перейменування і
об'єднання можливостей у "makeppgraph". Коли вам не вдається досягти балансу між
скорочення графіка настільки, щоб він став розумно відображатися, при цьому показуючи що
ви хочете побачити, ви можете повернутися до текстового графіка.

ВИХІД ФОРМАТИ


Розмітка графіків, відображення та маніпуляції є складними завданнями, які виходять за рамки компетенції
"makeppgraph". Замість цього він створює вхідні файли для спеціалізованих інструментів. Це створює
вихідний файл, замінюючи або додаючи відповідний суфікс до його першого вхідного файлу. Якщо це
is .makepp/log, за замовчуванням, вихідний файл буде пропущено .makepp каталог, що веде до
log.udg. Якщо перший вхід - (stdin), вихід переходить до стандартного виведення.

uDraw (Графік)
З uDraw (Графік)http://www.informatik.uni-bremen.de/uDrawGraph/> ви отримуєте справедливо
сучасний графічний інтерфейс, який дозволяє вибрати батьків або дітей, знайти інший кінець краю, або
приховати підграфи. Налаштування параметрів, як-от відстані вузлів, і використання сплайнів для ребер
можна зробити графік красивішим.

Хоча вищезазначені функції роблять цей інструмент надзвичайно корисним, є кілька невеликих
зачіпки:

· Він дуже голодний до пам'яті, так що після довгої медитації може вийти з ладу
відображення будь-чого - явна ознака того, що ви повинні зменшити кількість вузлів
та/або ребра далі.

· Він чітко розділяє атрибути графіка та параметри відображення. Це означає, що ви не можете
вставити в згенерований графік той факт, що він має бути орієнтований вбік (що є
загалом необхідний тут, тому що навіть при перейменуванні на щось коротке, імена файлів залишаються
набагато ширше, ніж високий). Як обхідний шлях, якщо ви не хочете робити його за замовчуванням, або
щоразу вибирайте орієнтацію з меню, вони пропонують невеликий стартовий скрипт:

експорт UDG_HOME=/where/ever/uDrawGraph-3.1
TMP=`mktemp -t udg.XXXXXX` || вихід 1
пастка "rm -f $TMP" ВИХІД
echo "[меню(файл(open_graph(\"${1-log.udg}\"))),menu(layout(orientation(left_right)))]" >$TMP
$UDG_HOME/bin/uDrawGraph -ініціалізація $TMP

· Він ще не підтримує кольори меж вузлів. Завдяки цьому «--because» відображається подвійно
межі, коли вони повинні бути червоними.

· При об'єднанні кількох файлів в один вузол веде до самої ребер обох з
"--залежності" та "--включає", буде відображено лише одне з них, випадковим чином
пунктирна або прокреслена наскрізь і з міткою «2*».

Графвіз
Graphvizhttp://www.graphviz.org/> складається з кількох інструментів командного рядка, які дозволяють
набагато більше форматів експорту, ніж uDraw(Graph). Це включає не лише статичні формати зображень
але також вхідні дані для програм-дизайнерів, таких як dia. Існує утиліта «twopi» для створення a
радіальне розташування, що добре, якщо ваш графік наближається до справжнього дерева, тобто вашого
залежності розширюються, але деякі вузли мають спільні залежності з іншими. Є декілька
доступні засоби перегляду, жоден з яких не допоможе вам переміщатися по структурі графіка:

крапка
Його власний інструмент відображення, dotty, має перевагу над uDraw(Graph), що ви можете вільно
перетягніть вузли, не обмежуючись рівнем, призначеним макетом. Коли
ваш екран заповнений краями, перетягування одного вузла дає вам гарне враження про те, де
краю цього вузла ведуть до. Але він також втрачає інформацію, коли ви її змінюєте.
Крім того, це застарілий інструмент Xlib. Це також показує дратує трохи
коло посередині кожного краю, і, здається, жодний варіант не позбутися від нього.

ZGRViewer
ZGRViewerhttp://zvtm.sourceforge.net/zgrviewer.html> завантажується окремо
Переглядач Java, який має зручне масштабування та панорамування. Графік доступний лише для перегляду, ні
переміщення вузлів. У області перегляду є п’ять кнопок, які пропонують додаткові
модні варіації напів-3D-зуму, але, на відміну від основної функціональності, вони можуть бути
надзвичайно повільно залежно від налаштувань Java. Для моєї Sun Linux Java наступне
дав величезний поштовх:

експорт J2D_PIXMAPS=спільний USE_DGA_PIXMAPS=1

Граппа
Grappa — програма перегляду Java 1.2, яку можна окремо завантажити. Немає оболонки обгортки
сценарій, jar не містить маніфесту, жодне з джерел не містить функції main, і
з appletviewer він створив два високих вікна, які висять з "початковим аплетом"
повідомлення, тому я не знаю, як це перевірити. Його можна спробувати на демонстраційному веб-сайті як
аплет.

Вибір краю робить його жирним червоним, тому ви можете вручну прокрутити його інший кінець
переглядати, не втрачаючи його з поля зору. Крім цього, масштабування та видалення вузлів
здається, він не має корисних функцій. Він ігнорує дійсний шістнадцятковий колір
технічні умови.

SVG SVG, один із типів файлів, до якого можна експортувати бекенд, уже досить старий. Але деякі
браузери все ще мають проблеми з цим. При вбудовуванні його з тегом об'єкта тільки Opera
масштабує його, інші обрізають його, що марно для мініатюри. Якщо розглядати як а
власний документ, лише Opera та Konqueror дозволяють масштабувати його, тоді як Firefox масштабується
тільки етикетки. Незважаючи на те, що мітки є текстовими, жоден браузер не може їх шукати.
IE6 не має поняття, якщо ви не встановите плагін. Спеціальна програма, наприклад
Inkscape може служити вам краще.

HTML
Це простий формат дерева невпорядкованого списку, який можна переглядати в будь-якому браузері. ти
має мати JavaScript та CSS, що дозволяє складати піддерева та бачити кольори. Зазвичай
ваш графік не буде деревом, яке обробляється повторюваними вузлами в кожному піддереві
необхідний, але як посилання на перше входження, де можна побачити всі його атрибути. Належить
З огляду на обмежену підтримку Unicode в IE, замість відношень включення використовуються вертикальні стрілки
звичайних пунктирних стрілок.

Текстовий Графік
Це простий формат на основі відступів, який можна переглядати за допомогою будь-якого засобу перегляду тексту. Це
означає, що зазвичай ви можете вивчати набагато більші графіки, ніж з іншими форматами. У Emacs ви
можна використовувати контур і згортання для дуже потужної навігації по графіку за допомогою цієї маленької обгортки
режим:

(define-derived-mode textgraph-mode outline-mode "Graph"
(режим перегляду)
(встановити (make-local-variable 'outline-regexp) " *.")
(набір (make-local-variable 'outline-level)
(лямбда () (/ (- (кінець матчу 0) (початок матчу 0) -1) 2)))
(набір (make-local-variable 'outline-font-lock-keywords)
'(("^ *\\(?:{[az,]+} \\)?\\([^{\n]+\\)" (1 (outline-font-lock-face) nil t) )))
(setq imenu-generic-expression
'((nil "^ *\\(?:{[az,]+} \\)?\\(.+?\\)\\(?:{[az,]+}\\)?$" 1))))

Рядки можуть мати анотації, розділені комами між дужками, якщо ви також не вкажете
Параметр "-p, --plain". Коли вони стоять перед цілью, вони стосуються відносин
з батьківським, тобто попередній рядок з меншим відступом. Коли вони підуть за ціль,
вони стосуються самої цілі. Вони такі:

оскільки
Коли це стоїть перед метою, батьківський створений завдяки цьому. Коли це
Після цього ціль мала певну невід’ємну причину для відновлення.

двонаправлений
Ця залежність або включення йде в обох напрямках.

включати
Батько включає цей файл. Ця анотація надається лише під час показу
залежності.

фальшивий
Це фальшива ціль.

повторний
Інформація про цю мішень та її дітей уже була надана раніше.

ВАРІАНТИ


Якщо ви не надасте шаблони, makeppgraph почне працювати з усіма доступними вузлами
витяг із журналу makepp. Якщо надано один або кілька шаблонів (використання "?", "*", "**" та/або
"[...]"), він відповідатиме тим у файловій системі та працюватиме з будь-якими, які також зустрічаються у файлі
журнал. Для них він за замовчуванням вибирає «вгору», тобто всі цілі, від яких залежить
та/або включати будь-який з них і "вниз", тобто всі цілі та/або джерела, будь-який з яких
вони залежать від та/або включають. (Напрямки метафоричні, тому що графік є
через ширину вузлів найкраще відображати зліва «зверху» направо «знизу».)

-A ім'я файлу
--args-файл=ім'я файлу
--arguments-file=filename
Прочитайте файл і проаналізуйте його як можливо, розділені пробілами та/або новим рядком
Варіанти.

-b
--тому що
--побудувати-причини
Якщо вузол був перебудований через залежність, то це ребро буде показано червоним. на жаль
makepp застосовує оптимізацію, щоб визначити, коли ціль потребує перебудови, так що вона
часто не можна сказати, який файл ініціював перебудову. Якщо вузол був перебудований для a
причина, що не віднесена до іншого файлу, то межа вузла червона. З
uDraw(Graph) замість нього використовується подвійна межа, оскільки вона не підтримує колір рамки.

-D
--залежності
Намалюйте графік залежності залежності, визначеної makepp. Це значення за замовчуванням
якщо також не вказано "-i, --includes".

-d
-- вниз
-- вниз
Цей параметр має значення, лише якщо ви надаєте один або кілька шаблонів. Тільки тоді буде
виберіть цілі та/або джерела, від яких залежать або від яких вони залежать
включати.

-g
--графвіз
--крапка
Створіть Graphviz .крапка файл замість стандартного uDraw(Graph) .udg файлу.

-h
--html
Створити браузер . Сайтів файл замість стандартного uDraw(Graph) .udg файлу.

-?
--допомога
Роздрукуйте короткий опис варіантів.

-I каталог
--включати=каталог
--include-dir=каталог
додавати каталог до шляху завантаження Perl @INC.

-i
--включає
Замість залежностей (або з «-D, --залежності» додатково до них) намалюйте a
графік включення зв'язків. Це буде зареєстровано лише в міру необхідності
підлягає аналізу. Щоб отримати повну картину, вам потрібна свіжа повна збірка.

-l ім'я файлу
--log=ім'я файлу
--log-file=ім'я файлу
Команда ім'я файлу куди makepp написав свій журнал. Це також може бути каталог, у якому a
файл називається .makepp/log or журнал буде обшук. Щоб читати з stdin, ви повинні дати -
як ім'я файлу. Якщо цей параметр не вказано, за замовчуванням буде використовуватися поточний каталог.

Цю опцію можна вказати кілька разів, наприклад, для об’єднання всіх журналів з
"--traditional-recursive-make". Але залежності, які ви приховали від makepp через файл
зла парадигма рекурсії, звичайно, не може з’явитися тут.

-M модуль[=arg,...]
--module=модуль[=arg,...]
Завантажте модуль та імпортуйте будь-які функції, які він експортує.

-m perlcode
--merge=perlcode
Виконувати perlcode для кожної цілі та її залежностей. Щоб дізнатися більше про об’єднання, див
цей варіант.

-o ім'я файлу
--вихід=ім'я файлу
Запишіть результат у цей файл.

-p
-- звичайний
Не використовуйте такі атрибути, як кольори або пунктирні лінії. Це особливо корисно для
очищення виводу "-t, --text". У цьому форматі двонаправлені ребра будуть втрачені
якщо ви не поєднаєте це з "-s, --separate-directions".

-r perlcode
--перейменувати=perlcode
Виконувати perlcode для кожної цілі та її залежностей. Додаткову інформацію див. у перейменуванні
про цей варіант.

-s
--окремі напрямки
Намалюйте дві окремі стрілки замість кожної двосторонньої стрілки, щоб полегшити їх виконання
пляма.

-t
--текст
Створити читабельне для людини . Txt файл замість стандартного uDraw(Graph) .udg файлу.

-u
--вгору
-- вгору
Цей параметр має значення, лише якщо ви надаєте один або кілька шаблонів. Тільки тоді буде
виберіть цілі, які залежать від та/або включають відповідні файли.

-V
-- версія
Роздрукуйте номер версії.

ПЕРЕПИСАННЯ


Методи, описані в цій главі, зазвичай необхідні для отримання графіка розумного розміру. Як
вони сформульовані як код Perl, знання мови корисно. Але ви повинні вміти
щоб досягти досить багато з прикладами тут або в галереї
<http://makepp.sourceforge.net/gallery/>.

Перейменування
Це перше перезапис назви, що відбувається, якщо дано параметр "-r, --rename". Для
Кожне зустрінене ім'я викликається perlcode. Він отримує ім’я файлу в $_ і може змінюватися
це. Це часто потрібно, оскільки makepp реєструє повні імена файлів, тому один вузол може
легко досягати половини екрана.

По-перше, ви можете переписати імена на "undef" або порожній рядок. Це усуне
вузол з графіка. Зауважте, що видалення вузла на цьому першому етапі порушить a
ланцюг залежностей, якщо цей вузол був посередині.

Ви також можете переписати різні назви в один рядок, примусивши їх усі до одного
вузол, який накопичує об'єднані залежності та залежні.

З іншого боку, ви можете просто перейменувати назви на (зазвичай) коротші імена, щоб зменшити
ширина вузлів, яка може бути дуже широкою з абсолютними іменами файлів. Є декілька
Ви можете використовувати попередньо визначені функції в пакеті "Mpp::Rewrite", в якому також виконується ваш код
для цього. Вони повертають істину, якщо вони щось зробили, щоб ви могли комбінувати їх, як у:

--rename='cwd(1) || &дома || &usr'

&cwd
обробляти номер
обробляти номер ім'я[, роздільник]
Видаляє поточний робочий каталог з початку шляху. Також з номером
замінює батьківські каталоги на багато рівнів вище правильною кількістю .. /
каталоги, якщо це можливо. У цьому випадку можна дати альтернативу ім'я, як
накопичений ':' замість '..' і додатково альтернативний роздільник натомість подобається ''
з '/'. У першому випадку ви можете отримати :/:/a/b, у другому ще коротше ::а/б
замість ../../a/b. Передача числа корисна, якщо ви малюєте щось із
сусідні дерева. Або у вас є SRC каталог, де відбувається більшість дій, тож ви
Викличте makeppgraph там, але хочете також побачити зв'язок з іншими вашими каталогами.

Якщо ви не вкажете параметр «--rename», &cwd буде за замовчуванням. Якщо ви не хочете перейменування,
можете дати трохи perlcode як "--rename=1", який нічого не робить.

&реж
Це відмінно зменшує складність графіка. Він зводить кожен файл до свого
каталог. Це означає питання: «Файли, з якого каталогу залежать від файлів
з якого іншого каталогу?" Зауважте, що хоча графік залежностей завжди ациклічний
(інакше makepp не знав би, з чого почати будувати), це не вірно для цього зменшення
перегляд. Наприклад, якщо dir1/a залежить від dir2/b та dir2/a on dir1/b який буде відображатися як a
взаємна залежність між dir1 та dir2. Оскільки циклічний граф не має очевидного початку
точки, макет може бути дивним.

На відміну від інших функцій у цьому розділі, ця функція не є винятковою для інших. Тому
Ви можете не захотіти логічно поєднувати це:

--rename='&dir; &cwd || &дім'

&дом
Замінює ваш домашній каталог на ~/.

&makepp
Замінює каталог встановлення makepp на |м|.

&суф
суф номер
Це також відмінно зменшує складність графіка. Це зменшує кожен файл, який має
суфікс до зірочки і цей суфікс. Таким чином, ви можете побачити, які типи файлів залежать
на які інші види. З аргументом 0 він залишає перший символ
каталогу за умови, що це один із "/", "~" або "|" (як введено &home або &usr, якщо ви
називаються першими). З позитивним аргументом він залишає стільки рівнів каталогу
на початку. З негативним аргументом він видаляє стільки рівнів каталогу на
кінець. Тож для /a/b/c/d/e/xy Ви отримуєте:

&suf *.y
suf 0 /*.y
suf 1 /a/*.y
suf 2 /a/b/*.y
suf -1 /a/b/c/d/*.y
suf -2 /a/b/c/*.y

Для родича a/b/c/d/e/xy Ви отримуєте:

&suf *.y
suf 0 *.y
суф 1 а/*.р
suf -1 a/b/c/d/*.y

&usr
під /, /usr, /usr/lокал, /usr/X11, /usr/X11R6, /usr/X11R7 or /opt, для будь-якого з
каталоги bin, etc, include, lib or sзаєць, ініціали цих слів є
з'єднані між барами.

Напр /usr/lокал/bв/foobar стає |ulb|foobar or /usr/include/net/if.h стає
|ui|net/if.h. Зверніть увагу, що "l" означає "локальний", коли між двома літерами, і "lib"
як остання літера.

Злиття
Це друге перезапис назви, яке відбувається, якщо вказано параметр "-m, --merge". Це
API все ще розробляється! Наразі ціль передається в $_ і залежності
як аргумент. Якщо perlcode повертає значення, це значення замінює як цільову, так і
залежності, об'єднавши їх в один вузол. Кілька попередньо визначених функцій можуть допомогти вам:

c2o Для будь-якого джерела C/C++ і отриманого .o файл, об’єднайте їх в один вузол, додавши до
вихідний шлях має суфікс ">o". some/where/foo.cc>o, навіть якщо .o файл знаходиться в
інший каталог.

exe Для будь-якого .o файл і отриманий виконуваний файл з тим самим базовим ім’ям notdir без a
суфікс або с .exe, об’єднайте їх в один вузол, додавши зірочку до .o файлу.
Наразі це не працюватиме разом із c2o.

x2 Для будь-якої пари файлів з однаковою назвою, як правило, заголовок або бібліотека, опублікована в a
центрального каталогу, об'єднайте їх в один вузол, додавши *2 до залежності.

НАВКОЛИШНЄ СЕРЕДОВИЩЕ


Makeppgraph дивиться на таку змінну середовища:

$MAKEPPGRAPHFLAGS
Будь-які прапорці в цій змінній середовища раніше інтерпретуються як параметри командного рядка
будь-які явні варіанти. Цитати інтерпретуються як у make-файлах.

Використовуйте mppg онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

Команди Linux

Ad