That depends on the exact make(1) you have got, and the makefile being used.
For example, GNU make helpfully assumes a set of default rules and macros. I.e., the macro CC gives the name of the C compiler, CXX the C++ one; CFLAGS are flags for CC and CXXFLAGS for CXX.
It also defines a slew of default rules, i.e., to create a foo.o from foo.c by calling $(CC) $(CFLAGS) -c foo.c, and create an executable foo from foo.o by doing $(CC) $(CFLAGS) -o foo foo.o. Again, other versions of make might define other default macros and rules (but CC and CFLAGS seem to be universal).
If there is no makefile, GNU make uses the above rules, and you can override the macros by e.g. creating tst from tst.c with:
make CC=clang CFLAGS='-O2 -g -Wall' tst
Off the top of my head I don't know how other makes react, I seem to remember others just error out when there is no makefile.
If there is a makefile (could be called a few different names, check the manual; at least makefile and Makefile) the macro definitions and rules it defines take over. Most makefiles don't, so you'd get away with the above command. But there are no guarantees. Check for any instructions in files called typically INSTALL, README or some variation, or in the makefile itself.
And finally, there are a few alternatives to make (their default control files are mostly called some variation on makefile), but as make(1) is almost universal, their use should be documented somewhere.