OBJS = Main.o Input.o FunctionInput.o Constructor.o Selector.o Structure.o \
       Fun.o Function.o FunTree.o Term.o TermInput.o BoolExp.o BExpInput.o \
       temps.o Error.o Parameter.o Cond.o StrucInput.o Name.o
       
a: $(OBJS)
	g++ -o a $(OBJS)

Main.o: Main.h Input.h Globals.h
	g++ -c Main.c


Input.o: Input.h FunctionInput.h 
	g++ -c Input.c


FunctionInput.o: FunctionInput.h Cond.h Parameter.h Function.h TermInput.h \
                 BExpInput.h StrucInput.h FunTree.h Error.h
	g++ -c FunctionInput.c


Constructor.o: Constructor.h Defs.h List.h Selector.h Fun.h
	g++ -c Constructor.c


Selector.o: Selector.h Defs.h Fun.h
	g++ -c Selector.c

Structure.o: Structure.h Constructor.h Structure.h Defs.h Selector.h List.h
	g++ -c Structure.c

Fun.o: Fun.h
	g++ -c Fun.c


Function.o: Function.h Cond.h Term.h Parameter.h BoolExp.h List.h Fun.h Error.h
	g++ -c Function.c

FunTree.o: FunTree.h Fun.h Defs.h
	g++ -c FunTree.c


Term.o: Term.h Structure.h List.h Defs.h FunTree.h
	g++ -c Term.c

TermInput.o: TermInput.h Term.h Defs.h Error.h Function.h
	g++ -c TermInput.c

BoolExp.o: BoolExp.h  Defs.h Term.h
	g++ -c BoolExp.c

BExpInput.o: BExpInput.h BoolExp.h Error.h TermInput.h
	g++ -c BExpInput.c


temps.o: List.h List.c ListIt.h ListIt.c Selector.h Constructor.h \
         Structure.h Term.h Parameter.h Cond.h
	g++ -c -fno-implicit-templates temps.c

Error.o: Error.h
	g++ -c Error.c

Parameter.o: Parameter.h Structure.h
	g++ -c Parameter.c

Cond.o: Cond.h Term.h BoolExp.h
	g++ -c Cond.c

StrucInput.o: StrucInput.h Selector.h Constructor.h Structure.h Name.h \
              Defs.h FunTree.h
	g++ -c StrucInput.c

Name.o: Name.h Selector.h Constructor.h Structure.h
	g++ -c Name.c











