Kütüphanenin kurgulanması GNU make'in özel oluşumlarının ağırlıkla kullanıldığı Makefile dosyaları ile yapılır. Makefile dosyaları oldukça karmaşıktır ve büyük ihtimalle onları anlamaya çalışmayı istemezsiniz. Fakat, sadece bir kaç değişkeni bile doğru yerde tanımlayabilmeniz için onların ne yaptıklarını anlamanız oldukça önemlidir.
   
Kütüphane kaynak kodu konulara göre gruplanmış alt dizinlere bölünmüştür.
   
Örneğin, string alt dizininde dizge işleme işlevleri, math alt dizininde matematiksel işlevler bulunur.
   
Her dizinde birer basit Makefile dosyası bulunur. İçinde birkaç make değişkeni ve üst dizindeki Makefile dosyasından bu dosyaya dahil edilenler bulunur. Örneğin, Rules şöyle bir satırla dahil edilir:
   
   
Alt dizinlerde bulunan Makefile dosyalarında tanımlanmış temel değişkenler şunlardır:
   
- subdir
- 
Alt dizinin ismi, örneğin stdio. Bu değişken tanımlı olmalıdır.
       
- headers
- 
Kütüphanenin bu bölümündeki başlık dosyalarının isimleri, örneğin stdio.h.
       
- routines
- aux
- 
Kütüphanenin bu bölümündeki modüllerin (kaynak dosyalarının) isimleri. Bunlar strlen gibi basit isimler olmalıdır (strlen.c gibi bir dosya ismi değil). Kütüphanede tanımlı işlevlerin modülleri için routines, veri tanımları gibi şeyleri içeren modüller için ise aux kullanın. Fakat,  routines ve aux değerleri birleşik olmalıdır, yani aslında pratik olarak bir farkları yoktur.
       
- tests
- 
Kütüphanenin bu bölümündeki sınama yazılımlarının isimleri. Bunlar tester gibi basit isimler olmalıdır (tester.c gibi bir dosya ismi değil). make tests tüm sınama yazılımlarını derleyecek ve çalıştıracaktır. Eğer bir sınama yazılımı girdiye ihtiyaç duyuyorsa sınama verisini sınama-yazılımı.input dosyasına koyun; bu dosyanın içindeki veriler yazılıma standart girdi üzerinden verilecektir.
Eğer bir sınama yazılımının argümanlar alması gerekiyorsa bunları (hepsi tek bir satırda olmak üzere) sınama-yazılımı.args dosyasına koyun. Sınama yazılımları sınamalar başarılı olursa sıfır durumu ile sınama sırasında kütüphanede ya da derlemede bir hata bulmuşsa sıfırdan farklı bir durum ile çıkmalıdır.
       
- others
- 
Kütüphanenin bu bölümündeki "diğer" yazılımlarının isimleri. Bunlar sınama yazılımları değildir, ama kütüphane ile bir takım küçük uygulamalar dağıtılabilir. Bunlar make others ile derlenirler.
       
- install-lib
- install-data
- install
- 
make install-  ile kurulacak dosyalar.    install-lib-  ile belirtilen dosyalar  configparms-  veya  Makeconfig-  içinde   libdir-  ile belirtilen dizine kurulurlar (bkz.  GNU C Kütüphanesinin Kurulması- ).   install-data-  ile belirtilen dosyalar  configparms-  veya  Makeconfig-  içinde   datadir-  ile belirtilen dizine kurulurlar.   install-  ile belirtilen dosyalar ise  configparms-  veya  Makeconfig-  içinde   bindir-  ile belirtilen dizine kurulurlar.
       
 
- distribute
- 
Dağıtılacak bir tar dosyasına bu alt dizinden konacak dosyalar. Burada Makefile dosyasını ve diğer standart kütüphanelerin içinde listelenen kaynak ve başlık dosyaları listelenmemelidir.  Sadece dağıtıma bir şekilde girmeyecek dosyaları belirtin.
       
- generated
- 
Bu alt dizinde Makefile dosyası tarafından üretilecek dosyalar. Bu dosyalar make clean ile silinecek ve bir dağıtıma asla dahil edilmeyecektir.
       
- extra-objs
- 
Bu alt dizinde Makefile dosyası tarafından derlenecek ek nesne dosyaları. Bunlar foo.o gibi dosyalardan oluşan bir listedir. Bu dosyalar derleme sonucunda oluşurlar ve make clean ile silinirler. Bu değişken others veya tests derlemelerinde elde edilecek ikincil nesne dosyaları için kullanılır.