all: small_program

small_program: small_program.o libsmall.a
	g++ -o small_program small_program.o -L. -lsmall

definitions.o: definitions.cpp declarations.h
	g++ -o definitions.o -c definitions.cpp

small_program.o: small_program.cpp declarations.h
	g++ -o small_program.o -c small_program.cpp

libsmall.a: definitions.o
	ar crus libsmall.a definitions.o

definitions.dis: definitions.o
	objdump -d definitions.o > definitions.dis

small_program.dis: small_program
	objdump -d small_program > small_program.dis

libsmall.dis: libsmall.a
	objdump -a libsmall.a > libsmall.dis

clean:
	-rm -f *~
	-rm -f *.o *.dis
	-rm -f small_program
	-rm -f libsmall.a
