XQuartz icon indicating copy to clipboard operation
XQuartz copied to clipboard

./compile.sh always seems to rebuild absolutely everything ...

Open kencu opened this issue 4 years ago • 4 comments

Is it just me? It seems that when subprojects have been built, and are without any changes, running ./compile.sh to fix up some issue (eg when I was working on do_meson_build) would rebuild the entire tree from the start every time...

I worked around it with some hacking in compile.sh, but seems like I am missing something perhaps...

kencu avatar Feb 15 '21 21:02 kencu

Yeah. it just runs through and rebuilds everyhing. I usually hack in an 'if false ; then ... fi' if I need to skip things. It oculd certainly be better. =/

jeremyhu avatar Feb 15 '21 23:02 jeremyhu

Would there be interest in build system improvements that make the following changes?

  • Incremental builds
  • Package manager agnostic
  • No sudo
  • Completely in tree dev builds (don't touch /opt, /Applications, or anything outside of $SRCROOT)
  • Document the build system

I would be interested in contributing those changes. I believe they would help current maintainers and contributors as well as making it easier for newcomers.

eddieh avatar Jul 25 '21 20:07 eddieh

Yes, absolutely. Thanks!

jeremyhu avatar Jul 27 '21 16:07 jeremyhu

Just for anyone reading this in the meantime, the current MacPorts installation already does not touch /Applications as it is, and if using sudo is an issue for you, you can edit install_or_update_macports.sh to install MacPorts into the current $SRCROOT and remove the sudo use from the script in a few seconds.

Having a fully-package-manager agnostic build tools setup is a worthy goal. python39 alone has a fair few supporting ports

% port rdeps python39
The following ports are dependencies of python39 @3.9.6_0:
  xz
    libiconv
      gperf
    gettext
      ncurses
  pkgconfig
  bzip2
  expat
  libedit
  libffi
    autoconf
      m4
    automake
    libtool
      xattr
        unzip
    expect
      tcl
    dejagnu
  openssl
    zlib
  sqlite3
  python_select
  python3_select

and so there might be some work to do if the existing system tools aren't new enough.

kencu avatar Aug 01 '21 12:08 kencu