タグ

makeに関するAkinekoのブックマーク (50)

  • 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 を使ってみる
    Akineko
    Akineko 2022/12/02
  • Googleが開発する最新ビルドツール「Bazel」を使ってみよう | さくらのナレッジ

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

    Googleが開発する最新ビルドツール「Bazel」を使ってみよう | さくらのナレッジ
  • 温故知新 makeを使いこなす - Qiita

    最近社内でビルドの手順がちょいちょいMakefileで書かれているため、意外と知らなそうなmake及びMakefileの基的な使い方をまとめてみました。 参考図書はこちらです https://www.oreilly.co.jp/books/4873112699/ 。 基 まずは基から。makeの来の用途は、ソースコードのビルド手順を自動化することで、Makefileはその手順を記載したファイルになります。主にC言語をターゲットにしています。 一番基的な内容はターゲットと依存、そしてビルド手順の3つを記載したルールで構成されています。たとえば、次のように書きます。

    温故知新 makeを使いこなす - Qiita
    Akineko
    Akineko 2020/01/01
  • Build Tools - Make, no more

    Had to update some CSS on my site over the weekend, which led me to updating some LESS file. The template I use for the site uses Grunt, which forced me to download the entire Internet via npm. And all I wanted to do was set a text-indent to 0. If you’ve never seen Grunt, here’s what it looks like: module.exports = function(grunt) { grunt.initConfig({ jshint: { options: { jshintrc: '.jshintrc' },

    Build Tools - Make, no more
    Akineko
    Akineko 2019/03/03
  • Makeについて知っておくべき7つのこと | POSTD

    Make は、様々なタイプのファイルのビルド作業を自動的に行ってくれるシンプルかつ強力なツールです。しかしながら、makefileを書く際に問題にぶち当たるプログラマもいれば、Makeの基知識がないことで、既存のものを再発明してしまうプログラマもいます。 Makeの働き デフォルトでは、Makeは一番目のターゲットから開始します。このターゲットのことをデフォルトゴールと呼びます。 Makeはカレントディレクトリのmakefileを読み込み、一番初めのルールで処理を開始します。しかし、Makeが完全にこのルールを処理する前に、ルールが依存するファイルのためのルールを処理しなければなりません。各ファイルそれぞれは、自身のルールに従って処理されます。 実はこれは、各ターゲットの再帰的アルゴリズムになっています。 ターゲットをビルドするルールを見つける。ルールがないようであれば、Makeはうまく

    Makeについて知っておくべき7つのこと | POSTD
  • GNU make 日本語訳(Coop編) - テキスト変形関数

    関数を使えばmakefileで処理する文字列で利用するコマンドやその実行対象のファイルをコンピュータに計算させることができるようになります。関数を使うには、関数の名前と関数に与える(引数という)付随文字列からなるファンクション・コール(関数の呼び出し; function call)を使います。関数の処理結果は変数の場合と全く同じように、makefileの関数を呼び出した部分に置き換えられます。 関数の呼び出し構文 ファンクションコールは変数の参照に似ていて、このようになっています。 $(関数 引数) またはこうなります。 ${関数 引数} この関数というのが関数名になり、makeに用意された数少ない名前のリストのうちの一つを使います。新しい関数は定義できません。 引数というのが関数の引数です。引数は関数名と一つ以上のスペースかタブで区切られており、複数の引数がある場合は引数同士をコンマで区

    Akineko
    Akineko 2017/06/08
  • Makefile の書き方 (C 言語) — WTOPIA v1.0 documentation

    makeってなに?¶ ソースファイルを分割して大規模なプログラムを作成していると, コマンドでコンパイルするのが面倒である. また, 一部のソースファイルを書き換えだけなのに全部をコンパイルし直すのは時間の無駄である. そんな問題を解決するのが make である. Makefile と呼ばれるテキストファイルに必要なファイルと各ファイルのコンパイルのコマンド, ファイル間の依存関係を記す. そして, “make” というコマンドを実行するだけで, 自動的にコマンドを実行してコンパイルしてくれる. これだけではスクリプトと大差がないのだが, make は Makefile に記された依存関係に基づいて更新されたファイルの内関連のあるものだけを更新することで, コンパイル時間を短くする. make は特定のプログラミング言語に依存したものではない. C 言語のソースファイルのコンパイルにも使え

  • - 自動化のためのGNU Make入門講座 - Makefileの基本:ルール

    ここでは,メイクファイルの基的な書き方としてルールの説明をしましょう.ここからは,Makefileといえばmakeが参照するメイクファイルのことを指すものとします. コメントと改行 その前に少しコメントの書き方について解説しておきます.Makefileでは,#から行末までがコメントです.例えば, # # Hello Worldを出力する # all: @echo Hello World! のように使います. また,makeは基的に行指向です.見やすくするために改行したい場合はバックスラッシュ\を使って改行を無視させることができます.例えば,マクロの定義(後述)で object_files = \ foo.o \ bar.o \ baz.o と書けば,makeは改行を無視して次のように解釈します. object_files = foo.o bar.o baz.o ここで注意することは,f

  • C/C++中規模プロジェクトのための超シンプルなMakefile | POSTD

    私は多くの小規模プロジェクトで Make を使ってきましたが、より大きな規模のプロジェクトになると、それは非常にうんざりするようなものでした。最近までは、自分のビルドシステムに行いたいことが4つあったのですが、Makeでの方法が分かりませんでした。 out-of-sourceビルド(オブジェクトファイルが、ソースとは分離されたディレクトリにダンプ出力されます) 自動生成される(かつ正確!)ヘッダの依存関係 オブジェクト/ソースファイルのリストの自動的な決定 インクルードディレクトリのフラグの自動生成 以下にこれらの全てを行える、C、C++、およびアセンブリで動作するシンプルなMakefileを紹介します。 MAKEFILE TARGET_EXEC ?= a.out BUILD_DIR ?= ./build SRC_DIRS ?= ./src SRCS := $(shell find $(S

    C/C++中規模プロジェクトのための超シンプルなMakefile | POSTD
  • GitHub - google/sentencepiece: Unsupervised text tokenizer for Neural Network-based text generation.

    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 - google/sentencepiece: Unsupervised text tokenizer for Neural Network-based text generation.
  • Go でツール書くときの Makefile 晒す - Qiita

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

    Go でツール書くときの Makefile 晒す - Qiita
  • O'Reilly Japan - GNU Make 第3版

    GNU Make 第3版 Robert Mecklenburg 著、矢吹 道郎 監訳、菊池 彰 訳 2005年12月 発行 304ページ ISBN4-87311-269-9 フォーマット Print 原書: Managing Projects with GNU Make, Third Edition

    O'Reilly Japan - GNU Make 第3版
    Akineko
    Akineko 2016/08/16
  • DockerとMakeを利用したRPMパッケージのビルド環境 | メルカリエンジニアリング

    SREチームの@cubicdaiyaです。今回はDockerとMakeを利用したメルカリの自作RPMパッケージのビルド環境について紹介します。 メルカリの自作RPMパッケージ事情とVagrant、そしてDocker メルカリの開発およびプロダクション環境では現在CentOS6と7を利用しており、随時CentOS7へ移行中です。そのため、自作RPMパッケージをビルドする際はCentOS6と7向けにそれぞれビルドしています。ビルドしたパッケージはyumリポジトリサーバにアップロードした後、必要に応じてyumでインストール、Ansibleのplaybook化を行います。 RPMパッケージの作成はSREチームのメンバーが行っており、各自のローカルマシン上において make {パッケージ名} を実行するだけでCentOS6と7向けのRPMパッケージをビルドできる環境をDockerで構築しています。

    DockerとMakeを利用したRPMパッケージのビルド環境 | メルカリエンジニアリング
  • GNU Make 第3版 日本語版(オライリー)のPDF版電子書籍の無料ダウンロード【マニュアル代わりにどうぞ】: 組込みエンジニアの思うところ

    ファームウェアのビルドに欠かせないツールと言えば make ですね。なんだかんだ言って、make が使えると何かと便利です。現在、市販の make の書籍といえば GNU make 3.81 を対象とした下記のオライリーのがベストかなと思います。 このは、もちろん書店で買ってもいいですが、 PDF でなら GNU Free Document License に則り無料で公開されています。ちょっと場所がわかりづらいのでリンク先を貼っておきますね。オライリージャパンのサイトの中にありますよ。 公式マニュアルは英語ですし日語訳は情報が古い場合がありますので上記の PDFがオススメです。 GNU Make 第3版 PDFファイル はココ ここから下はアマゾンへのリンクです。レビューなどの参考までに。 GNU Make 第3版 -

    Akineko
    Akineko 2016/08/16
  • Makefileを自己文書化する `make2help` | おそらくはそれさえも平凡な日々

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

  • 【翻訳】Web世代のデベロッパーのためのmake - MOL

    Original:Make for the Web Generation (2015-02-28)by Casper Beyer イントロ JavaScriptの普及に伴いビルドツールが盛んだ。人気なものをいくつか挙げれば、grunt、gulp、slush、broccoliやbrunchなどがあるが、結局、名前をつけただけにすぎない。 多かれ少なかれ、これらのツールはファイルコピーからzipファイル作成のようなシンプルなタスク処理でさえ、すべてプラグインに依存しているので、それらのタスクを実行するためにプラグインを必要とするだろう。 これらのツールは理想論的には大きな柔軟性をもたらすものとされているが、実際はUNIXのエコシステムをただ複製しているだけにすぎない。このために君のプロジェクトは早々に、大きな開発依存性のバンドルを持つことであろう、そして、やっているタスクは単なる普通のコピー、

    【翻訳】Web世代のデベロッパーのためのmake - MOL
    Akineko
    Akineko 2015/05/20
  • GNUのAutotoolsについて学んでいる。

    C++の参考書も書かなければならないのだが、今、GNUのAutotoolsについて学んでいる。そもそも、何故必要なのか(なぜ手でMakefileを書かないのか)というところから調べている。 GNU Autoconf, Automake and Libtool Autotools: a practitioner's guide to Autoconf, Automake and Libtool GNU coding standards - GNU Project - Free Software Foundation (FSF) 今のところの背景事情の理解としては、以下のようなものではないかと思う。 はじめに、makeがあった。makeをとりあえず使うのは簡単だが、すこし高度なことをしようとすると、とたんに難しくなる。そのため、既存のよく書かれたものがプロジェクトからプロジェクトへと流用されて

    Akineko
    Akineko 2013/07/22
  • 本の虫: 新しいビルドシステム、ニンジャ

    Chromium Notes: Ninja, a new build system ChromeWindowsから移植し始めたとき、我々はSconsを使ってChromeをビルドしようとした。Sconsは、正しく動作して、使い方も簡単であった。しかし、開発を始めてすぐに、Sconsはとても遅いということに気がついた。ソースを実際にビルドし始めるまでに、40秒もかかるのだ。Sconsが全面的に悪いというわけでもない。Chromeのビルドは、たったひとつの実行ファイルのために、WebKitも含めて、30000ものファイルがあるのだ。 結局、私はLinuxビルドのために、単にMakefileを使うことにした。これは、我々のビルドシステムが、メタビルドシステム、すなわち、WindowsMac用のビルドファイルを生成するビルドシステムだったから可能だったのだ。開発を進めるほどに、私はどんどんビルド

  • Ninja: Google Chromeの開発者のビルドツールが公開された - karasuyamatenguの日記

    gnu makeの高速版のようなもの。ただしシンタックスに互換性はない。 Ninja紹介: http://neugierig.org/software/chromium/notes/2011/02/ninja.html コード: https://github.com/martine/ninja 作者: Evan Martin http://neugierig.org/ 上記のブログでビルドツールの新規開発に至る経過を説明している。大雑把な流れは次のような感じ: ウインドーズから(linuxに?)移植したときにsconsを使った。しかし、コンパイルし始めるまでに40秒かかることもあった。遅いのはsconsのせいではなく、3万ものインプットを一つのexecutableにコンパイルするビルドシステムのせいだとしている。 gnu makeに書き換えて、グーグルの高速gold linkerを活用し、

    Ninja: Google Chromeの開発者のビルドツールが公開された - karasuyamatenguの日記
  • トリビアなmakefile入門

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

    Akineko
    Akineko 2011/06/02