changeset 2521:e7c40b6c3e66

package qdbm: static cross-build, enable optional deps, test program
author Tony Theodore <tonyt@logyst.com>
date Tue, 15 May 2012 22:03:41 +1000
parents 5f1a945bb458
children fa08207f5b96
files index.html src/qdbm-test.c src/qdbm.diff src/qdbm.mk
diffstat 4 files changed, 95 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/index.html	Tue May 15 22:00:51 2012 +1000
+++ b/index.html	Tue May 15 22:03:41 2012 +1000
@@ -1749,6 +1749,11 @@
         <td id="pthreads-website"><a href="http://sourceware.org/pthreads-win32/">Pthreads-w32</a></td>
     </tr>
     <tr>
+        <td id="qdbm-package">qdbm</td>
+        <td id="qdbm-version">1.8.78</td>
+        <td id="qdbm-website"><a href="http://fallabs.com/qdbm/">QDBM</a></td>
+    </tr>
+    <tr>
         <td id="qjson-package">qjson</td>
         <td id="qjson-version">0.7.1</td>
         <td id="qjson-website"><a href="http://qjson.sourceforge.net/">QJson</a></td>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/qdbm-test.c	Tue May 15 22:03:41 2012 +1000
@@ -0,0 +1,51 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ *
+ * Taken from examples at http://fallabs.com/qdbm/spex.html
+ */
+
+#include <depot.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#define NAME     "mikio"
+#define NUMBER   "000-1234-5678"
+#define DBNAME   "book"
+
+int main(int argc, char **argv){
+    DEPOT *depot;
+    char *val;
+
+    (void)argc;
+    (void)argv;
+
+    /* open the database */
+    if(!(depot = dpopen(DBNAME, DP_OWRITER | DP_OCREAT, -1))){
+        fprintf(stderr, "dpopen: %s\n", dperrmsg(dpecode));
+        return 1;
+    }
+
+    /* store the record */
+    if(!dpput(depot, NAME, -1, NUMBER, -1, DP_DOVER)){
+        fprintf(stderr, "dpput: %s\n", dperrmsg(dpecode));
+    }
+
+    /* retrieve the record */
+    if(!(val = dpget(depot, NAME, -1, 0, -1, NULL))){
+        fprintf(stderr, "dpget: %s\n", dperrmsg(dpecode));
+    }
+    else {
+        printf("Name: %s\n", NAME);
+        printf("Number: %s\n", val);
+        free(val);
+    }
+
+    /* close the database */
+    if(!dpclose(depot)){
+        fprintf(stderr, "dpclose: %s\n", dperrmsg(dpecode));
+        return 1;
+    }
+
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/qdbm.diff	Tue May 15 22:03:41 2012 +1000
@@ -0,0 +1,16 @@
+diff --git a/index.html b/index.html
+index 0e2cfe0..4207658 100644
+--- a/index.html
++++ b/index.html
+@@ -1749,6 +1749,11 @@ USE_OSGPLUGIN(&lt;plugin2&gt;)
+         <td id="pthreads-website"><a href="http://sourceware.org/pthreads-win32/">Pthreads-w32</a></td>
+     </tr>
+     <tr>
++        <td id="qdbm-package">qdbm</td>
++        <td id="qdbm-version">1.8.78</td>
++        <td id="qdbm-website"><a href="http://fallabs.com/qdbm/">QDBM</a></td>
++    </tr>
++    <tr>
+         <td id="qjson-package">qjson</td>
+         <td id="qjson-version">0.7.1</td>
+         <td id="qjson-website"><a href="http://qjson.sourceforge.net/">QJson</a></td>
--- a/src/qdbm.mk	Tue May 15 22:00:51 2012 +1000
+++ b/src/qdbm.mk	Tue May 15 22:03:41 2012 +1000
@@ -2,13 +2,12 @@
 # See index.html for further information.
 
 PKG             := qdbm
-VERSION         := 1.8.78
 $(PKG)_IGNORE   :=
 $(PKG)_CHECKSUM := 8c2ab938c2dad8067c29b0aa93efc6389f0e7076
 $(PKG)_SUBDIR   := qdbm-$($(PKG)_VERSION)
 $(PKG)_FILE     := qdbm-$($(PKG)_VERSION).tar.gz
 $(PKG)_URL      := http://fallabs.com/qdbm/qdbm-1.8.78.tar.gz
-$(PKG)_DEPS     := gcc
+$(PKG)_DEPS     := gcc bzip2 libiconv lzo zlib
 
 define $(PKG)_UPDATE
     wget -q -O- 'http://fallabs.com/qdbm/' | \
@@ -18,9 +17,28 @@
 endef
 
 define $(PKG)_BUILD
-    cd '$(1)/' && ./configure \
+    cd '$(1)' && ./configure \
         --host='$(TARGET)' \
         --prefix='$(PREFIX)/$(TARGET)' \
-        CONFIG_SHELL=$(SHELL)
-    $(MAKE) -C '$(1)/' -j '$(JOBS)' install
+        --enable-lzo \
+        --enable-bzip \
+        --enable-zlib \
+        --enable-iconv
+    $(MAKE) -C '$(1)' -j '$(JOBS)' \
+        static \
+        MYBINS= \
+        MYLIBS=libqdbm.a \
+        AR=i686-pc-mingw32-ar \
+        RANLIB=i686-pc-mingw32-ranlib
+    $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
+    $(INSTALL) -m644 '$(1)/libqdbm.a' '$(PREFIX)/$(TARGET)/lib/'
+    $(INSTALL) -m644 '$(1)/qdbm.pc'   '$(PREFIX)/$(TARGET)/lib/pkgconfig/'
+    $(INSTALL) -d '$(PREFIX)/$(TARGET)/include'
+    cd '$(1)' && $(INSTALL) -m644 depot.h curia.h relic.h hovel.h \
+        cabin.h villa.h vista.h odeum.h '$(PREFIX)/$(TARGET)/include/'
+
+    '$(TARGET)-gcc' \
+        -W -Wall -Werror -ansi -pedantic \
+        '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-qdbm.exe' \
+        `'$(TARGET)-pkg-config' qdbm --cflags --libs`
 endef