Re: Makefiles for building with mingw32 on win32 - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Re: Makefiles for building with mingw32 on win32 |
Date | |
Msg-id | 200109072219.f87MJ4v02093@candle.pha.pa.us Whole thread Raw |
In response to | Makefiles for building with mingw32 on win32 (Gerhard Häring <haering_python@gmx.de>) |
Responses |
Re: Makefiles for building with mingw32 on win32
|
List | pgsql-patches |
Can I have a vote on whether to apply this patch? > Makefiles for building the win32 parts with the native (mingw32) mode of gcc. > Currently, only libpq is implemented because I only cared for that :-) > Supports cross-compilation and includes documentation updates. So people don't > need to spend big $$$ for Visual C++ :-) > > Gerhard > -- > mail: gerhard <at> bigfoot <dot> de registered Linux user #64239 > web: http://www.cs.fhm.edu/~ifw00065/ public key at homepage > public key fingerprint: DEC1 1D02 5743 1159 CD20 A4B6 7B22 6575 86AB 43C0 > reduce(lambda x,y:x+y,map(lambda x:chr(ord(x)^42),tuple('zS^BED\nX_FOY\x0b'))) > diff -N -r -C3 --exclude=CVS ../pgsql_HEAD/doc/src/sgml/install-win32.sgml ./doc/src/sgml/install-win32.sgml > *** ../pgsql_HEAD/doc/src/sgml/install-win32.sgml Sun May 13 00:51:35 2001 > --- ./doc/src/sgml/install-win32.sgml Mon Aug 27 06:59:52 2001 > *************** > *** 111,116 **** > --- 111,134 ---- > C++, just right-click on the project and chose to add it.) > </para> > > + <para> > + Alternatively, you can use the native mode of the GNU compilers (minimalist > + GNU win32 - mingw32) to compile the win32 parts of PostgreSQL. > + Currently, only libpq has a Makefile suitable for compilation with mingw32. > + </para> > + <para> > + To build everything that you can with GNU tools on > + <productname>Windows</productname>, change into the > + <filename>src</filename> directory and type the command > + <screen> > + <userinput>make -f mingw32.mak</userinput> > + </screen> > + This assumes that you are the<productname>Cygnus Toolkit</productname>'s bash > + shell or have a suitable mingw32 environment with make and gcc installed. The > + Makefiles also support cross-compilation. > + </para> > + > + > </chapter> > > <!-- Keep this comment at the end of the file > diff -N -r -C3 --exclude=CVS ../pgsql_HEAD/src/interfaces/libpq/mingw32.mak ./src/interfaces/libpq/mingw32.mak > *** ../pgsql_HEAD/src/interfaces/libpq/mingw32.mak Thu Jan 1 01:00:00 1970 > --- ./src/interfaces/libpq/mingw32.mak Fri Aug 24 08:34:24 2001 > *************** > *** 0 **** > --- 1,66 ---- > + # Makefile for compiling a native win32 libpq with GNU tools (GNU make) > + # ===================================================================== > + # > + # To build an optimized non-debug library, simply compile with > + # $ make -f mingw32.mak > + # > + # To cross-compile from FreeBSD/Linux/..., compile with > + # $ make -f mingw32.mak PREFIX=i386-mingw32msvc- > + # > + # To build the library with debugging support, compile with > + # $ make -f mingw32.mak OPT=-g LDOPT= > + # > + # To build the library with multibyte support, compile with > + # $ make -f mingw32.mak MULTIBYTE=1 > + # > + # You can combine any of the above. > + > + ##################################################################### > + # You can change these parameters on the commandline: > + ##################################################################### > + PREFIX= > + OPT=-O3 > + MULTIBYTE=0 > + LDOPT=-s > + ##################################################################### > + > + > + DEFINES=-DFRONTEND -DHAVE_VSNPRINTF -DHAVE_STRDUP > + ifeq (1,$(MULTIBYTE)) > + DEFINES := $(DEFINES) -DMULTIBYTE=1 > + endif > + > + CFLAGS=-mno-cygwin -Wall $(OPT) $(DEFINES) > + CC=$(PREFIX)gcc > + DLLTOOL=$(PREFIX)dlltool > + DLLWRAP=$(PREFIX)dllwrap > + > + INC=-I../../../src/include/ > + LIBS=-lwsock32 > + > + objects=fe-auth.o fe-connect.o fe-exec.o fe-lobj.o fe-misc.o fe-print.o libpqdll.o pqexpbuffer.o pqsignal.o ../../backend/lib/dllist.o../../backend/libpq/md5.o > + ifeq (1,$(MULTIBYTE)) > + objects := $(objects) ../../backend/utils/mb/wchar.o > + endif > + > + # Default target > + ALL: libpq.dll libpqdll.a libpq.a > + > + $(objects): %.o: %.c > + $(CC) -c $(CFLAGS) $(INC) $< -o $@ > + > + # Building the DLL. > + libpq.dll: $(objects) libpqdll.def > + $(DLLWRAP) -mno-cygwin --dllname libpq.dll --driver-name $(CC) --def libpqdll.def -o libpq.dll $(objects) $(LDOPT)--entry _DllMain@12 --target=i386-mingw32 $(LIBS) > + > + # The import library for the DLL. > + libpqdll.a: libpq.dll > + $(DLLTOOL) --def libpqdll.def --dllname libpq.dll --output-lib libpqdll.a > + > + # A static library. > + libpq.a: $(objects) > + ar -r libpq.a $(objects) > + > + clean: > + rm -f $(objects) *.dll *.a *~ > + > Binary files ../pgsql_HEAD/src/interfaces/libpq/pqexpbuffer.o and ./src/interfaces/libpq/pqexpbuffer.o differ > Binary files ../pgsql_HEAD/src/interfaces/libpq/pqsignal.o and ./src/interfaces/libpq/pqsignal.o differ > diff -N -r -C3 --exclude=CVS ../pgsql_HEAD/src/mingw32.mak ./src/mingw32.mak > *** ../pgsql_HEAD/src/mingw32.mak Thu Jan 1 01:00:00 1970 > --- ./src/mingw32.mak Mon Aug 27 07:02:04 2001 > *************** > *** 0 **** > --- 1,20 ---- > + # Makefile for mingw32 mode of gcc > + # > + # Only compiles libpq so far. > + # See interfaces/libpq/mingw32.mak for options! > + # > + # Note that most parts are not ported to Win32! > + > + ALL: docopy libpq > + > + docopy: > + # TODO copy only if target doesn't exist > + cp include/config.h.win32 include/config.h > + > + libpq: > + cd interfaces/libpq && $(MAKE) -e -f mingw32.mak > + -echo All Win32 parts have been built! > + > + clean: > + cd interfaces/libpq && $(MAKE) -e -f mingw32.mak clean > + > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
pgsql-patches by date: