On Thu, Jul 10, 2008 at 10:53:13PM +0200, Anders Trob??ck wrote:
> On Thu, 10 Jul 2008 13:34:39 -0700
> "Garrett Cooper" <[EMAIL PROTECTED]> wrote:
> 
> > On Thu, Jul 10, 2008 at 10:39 AM, Anders Trob??ck
> > <[EMAIL PROTECTED]> wrote:
> > > On Thu, 10 Jul 2008 14:54:15 +0200
> > > Anders Troback <[EMAIL PROTECTED]> wrote:
> > >
> > >> On Thu, 10 Jul 2008 01:54:10 -0800
> > >> Beech Rintoul <[EMAIL PROTECTED]> wrote:
> > >>
> > >> > On Thursday 10 July 2008, Anders Troback said:
> > >> > > Hi,
> > >> > >
> > >> > > I need some tips about a port that I'm working on!
> > >> > >
> > >> > > The problem that I have are that the source of the code are in
> > >> > > a tgz that are in a sub folder in an other tgz! So first I
> > >> > > need the port to download and extract the first tgz and then
> > >> > > extract, configure and make the second tgz!
> > >> > >
> > >> > > How do I cope with that?
> > >> > >
> > >> > > Thanks!
> > >> >
> > >> > You can probably extract the second time in post-extract, but
> > >> > you're going to have to get creative defining the right
> > >> > ${WRKSRC}. After that it should patch and build normally.
> > >> >
> > >> > Beech
> > >> >
> > >>
> > >> OK! Next problem:-]
> > >>
> > >> The program that I want to build are under a sub folder of
> > >> ${WRKSRC}/src so first I need to make the "main" program and then I
> > >> have to run make in that sub folder! Are there any macros that do
> > >> things like this or is there some other way?
> > >>
> > >> Thanks again!
> > >>
> > >
> > > Is this a "legal" way of solving this issue?
> > >
> > > post-build:
> > >        cd ${WRKSRC}/src/extras && make
> > 
> > Wouldn't `gmake -C ${WRKSRC}/src/extras' be better?
> > -Garrett
> 
> Yes, much nice and cleaner! I don't need gmake but make was the same!

Actually, this might miss a lot of settings in the environment and stuff.
It would be much better to do it the way bsd.port.mk does it:

  ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} 
${ALL_TARGET}

Yes, this is a command line consisting entirely of variables :)
Well, okay, to do it in a different directory you would need to use:

  ${SETENV} ${MAKE_ENV} ${GMAKE} -C ${WRKSRC}/src/extras ${MAKE_FLAGS} 
${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}

The ${SETENV} ${MAKE_ENV} part is really important.  The rest - well,
${MAKE_FLAGS} and ${MAKE_ARGS} are most probably not needed in this
particular case, but they still are a good idea in the general case -
although in very few cases, on very weird "make" invocations, there might
be problems because of flag differences between BSD make and GNU make.
The ${MAKEFILE} is very, very rarely *not* "Makefile" - and if you
decide to remove ${MAKE_FLAGS}, be sure to check if you still want to
pass ${MAKEFILE}, too :)

Well, okay, so basically, this could *most probably* be shortened to:

  ${SETENV} ${MAKE_ENV} ${GMAKE} -C ${WRKSRC}/src/extras

...maybe :)

G'luck,
Peter

-- 
Peter Pentchev  [EMAIL PROTECTED]    [EMAIL PROTECTED]    [EMAIL PROTECTED]
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
What would this sentence be like if pi were 3?

Attachment: pgpN9WafGUGZK.pgp
Description: PGP signature

Reply via email to