jpskill.com
🛠️ 開発・MCP コミュニティ

makefile

プロジェクトのビルドや自動化を効率的に行うため、ユーザーの指示に応じてMakefileのパターンを作成するSkill。

📜 元の英語説明(参考)

Makefile patterns for project automation and build tasks. Use when user asks to "create Makefile", "add make target", "automate with make", "build commands", or set up project automation with GNU Make.

🇯🇵 日本人クリエイター向け解説

一言でいうと

プロジェクトのビルドや自動化を効率的に行うため、ユーザーの指示に応じてMakefileのパターンを作成するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o makefile.zip https://jpskill.com/download/6103.zip && unzip -o makefile.zip && rm makefile.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/6103.zip -OutFile "$d\makefile.zip"; Expand-Archive "$d\makefile.zip" -DestinationPath $d -Force; ri "$d\makefile.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して makefile.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → makefile フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Makefile

GNU Make を使用したプロジェクトの自動化です。

基本構造

# Variables
APP_NAME := myapp
VERSION := 1.0.0

# Default target (first target)
.DEFAULT_GOAL := help

# Phony targets (not files)
.PHONY: help build run test clean

help: ## Show this help
    @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'

build: ## Build the application
    go build -o bin/$(APP_NAME) ./cmd/$(APP_NAME)

run: ## Run the application
    go run ./cmd/$(APP_NAME)

test: ## Run tests
    go test -v ./...

clean: ## Clean build artifacts
    rm -rf bin/ dist/

一般的なパターン

開発ワークフロー

.PHONY: dev build test lint format

dev: ## Start development server
    npm run dev

build: ## Build for production
    npm run build

test: ## Run tests
    npm test

lint: ## Run linter
    npm run lint

format: ## Format code
    npm run format

check: lint test ## Run all checks

Docker ターゲット

IMAGE_NAME := myapp
IMAGE_TAG := latest

.PHONY: docker-build docker-run docker-push

docker-build: ## Build Docker image
    docker build -t $(IMAGE_NAME):$(IMAGE_TAG) .

docker-run: ## Run Docker container
    docker run -p 8080:8080 $(IMAGE_NAME):$(IMAGE_TAG)

docker-push: ## Push to registry
    docker push $(IMAGE_NAME):$(IMAGE_TAG)

データベースタスク

.PHONY: db-up db-down db-migrate db-seed

db-up: ## Start database
    docker compose up -d db

db-down: ## Stop database
    docker compose down

db-migrate: ## Run migrations
    npx prisma migrate dev

db-seed: ## Seed database
    npx prisma db seed

環境設定

.PHONY: setup install deps

setup: install deps ## Full setup
    @echo "Setup complete!"

install: ## Install tools
    brew install go node

deps: ## Install dependencies
    go mod download
    npm install

変数

# Simple assignment
CC := gcc

# Recursive (evaluated when used)
FILES = $(shell find . -name "*.go")

# Conditional
DEBUG ?= 0
ifeq ($(DEBUG), 1)
    CFLAGS += -g
endif

# Environment
export NODE_ENV := production

依存関係

# Target depends on prerequisites
build: src/main.go src/utils.go
    go build -o app $^

# Pattern rules
%.o: %.c
    $(CC) -c $< -o $@

# Order-only (directory creation)
build: | bin
    go build -o bin/app

bin:
    mkdir -p bin

条件文

OS := $(shell uname -s)

ifeq ($(OS), Darwin)
    OPEN := open
else
    OPEN := xdg-open
endif

docs: ## Open documentation
    $(OPEN) docs/index.html

便利なレシピ

他のファイルを含める

-include .env
include scripts/docker.mk

サイレント実行

install:
    @echo "Installing..."
    @npm install

複数行コマンド

deploy:
    @echo "Deploying..." && \
    npm run build && \
    aws s3 sync dist/ s3://bucket/

引数付きで実行

# make run ARGS="--port 3000"
run:
    node server.js $(ARGS)

プロジェクトテンプレート

.DEFAULT_GOAL := help
SHELL := /bin/bash

# ============================================
# Variables
# ============================================
APP_NAME := myapp
VERSION := $(shell git describe --tags --always)

# ============================================
# Development
# ============================================
.PHONY: dev build test lint

dev: ## Start dev server
    npm run dev

build: ## Build project
    npm run build

test: ## Run tests
    npm test

lint: ## Run linter
    npm run lint

# ============================================
# Docker
# ============================================
.PHONY: docker-build docker-up docker-down

docker-build: ## Build image
    docker build -t $(APP_NAME):$(VERSION) .

docker-up: ## Start services
    docker compose up -d

docker-down: ## Stop services
    docker compose down

# ============================================
# Utilities
# ============================================
.PHONY: clean help

clean: ## Clean artifacts
    rm -rf dist/ node_modules/

help: ## Show help
    @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}'
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Makefile

Project automation with GNU Make.

Basic Structure

# Variables
APP_NAME := myapp
VERSION := 1.0.0

# Default target (first target)
.DEFAULT_GOAL := help

# Phony targets (not files)
.PHONY: help build run test clean

help: ## Show this help
    @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'

build: ## Build the application
    go build -o bin/$(APP_NAME) ./cmd/$(APP_NAME)

run: ## Run the application
    go run ./cmd/$(APP_NAME)

test: ## Run tests
    go test -v ./...

clean: ## Clean build artifacts
    rm -rf bin/ dist/

Common Patterns

Development Workflow

.PHONY: dev build test lint format

dev: ## Start development server
    npm run dev

build: ## Build for production
    npm run build

test: ## Run tests
    npm test

lint: ## Run linter
    npm run lint

format: ## Format code
    npm run format

check: lint test ## Run all checks

Docker Targets

IMAGE_NAME := myapp
IMAGE_TAG := latest

.PHONY: docker-build docker-run docker-push

docker-build: ## Build Docker image
    docker build -t $(IMAGE_NAME):$(IMAGE_TAG) .

docker-run: ## Run Docker container
    docker run -p 8080:8080 $(IMAGE_NAME):$(IMAGE_TAG)

docker-push: ## Push to registry
    docker push $(IMAGE_NAME):$(IMAGE_TAG)

Database Tasks

.PHONY: db-up db-down db-migrate db-seed

db-up: ## Start database
    docker compose up -d db

db-down: ## Stop database
    docker compose down

db-migrate: ## Run migrations
    npx prisma migrate dev

db-seed: ## Seed database
    npx prisma db seed

Environment Setup

.PHONY: setup install deps

setup: install deps ## Full setup
    @echo "Setup complete!"

install: ## Install tools
    brew install go node

deps: ## Install dependencies
    go mod download
    npm install

Variables

# Simple assignment
CC := gcc

# Recursive (evaluated when used)
FILES = $(shell find . -name "*.go")

# Conditional
DEBUG ?= 0
ifeq ($(DEBUG), 1)
    CFLAGS += -g
endif

# Environment
export NODE_ENV := production

Dependencies

# Target depends on prerequisites
build: src/main.go src/utils.go
    go build -o app $^

# Pattern rules
%.o: %.c
    $(CC) -c $< -o $@

# Order-only (directory creation)
build: | bin
    go build -o bin/app

bin:
    mkdir -p bin

Conditionals

OS := $(shell uname -s)

ifeq ($(OS), Darwin)
    OPEN := open
else
    OPEN := xdg-open
endif

docs: ## Open documentation
    $(OPEN) docs/index.html

Useful Recipes

Include Other Files

-include .env
include scripts/docker.mk

Silent Execution

install:
    @echo "Installing..."
    @npm install

Multi-line Commands

deploy:
    @echo "Deploying..." && \
    npm run build && \
    aws s3 sync dist/ s3://bucket/

Run with Args

# make run ARGS="--port 3000"
run:
    node server.js $(ARGS)

Project Template

.DEFAULT_GOAL := help
SHELL := /bin/bash

# ============================================
# Variables
# ============================================
APP_NAME := myapp
VERSION := $(shell git describe --tags --always)

# ============================================
# Development
# ============================================
.PHONY: dev build test lint

dev: ## Start dev server
    npm run dev

build: ## Build project
    npm run build

test: ## Run tests
    npm test

lint: ## Run linter
    npm run lint

# ============================================
# Docker
# ============================================
.PHONY: docker-build docker-up docker-down

docker-build: ## Build image
    docker build -t $(APP_NAME):$(VERSION) .

docker-up: ## Start services
    docker compose up -d

docker-down: ## Stop services
    docker compose down

# ============================================
# Utilities
# ============================================
.PHONY: clean help

clean: ## Clean artifacts
    rm -rf dist/ node_modules/

help: ## Show help
    @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}'