Merge branch 'bug2338'
authorAdam Dickmeiss <adam@indexdata.dk>
Mon, 5 Jan 2009 09:56:02 +0000 (10:56 +0100)
committerAdam Dickmeiss <adam@indexdata.dk>
Mon, 5 Jan 2009 09:56:02 +0000 (10:56 +0100)
buildconf.sh
data1/d1_marc.c
tab/usmarc.mar

index ee0d1be..1850bae 100755 (executable)
@@ -4,9 +4,10 @@ automake=automake
 aclocal=aclocal
 autoconf=autoconf
 libtoolize=libtoolize
+autoheader=autoheader
 
 test -d config || mkdir config
-if test .git; then
+if [ -d .git ]; then
     git submodule init
     git submodule update
 fi
@@ -17,6 +18,7 @@ if [ "`uname -s`" = FreeBSD ]; then
     aclocal="aclocal19 -I /usr/local/share/aclocal"
     autoconf=autoconf259
     libtoolize=libtoolize15
+    autoheader=autoheader259
 fi
 
 if [ "`uname -s`" = Darwin ]; then
@@ -26,7 +28,7 @@ fi
 
 if $automake --version|head -1 |grep '1\.[4-7]'; then
     echo "automake 1.4-1.7 is active. You should use automake 1.8 or later"
-    if test -f /etc/debian_version; then
+    if [ -f /etc/debian_version ]; then
         echo " sudo apt-get install automake1.9"
         echo " sudo update-alternatives --config automake"
     fi
@@ -34,8 +36,10 @@ if $automake --version|head -1 |grep '1\.[4-7]'; then
 fi
 
 set -x
-# I am tired of underquoted warnings for Tcl macros
 $aclocal -I m4
+if grep AC_CONFIG_HEADERS configure.ac >/dev/null; then
+    $autoheader
+fi
 $libtoolize --automake --force 
 $automake --add-missing 
 $autoconf
@@ -66,7 +70,7 @@ case $1 in
 esac
 
 if $enable_configure; then
-    if test -n "$sh_flags"; then
+    if [ -n "$sh_cflags" ]; then
        CFLAGS="$sh_cflags" CXXFLAGS="$sh_cxxflags" ./configure --disable-shared --enable-static $*
     else
        ./configure $*
@@ -98,16 +102,22 @@ EOF
 Or just build the Debian packages without configuring
   dpkg-buildpackage -rfakeroot
 
-When building from a CVS checkout, you need these Debian packages:
+When building from Git, you need these Debian packages:
   autoconf, automake, libtool, gcc, bison, any tcl,
   xsltproc, docbook, docbook-xml, docbook-xsl,
   libxslt1-dev, libssl-dev, libreadline5-dev, libwrap0-dev,
   libpcap0.8-dev
+
+Also perhaps: libgnutls-dev libicu-dev
+
+And if you want to make a Debian package: dpkg-dev fakeroot debhelper
+(Then run "dpkg-buildpackage -rfakeroot" in this directory.)
+
 EOF
     fi
     if [ "`uname -s`" = FreeBSD ]; then
         cat <<EOF
-When building from a CVS checkout, you need these FreeBSD Ports:
+When building from a Git, you need these FreeBSD Ports:
   autoconf259, automake19, libtool15, bison, tcl84,
   docbook-xsl, libxml2, libxslt, g++-4.0, make
 EOF
index 8cd728b..1f9c8b8 100644 (file)
@@ -148,6 +148,21 @@ data1_marctab *data1_read_marctab (data1_handle dh, const char *file)
            }
            res->force_identifier_length = atoi(argv[1]);
        }
+       else if (!strcmp(*argv, "implementation-codes"))
+       {
+           if (argc != 2)
+           {
+               yaz_log(YLOG_WARN, "%s:%d: Missing arg for %s", file, lineno,
+                       *argv);
+               continue;
+           }
+            /* up to 4 characters .. space pad */
+            if (strlen(argv[1]) > 4)
+               yaz_log(YLOG_WARN, "%s:%d: Max 4 characters for "
+                                   "implementation-codes", file, lineno);
+            else
+                memcpy(res->implementation_codes, argv[1], strlen(argv[1]));
+       }
        else
            yaz_log(YLOG_WARN, "%s:%d: Unknown directive '%s'", file, lineno,
                    *argv);
index 348c9a1..eae1ea5 100644 (file)
@@ -1,2 +1,5 @@
 name usmarc
 reference USmarc
+
+# Defines implementation codes (offset 6..9) 
+#implementation-codes ABCD