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