Make systems for the sane



Greetings;
I could not help but notice your pain at using autotools. I have used
them for a number of other projects in the past and once set up they are
great but I agree they are a major pain when you have to reconfigure the
project a lot...

In any event, I am sure this is not an option but a make system I use
that is super-easy to learn and works pretty well on a variety of
platforms is CMake. I will not belabor the point but here is all it
takes to make a sample project on Linux, windows and mac with a shared
library and an executable to call/test it:
cmake_minimum_required(VERSION 2.6)
PROJECT(dvdhash)
ADD_DEFINITIONS( -Wall -ggdb)
ADD_LIBRARY( dvdhash SHARED dvdhash.cpp )
ADD_EXECUTABLE(dvdhash_test dvdhash_main.cpp)
TARGET_LINK_LIBRARIES(dvdhash_test dvdhash dvdread)

On Linux it makes dvdhash_test (executable) and libdvdhash.so. On
Windows (from the same source) it makes dvdhash.exe and dvdhash.dll. On
Mac it makes a dynlib (whatever; I don't do Mac so much anymore) and
dvdhash as an executable. I wrote a tiny python script to jumptstart
projects so if I want to test something out quickly, I can create a
directory, cd into it, call my script, answer a few questions and in
seconds have a complete project as outlined above (shared library on
Linux along with a test-harness), skeletal C++ code and the whole smash
is built and executable in like 15 seconds. The point is I can go from
nothing to running code that I can start hanging my test code off of in
no time. 

Anyhow if it helps someone cool, check out www.cmake.org. This is about
the most painless make system I have seen...



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]