Subject: Re: Problems creating a new package ...
To: Matthew Grooms <mgrooms@shrew.net>
From: Roland Illig <rillig@NetBSD.org>
List: pkgsrc-users
Date: 09/12/2007 12:00:48
Matthew Grooms wrote:
> Roland Illig wrote:
> 
>>
>> OPT_NATT isn't prefixed with "-D", but should be. The reason for the 
>> build failure was that _all_ other packages seemingly don't leave a 
>> space between the -D and the name to be defined. I've fixed it in 
>> mk/wrapper/arg-source revision 1.2.
>>
> 
> Thanks for all your extremely helpful input. I removed the spaces in the 
> CMakeLists.txt define statements and now all is well. Good call.

This shouldn't be necessary after updating mk/wrapper/arg-source.

>> Please always add a comment _why_ ONLY_FOR_PLATFORM is needed.
>>
> 
> I have only tested this software on NetBSD, FreeBSD and Linux using i386 
> and amd64 archs. I didn't want anyone to get bit on an untested platform 
> so I included the line. What would be the best way to express this and 
> where do I add the comment? Just in the Makefile or do you mean to echo 
> output during the make process?

That's exactly the thing for which I don't want ONLY_FOR_PLATFORM to be 
used. If you don't know whether it works or not, leave it, and other 
people will find out. Only use {NOT,ONLY}_FOR_PLATFORM if you are sure 
that it won't work.

The comment would be placed in the Makefile, above or at the right of 
the definition.

>> I prefer USE_TOOLS+=bison here.
>>
> 
> I must have bison 2.3 or later.

Ok.

> I do have one other question. The cmake configure process attempts to 
> locate the qt3 package automatically. On all other platforms I have 
> compiled, it just works. On NetBSD, I have to set the following for the 
> configure process to work ...
> 
> QTDIR=/usr/pkg/qt3
> QMAKESPEC=netbsd-g++
> PATH=${PATH}:${QTDIR}/bin
> LD_LIBRARY_PATH=/usr/pkg/qt3/lib/:/usr/X11R6/lib

Some of the included files add QTDIR and possibly other useful things to 
the CONFIGURE_ENV variable, and that's why it is included in the default 
do-configure code. You should provide the same environment:

> do-configure:
> 	( cd ${WRKSRC} && ${LOCALBASE}/bin/cmake ${CMAKE_ARGS} )

do-configure:
	cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} \
		${LOCALBASE}/bin/cmake ${CMAKE_ARGS}

You can run "bmake debug" or "bmake show-all-configure" to see what's in 
the variable.

Roland