# =============================================================================
# PIC String Obfuscator - Main Makefile
# Builds: Obfuscator tool + All 6 examples
# =============================================================================

GO = go
OBFUSCATOR_DIR = ./obfuscator
OBFUSCATOR_BIN = $(OBFUSCATOR_DIR)/enc_pic_str

EXAMPLE_DIRS = examples/01-simple-printf \
               examples/02-messagebox \
               examples/03-messagebox-wide \
               examples/04-advanced-peb \
               examples/05-non-obfuscated \
               examples/06-batch-mode

.PHONY: all clean obfuscator examples

all: obfuscator examples

obfuscator:
	@echo ""
	@echo "============================================"
	@echo "Building Go Obfuscator"
	@echo "============================================"
	@cd $(OBFUSCATOR_DIR) && $(GO) build -o enc_pic_str .
	@echo "[+] Success: $(OBFUSCATOR_BIN)"

examples:
	@for dir in $(EXAMPLE_DIRS); do \
		echo ""; \
		echo "============================================"; \
		echo "Building $$dir"; \
		echo "============================================"; \
		$(MAKE) -C $$dir || exit 1; \
	done
	@echo ""
	@echo "============================================"
	@echo "Build Complete!"
	@echo "============================================"
	@echo "Example 1: examples/01-simple-printf/build/example1.exe"
	@echo "Example 2: examples/02-messagebox/build/example2.exe"
	@echo "Example 3: examples/03-messagebox-wide/build/example3.exe"
	@echo "Example 4: examples/04-advanced-peb/build/example4.exe"
	@echo "Example 5: examples/05-non-obfuscated/build/example5.exe"
	@echo "Example 6: examples/06-batch-mode/build/example6.exe"
	@echo "============================================"

clean:
	@echo "[*] Cleaning obfuscator..."
	@rm -f $(OBFUSCATOR_BIN)
	@echo "[*] Cleaning all examples..."
	@for dir in $(EXAMPLE_DIRS); do \
		$(MAKE) -C $$dir clean; \
	done
	@echo "[*] Cleaned."
