defining dependencies for ports
Gerard Seibert
gerard at seibercom.net
Mon Jul 17 16:33:39 UTC 2006
mike wrote:
> Alex Zbyslaw wrote:
> > Owen G wrote:
> >
> >> You are aware that there exists
> >> 1. ports = source = must be compiled = "make install" (as above)
> >> 2. packages = executable packages = precompiled = "pkgadd -r . . ."
> >>
> >>
> >>
> > Whilst your description of ports and packages is correct...
> >
> >> So unless you're running a custom kernel, there's no advantage of ports
> >> over packages.
> >>
> > ...this is not.
> >
> > Ports are useful :
> >
> > 1) For any package with multiple compile-time options (e.g. apache)
> > where *you* want to choose those options rather than be stuck with the
> > ones the *package* was compiled with (c.f. Linux rpms)
> >
> > 2) If you want to be as up-to-date as possible - packages take time
> > to pre-compile and can lag the ports tree a little
> >
> > 3) If require the source code (for maintaining local patches;
> > because another port or some other local software needs it)
> >
> > I'm not aware that a custom kernel has any relevance whatsoever.
> > Perhaps you meant "unless you have used some cpu-specific compile flag
> > in make.conf" but I don't think even that would make a difference.
> >
> > Also, ports and packages are managed much more easily with a tool like
> > portupgrade or portmanager. I prefer the former because it has never
> > core-dumped on me, and feels more robust and well maintained.
> >
> > If you have multiple machines you keep in sync, then portupgrade -p or
> > pkg_create -b can be used to create local packages with *your*
> > compile-time options that other local machines can use.
> >
> > --Alex
>
> Thanks for the responses. This is /exactly/ why I'm using ports instead
> of packages, because I want to have things compiled with my options.
> However, the reason for my original post was that I'm having a hard time
> customizing this, for java/Eclipse specifically. I try "make config"
> but it doesn't show anything. So how do I go about cutting out or
> changing some of the dependencies that I don't want if there are no
> OPTIONS defined?
>
> And I can't find where these dependencies are even defined in this
> case. I grep everything in /usr/ports/java/eclipse and don't see
> references to most of the dependencies. Where are they defined if not
> in the BUILD_DEPENDS, etc. variables of the Makefile?
>
> thanks again. I'm learning a lot in this process.
Check out the java/eclipse Makefile. It has build options in it that are
configurable. You can do that either by entering them on the command
line, or by placing them in the /etc/make.conf file like this:
# java/eclipse section
.if $(.CURDIR:M*/java/eclipse)
# Your options are placed here.
# I usually place them one per line for easier reading
.endif
I like the /etc/make.conf option myself since I do not have to remember
to enter the options if I update the port. Also, both portupgrade and
portmanager will honor any instructions in the /etc/make.conf file.
Unlike Mike, I prefer 'portmanager' since it seems to do a more through
update of a ports dependencies, etc., but that is just my opinion.
Ciao
--
Gerard Seibert
gerard at seibercom.net
More information about the freebsd-questions
mailing list