# Generated automatically from Makefile.in by configure.
## Click bsdmodule driver Makefile ##
SHELL = /bin/sh

srcdir := .
top_srcdir := ..
top_builddir := ..
subdir := bsdmodule

prefix = /usr/local
exec_prefix = ${prefix}
bindir = /usr/local/bin
sbindir = ${exec_prefix}/sbin
libdir = /usr/local/lib
freebsd_includedir = /usr/include
freebsd_srcdir = NONE

VPATH = .:$(top_srcdir)/lib:$(top_srcdir)/$(subdir):$(top_srcdir)/elements/bsdmodule:$(top_srcdir)/elements/standard:$(top_srcdir)/elements/ethernet:$(top_srcdir)/elements/aqm:$(top_srcdir)/elements/ip:$(top_srcdir)/elements/icmp:$(top_srcdir)/elements/tcpudp:$(top_srcdir)/elements/app

CC = gcc -Wall
CPP = gcc -Wall -E
CXX = g++ -w -Wall -fno-exceptions -fno-rtti -fvtable-thunks
CXXCPP = g++ -Wp,-w -W -Wall -fno-exceptions -fno-rtti -fvtable-thunks -E
LD = ld
STRIP = strip
PERL = perl
INSTALL = /usr/bin/install -c
INSTALL_DATA = /usr/bin/install -c -m 644
mkinstalldirs = ../mkinstalldirs

.SUFFIXES:
.SUFFIXES: .S .c .cc .o .s .ii

.c.o:
	$(COMPILE) -c $<
.s.o:
	$(COMPILE) -c $<
.S.o:
	$(COMPILE) -c $<
.cc.o:
	$(CXXCOMPILE) -c $<
.cc.s:
	$(CXXCOMPILE) -S $<
.cc.ii:
	$(CXXCOMPILE) -E $< > $@


ifndef INSTALLOBJS
INSTALLOBJS = click.ko
endif

GENERIC_OBJS = string.o straccum.o \
	bitvector.o vectorv.o templatei.o bighashmap_arena.o \
	ipaddress.o ipaddressset.o ipflowid.o etheraddress.o \
	packet.o in_cksum.o \
	error.o glue.o task.o timer.o atomic.o gaprate.o \
	element.o \
	confparse.o variableenv.o lexer.o elemfilter.o \
	routerthread.o router.o handlercall.o notifier.o \
	integers.o crc32.o iptable.o ewma64.o \
	packageutils.o \
	$(EXTRA_DRIVER_OBJS)

BSDMODULE_OBJS = module.o kernelerror.o sched.o \
	clickfs.o clickfs_vnops.o clickfs_tree.o clickfs_element.o

EXTRA_DRIVER_OBJS = 

-include elements.mk

OBJS = setdef0.o $(BSDMODULE_OBJS) $(GENERIC_OBJS) $(ELEMENT_OBJS) elements.o setdef1.o

CPPFLAGS =  -MD -DCLICK_BSDMODULE
CFLAGS =  -O2 -g
CXXFLAGS =  -O2 -g

DEFS = -DHAVE_CONFIG_H 
INCLUDES = -nostdinc -I$(top_builddir)/include -I$(top_srcdir)/include \
	-I$(srcdir) -I$(top_srcdir) -I. -I$(freebsd_includedir)
LDFLAGS = 
LIBS = 

CXXCOMPILE = $(CXX) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
CXXLINK = $(CXXLD) $(CXXFLAGS) $(LDFLAGS) -o $@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(CFLAGS) $(LDFLAGS) -o $@

all: $(INSTALLOBJS) click-mount

click.ko: Makefile vnode_if.h $(OBJS)
	$(LD) -Bshareable -o click.ko $(OBJS)

Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	cd $(top_builddir) \
	  && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status

elemlist:
	@/bin/rm -f elements.conf
	@$(MAKE) elements.conf
elements.conf: $(top_builddir)/config.status $(top_srcdir)/click-buildtool
	echo "bsdmodule  standard ethernet aqm ip icmp tcpudp app" | (cd $(top_srcdir); ./click-buildtool findelem -r "int64 i686 i386 i586") > elements.conf
elements.mk: elements.conf $(top_srcdir)/click-buildtool
	(cd $(top_srcdir); ./click-buildtool elem2make) < elements.conf > elements.mk
elements.cc: elements.conf $(top_srcdir)/click-buildtool
	(cd $(top_srcdir); ./click-buildtool elem2export) < elements.conf > elements.cc
	@rm -f elements.d

setdef0.c setdef1.c: module.o
	gensetdefs module.o
vnode_if.h: $(freebsd_srcdir)/kern/vnode_if.pl $(freebsd_srcdir)/kern/vnode_if.src $(srcdir)/massage-vnode_if.pl
	$(PERL) $(freebsd_srcdir)/kern/vnode_if.pl -h $(freebsd_srcdir)/kern/vnode_if.src
	$(PERL) $(srcdir)/massage-vnode_if.pl vnode_if.h

# Special compile rule for click-mount because we don't want
# to built it with -D_KERNEL, it's in user-space..
click-mount: click-mount.o
	$(CC) click-mount.o -o click-mount $(LDFLAGS)
click-mount.o: click-mount.c
	$(CC) -c $< -o click-mount.o

DEPFILES := $(wildcard *.d)
ifneq ($(DEPFILES),)
include $(DEPFILES)
endif

install: $(INSTALLOBJS)
	$(mkinstalldirs) $(libdir)
	for i in $(INSTALLOBJS); do $(INSTALL_DATA) $$i $(libdir)/$$i; done
install-man:

clean:
	-rm -f *.d *.o click.ko elements.mk elements.cc elements.conf \
	vnode_if.h vnode_if.h~ setdef0.c setdef1.c setdefs.h
distclean: clean
	-rm -f Makefile

.PHONY: all clean distclean elemlist install install-man
