ex22 source code and makefile