# Standard compilation rules (don't use make builtins)

.SUFFIXES: .c .cc .o .s .S .i

# Always the default rule, make sure it gets listed first
all:

.c.o:
	$(CC) $(CFLAGS) -c $<

.c.s:
	$(CC) $(CFLAGS) -S -o $@ $<

.c.i:
	$(CC) $(CFLAGS) -E -o $@ $<

.cc.o:
	$(CXX) $(CXXFLAGS) -c $<

.cc.s:
	$(CXX) $(CXXFLAGS) -S -o $@ $<

.cc.i:
	$(CXX) $(CXXFLAGS) -E -o $@ $<

# Common clean patterns
clean_common:
	-rm -f *.o *.obj *.dep *.exe *.a *.lib

distclean_common: clean
	-rm -f *.bak *~ \#* \.#* *.orig *.rej

clean: clean_common

distclean: distclean_common

# Dependency output file pattern
DEPENDFILE = $@.dep

# Include any dependency files
-include *.dep
