CC	=	gcc
CFLAGS	=	-Wall -O3 -I/usr/include  -I/usr/local/include
LIBS	=	-L/lib -L/usr/lib -L/usr/local/lib -lm

.c.o:
	$(CC) $(EXT) $(CFLAGS) $(INCLUDE) -c $<

LIBFILE=fnccheck.c
LIBNAME=libfnccheck.so
DUMP=fncdump
AVG=fncaverage

default:
	-@ echo "Please specify a target."

fnccheck:
	$(CC) -Wall -O3 -c $(LIBFILE)
	$(CC) -Wall -O3 -fPIC -c $(LIBFILE) -o $(LIBNAME)
	mv $(LIBNAME) ../lib/

dfnccheck:
	$(CC) -Wall -O3 -DFNCCHK_DEBUG -c $(LIBFILE)
	$(CC) -Wall -O3 -fPIC -DFNCCHK_DEBUG -c $(LIBFILE) -o $(LIBNAME)
	mv $(LIBNAME) ../lib/

fncdump:
	-@ export EXT=-DFNCCHK_USE_BFD ; make real_fncdump

real_fncdump: fncdump.o
	$(CC) -O3 $(CFLAGS) $(INCLUDE) -o $(DUMP) fncdump.o $(LIBS) -lbfd -liberty
	mv $(DUMP) ../bin

fncdump_nobfd: fncdump.o
	$(CC) -O3 $(CFLAGS) $(INCLUDE) -o $(DUMP) fncdump.o $(LIBS)
	mv $(DUMP) ../bin

fncaverage: fnccheck.o fncaverage.o
	$(CC) -O3 $(CFLAGS) $(INCLUDE) -o $(AVG) fncaverage.o fnccheck.o $(LIBS)
	mv $(AVG) ../bin

clean:
	rm -f *.o *~ core

clear:
	rm -f *.o *.so *~ ../bin/$(DUMP) ../bin/$(AVG) ../lib/$(LIBNAME) core


fncdump.o: fncdump.c fnccheck.h
fnccheck.o: fnccheck.c fnccheck.h
