سؤال

وأود أن تشمل العديد من الملفات في ملف واحد 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)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top