Skip to main content

Makefile

  • Makefile

🧱 Estrutura básica de um Makefile

alvo:
<TAB>comando 1
<TAB>comando 2
  • alvo: é o nome da "tarefa", que você roda com make alvo
  • TAB obrigató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

SintaxeO que faz
@comandoExecuta sem imprimir o comando no terminal
-comandoIgnora erro se o comando falhar
alvo1 alvo2:Executa alvo1 e alvo2 antes desse alvo
VAR ?= valorDefine variável se ainda não estiver definida
include arquivo.mkInclui 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)