From: | Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | Steve Holdoway <steve(at)treshna(dot)com> |
Cc: | pgsql-hackers-win32(at)postgresql(dot)org |
Subject: | Re: Borland c++ compile problems... |
Date: | 2004-07-31 06:21:14 |
Message-ID: | 200407310621.i6V6LEw03260@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers-win32 pgsql-patches |
I have not heard back from you so I removed the parts of your patch which
looked wrong and have applied the attached version of the patch.
---------------------------------------------------------------------------
Steve Holdoway wrote:
> Bruce Momjian wrote:
>
> >Steve Holdoway wrote:
> >
> >
> >>Bruce Momjian wrote:
> >>
> >>
> >>
> >>>Steve Holdoway wrote:
> >>>
> >>>
> >>>
> >>>
> >>>>Sorry to be a pest, and all that. However, it looks like make needs to
> >>>>be run in src\port, to create pg_config_paths.h, and compile stuff to
> >>>>resolve externals _set_noblock, _pg_strcasecmp, _pg_tolower, and _popen
> >>>>(? bit worried about that one!)
> >>>>
> >>>>I had a go at rewriting an existing bcc32.mak, but just seemed to
> >>>>generate more errors!
> >>>>
> >>>>
> >>>>
> >>>>
> >>>Uh, I don't see how those would fail. What errors are you seeing?
> >>>
> >>>
> >>>
> >>>
> >>>
> >>Well, in the port subdirectory, one of the things that is generated by
> >>the makefile is pg_config_paths.h. Without this, libpq will not compile.
> >>As I stated above, cobbling this together manually then gets me to the
> >>place where the aforementioned external references are not resolved. All
> >>are in source files in the port directory.
> >>
> >>The errors I'm seeing are all caused by includes not being found, etc. I
> >>don't know what to do when they are ones like strings.h, which I do not
> >>have either in the snapshot source tree, or in the Borland bcc 5.5 tree.
> >>
> >>I also don't know how you want the above files building... into a
> >>library, static or dynamic/straight object code, etc. There is also no
> >>listing in the current bcc32.mak files to include them into the libpq
> >>dll generation.
> >>
> >>
> >
> >OK, if you look at the last few commits to interfaces/libpq/win32.mak,
> >you will see changes for pg_config_paths.h and for thread safety. Can
> >you look at those changes, merge them into bcc.mak. There might be
> >other changes in there you want to add to bcc.mak too.
> >
> >
> >
> OK, having no M$ diff, I attach files src\interfaces\libpq\bcc32.mak and
> src\interfaces\libpq\win32.h
>
> bcc32.mak incorporates the changes in win32.mak, and adds a couple of
> extra source files from the ..\..\port directory, and win32.h was used
> to #define popen -> _popen.
>
> All seems to work after a *very* cursory test!
>
> Can I get back to the land of proper slashes now???
>
> Cheers,
>
> Steve
> # Makefile for Borland C++ 5.5
>
> # Will build a Win32 static library libpq.lib
> # and a Win32 dynamic library libpq.dll with import library libpqdll.lib
>
> # Borland C++ base install directory goes here
> BCB=c:\Borland\Bcc55
>
> !MESSAGE Building the Win32 DLL and Static Library...
> !MESSAGE
> !IF "$(CFG)" == ""
> CFG=Release
> !MESSAGE No configuration specified. Defaulting to Release.
> !MESSAGE
> !ELSE
> !MESSAGE Configuration "$(CFG)"
> !MESSAGE
> !ENDIF
>
> !IF "$(CFG)" != "Release" && "$(CFG)" != "Debug"
> !MESSAGE Invalid configuration "$(CFG)" specified.
> !MESSAGE You can specify a configuration when running MAKE
> !MESSAGE by defining the macro CFG on the command line. For example:
> !MESSAGE
> !MESSAGE make -DCFG=[Release | Debug] /f bcc32.mak
> !MESSAGE
> !MESSAGE Possible choices for configuration are:
> !MESSAGE
> !MESSAGE "Release" (Win32 Release DLL and Static Library)
> !MESSAGE "Debug" (Win32 Debug DLL and Static Library)
> !MESSAGE
> !ERROR An invalid configuration was specified.
> !ENDIF
>
> !IF "$(OS)" == "Windows_NT"
> NULL=
> !ELSE
> NULL=nul
> !ENDIF
>
> !IF "$(CFG)" == "Debug"
> DEBUG=1
> OUTDIR=.\Debug
> INTDIR=.\Debug
> !else
> OUTDIR=.\Release
> INTDIR=.\Release
> !endif
>
> USERDEFINES=FRONTEND;NDEBUG;WIN32;_WINDOWS;HAVE_VSNPRINTF;HAVE_STRDUP;
>
> CPP=bcc32.exe
> CPP_PROJ = -I$(BCB)\include;..\..\include -WD -c -D$(USERDEFINES) -tWM \
> -a8 -X -w-use -w-par -w-pia -w-csu -w-aus -w-ccc
>
> !IFDEF DEBUG
> CPP_PROJ = $(CPP_PROJ) -Od -r- -k -v -y -vi- -D_DEBUG
> !else
> CPP_PROJ = $(CPP_PROJ) -O -Oi -OS -DNDEBU
> !endif
>
> LIB32=tlib.exe
> LIB32_FLAGS=
> LIB32_OBJS= \
> "$(OUTDIR)\win32.obj" \
> "$(INTDIR)\getaddrinfo.obj" \
> "$(INTDIR)\thread.obj" \
> "$(INTDIR)\inet_aton.obj" \
> "$(INTDIR)\crypt.obj" \
> "$(INTDIR)\path.obj" \
> "$(INTDIR)\noblock.obj" \
> "$(INTDIR)\pgstrcasecmp.obj" \
> "$(INTDIR)\dllist.obj" \
> "$(INTDIR)\md5.obj" \
> "$(INTDIR)\ip.obj" \
> "$(INTDIR)\fe-auth.obj" \
> "$(INTDIR)\fe-protocol2.obj" \
> "$(INTDIR)\fe-protocol3.obj" \
> "$(INTDIR)\fe-connect.obj" \
> "$(INTDIR)\fe-exec.obj" \
> "$(INTDIR)\fe-lobj.obj" \
> "$(INTDIR)\fe-misc.obj" \
> "$(INTDIR)\fe-print.obj" \
> "$(INTDIR)\fe-secure.obj" \
> "$(INTDIR)\pqexpbuffer.obj" \
> "$(INTDIR)\wchar.obj" \
> "$(INTDIR)\encnames.obj"
>
>
> RSC=brcc32.exe
> RSC_PROJ=-l 0x409 -i$(BCB)\include -fo"$(INTDIR)\libpq.res"
>
> LINK32=ilink32.exe
> LINK32_FLAGS = -Gn -L$(BCB)\lib;$(INTDIR); -x -Tpd -v
> LINK32_OBJS= "$(INTDIR)\libpqdll.obj"
>
> # ---------------------------------------------------------------------------
>
> .path.obj = $(INTDIR)
> .path.c = .;..\..\port;..\..\backend\libpq;..\..\backend\lib;..\..\backend\utils\mb
>
> # ---------------------------------------------------------------------------
>
> ALL: config "$(OUTDIR)" "$(OUTDIR)\blibpq.dll" "$(OUTDIR)\blibpq.lib"
>
> CLEAN :
> -(at)erase "$(INTDIR)\getaddrinfo.obj"
> -(at)erase "$(INTDIR)\thread.obj"
> -(at)erase "$(INTDIR)\inet_aton.obj"
> -(at)erase "$(INTDIR)\crypt.obj"
> -(at)erase "$(INTDIR)\path.obj"
> -(at)erase "$(INTDIR)\dllist.obj"
> -(at)erase "$(INTDIR)\md5.obj"
> -(at)erase "$(INTDIR)\ip.obj"
> -(at)erase "$(INTDIR)\fe-auth.obj"
> -(at)erase "$(INTDIR)\fe-protocol2.obj"
> -(at)erase "$(INTDIR)\fe-protocol3.obj"
> -(at)erase "$(INTDIR)\fe-connect.obj"
> -(at)erase "$(INTDIR)\fe-exec.obj"
> -(at)erase "$(INTDIR)\fe-lobj.obj"
> -(at)erase "$(INTDIR)\fe-misc.obj"
> -(at)erase "$(INTDIR)\fe-print.obj"
> -(at)erase "$(INTDIR)\fe-secure.obj"
> -(at)erase "$(INTDIR)\pqexpbuffer.obj"
> -(at)erase "$(OUTDIR)\libpqdll.obj"
> -(at)erase "$(OUTDIR)\win32.obj"
> -(at)erase "$(INTDIR)\wchar.obj"
> -(at)erase "$(INTDIR)\encnames.obj"
> -(at)erase "$(INTDIR)\noblock.obj"
> -(at)erase "$(INTDIR)\pgstrcasecmp.obj"
> -(at)erase "$(OUTDIR)\libpq.res"
> -(at)erase "$(OUTDIR)\blibpq.lib"
> -(at)erase "$(OUTDIR)\blibpqdll.lib"
> -(at)erase "$(OUTDIR)\blibpq.dll"
> -(at)erase "$(OUTDIR)\blibpq.tds"
>
> config: ..\..\include\pg_config.h pthread.h pg_config_paths.h
>
> ..\..\include\pg_config.h: ..\..\include\pg_config.h.win32
> copy ..\..\include\pg_config.h.win32 ..\..\include\pg_config.h
>
> pthread.h: pthread.h.win32
> copy pthread.h.win32 pthread.h
>
> pg_config_paths.h: win32.mak
> echo #define SYSCONFDIR "" >pg_config_paths.h
>
> "$(OUTDIR)" :
> @if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
>
> "$(OUTDIR)\blibpq.dll": "$(OUTDIR)\blibpq.lib" $(LINK32_OBJS) "$(INTDIR)\libpq.res" blibpqdll.def
> $(LINK32) @&&!
> $(LINK32_FLAGS) +
> c0d32.obj $(LINK32_OBJS), +
> $@,, +
> "$(OUTDIR)\blibpq.lib" import32.lib cw32mti.lib, +
> blibpqdll.def,"$(INTDIR)\libpq.res"
> !
> implib -w "$(OUTDIR)\blibpqdll.lib" blibpqdll.def $@
>
> "$(INTDIR)\libpq.res" : "$(INTDIR)" libpq.rc
> $(RSC) $(RSC_PROJ) libpq.rc
>
> "$(OUTDIR)\blibpq.lib": $(LIB32_OBJS)
> $(LIB32) $@ @&&!
> +-"$(**: =" &^
> +-")"
> !
>
>
> .c.obj:
> $(CPP) -o"$(INTDIR)\$&" $(CPP_PROJ) $<
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
> message can get through to the mailing list cleanly
--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
Attachment | Content-Type | Size |
---|---|---|
unknown_filename | text/plain | 3.2 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Magnus Hagander | 2004-07-31 22:15:04 | New pginstaller beta |
Previous Message | Bruce Momjian | 2004-07-31 05:51:09 | Re: [HACKERS] Cannot initdb in cvs tip |
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2004-07-31 07:55:58 | Re: Admin functions contrib |
Previous Message | Bruce Momjian | 2004-07-31 05:51:09 | Re: [HACKERS] Cannot initdb in cvs tip |