Opened 9 years ago

Last modified 2 years ago

#28001 new enhancement

MacPorts base could support out-of-source builds, or tell user that it doesn't

Reported by: julians37@… Owned by: macports-tickets@…
Priority: Low Milestone:
Component: base Version: 1.9.2
Keywords: Cc: cooljeanius (Eric Gallager), ryandesign (Ryan Schmidt), neverpanic (Clemens Lang)
Port:

Description

Packages that have been properly autoconfiscated will usually support out-of-source build, i.e. the following will work:

  cd /some/build/directory
  /path/to/configure
  make install

For MacPorts base it doesn't and fails with the somewhat obscure error message

Makefile:32: Mk/macports.subdir.mk: No such file or directory

It would be nice if MacPorts would either support building in a directory other than the source directory, or alternatively fail fast (in configure) with a more informative error message.

Change History (3)

comment:1 Changed 6 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

comment:2 Changed 6 years ago by neverpanic (Clemens Lang)

Most of the problems caused by out-of-source building have been fixed in r117615, r117616, r117618, r117619, r117620 and r117621.

Out-of-source builds currently fail to install because the Tcl builtin pkg_mkIndex we're currently using to generate pkgIndex.tcl doesn't support analyzing files from multiple directories.

comment:3 in reply to:  2 Changed 2 years ago by ryandesign (Ryan Schmidt)

Cc: ryandesign neverpanic added

The problem I'm currently seeing with out-of-source make install (after successful ../configure --prefix=/tmp/mm --with-install-user=$(id -un) and make) is:

for f in archive_sites.conf macports.conf pubkeys.conf sources.conf variants.conf; do \
		/opt/local/bin/ginstall -c -o "rschmidt" -g "admin" -m 444 "$f" "/tmp/mm/etc/macports/${f}.default"; \
		if test ! -e "/tmp/mm/etc/macports/$f" ; then \
			set -x; \
			/opt/local/bin/ginstall -c -o "rschmidt" -g "admin" -m 644 "$f" "/tmp/mm/etc/macports"; \
		fi; \
	done
ginstall: cannot stat 'archive_sites.conf': No such file or directory
+ /opt/local/bin/ginstall -c -o rschmidt -g admin -m 644 archive_sites.conf /tmp/mm/etc/macports
ginstall: cannot stat 'archive_sites.conf': No such file or directory

etc. for the other conf files.

Note: See TracTickets for help on using tickets.