1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Khám phá một số tính năng khác của Makefile pptx

2 440 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Khám phá một số tính năng khác của Makefile
Thể loại Bài viết
Định dạng
Số trang 2
Dung lượng 191,12 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khám phá một số tính năng khác của Makefile Nguồn : quantrimang.com Quản trị mạng - Câu lệnh make thường được ít người dùng quan tâm đến.. Ví dụ, bạn có thể chạy lệnh make install và lện

Trang 1

Khám phá một số tính năng khác của Makefile

Nguồn : quantrimang.com 

Quản trị mạng - Câu lệnh make thường được ít người dùng quan tâm đến

Thông thường câu lệnh này và Makefile nằm trong nhóm mã nguồn hỗ trợ biên dịch và liên kết mã nguồn trong file thực thi

Tuy nhiên nó còn có thể được sử dụng để thực hiện nhiều tính năng khác ngoài việc xử lý mã nguồn

Makefile chỉ là một chuỗi lệnh thực thi, làm việc trên các phần phụ của file mục tiêu Ví dụ, bạn có thể chạy lệnh make install và lệnh này sẽ kiểm tra cập nhật

những đối tượng được yêu cầu trước tiên, như mục tiêu compile và các thành

phần phụ của nó Điều này làm cho lệnh make trở thành một lệnh rất linh hoạt

Điều này cũng có nghĩa bạn có thể sử dụng nó với nhiều file ngoại trừ file mã

nguồn; bạn có thể sử dụng Makefile để copy file (cục bộ hay từ xa), kiểm soát

phiên bản, xóa file, hay những lệnh khác có thể sử dụng khi xử lý file

Ví dụ, bạn có thể tạo một Makefile để copy những file web cục bộ lên một máy chủ ở xa, lấy chúng từ một vùng chứa kiểm soát phiên bản Makefile này có

dạng như sau:

SVNURL = https://svn.repository.com/svn/website/trunk

REMOTEHOST = user@host:~/public_html/

ifdef REV

REVISION = -r$(REV)

endif

all: dist

clean:

rm -rf website

rm -f website.tar.gz

checkout:

svn co $(SVNURL) $(REVISION) website

dist: clean checkout

tar czf website.tar.gz website

rsync -avP -e ssh website/* $(REMOTEHOST)

Lưu ý, một Makefile phải sử dụng những tab kí tự để canh lề cấu trúc lệnh của đối tượng đích Nếu sử dụng vùng trống (dấu cách) sẽ làm cho lệnh make bị lỗi Makefile trên (sử dụng đối tượng đích mặc định là all) sẽ xóa thư mục hiện thời

(xóa bỏ những website/thư mục, cũng như file nén của website); kiểm tra mã từ những hệ thống kiểm soát phiên bản, địa chỉ URL được khai báo trong biến

Trang 2

$(SVNURL); và cuối cùng tạo một tarball của website này và sử dụng rsync để đồng bộ hóa nó với máy chủ ở xa (REMOTEHOST)

Với định nghĩa ifdef, bạn có thể sử dụng make REV-600 để kiểm tra vùng lưu trữ hệ thống kiểm soát phiên bản khi nó ở vùng sửa đổi 600 (nhập –r600 vào hệ

thống lệnh kiểm soát phiên bản); lệnh này cho phép bạn khôi phục lại những thay đổi hay chụp màn hình rất nhanh chóng và dễ dàng Tuy nhiên cần lưu ý rằng lệnh make sẽ kiểm tra mã trả về khác 0, nghĩa là nó sẽ thoát và trả về mã

trả về của lệnh này Nếu muốn lệnh make tiếp tục thi hành ngay cả khi mã phản

hồi khác không, bạn có thể sử dụng phương pháp sau:

ps xyz || echo " "

cat foo

Trong mã trên, ps xyz sẽ luôn trả về giá trị khác không bởi vì xyz không phải là lệnh chính xác Chúng ta sử dụng dấu “||” (chỉ ra shell thực thi lệnh tiếp theo

nếu lệnh trước đó thất bại) Kết xuất của lệnh thất bại vẫn được thông báo trên

màn hình, nhưng lỗi này sẽ không làm dừng lệnh make, và lệnh tiếp theo sẽ tiến

hành

Lệnh make và Makefile có thể thực hiện nhiều tính năng khác ngoài biên dịch

mã nguồn (mục đích thiết kế Makefile) Nhưng sử dụng nó có tốt hơn sử dụng một tệp lệnh shell không? Điều này phụ thuộc nhiều vào nhu cầu của bạn,

nhưng thực tế là lệnh make kiểm tra lỗi rất kĩ, trong khi tệp lệnh shell không thực hiện thao tác này Tính năng này rất hữu ích trong một số tình huống cụ thể  

Ngày đăng: 25/01/2014, 00:20

TỪ KHÓA LIÊN QUAN

w