Add recipe for blobsallad package (JTA QA requirement) 91/5491/2
authorStephane Desneux <stephane.desneux@iot.bzh>
Fri, 1 Apr 2016 13:59:50 +0000 (15:59 +0200)
committerGerrit Code Review <gerrit@172.30.200.200>
Mon, 4 Apr 2016 22:08:33 +0000 (22:08 +0000)
Change-Id: I17e0b7ca6335cb90fecf4ff4f3e88607f8055e8b
Signed-off-by: Stephane Desneux <stephane.desneux@iot.bzh>
meta-ivi-common/recipes-test/blobsallad/blobsallad/0001-Makefile.patch [new file with mode: 0755]
meta-ivi-common/recipes-test/blobsallad/blobsallad/0002-auto.patch [new file with mode: 0755]
meta-ivi-common/recipes-test/blobsallad/blobsallad/0003-printcleanup.patch [new file with mode: 0755]
meta-ivi-common/recipes-test/blobsallad/blobsallad/0004-bs_main.c.patch [new file with mode: 0755]
meta-ivi-common/recipes-test/blobsallad/blobsallad_2006-11-14-23-57.bb [new file with mode: 0644]

diff --git a/meta-ivi-common/recipes-test/blobsallad/blobsallad/0001-Makefile.patch b/meta-ivi-common/recipes-test/blobsallad/blobsallad/0001-Makefile.patch
new file mode 100755 (executable)
index 0000000..0ae56ce
--- /dev/null
@@ -0,0 +1,53 @@
+--- a/Makefile.orig    2016-04-01 15:50:20.636358716 +0200
++++ b/Makefile 2016-04-01 15:51:58.916361191 +0200
+@@ -1,3 +1,9 @@
++INCDIR = $(SDKROOT)/usr/include
++LIBDIR = $(SDKROOT)/usr/lib
++
++EXTRA_CFLAGS=-I$(INCDIR)
++EXTRA_LDFLAGS=-Wl,-rpath-link=$(LIBDIR) -L$(LIBDIR)
++
+ OBJECTS = bs_main.o \
+     bs_vector.o \
+     bs_pointmass.o \
+@@ -15,21 +21,21 @@
+     bs_profiler.o \
+     bs_rubberband.o
+-CC = gcc 
++#CC = gcc 
+ DISTDIR = blobsallad-src
+-CFLAGS = `pkg-config --cflags cairo; sdl-config --cflags`
+-LIBS = `pkg-config --libs cairo; sdl-config --libs` -lm -lGL -lGLU
++EXTRA_CFLAGS += -I$(INCDIR)/cairo -I$(INCDIR)/SDL -D_GNU_SOURCE=1 -D_REENTRANT
++EXTRA_LDFLAGS += -lcairo -lSDL -lpthread -lm
+ all: $(OBJECTS)
+-      $(CC) -g -o blobsallad $(OBJECTS) $(LIBS)
++      $(CC) -g -o blobsallad $(OBJECTS) $(EXTRA_LDFLAGS)
+ map: 
+-      gcc -o createmap create_testdata.c -Wall -g -lm
++      $(CC) -o createmap create_testdata.c -Wall -g -lm
+ octree:
+-      gcc -o test_octree test_octree.c bs_octree.c bs_list.c bs_vector.c bs_vector_util.c bs_timer.c bs_array.c -Wall -O2 $(LIBS) $(CFLAGS)
++      $(CC) -o test_octree test_octree.c bs_octree.c bs_list.c bs_vector.c bs_vector_util.c bs_timer.c bs_array.c -Wall -O2 $(EXTRA_LDFLAGS) $(EXTRA_CFLAGS)
+ GFX_OBJECTS = gfx_main.o \
+       bs_gfx.o \
+@@ -41,10 +47,10 @@
+       bs_list.o 
+ gfx: $(GFX_OBJECTS)
+-      gcc -o gfx_main -Wall -g $(GFX_OBJECTS) $(LIBS)
++      $(CC) -o gfx_main -Wall -g $(GFX_OBJECTS) $(EXTRA_LDFLAGS)
+ .c.o:
+-      $(CC) -g -Wall $(CFLAGS) $ -c $<
++      $(CC) -g -Wall $(EXTRA_CFLAGS) $ -c $<
+ clean: 
+       rm -f *.o; rm -f blobsallad; 
diff --git a/meta-ivi-common/recipes-test/blobsallad/blobsallad/0002-auto.patch b/meta-ivi-common/recipes-test/blobsallad/blobsallad/0002-auto.patch
new file mode 100755 (executable)
index 0000000..b61da2c
--- /dev/null
@@ -0,0 +1,95 @@
+--- a/bs_main.c
++++ b/bs_main.c
+@@ -11,6 +11,9 @@
+ #include "bs_profiler.h"
+ #include "bs_rubberband.h"
++static struct timeval beginTime; /* Time of the benchmark start */
++static int cur_step; /* Current benchmark phase. Used to subsequently increase number of objects each 10 seconds */
++
+ typedef struct bs_main_data_st 
+ {
+   bs_cairo_sdl_t *pCairoSdl; 
+@@ -113,7 +116,9 @@
+   SDL_Event event;
+   SDL_UserEvent userevent;
+   bs_main_data_t *pMainData; 
+-  
++  struct timeval curTime;
++  int hunsec;
++
+   pMainData = (bs_main_data_t*) pUserData; 
+   
+   userevent.type = SDL_USEREVENT;
+@@ -121,6 +126,20 @@
+   userevent.data1 = NULL;
+   userevent.data2 = NULL;
++  gettimeofday(&curTime, NULL);
++  hunsec = curTime.tv_sec - beginTime.tv_sec;
++
++  /* increase cur_step each 10 seconds */
++  if (cur_step < hunsec / 10) {
++      printf("%d objects = %.2f fps\n", 1 << (cur_step + 1), pMainData->fps);
++      userevent.code = 2; /* add more objects */
++      cur_step++;
++  }
++
++  /* exit if requested number of objects is reached */
++  if (cur_step == 4)
++      userevent.code = 3;
++
+   event.type = SDL_USEREVENT;
+   event.user = userevent;
+@@ -152,14 +171,19 @@
+   pMainData->newTimerInterval = 50; 
+   pMainData->fps = 20.0; 
+   pMainData->running = TRUE; 
+-  
++ 
++  cur_step = 0;
++ 
+   bs_profiler_init();
+   
++  gettimeofday(&beginTime, NULL); 
+   gettimeofday(&startTime, NULL); 
+   pMainData->lastFrameTimeStamp = startTime.tv_sec * 1000 + startTime.tv_usec / 1000; 
+   
+   SDL_AddTimer(50, bs_main_sdl_timer_callback, pMainData); 
+   
++  bs_blob_collective_split(pMainData->pCollective); 
++
+   for(;;)
+   {
+     SDL_WaitEvent(&event); 
+@@ -253,8 +277,7 @@
+         break; 
+       
+       case SDL_USEREVENT:
+-        if(event.user.code == 1)
+-        {
++        if (event.user.code == 1) {
+           gettimeofday(&startTime, NULL); 
+           bs_main_update_simulation(pMainData);
+           bs_main_redraw(pMainData);       
+@@ -268,10 +291,15 @@
+             usedTime = 50; 
+           }
+             
+-          pMainData->newTimerInterval = usedTime;                        
+-        }          
+-        break; 
+-      
++          pMainData->newTimerInterval = usedTime;
++      } else if (event.user.code == 2) {
++              int i;
++              for (i = 0; i < (1 << cur_step); i++)
++                      bs_blob_collective_split(pMainData->pCollective);
++      } else if (event.user.code == 3) {
++              exit(0);
++        }
++      break;
+       case SDL_QUIT: 
+         exit(0); 
+         break; 
diff --git a/meta-ivi-common/recipes-test/blobsallad/blobsallad/0003-printcleanup.patch b/meta-ivi-common/recipes-test/blobsallad/blobsallad/0003-printcleanup.patch
new file mode 100755 (executable)
index 0000000..630871d
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/bs_blob_collective.c
++++ b/bs_blob_collective.c
+@@ -152,7 +152,7 @@
+   bs_list_unlink_p_cont(pCollective->pBlobs, bs_blob_collective_remove_blob_cb, findData.pMotherBlob); 
+   
+-  printf("number of blobs: %d\n", bs_list_get_length(pCollective->pBlobs)); 
++/*  printf("number of blobs: %d\n", bs_list_get_length(pCollective->pBlobs)); */
+ }
+ typedef struct bs_blob_collective_join_find_smallest_st
diff --git a/meta-ivi-common/recipes-test/blobsallad/blobsallad/0004-bs_main.c.patch b/meta-ivi-common/recipes-test/blobsallad/blobsallad/0004-bs_main.c.patch
new file mode 100755 (executable)
index 0000000..ae15408
--- /dev/null
@@ -0,0 +1,15 @@
+--- a/bs_main.c
++++ b/bs_main.c
+@@ -165,9 +165,9 @@
+   //pMainData->pRubberband = bs_rubberband_create(2.5f, 3.0f); 
+   pMainData->pEnv = bs_env_create(0.0f, 0.0f, 6.0f, 4.0f); 
+   pMainData->pGravity = bs_vector_create(0.0f, 10.0f); 
+-  pMainData->pCairoSdl = bs_cairo_sdl_create(600, 400); 
+-  pMainData->width = 600.0; 
+-  pMainData->height = 400.0; 
++  pMainData->pCairoSdl = bs_cairo_sdl_create(1600, 1024); 
++  pMainData->width = 1600.0; 
++  pMainData->height = 1024.0; 
+   pMainData->newTimerInterval = 50; 
+   pMainData->fps = 20.0; 
+   pMainData->running = TRUE; 
diff --git a/meta-ivi-common/recipes-test/blobsallad/blobsallad_2006-11-14-23-57.bb b/meta-ivi-common/recipes-test/blobsallad/blobsallad_2006-11-14-23-57.bb
new file mode 100644 (file)
index 0000000..c3d7443
--- /dev/null
@@ -0,0 +1,34 @@
+DESCRIPTION = ""
+HOMEPAGE = "http://blobsallad.se/"
+LICENSE = "CLOSED"
+LIC_FILES_CHKSUM = ""
+
+SRC_URI = " \
+    http://blobsallad.se/src/blobsallad-src-${PV}.tar.gz \
+    file://0001-Makefile.patch \
+    file://0002-auto.patch \
+    file://0003-printcleanup.patch \
+    file://0004-bs_main.c.patch"
+
+SRC_URI[md5sum] = "a2e3342cbf0f3a4a9b110af2663bed36"
+SRC_URI[sha256sum] = "cd6309df1929d3e6b7bce1dbecc751849aeaafe17c01e05fd2567dc4267faaa2"
+
+DEPENDS = "cairo virtual/libsdl"
+
+S = "${WORKDIR}/blobsallad-src"
+
+do_configure () {
+       # Specify any needed configure commands here
+       :
+}
+
+do_compile () {
+       # You will almost certainly need to add additional arguments here
+       oe_runmake SDKROOT=${STAGING_DIR_HOST}
+}
+
+do_install () {
+       install -d ${D}${bindir}
+       install -m 0755 blobsallad ${D}${bindir}
+}
+