Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Mar 2010 15:45:47 -0400
From:      Greg Larkin <glarkin@FreeBSD.org>
To:        Paul Schmehl <pschmehl_lists@tx.rr.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Elegant way to hack port source
Message-ID:  <4BA91A6B.3030001@FreeBSD.org>
In-Reply-To: <83BEEB5783CC06E1C802658D@utd65257.utdallas.edu>
References:  <a14066a01003190935t4bbef41esc44c60a5b00e6144@mail.gmail.com> <20100319170159.GB71392@slackbox.erewhon.net>	<20100319200130.GE265@comcast.net> <3D386E86A152519AA850205C@utd65257.utdallas.edu> <a14066a01003191404u56fd3f71mbfacff83839b7a2c@mail.gmail.com> <8B123BA51B43B4AAC86E0F3C@utd65257.utdallas.edu> <20100319220126.GH265@comcast.net> <2C40431FF3AE42C7B0234A97@utd65257.utdallas.edu> <20100319222143.GI265@comcast.net> <4BA40295.4090006@FreeBSD.org> <83BEEB5783CC06E1C802658D@utd65257.utdallas.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Paul Schmehl wrote:
> --On Friday, March 19, 2010 19:02:45 -0400 Greg Larkin
> <glarkin@FreeBSD.org> wrote:
>>
>> Here's something else that I've found really useful as a port creator,
>> maintainer and troubleshooter.  If I want to make some additional
>> changes to a source file that is patched by a file stored in
>> files/patch-...., I'll do this:
>>
>> make patch          # extracts source and patches files
>> cd work/foobar/...
>> # Now make additional edits in patched file, leaving the
>> # .orig file alone
>> cd ../back/to/port/directory
>> make makepatch
>>
>> The makepatch target recurses through the work/foobar directory and
>> creates diffs for all file.ext/file.ext.orig pairs.  It writes them to
>> the files/ directory with the patch- prefix on each so the patch target
>> processes them.
>>
>> The only thing to watch out for here, is that makepatch has its own file
>> naming convention that doesn't always mirror the port creator's.  For
>> instance, some ports have patch files named "patch-aa", "patch-ab", etc.
>>  The makepatch target will recreate them with filenames based on the
>> directory and filename of the file to be patched during the build.
>>
>> Hope that helps,
> 
> Man, does it ever.  Thanks for that.
> 
> Which brings me to an obvious question.  Where can I go to find out what
> all of the make targets are?  Is it in /usr/ports/Mk/?
> 

Hi Paul,

Yes, that's the first place to look, and there's a lot of documentation
about the different variable that control the build process at the top
of that file, too.  Here's a command that gives a rough list of the
available targets:

egrep '^[a-zA-Z0-9-]+:$' /usr/ports/Mk/bsd.port.mk | sort -u

bsd.port.mk includes various other .mk files depending on what flags are
set in the port Makefile, /etc/make.conf and the environment.

Hmm, I just found a new target named "update-patches", and I have to go
investigate what that does!

Regards,
Greg
- --
Greg Larkin

http://www.FreeBSD.org/           - The Power To Serve
http://www.sourcehosting.net/     - Ready. Set. Code.
http://twitter.com/sourcehosting/ - Follow me, follow you
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iD8DBQFLqRpr0sRouByUApARAskmAJ93A205wIVNU4Mj6IHR7ZxDWFGn8gCfdWch
OtQ1c5gbRGeKecdLutJG+JE=
=xBkv
-----END PGP SIGNATURE-----




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BA91A6B.3030001>