Thread

  1. Cross-compile of 3rd-party extensions fails

    Boszormenyi Zoltan <zb@cybertec.at> — 2011-09-19T08:16:13Z

    Hi,
    
    I am trying to cross-compile PostgreSQL 9.0.4 and a few
    3rd-party external modules using Mingw32-w64 on Fedora 15
    for 64-bit Windows. 64-bit Wine can be used to run the
    64-bit pg_config.exe under Linux, so the USE_PGXS=1
    machinery works. However, mingw64-make fails with the
    following error:
    
    [zozo@localhost postgis-1.5.3]$ mingw64-make
    
    make -C liblwgeom
    make[1]: Entering directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/liblwgeom'
    make[1]: Nothing to be done for `all'.
    make[1]: Leaving directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/liblwgeom'
    make -C postgis
    make[1]: Entering directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/postgis'
    /home/zozo/.wine/dosdevices/z:/usr/x86_64-w64-mingw32/sys-root/mingw/lib/postgresql/pgxs/src/makefiles/../../src/Makefile.port:63:
    *** target pattern contains no `%'.  Stop.
    make[1]: Leaving directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/postgis'
    make: *** [postgis] Error 2
    
    
    Line 63 in Makefile.port (src/makefiles/Makefile.win32 in this case) is this:
    
    63: win32ver.rc: $(top_srcdir)/src/port/win32ver.rc
    64:        sed -e 's;FILEDESC;$(PGFILEDESC);' -e 's;VFT_APP;$(PGFTYPE);' -e
    's;_ICO_;$(PGICOSTR);' -e 's;\(VERSION.*\),0 *$$;\1,'`date '+%y%j' | sed 's/^0*//'`';' $< >$@
    65:
    66: win32ver.o: win32ver.rc
    67:         $(WINDRES) -i $< -o $@ --include-dir=$(top_builddir)/src/include
    --include-dir=$(srcdir)
    
    Do we actually need win32ver.rc for the external MODULES/MODULE_big/PROGRAM?
    win32ver.rc is not actually installed from the PostgreSQL source tree.
    Commenting out the above lines in the installed Makefile.port allows make
    to continue without errors.
    
    Best regards,
    Zoltán Böszörményi
    
    -- 
    ----------------------------------
    Zoltán Böszörményi
    Cybertec Schönig & Schönig GmbH
    Gröhrmühlgasse 26
    A-2700 Wiener Neustadt, Austria
    Web: http://www.postgresql-support.de
         http://www.postgresql.at/
    
    
    
  2. Re: Cross-compile of 3rd-party extensions fails

    Peter Eisentraut <peter_e@gmx.net> — 2011-09-19T08:27:29Z

    On mån, 2011-09-19 at 10:16 +0200, Boszormenyi Zoltan wrote:
    > [zozo@localhost postgis-1.5.3]$ mingw64-make
    > 
    > make -C liblwgeom
    > make[1]: Entering directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/liblwgeom'
    > make[1]: Nothing to be done for `all'.
    > make[1]: Leaving directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/liblwgeom'
    > make -C postgis
    > make[1]: Entering directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/postgis'
    > /home/zozo/.wine/dosdevices/z:/usr/x86_64-w64-mingw32/sys-root/mingw/lib/postgresql/pgxs/src/makefiles/../../src/Makefile.port:63:
    > *** target pattern contains no `%'.  Stop.
    > make[1]: Leaving directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/postgis'
    > make: *** [postgis] Error 2
    
    Having a colon in a file name is not going to work with make.
    
    
    
    
  3. Re: Cross-compile of 3rd-party extensions fails

    Marko Kreen <markokr@gmail.com> — 2011-09-19T08:53:34Z

    On Mon, Sep 19, 2011 at 11:27 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
    > On mån, 2011-09-19 at 10:16 +0200, Boszormenyi Zoltan wrote:
    >> [zozo@localhost postgis-1.5.3]$ mingw64-make
    >>
    >> make -C liblwgeom
    >> make[1]: Entering directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/liblwgeom'
    >> make[1]: Nothing to be done for `all'.
    >> make[1]: Leaving directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/liblwgeom'
    >> make -C postgis
    >> make[1]: Entering directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/postgis'
    >> /home/zozo/.wine/dosdevices/z:/usr/x86_64-w64-mingw32/sys-root/mingw/lib/postgresql/pgxs/src/makefiles/../../src/Makefile.port:63:
    >> *** target pattern contains no `%'.  Stop.
    >> make[1]: Leaving directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/postgis'
    >> make: *** [postgis] Error 2
    >
    > Having a colon in a file name is not going to work with make.
    
    I guess there is 'make' instead of '$(MAKE)' in Makefile somewhere?
    
    -- 
    marko
    
    
  4. Re: Cross-compile of 3rd-party extensions fails

    Boszormenyi Zoltan <zb@cybertec.at> — 2011-09-19T08:54:35Z

    2011-09-19 10:27 keltezéssel, Peter Eisentraut írta:
    > On mån, 2011-09-19 at 10:16 +0200, Boszormenyi Zoltan wrote:
    >> [zozo@localhost postgis-1.5.3]$ mingw64-make
    >>
    >> make -C liblwgeom
    >> make[1]: Entering directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/liblwgeom'
    >> make[1]: Nothing to be done for `all'.
    >> make[1]: Leaving directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/liblwgeom'
    >> make -C postgis
    >> make[1]: Entering directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/postgis'
    >> /home/zozo/.wine/dosdevices/z:/usr/x86_64-w64-mingw32/sys-root/mingw/lib/postgresql/pgxs/src/makefiles/../../src/Makefile.port:63:
    >> *** target pattern contains no `%'.  Stop.
    >> make[1]: Leaving directory `/home/zozo/Schönig-számlák/w64/nsis/9.0/postgis-1.5.3/postgis'
    >> make: *** [postgis] Error 2
    > Having a colon in a file name is not going to work with make.
    
    Actually, it does work nicely. make has problems with a colon in the body of
    a target name (IIRC, it's invalid, anyway but may be accepted if escaped),
    but it doesn't complain if the filesystem give it filenames with colons in them.
    
    What it really complains about it the "win32ver.rc:" target in the Makefile.port.
    
    For cross-compiling postGIS, turns out that I only need the attached
    patches applied in
         /usr/x86_64-w64-mingw32/sys-root/mingw/lib/postgresql/pgxs/src
    on the PostgreSQL side along with similar
        OPTION = $(winepath -u `$PG_CONFIG --option` | dos2unix)
    treatments in the configure.ac where needed.
    
    Best regards,
    Zoltán Böszörményi
    
    -- 
    ----------------------------------
    Zoltán Böszörményi
    Cybertec Schönig & Schönig GmbH
    Gröhrmühlgasse 26
    A-2700 Wiener Neustadt, Austria
    Web: http://www.postgresql-support.de
         http://www.postgresql.at/