2008-12-23 28 views

cevap

9

SCons'u beğeniyorum. Her derleme betiğinin (SConstruct dosya) sözdizimsel olarak geçerli bir Python programı olduğu şekilde yapılandırılmıştır. Bu nedenle, ihtiyacınız varsa derleme komut dosyasına rastgele Python mantığı oluşturabilirsiniz.

Ayrıca make'dan çok daha hızlıdır ve birçok bağımlılık türünü otomatik olarak hesaplar.

+1

CMake –

+8

'u unutabiliyor musunuz? Yapmaktan daha mı hızlı? Hangi eski donanımlar çalışıyorsunuz? Son baktığımda, SCon'un ciddi performans sorunları var. Bunun dışında, SCons'u severim. – JesperE

4

Automake: Birçok linux uygulaması dağılımları kullanılan ama biraz Makefile'da daha fazla iş ama daha iyi sonuçlar http://www.gnu.org/software/automake/ verir p

http://www.openismus.com/documents/linux/automake/automake.shtml < - automake ve autoconf

+0

Autotools 'make' için gerçekten bir alternatif değil, çünkü sonuçta GNUMakefiles üretiyor. Yani sadece arcane makefile sözdizimi yerine, şimdi de oldukça eski moda kabuk-betikleri ve kek üzerine krema olarak 'm4' makroları var! Başka bir deyişle, artık * üç * probleminiz var. –

5
nasıl kullanılacağına dair güzel açıklama Imake artık korunmasa da,

cmake ve imake'un her ikisi de derleme yardımcı programlarıdır. Cmake aynı zamanda çapraz platformdur ve Windows'ta da kullanılabilir.

Java'ya girdiyseniz, ANT Java'ya (aslında Make ile güzelce oynatılamayan) yönelik bir oluşturma aracıdır.

Troll tech, QT oluşturmak için kullandıkları qmake adlı bir araç hazırlayın. Makatlar üreterek çalışır - Troll, platformlar arası bir kurguyu desteklemek için bir araca ihtiyaç duyuyordu - dolayısıyla başka bir yardımcı programa ihtiyacınız var.

+0

Trolltech, qmake ve cmake'ye taşındı, ben daha sonra eski yerine onun yerine giderdim. CMake, çeşitli IDE'ler için IDE projeleri kadar makefiles üretir. –

+0

@dribeas bunu doğruladı, QT ve ben bütün KDE projesinin CMake'e taşındığına inanıyorum. –

+2

Neden cmake ve imake aynı cümle içinde söz emin değilim ... – JesperE

4

Tamamen farklı bir şey arıyorsanız, Ant var. Kendime bunun o ilgilenmiyorum ama otomatik bağımlılık analizi ile, ++

3

OMake C/C için bir yapı araçtır (vb unix kabuk üzerinde hiçbir güven,) OCaml ve LaTeX bazı taşınabilirlik avantajı sunuyor . Birden çok dizin üzerinden kolayca proje oluşturabilir ve zaman damgası yerine MD5 toplamına dayalı değişiklikler bulur. Ayrıca, bir dosya değiştirildiğinde, projenizi inşa etmek için arka planda çalıştırılabileceği bir moda sahiptir. Genel olarak, yapmaktan çok ortak projeler (C/C++ veya OCaml programları ve kitaplıkları) oluşturmak için daha az kod alır. Daha büyük projeler için denemedim.

OCaml'de programlamak istiyorsanız, bu araç OCaml bağlayıcısının, bağımlılık sırasındaki komut satırında derlenmiş modüllerin görüntülenmesini gerektirdiğinden ve bu değişikliklerin önemsiz olmadığında her seferinde bu siparişi belirlediğinden bu aracın gerçekten yararlı olduğunu unutmayın.

4

Jam ile ilgili güzel şeyler duydum.

+0

Bağlantı Perforce Jam gelen Freetype Jam olduğunu. Ayrıca, Perforce Jam'den elde edilen, bir göz atmaya değer olan Boost Jam'dir. Ben 10 yıldır Jam kullanıyorum; Ben de tavsiye ederim. – janm

6

İlk sorum, izleyici nedir? Bu, sadece ekibinizin inşa edeceği şirket içi yazılım oluşturmak için mi? Öyleyse, zaten sunulan seçeneklerden bazılarını keşfedin. Bu, başkalarının inşa edeceği bir şeyse, ya yap-yap ya da makefile yaratan ve bunları taşıyan bir araç kullan. Linux ve diğer unix platformları için autoconf ve automake kullanıyoruz. Benim düşünceme göre, yapılandırmaktan başka bir şey yapmak için çok iyi bir nedene ihtiyacın var; Yapmak; yükleme yap. Boost kendi araçlarına sahiptir (Jam'in değiştirilmiş bir versiyonu) ve alışılmadık bir makineyi derlemek için her zaman ihtiyacım olan her şey beni rahatsız ediyor.

2

Make yerine Cons (Greg Hewgill'in yanıtında SCons ile karıştırılmamalıdır) kullanan bazı kodları miras üzerinde çalışıyorum.

Cons, Perl dilinde yazıldığı gibi, SCons, Python'da yazılmıştır. Bağımlılıkları otomatik olarak yönetir ve karmaşık yapı dizilerini işlemek için yapı kodunun içindeki herhangi bir Perl kodunu kullanabilirsiniz.

Ana dezavantaj (ve projemin kullandığı için üzgünüm ana nedeni) Cons'un make -j biçiminde paralel yapıda olmamasıdır. Cons birbirine bağımlı olmayan bir dizi dosya derlerseniz, bunları birer birer derler, make -j ise bunları paralel olarak derler, bu da makinenizde birden çok çekirdek ve iş parçacığı varsa harikadır.

+0

Ve maalesef Eksileri ölü bir proje gibi görünüyor; Son baktığımda şu anki gelişme yok. – JesperE

3

Bazı autotools tabanlı olanlar da dahil olmak üzere projelerim için CMake'i kullandım ve bunun işini çok iyi yaptığını söyleyebilirim. Çoğunlukla C/C++ çapraz platform projeleri için uygundur.

1

Başka kmake olduğunu kurar çapraz platform için yapmak (kendi sözleriyle kbuild bir parçası,:. kBuild karmaşık görevler için basit makefiles yazmak için bir makefile çerçevesidir). GNU make'un geliştirilmiş bir sürümüdür. VirtualBox millet tarafından geliştirilmiştir. Windows, Linux, MacOS ve Solaris için VirtualBox Ürünlerini oluşturmak için kullanıyorlar. Oldukça taşınabilir! Ayrıntılar için http://svn.netlabs.org/kbuild adresine bakın.

1

WAF ilginç bir alternatiftir. Python ile yazılmış olan, inşa mantığınızı düz Python'da yazmanızı sağlar. Paralel + semi-auto-magic imza tabanlı bağımlılık izleme çalışmasını makul ölçüde iyi yapar. Sözde çapraz platform (yani Windows üzerinde nasıl yapılacağını bilir), ama bunu denemedim.

Oldukça sarp bir öğrenme eğrisi var, ama aynı zamanda işleme yardımcı olmak için "The WAF book" ile birlikte geliyor.

+0

Bir süre önce bir yapı problemini çözmek için "waf" e bakmak zorunda kaldım. 'Wscript'den baktıktan sonra waf'ın kendisinin kodunu girmeliydim. Oldukça tuhaf görünüyor. Sadece eğlence için en son sürümde 'pep8' yazdım ve 6000 hata ve 25000 uyarısı verdim. Adil olmak gerekirse, yeni baktığım son sürümde, yazarlar çok fazla belge eklediler. –

İlgili konular