Cyrus 2.3.9: Errors compiling outside source directory

From: Vincent Fox (no email)
Date: Sat Sep 22 2007 - 19:36:03 EDT

  • Next message: Rob Mueller: "Re: Cyrus IMAP 2.3.9 on Solaris 10 with ZFS and SAN"

    So our protocol is we have a central repository in AFS for
    source code. Then we write a script called BUILD.ksh that
    does all the right stuff to compile into a /tmp/(package)-obj
    directory on each build platform. This is not working for me
    yet on Cyrus 2.3.9 as the configure utility as-is doesn't
    get things quite right.

    For example, building the chartable.c file, it doesn't
    include the -I for the original source "lib" directory that
    has the charset.h file it needs. Without this it fails.

    I hacked around this by putting a CPPFLAGS variable
    in my BUILD.ksh script, since I don't grok yet the configure
    utility enough to suggest a patch for the source. I will include
    a copy of my script below in case it helps anyone else. It got
    me farther but still fails on cyrusdb_quotalegacy.c, I think due
    to it being unable to read in the right glob.h file.

    OS: Solaris 10u3
    Compiler GCC 4.2.1

    ==== filename: BUILD.ksh
    #!/bin/ksh
    . ./vars
    PATH=/ucd/bin:/ucd/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/openwin/bin
    LD_LIBRARY_PATH=/ucd/lib:/usr/lib:/usr/lib/sparcv9
    CONFIG_SHELL=/bin/ksh
    CC=/ucd/bin/gcc
    MAKE=/ucd/bin/make
    CFLAGS="-g -O"
    CPPFLAGS="-I/ucd/src/$PKG/$PROJ/$PROJ/et -I/ucd/src/$PKG/$PROJ/$PROJ/lib
    -I/ucd/src/$PKG/$PROJ/$PRO
    J/imap -I/ucd/src/$PKG/$PROJ/$PROJ/installsieve
    -I/ucd/src/$PKG/$PROJ/$PROJ/seive"
    export PATH LD_LIBRARY_PATH CONFIG_SHELL CC
    export MAKE CFLAGS CPPFLAGS

    if [ -e $OBJD ] ; then
            echo cleaning $OBJD
            cd $OBJD
            if [ $? -ne 0 ] ; then
                    echo bad cd $OBJD
                    exit
            fi
            make distclean
    else
            mkdir $OBJD
            if [ $? -ne 0 ] ; then
                    echo bad mkdir $OBJD
                    exit
            fi
    fi

    cd $OBJD

    /ucd/src/$PKG/$PROJ/$PROJ/configure \
                    --prefix=/ucd \
                    --enable-gssapi=/usr \
                    --with-cyrus-prefix=/ucd \
                    --with-cyrus-user=cyrusd \
                    --with-cyrus-group=cyrusd \
                    --with-dbdir=/ucd \
                    --with-openssl=/ucd \
                    --with-sasl=/ucd \
                    --with-mboxlist-db=skiplist \
                    --with-annotation-db=skiplist \
                    --with-seen-db=skiplist \
                    --enable-fulldirhash \
                    --with-auth=unix \
                    --without-snmp \
                    --with-perl=/ucd/bin/perl \
                    --sysconfdir=/ucd/local/etc \
                    --enable-idled \
                    --enable-replication \
                    CC=gcc \
                    CFLAGS="-g -O"

    $MAKE depend
    $MAKE CFLAGS="$CFLAGS" all

    ==== filename: vars
    PKG=cyrus-imapd
    REV=2.3.9
    PROJ=$PKG-$REV
    OBJD=/tmp/$PROJ-obj
    OS=sparc-sun-solaris2.10

    ===== tail of the compile failure
    gcc -c -I.. -I/ucd/include
    -I/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/et
    -I/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/lib
    -I/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/imap
    -I/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/installsieve
    -I/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/seive
    -I/ucd/include -I/usr/include
    -I/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/et
    -I/ucd/include -DHAVE_CONFIG_H -g -O \
            
    /ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/lib/cyrusdb_quotalegacy.c
    /ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/lib/cyrusdb_quotalegacy.c:
    In function 'foreach':
    /ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/lib/cyrusdb_quotalegacy.c:481:
    error: 'glob_t' undeclared (first use in this function)
    /ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/lib/cyrusdb_quotalegacy.c:481:
    error: (Each undeclared identifier is reported only once
    /ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/lib/cyrusdb_quotalegacy.c:481:
    error: for each function it appears in.)
    /ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/lib/cyrusdb_quotalegacy.c:481:
    error: expected ';' before 'globbuf'
    /ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/lib/cyrusdb_quotalegacy.c:502:
    error: expected ')' before ',' token
    /ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/lib/cyrusdb_quotalegacy.c:509:
    error: expected ')' before ',' token
    /ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/lib/cyrusdb_quotalegacy.c:514:
    error: expected ')' before ',' token
    /ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/lib/cyrusdb_quotalegacy.c:520:
    error: expected ')' before ',' token
    /ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/lib/cyrusdb_quotalegacy.c:528:
    error: 'globbuf' undeclared (first use in this function)
    make[1]: ***
    [/ucd/src/cyrus-imapd/cyrus-imapd-2.3.9/cyrus-imapd-2.3.9/lib/cyrusdb_quotalegacy.o]
    Error 1
    make[1]: Leaving directory `/tmp/cyrus-imapd-2.3.9-obj/lib'
    make: *** [all] Error 1
    bash-3.00#

    ----
    Cyrus Home Page: http://cyrusimap.web.cmu.edu/
    Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki
    List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html
    

  • Next message: Rob Mueller: "Re: Cyrus IMAP 2.3.9 on Solaris 10 with ZFS and SAN"





    Hosted Email Solutions

    Invaluement Anti-Spam DNSBLs



    Powered By FreeBSD   Powered By FreeBSD