PKGCONF(1) General Commands Manual PKGCONF(1)

pkgconf — بازیابی اطلاعات بسته و وابستگی‌های کامپایل

pkgconf [options] module ...

برنامهٔ pkgconf اطلاعات پیکربندی مربوط به آرگومان‌های module را از پرونده‌های pc(5) نصب‌شده بر روی سیستم بازیابی کرده و بسته به options مشخص‌شده، بخش‌هایی از اطلاعات بازیابی‌شده را چاپ می‌کند. رایج‌ترین کاربرد این برنامه، چاپ پرچم‌های کامپایلر و پیونددهنده (linker) مورد نیاز برای ساخت نرم‌افزاری است که از کتابخانه‌های ارائه‌شده توسط آرگومان‌های module استفاده می‌کند.

هنگام چاپ پرچم‌های کامپایلر و پیونددهنده، pkgconf نویسه‌های فرار پوسته (metacharacters) (مانند نقل‌قول‌ها، فاصله‌ها، قلاب‌ها، آکولادها و نویسه‌های الگو) را در هر قطعه با یک بک‌اسلش اسکیپ می‌کند. این خروجی طوری طراحی شده است که توسط پردازشگر بعدی با استفاده از قوانین تفکیک کلمات پوستهٔ POSIX (word-splitting) مجدداً نشانه‌گذاری شود، همان‌گونه که سیستم‌های ساخت عموماً انجام می‌دهند؛ تحت این قوانین، بک‌اسلش‌های محافظ حذف شده و مقادیر اصلی بازیابی می‌شوند. توجه داشته باشید که چسباندن مستقیم خروجی در یک جایگزینی دستوری بدون نقل‌قول، برای نمونه ‘cc $(pkgconf --libs foo)’, تفکیک کلمات و بسط مسیر را انجام می‌دهد، اما بک‌اسلش‌ها را حذف نمی‌کند ؛ بنابراین مقداری که حاوی چنین نویسه‌هایی باشد ممکن است با فرار (escape) دست‌نخورده به زنجیرهٔ ابزار کامپایلر برسد.

پرونده‌های pc(5) در مسیری جستجو می‌شوند که از گزینهٔ --with-path, متغیرهای محیطی PKG_CONFIG_PATH و PKG_CONFIG_LIBDIR و تعدادی دایرکتوری پیش‌فرض داخلی کامپایل‌شده تشکیل شده است. آرگومان‌های module با نام پرونده‌ها، البته بدون پسوند نام پروندهٔ .pc, مطابقت دارند.

چندین مورد از options موجب خروج فوری برنامه می‌شوند. اگر چند گزینه از این موارد با هم داده شوند، تنها گزینه‌ای که بالاترین اولویت را دارد اعمال می‌گردد و گزینه‌های با اولویت کمتر بدون اخطار نادیده گرفته می‌شوند. این گزینه‌ها به ترتیب اولویت نزولی عبارتند از:

  1. گزینه‌های بدون نیاز به ماژول: --dump-personality, --about, --version, --help, --atleast-pkgconfig-version, --list-all و --list-package-names: این گزینه‌ها باعث می‌شوند تمام آرگومان‌ها نادیده گرفته شوند.
  2. گزینه‌های وابسته به آرگومان: --atleast-version, --exact-version و --max-version: این گزینه‌ها تنها ماژول‌هایی را بررسی می‌کنند که صراحتاً در خط فرمان مشخص شده‌اند و وابستگی‌ها را بررسی نمی‌کنند.
  3. گزینه‌های خروجی محدود: --validate, --license, --license-file, --link-abi, --source, --uninstalled و --env: این گزینه‌ها حل وابستگی‌ها را انجام می‌دهند، اما پس از چاپ اطلاعات درخواست‌شده توسط گزینهٔ دارای بالاترین اولویت خارج می‌شوند و سایر گزینه‌های خروجی را که ممکن است مشخص شده باشند نادیده می‌گیرند.

چندین گزینهٔ دیگر حداقل به یک آرگومان module نیاز دارند، خروجی تولید می‌کنند، موجب خروج زودهنگام نمی‌شوند و می‌توانند با یکدیگر ترکیب شوند، اما بر تمام گزینه‌های --cflags و --libs ارجحیت داشته و آن‌ها را غیرفعال می‌کنند:

  1. گزینه‌های خروجی تک‌ماژولی: --path, --print-variables, --variable: اگر هر یک از این گزینه‌ها مشخص شود، تنها اولین آرگومان module استفاده می‌شود، تمامی آرگومان‌های دیگر بدون اخطار نادیده گرفته می‌شوند و هیچ تلاشی برای حل وابستگی‌ها صورت نمی‌گیرد.
  2. گزینه‌های خروجی عمق یک: --print-provides, --modversion, --print-requires و --print-requires-private: اگر هر یک از این گزینه‌ها مشخص شود، تنها ماژول‌هایی بررسی می‌شوند که صراحتاً در خط فرمان تعیین شده‌اند و هیچ تلاشی برای حل وابستگی‌ها انجام نمی‌شود.
  3. گزینه‌های خروجی عمومی: --simulate, --digraph, --solution, --fragment-tree, --newlines: این گزینه‌ها حل وابستگی‌ها را محدود نمی‌کنند.

مهم‌ترین گزینه‌های خروجی، یعنی --cflags و --libs می‌توانند با یکدیگر ترکیب شوند، اما در صورت مشخص شدن هر یک از گزینه‌های فهرست‌شده در بالا، لغو و نادیده گرفته می‌شوند.

فهرست کامل options به شرح زیر است:

شماره نسخه، اعلان حق نشر (Copyright) و مجوز برنامهٔ pkgconf را در خروجی استاندارد چاپ کرده و خارج می‌شود. بیشتر گزینه‌های دیگر و تمامی آرگومان‌های خط فرمان نادیده گرفته می‌شوند.
=version
اگر شماره version درخواست‌شده بزرگ‌تر از شماره نسخهٔ برنامهٔ pkgconf باشد، با خطا خارج می‌شود، و در غیر این صورت با موفقیت پایان می‌یابد. بیشتر گزینه‌های دیگر و تمامی آرگومان‌های خط فرمان نادیده گرفته می‌شوند.
=version
آرگومان‌های module را به ترتیب ارائه‌شده بررسی می‌کند. به محض اینکه یک module وجود نداشته باشد، با خطا خارج می‌شود، و به محض اینکه شماره نسخهٔ یک module بزرگ‌تر یا مساوی با شماره version درخواست‌شده باشد، با موفقیت خارج می‌شود. اگر شماره نسخهٔ هر یک از module‌ها کمتر از شماره version درخواست‌شده باشد، با خطا خارج می‌شود.
, --cflags-only-I, --cflags-only-other
به ترتیب، تمام پرچم‌های کامپایلر مورد نیاز برای کامپایل در برابر module, یا فقط پرچم‌های مسیر include (-I), یا فقط پرچم‌های کامپایلری که مربوط به مسیر include نیستند را چاپ می‌کند. این گزینه‌ها مستلزم --print-errors هستند.
برخی پیام‌های هشدار غیرمهلک را در خروجی خطای استاندارد چاپ می‌کند که در غیر این صورت بدون اخطار نادیده گرفته می‌شدند. این گزینه همچنین مستلزم --print-errors است. اگر pkgconf بدون تعریف ماکروی پیش‌پردازندهٔ PKGCONF_LITE کامپایل شده باشد، این گزینه پیام‌های اشکال‌زدایی (دیباگ) متعددی را نیز در خروجی خطای استاندارد چاپ می‌کند.
تلاش می‌کند تا متغیر prefix مناسب برای جابجایی (relocation) ورودی‌های CFLAGS و LIBS را تعیین کند. این ویژگی عمدتاً برای بسترهایی سودمند است که SDKهای چارچوب آن‌ها قابل جابجایی هستند، مانند ویندوز.
=varname=value
متغیر varname را با مقدار value تعریف می‌کند. متغیرها در خروجی پرس‌وجو استفاده می‌شوند و نتایج برخی ماژول‌ها ممکن است بر پایهٔ وجود یک تعریف متغیر تغییر کند.
راه‌حل حل‌کنندهٔ وابستگی را در قالب یک پروندهٔ ‘dot’ متعلق به graphviz ذخیره و تخلیه (dump) می‌کند. از این پرونده می‌توان همراه با graphviz برای مصورسازی وابستگی‌های متقابل ماژول‌ها استفاده کرد. این گزینه تنها در صورتی در دسترس است که ماکروی پیش‌پردازندهٔ PKGCONF_LITE در هنگام کامپایل تعریف نشده باشد.
ویژگی ‘define-prefix’ را غیرفعال می‌کند.
قابلیت جابجایی مسیر (path relocation) را غیرفعال می‌کند.
برخی تنظیمات پیش‌فرض را در خروجی استاندارد چاپ کرده و خارج می‌شود؛ به‌ویژه مسیر پیش‌فرض جستجوی ماژول که در صورت عدم تعریف PKG_CONFIG_LIBDIR استفاده می‌شود، فهرست پیش‌فرض مسیرهای include که در صورت عدم تعریف PKG_CONFIG_SYSTEM_INCLUDE_PATH فیلتر می‌شوند، و فهرست پیش‌فرض مسیرهای کتابخانه که در صورت عدم تعریف PKG_CONFIG_SYSTEM_LIBRARY_PATH فیلتر می‌شوند. بیشتر گزینه‌های دیگر و تمامی آرگومان‌های خط فرمان نادیده گرفته می‌شوند. این گزینه تنها در صورتی در دسترس است که ماکروی پیش‌پردازندهٔ PKGCONF_LITE در هنگام کامپایل تعریف نشده باشد.
=varname
مقادیر درخواست‌شده را به عنوان اعلانات متغیر در قالبی مشابه دستور env(1) چاپ می‌کند.
مسیر جستجوی ماژول را تنها از --with-path و PKG_CONFIG_PATH مقداردهی اولیه می‌کند و PKG_CONFIG_LIBDIR و دایرکتوری‌های پیش‌فرض داخلی کامپایل‌شده را نادیده می‌گیرد.
تمام پیام‌های خطا، هشدار و اشکال‌زدایی را به جای خروجی خطای استاندارد در خروجی استاندارد چاپ می‌کند.
=version
آرگومان‌های module را به ترتیب ارائه‌شده بررسی می‌کند. به محض اینکه یک module وجود نداشته باشد، با خطا خارج می‌شود، و به محض اینکه شماره نسخهٔ یک module دقیقاً برابر با شماره version درخواست‌شده باشد، با موفقیت خارج می‌شود. اگر شماره نسخهٔ هر یک از module‌ها با شماره version درخواست‌شده متفاوت باشد، با خطا خارج می‌شود.
اگر حل‌کنندهٔ وابستگی نتواند همهٔ module‌های درخواست‌شده را پیدا کند، با وضعیت خروج غیرصفر خارج می‌شود. این گزینه به طور پیش‌فرض فعال است و نمی‌توان آن را غیرفعال کرد. با این حال، گزینه‌های گوناگون دیگر باعث می‌شوند که pkgconf پیش از بررسی همهٔ آرگومان‌ها خارج شده و موفقیت یا شکست را گزارش کند.
=types
فهرست قطعات را بر اساس types مشخص‌شده فیلتر می‌کند.
خلاصه‌ای از نحوهٔ استفاده را در خروجی استاندارد چاپ کرده و خارج می‌شود. بیشتر گزینه‌های دیگر و تمامی آرگومان‌های خط فرمان نادیده گرفته می‌شوند.
قوانین ‘Conflicts’ (تداخل‌ها) در ماژول‌ها را نادیده می‌گیرد. این گزینه به طور ضمنی توسط گزینه‌هایی فعال می‌شود که صرفاً فراداده‌های ماژول‌های درخواست‌شده را گزارش می‌دهند، به جای اینکه آن‌ها را در یک بیلد ترکیب کنند؛ از جمله: --license, --license-file, --modversion, --path, --print-provides, --print-requires, --print-requires-private, --print-variables, --source و --variable.
, --keep-system-libs
قطعات پرچم‌های کامپایلر CFLAGS یا پرچم‌های پیونددهنده را که به دلیل قرار داشتن پیش‌فرض در کامپایلر فیلتر می‌شدند، حفظ می‌کند.
, --libs-only-L, --libs-only-l, --libs-only-other
به ترتیب، تمام پرچم‌های پیونددهنده مورد نیاز برای پیوند در برابر module, یا فقط پرچم‌های مسیر کتابخانه (-L), یا فقط پرچم‌های کتابخانه (-l), یا فقط پرچم‌های پیونددهنده‌ای که نه پرچم مسیر کتابخانه و نه پرچم کتابخانه هستند را چاپ می‌کند. این گزینه‌ها مستلزم --print-errors هستند.
مجموعه برچسب‌های ABI پیوند (برای نمونه c یا ) را چاپ می‌کند که module باید با آن‌ها پیوند داده شود؛ این برچسب‌ها از ویژگی‌های Link.ABI موجود در کل بستار وابستگی‌های آن مشتق می‌شوند. برچسب‌های ویژگی Link.ABI خود بسته و برچسب‌های عمومی آن همیشه اعمال می‌شوند، در حالی که برچسب‌های تنها هنگام پیوند ایستا (استاتیک) (--static) اعمال می‌گردند. ماژولی که نیازمندی ABI پیوند نداشته باشد، c را چاپ می‌کند. برای جزئیات ویژگی Link.ABI به pc(5) مراجعه کنید.
مسیر جستجوی ماژول را به ترتیب اولویت نزولی پیمایش می‌کند. به ازای هر پروندهٔ pc(5) یافت‌شده، یک خط در خروجی استاندارد چاپ می‌کند که شامل نام پایهٔ پرونده بدون پسوند، ویژگی Name, یک خط تیره (‘-’) و ویژگی Description است. این گزینه مستلزم --print-errors است. تمامی آرگومان‌های خط فرمان نادیده گرفته می‌شوند.
همان جستجوی --list-all را انجام می‌دهد، اما تنها نام پایهٔ هر پروندهٔ pc(5) را بدون پسوند چاپ می‌کند، نه نام ماژول و توضیحات آن را. این گزینه مستلزم --print-errors است. تمامی آرگومان‌های خط فرمان نادیده گرفته می‌شوند.
=file
نام پروندهٔ خروجی file را تعیین می‌کند که در آن اطلاعات ماژول‌های انتخاب‌شده (چه آن‌هایی که با آرگومان انتخاب شده‌اند و چه وابستگی‌ها) ثبت می‌شود. برای هر ماژول انتخاب‌شده، یک خط چاپ می‌شود که شامل نام پایهٔ پروندهٔ pc(5) بدون پسوند، به صورت اختیاری یک عملگر و شماره نسخه که محدودهٔ نسخه‌های مورد نظر را بیان می‌کند، و یا شماره نسخهٔ واقعی درون براکت یا رشتهٔ "NOT-FOUND" است. اگر این گزینه ارائه نشود، نام پروندهٔ خروجی از متغیر محیطی PKG_CONFIG_LOG گرفته می‌شود، و اگر آن هم تنظیم نشده باشد، این نوع ثبت اطلاعات غیرفعال خواهد بود.
=version
آرگومان‌های module را به ترتیب ارائه‌شده بررسی می‌کند. به محض اینکه یک module وجود نداشته باشد، با خطا خارج می‌شود، و به محض اینکه شماره نسخهٔ یک module کوچک‌تر یا مساوی با شماره version درخواست‌شده باشد، با موفقیت خارج می‌شود. اگر شماره نسخهٔ هر یک از module‌ها بزرگ‌تر از شماره version درخواست‌شده باشد، با خطا خارج می‌شود.
=depth
محدودیتی برای عمق مجاز در گراف وابستگی تعیین می‌کند. مقدار پیش‌فرض depth برابر 256 است. برای مجاز شمردن پیمایش نامحدود، مقدار depth را روی -1 تنظیم کنید. برای نمونه، مقدار depth برابر با 2، حل‌کننده را از عملکرد روی وابستگی‌های فرزند ماژول‌های اضافه‌شده به راه‌حل بازمی‌دارد. این گزینه توسط متغیر محیطی PKG_CONFIG_MAXIMUM_TRAVERSE_DEPTH و توسط گزینه‌های --modversion, --path, --print-provides, --print-requires, --print-requires-private, --print-variables و --variable لغو و جایگزین می‌شود.
برای هر module مشخص‌شده، شماره نسخه را در خروجی استاندارد چاپ می‌کند. اگر گزینهٔ --verbose نیز مشخص شده باشد، نام هر module و یک دونقطه پیش از هر شماره نسخه چاپ می‌شود. این گزینه مستلزم --print-errors و --maximum-traverse-depth=1 است و تمام پرچم‌های --cflags و --libs را لغو و غیرفعال می‌کند.
از نحو MSVC برای خروجی‌های --cflags, --env و --libs استفاده می‌کند. این گزینه تنها در صورتی در دسترس است که ماکروی پیش‌پردازندهٔ PKGCONF_LITE در هنگام کامپایل تعریف نشده باشد.
به جای فاصله‌ها، از خط جدید برای جداسازی تک‌تک قطعات پرچم‌های CFLAGS یا پرچم‌های پیونددهنده استفاده می‌کند.
هنگام بارگذاری بسته‌ها در حل‌کنندهٔ داخلی، از ذخیره‌سازی آن‌ها در حافظهٔ موقت (کَش) صرف‌نظر می‌کند. این کار ممکن است منجر به محاسبهٔ یک گراف وابستگی جایگزین شود.
هنگام حل وابستگی‌ها، قوانین ‘Provides’ را در ماژول‌ها نادیده می‌گیرد.
حل‌کنندهٔ وابستگی را از در نظر گرفتن ماژول‌های 'uninstalled' به عنوان بخشی از راه‌حل بازمی‌دارد.
برای اولین module داده‌شده در خط فرمان، به حل‌کنندهٔ وابستگی اجازه می‌دهد پروندهٔ pc(5) توصیف‌کنندهٔ آن ماژول را بیابد، مسیر مطلق آن پرونده را در خروجی استاندارد چاپ کند و بلافاصله خارج شود، و بیشتر گزینه‌های دیگر و تمامی آرگومان‌های دیگر را نادیده بگیرد.
=variable
متغیر ‘prefix’ مورد استفاده توسط ویژگی ‘define-prefix’ را تنظیم می‌کند.
برخی پیام‌های مربوط به خطاهای مهلک را در خروجی خطای استاندارد چاپ می‌کند که در غیر این صورت حذف می‌شدند. این گزینه به طور ضمنی توسط بسیاری از گزینه‌های دیگر فعال می‌شود، اما نه توسط همهٔ آن‌ها. این گزینه را می‌توان با --silence-errors لغو کرد.
برای هر module مشخص‌شده، یک خط در خروجی استاندارد حاوی ویژگی Name, یک علامت مساوی (‘=’) و ویژگی Version چاپ می‌کند. اگر module حاوی یک یا چند ویژگی Provides باشد، خطوط دیگری را در قالب فهرست وابستگی چاپ می‌کند، هر نام در یک خط، که به صورت اختیاری پس از هر نام یک عملگر و یک نسخه می‌آید. این گزینه مستلزم --maximum-traverse-depth=1 است و تمام پرچم‌های --cflags و --libs را لغو و غیرفعال می‌کند.
برای هر module مشخص‌شده، به ترتیب، ویژگی‌های Requires یا Requires.private را در قالب فهرست وابستگی در خروجی استاندارد چاپ می‌کند. هر دوی این گزینه‌ها مستلزم --maximum-traverse-depth=1 هستند و تمام پرچم‌های --cflags و --libs را لغو و غیرفعال می‌کنند.
برای نخستین module داده‌شده در خط فرمان، نام تمام متغیرهای مشاهده‌شده را در خروجی استاندارد چاپ می‌کند، هر کدام در یک خط. هر آرگومان بعدی بدون هشدار نادیده گرفته می‌شود. این گزینه مستلزم --print-errors و --maximum-traverse-depth=1 است و تمام پرچم‌های --cflags و --libs را لغو و غیرفعال می‌کند.
با گراف وابستگی محاسبه‌شده طوری رفتار می‌کند که گویی یک گراف خالص (pure) است. این گزینه عمدتاً برای استفاده همراه با پرچم --static در نظر گرفته شده است و در صورت مشخص شدن --shared هیچ اثری ندارد.
یک گراف وابستگی ساده محاسبه می‌کند که تنها برای پیوند اشتراکی (shared linking) مناسب است. این گزینه بر --static ارجحیت دارد و آن را لغو می‌کند.
هنگام چاپ پیام‌های خطا دربارهٔ ماژول‌هایی که یافت نمی‌شوند یا با یکدیگر تداخل دارند، از چاپ دستورالعمل‌های تکمیلی و طولانی که روش‌های احتمالی برای حل مشکل را شرح می‌دهند، خودداری می‌کند.
به هیچ وجه هیچ پیام خطا، هشدار یا اشکال‌زدایی را چاپ نمی‌کند. بر همهٔ گزینه‌های --debug, --errors-to-stdout و --print-errors ارجحیت دارد و آن‌ها را لغو می‌کند. در صورتی که متغیر محیطی PKG_CONFIG_DEBUG_SPEW تنظیم شده باشد، این گزینه لغو و غیرفعال می‌شود.
حل یک گراف وابستگی را بر اساس ماژول‌های درخواست‌شده در خط فرمان شبیه‌سازی می‌کند. مجموعه‌ای از ساختارهای درختی را که وضعیت حل‌کنندهٔ pkgconf را نشان می‌دهند، تخلیه (dump) می‌کند. این گزینه تنها در صورتی در دسترس است که ماکروی پیش‌پردازندهٔ PKGCONF_LITE در هنگام کامپایل تعریف نشده باشد.
نام ماژول‌های درخواست‌شده با آرگومان‌های module و وابستگی‌های آن‌ها را در خروجی استاندارد چاپ می‌کند. این گزینه تنها در صورتی در دسترس است که ماکروی پیش‌پردازندهٔ PKGCONF_LITE در هنگام کامپایل تعریف نشده باشد.
یک گراف وابستگی عمیق‌تر را محاسبه می‌کند و از پرچم‌های کامپایلر/پیونددهندهٔ در نظر گرفته‌شده برای پیوند ایستا (static) بهره می‌گیرد. این گزینه توسط --shared لغو می‌شود.
اگر حل‌کنندهٔ وابستگی از یک ماژول ‘uninstalled’ به عنوان بخشی از راه‌حل خود استفاده کند، با یک نتیجهٔ غیرصفر خارج می‌شود.
package ...
صحت پرونده‌های مشخص‌شدهٔ ‘.pc’ را اعتبارسنجی می‌کند. این گزینه مستلزم --print-errors و --errors-to-stdout است.
=varname
برای نخستین module داده‌شده در خط فرمان، مقدار متغیر با نام varname را در خروجی استاندارد چاپ می‌کند. هر آرگومان بعدی بدون هشدار نادیده گرفته می‌شود. این گزینه مستلزم --maximum-traverse-depth=1 است و تمام پرچم‌های --cflags و --libs را لغو و غیرفعال می‌کند.
این گزینه تنها زمانی اثر دارد که --modversion نیز مشخص شده باشد. این گزینه نام module مربوطه و یک علامت دونقطه را پیش از هر شماره نسخه چاپ می‌کند.
شماره نسخهٔ برنامهٔ pkgconf را در خروجی استاندارد چاپ کرده و خارج می‌شود. بیشتر گزینه‌های دیگر و تمامی آرگومان‌های خط فرمان نادیده گرفته می‌شوند.
=path
دایرکتوری path را به ابتدای مسیر جستجوی ماژول اضافه می‌کند، و به آن نسبت به سایر دایرکتوری‌ها از جمله دایرکتوری‌های برگرفته از PKG_CONFIG_PATH و PKG_CONFIG_LIBDIR اولویت می‌دهد.

نخستین فهرست تکمیلی جداشده با دونقطه از مسیرهای include که دقیقاً مانند PKG_CONFIG_SYSTEM_INCLUDE_PATH فیلتر می‌شوند.
سومین فهرست تکمیلی جداشده با دونقطه از مسیرهای include که دقیقاً مانند PKG_CONFIG_SYSTEM_INCLUDE_PATH فیلتر می‌شوند.
دومین فهرست تکمیلی جداشده با دونقطه از مسیرهای include که دقیقاً مانند PKG_CONFIG_SYSTEM_INCLUDE_PATH فیلتر می‌شوند.
اگر با مقداری برابر با PKG_CONFIG_SYSROOT_DIR تنظیم شود، از PKG_CONFIG_FDO_SYSROOT_RULES برای جستجوی متغیرها پیروی می‌کند، اما درج خودکار sysroot در قطعات -I و -L را غیرفعال می‌سازد تا از افزودن دوبار پیشوند DESTDIR به مسیرها جلوگیری شود. اگر PKG_CONFIG_SYSROOT_DIR تنظیم نشده باشد یا با مقداری متفاوت تنظیم شده باشد، DESTDIR نادیده گرفته می‌شود.
فهرست تکمیلی جداشده با دونقطه از مسیرهای کتابخانه که دقیقاً مانند PKG_CONFIG_SYSTEM_LIBRARY_PATH فیلتر می‌شوند.
چهارمین فهرست تکمیلی جداشده با دونقطه از مسیرهای include که دقیقاً مانند PKG_CONFIG_SYSTEM_INCLUDE_PATH فیلتر می‌شوند.
در صورت تنظیم، این متغیر همان اثر گزینهٔ --keep-system-cflags را دارد.
در صورت تنظیم، این متغیر همان اثر گزینهٔ --keep-system-libs را دارد.
در صورت تنظیم، بر گزینهٔ --silence-errors ارجحیت دارد و آن را غیرفعال می‌کند.
در صورت تنظیم، همان رفتار پرچم --no-uninstalled را فعال می‌سازد.
در صورت تنظیم، این متغیر همان اثر گزینهٔ --dont-define-prefix را دارد.
در صورت تنظیم، ویژگی جابجایی مسیر را غیرفعال می‌کند.
در صورت تنظیم، از قوانین پیشوندگذاری sysroot که freedesktop.org pkg-config استفاده می‌کند پیروی می‌کند.
در صورت تنظیم، قوانین Conflicts را در ماژول‌ها نادیده می‌گیرد. اثری مشابه با گزینهٔ --ignore-conflicts دارد.
فهرستی جداشده با دونقطه از دایرکتوری‌های با اولویت پایین که پرونده‌های pc(5) در آن‌ها جستجو می‌شوند. مسیر جستجوی ماژول با پیوست کردن این فهرست به انتهای PKG_CONFIG_PATH (که از اولویت بالاتری برخوردار است) ساخته می‌شود. اگر PKG_CONFIG_LIBDIR تعریف نشده باشد، فهرست پیش‌فرضی که در برنامهٔ pkgconf از ماکروی پیش‌پردازندهٔ PKG_DEFAULT_PATH کامپایل شده است، به جای آن پیوست می‌شود. اگر PKG_CONFIG_LIBDIR تعریف شده باشد اما خالی باشد، هیچ چیزی پیوست نمی‌شود.
در صورت تنظیم، اطلاعات ماژول‌های انتخاب‌شده را در پرونده‌ای با نام ذخیره‌شده در این متغیر ثبت (لاگ) می‌کند. برای جزئیات بیشتر به گزینهٔ خط فرمان --log-file مراجعه کنید که بر این متغیر ارجحیت دارد.
محدودیتی برای عمق مجاز در گراف وابستگی اعمال می‌کند. این متغیر را روی -1 تنظیم کنید تا پیمایش نامحدود مجاز باشد. این متغیر بر گزینهٔ --maximum-traverse-depth ارجحیت دارد، اما توسط سایر گزینه‌های ذکرشده در آنجا لغو می‌شود.
در صورت تنظیم، از نحو MSVC برای خروجی‌های --cflags, --env و --libs استفاده می‌کند. این متغیر همان اثر گزینهٔ --msvc-syntax را دارد. اگر ماکروی پیش‌پردازندهٔ PKGCONF_LITE در هنگام کامپایل تعریف شده باشد، این متغیر نادیده گرفته می‌شود.
فهرستی جداشده با دونقطه از دایرکتوری‌های با اولویت بالا که پرونده‌های pc(5) در آن‌ها جستجو می‌شوند. مسیر جستجوی ماژول با اضافه کردن دایرکتوری مشخص‌شده توسط --with-path (در صورت وجود) به ابتدا، و در صورتی که --env-only مشخص نشده باشد، با پیوست کردن PKG_CONFIG_LIBDIR یا دایرکتوری‌های پیش‌فرض داخلی کامپایل‌شده با اولویت کمتر به انتها ساخته می‌شود.
فهرستی جداشده با دونقطه از پرونده‌های pc(5) که پیش از هر پروندهٔ pkg-config دیگری بارگذاری می‌شوند. به این بسته‌ها بالاترین اولویت نسبت به هر پروندهٔ pc(5) دیگری داده می‌شود که در غیر این صورت یک بستهٔ مشخص را ارائه می‌دادند.
در صورت تنظیم، همان رفتار پرچم --pure را فعال می‌کند.
در صورت تنظیم، این متغیر همان اثر گزینهٔ --define-prefix را دارد.
در صورت تنظیم، این متغیر یک دایرکتوری ‘sysroot’ را مشخص می‌کند که به ابتدای هر متغیر مسیری که با متغیر prefix در یک پروندهٔ pc(5) مشخص آغاز می‌شود، اضافه خواهد شد. برای کامپایل متقاطع (cross compilation) کاربرد دارد. مقدار این متغیر محیطی در متغیر سراسری pc_sysrootdir نیز کپی می‌شود.
فهرستی جداشده با دونقطه از مسیرهای include که به دلیل در نظر گرفته شدن به عنوان مسیرهای include سیستم، فیلتر شده و توسط گزینه‌های --cflags و --cflags-only-I چاپ نمی‌شوند. اگر تعریف نشده باشد، فهرست پیش‌فرضی که در برنامهٔ pkgconf از ماکروی پیش‌پردازندهٔ SYSTEM_INCLUDEDIR کامپایل شده است به جای آن استفاده می‌گردد. هر دایرکتوری که در متغیرهای محیطی CPATH, C_INCLUDE_PATH, CPLUS_INCLUDE_PATH و OBJC_INCLUDE_PATH فهرست شده باشد نیز فیلتر می‌شود.
فهرستی جداشده با دونقطه از مسیرهای کتابخانه که به دلیل در نظر گرفته شدن به عنوان مسیرهای کتابخانهٔ سیستم، فیلتر شده و توسط گزینه‌های --libs و --libs-only-L چاپ نمی‌شوند. اگر تعریف نشده باشد، فهرست پیش‌فرضی که در برنامهٔ pkgconf از ماکروی پیش‌پردازندهٔ SYSTEM_LIBDIR کامپایل شده است به جای آن استفاده می‌گردد.
مقدار متغیر سراسری pc_top_builddir. اگر این متغیر محیطی تعریف نشده باشد، رشتهٔ "$(top_builddir)" به عنوان مقدار pc_top_builddir استفاده می‌شود.

The pkgconf utility exits 0 on success, and >0 if an error occurs.

نمایش CFLAGS یک بسته:

$ pkgconf --cflags foo
-fPIC -I/usr/include/foo

pc(5), pkg.m4(7)

pkgconf توسط نویسندگان pkgconf توسعه داده شده است (پروندهٔ AUTHORS را ببینید).

July 2, 2026 Linux 6.12.107+deb13-amd64