#################
MAKEFILE      = Makefile
RM            = rm -f
CP            = cp
CC            = gpp
LD            = $(CC)
COMPFLAGS     = -I.
LDFLAGS       = 
DEPENDFLAGS   = -MM
LIBS          =
#OTHER        = -Wno-deprecated
#OTHER        =
OTHER         =	-W -Wall


#################
TARGET    = turing-s.exe

OBJS = \
	version.o \
	service.o \
	common.o \
	symbol.o \
	rules.o \
	tape.o \
	run.o \
	t-aux.o \
	t-daemon.o \
	t-descr.o \
	t-getval.o \
	t-istype.o \
	t-manage.o \
	t-maxval.o \
	t-rulin.o \
	t-rulout.o \
	t-show.o \
	t-tapes.o \
	t-xstate.o \
	main.o


#################
# Target Rules
#################
.SUFFIXES :
.SUFFIXES : .h .cpp .o
.cpp.o:
	@echo "------------------"
	$(RM) $*.o
#	$(CC) $(DEPENDFLAGS) $<
	$(CC) $(COMPFLAGS) $(OPT_LEVEL_FLAG) $(OTHER) -c $<

#################
all:	sr-turing

help:
	@echo "USAGE : "
	@echo "  TBD"

sr-turing: $(TARGET)

#################
$(TARGET):	$(OBJS) $(LIBS) $(MAKEFILE)
		@echo "=================="
		$(RM) $(TARGET)
		$(LD) -o $(TARGET) $(LDFLAGS) $(OBJS) $(LIBS)
		@echo " "


#################
cleano:	        
	$(RM) $(OBJS)
	$(RM) *.ii
	$(RM) *.s
	$(RM) *.o
	$(RM) core

cleane:
	$(RM) $(TARGET)
	$(RM) *.exe

clean:	cleano cleane

#################

common.o: common.cpp common.h macro.h version.h
main.o: main.cpp run.h turing-s.h enums.h common.h macro.h version.h \
  rules.h symbol.h defs.h tape.h
rules.o: rules.cpp rules.h symbol.h defs.h common.h macro.h version.h
run.o: run.cpp run.h turing-s.h enums.h common.h macro.h version.h \
  rules.h symbol.h defs.h tape.h
service.o: service.cpp service.h defs.h common.h macro.h version.h
symbol.o: symbol.cpp symbol.h defs.h common.h macro.h version.h
t-aux.o: t-aux.cpp turing-s.h enums.h common.h macro.h version.h rules.h \
  symbol.h defs.h tape.h
t-daemon.o: t-daemon.cpp turing-s.h enums.h common.h macro.h version.h \
  rules.h symbol.h defs.h tape.h
t-descr.o: t-descr.cpp turing-s.h enums.h common.h macro.h version.h \
  rules.h symbol.h defs.h tape.h
t-getval.o: t-getval.cpp turing-s.h enums.h common.h macro.h version.h \
  rules.h symbol.h defs.h tape.h
t-istype.o: t-istype.cpp turing-s.h enums.h common.h macro.h version.h \
  rules.h symbol.h defs.h tape.h
t-manage.o: t-manage.cpp turing-s.h enums.h common.h macro.h version.h \
  rules.h symbol.h defs.h tape.h
t-maxval.o: t-maxval.cpp turing-s.h enums.h common.h macro.h version.h \
  rules.h symbol.h defs.h tape.h
t-rulin.o: t-rulin.cpp turing-s.h enums.h common.h macro.h version.h \
  rules.h symbol.h defs.h tape.h
t-rulout.o: t-rulout.cpp turing-s.h enums.h common.h macro.h version.h \
  rules.h symbol.h defs.h tape.h
t-show.o: t-show.cpp turing-s.h enums.h common.h macro.h version.h \
  rules.h symbol.h defs.h tape.h
t-tapes.o: t-tapes.cpp turing-s.h enums.h common.h macro.h version.h \
  rules.h symbol.h defs.h tape.h
t-xstate.o: t-xstate.cpp turing-s.h enums.h common.h macro.h version.h \
  rules.h symbol.h defs.h tape.h
tape.o: tape.cpp tape.h symbol.h defs.h common.h macro.h version.h
version.o: version.cpp version.h

