summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorBart De Schuymer <bdschuym@pandora.be>2002-11-20 19:41:02 +0000
committerBart De Schuymer <bdschuym@pandora.be>2002-11-20 19:41:02 +0000
commit0f8c499be65eda3215c55512c2c9d420a771e463 (patch)
tree1fea2f30677eaff168125d55ce68f8f3ff021b7b /Makefile
parent4a721befc49711833623d0fc5f4bf0ac7034fcc7 (diff)
new compile method
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile71
1 files changed, 45 insertions, 26 deletions
diff --git a/Makefile b/Makefile
index 18e6c2b..59ebce2 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,5 @@
# ebtables Makefile
-KERNEL_DIR?=/usr/src/linux
PROGNAME:=ebtables
PROGVERSION:="2.0.1"
PROGDATE:="October 2002"
@@ -10,39 +9,40 @@ CFLAGS:=-Wall -Wunused
CC:=gcc
include extensions/Makefile
-# Some kernel testers prefer to use a symlink for /usr/include/linux
-ifeq ($(SYMLINK), y)
-KERNEL_INCLUDES=symlink
+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=headers
+KERNEL_INCLUDES:=include/
endif
-all: ebtables
+ETHERTYPESFILE1:="/etc/ethertypes"
+ETHERTYPESFILE2:="/usr/local/etc/ethertypes"
+
+PROGSPECS:=-DPROGVERSION=\"$(PROGVERSION)\" \
+ -DPROGNAME=\"$(PROGNAME)\" \
+ -DPROGDATE=\"$(PROGDATE)\" \
+ -D_PATH_ETHERTYPES1=\"$(ETHERTYPESFILE1)\"
-.PHONY: headers
-headers:
- mkdir -p /usr/include/linux/netfilter_bridge
- cp -f $(KERNEL_DIR)/include/linux/netfilter_bridge/* \
- /usr/include/linux/netfilter_bridge/
- cp -f $(KERNEL_DIR)/include/linux/netfilter_bridge.h \
- /usr/include/linux/netfilter_bridge.h
- cp -f $(KERNEL_DIR)/include/linux/if_ether.h \
- /usr/include/linux/if_ether.h
-.PHONY: symlink
-symlink:
- rm -f /usr/include/linux
- ln -fs $(KERNEL_DIR)/include/linux /usr/include/linux
+all: ebtables
communication.o: communication.c include/ebtables_u.h
- $(CC) $(CFLAGS) -DPROGVERSION=\"$(PROGVERSION)\" -c -o $@ $<
+ $(CC) $(CFLAGS) $(PROGSPECS) -c -o $@ $< -I$(KERNEL_INCLUDES)
+
+getethertype.o: getethertype.c include/ethernetdb.h
+ $(CC) $(CFLAGS) -c -o $@ $< -Iinclude/
ebtables.o: ebtables.c include/ebtables_u.h
- $(CC) $(CFLAGS) -DPROGVERSION=\"$(PROGVERSION)\" \
- -DPROGNAME=\"$(PROGNAME)\" -DPROGDATE=\"$(PROGDATE)\" -c -o $@ $<
+ $(CC) $(CFLAGS) $(PROGSPECS) -c -o $@ $< -I$(KERNEL_INCLUDES)
-ebtables: ebtables.o communication.o $(EXT_OBJS)
- $(CC) $(CFLAGS) -o $@ $^
+ebtables: $(OBJECTS)
+ $(CC) $(CFLAGS) -o $@ $^ -I$(KERNEL_INCLUDES)
$(MANDIR)/man8/ebtables.8: ebtables.8
mkdir -p $(@D)
@@ -51,14 +51,33 @@ $(MANDIR)/man8/ebtables.8: ebtables.8
/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
-install: $(MANDIR)/man8/ebtables.8 $(KERNEL_INCLUDES) \
- ebtables /etc/ethertypes exec
+.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