for makefile and shell