2015-08-28 13 views
6

Cộng đồng Perl đã dựa trên MACOSX_DEPLOYMENT_TARGET=10.3 cho tất cả các bản dựng của Perl, tốt, trong một thời gian dài. Nhưng bây giờ, với bản beta El Capitan, it no longer works. Có vẻ như họ nên đập nó lên, nhưng với cái gì? Có cách nào để lập trình thiết lập nó cho bất cứ điều gì là phiên bản đầu tiên được hỗ trợ bởi việc phát hành OS X mà Perl hiện đang được xây dựng? Hoặc là có một số cách khác để thiết lập nó động? Hoặc nó phải tĩnh và cập nhật định kỳ? Nếu sau này, nó ảnh hưởng như thế nào đến các phiên bản OS X cũ hơn?Cách tốt nhất để đặt MACOSX_DEPLOYMENT_TARGET là gì?

+0

Tôi không biết ai đang chạy MacOS 10.3 ... bạn có thực sự muốn hỗ trợ hệ điều hành được phát hành vào năm 2003 không? –

+0

@MichaelDautermann Mọi người kiểm tra Perl trên tất cả các loại cấu hình điên rồ. [Đây là một người nào đó] (https://rt.perl.org/Ticket/Display.html?id=123985#txn-1334270), người kiểm tra ở xa OS X 10.4. – theory

Trả lời

2

Điều này sẽ là một thay đổi khá đơn giản trong hints/darwin.sh, kiểm tra xem phiên bản OSX nào đang chạy và đặt MACOSX_DEPLOYMENT_TARGET cho phù hợp.

Perl là một dự án nguồn mở và như vậy luôn luôn ngắn về thời gian của nhà phát triển. Nếu bạn đã thực hiện một bản vá cho điều này và gửi nó đến p5p, tôi chắc chắn nó sẽ được đánh giá cao.

+0

Cảm ơn, tôi đã khuyến khích giải pháp đó trong [báo cáo lỗi] (https://rt.perl.org/Ticket/Display.html?id=123985). – theory

0

Đã chấp nhận câu trả lời của @ Calle-Dybedahl, vì nó chính xác về mặt kỹ thuật. Perl 5 Core Hacker Jarkko Hietaniemi đã đẩy this solution, điều này tỏ ra phức tạp hơn một chút so với bạn có thể mong đợi trong nháy mắt. Các công thức cơ bản ông đã xuống trên là:

Đối với OS X 10.6 trở lên, không dùng nữa sử dụng MACOSX_DEPLOYMENT_TARGET, các dãy công cụ nên làm việc tốt mà không có. Cho đến nay, mục tiêu triển khai đã được chuyển thành 10.3. Logic này xuất phát từ RT#117433.

Đối với bản phát hành OS X từ 10.3 cho đến 10.5, không thay đổi, vẫn sử dụng số MACOSX_DEPLOYMENT_TARGET=10.3 để liên kết.

Đối với bản phát hành OS X trước 10.3, không thay đổi, vẫn không sử dụng MACOSX_DEPLOYMENT_TARGET=10.3.

Mới: luôn thêm -mmacosx-version-min tới ccflagsldflags từ env var $MACOSX_DEPLOYMENT_TARGET, nếu được đặt. Nếu biến không được đặt, đặt phút từ phiên bản OS X, từ sw_vers (1). Thiết lập var sẽ trở nên thuận tiện cho những người xây dựng và đóng gói Perl cho các phiên bản OS X trước đó .

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