For 2023 - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.
Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!
I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
Ant and Make
In order to produce a file of answers
in many applications, you need to take several files of inputs
and run a program to generate the results. The inputs themselves may be answers produced by running further programs on further inputs, and so on until you have a whole huge tree of inputs that are used to produce a single (or relatively few) file of answers.
What do you do if an input is changed? Well - you have to run all the programs again and produce fresh intermediate answers, from which you can go on and produce new final results. If it's something you do frequently, you can automate the whole business through a shell script
or batch file.
But in a big system, you'll be repeating a lot of needless work in your shell script on many occasions. If only one input has been altered, it's unlikely that all the branches of your tree will need to be rebuilt - you'll really only need to rebuild the sections of the tree below where the inputs have changed and to do the whole thing could be a huge waste of resources.
and Make are tools that help you do only the work that you need. In both cases, you specify the structure of the build tree though:
• "target"s - the answer files - at all levels - that you'll be writing
• a number of "sources" for each target - input files which, if changed mean the target must be remade
• actions (commands) that need to be run to produce the target from the sources
Then, when you run your ant or make, it compares the timestamps on the source files with those on the current target if it exists, and runs the actions if necessary. Missing targets will always cause an action to be run, and targets that become new sources for further actions will trigger off that further action as well.
If you've defined your tree well in a file called build.xml
(ant) or makefile
, all you need do to modify your answer file is to make any appropriate changes to the input files and type ant
. Might take a while to set up in the first place, but once you've got a system running, the efficiency is unbelievable!
Ant is a Java tool and is used extensively in creating Java applications for the web - files such as .jar .war and .ear resources - for deployment through Tomcat, JBoss and other tools. Make is primarily a Unix / Linux tool that's traditionally used for building programs from sources, and installing those programs (written 2006-04-22, updated 2006-06-05)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesJ910 - Java - Introduction to AntA509 - Web Application Deployment - Java - Ant build tool 
Rake - a build system using code written in Ruby - (2011-02-03) 
Scons - a build system in Python - building hello world - (2016-10-29)A168 - Web Application Deployment - Compiler and development tools 
Compiling C programs with gcc - an overview - (2008-06-10) 
Make and makefiles - a commented example to help you learn - (2010-03-12) 
Make - automating the commands for building and installing - (2010-11-16) 
What is Make? - (2012-03-02) 
Makefile - some basics, and a demonstration - (2012-03-13) 
A Complete makefile example - (2012-03-14) 
Using Make for a distribution - (2012-03-17) 
Makefile variables - defined internally, from the command line and from the environment - (2012-03-22) 
Web Frameworks - nested templates - (2013-02-22) 
What is make? What is gcc? - (2015-11-28)
Some other Articles
Catch up weekendFor any North and West Wilts and Swindon ReadersIs than an uphill or downhill task?In the hospitality businessAnt and MakeThe on line booking experienceHealthier eatingTesting you Perl / PHP / MySQL / Tcl knowledgeAdding Virtual HostsThe call of nature
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page
This is a page archived from The Horse's Mouth at
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).