mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-08 00:01:33 +00:00
63 lines
1.4 KiB
Makefile
63 lines
1.4 KiB
Makefile
#!/usr/bin/env make
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
# Copyright 2021 Ricerca Security, Inc. All rights reserved.
|
|
|
|
SHELL:=bash
|
|
PREFIX?=$(shell pwd)/.local
|
|
|
|
CS_TRACE:=coresight-trace
|
|
|
|
PATCHELF?=$(PREFIX)/bin/patchelf
|
|
|
|
PATCH_DIR:=patches
|
|
|
|
GLIBC_VER:=2.33
|
|
GLIBC_NAME:=glibc-$(GLIBC_VER)
|
|
GLIBC_URL_BASE:=http://ftp.gnu.org/gnu/glibc
|
|
GLIBC_LDSO?=$(PREFIX)/lib/ld-linux-aarch64.so.1
|
|
|
|
OUTPUT?="$(TARGET).patched"
|
|
|
|
all: build
|
|
|
|
build:
|
|
git submodule update --init --recursive $(CS_TRACE)
|
|
$(MAKE) -C $(CS_TRACE)
|
|
cp $(CS_TRACE)/cs-proxy ../afl-cs-proxy
|
|
|
|
patch: | $(PATCHELF) $(GLIBC_LDSO)
|
|
@if test -z "$(TARGET)"; then echo "TARGET is not set"; exit 1; fi
|
|
$(PATCHELF) \
|
|
--set-interpreter $(GLIBC_LDSO) \
|
|
--set-rpath $(dir $(GLIBC_LDSO)) \
|
|
--output $(OUTPUT) \
|
|
$(TARGET)
|
|
|
|
$(PATCHELF): patchelf
|
|
git submodule update --init $<
|
|
cd $< && \
|
|
./bootstrap.sh && \
|
|
./configure --prefix=$(PREFIX) && \
|
|
$(MAKE) && \
|
|
$(MAKE) check && \
|
|
$(MAKE) install
|
|
|
|
$(GLIBC_LDSO): | $(GLIBC_NAME).tar.xz
|
|
tar -xf $(GLIBC_NAME).tar.xz
|
|
for file in $(shell find $(PATCH_DIR) -maxdepth 1 -type f); do \
|
|
patch -p1 < $$file ; \
|
|
done
|
|
mkdir -p $(GLIBC_NAME)/build
|
|
cd $(GLIBC_NAME)/build && \
|
|
../configure --prefix=$(PREFIX) && \
|
|
$(MAKE) && \
|
|
$(MAKE) install
|
|
|
|
$(GLIBC_NAME).tar.xz:
|
|
wget -qO $@ $(GLIBC_URL_BASE)/$@
|
|
|
|
clean:
|
|
$(MAKE) -C $(CS_TRACE) clean
|
|
|
|
.PHONY: all build patch clean
|