Lispmeetup11

3,504 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,504
On SlideShare
0
From Embeds
0
Number of Embeds
3,010
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lispmeetup11

  1. 1. Makefile書けない人がMake4.0触ってみた Lisp Meet Up #11 κeen(@blackenedgold)
  2. 2. 2013年10月8日 GNU Make 4.0 リリース
  3. 3. 目玉機能 組み込みGuile サポート
  4. 4. Makeとは • まあ、知ってますよねー • 依存関係を解消しながらタスクを実行する • POSIX標準(つまりGNU製以外もある) • Makefileを読んで実行する
  5. 5. Makefileの基本 変数定義 var = val など(他にもある) 変数呼出し $(var) 関数呼出し $(func arg1, arg2, ...) ターゲット定義 target: dep1 dep2 .... body1 body2 . .
  6. 6. Targetについてもう少し ● targetと同じ名前のファイルと関連付けられる ● depsは他のtarget ● ファイルと関連付けたくなかったら組み込み ターゲット .PHONYを使う 例) .PHONY: clean clean: rm *.o
  7. 7. Guileについて ● GNU 汎用途知的拡張言語 ● R5RS全部とR6RSの一部を実装したScheme処理系 ● GNU公式の拡張用組み込み言語 ● でもGNUですらあまり使ってない ● 一応JavaScript, Emacs Lisp, LuaからGuileにコンパイルでき たりする
  8. 8. MakeからGuileを使ってみる 〜インストール〜 curl ftp://ftp.gnu.org/gnu/guile/guile-2.0.9.tar.gz | tar xzf cd guile-2.0.9 ./configure make sudo make install curl ftp://ftp.gnu.org/gnu/make/make-4.0.tar.gz | tar xzf cd make-4.0 ./configure –with-guile make sudo make install インストールが上手く行くとmakeの.FEATURES変数にguile が入る <demo0>
  9. 9. MakeからGuileを使ってみる 〜基本〜 基本、$(guile sexp)だけ。 ● sexpの返値を文字列に変換したものが$ (guile)の返値になる ● <demo1>
  10. 10. MakeからGuileを使ってみる 〜もうちょっと〜 <demo2>
  11. 11. GuileからMakeを使ってみる ● $(guile (load “file.scm”))でSchemeのファイルを読める ● schemeからは(gmk-eval sexp)と(gmk-expand sexp)が使える – gmk-expand … 例の変換規則に従ってsexpを文字列に変換する – gmk-eval … sexpを文字列に変換しつつそのままMakefileの文として実行する <demo3>
  12. 12. まとめ ● MakeからGuileが呼べる ● GuileからMakeが呼べる ● 可能性は色々ある ● でも恐らく個人用途
  13. 13. おわり

×