#
#
#
#     Makefile
#
#
#

# all targets to build
BUILD_TARGETS=sgd sgterm sgcd sgclient risterm risprint # terminal dump sgnetd
SCRIPT_TARGETS=multiwatch
INSTALL_TARGETS=$(BUILD_TARGETS) $(SCRIPT_TARGETS)

# directory for sockets
SGD_SOCK_HOME=/var/run/sgd

SGD_LIBS=-lmyio++ -lmyutil++
TERMINAL_LIBS=-lmyio++ -lmyutil++ #-lmyauth++ -lpam
RISTERM_LIBS=-lmyio++ -lmyutil++ -lncurses
RISPRINT_LIBS=-lmyio++ -lmyutil++
SGTERM_LIBS=-lmyio++ -lmyutil++ -lncurses
SGNETD_LIBS=-lmyutil++ -lmyauth++ -lpam -lpam_misc -ldl
SGCLIENT_LIBS=-lmyio++ -lmyutil++
SGCD_LIBS=-lmyio++ -lmyutil++
DUMP_LIBS=-lmyio++ -lmyutil++

SGD_OBJS=sgd.o sgdserver.o sgdconfig.o util.o signals.o
TERMINAL_OBJS=terminal.o signals.o util.o
RISTERM_OBJS=risterm.o termapp.o rtwin.o signals.o util.o
RISPRINT_OBJS=risprint.o signals.o util.o printer.o
SGTERM_OBJS=sgterm.o termapp.o sgwin.o signals.o util.o
SGNETD_OBJS=sgnetd.o util.o
SGCD_OBJS=sgcd.o signals.o util.o
SGCLIENT_OBJS=sgclient.o util.o signals.o
DUMP_OBJS=dump.o util.o

CXXDEBUG=-Wall -g
STATIC_BUILD=#-static

INSTALL_SBIN=sgd sgcd #sgnetd
INSTALL_BIN=risterm risprint sgterm sgclient multiwatch

.SUFFIXES : .o .cc

all: $(BUILD_TARGETS)

sgnetd: %: $(SGNETD_OBJS)
	g++ $(STATIC_BUILD) -o $@ $(SGNETD_OBJS) $(SGNETD_LIBS)
sgterm: %: $(SGTERM_OBJS)
	g++ $(STATIC_BUILD) -o $@ $(SGTERM_OBJS) $(SGTERM_LIBS)
risterm: %: $(RISTERM_OBJS)
	g++ $(STATIC_BUILD) -o $@ $(RISTERM_OBJS) $(RISTERM_LIBS)
risprint: %: $(RISPRINT_OBJS)
	g++ $(STATIC_BUILD) -o $@ $(RISPRINT_OBJS) $(RISPRINT_LIBS)
sgclient: %: $(SGCLIENT_OBJS)
	g++ $(STATIC_BUILD) -o $@ $(SGCLIENT_OBJS) $(SGCLIENT_LIBS)
sgcd: %: $(SGCD_OBJS) filter.h
	g++ $(STATIC_BUILD) -o $@ $(SGCD_OBJS) $(SGCD_LIBS)
dump: %: $(DUMP_OBJS)
	g++ $(STATIC_BUILD) -o $@ $(DUMP_OBJS) $(DUMP_LIBS)
terminal: %: $(TERMINAL_OBJS)
	g++ $(STATIC_BUILD) -o $@ $@.o $(TERMINAL_OBJS) $(TERMINAL_LIBS)

sgd: %: $(SGD_OBJS)
	g++ $(STATIC_BUILD) -o $@ $(SGD_OBJS) $(SGD_LIBS)

# sgdserver.o: %.o: %.h

.cc.o: %.o: %.h
	g++ $(CXXDEBUG) $(CXXFLAGS) -c $<

touchup: clean-targets all
clean-targets:
	rm -f $(BUILD_TARGETS)
clean:
	rm -f core *.o $(BUILD_TARGETS)
strip: $(BUILD_TARGETS)
	strip $(BUILD_TARGETS)
	ls -l $(BUILD_TARGETS)
rebuild: clean all

install-dirs:
	if [ ! -d $(SGD_SOCK_HOME) ]; then \
		mkdir -p -m 755 $(SGD_SOCK_HOME) ; \
	fi

install: all strip install-dirs
	for i in $(INSTALL_SBIN); do \
		install -o root -g root -m 755 $$i /usr/sbin ; \
	done
	for i in $(INSTALL_BIN); do \
		install -o root -g root -m 755 $$i /usr/bin ; \
	done
	if [ ! -f /etc/sgd.conf ]; then \
		@echo "" ; \
		@echo "Installing DEFAULT sgd.conf file." ; \
		@echo "" ; \
		install -o root -g root -m 644 sgd.conf /etc ; \
	fi

# EOF
