並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 34 件 / 34件

新着順 人気順

makefileの検索結果1 - 34 件 / 34件

  • また make の話してる(2020年9月14日) - なにもわからない

    私の大好きな Makefile の話が盛り上がっていたのでまとめました。 「やめてね。」って方はお声がけください。 同じ会社にいるけど、真逆の感想を持っている。Makefile読まないと副作用が分からないし、Rakefile/package.jsonだけで済むのに無駄に1つレイヤ増えていて、Makefileできたときからいる人は楽だけど、途中から入った人にとっては学習コストが高い。 https://t.co/EXtmI3xl72— 神速 (@sinsoku_listy) 2020年9月13日 golangでMakefileを使うのは分かる。 ただ、RubyやNode.jsのリポジトリなら $ git clone xxx $ cd xxx $ bundle install && rake もしくは npm install && npm test で環境構築ができることを期待する。— 神速 (

      また make の話してる(2020年9月14日) - なにもわからない
    • Makefile覚書: Goアプリ開発に役立ちそうな基礎知識 | フューチャー技術ブログ

      はじめにTIG真野です。育休明けです。 フューチャー社内のタスクランナーはmakeやTaskなど複数の流派があり、チームによって使い分けられています。個人的にはmakeで良いんじゃないかと思っていますが、Taskも良いですよね。 makeは細かい記法をいつも忘れる+調べるとC言語向けの情報が出てきて脳内変換に手間を感じたため、makeを用いてWebバックエンドアプリをGoで開発するということをテーマに、役立ちそうな情報をまとめます。 なお、今記事におけるmakeは、GNU Makeを指します。バージョンは以下で動かしています。 MakefileのためのEditorConfigMakefileのインデントはハードタブである必要があります。誤りを防ぐためにもEditorConfigを設定しておくと良いでしょう。 makeは通常、Makefileという名称をデフォルトで認識しますが、同一フォルダ

        Makefile覚書: Goアプリ開発に役立ちそうな基礎知識 | フューチャー技術ブログ
      • Makefile警察「ぐぬぬぬ…」 - Qiita

        ?「プロジェクトでよく使うコマンド Makefile に書いたろー」 ?「docker compose up -d --wait っと…」 👮‍♀「 Makefile警察 だ!」 👮‍♀「 Makefile は、ソフトウェアのビルドプロセスを自動化するためのファイルだ!」 👮‍♀「多目的なタスクランナーとして使うな!」 ?「せやったんか。誠にごめんなさい。」 Makefile は広く使われていますが、時々目的外に使われてしまうことがあります。しかし、そのような使い方にはより適した代替手段が存在します。この記事では、 Taskfile というツールについて解説します。 Makefile のつらみ Makefile は主にビルドプロセスを自動化する目的で生まれましたが、様々なコマンドをまとめて実行する便利さから多目的なタスクランナーとしてもよく使われます。しかし、次のような問題があります

          Makefile警察「ぐぬぬぬ…」 - Qiita
        • 温故知新 makeを使いこなす - Qiita

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

            温故知新 makeを使いこなす - Qiita
          • 現代開発を加速させる古来の術式

            浮かない顔をしておるな。ワケを話してみよ。 npmの依存パッケージが増えた ふむ。npmで依存パッケージを増やしたと。それで? なに、他の開発者から 動かない と言われたのか。で、毎回 npm ciをしてくれ と頼んでいるわけか。 …その問題、半世紀ほど前に解決されておるぞ。 何かの縁じゃ。お主に開発環境を自動更新する古来の術式を教えてやろう。 詠唱準備 手始めに適当なパッケージを作るかの。今からの操作は空ディレクトリの中で作業していくぞ。 お主がNode.jsをインストール済であれば、

              現代開発を加速させる古来の術式
            • Go で使う Makefile の育て方

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

                Go で使う Makefile の育て方
              • Makefileの代わりにnpm scripts+zxを使う - 詩と創作・思索のひろば

                そこそこの規模があるプロジェクトで実行すべきタスクを定義するとき、初手として Makefile を使いがち。 Pros make は事実上どんな環境にもあることを期待してよい シェルで実行されるコマンドをそのまま書ける タスクの依存関係が明示できる Cons make では positional arguments が使えない 少し複雑なことをしようとすると Makefile 専用の文法を覚える必要がある 現代では、ファイルベースのタスクの依存関係は make が発明されたころほどは必要ではない Docker とか Go とか Webpack がよしなにしてくれることが多い 例: docker compose のラッパー ちょっとしたコマンドのラッパーを書きたいことがある。Makefile を書きはじめたらすべてのエントリポイントを make にしたい。ということで、以下のような Make

                  Makefileの代わりにnpm scripts+zxを使う - 詩と創作・思索のひろば
                • Makefile の関数一覧

                  Makefile の組み込み関数の一覧です。 公式のドキュメントを読みながら、関数の引数と使い方について備忘録としてまとめました。 Makefile での関数の書き方は $(関数名 引数,...) または ${関数名 引数,...} です。 文字列操作・検索の関数 subst 文字列の置換です。使い方は $(subst 置換前,置換後,対象) FILES := hoge.c hoge.h fuga.c fuga.h all: @echo $(subst hoge,piyo,$(FILES)) # => piyo.c piyo.h fuga.c fuga.h patsubst パターンマッチによる文字列の置換です。使い方は $(patsubst 置換前,置換後,対象) FILES := hoge.c hoge.h fuga.c fuga.h all: @echo $(patsubst %.c

                    Makefile の関数一覧
                  • タスクランナーとしてのmakeを使う際の工夫と注意点 - KAYAC engineers' blog

                    SREチームの長田です。 みなさま開発・運用上の定形オペレーションに伴うタスク実行をどのように管理していますか? 今回は make をタスクランナーとして使う例を紹介します。 タスクランナーがほしい タスクランナーを使う主なモチベーションは以下の2つです。 タスクをリスト化したい タスクの実行インターフェイスを統一したい タスクがリスト化されていれば、それ自体が生きたドキュメントとして機能します。 また、タスクの実行インターフェイスが統一されていれば、 例えばタスクに前処理や後処理を追加したとしても、 開発・運用メンバーが実行するべき操作が変わることはありません。 操作変更の周知コストも下がりますし、変更に伴う操作ミスも減らすことができます。 タスクランナーに求めるもの タスクランナーの機能としては必要最低限のものがよいと考えています。 高機能なタスクランナーも魅力的ではあるのですが、タス

                      タスクランナーとしてのmakeを使う際の工夫と注意点 - KAYAC engineers' blog
                    • 味玉のレシピをMakefileで記述する - 私が歌川です

                      最近よく味玉を作っているのだけど、ジップロックに日付を記入し忘れたり、ボウルに水を入れてから氷を入れようとしたりしていて、手順の依存関係を意識しないとめちゃくちゃになる。 Makefileは依存関係と成果物を記述できるので、レシピをMakefileの形で書いたらおもしろいのでは、と思ったけど記述量が多い気がする。 .PHONY: お湯を湧かす 卵を茹でる 8分待つ ボウルに氷を入れる ボウルに水を入れる ボウルに卵を入れる 卵の殻を剥く ジップロックに日付を書く ジップロックにめんつゆを入れる ジップロックに卵を入れる 一晩寝かせる 味玉 お湯を湧かす: @echo お湯を湧かします 卵を茹でる: お湯を湧かす @echo 卵を茹でます 8分待つ: 卵を茹でる @echo 8分待ちます ボウルに氷を入れる: 8分待つ @echo ボウルに氷を入れます ボウルに水を入れる: ボウルに氷を入れ

                        味玉のレシピをMakefileで記述する - 私が歌川です
                      • GNU Makeの使い方 / How to use GNU Make

                        研究室ハンズオン資料

                          GNU Makeの使い方 / How to use GNU Make
                        • タスクランナーをmakeからcargo-makeへ移行

                          [tasks.BUILD] description = "Build hoge" script = [''' #!/usr/bin/env bash echo "build ${@}..." '''] [tasks.TEST] description = "Test hoge" script = [''' #!/usr/bin/env python3 print("test ...") '''] dependencies = ["BUILD"] $ makers TEST -- --option-a --option-b [cargo-make] INFO - makers 0.20.0 [cargo-make] INFO - Using Build File: Makefile.toml [cargo-make] INFO - Task: TEST [cargo-make] INFO -

                            タスクランナーをmakeからcargo-makeへ移行
                          • go getだけでコマンドのバージョンを埋め込む - Plan 9とGo言語のブログ

                            2022年8月、Go 1.18対応版にアップデートしました 久しぶりのGoネタです。Go 5 Advent Calendar 2020の18日目が空いていたので書きました。 Goで実装されたコマンドでは、ビルドした時点のバージョンを埋め込むため以下のようなMakefileを用意することがあると思います。 .PHONY: build build: go build -ldflags '-X main.Version=$(VERSION)' しかしこの方法では、go installなどMakefileを経由せずビルドしたバイナリには適切なバージョンが埋め込まれない問題があります。個人的な意見では、可能な限りgo getでインストールできる状態を維持した方が良いと思っていますが、バージョンを埋め込むためには他に方法がないので仕方がないと理解していました。しかしGo 1.19現在、runtime/

                              go getだけでコマンドのバージョンを埋め込む - Plan 9とGo言語のブログ
                            • 『よみがえるMakefile』という祈り、もしくはJuly Tech Festa 2021 登壇感想 - じゃあ、おうちで学べる

                              概要 7月18日に July Tech Festa 2021 が開催されて『よみがえるMakefile』 というタイトルで15:20 から登壇した。今さら聞けないIT技術 というお題だったので今さら聞けないけど… みたいなものが議論の種になればとお題をMakefileに決めました。 docs.google.com connpass はこちら techfesta.connpass.com 文章として大きく離散してるので雑多なまとめになります。 タイムアポン 完全に終わっていて一連のスライドからGo言語のMakefileを育てていくエピソードを登壇資料から抹消した。 正直、資料の中にあったものをシュッとMakefileに落とし込むだけなので特定の言語やツールに依存するかな?と思って排除してしまいました。 何故か、40分だと思ってたので20分資料に再編集した。— nwiizo (@nwiizo)

                                『よみがえるMakefile』という祈り、もしくはJuly Tech Festa 2021 登壇感想 - じゃあ、おうちで学べる
                              • ちょっとMakefileくん! .envに書いた環境変数読んで!!!!!なんで読んでくれないの!?

                                あらすじ 「メ、Makefileちゃん!変数引き継いでよ!」 「うるさいですね……」make,make って感じで、Makefileと同じディレクトリ上にある.envファイルから、Makefileに環境変数を引き継ぐのが全然できなくて無限に時間を使ってしまった!!悔しいからメモにしちゃう。も〜最悪!

                                  ちょっとMakefileくん! .envに書いた環境変数読んで!!!!!なんで読んでくれないの!?
                                • MakefileでDocker+Jupyter Notebookなどの機械学習環境をスマートに扱う - CC56

                                  先日機械学習界隈の方とDockerの話をした際、Makefileを使って機械学習環境の整備をしている人は実は少数派なんじゃないかと感じました。 機械学習で使うコマンドは引数が長く、とても覚えられるものじゃありません。暗記できていてもミスタイプしたり、tmux内とかだと折り返されて何書いてるかよくわからなくなりがち 。Ctrl+Rとかで検索かけようとしても大体はdocker...から始まるのでタイプ数多くなりがち。 Makefile は、Docker のコマンドをいい感じにまとめやすく、jupyter notebook に使う長ったらしいコマンド jupyter notebook --port 8888 --ip="0.0.0.0" --allow-root なども簡略化できます。そういうわけで、全体的な生産性の向上に繋がると信じています。 今回紹介する Makefile は Docker

                                    MakefileでDocker+Jupyter Notebookなどの機械学習環境をスマートに扱う - CC56
                                  • Using Makefile(s) for Go — Danish Prakash

                                    Upon receiving suggestions from readers via Email, Hacker News and Reddit, I’ve updated the article with improvements and fixes. Subsequently a word of thanks to the readers for the suggestions. We’ve been using make as a build tool for one of our projects at HackerRank which is written in Go and it has been working out fairly well. In this post, I’ll point out a few features and intricacies of GN

                                    • ISUCON9予選1日目で最高スコアを出しました | とーふとふのブログ

                                      ISUCON9 オンライン予選 1日目の結果発表 : ISUCON公式Blog ISUCON9 オンライン予選 全てのチームのスコア(参考値) : ISUCON公式Blog 土曜日に行われたISUCON9予選にチームにがりとして参加し、1人チームで予選1日目の最高スコア及び予選全体で2番目のスコアを獲得しました。 つまり1日目1位だったので決勝に進む権利はあったのですが、後述の理由で決勝を辞退しています。そのためタイトルも順位ではなく「最高スコア」という表記にしています。 # 辞退した理由 セキュリティの未来を生み出すU-25ハッカソン「セックハック365」| SecHack365 に参加しており、その集合イベントがちょうどISUCON決勝と被っていたからです。 もともと昨年組んでいたチーム(NaruseJun)での参加を予定していたのですが、出場登録前に日程的に決勝参加が難しいことに気づ

                                      • Effective CMake

                                        While CMake has become the de-facto standard buildsystem for C++, it's siblings CTest and CPack are less well known. This talk gives a lightspeed introduction into these three tools and then focuses on best practices on building, testing, and packaging. Read less

                                          Effective CMake
                                        • https://tech.trivago.com/2019/12/20/makefiles-in-2019-why-they-still-matter

                                          • 俺の Makefile 〜 Terraform 編 〜 - ようへいの日々精進XP

                                            tl;dr 俺の Makefile こだわりの help タスクに依存関係を 以上 tl;dr terraform に限らずですが, コマンドのオプションとかちゃんと覚えていられないので, Makefile にまとめておいて, make xxxx で叩くのが個人的なトレンドです. Linux や macOS では特に何もしなくても make コマンドを叩けるので, Makefile に定型処理を書いておくことで, コマンドオプションのうろ覚えによるオペミスなども防げるのではないかと考えています. 俺の Makefile こだわりの help terraform コマンドはパスが通っている前提です. 環境に応じて terraform のパスは書き換えてください. help: ## ヘルプを表示する @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_L

                                              俺の Makefile 〜 Terraform 編 〜 - ようへいの日々精進XP
                                            • Makefile で環境構築を確実に一瞬で終わらせる話

                                              はじめに ラブグラフ 開発チーム インターン の こるく です。 私がラブグラフに Join してまず感動したのが、コマンド一発で完了する超お手軽な環境構築でした。 普通プロジェクトに Join するときは面倒な環境構築をする必要がありますが、ラブグラフではそれが全くありませんでした。 ということで今回は、それを実現している Make と Docker を使って、開発、テスト、CI、本番のすべての環境で、ランタイムの環境と環境変数の設定をすべてコードベース ( IaC というやつ? ) でラクに共有して開発体験を爆アゲしようと思います。 この構成が目指すところ ✅ 環境で悩むことをなくして開発体験を爆アゲする ✅ 環境構築をコマンド一発でできるようにする ✅ ついでにテストもコマンド一発でできるようにする ✅ 環境変数をホストマシンのシェルから排除し、コードの一部としてリポジトリ内で管理す

                                                Makefile で環境構築を確実に一瞬で終わらせる話
                                              • Your Makefiles are wrong

                                                Your Makefiles are full of tabs and errors. An opinionated approach to writing (GNU) Makefiles that I learned from Ben may still be able to salvage them. An opinionated approach to (GNU) Make This is my second hand account of the approach to Make that I learned from Ben. If something is wrong, assume it was lost in translation. The big things I hope you take away are: The file system is a fundamen

                                                • ユーニックス総合研究所

                                                  home archives makefile-phony MakefileのPHONYで便利コマンドを書く 作成日: 2021-08-26更新日: 2023-12-24 カテゴリ: Makefile MakefileのPHONYで便利コマンドを書いたら世界が変わった Makefileにはターゲットと依存ファイルを記述すると、そのターゲットをビルドするためのコマンドを実行することができます。 さらに.PHONYを書くとダミーターゲットを作ることができます。 ダミーターゲットを使うと、そのダミーターゲットをビルドするためのコマンドを実行することができます。 実際にはターゲットはダミーなので、コマンドのみが実行されます。 つまりMakefileでコマンドだけを実行したい場合は、この.PHONYでダミーターゲットを作れば可能だということになります。 この記事ではこの.PHONYとダミーターゲットに

                                                    ユーニックス総合研究所
                                                  • Makefileの基本

                                                    はじめに Makefileについてわかりやすい解説が少なかったのでまとめて見ました。 Makefile初心者が初心者向けに書いたものになります。 主にGNU makeの記述を訳しています。不自然な点、間違いがあったらご指摘いただければ幸いです。 Makeを理解するには、コンパイルへの理解が重要です。 コンパイルについては別記事でまとめています。よければどうぞ。 【gccの概要】コンパイルについてまとめ。 基本 主にMakefileはmakeにプログラムのコンパイルおよびリンク方法を指示します。(応用することで他の使い方もできます) Makefileに依存関係(プログラムの前提条件となるファイルとの親子関係)を記述しておくと、各ファイルの更新を取得して必要なものだけをコンパイルしてくれるようになります。 Makefileに含まれる情報は主に3つです。 変数の定義(変数、自動変数、暗黙の変数、

                                                      Makefileの基本
                                                    • Now announcing: Makefile support in Visual Studio Code! - C++ Team Blog

                                                      A free one-day virtual conference for the whole C++ community. We are excited to announce a brand-new extension for building and debugging Makefile projects in Visual Studio Code: Makefile Tools (preview)! The extension is in pilot stages, but we’ve curated a list of over 70 popular opensource Makefile projects that work with Makefile Tools. Give it a try and let us know what you think! Installing

                                                        Now announcing: Makefile support in Visual Studio Code! - C++ Team Blog
                                                      • GitHub - mrtazz/checkmake: experimental linter/analyzer for Makefiles

                                                        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 - mrtazz/checkmake: experimental linter/analyzer for Makefiles
                                                        • Windows 10で始めるC言語開発(13) Windows 10でC言語開発をしよう! Makefileの基本的な書き方を知る

                                                          makeはMakefileで動作を指定する 前回、複数のCのソースコードファイルをビルドするためにmakeを使う方法を説明した。makeはファイルの依存関係などに基づいて処理を行うためのツールで、複数のファイルをビルドする必要がある場合なんかに便利なツールだ。 makeがどのように振舞えばよいかは、Makefileというファイルに記述することになっている。前回は次のようなMakefileを用意して使用した(今回の説明に合わせたいので、ちょっとだけ変更してある)。 前回用意したMakefile OBJS= csv2tsv.o util.o CMD= csv2tsv.exe CFLAGS+=-g CC= clang build: $(CMD) $(CMD): $(OBJS) $(CC) $(CFLAGS) -o $(CMD) $(OBJS) csv2tsv.o: csv2tsv.c $(CC)

                                                            Windows 10で始めるC言語開発(13) Windows 10でC言語開発をしよう! Makefileの基本的な書き方を知る
                                                          • 今後どんどん流行るだろう Poetry に Pipenv から移行するために作った Dockerfile と タスクランナー - Qiita

                                                            今後どんどん流行るだろう Poetry に Pipenv から移行するために作った Dockerfile と タスクランナーPythonShellScriptMakefiledockerfilePoetry サンプルコード:https://github.com/tamanobi/poetry-with-docker-sample 次の点を踏まえて、 Pipenv から Poetry へ移行しました。そのときの知見をここに記します。 Pipenv はメンテナンス頻度が落ちていること Pipenv のライブラリ依存解決の機能が遅く、解決できなくなることが多くなること メンテナンス頻度の懸念は、安定しており変更もほぼ必要ない状態であれば問題ありません。しかし2つ目の問題が障害になりました。 Pipenv を使っている人は感じていると思いますが、 Pipenv の lock ファイル生成は長い時間

                                                              今後どんどん流行るだろう Poetry に Pipenv から移行するために作った Dockerfile と タスクランナー - Qiita
                                                            • docker-compose.yml を環境ごとに分割する - yKicchan's blog

                                                              前提 Compose ファイルフォーマットバーション 3.x 結論 -f オプションを使う $ docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d または環境変数を使う: COMPOSE_FILE, COMPOSE_PATH_SEPARATOR $ export COMPOSE_PATH_SEPARATOR=: $ export COMPOSE_FILE=docker-compose.yml:docker-compose.prod.yml $ docker-compose up -d ファイル間、プロジェクト間での Compose 設定の共有 — Docker-docs-ja 17.06 ドキュメント 注意 extends キーワードは 2.1 までのサポートで、(2020年7月現在)ではご利用いただけ

                                                                docker-compose.yml を環境ごとに分割する - yKicchan's blog
                                                              • マルチプラットフォーム向けのMakefileは闇

                                                                前回、 Go の学習を始めた際のまとめを記事として書きましたが、Makefileの作成は後回しにしていました。 Go のプロジェクトでは殆どの場合、 Makefile によりビルドを記述しています。Makefileは GNU Make 用のルールを記述したファイルで、 マルチプラットフォーム で利用することができます。 Makefile 完成版 今回、 Go 用のマルチプラットフォーム (Windows-cmd.exe, Windows-PowerShell, Windows-Git-Bash, Linux(ChromeOS-Crostini(Debian), WSL(Ubuntu), 他)) で動作する Makefile を作ってみました (GNU Make は Chocolatey の非 MinGW 版 4.3 を使用しました)。 Docker の scratch イメージで動作するよ

                                                                  マルチプラットフォーム向けのMakefileは闇
                                                                • GitHub - bruin-data/ingestr: ingestr is a CLI tool to copy data between any databases with a single command seamlessly.

                                                                  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 - bruin-data/ingestr: ingestr is a CLI tool to copy data between any databases with a single command seamlessly.
                                                                  • terraform を再帰的に実行する Makefile

                                                                    [2019-05-07-1] に紹介した『Pragmatic Terraform on AWS 』に沿って設計すると、terraform のディレクトリは複数出来ると思います。 依存を分けることと、まとめて実行することはやや矛盾します。とは言え terraform や terraform provider がアップデートした時の terraform init/plan/apply はまとめてやりたいものです。 少し前に作って使っていますが、なかなか良い感じです。 使っている Makefile たち# この辺りを工夫しました。 ・terraform init/plan/apply に失敗すると、即座に停止する ・make の -C オプションを使って、cd せずに make を実行できている。つまり cd .. とかで戻る必要がない。そういう理由で下位ディレクトリに Makefile 置いて

                                                                    • Makefileで外部プログラムの実行結果を変数に取り込む - Qiita

                                                                      Makefileで外部のプログラムやコマンドを実行した結果を変数に取り込む方法を調べて結構苦労したのでメモとして残しておく。 結論としては\$(shell ), ` `とあと \$(eval )あたりを駆使する。 簡単な例 例としてdate +%M:%S:%Nで時刻を取得してそれを変数VALに取り込む例を考える。

                                                                        Makefileで外部プログラムの実行結果を変数に取り込む - Qiita
                                                                      1