A faithful user of the todo.txt system of command line based todo list management for about a year now, I have recently fallen in love with a new command line based todo list application called simply Task, which was written by Paul Beckingham. He’s got a great screencast demo of it on YouTube which is of far more value than any description I can give here. I urge you to check it out at: http://www.youtube.com/watch?v=D2Kn4DMOVSw

On the todo.txt mailing list today, Dan DeLaiarro asked if someone could post a How To on compiling the package inside of Cygwin. What follows is my attempt at this. Forgive me if I’ve screwed it up. ;)

How to build Task in Cygwin

While I’m no Cygwin expert, I will attempt to describe, as simply as possible, how to compile and install the Task program in Cygwin. I encourage anybody to comment with any corrections or clarifications they might have. Clearly your mileage may vary - widely.

Step 1: Download the Task archive package (http://www.beckingham.net/task-1.0.1.tar.gz) and extract it into a folder of your choice.

Step 2: Ensure you have the tools in Cygwin to build a C++ program

Run Cygwin’s setup.exe file and click next through each stage to proceed to the package selection step.
Ensure you have the following packages installed, or select them for installation if you don’t. All of these selections are under the ‘Devel’ branch of the list. I may be wrong about the full list, but it’s what I have installed on my own install of Cygwin:

autoconf
automake1.9
binutils
gcc-core
gcc-g++
gcc-mingw-core
gcc-mingw-g++
make
mingw-runtime
 pkg-config

Click Next to download and install the packages.

Click Finish

Step 3: Compiling and Building the Package

**Note: The INSTALL text file that comes with the package (and with virtually any open source package) describes the build process in much more detail than I ever could - I recommend reading that.
Open up the cygwin shell.

cd into the folder where you extracted the Task files.

Type ‘./configure [enter]’ to configure the package

At this stage you may have to install additional packages to satisfy the requirements to build it. Hopefully not ;)

After the configuration script has finished, type ‘make [enter]’.

After the make command has completed, type ‘make install [enter]’.
Voila - Task should now be installed and available from your command line.

[update: forgot to include the ‘make’ package in the list of required packages in step 2.]