#
#   Makefile for clussed
#

CC = gcc
LD = gcc
CFLAGS = -Wall -Wstrict-prototypes -g -Ilib
LDFLAGS = 
EXECS = clussed

all: compile.h $(EXECS)

back:	distclean
	@echo "Making backup ..."
	(cd ..; rm -f clussed.tar.gz; tar cvfz clussed.tar.gz clussed)

snap:	distclean
	@echo "Making snapshot ..."
	@Snapshot.sh
	
clean:
	@echo "Making clean ..."
	rm -f *.o */*.o *~ */*~ */*/*~ core compile.h

distclean: clean
	@echo "Making distclean ..."
	rm -f $(EXECS)
.c.o:
	$(CC) $(CFLAGS) -c $<

compile.h: dummy
	@echo -n "Making compile.h ... "
	@echo \#define COMPILE_DATE \"`date +%d-%b-%y`\" > .ver
	@echo \#define COMPILE_TIME \"`date +%T`\" >> .ver
	@echo \#define COMPILE_DATETIME \"`date`\" >> .ver
	@echo \#define COMPILE_BY \"`whoami`\" >> .ver
	@echo \#define COMPILE_HOST \"`hostname`\"  >> .ver
	@if [ -x /bin/dnsdomainname ]; then \
		echo \#define COMPILE_DOMAIN \"`dnsdomainname`\" ; \
	elif [ -x /bin/domainname ]; then \
		echo \#define COMPILE_DOMAIN \"`domainname`\" ; \
	else \
		echo \#define COMPILE_DOMAIN ; \
	fi >> .ver
	@echo \#define COMPILE_OS \"`uname -s`\" >> .ver
	@echo \#define COMPILE_KERNEL COMPILE_OS \" `uname -r`\" >> .ver
	@echo \#define COMPILE_PLATFORM \"`uname -m`\" >> .ver
	@echo \#define COMPILER \"`$(CC) -v 2>&1 | tail -1`\"  >> .ver
	@mv -f .ver $@
	@echo Done.


dummy:

CLUSSED_MODULES	= 	hmalloc.o crc.o timer.o cstring.o ctime.o log.o db.o \
			cfgfile.o config.o cfg_iface.o cfg_links.o \
			af_inet.o af_ax25.o af_netrom.o \
			csock.o telnet.o \
			main.o \
			command.o \
			login.o luser.o \
			cluster.o help.o \
			cmd_cluster.o cmd_sys.o cmd_net.o cmd_usercfg.o \
			network.o net_link.o net_user.o net_ping.o net_rdb.o net_pc.o \
			linker.o ui.o \
			cfile.o f_dx.o f_ann.o f_wwv.o f_luser.o f_nuser.o f_last.o f_mid.o \

CLUSSED_LIBS = -lm -lz -lgdbm
CLUSSED_SLIBS = lib/libax25.a

clussed: $(CLUSSED_MODULES)
	$(LD) -o clussed $(LDFLAGS) $(CLUSSED_LIBS) $(CLUSSED_MODULES) $(CLUSSED_SLIBS)

# uh. should set up some makedepend stuff soon. in the mean time...

version.h:	compile.h
crc.o:		crc.h crc.c
log.o:		log.h log.c
cstring.o:	cstring.h cstring.c hmalloc.h ctypes.h
ctime.o:	ctime.h ctime.c
timer.o:	timer.h timer.c hmalloc.h
hmalloc.o:	hmalloc.h hmalloc.c log.h
db.o:		db.h db.c hmalloc.h log.h
cfgfile.o:	cfgfile.h cfgfile.c ctypes.h cstring.h log.h hmalloc.h
config.o:	config.h config.c ctypes.h cfgfile.h cfg_iface.h cfg_links.h \
		log.h csock.h cstring.h hmalloc.h
cfg_iface.o:	cfg_iface.h cfg_iface.c csock.h log.h hmalloc.h cstring.h \
		af_inet.h af_ax25.h af_netrom.h
cfg_links.o:	cfg_links.h cfg_links.c network.h hmalloc.h log.h timer.h config.h
af_inet.o:	af_inet.h af_inet.c csock.h log.h hmalloc.h config.h
af_ax25.o:	af_ax25.h af_ax25.c csock.h log.h hmalloc.h config.h
af_netrom.o:	af_netrom.h af_netrom.c csock.h log.h hmalloc.h
csock.o:	csock.h csock.c af_inet.h af_ax25.h af_netrom.h \
		log.h timer.h luser.h hmalloc.h telnet.h login.h cstring.h
telnet.o:	telnet.h telnet.c csock.h 
login.o:	login.h login.c luser.h version.h config.h cstring.h csock.h \
		telnet.h
main.o:		ctime.h cstring.h log.h config.h csock.h timer.h version.h \
		network.h cfile.h
luser.o:	luser.h luser.c config.h log.h hmalloc.h version.h csock.h \
		net_user.h f_luser.h timer.h ctime.h
cluster.o:	cluster.h cluster.c command.h help.h cmd_sys.h cmd_cluster.h \
		cmd_net.h cmd_usercfg.h network.h net_ping.h luser.h ctime.h \
		config.h
command.o:	command.h command.c csock.h cfgfile.h
cmd_sys.o:	cmd_sys.h cmd_sys.c csock.h version.h hmalloc.h
cmd_cluster.o:	cmd_cluster.h cmd_cluster.c csock.h hmalloc.h network.h \
		cstring.h config.h net_user.h cfgfile.h
cmd_net.o:	cmd_net.h cmd_net.c csock.h network.h net_user.h ctime.h
cmd_usercfg.o:	cmd_usercfg.h cmd_usercfg.c csock.h luser.h cfgfile.h f_luser.h
help.o:		help.h help.c csock.h cluster.h
network.o:	network.h network.c net_ping.h net_link.h net_pc.h net_user.h \
		net_rdb.h f_mid.h ctime.h config.h ctypes.h luser.h log.h \
		crc.h hmalloc.h linker.h version.h cluster.h ui.h \
		f_last.h f_nuser.h f_dx.h f_ann.h f_wwv.h timer.h
net_link.o:	net_link.h net_link.c network.h net_pc.h
net_pc.o:	net_pc.h net_pc.c network.h net_user.h log.h cfgfile.h \
		hmalloc.h timer.h ctime.h cstring.h net_ping.h
net_user.o:	net_user.h net_user.c network.h hmalloc.h log.h cluster.h \
		net_link.h f_nuser.h timer.h
net_ping.o:	net_ping.h net_ping.c csock.h network.h luser.h cstring.h \
		ctime.h log.h timer.h net_link.h config.h
net_rdb.o:	net_rdb.h net_rdb.c
linker.o:	linker.h linker.c hmalloc.h csock.h log.h cfgfile.h
ui.o:		ui.h ui.c
cfile.o:	cfile.h cfile.c f_luser.h f_nuser.h f_mid.h
f_dx.o:		f_dx.h f_dx.c
f_ann.o:	f_ann.h f_ann.c
f_wwv.o:	f_wwv.h f_wwv.c
f_luser.o:	f_luser.h f_luser.c hmalloc.h log.h db.h config.h cstring.h
f_nuser.o:	f_nuser.h f_nuser.c hmalloc.h log.h db.h ctypes.h
f_last.o:	f_last.h f_last.c
f_mid.o:	f_mid.h f_mid.c hmalloc.h log.h db.h config.h timer.h


