#
-# $Id: README 6070 2010-04-15 11:58:21Z marta $
+# $Id: README 8977 2011-07-04 11:47:59Z luigi $
#
This directory contains a port of ipfw and dummynet to Linux/OpenWrt
=================== BUILD INSTRUCTIONS ==========================
-***** Windows XP ******
+***** Windows (XPi, Windows7) ******
You can find a pre-built version in the binary/ subdirectory.
To build your own version of the package you need:
- - MSVC DDK available from ...
- http://www.microsoft.com/whdc/DevTools/WDK/WDKpkg.mspx
+ - MSVC DDK available from
+ http://msdn.microsoft.com/en-us/windows/hardware/gg487463.aspx
- optionally, DbgView if you want to see diagnostic
http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx
- cygwin, http://www.cygwin.com/
with base packages, make, c compiler, possibly an editor
- and subversion.
+ and subversion (suggest: tortoiseSvn)
Edit Makefile in the root directory, and set configuration
variables to match your current system (hard drive
ipfw.sys (an NDIS intermediate filter driver)
dummynet.inf and dummynet_m.inf (installer files)
+ Cross compilation of the userland side under FreeBSD is possible with
+ gmake TCC=`pwd`/tcc-0.9.25-bsd/win32 CC=`pwd`/tcc-0.9.25-bsd/win32/bin/wintcc
+ (wintcc is a custom version of tcc which produces Windows code)
+
***** Windows crosscompilation for 64 bit using DDK ******
Edit root directory's Makefile and set target
operating system
sudo yum -y install subversion rpm-build rpm-devel m4 redhat-rpm-config make gcc
# new build installation requires the gnupg package
sudo yum -y install gnupg
+ # the linux kernel and the ipfw source can be fetched by git
+ sudo yum -y install git
# create and move to a work directory
mkdir -p test
# extract a planetlab distribution to directory XYZ
- (cd test; svn co http://svn.planet-lab.org/svn/build/trunk XYZ)
- # copy the planetlab/*mk files here, overriding existing ones
- cp planetlab/*mk test/XYZ
+ (cd test; git clone git://git.onelab.eu/build ./XYZ)
# download the specfiles and do some patching.
# Results are into SPEC/ (takes 5 minutes)
- (cd test/XYZ; make stage1=true PLDISTRO=planetlab )
+ (cd test/XYZ; make stage1=true PLDISTRO=onelab)
# Building the slice code is fast, the root code takes longer
# as it needs to rebuild the whole kernel
- (cd test/XYZ; sudo make ipfwslice ipfwroot)
+ (cd test/XYZ; sudo make ipfwslice PLDISTRO=onelab)
+ (cd test/XYZ; sudo make ipfwroot PLDISTRO=onelab)
The kernel dependency phase is a bit time consuming, but does not
need to be redone if we are changing the ipfw sources only.