プログラミング

【初心者】Makefileの書き方

Makefileの書き方についてです。

個人での研究や開発では、jupyter notebookばかりを触っていましたが、OSS開発をする機会で久しぶりにMakefileと出会いました。

 

c言語の授業以来です。あのときは何をやっているのか意味不明でした。

とりあえず、makeとコマンドを打つと良い感じになるということ、

訳分からなくなったときは、make cleanと打てば環境がきれいになるなぁとしか認識をしていませんでした。

 

先輩からお気持ちを教えていただいたので、とりあえず使えるよ!となるくらいまでまとめてみます。(まだまだ知らないことの方が多いのです)

Makefileとは?

すごく簡単にいうと、複雑な環境構築を一度コマンドを入力するだけで全部終わらせてることができるようにしたファイルのことです。

どうやって書くの?

名前: 変数1 変数2
  ダウンロードとかそういう処理
  もし変数使いたければ名前の横に定義

 

かなり雑ですが、雰囲気は全部このノリです。

 

以下では、

make my_setup

というコマンドを推すだけで、ファイルをダウンロードして、展開して、zipファイルを削除するという処理を全部やってくれます

FILE_NAME=downloaded_file
my_setup:
  wget "http://ダウンロードしたいファイルのあるリンク.zip" -O ${FILE_NAME}
  unzip ${FILE_NAME}
  rm ${FILE_NAME}

 

よくあるのは、こんな感じな気がします。

PYTHON:= python3.6
.PHONY: all clean  # .PHONYはタスクターゲットを宣言するためのもの
                   # この場合はallコマンドと、cleanコマンドをmakeで実行できるようにしたいので定義
                   # でも、別になくても動く(例:上のプログラムもないけど動く)

all: virtualenv
virtualenv:
	test -d venv || virtualenv -p $(PYTHON) venv
	. venv/bin/activate; cd ../; pip install -e .
	touch venv/bin/activate
  
clean: 
	rm -fr venv
	find -iname "*.pyc" -delete

 

これは、makeを実行すればrequirements.txtのライブラリがインストールされて、

make cleanをすると、それに関連するファイルが全部削除されるコードです。

最後に

まだまだ、使いこなせない機能もありますが、python使いでもMakefileが使えるようになっていると、たまにハッピーになれるということが分かったので、共有をします!

自分の理解が進んだらさらに記事を更新していこうと思います!

 

オススメのプログラミングスクールをご紹介

タイピングもままならない完全にプログラミング初心者から

アホいぶきんぐ
アホいぶきんぐ
プログラミングってどこの国の言語なの~?

たった二ヶ月で

いぶきんぐ
いぶきんぐ
え!?人工知能めっちゃ簡単にできるじゃん!

応用も簡単にできる…!!

という状態になるまで、一気に成長させてくれたオススメのプログラミングスクールをご紹介します!

テックアカデミーのPython+AIコースを受講した僕が本音のレビュー・割引あり! というプログラミング完全初心者だった僕が Tech Academy(テックアカデミー)のPython×AIコース を二ヶ月間...

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です