CC=gcc #-static   #-v #-save-temps 
WARNINGS=#-Wall
DEFINES=-DDEBUG # -DREAD_PC_WORD_DEBUG
#PROFILE=-pg
OPTIMIZATION=#-O -finline-functions
CFLAGS= -g     $(OPTIMIZATION) $(WARNINGS) $(DEFINES) $(PROFILE)
ENGINE_C_SRCS=8086engine.c data.c  main.c
ENGINE_CPP_SRCS=8086opcodes.cpp
ENGINE_SRCS=$(ENGINE_C_SRCS) $(ENGINE_CPP_SRCS) 
HDRS=8086regs.h 8086opcodes1.h dosprotos.h 8086opcodes2.h regtypes.h parity.h misc.h
#OBJS=8086engine.o data.o dis86.o break.o

BIOSSRC=vidbios.c keyboard.c

#DOSOBJ=dosemu.o dostasks.o dosmem.o dosio.o dostime.o  dosfcb.o unixmagic.o
DOSSRC=  dosboot.c dosmisc.c dosemu.c dostasks.c dosmem.c dosio.c dostime.c \
		dos_cvt_time.c dossearch.c dosfcb.c unixmagic.c
DOSOBJ=$(DOSSRC:%.c=%.o)
DOSHDR=task.h memory.h doserrno.h magic.h
NEEDSTRERROR=strerror.c
MISCSRC=funcassert.c break.c dis86.c $(NEEDSTRERROR)
MISC=dodiff 

SRCS=$(ENGINE_C_SRCS) $(DOSSRC) $(MISCSRC) $(BIOSSRC)
OBJS=$(SRCS:.c=.o)

LD=gcc
BACKUPMACHINE=hydrus
DIST= dos.environment $(SRCS) $(MISC) $(HDRS) makeparity.c 8086opcodes.cpp Makefile $(DOSHDR) $(DOSSRC)

PROTOS.c=$(DOSSRC) $(BIOSSRC)


%.d: %.c
	$(CC) -MM $(CPPFLAGS) $< | sed 's/$*.o/& $@/g' > $@

8086engine:	$(OBJS) #$(DOSOBJ) 
	$(CC) $(CFLAGS) -o $@ $^  

8086opcodes1.h:	8086opcodes.cpp 8086regs.h
	gcc -x c -C -E  $< >$@


parity.h:	makeparity
	makeparity >parity.h

makeparity:	makeparity.c
	$(CC) -o makeparity makeparity.c

clean:  
	-rm 8086engine *.o *.trace
#	$(MAKE) proto


clean-trace:
	-rm  debug.trace dos.trace 

clean-protos:
	-rm dosprotos.h

realclean:	clean clean-trace
	makeparity parity.h

mkid:
	mkid $(SRCS) $(HDRS)

shar:
	shar -z $(DIST) >8086engine.shar

proto:	
	$(MAKE) dosprotos

dosprotos:
	cproto  $(DEFINES) -E"gcc -E" $(PROTOS.c)  >dosprotos.h


backup :
	tar -czf $(HOME)/bring-home/emulator.tar.gz  $(DIST) RCS


 
8086regs.h:	regtypes.h
	@echo >/dev/null


include $(SRCS:%.c=%.d)

