1*08b48e0bSAndroid Build Coastguard Worker# 2*08b48e0bSAndroid Build Coastguard Worker# american fuzzy lop++ - libtokencap 3*08b48e0bSAndroid Build Coastguard Worker# -------------------------------- 4*08b48e0bSAndroid Build Coastguard Worker# 5*08b48e0bSAndroid Build Coastguard Worker# Originally written by Michal Zalewski 6*08b48e0bSAndroid Build Coastguard Worker# 7*08b48e0bSAndroid Build Coastguard Worker# Copyright 2016 Google Inc. All rights reserved. 8*08b48e0bSAndroid Build Coastguard Worker# 9*08b48e0bSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 10*08b48e0bSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 11*08b48e0bSAndroid Build Coastguard Worker# You may obtain a copy of the License at: 12*08b48e0bSAndroid Build Coastguard Worker# 13*08b48e0bSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 14*08b48e0bSAndroid Build Coastguard Worker# 15*08b48e0bSAndroid Build Coastguard Worker 16*08b48e0bSAndroid Build Coastguard WorkerPREFIX ?= /usr/local 17*08b48e0bSAndroid Build Coastguard WorkerHELPER_PATH = $(PREFIX)/lib/afl 18*08b48e0bSAndroid Build Coastguard WorkerDOC_PATH ?= $(PREFIX)/share/doc/afl 19*08b48e0bSAndroid Build Coastguard WorkerMAN_PATH ?= $(PREFIX)/share/man/man8 20*08b48e0bSAndroid Build Coastguard Worker 21*08b48e0bSAndroid Build Coastguard WorkerVERSION = $(shell grep '^\#define VERSION ' ../../config.h | cut -d '"' -f2) 22*08b48e0bSAndroid Build Coastguard Worker 23*08b48e0bSAndroid Build Coastguard WorkerCFLAGS ?= -O3 -funroll-loops -D_FORTIFY_SOURCE=2 24*08b48e0bSAndroid Build Coastguard Workeroverride CFLAGS += -I ../../include/ -Wall -g -Wno-pointer-sign 25*08b48e0bSAndroid Build Coastguard Worker 26*08b48e0bSAndroid Build Coastguard Worker 27*08b48e0bSAndroid Build Coastguard WorkerUNAME_S =$(shell uname -s)# GNU make 28*08b48e0bSAndroid Build Coastguard WorkerUNAME_S:sh=uname -s # BSD make 29*08b48e0bSAndroid Build Coastguard Worker_UNIQ=_QINU_ 30*08b48e0bSAndroid Build Coastguard Worker 31*08b48e0bSAndroid Build Coastguard Worker _OS_DL = $(_UNIQ)$(UNAME_S) 32*08b48e0bSAndroid Build Coastguard Worker __OS_DL = $(_OS_DL:$(_UNIQ)Linux=$(_UNIQ)) 33*08b48e0bSAndroid Build Coastguard Worker ___OS_DL = $(__OS_DL:$(_UNIQ)Darwin=$(_UNIQ)) 34*08b48e0bSAndroid Build Coastguard Worker ____OS_DL = $(___OS_DL:$(_UNIQ)$(UNAME_S)=) 35*08b48e0bSAndroid Build Coastguard Worker_____OS_DL = $(____OS_DL:$(_UNIQ)="-ldl") 36*08b48e0bSAndroid Build Coastguard Worker 37*08b48e0bSAndroid Build Coastguard Worker _OS_TARGET = $(___OS_DL:$(_UNIQ)FreeBSD=$(_UNIQ)) 38*08b48e0bSAndroid Build Coastguard Worker __OS_TARGET = $(_OS_TARGET:$(_UNIQ)OpenBSD=$(_UNIQ)) 39*08b48e0bSAndroid Build Coastguard Worker ___OS_TARGET = $(__OS_TARGET:$(_UNIQ)NetBSD=$(_UNIQ)) 40*08b48e0bSAndroid Build Coastguard Worker ____OS_TARGET = $(___OS_TARGET:$(_UNIQ)Haiku=$(_UNIQ)) 41*08b48e0bSAndroid Build Coastguard Worker _____OS_TARGET = $(____OS_TARGET:$(_UNIQ)SunOS=$(_UNIQ)) 42*08b48e0bSAndroid Build Coastguard Worker______OS_TARGET = $(_____OS_TARGET:$(_UNIQ)$(UNAME_S)=) 43*08b48e0bSAndroid Build Coastguard Worker 44*08b48e0bSAndroid Build Coastguard WorkerTARGETS = $(______OS_TARGET:$(_UNIQ)=libtokencap.so) 45*08b48e0bSAndroid Build Coastguard Worker 46*08b48e0bSAndroid Build Coastguard WorkerLDFLAGS += $(_____OS_DL) 47*08b48e0bSAndroid Build Coastguard Worker 48*08b48e0bSAndroid Build Coastguard Worker#ifeq "$(shell uname)" "Linux" 49*08b48e0bSAndroid Build Coastguard Worker# TARGETS = libtokencap.so 50*08b48e0bSAndroid Build Coastguard Worker# LDFLAGS += -ldl 51*08b48e0bSAndroid Build Coastguard Worker#endif 52*08b48e0bSAndroid Build Coastguard Worker#ifeq "$(shell uname)" "Darwin" 53*08b48e0bSAndroid Build Coastguard Worker# TARGETS = libtokencap.so 54*08b48e0bSAndroid Build Coastguard Worker# LDFLAGS += -ldl 55*08b48e0bSAndroid Build Coastguard Worker#endif 56*08b48e0bSAndroid Build Coastguard Worker#ifeq "$(shell uname)" "FreeBSD" 57*08b48e0bSAndroid Build Coastguard Worker# TARGETS = libtokencap.so 58*08b48e0bSAndroid Build Coastguard Worker#endif 59*08b48e0bSAndroid Build Coastguard Worker#ifeq "$(shell uname)" "OpenBSD" 60*08b48e0bSAndroid Build Coastguard Worker# TARGETS = libtokencap.so 61*08b48e0bSAndroid Build Coastguard Worker#endif 62*08b48e0bSAndroid Build Coastguard Worker#ifeq "$(shell uname)" "NetBSD" 63*08b48e0bSAndroid Build Coastguard Worker# TARGETS = libtokencap.so 64*08b48e0bSAndroid Build Coastguard Worker#endif 65*08b48e0bSAndroid Build Coastguard Worker#ifeq "$(shell uname)" "DragonFly" 66*08b48e0bSAndroid Build Coastguard Worker# TARGETS = libtokencap.so 67*08b48e0bSAndroid Build Coastguard Worker# LDFLAGS += -ldl 68*08b48e0bSAndroid Build Coastguard Worker#endif 69*08b48e0bSAndroid Build Coastguard Workerall: $(TARGETS) 70*08b48e0bSAndroid Build Coastguard Worker 71*08b48e0bSAndroid Build Coastguard Workerlibtokencap.so: libtokencap.so.c ../../config.h 72*08b48e0bSAndroid Build Coastguard Worker $(CC) $(CFLAGS) $(CPPFLAGS) -shared -fPIC $< -o $@ $(LDFLAGS) 73*08b48e0bSAndroid Build Coastguard Worker cp -f libtokencap.so ../../ 74*08b48e0bSAndroid Build Coastguard Worker 75*08b48e0bSAndroid Build Coastguard Worker.NOTPARALLEL: clean 76*08b48e0bSAndroid Build Coastguard Worker 77*08b48e0bSAndroid Build Coastguard Workerdebug: 78*08b48e0bSAndroid Build Coastguard Worker @echo $(UNAME_S)$(_UNIQ) | hexdump -C 79*08b48e0bSAndroid Build Coastguard Worker @echo from $(____OS_DL) : $(_UNIQ)$(UNAME_S) = -\> $(_____OS_DL) 80*08b48e0bSAndroid Build Coastguard Worker @echo from $(_____OS_DL) : $(_UNIQ) = -ldl -\> $(______OS_DL) 81*08b48e0bSAndroid Build Coastguard Worker @echo from $(____OS_DL) : $(_UNIQ)FreeBSD = $(_UNIQ) -\> $(_OS_TARGET) 82*08b48e0bSAndroid Build Coastguard Worker @echo from $(_OS_TARGET) : $(_UNIQ)OpenBSD = $(_UNIQ) -\> $(__OS_TARGET) 83*08b48e0bSAndroid Build Coastguard Worker @echo from $(__OS_TARGET) : $(_UNIQ)NetBSD = $(_UNIQ) -\> $(___OS_TARGET) 84*08b48e0bSAndroid Build Coastguard Worker @echo from $(___OS_TARGET) : $(_UNIQ)$(_UNIQ) = -\> $(____OS_TARGET) 85*08b48e0bSAndroid Build Coastguard Worker @echo from $(____OS_TARGET) : $(_UNIQ) = libtokencap.so -\> $(TARGETS) 86*08b48e0bSAndroid Build Coastguard Worker 87*08b48e0bSAndroid Build Coastguard Workerclean: 88*08b48e0bSAndroid Build Coastguard Worker rm -f *.o *.so *~ a.out core core.[1-9][0-9]* 89*08b48e0bSAndroid Build Coastguard Worker rm -fv ../../libtokencap.so 90*08b48e0bSAndroid Build Coastguard Worker 91*08b48e0bSAndroid Build Coastguard Workerinstall: all 92*08b48e0bSAndroid Build Coastguard Worker install -m 755 -d $${DESTDIR}$(HELPER_PATH) 93*08b48e0bSAndroid Build Coastguard Worker install -m 755 ../../libtokencap.so $${DESTDIR}$(HELPER_PATH) 94*08b48e0bSAndroid Build Coastguard Worker install -m 644 -T README.md $${DESTDIR}$(DOC_PATH)/README.tokencap.md 95