Programlar

# configure - kaynak ağacını yapılandırır

`configure` betiği, Apache HTTP Sunucusunun kaynak kodlarını belli bir platform için yapılandırmakta ve derlemekte kullanılır. Sunucuyu kişisel gereksinimlerinize uygun şekilde derlemek için çeşitli seçeneklere sahiptir.

Bu betik Apache HTTP Sunucusu kaynak paketinin kök dizininde bulunur ve sadece Unix ve benzeri sistemlerde kullanılabilir. Kaynak paketinin diğer platformalarda yapılandırılması ve derlenmesi hakkında bilgi edinmek için platform belgelerine bakınız.

Derleme ve Kurulum

# Komut Satırı

`configure` betiğini kaynak paketinin kök dizininden başka bir yere kopyalayıp çalıştırmamalısınız.

`./configure [seçenek]... [değişken=değer]...`

`CC`, `CFLAGS` gibi ortam değişkenlerini `değişken=değer` atamaları biçiminde kullanabilirsiniz. Kullanışlı değişkenlerin bazıları aşağıda açıklanmıştır.

# Seçenekler

- Yapılandırma seçenekleri
- Kurulum dizinleri
- Sistem türleri
- Seçimlik özellikler
- Destek programları için seçenekler

## Yapılandırma seçenekleri

Aşağıdaki seçenekler `configure` betiğinin kendi davranışını belirlemekte kullanılır.

`-C`
`--config-cache`
  `--cache-file=config.cache` için bir kısaltmadır.
`--cache-file=dosya`
  Sınama sonuçları `dosya` dosyasında saklanır. Bu seçenek açıkça belirtilmedikçe işlevsizdir.
`-h`
`--help [short|recursive]`
  Yardım metnini basar ve çıkar. `short` değeriyle sadece bu pakete özgü seçenekler listelenir. `recursive` değeriyle ise paketin içindeki tüm paketler için kısa bir yardım metni basılır.
`-n`
`--no-create`
  `configure` betiği normal olarak çalışır fakat herhangi bir çıktı dosyası üretmez. Derleme için `Makefile` dosyalarını üretmeksizin sınamaların sonuçlarını görmek için yararlıdır.
`-q`
`--quiet`
  Yapılandırma sürecinde `checking ...` iletilerini basmaz.
`--srcdir=dizin`
  `dizin` dizinini kaynak dosyaları dizini olarak tanımlar. `configure` betiğinin bulunduğu dizin veya bir üst dizin öntanımlıdır.
`--silent`
  `--quiet` ile aynı.
-V
--version
  Telif hakkı bilgilerini gösterir ve çıkar.

## Kurulum dizinleri

Bu seçenekler kurulum dizinlerini tanımlar. Kurulum dizinleri seçilmiş yerleşime bağımlıdır.

`--prefix=PREFIX`
  Mimariden bağımsız dosyalar `PREFIX` dizininin altına kurulur. `/usr/local/apache2` öntanımlı kurulum dizinidir.
`--exec-prefix=EPREFIX`
  Mimariye bağımlı dosyalar `EPREFIX` dizininin altına kurulur. Bunun için `PREFIX` dizini öntanımlı kurulum dizinidir.

Öntanımlı olarak, `make install` tüm dosyaların `/usr/local/apache2/bin`, `/usr/local/apache2/lib` gibi dizinlere kurulmasını sağlar. Kurulum dizini önekini örneğin, `--prefix=$HOME` şeklinde belirterek kurulumun başka bir yere yapılmasını sağlayabilirsiniz.

### Bir dizin yerleşimi tanımlamak

`--enable-layout=LAYOUT`
  Kaynak kodu ve derleme betikleri kurulum ağacının `LAYOUT` yerleşimine dayalı olduğu varsayımıyla yapılandırılır. Bu seçenek sayesinde Apache HTTP Sunucusu kurulumu içinde her dosya türü için farklı bir yer belirleyebilirsiniz. `config.layout` dosyasında böyle yapılandırma örnekleri vardır. Örnekleri izleyerek kendi yapılandırmanızı oluşturabilirsiniz. Bu dosyada örneğin `FOO` isimli yerleşim `<Layout FOO>...</Layout>` bölümü içinde düzenlenmiştir ve her yerleşim için böyle ayrı bir bölüm vardır. Öntanımlı yerleşim `Apache`’dir.

### Kurulum dizinlerinde ince ayar

Kurulum dizinlerini daha iyi denetim altında tutmak için aşağıdaki seçenekler kullanılır. Lütfen, dizin öntanımlılarının `autoconf` tarafından tanımlandığına ve seçilen yerleşim ayarlarının bunları yerini aldığına dikkat ediniz.

`--bindir=dizin`
  Kullanıcı tarafından çalıştırılabilen dosyalar `dizin` dizinine kurulur. Bunlar htpasswd, dbmmanage gibi site yönetimi için yararlı destek programlarıdır. Öntanımlı olarak bu dosyalar `EPREFIX/bin` dizinine kurulur.
`--datadir=dizin`
  Mimariden bağımsız salt okunur veriler `dizin` dizinine kurulur. Bunların öntanımlı kurulum dizini `PREFIX/share` dizinidir. Bu seçenek `autoconf` tarafından atanır ve şimdilik kullanılmamıştır.
`--includedir=dizin`
  C başlık dosyaları `dizin` dizinine kurulur. Bunların öntanımlı kurulum dizini `PREFIX/include` dizinidir.
`--infodir=dizin`
  Info belgeleri `dizin` dizinine kurulur. Bunların öntanımlı kurulum dizini `PREFIX/info` dizinidir. Bu seçenek şimdilik kullanılmamıştır.
`--libdir=dizin`
  Nesne kod kütüphaneleri `dizin` dizinine kurulur. Bunların öntanımlı kurulum dizini `PREFIX/lib` dizinidir.
`--libexecdir=dizin`
  Paylaşımlı modüller gibi program dosyaları `dizin` dizinine kurulur. Öntanımlı olarak `libexecdir` bu dizini `EPREFIX/modules` olarak tanımlar.
`--localstatedir=dizin`
  Düzenlenebilir tek makinelik veri `dizin` dizinine kurulur. Öntanımlı olarak `localstatedir` bu dizini `PREFIX/var` olarak tanımlar. Bu seçenek `autoconf` tarafından atanır ve şimdilik kullanılmamıştır.
`--mandir=dizin`
  Kılavuz sayfaları `dizin` dizinine kurulur. Öntanımlı olarak `mandir` bu dizini `EPREFIX/man` olarak tanımlar.
`--oldincludedir=dizin`
  GCC harici C başlık dosyaları `dizin` dizinine kurulur. Öntanımlı olarak `oldincludedir` bu dizini `/usr/include` olarak tanımlar. Bu seçenek `autoconf` tarafından atanır ve şimdilik kullanılmamıştır.
`--sbindir=dizin`
  Sistem yöneticisi tarafından kullanılabilen programlar `dizin` dizinine kurulur. Bunlar httpd, apachectl, suexec gibi Apache HTTP Sunucusunu çalıştırmak için gereken programlardır. Öntanımlı olarak `sbindir` bu dizini `EPREFIX/sbin` olarak tanımlar.
`--sharedstatedir=dizin`
  Mimariye bağımlı düzenlenebilir veriler `dizin` dizinine kurulur. Öntanımlı olarak `sharedstatedir` bu dizini `PREFIX/com` olarak tanımlar. Bu seçenek `autoconf` tarafından atanır ve şimdilik kullanılmamıştır.
`--sysconfdir=dizin`
  `httpd.conf`, `mime.types` gibi tek makinelik salt okunur sunucu yapılandırma dosyaları `dizin` dizinine kurulur. Öntanımlı olarak `sysconfdir` bu dizini `PREFIX/conf` olarak tanımlar.

## Sistem türleri

Bu seçenekleri Apache HTTP Sunucusunu başka bir platformda çalıştırmak üzere çapraz derleme yaparken kullanılır. Normal durumlarda sunucu derlendiği platformda çalıştırıldığından bu seçenekler kullanılmaz.

`--build=derleme-ortamı`
  Derleme araçlarının derleneceği sistemin sistem türünü tanımlar. `config.guess` betiği ile elde edilen sonuç öntanımlıdır.
`--host=çalışma-ortamı`
  Sunucunun çalışacağı sistemin sistem türünü tanımlar. Öntanımlı sistem türü `derleme-ortamı`’dır.
`--target=hedef-ortam`
  Derleyicileri `hedef-ortam` sistem türü için yapılandırır. Öntanımlı sistem türü `çalışma-ortamı`’dır. Bu seçenek `autoconf` tarafından atanır ve Apache HTTP Sunucusu için gerekli değildir.

## Seçimlik özellikler

Bu seçenekler HTTP sunucunuzun sahip olmasını istediğiniz özelliklerin hassas olarak ayarlanmasını sağlar.

### Genel sözdizimi

Bir özelliği etkin kılmak veya iptal etmek için genellikle şu sözdizimi kullanılır:

`--disable-özellik`
  Sunucu `özellik` özelliğine sahip olmaz. Bu seçenek`--enable-özellik=no` seçeneğine eşdeğerdir.
`--enable-özellik[=değer]`
  Sunucu `özellik` özelliğine sahip olur. `değer` belirtilmediği takdirde `yes` (evet) öntanımlıdır.
`--enable-modül=shared`
  Belirtilen modül DSO modülü olarak derlenir. Öntanımlı olarak etkin modüller devingen ilintilenir.
`--enable-modül=static`
  Belirtilen modül durağan ilintilenir.

#### Bilginize

`--enable-filanca` seçeneğinin varlığı `configure` betiğinin `filanca` diye bir modül var olmasa bile bundan şikayetçi olmasına sebep olmaz. Bu bakımdan dikkatli olunuz.

### Derlenecek modüllerin seçimi

Modüllerin çoğu öntanımlı olarak derlenir ve ya açıkça iptal edilmek ya da `few` veya `none` anahtar sözcükleri kullanılarak kaldırılmak zorunda kalınır (ayrıntılar için `--enable-modules`, `--enable-mods-shared` ve `--enable-mods-static` seçeneklerine bakın).

Öntanımlı olarak derlenmeyenler ise ya açıkça etkin kılınmak ya da `all` veya `reallyall` anahtar sözcükleriyle kullanılabilir yapılmak zorunda kalınır.

Hangi modüllerin öntanımlı olarak derlendiğini öğrenmek için `./configure -h` veya `./configure --help` komutunu çalıştırın ve çıktıdaki `Optional Features` bölümüne bakın. Örnek olarak, `mod_example1` ve `mod_example2` modülleriyle ilgilendiğinizi varsayalım:

    Optional Features:
      ...
      --disable-example1     example module 1
      --enable-example2      example module 2
      ...

Burada, `mod_example1` öntanımlı olarak etkindir ve derlenmemesini istiyorsanız `--disable-example1` seçeneğini kullanmalısınız. `mod_example2` ise öntanımlı olarak derlenmemektedir ve derlenmesini istiyorsanız `--enable-example2` seçeneğini kullanmalısınız.

### Çok Süreçlilik Modülleri

Çok Süreçlilik Modülleri veya MPM'ler sunucunun temel davranışını belirler. Sunucuya yüklenebilecek azami MPM sayısı birdir. Kullanılabilecek modüller modül dizininde listelenmiştir.

MPM'ler devingen yükleme için DSO olarak derlenebileceği gibi sunucuyla duruk olarak da ilintilenebilir ve bunlar aşağıdaki seçeneklerle etkin kılınır:

`--with-mpm=MPM`

  Sunucu için öntanımlı MPM'i seçer. MPM'ler DSO modülleri olarak derleniyorsa (bak `--enable-mpms-shared`), bu seçenek öntanımlı yapılandırma dosyasında yüklenecek MPM'i seçer. Aksi takdirde, sunucuyla duruk olarak ilintilenecek, kullanılabilir tek MPM'i seçer.

  Bu seçenek belirtilmezse, işletim sisteminiz için öntanımlı olan MPM seçilir.

`--enable-mpms-shared=MPM-LISTESİ`

  MPM'leri devingen paylaşımlı modül olarak etkinleştirir. LoadModule yönergesi kullanılarak bu modüllerden biri devingen olarak yüklenmelidir.

  MPM-LISTESİ MPM'lerin aralarına boşluk bırakılarak ve tamamı tek tırnaklarla sarmalanarak oluşturulmuş bir listesidir. Örnek:

  --enable-mpms-shared='prefork worker'

  Ek olarak, kullandığınız platformda devingen yüklemeyi destekleyen ve DSO modülü olarak derlenmiş tüm modülleri seçmek için `all` anahtar sözcüğünü de kullanabilirsiniz. Örnek:

  --enable-mpms-shared=all

### Üçüncü parti modüller

Üçüncü parti modülleri etkin kılmak için şu seçenekler kullanılır:

`--with-module=modül-türü:modül-dosyası[,modül-türü:modül-dosyası]`

  Durağan ilintili modüller listesine belirtilen modülleri ekler. Modül kaynak dosyası `modül-dosyası`, önce Apache HTTP Sunucusu kaynak ağacı altında `modules/modül-türü` alt dizininde aranır. Modül orada değilse `configure` betiği `modül-dosyası` ile bir mutlak dosya yolu belirtildiği varsayımıyla kaynak dosyasını `modül-türü` alt dizinine kopyalamaya çalışır. Alt dizin mevcut değilse oluşturulur ve içine standart bir `Makefile.in` yerleştirilir.

  Bu seçenek tek kaynak dosyasından oluşan küçük harici modülleri eklemek için yararlıdır. Daha karmaşık modüller için modül üreticisi tarafından sağlanan belgelere bakınız.

  #### Bilginize

  Durağan ilintili modüller yerine bir DSO modülü derlemek isterseniz apxs programını kullanınız.

### Kümeleme seçenekleri ve diğerleri

`--enable-maintainer-mode`
  Hata ayıklama iletileri ve derleme sırasındaki uyarıların gösterilmesi etkin kılınır ve derlenmiş tüm modüller yüklenir.
`--enable-mods-shared=modül-listesi`

  Etkinleştirilip devingen paylaşımlı modül olarak derlenecek modüllerin listesi belirtilir. Yani, bu modüller LoadModule yönergesi kullanılarak devingen olarak yüklenir.

  `modül-listesi` tırnak içine alınmış boşluk ayraçlı modül isimleri listesidir. Modül isimleri önlerindeki `mod_` öneki olmaksızın belirtilirler. Örnek:

  --enable-mods-shared='headers rewrite dav'

  `modül-listesi` yerine `reallyall`, `all`, `most`, `few` ve `none` anahtar sözcükleri de belirtilebilir. Örneğin,

  --enable-mods-shared=most

  seçeneği ile çoğu modül DSO modülü olarak derlenir,

  --enable-mods-shared=few

  seçeneği ile sadece en temel modüller derlenir.

  `most` öntanımlıdır.

  Seçilen modüller için LoadModule yönergeleri ana yapılandırma dosyasında kendiliğinden üretilir. Öntanımlı olarak, `--enable-foo` yapılandıma seçeneği ile açıkça seçilen modüller ve gerekli olanlar dışında kalan `LoadModule` yönergeleri açıklama haline getirilir. Yüklü modülleri `httpd.conf` dosyasındaki LoadModule yönergelerini etkin kılarak veya açıklama haline getirerek değiştirebilirsiniz. LoadModule yönergelerine ek olarak, derlenmiş tüm modüller `--enable-load-all-modules` yapılandırma seçeneği ile de etkinleştirilebilir.

`--enable-mods-static=modül-listesi`
  Bu seçenek modülleri devingen değil de durağan ilintilemek dışında `--enable-mods-shared` seçeneğine benzer. Yani bu modüller httpd çalıştırılır çalıştırılmaz etkin olurlar. Yüklenmeleri için LoadModule yönergesine ihtiyaçları yoktur.
`--enable-modules=MODULE-LIST`
  Bu seçenek `--enable-mods-shared` gibi davranır ve ek olarak belirtilen modülleri devingen olarak ilintiler.Özel `none` anahtar sözcüğü tüm modüllerin derlenmesini iptal eder.
`--enable-v4-mapped`
  IPv6 soketlierinin IPv4 bağlantılar üzerinde kullanılması mümkün olur.
`--with-port=port`
  Bu seçenek httpd'nin dinleyeceği portu belirler. Bu port `httpd.conf` yapılandırma dosyası üretilirken kullanılır. 80. port öntanımlıdır.
`--with-program-name`
  Öntanımlı olan `httpd` yerine başka bir çalıştırabilir ismi tanımlar.

## Seçimlik paketler

Buradaki seçenekler seçimlik paketleri tanımlamak için kullanılır.

### Genel sözdizimi

Bir seçimlik paketi tanımlamak için genellikle şöyle bir sözdizimi kullanılır:

`--with-paket[=değer]`
  `paket` paketi kullanılır. Öntanımlı `değer` `yes`’tir.
`--without-paket`
  `paket` paketi kullanılmaz. Öntanımlı `değer` `no`’dur. Bu seçenek `autoconf` tarafından sağlanmıştır ve Apache HTTP Sunucusu için pek yararlı değildir.

### Özel paketler

`--with-apr=dizin|dosya`
  Apache Taşınabilir Arayüzü
  (APR) httpd kaynak paketinin bir parçası olup HTTP Sunucu ile birlikte derlenir. Eğer kendi kurulu APR’nizi kullanmak isterseniz bunu `configure` betiğine `apr-config` betiğinin yolunu belirterek ifade edebilirsiniz. Kurulu APR için bid dizin, dosya ismi veya mutlak dosya yolu belirtebilirsiniz. `apr-config` ya belirttiğiniz dizinde ya da `bin` alt dizininde bulunmalıdır.
`--with-apr-util=dizin|dosya`
  Apache Taşınabilir Arayüzü Araçları (APU) httpd kaynak paketinin bir parçası olup HTTP Sunucu ile birlikte derlenir. Eğer kendi kurulu APU’nuzu kullanmak isterseniz bunu `configure` betiğine `apu-config` betiğinin yolunu belirterek ifade edebilirsiniz. Kurulu APR için bir dizin, dosya ismi veya mutlak dosya yolu belirtebilirsiniz. `apr-config` ya belirttiğiniz dizinde ya da `bin` alt dizininde bulunmalıdır.
`--with-ssl=dizin`
  mod_ssl
  modülü etkinse `configure` betiği kurulu bir OpenSSL arayacaktır. Kendi SSL/TLS kurulumunuzun yolunu bu seçenekle belirtebilirsiniz.
`--with-z=dizin`
  Yapılandırmanız gerektirdiği takdirde (örneğin, mod_deflate etkinse) `configure` betiği kurulu `zlib` kütüphanesinin yerini tespit etmeye çalışacaktır. Kendi sıkıştırma kütüphanenizin yerini bu seçenekle belirtebilirsiniz.

Apache HTTP Sunucusunun çeşitli bölümleri, mod_authn_dbm modülü ve mod_rewrite modülünün RewriteMap yönergesi bilgilere erişimi hızlandırmak için basit anahtar/değer veritabanları kullanırlar. SDBM, APU içinde mevcut olduğundan bu veritabanı her zaman kullanılabilir durumdadır. Eğer başka veritabanı türleri kullanmak isterseniz aşağıdaki seçeneklerle bunları etkin kılabilirsiniz:

`--with-gdbm[=dizin-yolu]`
  Bir `dizin-yolu` belirtilmemişse `configure` betiği GNU DBM kurulumunun kütüphanelerini ve başlık dosyalarını bulunması olası yerlerde arar. Bir `dizin-yolu` belirtilmişse `configure` betiği kurulumun kütüphanelerini `dizin-yolu/lib` altında, başlık dosyalarını ise `dizin-yolu/include` altında arayacaktır. Bundan başka, başlık ve kütüphane dosyalarının bulundukları yerler iki nokta imi ile ayrılarak `dizin-yolu` olarak belirtilebilir.
`--with-ndbm[=dizin-yolu]`
  New DBM kurulumunu araştırması dışında `--with-gdbm` seçeneği gibidir.
`--with-berkeley-db[=dizin-yolu]`
  Berkeley DB kurulumunu araştırması dışında `--with-gdbm` seçeneği gibidir.

#### Bilginize

DBM seçenekleri APU tarafından sağlanmış olup onun yapılandırma betiğine aktarılır. Bu seçenekler `--with-apr-util` seçeneği ile tanımlanmış bir kurulu APU varsa kullanışlı olur.

HTTP sunucunuz ile birlikte birden fazla DBM gerçeklenimi kullanabilirsiniz. Kullanılacak DBM türünü her zaman çalışma anı yapılandırmanızla yapılandırabilirsiniz.

## Destek programları için seçenekler

`--enable-static-support`
  Destek programlarını durağan ilintili olarak derler. Yani çalıştırılabilirin kullandığı bütün kütüphaneler kodla bütünleştirilir. Bu seçenek belirtilmedikçe destek programları daima devingen ilintili olarak derlenir.
`--enable-suexec`
  Çatallanan sürecin kullanıcı ve grup kimliklerinin değiştirilebilmesini sağlayan suexec programının kullanımını etkinleştirir. Sunucunuz üzerinde suid biti etkinleştirilmiş bir program çalıştırmanın sistem güvenliğinde yaratacağı sorunlar hakkında bir fikriniz yoksa bu seçeneği etkinleştirmeyin. suexec yapılandırma seçenekleri aşağıda açıklanmıştır.

Tek bir destek programını aşağıdaki seçenekleri kullanarak bir durağan ilintili çalıştırılabilir olarak derleyebilirsiniz:

`--enable-static-ab`
  ab
  programının durağan ilintili sürümü derlenir.
`--enable-static-checkgid`
  `checkgid` programının durağan ilintili sürümü derlenir.
`--enable-static-htdbm`
  htdbm
  programının durağan ilintili sürümü derlenir.
`--enable-static-htdigest`
  htdigest
  programının durağan ilintili sürümü derlenir.
`--enable-static-htpasswd`
  htpasswd
  programının durağan ilintili sürümü derlenir.
`--enable-static-logresolve`
  logresolve
  programının durağan ilintili sürümü derlenir.
`--enable-static-rotatelogs`
  rotatelogs
  programının durağan ilintili sürümü derlenir.

### `suexec` yapılandırma seçenekleri

Aşağıdaki seçeneklerle suexec programının davranışı hassas bir şekilde ayarlanabilir. Daha ayrıntılı bilgi için suEXEC yapılandırması ve kurulumuna bakınız.

`--with-suexec-bin`
  Bu seçenek ile suexec çalıştırılabilirinin yeri belirtilir. Öntanımlı olarak `--sbindir` ile belirtilen dizine kurulur (Kurulum dizinlerinde ince ayar konusuna bakınız).
`--with-suexec-caller`
  Bu seçenek ile suexec’i çalıştırabilecek kullanıcı belirtilir. Normalde httpd programını çalıştıran kullanıcı olmalıdır.
`--with-suexec-docroot`
  Bu seçenek ile suexec'e erişebilecek çalıştırılabilirlerin altında bulunacağı dizin belirtilir. `--datadir/htdocs` öntanımlıdır.
`--with-suexec-gidmin`
  suexec
  için hedef kullanıcı olmasına izin verilen en küçük grup kimliğini tanımlamak için kullanılır. 100 öntanımlıdır.
`--with-suexec-logfile`
  suexec
  günlük dosyasının ismi belirtilir. Öntanımlı olarak bu dosyanın ismi `suexec_log` olup `--logfiledir` seçeneği ile belirtilen dizin altında bulunur.
`--with-suexec-safepath`
  suexec
  tarafından çalıştırılacak süreçlerin çalıştırılabilirlerinin bulunabileceği dizinleri `PATH` ortam değişkenine tanımlamak için kullanılır. `/usr/local/bin:/usr/bin:/bin` öntanımlıdır.
`--with-suexec-userdir`
  Bu seçenek, kullanıcı dizinleri altında suexec tarafından çalıştırılacak süreçlerin çalıştırılabilirlerinin bulunabileceği alt dizini tanımlar. suexec programını (mod_userdir tarafından sağlanan) kullanıcıya özel dizinlerde kullanmak istediğinizde bu gereklidir. `public_html` alt dizini öntanımlıdır.
`--with-suexec-uidmin`
  suexec
  için hedef kullanıcı olmasına izin verilen en küçük kullanıcı kimliğini tanımlamak için kullanılır. 100 öntanımlıdır.
`--with-suexec-umask`
  suexec
  tarafından çalıştırılacak süreçler için `umask` tanımlar. Sisteminiz için geçerli ayarlar öntanımlıdır.

# Ortam Değişkenleri

`configure` betiğinin yerleri ve isimleri standartlara uygun olmayan kütüphaneleri ve programları bulmasını yardımcı olan veya `configure` betiği tarafından yapılan bazı seçimleri değiştirmenizi sağlayacak bazı ortam değişkenleri vardır.

`CC`
  Bu değişkenle derleme sırasında kullanılacak C derleyici komutu tanımlanır.
`CFLAGS`
  Bu değişkenle derleme sırasında kullanılacak C derleyici seçenekleri tanımlanır.
`CPP`
  Bu değişkenle derleme sırasında kullanılacak C önişlemci komutu tanımlanır.
`CPPFLAGS`
  C/C++ önişlemci seçenekleri tanımlanır. Örneğin, eğer başlık dosyaları standart yerlerinde değil de `includedir` dizinindeyse bunu `-Iincludedir` seçeneği olarak belirtebilirsiniz.
`LDFLAGS`
  İlintileyici seçenekleri tanımlanır. Örneğin, eğer kütüphane dosyalarınız standart yerlerinde değil de `libdir` dizinindeyse bunu `-Llibdir` seçeneği olarak belirtebilirsiniz.