# just in case:
# - make sure that libipq.h is in your standard include path. for example,
#   you may want to add "-I/usr/include/libipq" to both dopt and copt.

bin  = shaperd
objs = classifier.o bwadm.o classdef.o config.o packet.o main.o sched.o log.o
deps = $(objs:.o=.d)
libs =
dopt = -I/usr/src/linux/include
copt = -Wall -O2 -I/usr/src/linux/include
lopt = -Wall -O2 
GCC  = gcc
G++  = g++

default: $(bin)
	@/bin/true

ifeq ($(with_divert), yes)
  dopt += -DWITH_DIVERT
  copt += -DWITH_DIVERT
  ifneq ($(MAKECMDGOALS), clean)
    -include $(deps)
  endif
endif

ifeq ($(with_ipq), yes)
  dopt += -DWITH_IPQ
  copt += -DWITH_IPQ
  libs += -lipq
  ifneq ($(MAKECMDGOALS), clean)
    -include $(deps)
  endif
endif

$(bin): $(objs)
	$(G++) $(lopt) -o $(bin) $(objs) $(libs)

%.o:
	$(G++) $(copt) -c $<
log.o:
	$(GCC) $(copt) -c $<
%.d:
	$(G++) $(dopt) -MM $(@:.d=.cpp) >$@
log.d:
	$(GCC) -MM log.c >$@

.PHONY: clean
clean:
	rm -f *.o *.d $(bin)
