Python and Tcl - public course schedule [here]
Private courses on your site - see [here]
Please ask about maintenance training for Perl, PHP, Lua, etc
What is make? What is gcc?
is a tool which lets you define a whole series of commands you need to run to get from the basic data and program source files that you work on during development, or distribute to your technical customers into the final product / products that you need.
Typically and traditionally, make
reads a file called makefile
that takes a series of instructions on the commands that are used to make a "target" from a "dependency", and runs those instructions if (and only if) the target doesn't exist, or is older than any of its dependencies. The order of operations is taen into account, with some targets in a process being dependencies for the next stage of the process. Make is very clever in that it allows you to make a very limited number of changes in your sources, and will then only rerun the steps needed when your rebuild your final produt, skipping those unchanged. However, make
is only the pilot and not the aircraft - it only controls the work rather than doing the hard work, and it's of no use without its tools of trade such as gcc
is the tool which converts your C or C++ (or other language) into binary 'object' files for your target processor and operating system, then connects these object files and standard libraries together into a final executable program file. There are a number of intermediate steps (usually run in an automatic sequence), and the gcc
command bolts these steps together depending on command line options given to it, which can be long and complex. That's one of the reasons you need a script (or, better, a makefile) so you don't have to keep re-keying the steps at the keyboard.
Although "gcc" stood initially fot the "Gnu C Compiler", it's now the "Gnu Compiler Collection" and to it's no longer just C ... C++ is an obvious extension but it will handle other languages like Fortran and Java (via gcj) for example.
For the bash scripting course I ran last week, I provided a brief "hello world" intorduction to make
and the compiler tools. Two program source files were provided - demo.c
- the main program and subsidiary functions for a little C demonstration. I also provided a simple makefile
to store / reuse / control the various invocations of gcc
needed to build the final executable program.
Although the tradiational, and taught, use of make is in building executable programs, it can also be used for other jobs with similar characteistings - be it to build a website, documentation, a database. For example, the makefile that's distributed with the Apache httpd web server not only builds the executable, but also the documentation. And a separate make process can be used to go through the multisteps to install the executabela and documentation
Such a clever idea there are other tools that do something similar - you have ant
for the Java world, and in Ruby you have rake
which you'll typically use to rake over the results of one of your tests on a database and prepare for the next test - removing damaged tables and re-creating them from source data. It's not a compile, but it's very much a process of the same pattern. (written 2015-11-28)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesA168 - Web Application Deployment - Compiler and development tools 
Web Frameworks - nested templates - (2013-02-22) 
Makefile variables - defined internally, from the command line and from the environment - (2012-03-22) 
Using Make for a distribution - (2012-03-17) 
A Complete makefile example - (2012-03-14) 
Makefile - some basics, and a demonstration - (2012-03-13) 
What is Make? - (2012-03-02) 
Make - automating the commands for building and installing - (2010-11-16) 
Make and makefiles - a commented example to help you learn - (2010-03-12) 
Compiling C programs with gcc - an overview - (2008-06-10) 
Ant and Make - (2006-04-22)
Some other Articles
Principles or a GUI and their practical application using wxPthonWhat teach you in a week stays with you for a decadeshell - bash. Writing conditional tests and statements - the options availableExtending your bash shell with aliases, functions and extra commandsWhat is make? What is gcc?Bash ... some new scripts to - handling user inputBack in the saddle again - excellent open source course from Well House ConsultantsA near-empty plate of pastries - sign of a breakfast enjoyedThin application, thick objects - keep you main code simple. Example in RubyEasy example - data record to object and object to data record mapping in Ruby
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).