Makefile |
II |
To have ability to build own projects by fluently writing Makefiles that can build and install static and/or dynamic libraries.
-
Prerequisite:
- 6-2-1-I : Development flow and tools
- 6-2-2-I : Outlone of software development environment
- Able to write Makefiles
- Primitives of Makefile (target, dependency, rule)
- MACRO and .SUFFIXES
- Pre-defined macro
- $<, $@, $?
- Functions
- Make depend
- Able to write Recursive Makefiles
- Multiple and hierarchical directories
- Able to write Makefiles for building and installing libraries
- Static libraries
- Shared libraries - -fPIC & -shared options in GCC
- PATH and Environment variables
- Linux commands – ar, ldconfig
|
9-2-1-II |
|
Managing project |
I |
To have the ability to use tools for managing OSS projects collaboratively.
- Understanding types of version control systems
- Revision control system (RCS)
- Concurrent Versioning System (CVS, Subversion)
- Distributed Versioning System (GIT, BAZZAR)
- Ability to Use Subversion
- Rationales for Subversion
- Setting up Subversion server
- Initializing project
- Using Subversion commands (check-in, check-out, etc)
- Performing backup and recovery
- Understand the characteristics of other tools
|
9-2-2-I |
|
GNU tools |
I |
To understand the roles of basic GNU tools and their relationships.
-
Understand compile process
-
Understand bintuils
- Able to use basic GNU tools for compiler, load, library management
- Understand relationships of GNU tools
- Roles and relationships in gcc, make, automake, autoconf, //GDB
|
9-2-3-I |
|
GNU tools |
II |
To have ability to use advanced GNU tools for releasing and managing source codes. Makefile
- Able to use autoconf
- Rationales for autoconf
- Configure script
- Configure.ac
- Macros
- Able to use automake
- Rationales for automake
- Makefile.in
- Makefile.am
- Recursive Makefile.am
- Use more tools – gcov, ctags, cscope
|
9-2-3-II |
|
Building cross development environment |
I |
To have ability to build cross development environments.
- Understand frameworks of cross development environment
- Target and Host
- Connections between target & host
- Able to use minicom
- Connecting serial connection
- Setting up minicom – baud rate, parity, etc.
- Able to use NFS
- Understanding NFS
- Setting NFS between host and target
- Able to use binutils and cross compiler
- Target compilers - Gas, gcc
- Lib and includes for target machine
- Setting environment variables (INC, LD_LIB, CC, PATH, etc) for cross compiler
|
9-2-4-I |
|
Debugging with GDB |
I |
To have ability to debug source code using debugging tools such as GDB.
- Able to use debugging tool (GDB)
- Using Gcc options
- Using GDB commands – Run, Step, Next, Trace, Break, Watch point,Inspection for variable and register
- Debugging multithread programs
- Debugging libraries
|
9-2-5-I |
|
Bug tracking |
I |
To have ability to install and use bug tracking tools.
- Able to use basic operations of Bugzilla
- Able to install Bugzilla server
- Understand other bug/issue tracking tools
- Issue tracking – Mantis, Trac
|
9-2-6-I |
|
Remote debugging |
I |
To have ability to setup remote debugging environment.
- Able to setup remote debugging environment with GDB
- Concept of remote GDB protocol
- Running GDB server on target machine
- Attaching
- Command-line arguments for GDB server
- Able to use remote debugging environment with GDB
- Connecting to GDB server
- Sending files to remote target
- Monitor command to GDB server
- Remote configuration
|
9-2-7-I |
|
Recent comments
1 year 14 weeks ago
8 years 41 weeks ago
8 years 41 weeks ago
8 years 41 weeks ago
8 years 51 weeks ago
8 years 51 weeks ago
8 years 51 weeks ago
8 years 51 weeks ago
8 years 51 weeks ago
8 years 51 weeks ago