2016-04-05 16 views
1

Emacs'i EDE ile kullanıyorum. İki alt dizin olan include ve src ile küçük bir C++ projem var.Emacs EDE - Automake ve Alt Kodların Sırası

project/ 
├── include/ 
└── src/ 

ben src/ program hedefleri ile ihtiyaç vardır include/ kütüphane hedeflerini paylaştı. Yani, src/'daki herhangi bir hedefi derlemeden önce include/'daki tüm hedefleri derlemek istiyorum. Şu anda projenin üst dizininde hedef yok.

Başlangıçta ve projenin üst dizininde EDE Makefile.am içinde

SUBDIRS= src/ include/ 

için altklasörlere yönergesi subdirs ayarlar. Derleyici, make ile derlendikten sonra, paylaşılan kütüphaneler için eksik kurallardan şikayetçidir (çünkü bunlar henüz derlenmemiştir). Yönergeyi manuel olarak değiştirirseniz, her şey iyi çalışıyor.

Şimdi benim sorum: EDE ile Emacs içinden alt dizinlerin geçiş sırasını halledebilir miyim?

sayesinde Dominik

cevap

0

Çok automake projeleri başlamak için alt dizinleri kullanılarak değil önermek olur. Kural bağımlılığı sorunlarınız olmayacak, aynı zamanda genel olarak recursive make is considered harmful. Ayrıca, özyinelemeli araç kullanmamak çok daha hızlıdır.

Başvuru için önce how to use non-recursive automake yazdım.

+0

Teşekkür ederiz. Bu kesinlikle daha iyi bir yol olurdu. Ancak, bu EDE ile gerçekten mümkün değil sanırım. Lütfen, beni düzeltin. EDE doğal olarak her alt klasör için 'Makefile.am' dosyalarını oluşturur ve bunları projenin en üst klasöründeki özyinelemeli bir Makefile.am ile birleştirir. –

+0

EDE'nin önceki bir dönemde yaratıldığı ve bundan kaçınılması gerektiği gibi geliyor :(Tekrarlayan bir yapı sistemi oluşturuyorsa, büyük olasılıkla problem çözmekten daha fazla zarara neden oluyorsunuz .. –

+0

Yine de özyinelemeyen ilkeyi alt dizinlere automake snippet'leri (örn. plug.mk.am) yerleştirir ve daha sonra "include" direktifini kullanarak hepsini en üstteki Makefile.am içine eklerim. –