זוהי הפקודה mppg שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות החינמיות שלנו כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS.
תָכְנִית:
שֵׁם
makeppgraph -- ניתוח גרפי של גרף התלות
תיאור
?: -?, A: -א,
קובץ --args,
--קובץ-ארגומנטים, B: -ב,
--כִּי,
--סיבות-בנייה, C: &cwd, D: -ד,
-ד,
--תלות,
&dir,
--נְקוּדָה,
--לְמַטָה,
--למטה, G: -ג,
--גראפוויז, H: -ח,
--עֶזרָה,
&בַּיִת,
--html, I: -אני,
-אני,
--לִכלוֹל,
--include-dir,
--כולל, L: -ל,
--עֵץ,
--קובץ-לוג, M: -M,
-M,
&makepp,
$MAKEPPGRAPHFLAGS,
--לְמַזֵג,
--מודול, O: -או,
--תְפוּקָה, P: -פ,
--מִישׁוֹר, R: -ר,
--שינוי שם, S: -ס,
--כיוונים נפרדים,
&סוף, T: -ט,
--טֶקסט, U: -את,
--לְמַעלָה,
--כְּלַפֵּי מַעְלָה,
&usr, V: -V,
--גִרְסָה
מייק-גרף [ אוֹפְּצִיָה ... ] [ דפוס ... ]
mpg [ אוֹפְּצִיָה ... ] [ דפוס ... ]
אומרים ש"תמונה אחת שווה אלף מילים". אז בואו נצייר את התלות שלכם או נכלול
גרף מנקודות מבט שונות. צפו בגלריה
<http://makepp.sourceforge.net/gallery/> כדי לקבל כמה רעיונות מה אפשר לעשות.
כל צומת מייצג קובץ מקור או יעד, צבוע בהתאם לתבניות שם הקובץ.
צומת של קובץ הוא מלבני. צומת של מטרה מזויפת הוא אליפסה. כל קצה רציף מייצג
תלות ישירה. לחלופין או בנוסף, ניתן להציג קשרי גומלין של הכללה כ-
קווים מקווקווים. לתצוגה טקסטואלית מפורטת יותר אך לא כל כך יפה ראו makepplog.
אבל היזהרו, אפילו עבור בנייה קטנה המורכבות יכולה להיות מדהימה! הסיבה לכך היא שעם
.o קבצים ומערכת כוללת, יש לך בקלות כפליים צמתים מקבצי מקור, אבל
זה כלום -- מספר הקצוות לעתים קרובות עולה בהרבה על מספר הצמתים, עקב מספר רב של
פקודות include. פריסה ללא חוצים היא בדרך כלל בלתי אפשרית.
בפרויקטים אמיתיים המורכבות הופכת למטורפת. טכניקות כמו קוד מבוסס תבניות
יצירת קבצים, מעבדי קדם (למשל SQL מוטמע, שפות הגדרת ממשק, Qt)
ספרייה) או פרסום קבצים לספריות מרכזיות (למשל, כדי שיהיה רק "-I" או "-L" אחד
אפשרות) לגרום לגרף להתפוצץ. גם אם הקצוות ברוחב פיקסל אחד בלבד, בסופו של דבר תתקבל
פסים שחורים רחבים של קצוות חוצים.
ברגע שתבין מה באמת קורה, אם יתמזל מזלך, אולי תוכל למצוא דרך ל...
פישוט הגדרת הבנייה שלך. אבל לפני שתגיע לשם, עליך להפחית באופן דרסטי את
כמות המידע שאתה מציג. לשם כך ישנם מגוון אפשרויות בחירה, שינוי שם ו
מיזוג אפשרויות ב-"makeppgraph". כאשר לא מצליחים למצוא איזון בין
צמצום הגרף עד כדי כך שהוא יהיה ניתן להצגה בצורה הגיונית, ועדיין להראות מה
אתה רוצה לראות, אתה יכול לחזור לגרף טקסטואלי.
תפוקה פורמטים
עיצוב, תצוגה ותפעול גרפים הן משימות מורכבות, החורגות מתחום
"makeppgraph". במקום זאת, הוא מייצר קבצי קלט עבור כלים ייעודיים. הוא יוצר
קובץ פלט המחליף או מוסיף את הסיומת המתאימה לקובץ הקלט הראשון שלו. אם זה
is .makepp/log, ברירת המחדל, קובץ הפלט ידלג על .makepp ספרייה, המובילה אל
log.udgאם הקלט הראשון הוא - (stdin), הפלט הולך ל- stdout.
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"
הד "[תפריט(קובץ(open_graph(\"${1-log.udg}\"))),תפריט(פריסה(כיוון(שמאל_ימין)))]" >$TMP
$UDG_HOME/bin/uDrawGraph -init $TMP
· הוא עדיין לא תומך בצבעי גבולות של צמתים. מסיבה זו, "--because" מציג תצוגות כפולות
גבולות כאשר הם אמורים להיות אדומים.
· מיזוג של מספר קבצים לתוך צומת אחד מוביל לקצוות עצמיים גם עם
"--dependencies" ו-"--includes", רק אחד מהם יוצג, באופן אקראי
מנוקדים או מצוירים ועם תווית של "2*".
Graphviz
גראפוויזhttp://www.graphviz.org/> מורכב ממספר כלי שורת פקודה, המאפשרים
הרבה יותר פורמטי ייצוא מאשר uDraw(Graph). זה כולל לא רק פורמטי תמונה סטטיים
אלא גם קלט עבור תוכניות מעצבים כמו dia. יש כלי "twopi" ליצירת
פריסה רדיאלית, וזה נחמד אם הגרף שלך מתקרב לעץ אמיתי, כלומר שלך
תלויות מתפזרות, אך למעט צמתים יש תלויות משותפות עם אחרים. יש כמה
צופים זמינים, שאף אחד מהם לא עוזר לך לנווט במבנה הגרף:
מנוקד
לכלי התצוגה שלו, dotty, יש יתרון על פני uDraw(Graph) שאתם יכולים בחופשיות
גרור את הצמתים, מבלי להיות מוגבל לרמה שהוקצתה על ידי הפריסה. כאשר
המסך שלך מלא בקצוות, גרירת צומת אחד נותנת לך רושם טוב של המקום שבו
קצוות הצומת הזה מובילים אליו. אבל הוא גם מאבד מידע כשמשנים אותו.
חוץ מזה, זהו כלי Xlib מיושן. הוא גם מציג הודעה קטנה ומעצבנת
עיגול באמצע כל קצה, ונראה שאין אפשרות להיפטר ממנו.
ZGRViewer
ZGRViewerhttp://zvtm.sourceforge.net/zgrviewer.html> ניתן להורדה בנפרד
מציג ג'אווה הכולל נוחות של זום ותנועה פנורמית. הגרף ניתן לצפייה בלבד, ללא
הזזת צמתים. ישנם חמישה כפתורים באזור התצוגה, המציעים אפשרויות נוספות
וריאציות זום חצי תלת-ממדיות מפוארות, אך בניגוד לפונקציונליות הבסיסית, הן יכולות להיות
איטי ביותר בהתאם להגדרת ה-Java שלך. עבור ה-Sun Linux Java שלי, הדברים הבאים
נתן דחיפה אדירה:
ייצוא J2D_PIXMAPS=משותף USE_DGA_PIXMAPS=1
גראפה
Grappa הוא מציג Java 1.2 שניתן להוריד בנפרד. אין מעטפת עטיפת.
סקריפט, קובץ ה-jar אינו מכיל מניפסט, אף אחד ממקורות המקור אינו מכיל פונקציה ראשית, ו-
בעזרת מציג האפליקציות (appletviewer) הוא יצר שני חלונות גבוהים שתלויים יחד עם "יישומון התחלתי".
הודעה, אז אני לא יודע איך לבדוק את זה. אפשר לנסות את זה באתר הדגמה כ...
יישומון.
בחירת קצה הופכת אותו באדום מודגש, כך שתוכל לגלול ידנית את הקצה השני שלו לתוך
תצוגה מבלי לאבד אותה מהעין. חוץ מזה, וזום ומחיקה של צמתים
נראה שאין לו תכונות שימושיות. הוא מתעלם מצבעים הקסדצימליים תקפים.
מפרטים.
SVG SVG, אחד מסוגי הקבצים שאליהם יכולים השרתים האחוריים לייצא, הוא כבר די ישן. אבל חלקם...
דפדפנים עדיין נתקלים בבעיות איתו. כאשר מטמיעים אותו עם תג אובייקט בלבד, אופרה
קנה מידה שלו, אחרים גוזרים אותו, וזה חסר תועלת לתמונה ממוזערת. כאשר הוא מוצג כ
מסמך משלו, רק אופרה וקונקרור מאפשרים קנה מידה שלו, בעוד שפיירפוקס מאפשרים קנה מידה
רק התוויות. למרות שהתוויות הן טקסט, אף דפדפן לא יכול לחפש אותן.
ל-IE6 אין מושג, אלא אם כן מתקינים תוסף. יישום ייעודי, כמו...
אינקסקייפ, יכול לשרת אותך טוב יותר.
HTML
זהו פורמט עץ פשוט של רשימות לא מסודרות שניתן לעיין בו בכל דפדפן.
צריך להיות JavaScript ו-CSS, המאפשרים קיפול של עצי משנה וראיית צבעים. בדרך כלל
הגרף שלך לא יהיה עץ, שעובדים סביבו על ידי חזרה על צמתים בכל תת-עץ
נחוץ, אלא כקישור להופעה הראשונה שבה ניתן לראות את כל המאפיינים שלו.
לתמיכה המוגבלת של IE ביוניקוד, חצים אנכיים משמשים ליחסי הכללה, במקום זאת
של החצים המנוקדים הרגילים.
טְקסטוּאַלִי גרף
זהו פורמט פשוט מבוסס הזחה שניתן לעיין בו בכל מציג טקסט.
כלומר, בדרך כלל ניתן ללמוד גרפים גדולים בהרבה מאשר עם הפורמטים האחרים. ב-Emacs אתה
ניתן להשתמש בקו מתאר ובקיפול החוצה לניווט גרפי חזק מאוד עם עטיפה קטנה זו
מצב:
(define-derived-mode, textgraph-mode, outline-mode, "גרף"
(מצב תצוגה)
(הגדר (make-local-variable 'outline-regexp) " *.")
(הגדר (make-local-variable 'outline-level))
(lambda () (/ (- (סוף התאמה 0) (תחילת התאמה 0) -1) 2)))
(הגדר (make-local-variable 'outline-font-lock-keywords)
'(("^ *\\(?:{[az,]+} \\)?\\([^{\n]+\\)" (1 (גופן-מתאר-נעילה-מבט) nil t))))
(setq imenu-generic-expression
'((אין "^ *\\(?:{[az,]+} \\)?\\(.+?\\)\\(?:{[az,]+}\\)?$" 1))))
ניתן להפריד בין השורות באמצעות פסיקים בין סוגריים מרובעים, אלא אם כן נותנים גם את
אפשרות "-p, --plain". כאשר אלה מגיעים לפני היעד, הם מתייחסים לקשר
עם ההורה, כלומר השורה הקודמת פחות מוכנסת. כאשר הם מגיעים אחרי השורה המבוקשת,
הם מתייחסים למטרה עצמה. הם כדלקמן:
כי
כאשר זה מגיע לפני יעד, ההורה נבנה בגללו. כאשר זה
מגיע לאחר מכן, למטרה הייתה סיבה אינהרנטית להיבנות מחדש.
דו כיוונית
תלות או הכללה זו הולכת לשני הכיוונים.
לכלול
קובץ האב כולל קובץ זה. הערה זו ניתנת רק כאשר מוצג גם
תלות.
מְזוּיָף
זוהי מטרה מזויפת.
חזר
המידע אודות מטרה זו וצאצאיה כבר נמסר קודם לכן.
אפשרויות
אם לא תספקו תבניות, makeppgraph יתחיל לפעול עם כל הצמתים שהוא יכול
קטע מיומן של makepp. כאשר ניתנת תבנית אחת או יותר (באמצעות "?", "*", "**" ו/או
"[...]"), הוא יתאים לאלה שבמערכת הקבצים ויפעל על כל אלה שמופיעים גם ב-
יומן. עבור אלה, כברירת מחדל, ייבחר "כלפי מעלה", כלומר כל היעדים שתלויים ב
ו/או לכלול כל אחד מהם ו"כלפי מטה", כלומר את כל המטרות ו/או המקורות, אשר כל אחד מהם
אותם תלויים ב- ו/או כוללים. (הכיוונים הם מטאפוריים, מכיוון שהגרף הוא
מוצג בצורה הטובה ביותר משמאל "למעלה" לימין "למטה" עקב רוחב הצמתים.)
-A שם הקובץ
--args-file=שם הקובץ
--ארגומנטים-קובץ=fשם משתמש
קרא את הקובץ ונתח אותו כקובץ מופרד ברווחים לבנים ו/או בשורה חדשה, אולי במירכאות.
אפשרויות.
-b
--כִּי
--סיבות-בנייה
אם צומת נבנה מחדש בגלל תלות, אז קצה זה מוצג באדום. אבוי
makepp מיישמת אופטימיזציות כדי לזהות מתי מטרה זקוקה לבנייה מחדש, כך שהיא
לעיתים קרובות לא ניתן לומר איזה קובץ גרם לבנייה מחדש. אם הצומת נבנה מחדש עבור
סיבה שלא מיוחסת לקובץ אחר, אז גבול הצומת אדום. עם
ב-uDraw(Graph) נעשה שימוש בגבול כפול, מכיוון שהוא אינו תומך בצבע גבול.
-D
-- תלות
צייר גרף של יחסי התלות שנקבעו על ידי makepp. זוהי ברירת המחדל
אלא אם כן צוין גם "-i, --includes".
-d
--מטה
--כלפי מטה
אפשרות זו משמעותית רק אם תספק דפוס אחד או יותר. אז היא תתבצע רק
בחר את היעדים ו/או המקורות שהקבצים התואמים תלויים בהם, או שהם
לִכלוֹל.
-g
--גראפוויז
--נְקוּדָה
צור גראפוויז .נְקוּדָה קובץ, במקום קובץ uDraw(Graph) המוגדר כברירת מחדל .udg קובץ.
-h
--html
יצירת דפדפן Html. קובץ, במקום קובץ uDraw(Graph) המוגדר כברירת מחדל .udg קובץ.
-?
- עזרה
הדפיסו סיכום קצר של האפשרויות.
-I בספרייה
--include=בספרייה
--include-dir=בספרייה
להוסיף בספרייה לנתיב טעינת Perl @INC.
-i
--כולל
במקום תלויות (או עם "-D, --dependencies" בנוסף להן) צייר
גרף של יחסי הכללה. זה יירשם רק במידה הנדרשת.
לניתוח. כדי לקבל את התמונה המלאה אתה זקוק לבנייה מלאה חדשה.
-l שם הקובץ
--log=שם הקובץ
--log-file=שם הקובץ
השמיים שם הקובץ הוא המקום שאליו כתבה makepp את הלוג שלה. ייתכן שזו גם ספרייה, שבה
קובץ שנקרא .makepp/log or היכנס יבוצע חיפוש. כדי לקרוא מ-stdin, עליך לתת -
בתור שם הקובץכאשר אפשרות זו אינה ניתנת, ברירת המחדל היא הספרייה הנוכחית.
ניתן לתת אפשרות זו מספר פעמים, למשל למיזוג כל הלוגים מ
"--traditional-recursive-make". אבל התלויות שהסתרתם מ-makepp דרך ה-
פרדיגמת הרקורסיה הרעה כמובן לא יכולה להופיע כאן.
-M מודול[=argument,...]
--module=מודול[=argument,...]
טען את המודול וייבא את כל הפונקציות שהוא מייצא.
-m perlcode
--מיזוג=perlcode
לְבַצֵעַ perlcode עבור כל יעד והתלויות שלו. ראה מיזוג לפרטים נוספים אודות
אפשרות זו.
-o שם הקובץ
--פלט=שם הקובץ
כתוב את הפלט לקובץ זה.
-p
--מישור
אל תשתמשו בתכונות כמו צבעים או קווים מקווקווים. זה שימושי במיוחד עבור
סידור פלט "-t, --text". בפורמט זה יאבדו קצוות דו כיווניים
אלא אם כן אתה משלב זאת עם "-s, --separate-directions".
-r perlcode
--שינוי שם=perlcode
לְבַצֵעַ perlcode עבור כל יעד והתלויות שלו. ראה שינוי שם לפרטים.
על אפשרות זו.
-s
--כיוונים נפרדים
צייר שני חצים נפרדים, במקום כל חץ בעל שני קצוות, כדי להקל עליהם
לְזַהוֹת.
-t
--טֶקסט
צור תוכן קריא לבני אדם .טקסט קובץ, במקום קובץ uDraw(Graph) המוגדר כברירת מחדל .udg קובץ.
-u
--לְמַעלָה
--כְּלַפֵּי מַעְלָה
אפשרות זו משמעותית רק אם תספק דפוס אחד או יותר. אז היא תתבצע רק
בחר את היעדים התלויים ו/או כוללים את הקבצים התואמים.
-V
--גִרְסָה
הדפיסו את מספר הגרסה.
שִׁכתוּב
הטכניקות בפרק זה חיוניות בדרך כלל לקבלת גרף בגודל סביר.
הם מנוסחים כקוד פרל, הכרת השפה מועילה. אבל אתה אמור להיות מסוגל
להשיג לא מעט עם הדוגמאות כאן או בגלריה
<http://makepp.sourceforge.net/gallery/>.
שינוי שם
זהו שכתוב השם הראשון שמתרחש, אם ניתנת האפשרות "-r, --rename".
בכל שם שנתקלים בו, קוד פרל נקרא. הוא מקבל שם קובץ ב-$_, והוא עשוי לשנות
זה. זה נחוץ לעתים קרובות, מכיוון ש-makepp רושם שמות קבצים מלאים, כך שצומת אחד יכול
בקלות להיות ברוחב של חצי מסך.
ראשית, ניתן לכתוב מחדש שמות ל-"undef" או למחרוזת ריקה. זה יבטל
הצומת מהגרף. שימו לב שהסרת צומת בשלב הראשון הזה תשבור את
שרשרת התלות אם צומת זה היה באמצע.
ניתן גם לכתוב מחדש שמות שונים לאותה מחרוזת, ולכפות את כולם לאותו מחרוזת
צומת, אשר צובר את התלויות והתלויים המשולבים.
מצד שני, אפשר פשוט לשנות את שמם של שמות לשמות (בדרך כלל) קצרים יותר, כדי להפחית
רוחב הצמתים, שיכול להיות רחב מדי עם שמות קבצים מוחלטים. ישנם כמה
פונקציות מוגדרות מראש בחבילה "Mpp::Rewrite", שבה גם הקוד שלך רץ, תוכל להשתמש
עבור זה. אלה מחזירים אמת אם הם עשו משהו, כך שתוכלו לשלב אותם כך:
--שינוי שם='cwd(1) || &בית || &usr'
&cwd
cwd מספר
cwd מספר, שֵׁם[, מפריד]
מסיר את ספריית העבודה הנוכחית מתחילת הנתיב. עם מספר, גם
מחליף ספריות אב שמעלה ברמות רבות עם המספר הנכון של ../
ספריות, במידת הצורך. במקרה זה ניתן לתת חלופה שם, כמו
נערם ':' במקום '..' ובנוסף חלופה מפריד כמו '' במקום
של '/'. במקרה הראשון ייתכן שתקבל :/:/א/ב, בשנייה קצרה עוד יותר ::א/ב
במקום ../../א/בהעברת מספר שימושית אם מציירים דברים מ
עצים שכנים. או שיש לך src הספרייה, שבה מתרחשת רוב האקשן, כך שתוכלו
תתקשר ל-makeppgraph שם, אבל רוצה לראות את הקשר גם לספריות האחרות שלך.
אם לא תציג אפשרות "--rename", &cwd הוא ברירת המחדל. אם אינך מעוניין לשנות את השם,
אתה יכול לתת קצת perlcode כמו "--rename=1" שלא עושה כלום.
&dir
זה מצמצם בצורה נהדרת את מורכבות הגרפים. זה מצמצם כל קובץ לגודלו.
ספרייה. זה מסתכם בשאלה: "קבצים שמקורם בספרייה תלויים קבצים
מאיזו ספרייה אחרת?" שימו לב שבעוד שגרף התלות הוא תמיד אציקלי
(אחרת מייקפ לא היה יודע מאיפה להתחיל לבנות), זה לא נכון לגבי הבנייה המצומצמת הזו
תצוגה. לדוגמה, אם מדריך1/א תלוי dir2/b ו מדריך2/א on dir1/b שיוצג כ-
תלות הדדית בין dir1 ו dir2מכיוון שלגרף מחזורי אין נקודת התחלה ברורה
נקודה, הפריסה עשויה להיות מוזרה.
שלא כמו הפונקציות האחרות בסעיף זה, זה אינו בלעדי עם האחרות.
ייתכן שלא תרצה לשלב את זה בצורה הגיונית:
--rename='&dir; &cwd || &home'
&בַּיִת
מחליף את ספריית הבית שלך ב ~/.
&makepp
מחליף את ספריית ההתקנה של makepp ב- |מ|.
&סוף
suf מספר
זה גם מצמצם בצורה נהדרת את מורכבות הגרפים. זה מצמצם כל קובץ שיש בו
סיומת לכוכבית וסיומת זו. כך שתוכלו לראות אילו סוגי קבצים תלויים
על אילו סוגים אחרים. עם ארגומנט של 0 זה משאיר את התו הראשון של ה
ספרייה, בתנאי שהיא אחת מהאפשרויות הבאות: "/", "~" או "|" (כפי שנוספה על ידי &home או &usr אם אתה
קרא לאלה ראשונים). עם ארגומנט חיובי, זה משאיר את מספר הרמות הזה של ספריות
בהתחלה. עם ארגומנט שלילי, זה מסיר את מספר הרמות של ספריות ב
הסוף. אז בשביל /א/ב/ג/ד/ה/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
בשביל קרוב משפחה א/ב/ג/ד/ה/xy אתה מקבל:
&suf *.y
סוף 0 *.y
סוף 1 א/*.י
suf -1 א/ב/ג/ד/*.y
&usr
תַחַת /, /usr, /uסר/local, /uסר/X11, /uסר/X11R6, /uסר/X11R7 or /opt, עבור כל אחד מה-
ספריות bin, etc, include, lib or sארנבת, ראשי התיבות של מילים אלה הם
משורשר בין שורות.
לְמָשָׁל /uסר/lמקומי/bin/foobar הופך להיות |ulb|foobar or /uסר/include/net/if.h הופך להיות
|ui|net/if.hשימו לב ש-`l' מייצג `local' כאשר הוא בין שתי אותיות ו-`lib'
כאות האחרונה.
מתמזג
זהו שכתוב השם השני שמתרחש, אם ניתנת האפשרות "-m, --merge".
ה-API עדיין בפיתוח! נכון לעכשיו, היעד מועבר ב-$_ והתלות
כארגומנט. אם perlcode מחזיר ערך, ערך זה מחליף גם את ה-target וגם את ה-.
תלות, מיזוגם לצומת אחד. כמה פונקציות מוגדרות מראש יכולות לעזור לך:
c2o עבור כל מקור C/C++ והתוצאה המתקבלת .o קובץ, למזג אותם לצומת אחד, על ידי הוספה ל
נתיב המקור סיומת של ">o" כמו אי שם/איפה/foo.cc>o, אפילו אם ה .o הקובץ נמצא ב
ספרייה אחרת.
exe עבור כל .o קובץ והקובץ הניתן להרצה שנוצר עם אותו שם בסיס של notdir ללא
סיומת או עם .exe, למזג אותם לצומת אחד, על ידי הוספת כוכבית ל- .o קובץ.
זה לא יעבוד כרגע יחד עם c2o.
x2 עבור כל זוג קבצים עם אותו שם, בדרך כלל כותרת או ספרייה שפורסמה אל
ספרייה מרכזית, למזג אותם לצומת אחד, על ידי הוספה *2 לתלות.
הסביבה
Makeppgraph בוחן את משתנה הסביבה הבא:
$MAKEPPGRAPHFLAGS
כל דגלים במשתנה סביבה זה מתפרשים כאפשרויות שורת פקודה לפני
כל אפשרות מפורשת. ציטוטים מתפרשים כמו בקובצי makefile.
השתמש ב-mpg באופן מקוון באמצעות שירותי onworks.net