If you simply want to try the binary freenet, follow these steps: * Add a new new (e.g. "adduser freenet"). * Login as this user (or do 'su - freenet') * Grab a tgz (mipsel or i486), e.g. wget http://download.berlin.freifunk.net/sven-ola/freenet/freenet-i486-linux-gnu-XXXXX.tgz * Untar with "tar xvzf freenet*.tgz" * Start with "./go.sh start" (you may adapt -ms= in the script e.g. to 80M * Run that script, e.g. "chmod +x go.sh;./go.sh" * Watch freenet running with "tail -f nohup.out". * Browse to http://localhost:8888/ and configure... Note: To compile for your own, you need libgcj.a which is not avail in standard debian packages. You'll find libgcj.a in this directory, alternatively dpkg-buildpackage the gcj-4.3 while applying this patch to the ./debian/ build dir: gcj-4.3_4.3.0-sven-ola.diff === This dir offers various stuff around the freenet program. readme-freenet.txt: details for compiling for a mipsel embedded BOX. readme-compile.txt: details for compiling using gnu-java-compiler (AOT) freenet-cross-linux-binaries.tgz: files generated from steps desribed below Based on the work described in the other readme's, I created a more conventient Makefile. Just grab a copy of the Makefile, put them in a new dir and type "make" followed by "make jarbin" or "make gcjbin". This downloads the freenet sources via SVN and start compiling provided that you have installed the necessary programs on your linux PC (see first lines in the top Makefile). In order to cross-compile on a i386 linux-PC, the following may be of help: * Edit your /etc/apt/sources.list and add these two lines: deb http://debian.speedblue.org ./ deb-src http://debian.speedblue.org ./ * Add the necessary key from the site (as root!): gpg --keyserver hkp://wwwkeys.eu.pgp.net --recv-keys DD982A75 gpg --armor --export DD982A75 | apt-key add - * Install a compiler and a cross compiler: apt-get update apt-get install wget build-essential java-gcj-compat-dev ant-optional junit subversion apt-get install gcc-4.1-mips g++-4.1-mips apt-get install gcc-4.1-mipsel g++-4.1-mipsel apt-get install gcc-4.1-x86-64 g++-4.1-x86-64 apt-get install gcc-4.1-powerpc g++-4.1-powerpc apt-get install gcc-4.1-powerpc64 g++-4.1-powerpc64 (or another CPU, try "apt-cache search gcc-4.1-") gcc-mips-4.1 -dumpmachine gcc-mipsel-4.1 -dumpmachine gcc-x86_64-4.1 -dumpmachine gcc-powerpc-4.1 -dumpmachine gcc-powerpc64-4.1 -dumpmachine (make sure everything is fine) javac -version (make sure, ecj >= 3.3, ecj-3.2.1 from "ecj-bootstrap" does not work) * Download everything needed. mkdir -p /usr/src/freenet-cross && cd /usr/src/freenet-cross wget http://download.berlin.freifunk.net/sven-ola/freenet/Makefile make * Then start the cross compiler to make the binaries for the compiler's architecture. set -e make CC=gcc-mips-4.1 CXX=g++-mips-4.1 LD=/usr/mips/bin/mips-linux-ld STRIP=/usr/mips/bin/mips-linux-strip archclean arch make CC=gcc-mipsel-4.1 CXX=g++-mipsel-4.1 LD=/usr/mipsel/bin/mipsel-linux-ld STRIP=/usr/mipsel/bin/mipsel-linux-strip archclean arch make CC=gcc-x86_64-4.1 CXX=g++-x86_64-4.1 LD=/usr/x86_64/bin/x86_64-linux-ld STRIP=/usr/x86_64/bin/x86_64-linux-strip archclean arch make CC=gcc-powerpc-4.1 CXX=g++-powerpc-4.1 LD=/usr/powerpc/bin/powerpc-linux-ld STRIP=/usr/powerpc/bin/powerpc-linux-strip archclean arch make CC=gcc-powerpc64-4.1 CXX=g++-powerpc64-4.1 LD=/usr/powerpc64/bin/powerpc64-linux-ld STRIP=/usr/powerpc64/bin/powerpc64-linux-strip archclean arch make x86clean x86 jarbin * Run freenet with these commands (first is jar, second is gcj): cd freenet-bin ./run.sh console LD_LIBRARY_PATH=lib ./freenet-i486-linux-gnu Note1: You need to 'make archclean' when switching architectures. Otherwise, you link *.o files for different CPUs which fails. Therefore, you need to "make archclean" after compiling for another CPU and before doing e.g. "make jarbin". You may also want to remove all x86*.so using "make x86clean" which includes "make archclean". Note2: If you prefer another java compiler (e.g. Sun corp. offers one AFAIK) you need to adapt JAVA_HOME so that the $JAVA_HOME/include/jni.h file can be found. Example: "make JAVA_HOME=/wherever/javastuffdir [...]". Note3: The "make gcjbin" first generates the jar files in order to speed up compiling (grabbing all info from *.java costs gcj much time). You may want to enable the first "#REVISION" in Makefile to download my version...