Difference between revisions of "He/כלי בניה"
m (→Autotools: style) |
m (→Autotools: style) |
||
Line 41: | Line 41: | ||
=== Autotools === | === Autotools === | ||
− | ('''כלי | + | ('''כלי הוצא משימוש במיזם גנוקאש''') |
בעבר הסתמכנו על [https://en.wikipedia.org/wiki/GNU_Build_System GNU Build System] כדי לתצר את מערכת הבניה '''Gnucash-docs'''.בשם לעיתים קרובות גם "autotools".הכוונה היא לזנוח כלי זה לחלוטין בגרסת 4.9xx! | בעבר הסתמכנו על [https://en.wikipedia.org/wiki/GNU_Build_System GNU Build System] כדי לתצר את מערכת הבניה '''Gnucash-docs'''.בשם לעיתים קרובות גם "autotools".הכוונה היא לזנוח כלי זה לחלוטין בגרסת 4.9xx! | ||
Line 53: | Line 53: | ||
cd .build | cd .build | ||
</Syntaxhighlight> | </Syntaxhighlight> | ||
− | #; | + | :;הערות |
+ | #;הפקודות <tt>configure</tt> ו- <tt>make</tt> מורצות מ- {BUILDDIR}$ בעוד שהמקור נערך בספרית האב {SOURCEDIR}$. | ||
#<code>configure</code>: תסריט מסוף זה, המחולל על ידי <code>autogen.sh</code> כפי שתואר לעיל, בודק שהמערכת והמשתנים שלה מכסים את דרישות קובצי הביניים <code>Makefile.in</code> ב- <code>Makefile</code> כך שפקודת <code>make</code> תשתמש בהם בפועל כדי לחולול את קבצי התיעוד של המוצר. ניתן לצפות ברשימת הפרמטרים ומשתני הסביבה שכל תכנית <code>configure</code> "מבינה" באמצעות הפקודה <code>configure --help</code>. | #<code>configure</code>: תסריט מסוף זה, המחולל על ידי <code>autogen.sh</code> כפי שתואר לעיל, בודק שהמערכת והמשתנים שלה מכסים את דרישות קובצי הביניים <code>Makefile.in</code> ב- <code>Makefile</code> כך שפקודת <code>make</code> תשתמש בהם בפועל כדי לחולול את קבצי התיעוד של המוצר. ניתן לצפות ברשימת הפרמטרים ומשתני הסביבה שכל תכנית <code>configure</code> "מבינה" באמצעות הפקודה <code>configure --help</code>. | ||
#<code>make</code>: באמצעות <code>Makefile</code> כתבנית, <code>make</code> מריץ את התכניות והתסריטים השונים הדרושים לביצוע הבנייה. המשתנים שלו הם היעדים אותם יש לבנות; יישנם שני יעדים מסויימים, <code>make check</code> מריץ סדרת בדיקות להבטחת בניית הפרויקט כראוי ו- <code>make install</code> שמעביר את תוצרי הבנייה למיקומים מהם ניתן להשתמש בהמשך בתכנית שנבנתה. | #<code>make</code>: באמצעות <code>Makefile</code> כתבנית, <code>make</code> מריץ את התכניות והתסריטים השונים הדרושים לביצוע הבנייה. המשתנים שלו הם היעדים אותם יש לבנות; יישנם שני יעדים מסויימים, <code>make check</code> מריץ סדרת בדיקות להבטחת בניית הפרויקט כראוי ו- <code>make install</code> שמעביר את תוצרי הבנייה למיקומים מהם ניתן להשתמש בהמשך בתכנית שנבנתה. |
Revision as of 07:40, 11 December 2021
שפות | אנגלית | גרמנית | ספרדית | עִברִית | פורטוגזית | צרפתית |
---|
כללי
פרויקט גנוקאש משתמש במגוון כלים לבניית התכנית, המסמכים והחבילות יעודיות למערכת ההפעלה.
כלים בסיסיים
כלים אלו שולטים בתהליך הבנייה ברמה נמוכה.
Make
Make הוא כלי בניה אוטומי הבונה יעדים ממקור על ידי פירוש קבצי תסריט (סקריפטים) הנקראים Makefiles המורים לכלי הבניה כיצד להפוך את קובץ או קובצי המקור לקובץ או קובצי היעד. קובצי Makefiles הם קובצי מלל רגילים. Make מטפל היטב בשתי בעיות הקשורות בבנית תוכנה בסביבה מרובת קבצים: א. טיפול בתליויות בין קבצים וספריות, ב. טיפול בשינויים במקצת מהספריות מבלי לבצע בניה מחדש.
"סביבות פיתוח משולבות" או "IDEs" רבות משתמשות ב- make
(או בן דודו nmake
של מיקרוסופט) לביצוע הבנייה. את קובצי Makefiles ניתן לכתוב באופן ידני (כמו במקרה של gnucash-htdocs.git) או ליצור אותם באמצעות Autotools או CMake. ניתן להפעיל את Make באופן רקורסיבי לבניית תוכניות מורכבות ולהשתמש בחותמות זמן של קבצים כדי להדר מחדש רק קבצים וספריות שבהם התלויות השתנו. קובצי Makefiles מציינים בדרך כלל מספר יעדי בניה, אותן ניתן לספק כמשתנים בזמן הקריאה ל- make, כדי לבצע פעולות מסוימות ולייצר פלטים מסויימים.
Ninja
Ninja היא מערכת בנייה קלת משקל ששמה דגש על מהירות ביצועים. היא תוכננה כך שקבצי הקלט שלה נוצרים על ידי מערכת בנייה ברמה גבוהה יותר, והיא נועדה להריץ את תהליך הבנייה במהירות הגבוהה האפשרית.
- הערה
- פקודות השורה משתנות מ־
make [target]
ל־ninja [target]
. - הערה
- במספר הפצות לינוקס שם הפקודה שונה ל־
ninja-build
על מנת להבדיל בינה לבין תכנה אחרת בשםninja
.
בקישור הבא ניתן למצוא השוואה של CMake ו־ make, להשווה בין הכלים
CMake משמש בשכיחות גבוהה לתיצור קובצי הבניה של ninja
: (כדי לעשות זאת, יש להעביר צרף שפה (פָּרָמֶטֶר -G Ninja
כמשתנה של cmake
.
שרשראות כלים
בנוסף, גנוקאש עושה שימוש בשרשראות כלים שונות כדי לשלוט בכלים הבסיסיים שהוזכרו לעיל. התוכנית משתמשת ב- CMake כבסיס לשרשרת הכלים שלה, בעוד שתיעוד המשתמש נעזר ב-Autotools כבסיס לשרשרת הכלים. אתר גנוקאש לעומת זאת, נבנה ישירות באמצעות Make. תיעוד ה- API נוצר מקוד המקור באמצעות Make או Ninja, תלוי באופן התצור של מערכת בניית קוד המקור.
CMake
על מנת להגדיר או לתצר את תוכנית מערכת הבניה, נשתמש ב- CMake. אמור לשמש גם עבור Gnucash-docs.
זוהו יישום תכנה חוצת-מסדות, חופשיהלשימוש ובקוד פתוח, לניהול תהליך בניית התוכנה בשיטה שאינה תלויה במהדר. הוא תומך במבנה ספריות היררכי וביישומים התלויים במספר ספריות. הוא משמש בשילוב עם סביבות בנייה מקומיות כמו, Xcode של אפל, make ו- Visual Studio של מיקרוסופט . יש לו תלויות מזעריות, ודורש רק מהדר ++C במערכת הבנייה העצמית שלו. נכון לעכשיו, CMake משמש בעיקר לתצורת מערכת הבנייה על ידי יצירת קבצי הקלט לתוכניות הבנייה make או ninja שמהדרות ומקשרות את התכנית אל הספריות שלה. כלי עזר אלה שולטים גם בהתקנת התכנית ובספריות. ראו גם CMake#GnuCash Configuration Variables.
Autotools
(כלי הוצא משימוש במיזם גנוקאש) בעבר הסתמכנו על GNU Build System כדי לתצר את מערכת הבניה Gnucash-docs.בשם לעיתים קרובות גם "autotools".הכוונה היא לזנוח כלי זה לחלוטין בגרסת 4.9xx!
זוהי מערכת מורכבת, בעלת יכולת תצורה ובניית מגוון רחב של מיזמים, על מגוון רחב של מסדות. העמוד באתר The Autotools Mythbuster מספק הדרכה ומקור מצוין לאלו שמעוניינים ללמוד על יצירה ובנייה של מיזמים באמצעות כלי זה.
לאלו שמעוניינים פשוט לבנות את התיעוד מקוד המקור, שלושת הפקודות הבאות יספיקו:
autogen.sh
: בודק שכל החלקים הנדרשים של מערכת הבנייה מותקנים, ואז בונה את תוכניתconfigure
מהמקור שלוconfigure.ac
ואת Makefiles קובצי הבינייםMakefile.in
, מהמקור שלהםMakefile.am
. לאחר מכן, הרצתautogen.sh
לאחר שכפול המאגרgnucash-docs.git
, בכל פעם שעורכים קובץMakefile.am
אוconfigure.ac
, ובכל פעם שמושכים הידורים עם שינויים לקבצים אלו. מאחר שהרצתו ללא כל צורך אינה מזיקה כלל, אנו ממליצים להריץ אותו לאחר כל פקודתgit pull
.- (לא נדרש, אך מומלץ)
mkdir .build
cd .build
- הערות
- הפקודות configure ו- make מורצות מ- {BUILDDIR}$ בעוד שהמקור נערך בספרית האב {SOURCEDIR}$.
configure
: תסריט מסוף זה, המחולל על ידיautogen.sh
כפי שתואר לעיל, בודק שהמערכת והמשתנים שלה מכסים את דרישות קובצי הבינייםMakefile.in
ב-Makefile
כך שפקודתmake
תשתמש בהם בפועל כדי לחולול את קבצי התיעוד של המוצר. ניתן לצפות ברשימת הפרמטרים ומשתני הסביבה שכל תכניתconfigure
"מבינה" באמצעות הפקודהconfigure --help
.make
: באמצעותMakefile
כתבנית,make
מריץ את התכניות והתסריטים השונים הדרושים לביצוע הבנייה. המשתנים שלו הם היעדים אותם יש לבנות; יישנם שני יעדים מסויימים,make check
מריץ סדרת בדיקות להבטחת בניית הפרויקט כראוי ו-make install
שמעביר את תוצרי הבנייה למיקומים מהם ניתן להשתמש בהמשך בתכנית שנבנתה.
חזרה לעמוד: