diff --git a/tests/test_bloom/.gitignore b/tests/test_bloom/.gitignore
deleted file mode 100644
index eae4860edccb6d57e1e23304f5df93ea116d87a8..0000000000000000000000000000000000000000
--- a/tests/test_bloom/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-sets.h
diff --git a/tests/test_bloom/Makefile b/tests/test_bloom/Makefile
index 1dd789157cb90c15d6279c8591d2ded078d520f7..04f219365d94497b868832ca8b4c5de16e42f571 100644
--- a/tests/test_bloom/Makefile
+++ b/tests/test_bloom/Makefile
@@ -7,11 +7,14 @@ BOARD_INSUFFICIENT_RAM := chronos mbed_lpc1768 msb-430 msb-430h redbee-econotag
 USEMODULE += hashes
 USEMODULE += bloom
 
-export PROJDEPS = sets.h
+PROJDEPS = $(BINDIR)projdeps/sets.h
+
+INCLUDES += -I$(BINDIR)projdeps
 
 DISABLE_MODULE += auto_init
 
 include $(RIOTBASE)/Makefile.include
 
-sets.h: generate_sets.py words.txt.gz
-	./generate_sets.py 10000 20
+$(BINDIR)projdeps/sets.h: generate_sets.py words.txt.gz
+	mkdir -p ${@D}
+	./generate_sets.py words.txt.gz $@
diff --git a/tests/test_bloom/generate_sets.py b/tests/test_bloom/generate_sets.py
index 2ca2476270bb63fdf44900069deee95d54396f2e..718b2703abe2bd4938a6612ab4dfd54fc03ceb08 100755
--- a/tests/test_bloom/generate_sets.py
+++ b/tests/test_bloom/generate_sets.py
@@ -8,12 +8,12 @@ sizeOfA = 10 * 1000
 sizeOfB = 20
 
 print sys.argv
-if len(sys.argv) == 3:
-	sizeOfA = int(sys.argv[1])
-	sizeOfB = int(sys.argv[2])
+if len(sys.argv) == 5:
+	sizeOfA = int(sys.argv[3])
+	sizeOfB = int(sys.argv[4])
 
 # read all words
-lines = [line.strip() for line in gzip.open('words.txt.gz')]
+lines = [line.strip() for line in gzip.open(sys.argv[1])]
 
 # get A lines
 A = random.sample(lines, sizeOfA + sizeOfB)
@@ -22,8 +22,7 @@ A = random.sample(lines, sizeOfA + sizeOfB)
 B = A[:sizeOfB]
 A = A[sizeOfB:]
 
-
-SetsFile = open('sets.h', 'w')
+SetsFile = open(sys.argv[2], 'w')
 SetsFile.write('const int lenA = ' + str(sizeOfA) + ';\n')
 SetsFile.write('const char* A[' + str(sizeOfA) + '] = {')
 SetsFile.writelines(",".join('"' + x + '"\n' for x in A))
@@ -34,5 +33,4 @@ SetsFile.write('const char* B[' + str(sizeOfB) + '] = {')
 SetsFile.writelines(",".join('"' + x + '"\n' for x in B))
 SetsFile.write('};\n')
 
-
 print("sets.h: sizeOfA = " + str(len(A) + len(B)) +  " generated...")