タグ

makeに関するmapk0yのブックマーク (14)

  • Make の代わりに Task を使ってみる

    Twitter の TL で見かけたのだが,名前もそのまんま Task というツールがあるらしい(Docker 関連でよく使われている?)。 Task の特徴は Easy installation: just download a single binary, add to $PATH and you’re done! Or you can also install using Homebrew, Snapcraft, or Scoop if you want; Available on CIs: by adding this simple command to install on your CI script and you’re done to use Task as part of your CI pipeline; Truly cross-platform: while most

    Make の代わりに Task を使ってみる
    mapk0y
    mapk0y 2023/02/25
    YAML が面倒なのとちょっと複雑な制御が手軽にかけないもどかしさはとてもわかる
  • Makefile で第2引数を使う方法 - Qiita

    Makefile で任意の第2引数を扱えるようにする小技を紹介します。 簡単な表記で2つの引数を扱える上に複数個の対象をデフォルト指定したり変更することもできます。 この方法を使えば --jobs オプションで make タスクの並列化もできます。 記事で紹介するスクリプトは gist で公開しています。 https://gist.github.com/algas/377ca9d3f11916af39951ccd599a3b88 解決した課題 make で2つの引数(1つ固定+1つ任意)を扱えるようにした 第2引数を複数個デフォルト設定かつ変更可能にした 上記の2つに加えて jobs オプションでの make タスク並列化が効く形式を保った 対象読者 Makefile を書く必要があるけどイマイチ書き方がよくわからない人 シェルスクリプトの方が自由度が高いと思いつつ Makefile を

    Makefile で第2引数を使う方法 - Qiita
    mapk0y
    mapk0y 2023/02/01
  • Home | Task

    Task is a task runner / build tool that aims to be simpler and easier to use than, for example, GNU Make. Since it's written in Go, Task is just a single binary and has no other dependencies, which means you don't need to mess with any complicated install setups just to use a build tool. Features​ Easy installation: just download a single binary, add to $PATH and you're done! Or you can also insta

  • Go で使う Makefile の育て方

    Go を使ってプロダクトを作る時、Makefile を使ってビルドを指定することが多いです。 理由としては、 バージョン情報などを埋め込むのに都合がいい 複数のバイナリを吐き出す時に都合がいい Go のビルドオプションを指定するのにいろいろあって整理しておきたい 事前にコードジェネレータで書き出す部分があり、それを考えると Makefile などで整理したい などなどです。なので今回はプロジェクトが大きくなっていく中でどういう Makefile の書き方をしているか、というのをご紹介しようと思います。 サンプルとして、今回のプロジェクトでは gRPC を使ったチャットサービスのサーバーとクライアントを作ることにします。リポジトリは https://github.com/rosylilly/gochat に置いておきました。 Step 1. バージョン情報を埋める 今回はサーバーとクライアン

    Go で使う Makefile の育て方
  • トリビアなmakefile入門

    make/makefileは,大きいプログラムのどの断片が再コンパイルされる必要があるかという事と,それらを再コンパイルする発行コマンドを自動的に決定するユーティリティ/設定ファイルです. コンピュータサイエンスの基的な考え方のひとつに冗長性をなくして効率化する構成を追及するというのがあります. 情報理論(bitの理論),HTMLとブラウザ,高級言語と機械語など,ひとつの仕様(表現)から環境や状況にあわせて実装(記述)をつくりだす構成が好まれます. ひとつのファイルでさまざまなコマンドを制御するmake/makefileを制することはコンピュータサイエンスを制することになります. makeのあれこれ もっとも単純な例 Makefile は以下のようなルールからなる.

    mapk0y
    mapk0y 2018/08/22
  • make は強いタスクランナーだった。Lambda Function のライフサイクルを Makefile でまわす | DevelopersIO

    Lambda Function のローカル開発を考察したとき に、不十分だったタスクランナーの導入を今回やりました。make についての細かい解説は稿では行いません。Lambda Function 開発の要件を満たすためにタスクランナーとしてどのような Makefile の書き方があるかを示します。 Lambda Function をテストし、デプロイするためのツールはありますが、 複数の Function を全部プロイしたり 逆にひとまとまりの Lambda だけデプロイしたり 環境を指定してデプロイしたり ということを考えると工夫が必要になります。そこで登場するのがタスクランナーです。たくさんのタスクランナーが候補としてあり、一長一短あるところ、make が要件を満たすのではないかということで Makefile を書いていきます。ちなみに私自身これまで Makefile を書いたこと

    make は強いタスクランナーだった。Lambda Function のライフサイクルを Makefile でまわす | DevelopersIO
    mapk0y
    mapk0y 2018/04/01
    こういう使い方の場合は確かに bash なんだけど、タブによる補完とか色とか共通のエンドポイントとしてなどいろいろあってこういうときは bash ではなく make 使う
  • CやC++でのincludeの優先順位

    こんにちは、gccのオプションを十個も言えない、非人のshogoです。 工藤氏作のTinySVMで遊ぼうとしていたところ、 ヘッダファイルの読み込み順序ではまったのでメモ。 2つのinclude文 皆さんご存知の通り、Cプリプロセッサの#include文ではファイルの指定方法が2種類あります。 #include <somefile> // システムにインストールされたライブラリを使う場合 #include "somefile" // 自作のヘッダファイルなどを読み込む場合 大抵はコメントで書いたような使い分けをするんじゃないかと思います。 両者の違いはファイルの検索対象となるディレクトリの違いにあります。 前者はコンパイラが知っているディレクトリのみを検索するのに対して、 後者はカレントディレクトリを検索したのち、<>と同じディレクトリを検索します。 コンパイラが知っているディレクトリは具

    mapk0y
    mapk0y 2018/03/26
  • Go でツール書くときの Makefile 晒す - Qiita

    Go でツール書くときはタスクランナーとして make を使っています。ビルドだけじゃなくて、テストや配布用パッケージ作成も一括して make でやっています。 今回は整理も兼ねて、自分が普段どういう Makefile を使っているのか解剖していきます。 なぜ make を使うのか ビルドフラグ覚えるのが面倒だから、make は (Windows を除く) 大半のプラットフォームに入っていて使いやすいからというのが理由です。script/build みたいにシェルスクリプトを複数用意するのでもまあ良いと思いますが…。大半の Go プロジェクトは Makefile 置いてありますね。 make を使った開発フロー 基的には、リポジトリを git clone / go get -d した後に以下のコマンドを打てばアプリケーションをインストールできるようにしています。

    Go でツール書くときの Makefile 晒す - Qiita
  • Googleが開発する最新ビルドツール「Bazel」を使ってみよう | さくらのナレッジ

    Bazelの特徴2:ビルドによってディレクトリを汚染しない Bazelでは、ソースコードやテストデータなどが格納されているディレクトリとは別のディレクトリでビルドやテストなどを行う仕組みになっている。makeコマンドでは意図的に設定や操作を行わない限りソースコードと生成物が同じディレクトリに混在する事態になることが多いが、Bazelではこういった問題が発生しない。 また、ビルドやテストはデフォルトではサンドボックス化された環境で行われるため、ビルドやテストがそれを実行しているシステムに影響を及ぼす可能性が最小限に抑えられている。 Bazelの特徴3:並列ビルド 大規模なソフトウェアではビルド対象が増えるため、ビルドにかかる時間も増える傾向がある。Bazelでは生成物どうしの依存性を自動的に把握し、可能な限り並列でビルドを実行する仕組みになっている。これにより、ビルド時間の短縮が期待できる。

    Googleが開発する最新ビルドツール「Bazel」を使ってみよう | さくらのナレッジ
  • プロビジョニングツールはMakeで決まりだろ

    Recruit Technologies Open Lab #03: Infrastructure as Code, 2016-07-07 #rtechlab

    プロビジョニングツールはMakeで決まりだろ
    mapk0y
    mapk0y 2016/07/18
    shell script と違って make が入ってないといけないのが辛い
  • Makefileを自己文書化する `make2help` | おそらくはそれさえも平凡な日々

    近年「タスクランナー」という言葉をよく耳にするようになりました。近年のWeb開発では、開発環境のセットアップ、依存ライブラリの管理、テストの実行、開発サーバーの起動、ビルド、デプロイ等等、とにかく気にしないといけないことが多いため、そういったタスクを一元管理してくれるタスクランナーは便利なやつです。 新しくプロジェクトに参加した際に、タスクランナーを見れば何をやれば良いのかだいたい分かるようになっているのが理想的だと思っています。 タスクランナーという言葉は主にJS界隈で使われており、そもそもタスクランナーなのかビルドツールなのかという話はありますが、ここでは便宜上それらをひっくるめてタスクランナーと呼ぶことにします。 gulp質的にはビルドツールですし。 Goの開発においては、タスクランナーとして、古き良きビルドツールであるところの make が主に使われます。 make も使って

    mapk0y
    mapk0y 2016/06/13
    help でついでに make2help がない場合インストールさせてしまえば...
  • Makefileを自己文書化する | POSTD

    私たちのプロジェクトではいつも、非常に長い Makefile を使用して、インストールやビルド、テスト、デプロイメントの処理を自動化しています。ターゲット名はほとんど標準化されていますが( make install 、 make deploy )、中には説明が必要なものもあります( make run-dev 、 make restart-api )。そして、詳細なmakeターゲットを追加するほど、それらの処理内容をテキスト形式で大量に記載しなければなりません。私たちのプロジェクトでは通常、このような文書を README ファイルに書いています。 しかしCLI(コマンドラインインタフェース)を用いる場合は、主に自己文書化ツールを使っています。 make と打つだけで、利用可能なコマンドとその説明が一覧表示されたら便利だと思いませんか? それを実現するのは、実はとても簡単です。まずは各ターゲッ

    Makefileを自己文書化する | POSTD
  • Make: Japan | 9ドルLinuxコンピューター「CHIP」出荷開始

    9ドルコンピューター、CHIPの出荷が開始された 9ドルのCHIPコンピューターの出荷が始まった。Next Thing Co.の CEO、Dave Rauchwerkによると、初期の寄付者には5〜9日以内にCHIPが1つ、追加オーダーの分は12月に届くという。だが、KickstarterのKernel Hacker Backerレベルで支援した人には、CHIPが2つ贈られる。2つめは10月中旬になるという。 CHIPは画期的な、オープンソースのソフトウェア付き、オープンソースハードウェアプロジェクトだ。ボードの仕様は、1GHz R8 ARMプロセッサー、RAM 512MB、NANDストレージ 4GB、Wi-FiBluetoothが内蔵されている。これだけの内容で9ドルというのだから、これまででもっともお買い得なコンピューティング・プラットフォームというわけだ。 このチップをフラッシュする

    Make: Japan | 9ドルLinuxコンピューター「CHIP」出荷開始
  • GitHub - mkpankov/qake: GNU Make based build system with a different approach

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - mkpankov/qake: GNU Make based build system with a different approach
    mapk0y
    mapk0y 2014/11/11
  • 1