توسيع نمط Automake
سؤال
وأود أن تشمل العديد من الملفات في ملف واحد Makefile.am
في الجزء xxx_SOURCES = ...
. هل هناك أي طريقة لاستخدام التوسعات قذيفة نموذجية هناك؟ ما أبحث عنه هو ما يعادل العمل ل:
xxx_SOURCES = xxx.c $(top_builddir)/src/{aaa,bbb,ccc}.c
المحلول
1) ليس هناك طريقة للقيام بذلك في جملة جعل المحمولة (الجواب ephemient سوف تعمل فقط مع GNU جعل) 2) لا توجد وسيلة لفعل ذلك باستخدام Automake سواء. (على الرغم من أن ميزة لا ينبغي أن يكون من الصعب جدا لتنفيذ من قبل شخص في حاجة إليها ...)
وأنا شخصيا لا أرى حقا ميزة لاستخدام
foo_SOURCES = subdir/{foo,bar,baz}.c
وعلى
foo_SOURCES = \ subdir/foo.c \ subdir/bar.c \ subdir/baz.c
وأجد السابق هو أكثر خفي، وأنها ليست grepable (على سبيل المثال إلى الإجابة على السؤال "الذي يذكر Makefile
foo.c
؟").
نصائح أخرى
وأنا لا أعرف ما إذا كان هذا هو أفضل وسيلة، ولكن هذا هو ما فعلته دائما:
xxx_SOURCES = xxx.c $(shell echo $(top_builddir)/src/{aaa,bbb,ccc}.c)
لا تنتمي إلى StackOverflow