[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/pythonballer/VMPacker/master/Makefile [Back]  [Original]

# ============================================================
# VMP  Makefile
# make all      C stub   Go   build/
# make stub     VM  blob
# make packer   Go packer make stub
# make demo     demo 
# make test     Go 
# make clean   
# ============================================================

# 
CROSS   ?= aarch64-linux-gnu-
CC       = $(CROSS)gcc
LD       = $(CROSS)ld
OBJCOPY  = $(CROSS)objcopy
GO       = go

# 
STUB_DIR   = stub/linux/arm64
CMD_DIR    = cmd/vmpacker
DEMO_DIR   = demo
BUILD_DIR  = build

# ------ VM  blob ------
STUB_SRC   = $(STUB_DIR)/vm_interp.c
STUB_LDS   = $(STUB_DIR)/vm_interp.lds
STUB_O     = $(BUILD_DIR)/stub/vm_interp.o
STUB_ELF   = $(BUILD_DIR)/stub/vm_interp.elf
STUB_BIN   = $(CMD_DIR)/vm_interp.bin

# ------ Go packer ------
PACKER     = $(BUILD_DIR)/vmpacker.exe

# ------ Demo ------
DEMO_LICENSE     = $(BUILD_DIR)/demo_license
DEMO_SIMPLE      = $(BUILD_DIR)/demo_simple

#  ( -mcmodel=tiny -fPIC)
STUB_CFLAGS = -c -Os -mcmodel=tiny -fno-stack-protector \
              -fno-builtin -nostdlib -march=armv8-a \
              -DVM_INDIRECT_DISPATCH -DVM_FUNC_SPLIT -DVM_TOKEN_ENTRY

DEMO_CFLAGS = -static -O0 -march=armv8-a

# ============================================================
.PHONY: all stub packer demo test clean help gui sync-public

all: stub packer
	@echo ""
	@echo "[+] Build complete: $(BUILD_DIR)/"

# ------ VM  blob ------
stub: $(STUB_BIN)

$(STUB_O): $(STUB_SRC) | $(BUILD_DIR)/stub
	$(CC) $(STUB_CFLAGS) $< -o $@

$(STUB_ELF): $(STUB_O) $(STUB_LDS)
	$(LD) -T $(STUB_LDS) -o $@ $(STUB_O)

$(STUB_BIN): $(STUB_ELF) | $(BUILD_DIR)
	$(OBJCOPY) -O binary $< $(BUILD_DIR)/vm_interp_raw.bin
	@powershell -Command "\
		$$nmOut = & '$(CROSS)nm' '$

Web Proxy Viewer  |  New URL  |  Original Page