#
# shatbox (C) 2002 Matthew Conte (matt@conte.com)
#
#
# Makefile
#
# main project makefile
#
# $Id:$
#

TLD = .

include $(TLD)/Makefile.cfg

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


DIRS     =  libsnss \
            mmc \
            system

CPPFILES =  assert \
            apu \
            cart \
            config \
            cpu \
            event \
            ines \
            input \
            machine \
            main \
            mmc \
            nes \
            oam \
            palette \
            ppu \
            unif \
            unit

CFILES   =  dis6502

ASMFILES =

ifeq "$(WANT_ASMCODE)" "TRUE"
   ASMFILES += scanlinea ppua
else
   CPPFILES += scanline
endif

ifeq "$(WANT_ASMCPU)" "TRUE"
	ASMFILES += nes6502a
else
	CFILES += nes6502
endif

OBJS        =  $(addsuffix .o, $(sort $(ASMFILES)) $(sort $(CFILES)) $(sort $(CPPFILES)))
DEPS        =  $(addprefix dep/, $(addsuffix .d, $(sort $(CFILES)) $(sort $(CPPFILES))))

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

include $(TLD)/Makefile.cmn

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

local_all: $(PRIMARY_TARGET)

local_clean:
	@echo "Removing generated files..."
	@rm -f $(PRIMARY_TARGET)
	@rm -f $(OBJS)
	@rm -f dep/*.d
	@rm -f $(MAPFILE)

ALL_OBJS = $(OBJS) \
            libsnss/libsnss.a \
            mmc/libmmc.a \
            system/system.a

#### dependencies ####
dep/%.d: %.cpp
	@echo "Generating dependencies for $<..."
#	@$(CXX) $(CFLAGS) -MM -MG $< | sed -e "s/^\(.*\)\.o[ ]*:/\1.o dep\/$(notdir $@) :/" > $@
	@$(CXX) $(CFLAGS) -MM -MG $< > $@
dep/%.d: %.c
	@echo "Generating dependencies for $<..."
#	@$(CXX) $(CFLAGS) -MM -MG $< | sed -e "s/^\(.*\)\.o[ ]*:/\1.o dep\/$(notdir $@) :/" > $@
	@$(CXX) $(CFLAGS) -MM -MG $< > $@

include $(DEPS)

$(PRIMARY_TARGET): $(ALL_OBJS)
ifeq "$(WANT_MAPFILE)" "TRUE"
	@echo > $(MAPFILE)
endif
	@echo "Linking $@..."
	@$(CXX) -o $@ $(ALL_OBJS) -Wl,$(LDFLAGS)


# $Log: $
