diff --git a/tools/cooja/examples/jni_test/build.xml b/tools/cooja/examples/jni_test/build.xml index fe8064e46..88c7f0849 100644 --- a/tools/cooja/examples/jni_test/build.xml +++ b/tools/cooja/examples/jni_test/build.xml @@ -5,26 +5,39 @@ -Linux users with the GNU toolchain often can use: +The majority of problems encountered during these tests are related to +the compilation and linking stage of the Contiki libraries. +Below follows a number of configurations that work for different users. + +Linux users with the GNU toolchain may try: COMPILER_ARGS = [PENDING] LINK_COMMAND_1 = [PENDING] LINK_COMMAND_2 = [PENDING] -Cygwin users may try: - COMPILER_ARGS = [PENDING] - LINK_COMMAND_1 = [PENDING] - LINK_COMMAND_2 = [PENDING] +Windows users with recent Cygwin may try: + COMPILER_ARGS = -mno-cygwin -Wall -I'$(JAVA_HOME)/include' -I'$(JAVA_HOME)/include/win32' + LINK_COMMAND_1 = gcc -mno-cygwin -shared -Wl,-Map=$(MAPFILE) -Wl,--add-stdcall-alias -o $(LIBFILE) + LINK_COMMAND_2 = -L/usr/lib/mingw -lmsvcrt -Windows users with recent Cygwin: -In recent (early 2007) MinGW-Cygwin versions, the JNI support has been removed/limited. +Windows users with older Cygwin may try: + COMPILER_ARGS = -mno-cygwin -I'$(JAVA_HOME)/include' -I'$(JAVA_HOME)/include/win32' + LINK_COMMAND_1 = ld -Map=$(MAPFILE) -shared --add-stdcall-alias /usr/lib/mingw/dllcrt2.o -o $(LIBFILE) + LINK_COMMAND_2 = -L/usr/lib/mingw -lmingw32 -lmingwex -lmsvcrt + +Windows users with recent Cygwin and separate MinGW tools may try: +In recent (early 2007) MinGW-Cygwin versions, the JNI support has been limited. This may cause COOJA not to be able to load libraries generated using gcc's -mno-cygwin flag. One possible solution is to download "real" MinGW (http://www.mingw.org), and install it separately from Cygwin (for example in c:\mingw). Try using the following settings: - COMPILER_ARGS = -Wall -D_JNI_IMPLEMENTATION_ -I'$(JAVA_HOME)/include' -I'$(JAVA_HOME)/include/win32' LINK_COMMAND_1 = gcc -shared -Wl,-Map=$(MAPFILE) -Wall -D_JNI_IMPLEMENTATION_ -Wl,--kill-at -o $(LIBFILE) LINK_COMMAND_2 = +Mac users may try: + COMPILER_ARGS = [PENDING] + LINK_COMMAND_1 = [PENDING] + LINK_COMMAND_2 = [PENDING] + @@ -146,6 +159,29 @@ For more information including configuration examples: + + +Run either + > ant level3a +or + > ant level3b + +3a tests parsing library addresses using the map file generated at link time. +3b tests parsing library addresses using the nm tool. +At least one of the tests must pass. + +After passing, the 'exttools.cfg' must be updated. +The external tools setting: + PARSE_WITH_NM=true +causes COOJA (and the following tests) to use nm to parse library addresses, +and should be used if test 3b passed. + + PARSE_WITH_NM=false +causes COOJA to parse the generated map file, and should be used if test 3a passed. + + + +