Problematic dependency in plpython Makefile [Windows]
On Windows, src/pl/plpython/Makefile has a rule whose target line expands to
something like "python33.def: C:/Windows/system32/python33.dll". When doing a
MinGW build with Cygwin's make-3.81, that line elicits an error:
Makefile:69: *** target pattern contains no `%'. Stop.
Seeing a second colon, make treats the line as a static pattern rule. Perhaps
the MinGW project ships a make patched to avoid this, or perhaps folks
building PostgreSQL override WINDIR. In any event, that dependency is not
useful: we can't build the named file if it's absent, and an error from
pexports is a good as an error from make. Let's drop the dependency.
Note that this affects --without-python builds during "make clean".
Thanks,
nm
Attachments:
plpython-bad-dependency-v1.patchtext/plain; charset=us-asciiDownload
*** a/src/pl/plpython/Makefile
--- b/src/pl/plpython/Makefile
***************
*** 66,72 **** OBJS += libpython${pytverstr}.a
libpython${pytverstr}.a: python${pytverstr}.def
dlltool --dllname python${pytverstr}.dll --def python${pytverstr}.def --output-lib libpython${pytverstr}.a
WD=$(subst \,/,$(WINDIR))
! python${pytverstr}.def: $(WD)/system32/python${pytverstr}.dll
pexports $(WD)/system32/python${pytverstr}.dll > python${pytverstr}.def
endif
--- 66,72 ----
libpython${pytverstr}.a: python${pytverstr}.def
dlltool --dllname python${pytverstr}.dll --def python${pytverstr}.def --output-lib libpython${pytverstr}.a
WD=$(subst \,/,$(WINDIR))
! python${pytverstr}.def:
pexports $(WD)/system32/python${pytverstr}.dll > python${pytverstr}.def
endif
On 01/03/2013 11:13 AM, Noah Misch wrote:
On Windows, src/pl/plpython/Makefile has a rule whose target line expands to
something like "python33.def: C:/Windows/system32/python33.dll". When doing a
MinGW build with Cygwin's make-3.81, that line elicits an error:
Shouldn't you generally be using msys make from mingw?
I'm a bit puzzled as to why you'd be using cygwin make.
--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Thu, Jan 03, 2013 at 11:52:58AM +0800, Craig Ringer wrote:
On 01/03/2013 11:13 AM, Noah Misch wrote:
On Windows, src/pl/plpython/Makefile has a rule whose target line expands to
something like "python33.def: C:/Windows/system32/python33.dll". When doing a
MinGW build with Cygwin's make-3.81, that line elicits an error:Shouldn't you generally be using msys make from mingw?
I'm a bit puzzled as to why you'd be using cygwin make.
I don't normally use MSYS at all. I wouldn't furnish widespread Makefile
changes to avoid doing so, but this is the only change I have needed.
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On 01/02/2013 10:13 PM, Noah Misch wrote:
On Windows, src/pl/plpython/Makefile has a rule whose target line expands to
something like "python33.def: C:/Windows/system32/python33.dll". When doing a
MinGW build with Cygwin's make-3.81, that line elicits an error:Makefile:69: *** target pattern contains no `%'. Stop.
Seeing a second colon, make treats the line as a static pattern rule. Perhaps
the MinGW project ships a make patched to avoid this, or perhaps folks
building PostgreSQL override WINDIR. In any event, that dependency is not
useful: we can't build the named file if it's absent, and an error from
pexports is a good as an error from make. Let's drop the dependency.Note that this affects --without-python builds during "make clean".
I suspect under Msys the path seen won't contain a colon - it will be an
Msys virtualized path like /c/Windows/system32/....
Frankly, this is an unsupported toolchain. The supported toolchains
under Windows are Msys/Mingw and the Microsoft toolsets.
OTOH, I don't object to dropping a dependency that is truly useless.
cheers
andrew
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On 01/02/2013 11:34 PM, Andrew Dunstan wrote:
On 01/02/2013 10:13 PM, Noah Misch wrote:
On Windows, src/pl/plpython/Makefile has a rule whose target line
expands to
something like "python33.def: C:/Windows/system32/python33.dll".
When doing a
MinGW build with Cygwin's make-3.81, that line elicits an error:Makefile:69: *** target pattern contains no `%'. Stop.
Seeing a second colon, make treats the line as a static pattern
rule. Perhaps
the MinGW project ships a make patched to avoid this, or perhaps folks
building PostgreSQL override WINDIR. In any event, that dependency
is not
useful: we can't build the named file if it's absent, and an error from
pexports is a good as an error from make. Let's drop the dependency.Note that this affects --without-python builds during "make clean".
I suspect under Msys the path seen won't contain a colon - it will be
an Msys virtualized path like /c/Windows/system32/....
Apparently not, from testing. Maybe the make is patched after all.
cheers
andrew
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers