[yast-devel] make_wrapper for CMake vs. Autotools Projects
New: http://svn.opensuse.org/svn/yast/trunk/devtools/yast2/make_wrapper (or: svn up devtools) This is a script you can use to make life more convenient when working with both CMake and autotools based projects: CMake is intended for building out of the source tree. Autotools (and pure "make") build in the same tree where the source files are. If you have both kinds of projects, you always have to keep in mind where to "cd" to (or to what shell window to go) to invoke "make". And for CMake out-of-source-tree building it's really hard to invoke "make" directly from the editor of your choice so it can immediately load the source file where the compiler reported an error and fix it. Coolo suggested to use the "makeobj" script from the KDE 4 SDK, but not only does this require the user to set environment variables where the build tree is, it also does not seem to work well in mixed CMake / Autotools environments. So I wrote this "make_wrapper" script that checks the current directory for a file "Makefile" and call "make" there directly if there is one. If there is none, it checks ../build/Makefile, then ../../build/Makefile etc. All you have to do is stick to that convention to name the CMake out-of-source-tree build directory "build" (configurable in the script of course) and simply call "make_wrapper" rather than "make". The toplevel Makefile.cvs in libzypp and yast2-qt4 support that anyway: They create a "build" directory and invoke "cmake" there. Emacs users might want to set their "compile-command" variable in ~/.emacs : (setq compile-command "make_wrapper -k && sudo make_wrapper install") or, when using "icecream" distributed compilation: (setq compile-command "make_wrapper -k -j20 && sudo make_wrapper install") CU -- Stefan Hundhammer <sh@suse.de> Penguin by conviction. YaST2 Development SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) Nürnberg, Germany -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
* Stefan Hundhammer <sh@suse.de> [2007-12-12 18:18]:
This is a script you can use to make life more convenient when working with both CMake and autotools based projects:
CMake is intended for building out of the source tree. Autotools (and pure "make") build in the same tree where the source files are.
But you can also build auto-of-tree with autotools. Thanks, Bernhard -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
On Wednesday 12 December 2007 18:22, Bernhard Walle wrote:
CMake is intended for building out of the source tree. Autotools (and pure "make") build in the same tree where the source files are.
But you can also build auto-of-tree with autotools.
Sure you can, but it's not the default (and not particularly useful, either). But that's beyond the point. CU -- Stefan Hundhammer <sh@suse.de> Penguin by conviction. YaST2 Development SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) Nürnberg, Germany -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org For additional commands, e-mail: yast-devel+help@opensuse.org
participants (2)
-
Bernhard Walle
-
Stefan Hundhammer