about summary refs log tree commit diff
path: root/custom_mutators/radamsa/GNUmakefile
blob: 3798b110fe99511bd0fd4c16310e958d2b3b1c7c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
CUR_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))

all: radamsa-mutator.so

# These can be overriden:
CFLAGS	?= $(CFLAGS_FLTO)

# These are required: (otherwise radamsa gets very very slooooow)
CFLAGS	+= -O3 -funroll-loops

#libradamsa.so: libradamsa.a
#	$(CC) $(CFLAGS) -shared libradamsa.a -o libradamsa.so

libradamsa.a: libradamsa.c radamsa.h
	@echo " ***************************************************************"
	@echo " * Compiling libradamsa, wait some minutes (~3 on modern CPUs) *"
	@echo " ***************************************************************"
	$(CC) -fPIC $(CFLAGS) $(CPPFLAGS) -I $(CUR_DIR) -o libradamsa.a -c libradamsa.c

radamsa-mutator.so: radamsa-mutator.c libradamsa.a
	$(CC) $(CFLAGS) $(CPPFLAGS) -g -I. -I../../include -shared -fPIC -c radamsa-mutator.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -shared -fPIC -o radamsa-mutator.so radamsa-mutator.o libradamsa.a

test: libradamsa.a libradamsa-test.c
	$(CC) $(CFLAGS) $(CPPFLAGS) -I $(CUR_DIR) -o libradamsa-test libradamsa-test.c libradamsa.a
	./libradamsa-test libradamsa-test.c | grep "library test passed"
	rm /tmp/libradamsa-*.fuzz

clean:
	rm -f radamsa-mutator.so libradamsa.a libradamsa-test *.o *~ core