# Makefile OBJS = term_control.o Lexer.o error_handling.o cmd.o cmd_test.o CC = g++ DEBUG = -g CFLAGS = -Wall -pedantic -ansi -c $(DEBUG) LFLAGS = -Wall $(DEBUG) cmd_test: $(OBJS) $(CC) $(LFLAGS) $(OBJS) -o cmd_test cmd_test.o : term_control.o Lexer.o cmd.o error_handling.o cmd_test.cpp $(CC) $(CFLAGS) cmd_test.cpp # the lextest program lextest: lextest.o $(CC) $(LFLAGS) lextest.o Lexer.o -o lextest # only uses Lexer lextest.o : Lexer.o lextest.cpp $(CC) $(CFLAGS) lextest.cpp # uses Lexer, term_control, error_handling cmd.o : Lexer.o error_handling.o term_control.o cmd.h cmd.cpp $(CC) $(CFLAGS) cmd.cpp # error handling routines make use of terminal control routines error_handling.o : term_control.o error_handling.h error_handling.cpp $(CC) $(CFLAGS) error_handling.cpp # the Lexer is fairly independent Lexer.o : Lexer.h Lexer.cpp $(CC) $(CFLAGS) Lexer.cpp # this object file is at the "lowest level" term_control.o : term_control.h term_control.cpp $(CC) $(CFLAGS) term_control.cpp clean: rm -f *.o a.out lextest cmd_test