make
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGNU Make / Makefile リファレンス
GNU Make / Makefile 参考手册
GNU Make / Makefile の仕様、設計、実装、運用、検証を扱う参照 Skill。
出典基準は GNU Make Manual 4.4.1(Edition 0.77, 2023-02-26)。ローカル検証は GNU Make 3.81(macOS)で行っており、
3.82+ / 4.x 専用機能(、、 等)は該当ページ・サンプルに最低バージョンを明記する。
Make 自動化 SaaS・CMake・cargo-make とは別の対象であることに注意する。
.RECIPEPREFIX.ONESHELL.WAIT这是一个涵盖 GNU Make / Makefile 规范、设计、实现、运维和验证的参考 Skill。
来源依据为 GNU Make Manual 4.4.1(Edition 0.77, 2023-02-26)。本地验证使用 GNU Make 3.81(macOS)进行;对于 3.82+ / 4.x 专属功能(、、 等),相关页面和示例会明确标注最低版本。请注意,本 Skill 的目标不同于 Make 自动化 SaaS、CMake 和 cargo-make。
.RECIPEPREFIX.ONESHELL.WAITディレクトリ構成
目录结构
text
skills/make/
SKILL.md
references/
architecture/
README.md
responsibility-boundaries.md
command-contracts.md
selection-and-migration.md
fundamentals/
README.md
rules-and-prerequisites.md
variables-and-expansion.md
patterns-includes-and-functions.md
recipes-and-shell.md
execution/
README.md
special-targets-and-defaults.md
parallel-and-recursive-make.md
diagnostics-and-exit-codes.md
gnu-posix-bsd-compatibility.md
rust/
README.md
crate-and-workspace-profiles.md
xtask-and-validation.md
node/
README.md
package-scripts-and-mixed-repos.md
quality/
README.md
ci-hooks-and-cache.md
operations/
README.md
safety-and-portability.md
parallelism-and-recovery.md
maintenance/
README.md
sources-and-compatibility.md
troubleshooting.md
samples/
README.md
incremental-build.md
rust-crate.md
rust-workspace-xtask.md
node-pnpm.md
mixed.md
ci.md
plans.md
projects/ # 動く例の正本
incremental-build/ # Make がファイル依存関係を直接管理する例
rust-crate/ # 薄い Makefile + Bash help/doctor/check/verify(Node 不要)
rust-workspace-xtask/ # Makefile なし。cargo xtask が正本
node-pnpm/ # pnpm workspace + Turborepo 委譲
mixed/ # Rust + Node の受け渡しのみ Make が仲介
ci/ # 非アクティブな CI テンプレート(.example)
plans/ # 承認前の適用計画サンプル(JSON)
scripts/
README.md
make-commands.md
inspect.md
plan-and-preview.md
verify.md
bin/ # Claude が明示的に実行する補助 CLI(Node.js 標準ライブラリのみ)
inspect-repo.mjs
validate-plan.mjs
preview-sample.mjs
verify-layout.mjs
run-checks.mjs
lib/
tests/
README.md
helpers.mjs
fixtures/
eval-cases.json
*.test.mjstext
skills/make/
SKILL.md
references/
architecture/
README.md
responsibility-boundaries.md
command-contracts.md
selection-and-migration.md
fundamentals/
README.md
rules-and-prerequisites.md
variables-and-expansion.md
patterns-includes-and-functions.md
recipes-and-shell.md
execution/
README.md
special-targets-and-defaults.md
parallel-and-recursive-make.md
diagnostics-and-exit-codes.md
gnu-posix-bsd-compatibility.md
rust/
README.md
crate-and-workspace-profiles.md
xtask-and-validation.md
node/
README.md
package-scripts-and-mixed-repos.md
quality/
README.md
ci-hooks-and-cache.md
operations/
README.md
safety-and-portability.md
parallelism-and-recovery.md
maintenance/
README.md
sources-and-compatibility.md
troubleshooting.md
samples/
README.md
incremental-build.md
rust-crate.md
rust-workspace-xtask.md
node-pnpm.md
mixed.md
ci.md
plans.md
projects/ # 動く例の正本
incremental-build/ # Make がファイル依存関係を直接管理する例
rust-crate/ # 薄い Makefile + Bash help/doctor/check/verify(Node 不要)
rust-workspace-xtask/ # Makefile なし。cargo xtask が正本
node-pnpm/ # pnpm workspace + Turborepo 委譲
mixed/ # Rust + Node の受け渡しのみ Make が仲介
ci/ # 非アクティブな CI テンプレート(.example)
plans/ # 承認前の適用計画サンプル(JSON)
scripts/
README.md
make-commands.md
inspect.md
plan-and-preview.md
verify.md
bin/ # Claude が明示的に実行する補助 CLI(Node.js 標準ライブラリのみ)
inspect-repo.mjs
validate-plan.mjs
preview-sample.mjs
verify-layout.mjs
run-checks.mjs
lib/
tests/
README.md
helpers.mjs
fixtures/
eval-cases.json
*.test.mjs公式仕様と独自設計の区別
官方规范与独立设计的区别
references/- Source-backed behavior — GNU Make Manual 4.4.1 等、一次情報に基づく仕様。出典 URL・対象版・確認日付き(一覧は references/maintenance/sources-and-compatibility.md)
- Design guidance — この Skill が提案する構成・判断基準。採用条件・根拠・トレードオフ付き
- Example contract — 内だけで定義したコマンド名・JSON 形式・終了コード・ディレクトリ構成
samples/
helpdoctorsetupcheckfixverifycleanreferences/- Source-backed behavior — 基于 GNU Make Manual 4.4.1 等一手信息的规范。附有来源 URL、适用版本和确认日期(清单见 references/maintenance/sources-and-compatibility.md)
- Design guidance — 本 Skill 提出的结构与判断标准,并附有采用条件、依据和权衡
- Example contract — 仅在 内定义的命令名称、JSON 格式、退出代码和目录结构
samples/
对 / / / / / / 等公开命令进行标准化,以及“入口可以有多个,但实际处理的定义只能有一个”的设计,属于本 Skill 独有的 Design guidance,并非 GNU Make、Cargo 或 Anthropic 官方规范的要求。
helpdoctorsetupcheckfixverifyclean探索手順
查阅流程
- 参照だけでよい場合(consult、既定の使い方)は、下記マッピング表でタスクに対応するカテゴリを探し、そのカテゴリの で目的のページを特定して Read する。外部プログラムは実行しない
README.md - 既存構成の診断・計画・検証が必要な場合は「利用パターン」の表で consult 以外のどの段階かを確認し、対応する の手順に従う
scripts/*.md - 安全上の制約は必ず references/operations/safety-and-portability.md で確認する
- 只需参考时(consult,默认用法),在下方映射表中找到任务对应的类别,再通过该类别的 确定目标页面并 Read。不要运行外部程序
README.md - 需要诊断、规划和验证现有结构时,在“使用模式”表中确认 consult 之外应处于哪个阶段,并按照相应的 流程操作
scripts/*.md - 务必通过 references/operations/safety-and-portability.md 检查安全约束
タスク → カテゴリ マッピング
任务 → 类别映射
| タスク | カテゴリ | 参照 README |
|---|---|---|
| Make と Cargo/xtask/Turborepo/CI の責務分離、コマンド契約、Make 採用可否・移行の判断基準を知りたい | architecture | references/architecture/README.md |
target / prerequisite / recipe、order-only prerequisite、変数展開( | fundamentals | references/fundamentals/README.md |
pattern rule、include、条件分岐、レシピと shell(tab / | fundamentals | references/fundamentals/README.md |
| execution | references/execution/README.md |
| 単一 crate / workspace / virtual workspace の profile、fmt/clippy/test/doc の使い分け、cargo xtask の採否を調べる | rust | references/rust/README.md |
| pnpm workspace、package.json scripts、Turborepo への委譲、Rust+Node 混在の責務境界を調べる | node | references/node/README.md |
| Git hooks と CI の共通コマンド契約、パイプライン定義とマージ保護の違い、キャッシュ・外部状態の境界を調べる | quality | references/quality/README.md |
| consult/audit/plan/apply/verify の安全境界、再実行可能な setup、並列 worktree 分離、clean の対象範囲を調べる | operations | references/operations/README.md |
| 出典台帳、GNU Make のよくある失敗パターンと診断手順を調べる | maintenance | references/maintenance/README.md |
| 動くサンプル(増分ビルド、Rust crate/workspace、Node、混在、CI テンプレート、適用計画)を見たい | samples | samples/README.md |
| Claude が使う調査・計画検証・プレビュー・検証スクリプトの実行方法を知りたい | scripts | scripts/README.md |
| 補助スクリプトの回帰テスト・終了コード契約・eval-cases を知りたい | tests | tests/README.md |
| 任务 | 类别 | 参考 README |
|---|---|---|
| 希望了解 Make 与 Cargo/xtask/Turborepo/CI 的职责划分、命令契约,以及是否采用 Make 和迁移的判断标准 | architecture | references/architecture/README.md |
查找 target / prerequisite / recipe、order-only prerequisite、变量展开( | fundamentals | references/fundamentals/README.md |
查找 pattern rule、include、条件分支,以及 recipe 与 shell(tab / | fundamentals | references/fundamentals/README.md |
查找 | execution | references/execution/README.md |
| 查找单个 crate / workspace / virtual workspace 的 profile、fmt/clippy/test/doc 的使用分工,以及是否采用 cargo xtask | rust | references/rust/README.md |
| 查找 pnpm workspace、package.json scripts、向 Turborepo 委派,以及 Rust+Node 混合项目中的职责边界 | node | references/node/README.md |
| 查找 Git hooks 与 CI 的共享命令契约、pipeline 定义与合并保护的区别,以及缓存和外部状态的边界 | quality | references/quality/README.md |
| 查找 consult/audit/plan/apply/verify 的安全边界、可重复执行的 setup、并行 worktree 隔离,以及 clean 的作用范围 | operations | references/operations/README.md |
| 查找来源清单、GNU Make 的常见失败模式与诊断流程 | maintenance | references/maintenance/README.md |
| 查看可运行示例(增量构建、Rust crate/workspace、Node、混合项目、CI 模板和应用计划) | samples | samples/README.md |
| 了解如何运行 Claude 使用的调查、计划验证、预览和验证脚本 | scripts | scripts/README.md |
| 了解辅助脚本的回归测试、退出代码契约和 eval-cases | tests | tests/README.md |
利用パターン
使用模式
参照しただけでは対象ファイルを変更せず、外部プログラムも自動実行しない。Skill を読み込んだこと自体は適用の承認ではない。
| パターン | 内容 | 使う script |
|---|---|---|
| consult | 設計・レビュー中の参照(既定) | なし。references / samples / scripts の文書のみ読む |
| audit | 利用者が指定した対象の静的診断。書き換え・依存導入・build は行わない | |
| plan | 適用案・変更対象・検証計画の提示。対象ファイルは変更しない | |
| apply | 利用者が別途承認した範囲だけの適用。既存ファイルの編集は Skill 独自のパッチ適用エンジンではなく通常の編集ツールで行う | サンプル導入のみ |
| verify | 承認済みの検証。静的整合性確認と実コマンド実行を分離する | |
仅阅读参考资料不会修改目标文件,也不会自动运行外部程序。加载 Skill 本身并不等于批准应用。
| 模式 | 内容 | 使用的 script |
|---|---|---|
| consult | 设计与评审期间的参考(默认) | 无,仅阅读 references / samples / scripts 下的文档 |
| audit | 对用户指定目标进行静态诊断。不重写文件、不引入依赖、不执行 build | |
| plan | 展示应用方案、变更目标和验证计划。不修改目标文件 | |
| apply | 仅应用用户另行批准的范围内变更。现有文件的编辑不使用 Skill 自带的补丁应用引擎,而使用常规编辑工具 | 仅在引入示例时使用 |
| verify | 执行已批准的验证。静态一致性检查与实际命令执行相互分离 | |
安全上の最小ルール
最低安全规则
- 不審なリポジトリで /
make -nを安全な静的解析の代わりに使わない(設定読込時のコード実行がありうる)make -q - 等の秘密情報の値を表示・ログ出力・JSON へ混入させない
.env - ツールの自動導入、sudo、hooks / CI の回避を行わない
- 環境不足・未実行・非該当(/
BLOCKED/SKIPPED)をNOT_APPLICABLEに丸めないPASS
詳細は references/operations/safety-and-portability.md を参照。
- 在可疑仓库中,不要将 /
make -n用作安全的静态分析手段,因为加载配置时可能会执行代码make -q - 不要显示、记录到日志或混入 JSON 中 等机密信息的值
.env - 不要自动安装工具、使用 sudo,或绕过 hooks / CI
- 不要将环境缺失、未执行或不适用(/
BLOCKED/SKIPPED)的情况视为NOT_APPLICABLEPASS
有关详细信息,请参阅 references/operations/safety-and-portability.md。
補助スクリプトのパス
辅助脚本路径
scripts/bin/*.mjsskills/make/.agents/skills/make/.claude/skills/make/<skill-dir>bash
node <skill-dir>/scripts/bin/inspect-repo.mjs --root /path/to/target-repo --json対象 root は必ず で明示する。 のような置換は使わない(外部 shell に常に存在する環境変数ではない)。補助 CLI は Node.js 標準ライブラリのみで動作するが、これは Skill 側の依存であり、利用者プロジェクトに採用するサンプル( 等)自体が Node.js を必要とするわけではない。
--root${CLAUDE_SKILL_DIR}rust-cratescripts/bin/*.mjsskills/make/.agents/skills/make/.claude/skills/make/<skill-dir>bash
node <skill-dir>/scripts/bin/inspect-repo.mjs --root /path/to/target-repo --json目标 root 必须始终通过 显式指定。不要使用 之类的占位符,因为它并非始终存在于外部 shell 环境中。辅助 CLI 仅依赖 Node.js 标准库,这是 Skill 侧的依赖;用户项目中采用的示例(如 )本身并不需要 Node.js。
--root${CLAUDE_SKILL_DIR}rust-crate利用例
使用示例
- 「make を参考に、この Rust crate の Makefile と検証コマンドの改善計画を作って」
- 「このリポジトリの Makefile を GNU Make の仕様に照らしてレビューして、の抜けがないか教えて」
.PHONY - 「Rust + Node の混在リポジトリで、Make・Cargo・Turborepo・CI の責務分離が適切か静的に診断して」
- “参考 make,为这个 Rust crate 制定 Makefile 和验证命令的改进计划”
- “根据 GNU Make 规范评审这个仓库的 Makefile,并告诉我是否遗漏了 ”
.PHONY - “静态诊断这个 Rust + Node 混合仓库中 Make、Cargo、Turborepo 和 CI 的职责划分是否合理”
関連スキルとの使い分け
与相关 Skill 的分工
- rust — Cargo・rustc・rustdoc 等 Rust 言語・ツールチェーン全体の API リファレンスを担当。の
makeは Cargo 標準機能と xtask パターンの Make 文脈での使い分けのみを扱い、Rust 言語仕様は複製しないreferences/rust/ - turborepo — Turborepo 自体のタスクグラフ・キャッシュ・パイプライン定義を担当。の
makeは Turborepo への委譲境界のみを扱うreferences/node/ - lefthook — Git hooks の設定・実装を担当。の
makeは hooks と CI が同じコマンド契約を共有する設計指針のみを扱うreferences/quality/
いずれもスキル名による探索を前提とし、単独インストール時に壊れる兄弟ディレクトリへの相対リンクは使わない。
- rust — 负责 Cargo、rustc、rustdoc 等整个 Rust 语言工具链的 API 参考。的
make仅处理在 Make 语境下如何划分 Cargo 标准功能与 xtask 模式,不会重复介绍 Rust 语言规范references/rust/ - turborepo — 负责 Turborepo 自身的任务图、缓存和 pipeline 定义。的
make仅处理向 Turborepo 委派的边界references/node/ - lefthook — 负责 Git hooks 的配置和实现。的
make仅提供 hooks 与 CI 共享同一命令契约的设计指导references/quality/
这些 Skill 均以按 Skill 名称搜索为前提,不使用会在单独安装时失效的兄弟目录相对链接。