CC=	g++
LN=	ln -sf

CFLAGS=-g -pipe -pedantic \
        -Wall -Winline -Wno-long-long \
        -ffast-math -fexpensive-optimizations -fstrength-reduce \
        -funroll-loops -I/usr/local/include
LDFLAGS=-lcurses

PROJECT=apachetop

SOURCES=apachetop.cc log.cc hashes.cc ohtbl.cc map.cc \
	hits_circle.cc timed_circle.cc

OBJECTS=$(SOURCES:.cc=.o)


default: generic
freebsd: generic
linux: generic

generic:
	$(LN) generic.h arch.h
	$(MAKE) $(PROJECT) \
	 CFLAGS="$(CFLAGS)" \
	 LDFLAGS="$(LDFLAGS)"

solaris:
	$(LN) solaris.h arch.h
	$(MAKE) $(PROJECT) \
	 CFLAGS="$(CFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" \
	 LDFLAGS="$(LDFLAGS) -L/usr/local/lib -lnsl"


apachetop: $(OBJECTS)
	$(CC) $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $@

clean:
	rm -f $(OBJECTS) arch.h

totalclean:
	@make clean
	rm -f apachetop

.cc.o:
	$(CC) $(CFLAGS) -c $<
