#
#  $Id: makefile,v 1.1.1.1 1998/01/11 00:00:37 tp Exp $
#

CC= gcc
CXX= g++
RM= rm -f
DEPFLAGS= -MM
CPPFLAGS= -Iinclude -DDEBUG -DLINUX
#CFLAGS= $(CPPFLAGS) -ggdb -Wall -pipe
CFLAGS= $(CPPFLAGS) -ggdb -O6 -Wall -pipe -Winline # -funroll-loops # -fomit-frame-pointer
Z80COREFLAGS= $(CPPFLAGS) -ggdb -O6 -Wall -pipe -Winline -funroll-loops -DLSB_FIRST -DDEBUG
LDFLAGS= -ggdb -L/usr/X11R6/lib

VPATH+= src/kc
VPATH+= src/ui
VPATH+= src/core

SRCS=	z80.cc		\
	ui_xwin.cc	\
	memory.cc	\
	ports.cc	\
	ctc.cc		\
	kc.cc		\
	debug.cc
OBJS = $(SRCS:%.cc=obj/%.o) obj/z80core.o
LIBS = -lX11 -lXext
DEST = kc85

$(DEST): obj $(OBJS)
	@echo "** linking $@..."
	$(CXX) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)

obj/z80core.o : src/core/z80.c
	@echo "++ compiling $<..."
	$(CC) -g -MMD -c -o $@ $(CFLAGS) $(Z80COREFLAGS) $<
	@mv z80.d z80core.d~
	@sed -e 's,^$*,obj/&,' z80core.d~ > z80core.d
	@rm -f z80core.d~
	@mv z80core.d obj

obj:
	@echo "-- creating object directory..."
	@mkdir obj

obj/%.o : %.cc
	@echo "++ compiling $<..."
	$(CXX) -g -MMD -c -o $@ $(CFLAGS) $<
	@mv $*.d $*.d~
	@sed -e 's,^$*,obj/&,' $*.d~ > $*.d
	@rm -f $*.d~
	@mv $*.d obj

#%.d: %.C
#	$(SHELL) -ec '$(CXX) $(DEPFLAGS) $(CPPFLAGS) $< | sed '\''s.*\.o[ :]*$@ $*.o: g'\'' > $@'
#
#%.d: %.c
#	$(SHELL) -ec '$(CC) $(DEPFLAGS) $(CPPFLAGS) $< | sed '\''s.*\.o[ :]*$@ $*.o: g'\'' > $@'
#
#%.o: %.C
#	$(CXX) $(CFLAGS) -c $< -o $@
#
#%.o: %.c
#	$(CC) $(CFLAGS) -c $< -o $@
#

.PHONY: clean
clean:
	$(RM) obj/*.o obj/*.d $(DEST) $(DEST).exe $(DEST).000
	rm -f `find . -name \*~ -o -name \*.bak`

dos2unix:
	for a in `find . -name \*.cc -o -name \*.c -o -name \*.h`; \
	do\
		cp $$a $$a~; \
		sed -e 's/
//' $$a~ > $$a; \
	done
	cp readme readme~ && sed -e 's/
//' readme~ > readme
	cp changes changes~ && sed -e 's/
//' changes~ > changes
	cp copying copying~ && sed -e 's/
//' copying~ > copying

ifneq ($(wildcard obj/*.d),)
include $(wildcard obj/*.d)
endif
