Makefile cho Go
TIL
499
makefile
2
Go
41
golang
39
White

Huy Trần viết ngày 23/06/2016

Makefile thực hiện một số thao tác thường dùng trong Go

Khi làm project Go mình thường tạo một file Makefile dạng này:

Lưu ý nhớ thay <tên-file-binary-muốn-build> thành tên mà bạn muốn build ra.

Makefile

SRC = $(wildcard *.go)
OUT = <tên-file-binary-muốn-build>

CC = go
go = $(shell which go 2> /dev/null)

ifeq (, $(go))
    @printf "\e[91mGo not found!"
endif

$(OUT): clean $(SRC)
    @printf "\e[33mBuilding\e[90m %s\e[0m\n" $@
    @$(CC) build -o $@ $(SRC)
    @printf "\e[34mDone!\e[0m\n"

test: clean
    @printf "\e[33mTesting...\e[0m\n"
    go test ./...
    @printf "\e[34mDone!\e[0m\n"

clean:
    @rm -f $(OUT)
    @printf "\e[34mAll clear!\e[0m\n"

install: $(OUT)
    @printf "\e[33mInstalling\e[90m %s\e[0m\n" $(OUT)
    sudo rm -f /usr/local/bin/$(OUT)
    sudo ln -s $(PWD)/$(OUT) /usr/local/bin/$(OUT)
    @printf "\e[34mDone!\e[0m\n"

uninstall:
    @printf "\e[33mRemoving\e[90m %s\e[0m\n" $(OUT)
    sudo rm -f /usr/local/bin/$(OUT)
    @printf "\e[34mDone!\e[0m\n"

Chức năng gồm có:

Tự động build thành file binary với tên file được định sẵn

Chạy lệnh:

make

alt text

Chạy toàn bộ test của tất cả các packages trong project

Chạy lệnh:

make test

alt text

Build và install vào /usr/local/bin

Nếu viết các ứng dụng command line, thì chức năng này sẽ giúp bạn tiết kiệm thời gian và có thể test thực tế trên môi trường của máy bằng cách copy file binary được build ra vào thư mục /usr/local/bin. Khi đó bạn có thể chạy chương trình của mình ở bất kì thư mục nào trong máy tính.

make install

alt text

Khi không cần dùng nữa hoặc muốn gỡ nó ra thì chạy:

make uninstall

Huy Tran 20-06-2016

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Huy Trần

102 bài viết.
1442 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
146 43
Tại sao phải viết blog kĩ thuật? Có rất nhiều bài viết trên mạng nói về vấn đề tại sao một lập trình viên nên thường xuyên viết các bài blog kĩ thu...
Huy Trần viết hơn 2 năm trước
146 43
White
143 37
(Ảnh) Tiếp tục sêri (Link) lần này, chúng ta sẽ cùng tìm hiểu và mô phỏng lại một chức năng mà mọi người đang bắt đầu sử dụng hằng ngày, đó là chứ...
Huy Trần viết hơn 1 năm trước
143 37
White
97 16
Phần 1: Tự truyện Tui và Toán đã từng là hai kẻ thù không đội trời chung trong suốt hơn mười lăm năm ròng rã. Ngay từ ánh nhìn đầu tiên đã ghét nh...
Huy Trần viết gần 2 năm trước
97 16
Bài viết liên quan
White
39 15
Go là gì? Dùng nó cho việc gì? Chắc hẳn đến thời điểm hiện tại, không ai là chưa nghe đến Go (hay còn gọi là Golang), một ngôn ngữ lập trình được ...
Huy Trần viết hơn 2 năm trước
39 15
White
18 1
Toán tử XOR có tính chất: + A XOR A = 0 + 0 XOR A = A Với tính chất này, có thể cài đặt bài toán sau với độ phức tạp O(N) về runtime, và với O(1)...
kiennt viết hơn 1 năm trước
18 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
102 bài viết.
1442 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!