Re: Contrib PROGRAM problem

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: Boszormenyi Zoltan <zb(at)cybertec(dot)at>
Cc: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, PostgreSQL-development Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Contrib PROGRAM problem
Date: 2013-01-19 00:03:48
Message-ID: 50F9E2E4.6070700@dunslane.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


On 01/18/2013 05:45 PM, Boszormenyi Zoltan wrote:
> 2013-01-18 23:37 keltezéssel, Andrew Dunstan írta:
>>
>> On 01/18/2013 05:19 PM, Boszormenyi Zoltan wrote:
>>> 2013-01-18 22:52 keltezéssel, Alvaro Herrera írta:
>>>> Boszormenyi Zoltan wrote:
>>>>
>>>>
>>>>> I want to test my lock_timeout code under Windows and
>>>>> I compiled the whole PG universe with the MinGW cross-compiler
>>>>> for 64-bit under Fedora 18.
>>>>>
>>>>> The problem contrib directories where Makefile contains
>>>>> PROGRAM = ...
>>>>> The executables binaries are created without the .exe suffix. E.g.:
>>>> I think you should be able to solve this by adding the $(X) suffix to
>>>> the $(PROGRAM) rule at the bottom of src/makefiles/pgxs.mk.
>>>>
>>>
>>> Do you mean the attached patch? It indeed fixes the build.
>>>
>>>
>>
>>
>>> ifdef PROGRAM
>>> $(PROGRAM): $(OBJS)
>>> - $(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX)
>>> $(LIBS) -o $@
>>> + $(CC) $(CFLAGS) $(OBJS) $(PG_LIBS) $(LDFLAGS) $(LDFLAGS_EX)
>>> $(LIBS) -o $(at)$(X)
>>> endif
>>>
>>
>>
>> Wouldn't it be better to make the rule be for $(PROGRAM)$(X) and
>> adjust the dependency for "all" in the same manner? Otherwise make
>> will rebuild it whether or not it's needed, won't it?
>
> With this in place:
>
> all: $(PROGRAM)$(X) $(DATA_built) $(SCRIPTS_built) $(addsuffix
> $(DLSUFFIX), $(MODULES)) $(addsuffix .control, $(EXTENSION))
>
> [zozo(at)localhost contrib]$ make
> make -C adminpack all
> make[1]: Entering directory
> `/home/zozo/crosscolumn/lock-timeout/12/postgresql.a/contrib/adminpack'
> make[1]: *** No rule to make target `.exe', needed by `all'. Stop.
> make[1]: Leaving directory
> `/home/zozo/crosscolumn/lock-timeout/12/postgresql.a/contrib/adminpack'
> make: *** [all-adminpack-recurse] Error 2
>
> It's not a good idea it seems.
>

Because that's only half of what I suggested.

cheers

andrew

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2013-01-19 00:13:07 Re: Strange Windows problem, lock_timeout test request
Previous Message Phil Sorber 2013-01-18 23:51:30 Re: My first patch! (to \df output)