large projects libraries archive libraries circular references creating make-library function as prerequisites recursion and reference builds and .SECONDARY target modifier updating library functions, reusable library management archive libraries and creating libraries double- colon rules updating libraries line termination, Cygwin Linux kernel makefile command echo command-line options configuration versus building user -defined functions long commands loops , foreach