2009-07-28 32 views
8

Tôi đang cố gắng khai thác một dự án dựa trên autotools, thực tế là rất lớn. Tôi đang làm việc trên một phần nhỏ của nó, một thư mục con. Và tôi cần thêm/di chuyển/xóa các tệp và thư mục liên tục bên trong phần nhỏ này.Tái tạo các tệp .Plo mà không cần chạy ./configure

Chạy ./configure ở cấp cao nhất mỗi lần không chỉ tốn thời gian, nhưng làm cho toàn bộ cây đối tượng trở nên không hợp lệ (xin lỗi về các điều khoản, nhưng tôi là loại mới ở đây). Vì vậy, tôi đã tìm ra cách tạo lại Makefile.in từ Makefile.am (bằng cách chạy đường dẫn automake/đến/my/part), và tôi đã tìm ra cách tạo lại Makefile từ Makefile.in trong cây dựng (bằng runinning ./config.status path/to/my/part). Nhưng có một cái gì đó tôi vẫn không thể tìm ra: làm thế nào để tái tạo tất cả các tập tin phụ thuộc (.deps/*. Plo bên trong mỗi thư mục con trong cây xây dựng). Thật vậy, chạy cấu hình một lần nữa giải quyết vấn đề. Vì vậy, câu hỏi của tôi là: làm thế nào để tái tạo các file phụ thuộc mà không cần chạy lại cấu hình? Cảm ơn trước.

Trả lời

9

Có lẽ câu trả lời là hơi muộn ...

Tôi giả sử bạn làm sạch path/to/my/part của bạn và tái sinh Makefile bởi các lệnh được liệt kê trong câu hỏi của bạn.

Sau đó thực hiện

rm .deps/* 

để loại bỏ sự phụ thuộc cũ và

grep "^include " Makefile | sed -e 's/^include .\///;s/\$(DEPDIR)/.deps/' | xargs touch 

để truy vấn Makefile cho phụ thuộc và tạo file giả mạo sản phẩm nào. Bây giờ

make 

nên biên dịch mã của bạn và tạo lại phụ thuộc dưới dạng hiệu ứng phụ.

Lưu ý: Tôi giả định DEPDIR của bạn được đặt thành mặc định (.deps) và không có thêm include chỉ thị nào trong số Makefile.am của bạn. Tuy nhiên, việc thay đổi điều này sẽ đơn giản.

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