pow is a stdlib function, but to use it you should link the stdlib itself (math lib).
Usually gcc does it automatically, but try adding -lm link flag:
gcc -lm Update.o ScanData.o <..the rest of object files..>
Also make sure that libc is present in system (on debian/ubuntu - dpkg -s libc6-dev should tell that it is installed)
Not directly related to question:
does main.o really depend on all the sources? it only builds from main.c
What Is an Undefined Reference in C Programming Language?
What Types of Data Does Pow() Return?
You have not specified a rule for calc, but are generating it in your rule for calc.o. Try altering your Makefile to include these rules:
calc: calc.o
gcc -o calc calc.o -lm
calc.o: calc.c calc.h
gcc -Wall -std=c99 -c calc.c
This makefile doesn't create file calc.o. It create executable file calc at once. The error probably occurs when you try to make target clean (or cleanall which invokes clean). Instruction rm calc.o tries to remove file calc.o which does not exist.
If you want to create also calc.o, you should write it like this:
calc.o: calc.c calc.h
gcc -c -Wall -std=c99 -o calc.o calc.c
calc: calc.o
gcc -Wall -std=c99 -o calc calc.o -lm
or like this:
calc: calc.c calc.h
gcc -c -Wall -std=c99 -o calc.o calc.c
gcc -Wall -std=c99 -o calc calc.o -lm
If you don't need calc.o, just rename rule calc.o to calc, and remove rule clean or leave it blank.
By the way, targets clean and cleanall should be marked as .PHONY.