add library dependencies for the userspace library
[ipfw-google.git] / Makefile.openwrt
index 3c7be80..a1d62e5 100644 (file)
@@ -1,9 +1,9 @@
 # Makefile to build the package in openwrt.
-# goes into package/ipfw3/Makefile
+# goes into package/network/utils/ipfw3/Makefile
 #
 # Edit IPFW_DIR to point to the directory with the sources for ipfw
 
-IPFW_DIR := $(TOPDIR)/../ipfw3
+IPFW_DIR := $(TOPDIR)/../qemu-misc/ipfw3
 
 include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
@@ -17,19 +17,17 @@ MV ?= mv
 include $(INCLUDE_DIR)/package.mk
 
 #Stuff depending on kernel version
-ifeq ($(KERNEL),2.6)
-
-VERS:=2.6
-IPFW_MOD:=ipfw_mod.ko
-IPFW_SRC_DIR:=M
+$(warning --- openwrt kernel version $(KERNEL) linux dir $(LINUX_DIR) -------)
 
+ifeq ($(KERNEL),2.4)
+    VERS:=openwrt
+    CFLAGS_WRT:=-DSYSCTL_NODE -DEMULATE_SYSCTL
+    IPFW_MOD:=ipfw_mod.o
+    IPFW_SRC_DIR:=SUBDIRS
 else
-
-VERS:=openwrt
-CFLAGS_WRT:=-DSYSCTL_NODE -DEMULATE_SYSCTL
-IPFW_MOD:=ipfw_mod.o
-IPFW_SRC_DIR:=SUBDIRS
-
+    #VERS:=2.6
+    IPFW_MOD:=ipfw_mod.ko
+    IPFW_SRC_DIR:=M
 endif
 
 # Description for the package.
@@ -41,7 +39,7 @@ define KernelPackage/ipfw3
  TITLE:= IPFW and dummynet
  # FILES is what makes up the module, both kernel and userland
  # It must be in the KernelPackage section
- FILES := $(PKG_BUILD_DIR)/dummynet2/$(IPFW_MOD) $(PKG_BUILD_DIR)/ipfw/ipfw
+ FILES := $(PKG_BUILD_DIR)/kipfw-mod/$(IPFW_MOD) $(PKG_BUILD_DIR)/ipfw/ipfw
  # AUTOLOAD:=$(call AutoLoad,80,ipfw_mod)
 endef
 
@@ -59,22 +57,38 @@ define Build/Prepare
   # $(warning Preparing ipfw sources)
        mkdir -p $(PKG_BUILD_DIR)
        $(CP) -Rp $(IPFW_DIR)/* $(PKG_BUILD_DIR)/
+       # The kernel sources are spread in multiple places,
+       # so we put everything in kipfw-mod
+       mkdir -p $(PKG_BUILD_DIR)/kipfw-mod
+       cp -Rp $(IPFW_DIR)/kipfw/* $(PKG_BUILD_DIR)/kipfw-mod
+       cp `find $(IPFW_DIR)/sys -name \*.c` $(PKG_BUILD_DIR)/kipfw-mod
+       # we do not need cross parameters
        (cd $(PKG_BUILD_DIR)/ipfw && $(MAKE) include_e )
-       (cd $(PKG_BUILD_DIR)/dummynet2 && $(MAKE) include_e )
+       (cd $(PKG_BUILD_DIR)/kipfw-mod && $(MAKE) include_e )
 endef
 
 define Build/Compile
+       # XXX check whether we need all linux_dir etc.
+       $(MAKE) -C $(PKG_BUILD_DIR)/ipfw \
+               LINUX_DIR=$(LINUX_DIR) \
+               $(TARGET_CONFIGURE_OPTS) \
+               CFLAGS="$(TARGET_CFLAGS) $(CFLAGS_WRT) -I./include_e -I./include -include ../glue.h -DNO_ALTQ -D__BSD_VISIBLE" \
+               _VER=$(VERS) all
+       $(warning  compile the kernel part for ipfw/openwrt)
        # compile the kernel part for openwrt
        $(MAKE) -C "$(LINUX_DIR)" \
                CROSS_COMPILE="$(TARGET_CROSS)" \
+               LINUX_DIR=$(LINUX_DIR) \
+               KERNELPATH=$(LINUX_DIR) \
                ARCH="$(LINUX_KARCH)" \
-               $(IPFW_SRC_DIR)="$(PKG_BUILD_DIR)/dummynet2" \
-               VER=$(VERS) modules
-       # compile the userland part for openwrt
-       $(MAKE) -C $(PKG_BUILD_DIR)/ipfw \
-               $(TARGET_CONFIGURE_OPTS) \
-               CFLAGS="$(TARGET_CFLAGS) $(CFLAGS_WRT) -I./include_e -I./include -include ../glue.h -DNO_ALTQ -D__BSD_VISIBLE" \
-               VER=$(VERS) all
+               $(IPFW_SRC_DIR)="$(PKG_BUILD_DIR)/kipfw-mod" \
+               IPFW3_ROOT="$(PKG_BUILD_DIR)" \
+               _VER=$(VERS) modules
+endef
+
+define Build/Compile_new
+       $(call Build/Compile/Default)
+       $(call Build/Compile/Default,modules)
 endef
 
 define Package/ipfw3-userland
@@ -82,6 +96,7 @@ define Package/ipfw3-userland
   CATEGORY:=Utilities
   TITLE := /sbin/ipfw
   DESCRIPTION := This is the control program for ipfw and dummynet
+  DEPENDS := +libc +libgcc
 endef
 
 define Package/ipfw3-userland/install