Secrets in This Chapter
Understanding the makefile
Writing a Sample makefile
Understanding the GNU General Public License
Understanding the GNU Library General Public License
Understanding the Executable and Linking Format
Many Linux users happen to be software developers. If you want to develop software as a hobby or want to add features to Linux, you'll find that Linux includes everything you need to create UNIX and X applications. You can use the GNU C and C++ compilers to write conventional programs (that you compile and link into an executable). As an alternative, you can use the Tcl/Tk scripting language to write interpreted graphical applications.
This chapter discusses software development on a Linux PC. The focus is not on any specific programming language. Instead, this chapter describes how to use various software-development tools, such as compilers, makefiles, and version-control systems.
The chapter also describes the implications of Free Software Foundation's GNU Public License on any plans you might have to develop Linux software. You need to know this because you usually use GNU tools and GNU libraries to develop software in Linux.
Also, I discuss dynamic linking and the Executable and Linking Format (ELF), which makes dynamic linking easier. These topics are of interest to Linux programmers because dynamic linking reduces the size of executables and may enable programmers to distribute software in binary form, even if software uses the GNU libraries.