Makefile
- Makefile
🧱 Estrutura básica de um Makefile
alvo:
<TAB>comando 1
<TAB>comando 2
alvo: é o nome da "tarefa", que você roda commake alvoTABobrigatório: os comandos dentro de cada alvo devem começar com uma tabulação, não espaços- Comandos: são qualquer comando shell (como se estivesse no terminal)
📦 Exemplo simples
build:
echo "Compilando projeto..."
go build -o minha-app
run:
./minha-app
🧠 Variáveis no Makefile
APP_NAME = minha-app
build:
go build -o $(APP_NAME)
run:
./$(APP_NAME)
Use $(VARIAVEL) para acessar o valor.
🔄 Alvo padrão
O primeiro alvo do Makefile é o que roda se você digitar só make.
default: build
build:
echo "Construindo..."
clean:
rm -rf build/
🧰 Comandos úteis
| Sintaxe | O que faz |
|---|---|
@comando | Executa sem imprimir o comando no terminal |
-comando | Ignora erro se o comando falhar |
alvo1 alvo2: | Executa alvo1 e alvo2 antes desse alvo |
VAR ?= valor | Define variável se ainda não estiver definida |
include arquivo.mk | Inclui outro arquivo de Make |
⚠️ Cuidado
- Tabulação obrigatória para comandos
- Nomes dos alvos não podem ter espaço
- Evite nomes de alvos que colidam com nomes de arquivos
🚀 Exemplo real: Deploy com SCP
SERVER = root@10.132.213.171
DIR = /home/devops-zeus
LOCAL = ../devops-zeus
deploy:
scp -r $(LOCAL) $(SERVER):$(DIR)