summaryrefslogtreecommitdiffstats
path: root/userspace/ebtables2/Makefile
blob: dbf9a3fc04402c2f4b19786be23768a42fe696a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# ebtables Makefile

PROGNAME:=ebtables
PROGVERSION:="2.0.1"
PROGDATE:="October 2002"

MANDIR?=/usr/local/man
CFLAGS:=-Wall -Wunused
CC:=gcc
include extensions/Makefile

OBJECTS:=getethertype.o ebtables.o communication.o $(EXT_OBJS)

# Use the option NONSTANDARD=y when you don't want to use the kernel includes
# that are included in this package. You should set KERNEL_INCLUDES to
# the right directory (eg /usr/src/linux/include).
# You should only need this when compiling the CVS or when adding new code.
ifeq ($(NONSTANDARD), y)
KERNEL_INCLUDES?=/usr/include/
else
KERNEL_INCLUDES:=include/
endif

#ETHERTYPESFILE:="/etc/ethertypes"
ETHERTYPESFILE:="/usr/local/etc/ethertypes"

PROGSPECS:=-DPROGVERSION=\"$(PROGVERSION)\" \
	-DPROGNAME=\"$(PROGNAME)\" \
	-DPROGDATE=\"$(PROGDATE)\" \
	-D_PATH_ETHERTYPES=\"$(ETHERTYPESFILE)\"


all: ebtables

communication.o: communication.c include/ebtables_u.h
	$(CC) $(CFLAGS) $(PROGSPECS) -c -o $@ $< -I$(KERNEL_INCLUDES)

getethertype.o: getethertype.c include/ethernetdb.h
	$(CC) $(CFLAGS) $(PROGSPECS) -c -o $@ $< -Iinclude/

ebtables.o: ebtables.c include/ebtables_u.h
	$(CC) $(CFLAGS) $(PROGSPECS) -c -o $@ $< -I$(KERNEL_INCLUDES)

ebtables: $(OBJECTS)
	$(CC) $(CFLAGS) -o $@ $^ -I$(KERNEL_INCLUDES)

$(MANDIR)/man8/ebtables.8: ebtables.8
	mkdir -p $(@D)
	install -m 0644 -o root -g root $< $@

/etc/ethertypes: ethertypes
	mkdir -p $(@D)
	install -m 0644 -o root -g root $< $@

.PHONY: exec
exec: ebtables
	install -m 0755 -o root -g root $< /sbin/ebtables

.PHONY: install
install: $(MANDIR)/man8/ebtables.8 ebtables /etc/ethertypes exec

.PHONY: clean
clean:
	rm -f ebtables
	rm -f *.o *.c~
	rm -f extensions/*.o extensions/*.c~

DIR:=$(PROGNAME)-v$(PROGVERSION)
# This is used to make a new userspace release
.PHONY: release
release:
	mkdir -p include/linux/netfilter_bridge
	install -m 0644 -o root -g root \
		$(KERNEL_INCLUDES)/linux/netfilter_bridge.h include/linux/
# To keep possible compile error complaints about undefined ETH_P_8021Q
# off my back
	install -m 0644 -o root -g root \
		$(KERNEL_INCLUDES)/linux/if_ether.h include/linux/
	install -m 0644 -o root -g root \
		$(KERNEL_INCLUDES)/linux/netfilter_bridge/*.h \
		include/linux/netfilter_bridge/
	make clean
	cd ..;tar -c $(DIR) | gzip >$(DIR).tar.gz