巨大なアプリケーションの中には、複数のコンフィギュレーションで ビルドすることができるものがあります。 つまり、いくつもの外部ライブラリやアプリケーションの中の、 あるものが利用可能な場合に、それを拡張機能として使用するように 設定することができるということです。 それらのライブラリやアプリケーションを、必ずしも すべてのユーザが 必要としているわけではありませんので、ports システムでは どのコンフィギュレーションがビルドされるべきかを port 作者が 決めるために使えるフックを用意しています。 これらを適切にサポートすることにより、ユーザをハッピーにしたり、 port 1 つ分のコストで 2 つまたはそれ以上の port を提供するのと 同様の効率化を行なうことが可能です。
これらのフックのうちで最も簡単に使えるものは WITHOUT_X11 でしょう。 その port が X Window System のサポートありと、 サポートなしの設定でビルドできるのであれば、 通常は X Window System サポートありでビルドするべきでしょう。 ビルド時に WITHOUT_X11 が定義されていれば、 その時は X Window System サポートなしのバージョンが ビルドされるべきです。
GNOME 環境の様々なパーツも、そのようなノブ (フック) を 持っていますが、それらは幾分使いにくいものです。 Makefile 中で その目的に使用される変数は WANT_* と HAVE_* になります。 そのアプリケーションが、以下に示されている依存ライブラリの 一つについて、サポートあり、なしの両方でビルドできる場合、 Makefile には WANT_PKG を セットする必要があります。 そして、ビルド時に HAVE_PKG が定義されていれば PKG を使うバージョンがビルドされることになります。
現在、このような形でサポートされている WANT_* 変数は、 WANT_GLIB, WANT_GTK, WANT_ESOUND, WANT_IMLIB, そして WANT_GNOME です。