
CC = gcc
CFLAGS += -Wall -O6
LIBS += -lpthread
INCLUDES += -I./include

ifdef DEBUG
CFLAGS += -g -pg
endif


# building directory
BUILD = bin

# objects to build
OBJS = hash.o list.o lock.o main.o net.o wqueue.o

# rules
default: all

all: pre lib $(BUILD)/old

pre:
	@if [ ! -d $(BUILD) ]; then mkdir $(BUILD); fi


$(BUILD)/old: ${OBJS}
	$(CC) $(CFLAGS) -o $(BUILD)/old $(OBJS) $(LIBS)
	strip $(BUILD)/old

.c.o:
	$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@


# the libs have their own Makefile
lib:
	@$(MAKE) -C lib/


cleanobj:
	rm -f $(OBJS) lib/libold.o

clean: cleanobj
	rm -rf $(BUILD)
	$(MAKE) -C lib/ clean


.PHONY: clean cleanobj lib

