Commit Graph

318 Commits

Author SHA1 Message Date
bdrewery
2e1c8d943d Avoid sub-shell for realpath(1) for bmake by using its built-in :tA.
MFC after:	2 weeks
Approved by:	portmgr (implicit)
2015-09-03 17:01:58 +00:00
will
b98c483e82 Revise r272363 by collapsing the tests into a for loop.
This has the side effect of ensuring that realpath is also run for the
nominal case of PORTSDIR=/usr/ports (assuming .CURDIR is a ports directory
that relies on /usr/ports but is not rooted in it).  This ensures that any
generated PORTSDIR used is always the actual location.

Submitted by:	jkim (different implementation)
2014-10-01 20:52:08 +00:00
will
2a6acc2651 Always resolve PORTSDIR to absolute paths using realpath(1).
Reported by:	madpilot
Reviewed by:	bapt
X-MFC-With:	272282
2014-10-01 15:02:37 +00:00
will
57c53dc77d Search for the nearest PORTSDIR where Mk/bsd.ports.mk exists, from .CURDIR.
This will only take effect if PORTSDIR is not set, as previously supported.

Use .if exists(), for four specific possibilities relative to .CURDIR:
., .., ../.., and ../../..  The fourth possibility is primarily in case
ports ever grows a third level.  If none of these paths exist, fall back to
the old default of /usr/ports.

This removes the need to set PORTSDIR explicitly (or via wrapper script) if
one is running out of a ports tree that is not in /usr/ports, but in a
home directory.

Reviewed by:	bapt, bdrewery (older version)
CR:		D799
MFC after:	1 week
Sponsored by:	Spectra Logic
2014-09-29 15:05:23 +00:00
crees
1e0c79103a Revert unapproved commit to bsd.port.mk.
This would have had more discussion, but it was explicitly rejected at submission by portmgr:

http://lists.freebsd.org/pipermail/freebsd-ports/2011-September/070591.html
2011-10-08 18:25:01 +00:00
stas
a554b0aa74 - Add a couple of more sed subsitutions needed to get the correct
libtool.m4.  With these fixes libtool will correctly indentify the
  system as ELF (and not a.out).
- While here, change the substitutions so they're still correctly
  match freebsd1.x, freebsd2.x etc.
2011-10-08 00:01:17 +00:00
stas
9b1ae764a6 - ${WRKSRC} might be missing when the autotools fixup is running.
Account for this.

Reported by:	Mykola Dzham <i@levsha.me>
2011-10-07 23:43:51 +00:00
jilles
943e8837f5 Work around the autotools problem with the 10.0 version.
With this, I can build various ports on a 10.0-CURRENT system without
hacking or hiding the version number.

This commit should be reverted when there is a cleaner fix in autotools
and/or ports/Mk/bsd.port.mk.

The original patch is from Ed Schouten but needed some additions.
2011-10-04 22:23:00 +00:00
netchild
e14ccde629 WITH_CTF can now be specified in src.conf (not recommended, there
are some problems with static executables), make.conf (would also
affect ports which do not use GNU make and do not override the
compile targets) or in the kernel config (via "makeoptions
WITH_CTF=yes").

Additional (related) changes:
 - propagate WITH_CTF to module builds
 - do not add -g to the linker flags, it's a noop there anyway
   (at least according to the man page of ld)
 - do not add -g to CFLAGS unconditionally
   we need to have a look if it is really needed (IMO not) or if there
   is a way to add it only when WITH_CTF is used

Note: ctfconvert / ctfmerge lines will not appear in the build output,
to protect the innocent (those which do not build with WITH_CTF would
see the shell-test and may think WITH_CTF is used).

Reviewed by:	imp, jhb, scottl (earlier version)
Discussed on:	arch@
2010-04-02 06:55:31 +00:00
ru
5a9798235e Try harder to not leak src/ build stuff into ports/ environment
by not exposing the MK_* variables that were designed for src/.

Requested by:	many
2006-11-19 16:28:52 +00:00
obrien
1b5c41598b Don't read in /etc/src.conf when building ports.
Reported by:	obrien
Submitted by:	ru
2006-08-24 18:04:49 +00:00
eik
311c5a0637 Enable testing of customized variants of bsd.port.mk and
bsd.port.subdir.mk, without the overhead of an additional ports tree.

Use
  make BSDPORTMK='${PORTSDIR}/My.Mk/bsd.port.mk' target
and
  make BSDPORTSUBDIRMK='${PORTSDIR}/My.Mk/bsd.port.subdir.mk' target

to build with the alternate versions.

MFC after:	3 days
2004-07-02 20:47:18 +00:00
ru
8dda548e4e Style. 2002-04-19 07:43:50 +00:00
ru
57f0c44bf3 Fix the bsd.port.mk breakage caused by sys.mk,v 1.60 commit.
Submitted by:	fenner
2002-04-19 07:40:34 +00:00
peter
a40c5e3730 Add $FreeBSD$ 2000-12-29 01:23:57 +00:00
asami
af2672e9d7 Move bsd.port.*mk to under ${PORTSDIR}/Mk (already repository copied).
There are only skeletons left here; they merely serve as a backup to
include the real versions under ${PORTSDIR}/Mk while we update the ports
tree to include them directly.
1999-01-26 03:40:12 +00:00
asami
7e3167b85f (1) Add gnome master sites.
Submitted by:	Jeremy Lea <reg@shale.csir.co.za>

(2) Change backup distfiles dir to reflect change in ftp.freebsd.org's
    reorganization.
1999-01-20 01:55:05 +00:00
asami
5c22d2a93f (1) Add ONLY_FOR_ARCHS and NOT_FOR_ARCHS. They are list of architecture names
(as given by "uname -m") by which you can specify which
    architectures the port is appropriate for.
Idea borrowed from:	NetBSD, OpenBSD
Reviewed by:		simokawa

(2) New variable PERL_ARCH (value: ${ARCH}-freebsd) that is also
    passed to ${PLIST_SUB}.  Use it to simplify PLISTs.
Submitted by:	simokawa

(3) Check OSVERSION as well as existence of /usr/bin/perl5 before
    assuming USE_PERL5 is to be a no-op.  Basically to allow building
    of 2.2-INDEX on a 3.0 machine.

(4) Change USE_QT definition to use new shlib version (2) and
    directory (qt142).

(5) Uncomment temporary Motif dependency for parallel package
    building.  We still need to figure out a way to install the pkg
    database files, but it's a start.

(6) Move EXTRACT_SUFX up into the pre.mk area so it can be used in
    exists() tests.

(7) Add MASTER_SITE_COMP_SOURCES.  Note that this is defined like
    "/pub/usenet/comp.sources.%SUBDIR%/" so you can specify something
    like "SUBDIR=x/volume18" to select the newsgroup as well as
    subdirectory name.
Submitted by:	"distfiles" fenner

(8) Other misc. master site cleanup.
Submitted by:	"distfiles" fenner

(9) New target "maintainer".  I intend to use it to auto-mail failure
    build failure notices to the maintainer.
1999-01-11 13:04:18 +00:00
asami
2da06b2895 (0) Fast INDEX generation. Only print out the directory name and
don't recurse in "make describe".  The new INDEX target in
    ports/Makefile invokes a perl script to recurse and convert them
    into package names.

    While I'm here, change the name of targets and move them around a
    little bit for the sake of consistency.

    It is also probably worth noting here that the meaning of the
    "build dependency" list in INDEX has been changed slightly
    changed.  The old list was "build depends and its build depends"
    -- not particularly useful if you had things like autoconf, which
    run-depend on gm4 (you install all the things listed here and
    you'll get an autoconf that won't run).

    It is now "build depends and its run depends" -- you install
    everything listed here, and you'll be able to build the port.
Submitted by:	steve

(0') Fast README.html generation.  It uses ports/INDEX to find
    dependencies instead of embarking on to a recursive loop.
Submitted by:	steve

(1) Remove NO_WRKDIR and NO_EXTRACT.  Their functionality are easily
    replacable with NO_WRKSUBDIR=t and EXTRACT_ONLY= (nothing on right
    side), and they get in the way of read-only port trees.

(2) Surround first few variable definitions with ".if !defined()".
    This will make cross-compilation easier and also speed up make
    processes.

(3) Call sysctl with absolute path.  Prefer the one in /sbin over the
    one in /usr/sbin.

(4) Add four new variables

    PKGINSTALL?=	${PKGDIR}/INSTALL
    PKGDEINSTALL?=	${PKGDIR}/DEINSTALL
    PKGREQ?=		${PKGDIR}/REQ
    PKGMESSAGE?=	${PKGDIR}/MESSAGE

    and use them in PKG_ARGS.  Frobbing with PKG_ARGS directly is
    strongly discouraged.

(5) Change PKG_SUFX to ".tar" (instead of ".tgz") if PKG_NOCOMPRESS is
    defined.  This is intended only for our own use.

(6) Add more sites to MASTER_SITE_GNU.
Submitted by:	billf

(7) Override MANUAL_PACKAGE_BUILD if PARALLEL_PACKAGE_BUILD is
    defined.  This is intended only for our own use.

(8) Add new target "ignorelist" which will print out the package name
    if the port is not going to be built on this machine.  This is
    intended only for our own use.

(9) Make mtree a little quieter.
1998-12-12 07:39:30 +00:00
asami
5739b5d848 Change USE_QT to use version 1.41. I know this is a little premature,
but I'd like as many people to test this before the release.
1998-11-25 00:12:27 +00:00
asami
58554c66d9 (1) Remove LOOP_VAR and LOOP_OPTIONS. It's a hack and just too many things
break one way or another.  With it goes the package-loop and the
    describe loop.

(2) Add new variable MASTERDIR to make it easier to share files between ports.
    bsd.port.mk will find things like ${PKGDIR} underneath
    ${MASTERDIR} (which defaults to ${.CURDIR}).

(3) Do not allow MD5_FILE to be renamed.  Funny things can happen if
    you do that.

(4) Use a few more absolute paths in the bsd.port.pre.mk part.  I
    can't use absolute paths for sysctl because it moved recently.
1998-11-20 04:00:38 +00:00
asami
d3a75f8306 Add EXTRA_PKG_FLAGS to PKG_FLAGS. You can now add arguments to pkg_create
without redefining PKG_FLAGS after bsd.port.mk.
1998-11-14 09:45:09 +00:00
asami
7aecd96aa5 Make bsd.port.mk includable in two phases. bsd.port.pre.mk defines only
a few variables that could be used in the port Makefile for ".if exists()"
tests.  bsd.port.post.mk defines the rest.

Note: if you define USE_X_PREFIX or USE_IMAKE, put it before including
bsd.port.pre.mk.  These are the only two variables used in the first part.

In reality, bsd.port.pre.mk and bsd.port.post.mk just include bsd.port.mk
with special variables to turn part of it off.
1998-11-11 05:21:29 +00:00
asami
eca140cce2 (1) New variable MAKE_ARGS: will be appended to build/install make argument
list.  The old MAKE_FLAGS was a little hard to use since it had a weird
    default ("-f").
Suggested by:	Shigeyuki FUKUSHIMA <shige@kuis.kyoto-u.ac.jp>

(2) Add new targets clean-restricted and clean-for-cdrom, which will
    delete RESTRICTED and NO_CDROM packages and distfiles from the top.
Reviewed by:	jkh

(3) Add depends to list of things to recurse on.  It will help people
    who are trying to fetch some ports plus their dependencies.

Requested by:	Chris Dillon <cdillon@wolves.k12.mo.us>
1998-11-08 10:29:53 +00:00
asami
31c8a98d46 (1) Add new variables LOOP_VAR and LOOP_OPTIONS to implement building several
packages from a single port.  LOOP_VAR is the name of the variable
    and LOOP_OPTIONS is a space-separated list of values it should
    take.  When these are set, the target "package-loop" will go
    through a clean and package loop for all the options.  The
    "package-loop" target is defined as "package" when LOOP_VAR is not
    defined, so if you are in the business for building packages, you
    should use "package-loop" all the time.  (This target is added to
    bsd.port.subdir.mk too.)

    Also, the "describe" target prints out multiple lines so that all
    options will go into the INDEX.  (In other words, if you define
    these variables, INDEX is going to look real silly if you don't
    put ${${LOOP_VAR}} in PKGNAME.)

Seconded by:	obrien ("ANYTHING")

(2) Turn off regexp support for LIB_DEPENDS.  It is a fixed string of
    the form <NAME>.<VER> now.
Tested by:	several rounds of complete package builds

(3) Check checksum even if NO_EXTRACT is defined.

(4) Cosmetic fix for message in MANUAL_PACKAGE_BUILD case.
1998-10-30 08:28:02 +00:00
asami
7e2894fecf Add new variable NO_FILTER_SHLIBS -- it will disable ELF <-> a.out shlib
name conversion.  Use it for binary ports that come with its own private
shlib dirs, ports that install linux compatibility libraries (thus following
their naming conventions and not ours), etc.

Reviewed by:	Martin Cracauer <cracauer@FreeBSD.ORG>
1998-10-09 01:27:21 +00:00
asami
73c7902164 (1) Add new variable ${PERL} which is equal to ${PERL5} but without the
version number part (i.e., "<directory>/perl").  Use this to
    substitute #! lines in your perl5 scripts.

Requested and reviewed by:	ache

(2) Add new variable WRKDIRPREFIX (defaults to "").  The "work"
    directories are now in ${WRKDIRPREFIX}${.CURDIR}/work by default.
    You can have a read-only ports tree (modulo any broken ports that
    write something to places other than ${WRKDIR}) by setting this to
    a writable location.

    Ports that set WRKDIR explicitly should append this to front so
    they will work when the user has WRKDIRPREFIX set.

Reviewed by:	Toshihiko Kodama <kodama@ayame.mfd.cs.fujitsu.co.jp>
1998-10-06 21:12:14 +00:00
asami
8b4d7d677b (1) Add BROKEN_ELF variable, similar to BROKEN. (There is no BROKEN_AOUT,
since ports are not supposed to be broken during the process of
    conversion to ELF -- please proceed with caution.)

(2) Support for checking file size before fetching.  The essential
    parts are commented out for now, so I won't lose the submission
    while we discuss how to do it.
Submitted by:	se (mostly)

(3) Don't run "fetch" twice.  It was due to the change in checksum
    target chaining.  It used to be fetch -> checksum -> extract,
    after 1.285 it was fetch -> checksum and checksum was also
    explicitly called from extract.  Fix it by not calling fetch from
    checksum when it's invoked by extract.
Noticed by:	pre-fetch target of lesstif being run twice

(4) Don't try to remove non-existent distfiles and patchfiles in
    distclean.
Submitted by:	anto@netscape.net
PR:		7988
1998-09-22 23:58:49 +00:00
asami
f98d75eac3 Yikes, put .endif in wrong place. 1998-09-17 01:22:05 +00:00
asami
f1f961d057 Remove shlib minor if PORTOBJFORMAT=elf. 1998-09-17 01:00:23 +00:00
asami
815048f88c (1) Pass PORTOBJFORMAT in SCRIPTS_ENV too.
Submitted by:	"Eugene M. Kim" <gene@nttlabs.com>

(2) Check for exact version of perl5 in /usr/bin and exit with error
    message if USE_PERL5 is defined and version does not match
    ${PERL_VERSION}.

(3) Note LIB_DEPENDS should not have any regular expressions.  Remove
    those in USE_XLIB and USE_QT.
1998-09-16 12:04:38 +00:00
asami
62d4a8145e (1) Add MLINKS support.
Submitted by:	hoek

(2) ELF support.
 2a. Variable PORTOBJFORMAT specifies the object format of the system.
     It is passed down to configure/make via CONFIGURE_ENV/MAKE_ENV,
     and is given to generate-plist via PLIST_SUB.
 2b. In PLIST, substitute lines that end with "/libFOO.so.X" with
     "/libFOO.so.X.0".  (This means PLISTs should only list ELF
     libraries.)
Reviewed by:	jb, jdp, hoek, jseger, steve

(3) Perl5-in-system support.  Basically turns USE_PERL5 into a no-op
    if there exists a "/usr/bin/perl5".  Also fix prior breakage by
    dima (${PREFIX} => ${LOCALBASE} in perl5 path).
Reviewed by:	markm (sort of)

(4) Install requirement file as "+REQUIRE" so it will be executed
    correctly by pkg_delete.
Reported by:	Shigeyuki FUKUSHIMA <shige@kuis.kyoto-u.ac.jp>

(5) Do not disable checksum and makesum when NO_EXTRACT is set.
Pointed out by:	hoek and kiri, among other people
1998-09-10 06:38:02 +00:00
dima
3ecbceb35a Introduce PERL5 variable.
It's gonna be used in all p5- ports.

Reviewed by:	asami
1998-08-28 18:41:04 +00:00
asami
25fd175f46 Hope I haven't missed anything or forgotten to credit anybody. (By
the way, most of the things below are "Reviewed by: hoek" as well.)

The changes are (roughly in order of appearance):

(1) Revamp comments at beginning of file.  Major rewrites.  Reorder
    them into more relevant sections.  Make clear which ones are user
    variables and not to be set in ports' Makefiles.
Reviewed by:	hoek (well, he's the only one who sent any comments)

(2) Include ${.CURDIR}/Makefile.local if it exists.  This is a local
    configuration file (ala rc.conf.local and make.conf.local) so
    please do not commit a file with this name to the repository.
Suggested by:	dillon

(3) MANCOMPRESSED now takes three possible values: "yes", "no" and
    "maybe".  (It used to be a binary variable -- the old behavior is
    now accomplished by "MANCOMPRESSED=yes".  Ports that defined this
    variable to other values have been corrected.)

    "yes" means the manpages are installed compressed, "no" means they
    are not, and "maybe" means the port already respects the value of
    NOMANCOMPRESS.  The default is "yes" for USE_IMAKE ports without
    NO_INSTALL_MANPAGES, and "no" otherwise.

    Add "compress-man" target and move manpage {,de}compression there.

Reviewed by:	hoek etc. and a full build of the ports tree

(4) Add LIBDIR="${LIBDIR}" to MAKE_ENV.  Makes easier to "fix" ports
    for /usr/lib/aout mess.
Submitted by:	ohashi@mickey.ai.kyutech.ac.jp (Takeshi Ohashi)

(5) Change ${TMPPLIST} from ${WRKDIR}/PLIST.mktmp to
    ${WRKDIR}/.PLIST.mktmp.
Suggested by:		hoek
Strongly seconded by:	steve

(6) Change a couple more relative pathnames to absolute ones.
Submitted by:	hoek

(7) Move checksum into real-extract.

(8) Change way rules are chained.  Instead of:

build: configure ${BUILD_COOKIE}
${BUILD_COOKIE}:
	@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build

    we now have

build: ${BUILD_COOKIE}
${BUILD_COOKIE}:
	@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} configure
	@cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} real-build

    Other than being more PC (pmake clean), this really speeds up
    skipping ports already built.  For instance, "make package" on a
    fully packaged games subtree used to take 269 seconds on average,
    now it's 45 seconds on average.

    The flip side of this is that it will create more processes when
    the targets actually chain, but when you're actually compiling
    things, your make is creating half a bazzilion processes anyway so
    I don't think it matters.

(9) ${TMPPLIST} is now a real dependency.  Create "generate-plist"
    target to generate ${TMPPLIST}.  Make sure it's called when needed
    (usually between do-install and post-install), and that the
    required files exist.

(10) Change some messages so we can tell where "make index" failed.

(11) Check if LIB_DEPENDS really generated the required shared lib or
     not.
Seconded by: "Brent J. Nordquist" <bjn@visi.com>
1998-08-27 00:18:50 +00:00
markm
4c46d76ffc Bump version number for latest perl 1998-08-15 17:34:00 +00:00
asami
c07d751872 Merge 1.227.2.45 (perl version substitution in PLIST). 1998-08-12 09:47:47 +00:00
asami
f288fd5d96 Merge 1.227.2.44. 1998-08-12 01:47:47 +00:00
obrien
c522d9fc81 I presume Satoshi wanted `uname -r'' for OSREL not `uname -s''
Found by:	gcc28 port
1998-08-10 04:02:50 +00:00
markm
d99e0e91df Update for Perl 5.005_01 1998-08-06 11:43:11 +00:00
asami
8d4f23abe9 (1) Rename variable "USE_X11" to "USE_X_PREFIX" to make clearer what it
means (change PREFIX to ${X11BASE}) and add a new variable USE_X11
    which means "this port requires the X window system (actually the
    library)".  USE_X_PREFIX implies USE_X11.  USE_X11 adds a
    LIB_DEPENDS to libX11 with the x11/XFree86 port.
Reviewed by:	the ports list, hoek in particular

(2) Remove NO_CONFIGURE and NO_PATCH, which never meant anything.
    Yell if they are defined.
Reviewed by:	the ports list

(3) Add new variable OSREL, which is automatically set to the
    numeric OS version (e.g., 2.2.1, 3.0).  It can be used to refer to
    files in gcc installations, for instance.

(4) Finally remove EXEC_DEPENDS hack after all these years.
Submitted by:	hoek

(5) Put quotes around some echo ${*_DEPENDS} statements so they won't
    blow up when the variables include regular expressions like
    "qt\\.1\\.\\\(33\\\|40\\\):${PORTSDIR}/x11/qt140".
1998-08-05 09:29:13 +00:00
obrien
8e80b10039 Add var "CD_MOUNTPT" set to /cdrom by default.
Ok'ed by:  discussed with Satoshi at USENIX
1998-07-28 22:27:16 +00:00
se
95aad7ad56 Add US Mirror site to MASTER_SITE_KDE. 1998-07-13 23:39:02 +00:00
jkh
2a7e0ddebf Complete back-out of the bsd.locale.mk change.
OK'd by:	asami
1998-05-20 22:27:18 +00:00
thepish
3b0c06fb6c PR: misc/6031
Patch applied as per PR - enables preferential fetch from local mirrors
1998-05-19 13:02:04 +00:00
steve
7ca8d65654 Change a couple 'make' to '${MAKE}'.
PR:		6341
Submitted by:	Niall Smart <rotel@indigo.ie>
1998-05-04 04:01:26 +00:00
asami
553a1bce6d Don't delete "Latest" link if NO_LATEST_LINK is set. 1998-03-24 03:34:51 +00:00
asami
a7987039c3 Add ${CXX} to list of variables passed in the environment when
invoking configure.

Submitted by:	obrien
1998-03-07 04:40:19 +00:00
asami
7d4af6ecd6 (1) Don't disable "deinstall" if IGNORE is set.
I don't know what the hell I was thinking in:	rev. 1.268

(2) Create ${PREFIX} before calling mtree if it doesn't exist.  This
    may not be the best solution, but pre-install is called after
    mtree so there really isn't any way to fix this from the port
    Makefiles and thus has to be done here.
1998-02-19 06:49:27 +00:00
asami
e36340457e (1) Improve the obsolete tcl/tk detection and dignosis.
Reviewed by:	the lists

(2) Change MASTER_SITE_CTAN to reflect current reality.
Submitted by:	fenner

(3) Add new port variable NO_LATEST_LINK.  When this is set, the
    "Latest" package symlink is not created.  Use this for ports that
    are betas when there is also a port for an older, more stable,
    version.

(4) Don't be too stupid about "make deinstall".
Submitted by:	fenner
1998-02-04 10:36:56 +00:00
obrien
247217cd33 Allow package building in current directory again. 1998-01-31 20:59:30 +00:00