On 2022-05-15 23:08, Pat Maddox wrote:
On 15 May 2022, at 22:28, Pat Maddox wrote:On 15 May 2022, at 20:49, Chris wrote:On 2022-05-15 20:29, Pat Maddox wrote:I am writing software that I would eventually like to install on FreeBSD. I'm currently stuck trying to write a Makefile that will point to my local git dir, so I can build and install it while I'm developing. All of the finished Makefiles reference tar packages, which makes sense. But when I'm actively developing, I don't want to commit the code, push it, have it built, update the makefile withYou can perform make out of tree build/installs w/o issue. The ports infrastructure will post a couple of warnings. But nothing to stop you from development. I do it outthe commit, and make.Does anyone know of a way to override options to a port's Makefile to point to a local directory on disk? I want to run "sudo make install" and "make package" from my development directory, using the same Makefile that would be in the ports tree.of ~/DEV/<category>/port-im-developing all the time. HTH ChrisPatCool, how do I do that?Here’s the Makefile in my project directory: https://gist.github.com/patmaddox/d5d8a0e0df656072749bf18f7f634ae9When I run `make install`, it downloads the zip from GitHub. That makes sense, because that’s what it’s configured to do, and I haven’t passed in any options to find the source elsewhere.I don’t know how to tell make not to fetch & extract, because I already have the source locally.PatWell I wrote a script that generates the folder structure and zip that make expects, and moves it into place: https://gist.github.com/patmaddox/d5d8a0e0df656072749bf18f7f634ae9#file-build-shI figure there’s gotta be some sort of `make SRCDIR=. install` to bypass fetch &extract, but this will do for now.
OK I haven't tested your (proposed) port. But your Makefile is fine as it is.You WILL, however require a distinfo && likely a pkg-plist BEFORE you attempt your development target. You'll also need to add your port to the Makefile within your
chosen category.For example. You already have a recent copy of /usr/ports within your dev env (jail(8) or whatever). Within your home directory (within your jail or whatever) you have
DEV/<category>/you-port-nameYou can test your development env by cd'ing to ~/DEV/<category>/you-port-name &&
performing make -DBATCH <some-make-target>If the ports env only returns a couple WARN(s) but continues build to completion. You're essentially good-to-go. HOWEVER, if the ports framework sends ERROR(s). It ends there. It will likely be caused by the missing entry within your chosen category. So open the /usr/ports/category/Makefile within your dev env and add your port (NOTE: their in alphabetical order). Then try again. TBH most all of this can be figured out by becoming
familiar with the Porters Handbook[1]. ;-) HTH Chris 1) https://docs.freebsd.org/en/books/porters-handbook/
Pat
0xBDE49540.asc
Description: application/pgp-keys
