it: command include library library.so

clean: EXPORT INTERNAL
	rm -f `cat EXPORT INTERNAL`


background.o: compile background.c execline.h djbunix.h strerr2.h sgetopt.h fmtscan.h
	./compile background.c

background: load background.o libexecline.a libstddjb.a
	./load background libexecline.a libstddjb.a

backtick.o: compile backtick.c exls1.h
	./compile backtick.c

backtick: load backtick.o libexls1.a libexecline.a libstddjb.a
	./load backtick libexls1.a libexecline.a libstddjb.a

cd.o: compile cd.c djbunix.h strerr2.h
	./compile cd.c

cd: load cd.o libstddjb.a
	./load cd libstddjb.a

define.o: compile define.c exls1.h
	./compile define.c

define: load define.o libexls1.a libexecline.a libstddjb.a
	./load define libexls1.a libexecline.a libstddjb.a

dollarat.o: compile dollarat.c netstring.h djbunix.h strerr2.h buffer.h fmtscan.h sgetopt.h bytestr.h
	./compile dollarat.c

dollarat: load dollarat.o libstddjb.a
	./load dollarat libstddjb.a

elgetopt.o: compile elgetopt.c execline.h djbunix.h strerr2.h envalloc.h env.h stralloc.h gen_alloc.h fmtscan.h sgetopt.h bytestr.h
	./compile elgetopt.c

elgetopt: load elgetopt.o libexecline.a libstddjb.a
	./load elgetopt libexecline.a libstddjb.a

elgetpositionals.o: compile elgetpositionals.c exlp.h execline.h uintalloc.h djbunix.h envalloc.h env.h stralloc.h gen_alloc.h strerr2.h sgetopt.h fmtscan.h bytestr.h
	./compile elgetpositionals.c

elgetpositionals: load elgetpositionals.o libexlp.a libexecline.a libstddjb.a
	./load elgetpositionals libexlp.a libexecline.a libstddjb.a

elglob.o: compile elglob.c exls1.h
	./compile elglob.c

elglob: load elglob.o libexls1.a libexecline.a libstddjb.a
	./load elglob libexls1.a libexecline.a libstddjb.a

emptyenv.o: compile emptyenv.c execline.h djbunix.h envalloc.h env.h stralloc.h gen_alloc.h strerr2.h bytestr.h sgetopt.h
	./compile emptyenv.c

emptyenv: load emptyenv.o libexecline.a libstddjb.a
	./load emptyenv libexecline.a libstddjb.a

exec.o: compile exec.c djbunix.h strerr2.h
	./compile exec.c

exec: load exec.o libstddjb.a
	./load exec libstddjb.a

execline.o: compile execline.c exlp.h execline.h djbunix.h uintalloc.h envalloc.h stralloc.h gen_alloc.h strerr2.h buffer.h fmtscan.h bytestr.h sgetopt.h uint16.h
	./compile execline.c

execline: load execline.o libexlp.a libexecline.a libstddjb.a
	./load execline libexlp.a libexecline.a libstddjb.a

execlineb.o: compile execlineb.c execline.c
	./compile execlineb.c

execlineb: load execlineb.o libexlp.a libexecline.a libstddjb.a
	./load execlineb libexlp.a libexecline.a libstddjb.a

exit.o: compile exit.c strerr2.h fmtscan.h
	./compile exit.c

exit: load exit.o libstddjb.a
	./load exit libstddjb.a

export.o: compile export.c djbunix.h strerr2.h bytestr.h
	./compile export.c

export: load export.o libstddjb.a
	./load export libstddjb.a

fdclose.o: compile fdclose.c djbunix.h strerr2.h fmtscan.h
	./compile fdclose.c

fdclose: load fdclose.o libstddjb.a
	./load fdclose libstddjb.a

fdreserve.o: compile fdreserve.c djbunix.h strerr2.h fmtscan.h
	./compile fdreserve.c

fdreserve: load fdreserve.o libstddjb.a
	./load fdreserve libstddjb.a

fdmove.o: compile fdmove.c djbunix.h strerr2.h fmtscan.h sgetopt.h
	./compile fdmove.c

fdmove: load fdmove.o libstddjb.a
	./load fdmove libstddjb.a

for.o: compile for.c execline.h djbunix.h envalloc.h env.h stralloc.h gen_alloc.h strerr2.h bytestr.h sgetopt.h
	./compile for.c

for: load for.o libexecline.a libstddjb.a
	./load for libexecline.a libstddjb.a

forbacktick.o: compile forbacktick.c execline.h netstring.h skamisc.h djbunix.h envalloc.h env.h stralloc.h gen_alloc.h strerr2.h buffer.h bytestr.h sgetopt.h
	./compile forbacktick.c

forbacktick: load forbacktick.o libexecline.a libstddjb.a
	./load forbacktick libexecline.a libstddjb.a

foreground.o: compile foreground.c execline.h strerr2.h
	./compile foreground.c

foreground: load foreground.o libexecline.a libstddjb.a
	./load foreground libexecline.a libstddjb.a

getpid.o: compile getpid.c djbunix.h strerr2.h fmtscan.h bytestr.h
	./compile getpid.c

getpid: load getpid.o libstddjb.a
	./load getpid libstddjb.a

heredoc.o: compile heredoc.c djbunix.h strerr2.h allreadwrite.h fmtscan.h bytestr.h sgetopt.h
	./compile heredoc.c

heredoc: load heredoc.o libstddjb.a
	./load heredoc libstddjb.a

if.o: compile if.c execline.h djbunix.h strerr2.h sgetopt.h
	./compile if.c

if: load if.o libexecline.a libstddjb.a
	./load if libexecline.a libstddjb.a

ifthenelse.o: compile ifthenelse.c execline.h djbunix.h strerr2.h sgetopt.h
	./compile ifthenelse.c

ifthenelse: load ifthenelse.o libexecline.a libstddjb.a
	./load ifthenelse libexecline.a libstddjb.a

import.o: compile import.c exls1.h
	./compile import.c

import: load import.o libexls1.a libexecline.a libstddjb.a
	./load import libexls1.a libexecline.a libstddjb.a

importas.o: compile importas.c exls1.h
	./compile importas.c

importas: load importas.o libexls1.a libexecline.a libstddjb.a
	./load importas libexls1.a libexecline.a libstddjb.a

loopwhile.o: compile loopwhile.c execline.h djbunix.h strerr2.h sgetopt.h
	./compile loopwhile.c

loopwhile: load loopwhile.o libexecline.a libstddjb.a
	./load loopwhile libexecline.a libstddjb.a

multisubstitute.o: compile multisubstitute.c exlp.h exls1.h execline.h djbunix.h envalloc.h env.h uintalloc.h stralloc.h gen_alloc.h strerr2.h fmtscan.h bytestr.h sgetopt.h
	./compile multisubstitute.c

multisubstitute: load multisubstitute.o libexlp.a libexls1.a libexecline.a libstddjb.a
	./load multisubstitute libexlp.a libexls1.a libexecline.a libstddjb.a

piperw.o: compile piperw.c djbunix.h strerr2.h fmtscan.h
	./compile piperw.c

piperw: load piperw.o libstddjb.a
	./load piperw libstddjb.a

pipeline.o: compile pipeline.c execline.h djbunix.h strerr2.h fmtscan.h sgetopt.h
	./compile pipeline.c

pipeline: load pipeline.o libexecline.a libstddjb.a
	./load pipeline libexecline.a libstddjb.a

redirfd.o: compile redirfd.c djbunix.h strerr2.h fmtscan.h sgetopt.h
	./compile redirfd.c

redirfd: load redirfd.o libstddjb.a
	./load redirfd libstddjb.a

runblock.o: compile runblock.c execline.h djbunix.h envalloc.h env.h stralloc.h gen_alloc.h strerr2.h fmtscan.h sgetopt.h
	./compile runblock.c

runblock: load runblock.o libexecline.a libstddjb.a
	./load runblock libexecline.a libstddjb.a

shift.o: compile execline.h shift.c djbunix.h strerr2.h fmtscan.h sgetopt.h
	./compile shift.c

shift: load shift.o libexecline.a libstddjb.a
	./load shift libexecline.a libstddjb.a

umask.o: compile umask.c djbunix.h strerr2.h fmtscan.h
	./compile umask.c

umask: load umask.o libstddjb.a
	./load umask libstddjb.a

unexport.o: compile unexport.c djbunix.h strerr2.h bytestr.h
	./compile unexport.c

unexport: load unexport.o libstddjb.a
	./load unexport libstddjb.a

wait.o: compile wait.c execline.h uintalloc.h djbunix.h gen_alloc.h strerr2.h fmtscan.h sgetopt.h
	./compile wait.c

wait: load wait.o libexecline.a libstddjb.a
	./load wait libexecline.a libstddjb.a


execline.h: envalloc.h stralloc.h gccattributes.h
	touch execline.h

el_execsequence.o: compile el_execsequence.c execline.h djbunix.h strerr2.h fmtscan.h
	./compile el_execsequence.c

el_getstrict.o: compile el_getstrict.c execline.h fmtscan.h env.h
	./compile el_getstrict.c

el_popenv.o: compile el_popenv.c execline.h stralloc.h fmtscan.h bytestr.h
	./compile el_popenv.c

el_pushenv.o: compile el_pushenv.c execline.h stralloc.h fmtscan.h bytestr.h
	./compile el_pushenv.c

el_semicolon.o: compile el_semicolon.c execline.h strerr2.h fmtscan.h env.h
	./compile el_semicolon.c

el_transform.o: compile el_transform.c execline.h netstring.h stralloc.h gen_alloc.h bytestr.h
	./compile el_transform.c

el_substitute.o: compile el_substitute.c execline.h stralloc.h gen_alloc.h bytestr.h
	./compile el_substitute.c

el_updatesubsts.o: compile el_updatesubsts.c execline.h
	./compile el_updatesubsts.c

el_vardupl.o: compile el_vardupl.c execline.h bytestr.h
	./compile el_vardupl.c

libexecline.a: makelib el_execsequence.o el_getstrict.o el_popenv.o el_pushenv.o el_semicolon.o el_transform.o el_substitute.o el_updatesubsts.o el_vardupl.o
	./makelib libexecline.a el_execsequence.o el_getstrict.o el_popenv.o el_pushenv.o el_semicolon.o el_transform.o el_substitute.o el_updatesubsts.o el_vardupl.o


exls1.h: execline.h stralloc.h gen_alloc.h gccattributes.h
	touch exls1.h

exls1_backtick.o: compile exls1_backtick.c exls1.h execline.h djbunix.h strerr2.h sgetopt.h bytestr.h
	./compile exls1_backtick.c

exls1_define.o: compile exls1_define.c exls1.h execline.h stralloc.h sgetopt.h
	./compile exls1_define.c

exls1_elglob.o: compile exls1_elglob.c exls1.h execline.h stralloc.h strerr2.h sgetopt.h shglob.h
	./compile exls1_elglob.c

exls1_import.o: compile exls1_import.c exls1.h execline.h env.h stralloc.h sgetopt.h
	./compile exls1_import.c

exls1_main.o: compile exls1_main.c exls1.h execline.h djbunix.h envalloc.h env.h stralloc.h gen_alloc.h strerr2.h
	./compile exls1_main.c

libexls1.a: makelib exls1_backtick.o exls1_define.o exls1_elglob.o exls1_import.o exls1_main.o 
	./makelib libexls1.a exls1_backtick.o exls1_define.o exls1_elglob.o exls1_import.o exls1_main.o


exlp.h: execline.h uintalloc.h stralloc.h gen_alloc.h
	touch exlp.h

substalloc.o: compile substalloc.c exlp.h execline.h gen_alloc.h
	./compile substalloc.c

substalloc_x.o: compile substalloc_x.c exlp.h execline.h gen_alloc.h
	./compile substalloc_x.c

exlp.o: compile exlp.c exlp.h execline.h uintalloc.h djbunix.h stralloc.h gen_alloc.h strerr2.h fmtscan.h bytestr.h
	./compile exlp.c

libexlp.a: makelib substalloc.o substalloc_x.o exlp.o
	./makelib libexlp.a substalloc.o substalloc_x.o exlp.o


command: background backtick cd define dollarat elgetopt elgetpositionals \
elglob multisubstitute emptyenv exec exit execline execlineb export fdclose \
fdreserve fdmove for forbacktick foreground getpid heredoc if ifthenelse \
import importas loopwhile piperw pipeline redirfd runblock shift umask \
unexport wait

include: execline.h exls1.h exlp.h

library: libexecline.a libexls1.a libexlp.a

library.so:
