Thread: PostgreSQL from source using MinGW
Hi, All. Has anyone successfully built PostgreSQL from source using MinGW? Anyone have step-by-step instructions on how to do this? I am willing to write the documentation on this if I can just get it to work. :-) I have done the following: 1. Install MinGW a. Go to URL: http://www.mingw.org/download.shtml b. Download: MinGW-4.1.1.exe i. Install full set of packages c. Download: MSYS-1.0.10.exe i. Answer y/n questions (installed MinGW on "c:/mingw". Make sure this is entered because you will not be able to mountthe directory otherwise.) 2. Then, I ran "./configure" However, I cannot get the make to work. Do I still need to install the GNU Make utility? Any suggestions? LEEP ~/sources/PostgreSQL/postgresql-8.0.3 $ configure --prefix=/c/PostgreSQL/8.0.3 checking build system type... i686-pc-mingw32 checking host system type... i686-pc-mingw32 checking which template to use... win32 checking whether to build with 64-bit integer date/time support... no checking whether NLS is wanted... no checking for default port number... 5432 checking for gcc... gcc checking for C compiler default output... a.exe checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... .exe checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking if gcc supports -Wdeclaration-after-statement... yes checking if gcc supports -Wold-style-definition... yes checking if gcc supports -Wendif-labels... yes checking if gcc supports -fno-strict-aliasing... yes configure: using CFLAGS=-O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wold-style-definition-Wendif-labels -fno-strict-aliasing checking whether the C compiler still works... yes checking how to run the C preprocessor... gcc -E checking allow thread-safe client libraries... no checking whether to build with Tcl... no checking whether to build Perl modules... no checking whether to build Python modules... no checking whether to build with Kerberos 4 support... no checking whether to build with Kerberos 5 support... no checking whether to build with PAM support... no checking whether to build with Rendezvous support... no checking whether to build with OpenSSL support... no configure: WARNING: *** Readline does not work on MinGW --- disabling configure: using CPPFLAGS= -I./src/include/port/win32 -DEXEC_BACKEND configure: using LDFLAGS=-Wl,--allow-multiple-definition checking for gawk... gawk checking for flex... no configure: WARNING: *** Without Flex you will not be able to build PostgreSQL from CVS or *** change any of the scanner definition files. You can obtain Flex from *** a GNU mirror site. (If you are using the official distribution of *** PostgreSQL then you do not need to worry about this because the Flex *** output is pre-generated.) checking whether ln -s works... yes checking for ld used by GCC... c:/mingw/mingw32/bin/ld.exe checking if the linker (c:/mingw/mingw32/bin/ld.exe) is GNU ld... yes checking for ranlib... ranlib checking for lorder... no checking for tar... /bin/tar checking for strip... strip checking whether it is possible to strip libraries... yes checking for bison... no configure: WARNING: *** Without Bison you will not be able to build PostgreSQL from CVS or *** change any of the parser definition files. You can obtain Bison from *** a GNU mirror site. (If you are using the official distribution of *** PostgreSQL then you do not need to worry about this because the Bison *** output is pre-generated.) To use a different yacc program (possible, *** but not recommended), set the environment variable YACC before running *** 'configure'. checking for perl... no checking for main in -lbsd... no checking for setproctitle in -lutil... no checking for main in -lm... yes checking for main in -ldl... no checking for main in -lnsl... no checking for main in -lsocket... no checking for main in -lipc... no checking for main in -lIPC... no checking for main in -llc... no checking for main in -ldld... no checking for main in -lld... no checking for main in -lcompat... no checking for main in -lBSD... no checking for main in -lgen... no checking for main in -lPW... no checking for main in -lresolv... no checking for library containing getopt_long... none required checking for main in -lunix... no checking for library containing crypt... no checking for library containing fdatasync... no checking for shmget in -lcygipc... no checking for main in -lwsock32... yes checking for inflate in -lz... no configure: error: zlib library not found If you have zlib already installed, see config.log for details on the failure. It is possible the compiler isn't looking in the proper directory. Use --without-zlib to disable zlib support. LEEP ~/sources/PostgreSQL/postgresql-8.0.3 $ make You need to run the 'configure' program first. See the file 'INSTALL' for installation instructions. make: *** [all] Error 1 LEEP ~/sources/PostgreSQL/postgresql-8.0.3 $ gmake sh: gmake: command not found
Have you read doc/FAQ_MINGW? --------------------------------------------------------------------------- Lee, Patricia S. wrote: > Hi, All. ? > > Has anyone successfully built PostgreSQL from source using MinGW?? Anyone have step-by-step instructions on how to do this? I am willing to write the documentation on this if I can just get it to work. :-) > > I have done the following: > 1. Install MinGW > a. Go to URL:? http://www.mingw.org/download.shtml > b. Download:? MinGW-4.1.1.exe > i. Install full set of packages > c. Download:? MSYS-1.0.10.exe > i. Answer y/n questions (installed MinGW on "c:/mingw".? Make sure this is entered because you will not be able to mountthe directory otherwise.) > 2.? Then, I ran "./configure" > > However, I cannot get the make to work. Do I still need to install the GNU Make utility? Any suggestions? > > LEEP ~/sources/PostgreSQL/postgresql-8.0.3 > $ configure --prefix=/c/PostgreSQL/8.0.3 > checking build system type... i686-pc-mingw32 > checking host system type... i686-pc-mingw32 > checking which template to use... win32 > checking whether to build with 64-bit integer date/time support... no > checking whether NLS is wanted... no > checking for default port number... 5432 > checking for gcc... gcc > checking for C compiler default output... a.exe > checking whether the C compiler works... yes > checking whether we are cross compiling... no > checking for suffix of executables... .exe > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether gcc accepts -g... yes > checking if gcc supports -Wdeclaration-after-statement... yes > checking if gcc supports -Wold-style-definition... yes > checking if gcc supports -Wendif-labels... yes > checking if gcc supports -fno-strict-aliasing... yes > configure: using CFLAGS=-O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wold-style-definition-Wendif-labels -fno-strict-aliasing > checking whether the C compiler still works... yes > checking how to run the C preprocessor... gcc -E > checking allow thread-safe client libraries... no > checking whether to build with Tcl... no > checking whether to build Perl modules... no > checking whether to build Python modules... no > checking whether to build with Kerberos 4 support... no > checking whether to build with Kerberos 5 support... no > checking whether to build with PAM support... no > checking whether to build with Rendezvous support... no > checking whether to build with OpenSSL support... no > configure: WARNING: *** Readline does not work on MinGW --- disabling > configure: using CPPFLAGS= -I./src/include/port/win32 -DEXEC_BACKEND > configure: using LDFLAGS=-Wl,--allow-multiple-definition > checking for gawk... gawk > checking for flex... no > configure: WARNING: > *** Without Flex you will not be able to build PostgreSQL from CVS or > *** change any of the scanner definition files.? You can obtain Flex from > *** a GNU mirror site.? (If you are using the official distribution of > *** PostgreSQL then you do not need to worry about this because the Flex > *** output is pre-generated.) > checking whether ln -s works... yes > checking for ld used by GCC... c:/mingw/mingw32/bin/ld.exe > checking if the linker (c:/mingw/mingw32/bin/ld.exe) is GNU ld... yes > checking for ranlib... ranlib > checking for lorder... no > checking for tar... /bin/tar > checking for strip... strip > checking whether it is possible to strip libraries... yes > checking for bison... no > configure: WARNING: > *** Without Bison you will not be able to build PostgreSQL from CVS or > *** change any of the parser definition files.? You can obtain Bison from > *** a GNU mirror site.? (If you are using the official distribution of > *** PostgreSQL then you do not need to worry about this because the Bison > *** output is pre-generated.)? To use a different yacc program (possible, > *** but not recommended), set the environment variable YACC before running > *** 'configure'. > checking for perl... no > checking for main in -lbsd... no > checking for setproctitle in -lutil... no > checking for main in -lm... yes > checking for main in -ldl... no > checking for main in -lnsl... no > checking for main in -lsocket... no > checking for main in -lipc... no > checking for main in -lIPC... no > checking for main in -llc... no > checking for main in -ldld... no > checking for main in -lld... no > checking for main in -lcompat... no > checking for main in -lBSD... no > checking for main in -lgen... no > checking for main in -lPW... no > checking for main in -lresolv... no > checking for library containing getopt_long... none required > checking for main in -lunix... no > checking for library containing crypt... no > checking for library containing fdatasync... no > checking for shmget in -lcygipc... no > checking for main in -lwsock32... yes > checking for inflate in -lz... no > configure: error: zlib library not found > If you have zlib already installed, see config.log for details on the > failure.? It is possible the compiler isn't looking in the proper directory. > Use --without-zlib to disable zlib support. > > LEEP ~/sources/PostgreSQL/postgresql-8.0.3 > $ make > You need to run the 'configure' program first. See the file > 'INSTALL' for installation instructions. > make: *** [all] Error 1 > LEEP ~/sources/PostgreSQL/postgresql-8.0.3 > $ gmake > sh: gmake: command not found > > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
please direct to -win32-hackers, -general, or -novice. take your pick. Also please don't cc unless you have a reason tospeak directly to that person. anyways, install bison. Merlin > -----Original Message----- > From: pgsql-hackers-owner@postgresql.org [mailto:pgsql-hackers- > owner@postgresql.org] On Behalf Of Lee, Patricia S. > Sent: Wednesday, September 07, 2005 2:32 PM > To: Jim C. Nasby; Tom Lane; Bruce Momjian; ITAGAKI Takahiro; pgsql- > hackers@postgresql.org > Subject: [HACKERS] PostgreSQL from source using MinGW > > Hi, All. > > Has anyone successfully built PostgreSQL from source using MinGW? Anyone > have step-by-step instructions on how to do this? I am willing to write > the documentation on this if I can just get it to work. :-) > > I have done the following: > 1. Install MinGW > a. Go to URL: http://www.mingw.org/download.shtml > b. Download: MinGW-4.1.1.exe > i. Install full set of packages > c. Download: MSYS-1.0.10.exe > i. Answer y/n questions (installed MinGW on "c:/mingw". Make sure this is > entered because you will not be able to mount the directory otherwise.) > 2. Then, I ran "./configure" > > However, I cannot get the make to work. Do I still need to install the > GNU Make utility? Any suggestions? > > LEEP ~/sources/PostgreSQL/postgresql-8.0.3 > $ configure --prefix=/c/PostgreSQL/8.0.3 > checking build system type... i686-pc-mingw32 > checking host system type... i686-pc-mingw32 > checking which template to use... win32 > checking whether to build with 64-bit integer date/time support... no > checking whether NLS is wanted... no > checking for default port number... 5432 > checking for gcc... gcc > checking for C compiler default output... a.exe > checking whether the C compiler works... yes > checking whether we are cross compiling... no > checking for suffix of executables... .exe > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether gcc accepts -g... yes > checking if gcc supports -Wdeclaration-after-statement... yes > checking if gcc supports -Wold-style-definition... yes > checking if gcc supports -Wendif-labels... yes > checking if gcc supports -fno-strict-aliasing... yes > configure: using CFLAGS=-O2 -Wall -Wmissing-prototypes -Wpointer-arith - > Wdeclaration-after-statement -Wold-style-definition -Wendif-labels -fno- > strict-aliasing > checking whether the C compiler still works... yes > checking how to run the C preprocessor... gcc -E > checking allow thread-safe client libraries... no > checking whether to build with Tcl... no > checking whether to build Perl modules... no > checking whether to build Python modules... no > checking whether to build with Kerberos 4 support... no > checking whether to build with Kerberos 5 support... no > checking whether to build with PAM support... no > checking whether to build with Rendezvous support... no > checking whether to build with OpenSSL support... no > configure: WARNING: *** Readline does not work on MinGW --- disabling > configure: using CPPFLAGS= -I./src/include/port/win32 -DEXEC_BACKEND > configure: using LDFLAGS=-Wl,--allow-multiple-definition > checking for gawk... gawk > checking for flex... no > configure: WARNING: > *** Without Flex you will not be able to build PostgreSQL from CVS or > *** change any of the scanner definition files. You can obtain Flex from > *** a GNU mirror site. (If you are using the official distribution of > *** PostgreSQL then you do not need to worry about this because the Flex > *** output is pre-generated.) > checking whether ln -s works... yes > checking for ld used by GCC... c:/mingw/mingw32/bin/ld.exe > checking if the linker (c:/mingw/mingw32/bin/ld.exe) is GNU ld... yes > checking for ranlib... ranlib > checking for lorder... no > checking for tar... /bin/tar > checking for strip... strip > checking whether it is possible to strip libraries... yes > checking for bison... no > configure: WARNING: > *** Without Bison you will not be able to build PostgreSQL from CVS or > *** change any of the parser definition files. You can obtain Bison from > *** a GNU mirror site. (If you are using the official distribution of > *** PostgreSQL then you do not need to worry about this because the Bison > *** output is pre-generated.) To use a different yacc program (possible, > *** but not recommended), set the environment variable YACC before running > *** 'configure'. > checking for perl... no > checking for main in -lbsd... no > checking for setproctitle in -lutil... no > checking for main in -lm... yes > checking for main in -ldl... no > checking for main in -lnsl... no > checking for main in -lsocket... no > checking for main in -lipc... no > checking for main in -lIPC... no > checking for main in -llc... no > checking for main in -ldld... no > checking for main in -lld... no > checking for main in -lcompat... no > checking for main in -lBSD... no > checking for main in -lgen... no > checking for main in -lPW... no > checking for main in -lresolv... no > checking for library containing getopt_long... none required > checking for main in -lunix... no > checking for library containing crypt... no > checking for library containing fdatasync... no > checking for shmget in -lcygipc... no > checking for main in -lwsock32... yes > checking for inflate in -lz... no > configure: error: zlib library not found > If you have zlib already installed, see config.log for details on the > failure. It is possible the compiler isn't looking in the proper > directory. > Use --without-zlib to disable zlib support. > > LEEP ~/sources/PostgreSQL/postgresql-8.0.3 > $ make > You need to run the 'configure' program first. See the file > 'INSTALL' for installation instructions. > make: *** [all] Error 1 > LEEP ~/sources/PostgreSQL/postgresql-8.0.3 > $ gmake > sh: gmake: command not found > > > > ---------------------------(end of broadcast)--------------------------- > TIP 6: explain analyze is your friend
Bruce Momjian wrote: >Have you read doc/FAQ_MINGW? > >--------------------------------------------------------------------------- > >Lee, Patricia S. wrote: > > To be a little more helpful. Patricia everything you need is here: http://www.postgresql.org/docs/faqs.FAQ_MINGW.html Sincerely, Joshua D. Drake -- Your PostgreSQL solutions company - Command Prompt, Inc. 1.800.492.2240 PostgreSQL Replication, Consulting, Custom Programming, 24x7 support Managed Services, Shared and Dedicated Hosting Co-Authors: plPHP, plPerlNG - http://www.commandprompt.com/
Thjis is done all the time - see for example http://www.pgbuildfarm.org/cgi-bin/show_history.pl?nm=goose&br=HEAD At a minumum you will need to install the DTK and from recollection also bison (must be 1.875) and flex (must be 2.5.4) from the gnuwin32 project You don't need an extra make - the make that comes with Mingw is Gnu make and works just fine. cheers andrew Lee, Patricia S. wrote: >Hi, All. > >Has anyone successfully built PostgreSQL from source using MinGW? Anyone have step-by-step instructions on how to do this? I am willing to write the documentation on this if I can just get it to work. :-) > >I have done the following: >1. Install MinGW >a. Go to URL: http://www.mingw.org/download.shtml >b. Download: MinGW-4.1.1.exe >i. Install full set of packages >c. Download: MSYS-1.0.10.exe >i. Answer y/n questions (installed MinGW on "c:/mingw". Make sure this is entered because you will not be able to mountthe directory otherwise.) >2. Then, I ran "./configure" > >However, I cannot get the make to work. Do I still need to install the GNU Make utility? Any suggestions? > >LEEP ~/sources/PostgreSQL/postgresql-8.0.3 >$ configure --prefix=/c/PostgreSQL/8.0.3 >checking build system type... i686-pc-mingw32 >checking host system type... i686-pc-mingw32 >checking which template to use... win32 >checking whether to build with 64-bit integer date/time support... no >checking whether NLS is wanted... no >checking for default port number... 5432 >checking for gcc... gcc >checking for C compiler default output... a.exe >checking whether the C compiler works... yes >checking whether we are cross compiling... no >checking for suffix of executables... .exe >checking for suffix of object files... o >checking whether we are using the GNU C compiler... yes >checking whether gcc accepts -g... yes >checking if gcc supports -Wdeclaration-after-statement... yes >checking if gcc supports -Wold-style-definition... yes >checking if gcc supports -Wendif-labels... yes >checking if gcc supports -fno-strict-aliasing... yes >configure: using CFLAGS=-O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wold-style-definition-Wendif-labels -fno-strict-aliasing >checking whether the C compiler still works... yes >checking how to run the C preprocessor... gcc -E >checking allow thread-safe client libraries... no >checking whether to build with Tcl... no >checking whether to build Perl modules... no >checking whether to build Python modules... no >checking whether to build with Kerberos 4 support... no >checking whether to build with Kerberos 5 support... no >checking whether to build with PAM support... no >checking whether to build with Rendezvous support... no >checking whether to build with OpenSSL support... no >configure: WARNING: *** Readline does not work on MinGW --- disabling >configure: using CPPFLAGS= -I./src/include/port/win32 -DEXEC_BACKEND >configure: using LDFLAGS=-Wl,--allow-multiple-definition >checking for gawk... gawk >checking for flex... no >configure: WARNING: >*** Without Flex you will not be able to build PostgreSQL from CVS or >*** change any of the scanner definition files. You can obtain Flex from >*** a GNU mirror site. (If you are using the official distribution of >*** PostgreSQL then you do not need to worry about this because the Flex >*** output is pre-generated.) >checking whether ln -s works... yes >checking for ld used by GCC... c:/mingw/mingw32/bin/ld.exe >checking if the linker (c:/mingw/mingw32/bin/ld.exe) is GNU ld... yes >checking for ranlib... ranlib >checking for lorder... no >checking for tar... /bin/tar >checking for strip... strip >checking whether it is possible to strip libraries... yes >checking for bison... no >configure: WARNING: >*** Without Bison you will not be able to build PostgreSQL from CVS or >*** change any of the parser definition files. You can obtain Bison from >*** a GNU mirror site. (If you are using the official distribution of >*** PostgreSQL then you do not need to worry about this because the Bison >*** output is pre-generated.) To use a different yacc program (possible, >*** but not recommended), set the environment variable YACC before running >*** 'configure'. >checking for perl... no >checking for main in -lbsd... no >checking for setproctitle in -lutil... no >checking for main in -lm... yes >checking for main in -ldl... no >checking for main in -lnsl... no >checking for main in -lsocket... no >checking for main in -lipc... no >checking for main in -lIPC... no >checking for main in -llc... no >checking for main in -ldld... no >checking for main in -lld... no >checking for main in -lcompat... no >checking for main in -lBSD... no >checking for main in -lgen... no >checking for main in -lPW... no >checking for main in -lresolv... no >checking for library containing getopt_long... none required >checking for main in -lunix... no >checking for library containing crypt... no >checking for library containing fdatasync... no >checking for shmget in -lcygipc... no >checking for main in -lwsock32... yes >checking for inflate in -lz... no >configure: error: zlib library not found >If you have zlib already installed, see config.log for details on the >failure. It is possible the compiler isn't looking in the proper directory. >Use --without-zlib to disable zlib support. > >LEEP ~/sources/PostgreSQL/postgresql-8.0.3 >$ make >You need to run the 'configure' program first. See the file >'INSTALL' for installation instructions. >make: *** [all] Error 1 >LEEP ~/sources/PostgreSQL/postgresql-8.0.3 >$ gmake >sh: gmake: command not found > > > >---------------------------(end of broadcast)--------------------------- >TIP 6: explain analyze is your friend > > >
On Sep 7, 2005, at 2:31 PM, Lee, Patricia S. wrote: > However, I cannot get the make to work. Do I still need to install > the GNU Make utility? Any suggestions? > > LEEP ~/sources/PostgreSQL/postgresql-8.0.3 > $ configure --prefix=/c/PostgreSQL/8.0.3 Try adding --without-zlib to your configure. Sorry I don't recall what, if any, limitations that involves. John DeSoi, Ph.D. http://pgedit.com/ Power Tools for PostgreSQL
Joshua D. Drake wrote: > Bruce Momjian wrote: > >> Have you read doc/FAQ_MINGW? >> >> --------------------------------------------------------------------------- >> >> >> Lee, Patricia S. wrote: >> >> > To be a little more helpful. Patricia everything you need is here: > > http://www.postgresql.org/docs/faqs.FAQ_MINGW.html > > That information is not adequate in my experience, and needs to be expanded. See my previous email for more details. cheers andrew
Andrew Dunstan wrote: > >> http://www.postgresql.org/docs/faqs.FAQ_MINGW.html >> > > That information is not adequate in my experience, and needs to be > expanded. See my previous email for more details. It is adequate for building sources downloaded from ftp (you don't need bison, flex, DTK for this), but it's not adequate for building sources from cvs. -- Regards Petr Jelinek (PJMODOS)
Petr Jelinek wrote: > Andrew Dunstan wrote: > >> >>> http://www.postgresql.org/docs/faqs.FAQ_MINGW.html >>> >> >> That information is not adequate in my experience, and needs to be >> expanded. See my previous email for more details. > > > It is adequate for building sources downloaded from ftp (you don't > need bison, flex, DTK for this), but it's not adequate for building > sources from cvs. > Ah. OK. Arguably we should cover both ;-) I think we should also tell people how about --without-readline and about installing zlib or using --without-zlib cheers andrew
Andrew Dunstan wrote: > > It is adequate for building sources downloaded from ftp (you don't > > need bison, flex, DTK for this), but it's not adequate for building > > sources from cvs. > > > > Ah. OK. Arguably we should cover both ;-) > > I think we should also tell people how about --without-readline and > about installing zlib or using --without-zlib Agreed. Patch? :-) (You knew I was going to ask, right?) -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
Bruce Momjian wrote: >Andrew Dunstan wrote: > > >>>It is adequate for building sources downloaded from ftp (you don't >>>need bison, flex, DTK for this), but it's not adequate for building >>>sources from cvs. >>> >>> >>> >>Ah. OK. Arguably we should cover both ;-) >> >>I think we should also tell people how about --without-readline and >>about installing zlib or using --without-zlib >> >> > >Agreed. Patch? :-) (You knew I was going to ask, right?) > > I will put something together. While we're on the subject, is this still true?: The most recent version of this document can be viewed at [2]http://momjian.postgresql.org/main/writings/pgsql/project/win32.html. Or is the authoritative source the HTML file in CVS? And if I patch that file do I also patch the derived text file? cheers andrew
Andrew Dunstan wrote: > >>I think we should also tell people how about --without-readline and > >>about installing zlib or using --without-zlib > >> > >> > > > >Agreed. Patch? :-) (You knew I was going to ask, right?) > > > > > > > I will put something together. > > While we're on the subject, is this still true?: > > The most recent version of this document can be viewed at > [2]http://momjian.postgresql.org/main/writings/pgsql/project/win32.html. No. I have fixed it. > Or is the authoritative source the HTML file in CVS? Yes, the HTML is the right file to patch. > And if I patch that file do I also patch the derived text file? Yes, I regenerate the text version before commit. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073