all: node nodeusers flexd

CC 		= gcc
LD 		= gcc
CFLAGS 		= -Wall -Wstrict-prototypes -O2 -Iinclude
LDFLAGS 	= -Llib
LIBS 		= -lax25
ARCH		= i586
ETC_DIR		= /etc/ax25
SBIN_DIR	= /usr/sbin
BIN_DIR		= /usr/bin
LIB_DIR		= /usr/lib
MAN_DIR		= /usr/man
X11_DIR		= /usr/X11R6
XF_LIB		= 
XF_INC		= 
VAR_DIR		= /var/ax25
AXLIB_ROOT	= /usr/local

# This is needed to cope with Gnu LIBC
GLIBS		= 

ifeq ($(strip $(ETC_DIR)),)
include include
endif

.c.o:
	$(CC) $(CFLAGS) -c $<

install: installbin installman installhelp installconf
	@install -m 755 -d /var/ax25/node
	@rm -f /var/ax25/node/loggedin
	@touch /var/ax25/node/loggedin
	@rm -f /var/ax25/node/lastlog
	@touch /var/ax25/node/lastlog

installbin: all
	install -m 4755 -s -o root -g root node		 $(SBIN_DIR)
	install -m 755  -s -o root -g root nodeusers	 $(SBIN_DIR)
	install -m 755  -s -o root -g root flexd	 $(SBIN_DIR)

installhelp:
	install -m 755    -o root -g root -d		 $(LIB_DIR)/ax25/node/help
	install -m 644    -o root -g root etc/help/*.hlp $(LIB_DIR)/ax25/node/help

installconf: installhelp
	install -m 755    -o root -g root -d		 $(ETC_DIR)
	install -m 600    -o root -g root etc/node.conf.ex  $(ETC_DIR)
	install -m 600    -o root -g root etc/node.perms.ex $(ETC_DIR)
	install -m 600    -o root -g root etc/node.info.ex  $(ETC_DIR)
	install -m 600    -o root -g root etc/node.motd.ex  $(ETC_DIR)
	install -m 600    -o root -g root etc/node.users.ex $(ETC_DIR)
	install -m 600    -o root -g root etc/node.routes.ex   $(ETC_DIR)
	install -m 600    -o root -g root etc/flexd.conf.ex  $(ETC_DIR)
	install -m 755 	  -o root -g root -d 		/var/ax25/flex
	@touch /var/ax25/flex/gateways
	install -m 755    -o root -g root -d		 $(VAR_DIR)/node
	install -m 644    -o root -g root etc/loggedin	 $(VAR_DIR)/node
	install -m 644    -o root -g root etc/lastlog	 $(VAR_DIR)/node

installman:
	install -m 644    -o bin -g bin nodeusers.1      $(MAN_DIR)/man1
	install -m 644    -o bin -g bin node.conf.5      $(MAN_DIR)/man5
	install -m 644    -o bin -g bin node.perms.5     $(MAN_DIR)/man5
	install -m 644    -o bin -g bin node.8           $(MAN_DIR)/man8

clean:
	rm -f *.o *~ *.bak *.orig
	rm -f etc/*~ etc/*.bak etc/*.orig
	rm -f etc/help/*~ etc/help/*.bak etc/help/*.orig

distclean: clean
	rm -f node nodeusers flexd

node: node.o cmdparse.o config.o command.o user.o gateway.o router.o extcmd.o io.o system.o util.o ipc.o sysinfo.o procinfo.o mheard.o mailbox.o axcalluser.o
	$(LD) $(LDFLAGS) -o node node.o cmdparse.o config.o command.o user.o gateway.o router.o extcmd.o io.o system.o util.o ipc.o sysinfo.o procinfo.o mheard.o mailbox.o axcalluser.o $(LIBS)

nodeusers: nodeusers.o io.o
	$(LD) $(LDFLAGS) -o nodeusers nodeusers.o io.o $(LIBS)

flexd: flexd.o procinfo.o
	$(LD) $(LDFLAGS) -o flexd flexd.o procinfo.o $(LIBS)

cmdparse.o:	node.h cmdparse.c
command.o:	procinfo.h io.h node.h sysinfo.h command.c
config.o:	io.h node.h config.c
extcmd.o:	io.h node.h extcmd.c
gateway.o:	io.h node.h gateway.c
router.o:	procinfo.h io.h node.h router.c
io.o:		io.h io.c
ipc.o:		io.h ipc.c
node.o:		io.h node.h node.c
nodeusers.o:	io.h node.h nodeusers.c
sysinfo.o:	io.h node.h sysinfo.h sysinfo.c
system.o:	io.h node.h system.c
user.o:		io.h node.h user.c
util.o:		io.h node.h util.c
procinfo.o:	procinfo.h procinfo.c
mheard.o:       procinfo.h io.h node.h mheard.c
flexd.o:	procinfo.h flexd.c
axcalluser.o:	axcalluser.h axcalluser.c
mailbox.o:	axcalluser.h mailbox.c
