#
# Makefile for xisp, xispdial, xispterm, xisprccv
# and xispid. Read INSTALL for editing instructions.
# If your architecture is already supported, comment
# out everything but the section you're interested in.
#
#=====================================================================
#  Compilation/installation vars (global for all following sections) |
#=====================================================================
#
INCX11    = /usr/X11R6/include
LIBX11    = /usr/X11R6/lib
INCFORMS  = /usr/X11R6/include/X11
LIBFORMS  = /usr/X11R6/lib
MODEMDEV  = modem
#
#=====================================================================
#                           Linux Section                            |
#=====================================================================
#
# Normal vars (e.g. Slackware)
#------------------------------
BINX11    = usr/X11R6/bin
USRLOCAL  = usr/local/bin
SBINDIR   = usr/sbin
VARRUN    = var/run
USRLIBPPP = usr/lib/ppp
OPTSDIR   = usr/lib/ppp
MANDIR    = usr/X11R6/man/man1
ETCPPP    = etc/ppp
DESTDIR   = 
GROUP     = uucp
GCCFLAGS  = -Wall -O
EXTRADEFS =
EXTRALIBS =
INSTALL   = install
#
# Linux on the Alpha
#--------------------
#BINX11    = usr/X11R6/bin
#USRLOCAL  = usr/local/bin
#SBINDIR   = usr/sbin
#VARRUN    = var/run
#USRLIBPPP = usr/lib/ppp
#OPTSDIR   = usr/lib/ppp
#MANDIR    = usr/X11R6/man/man1
#ETCPPP    = etc/ppp
#DESTDIR   = 
#GROUP     = uucp
#GCCFLAGS  = -Wall -O
#EXTRADEFS =
#EXTRALIBS = -lcrypt
#INSTALL   = install
#
# Debian vars (use the lines defining -lcrypt in EXTRALIBS and
# -DGLIBC2 in EXTRADEFS, if your Debian distribution uses glibc2)
#-----------------------------------------------------------------
#BINX11     = usr/X11R6/bin
#USRLIBXISP = usr/lib/xisp
#USRLOCAL   = $(USRLIBXISP)
#SBINDIR    = usr/sbin
#VARRUN     = var/run
#USRLIBPPP  = $(USRLIBXISP)
#OPTSDIR    = etc
#MANDIR     = usr/man/man1
#ETCPPP     = etc/ppp
#DESTDIR    = 
#GROUP      = dialout
#GCCFLAGS   = -Wall -O
##EXTRADEFS  = -DGLIBC2
#EXTRADEFS  =
##EXTRALIBS  = -lcrypt
#EXTRALIBS  = 
#INSTALL    = install
#
# Red Hat vars (use the lines defining -lcrypt in EXTRALIBS
# and -DGLIBC2 in EXTRADEFS for version >= 5.0). Reportedly,
# the following is also good for SuSE Linux 5.x distributions
#-------------------------------------------------------------
#BINX11    = usr/X11R6/bin
#USRLOCAL  = usr/bin
#SBINDIR   = usr/sbin
#VARRUN    = var/run
#USRLIBPPP = $(SBINDIR)
#OPTSDIR   = etc/ppp
#MANDIR    = usr/man/man1
#ETCPPP    = etc/ppp
#DESTDIR   = $(RPM_BUILD_ROOT)
#GROUP     = root
#GCCFLAGS  = $(RPM_OPT_FLAGS)
##EXTRADEFS = -DGLIBC2
#EXTRADEFS =
##EXTRALIBS = -lcrypt
#EXTRALIBS =
#INSTALL   = install
#
#=====================================================================
#             Sun OS (SunOS-4.1.x, Solaris-2.5+) Section             |
#=====================================================================
#
# SunOS 4.1.x vars
#------------------
#BINX11    = usr/applic/X/bin/sun4
#USRLOCAL  = usr/local/bin
#SBINDIR   = etc/ppp
##SBINDIR   = usr/local/etc
#VARRUN    = etc/ppp
#USRLIBPPP = etc/ppp
#OPTSDIR   = etc/ppp
#MANDIR    = usr/applic/X/man/man1
#ETCPPP    = etc/ppp
#DESTDIR   = 
#GROUP     = uucp
#GCCFLAGS  = -Wall -O
#EXTRADEFS = -DSUNOS41x
#EXTRALIBS = -L./SunOS/ufc-crypt -lufc
#INSTALL   = install
#
# SunOS 5.5 (Solaris 2.5) vars
#------------------------------
#BINX11    = usr/X11R6/bin
#USRLOCAL  = usr/local/bin
#SBINDIR   = usr/local/bin
#VARRUN    = etc/ppp
#USRLIBPPP = etc/ppp
#OPTSDIR   = etc/ppp
#MANDIR    = usr/X11R6/man/man1
#ETCPPP    = etc/ppp
#DESTDIR   = 
#GROUP     = uucp
#GCCFLAGS  = -Wall -O
#EXTRADEFS = -DSUNOS5x
#EXTRALIBS = -lcrypt -lsocket -lnsl
#INSTALL   = /usr/ucb/install
#
#=====================================================================
#                    Program configuration options                   |
#=====================================================================
#
# Choose the XPM image with many (21) colors: xisp-hc.xpm
# the one with some (12) colors: xisp-mc.xpm
# or the one with very few (6) colors: xisp-lc.xpm
#---------------------------------------------------------
#XPMIMAGE = xisp-hc.xpm
#XPMIMAGE = xisp-mc.xpm
XPMIMAGE = xisp-lc.xpm
#
# If you desire to use the XPM animation code, comment out
# all icons above, and uncomment the following two lines
#----------------------------------------------------------
#XPMIMAGE  = xisp-ol.xpm
#ANIMATE   = -DXPMANIMATE
#
# Compilation defines
#---------------------
BINPATH   = -DBINPATH=\"$(DESTDIR)/$(SBINDIR)\"
LIBPATH   = -DLIBPATH=\"$(DESTDIR)/$(USRLIBPPP)\"
OPTPATH   = -DOPTPATH=\"$(DESTDIR)/$(OPTSDIR)\"
RUNPATH   = -DRUNDIR=\"$(DESTDIR)/$(VARRUN)\"
DEFINES   = $(BINPATH) $(LIBPATH) $(OPTPATH) $(RUNPATH) $(ANIMATE)
#
# gcc option flags
#------------------
GCCOPTS   = $(GCCFLAGS) $(DEFINES) $(EXTRADEFS)
#
#=====================================================================
#       You shouldn't need to edit anything below this line          |
#=====================================================================

all: xisp xispdial xisprccv xispterm xispid

xisp: xisp.o pcode.o network.o rcio.o logs.o
	gcc -o xisp xisp.o pcode.o network.o rcio.o logs.o $(EXTRALIBS) -L$(LIBX11) -L$(LIBFORMS) -lforms -lXpm -lX11 -lm

xisp.o: xisp.h xisp.c xisp.xpm version.h common.h pcode.h network.h rcio.h logs.h help.c peHelp.c excl.xpm
	gcc $(GCCOPTS) -I$(INCX11) -I$(INCFORMS) -c xisp.c

xisp.xpm:
	cp $(XPMIMAGE) xisp.xpm

pcode.o: pcode.h pcode.c
	gcc $(GCCOPTS) -c pcode.c

network.o: network.h network.c
	gcc $(GCCOPTS) -c network.c

xispdial: xispdial.c common.h version.h
	gcc $(GCCOPTS) -o xispdial xispdial.c

xisprccv: xisprccv.o pcode.o
	gcc -o xisprccv xisprccv.o pcode.o $(EXTRALIBS) -lm

xisprccv.o: xisprccv.c common.h version.h pcode.h logs.h
	gcc $(GCCOPTS) -c xisprccv.c

xispterm: xispterm.h xispterm.c
	gcc $(GCCOPTS) -I$(INCX11) -I$(INCFORMS) -o xispterm xispterm.c $(EXTRALIBS) -L$(LIBX11) -L$(LIBFORMS) -lforms -lX11 -lm

rcio.o: rcio.h rcio.c version.h
	gcc $(GCCOPTS) -c rcio.c

logs.o: logs.h logs.c version.h
	gcc $(GCCOPTS) -c logs.c

xispid: xispid.c
	gcc $(GCCOPTS) -o xispid xispid.c

install: xisp xispdial xisprccv xispterm xispid
	if [ ! -d $(DESTDIR)/$(BINX11) ]; then $(INSTALL) -d $(DESTDIR)/$(BINX11); fi
	$(INSTALL) -g $(GROUP) -m 750 -o root -s xisp $(DESTDIR)/$(BINX11)/xisp
	if [ ! -d $(DESTDIR)/$(USRLIBPPP) ]; then $(INSTALL) -d $(DESTDIR)/$(USRLIBPPP); fi
	$(INSTALL) -g $(GROUP) -m 750 -o root -s xispdial $(DESTDIR)/$(USRLIBPPP)/xispdial
	$(INSTALL) -g $(GROUP) -m 750 -o root -s xispterm $(DESTDIR)/$(USRLIBPPP)/xispterm
	if [ ! -d $(DESTDIR)/$(USRLOCAL) ]; then $(INSTALL) -d $(DESTDIR)/$(USRLOCAL); fi
	$(INSTALL) -g $(GROUP) -m 750 -o root -s xisprccv $(DESTDIR)/$(USRLOCAL)/xisprccv
	$(INSTALL) -g $(GROUP) -m 750 -o root -s xispid $(DESTDIR)/$(USRLOCAL)/xispid
#	if [ ! -d $(DESTDIR)/$(OPTSDIR) ]; then $(INSTALL) -d $(DESTDIR)/$(OPTSDIR); fi
#	$(INSTALL) -g $(GROUP) -m 640 -o root options.xisp $(DESTDIR)/$(OPTSDIR)/options.xisp
	if [ ! -d $(DESTDIR)/$(MANDIR) ]; then $(INSTALL) -d $(DESTDIR)/$(MANDIR); fi
	$(INSTALL) -g $(GROUP) -m 644 -o root xisp.man $(DESTDIR)/$(MANDIR)/xisp.1
	sed -e s/__XISPGROUP/$(GROUP)/ \
		-e sM__XISPIDM/$(DESTDIR)/$(USRLOCAL)/xispidM < ip-up.xisp > ip-up.install
	sed -e s/__XISPGROUP/$(GROUP)/ \
		-e sM__XISPIDM/$(DESTDIR)/$(USRLOCAL)/xispidM < ip-down.xisp > ip-down.install
	if [ ! -d $(DESTDIR)/$(ETCPPP) ]; then $(INSTALL) -d $(DESTDIR)/$(ETCPPP); fi
	if [ -f $(DESTDIR)/$(ETCPPP)/ip-up ]; then \
		mv -f $(DESTDIR)/$(ETCPPP)/ip-up $(DESTDIR)/$(ETCPPP)/ip-up.bak; fi
	$(INSTALL) -g $(GROUP) -m 750 -o root ip-up.install $(DESTDIR)/$(ETCPPP)/ip-up
	if [ -f $(DESTDIR)/$(ETCPPP)/ip-down ]; then \
		mv -f $(DESTDIR)/$(ETCPPP)/ip-down $(DESTDIR)/$(ETCPPP)/ip-down.bak; fi
	$(INSTALL) -g $(GROUP) -m 750 -o root ip-down.install $(DESTDIR)/$(ETCPPP)/ip-down
	rm -f ip-up.install ip-down.install
	sed -e s/__DEVICE/$(MODEMDEV)/ < xisp.peers.device > xisp_$(MODEMDEV)
	sed -e sM__DIALER_PATHM$(DESTDIR)/$(USRLIBPPP)M < xisp.peers.dialer > xisp_dialer
	if [ ! -d $(DESTDIR)/$(ETCPPP)/peers ]; then $(INSTALL) -d $(DESTDIR)/$(ETCPPP)/peers; fi
	if [ -f $(DESTDIR)/$(ETCPPP)/peers/xisp_$(MODEMDEV) ]; then \
		mv -f $(DESTDIR)/$(ETCPPP)/peers/xisp_$(MODEMDEV) $(DESTDIR)/$(ETCPPP)/peers/xisp_$(MODEMDEV).bak; fi
	$(INSTALL) -g $(GROUP) -m 640 -o root xisp_$(MODEMDEV) $(DESTDIR)/$(ETCPPP)/peers/xisp_$(MODEMDEV)
	if [ -f $(DESTDIR)/$(ETCPPP)/peers/xisp_dialer ]; then \
		mv -f $(DESTDIR)/$(ETCPPP)/peers/xisp_dialer $(DESTDIR)/$(ETCPPP)/peers/xisp_dialer.bak; fi
	$(INSTALL) -g $(GROUP) -m 640 -o root xisp_dialer $(DESTDIR)/$(ETCPPP)/peers/xisp_dialer
	rm -f xisp_$(MODEMDEV) xisp_dialer

clean:
	rm -f *.o xisp xispdial xisprccv xispterm xispid xisp.xpm

