2013-08-24 24 views
5

Tôi có một biến khai báo trong configure.ac:Automake: biến không mở rộng trên Solaris

MY_VERSION="0:0:0" 
AC_SUBST(MY_VERSION) 
AC_MSG_NOTICE([$MY_VERSION]) 

Giá trị của biến được in ra một cách chính xác trong giai đoạn ./configure.

Trong Makefile.am có sau dòng:

libmylib_la_LDFLAGS = -version-info @[email protected] 

Trong dòng lệnh mối liên kết nó mở rộng một cách chính xác để "-version-info 0: 0: 0" trên tất cả các hệ thống ngoại trừ Solaris. Trên solaris (SunOS 5.10 Generic_141414-10 sun4u sparc SUNW, Sun-Blade-100) Tôi nhận được "-version-info" không có số phiên bản.

Bất kỳ ý tưởng nào có thể đã xảy ra sai?

+1

phiên bản Autoconf là trong hệ thống Solaris của bạn? – Maquefel

+0

Phiên bản Solaris đang được xây dựng như thế nào? Bạn đang xây dựng tarball cho Solaris trên một máy chủ khác, liệu nó có đang được xây dựng trên Solaris không? – ldav1s

+1

Trước tiên, tôi đảm bảo rằng tập lệnh cấu hình của bạn thực sự thiết lập biến này đúng cách. Một cách dễ dàng để làm điều này là hack trong "set + x" và "set -x" xung quanh mã trong "cấu hình". Sau đó, tôi sẽ kiểm tra config.status được tạo ra để xem cài đặt có chính xác không. Đôi khi autoconf chuyến đi qua một lỗi nhà cung cấp trong sed hoặc awk hoặc một cái gì đó ... –

Trả lời

1

(Một chút một shot trong bóng tối đây của, nhưng ...)

tôi đoán sẽ là một trong hai MY hoặc VERSION được xác định trên Solaris vì lý do gì. Hãy thử usign

AC_SUBST([MY_VERSION]) 

thay vào đó, theo cách này, bạn đang yêu cầu M4 xác định rõ ràng điều đó.

Cũng như Igor cho biết, sử dụng $(MY_VERSION) (mặc dù nó không liên quan đến này.)

Các vấn đề liên quan