# rcsid $Id: Makefile,v 1.7 1996/03/31 03:09:40 smp Exp smp $

# makefile for the MicroLAN(tm) daemon

CXXFLAGS = -g

include ../rc.mk
PACKAGE = mld
DIR = mld


EXECS = mld mlcontrol mlnamer

H_SRC = \
	mld.hh \
	mldaemon.hh \
	mlclass.hh \
	mldevice.hh \
	mlbusmaster.hh \
	mlds1820.hh \
	mlds1920.hh \
	mlds2401.hh \
	mlds2405.hh \
	mlds2407.hh \
	mlcontrol.hh \
	mlnamer.hh

C_SRC = \
	mld.cc \
	mldaemon.cc \
	mlbusmaster.cc \
	mlds1820.cc \
	mlcontrol.cc \
	mlnamer.cc

#	mlds1920.cc \
#	mlds2401.cc \
#	mlds2405.cc \
#	mlds2407.cc

C_OBJ = \
	mld.o \
	mldaemon.o \
	mlbusmaster.o \
	mlds1820.o \
	mlcontrol.o \
	mlnamer.o

#	mlds1920.o \
#	mlds2401.o \
#	mlds2405.o \
#	mlds2407.o


VPATH = $(UTIL_DIR)/misc:$(SRVR_DIR)


it: $(EXECS)


# MicroLAN(tm) daemon
mld : mld.o mldaemon.o \
	mlbusmaster.o mlds1820.o \
	udgsocket.o keymap.o namedstr.o tokens.o voicedaemon.o \
	connection.o rcdaemon.o
	$(CXX) $(LDFLAGS) -o mld $^

mld.o : mld.cc mld.hh mldaemon.hh rcserver.hh \
	misc.hh namedstr.hh udgsocket.hh keymap.hh tokens.hh rcdaemon.hh
	$(CXX) $(CXXFLAGS) -c $(INCLUDES) $(DEFINES) $<

mldaemon.o : mldaemon.cc mldaemon.hh connection.hh rcserver.hh rcdaemon.hh \
	     mldevice.hh mlbusmaster.hh \
	     mlds1820.hh mlds1920.hh mlds2401.hh mlds2405.hh mlds2407.hh \
	     misc.hh namedstr.hh keymap.hh tokens.hh udgsocket.hh
	$(CXX) $(CXXFLAGS) -c $(INCLUDES) $(DEFINES) $<


mlbusmaster.o : mlbusmaster.cc mlbusmaster.hh misc.hh \
	        mldevice.hh
	$(CXX) $(CXXFLAGS) -c $(INCLUDES) $(DEFINES) $<

mlds1820.o : mlds1820.cc mlds1820.hh misc.hh \
	     mldevice.hh mlbusmaster.hh
	$(CXX) $(CXXFLAGS) -c $(INCLUDES) $(DEFINES) $<

##mlds2405.o : mlds2405.cc mlds2405.hh misc.hh \
##	     mldevice.hh mlbusmaster.hh \
##	$(CXX) $(CXXFLAGS) -c $(INCLUDES) $(DEFINES) $<



# MicroLAN(tm) client
mlcontrol : mlcontrol.o \
	      udgsocket.o keymap.o namedstr.o tokens.o voicedaemon.o \
	      connection.o rcclient.o
	$(CXX) $(LDFLAGS) -o mlcontrol $^

mlcontrol.o : mlcontrol.cc mlcontrol.hh \
	    connection.hh rcclient.hh rcserver.hh \
	    misc.hh udgsocket.hh namedstr.hh tokens.hh keymap.hh
	$(CXX) $(CXXFLAGS) -c $(INCLUDES) $(DEFINES) $<


# rc client to name the MicroLAN(tm) controller devices
mlnamer : mlnamer.o keymap.o namedstr.o
	$(CXX) $(LDFLAGS) -o mlnamer $^

mlnamer.o : mlnamer.cc mlnamer.hh rcserver.hh \
	    misc.hh keymap.hh namedstr.hh
	$(CXX) $(CXXFLAGS) -c $(INCLUDES) $(DEFINES) $<


#
# things in daemon
#
connection.o :
	cd $(SRVR_DIR);$(MAKE) connection.o

voicedaemon.o :
	cd $(SRVR_DIR);$(MAKE) voicedaemon.o

rcdaemon.o :
	cd $(SRVR_DIR);$(MAKE) rcdaemon.o

rcclient.o :
	cd $(SRVR_DIR);$(MAKE) rcclient.o


#
# things in util/misc
#
udgsocket.o :
	cd $(UTIL_DIR)/misc;$(MAKE) udgsocket.o

keymap.o :
	cd $(UTIL_DIR)/misc;$(MAKE) keymap.o

namedstr.o :
	cd $(UTIL_DIR)/misc;$(MAKE) namedstr.o

tokens.o :
	cd $(UTIL_DIR)/misc;$(MAKE) tokens.o


.PHONY : install
install :: $(EXECS)
	cp $(EXECS) $(BIN_DIR)

.PHONY : clean
clean :
	rm -f $(C_OBJ)
	rm -f $(EXECS)

.PHONY : ci
ci : Makefile $(H_SRC) $(C_SRC)
	ci -l Makefile $(H_SRC) $(C_SRC)

.PHONY : list
list :
	@echo $(PPATH)$(PACKAGE)/Makefile
ifneq	"$(H_SRC)" ""
	@$(foreach f,$(notdir $(H_SRC)),echo $(PPATH)$(PACKAGE)/$(f);)
endif
ifneq	"$(C_SRC)" ""
	@$(foreach f,$(notdir $(C_SRC)),echo $(PPATH)$(PACKAGE)/$(f);)
endif
