Better "make clean"? Or easier configuration?

Linus Torvalds torvalds at linux-foundation.org
Wed Apr 20 16:31:13 PDT 2016


So Fedora just upgraded their qt version today (or at least recently).

After that, building subsurface gets me

  make[2]: *** No rule to make target
'/usr/lib64/libQt5Concurrent.so.5.5.1', needed by 'subsurface'.
      Stop.

Oops. Ok, I'll just do "make clean".

That doesn't help, same error.

There's no "distclean" or similar target, but I *can* basically just do

  ccmake .

and just hit 'c' and 'g' to (re-)configure and generate, and that does
fix the problem.

But this points out that it looks like even just the configuration
phase ends up creating dependencies that can change.

Normally, I'd just do "git clean -dqfx" and blow everything away,
which is what I do for the kernel, but the subsurface configuration
phase is *so* confusing that I absolutely hate doing that. The build
script does that, but it does so much else too..

For example, if you actually do "git clean -dqfx" to blow everything
away, and then do

   mkdir build
   cd build
   cmake ..

it will fail on grantlee. I'm not sure why. I get

  CMake Error at cmake/Modules/HandleFindGrantlee.cmake:10 (find_package):
    By not providing "FindGrantlee5.cmake" in CMAKE_MODULE_PATH this project
    has asked CMake to find a package configuration file provided by
    "Grantlee5", but CMake did not find one.

even though I have grantlee built and installed (previously) using the
build script. I'm not sure why it finds libdivecomputer and marble in
the install-root directory, but not grantlee..

Yes, yes, I can fix this, but it sure isn't obvious.. Is there an
_obvious_ configuration setup, or perhaps just a better :"make clean"?
that leaves the configuration but re-builds it?

           Linus


More information about the subsurface mailing list