Makefiles for building with mingw32 on win32 - Mailing list pgsql-patches
From | Gerhard Häring |
---|---|
Subject | Makefiles for building with mingw32 on win32 |
Date | |
Msg-id | 3B8A9A99.4000608@gmx.de Whole thread Raw |
Responses |
Re: Makefiles for building with mingw32 on win32
Re: Makefiles for building with mingw32 on win32 Re: Makefiles for building with mingw32 on win32 Re: Makefiles for building with mingw32 on win32 Re: Makefiles for building with mingw32 on win32 |
List | pgsql-patches |
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 +
pgsql-patches by date: