1#
2# Makefile for xisp, xispdial, xispterm, xisprccv
3# and xispid. Read INSTALL for editing instructions.
4# If your architecture is already supported, comment
5# out everything but the section you're interested in.
6#
7# Adjust the configuration settings as needed and run
8# "make install". You may remove your xisp installation
9# at a later time by running "make uninstall".
10#
11#=====================================================================
12#  Compilation/installation vars (global for all following sections) |
13#=====================================================================
14#
15CC         ?= gcc
16PREFIX     = /usr/local
17X11PREFIX  = ${LOCALBASE}
18INCX11     = $(X11PREFIX)/include
19LIBX11     = $(X11PREFIX)/lib
20INCFORMS   = $(X11PREFIX)/include/X11
21LIBFORMS   = $(X11PREFIX)/lib
22MODEM_DEV  = modem
23MODEM_PATH = /dev/$(MODEM_DEV)
24#
25#=====================================================================
26#                           Linux Section                            |
27#=====================================================================
28#
29# Normal (i.e. SuSE-[6789].x) vars; for SuSE-5.x use the lines which
30# DO NOT include -lcrypt for EXTRALIBS and -DGLIBC2 for EXTRADEFS.
31#-------------------------------------------------------------------
32#BINX11     = $(X11PREFIX)/bin
33#USRLOCAL   = $(PREFIX)/bin
34#SBINDIR    = /usr/sbin
35#VARRUN     = /var/run
36#USRLIBPPP  = /etc/ppp
37#OPTSDIR    = /etc/ppp
38#MANDIR     = $(X11PREFIX)/man/man1
39#ETCPPP     = /etc/ppp
40#INSTPPPDIR = $(ETCPPP)
41#PPPDLCKDIR = /var/lock
42#DESTDIR    =
43#GROUP      = uucp
44#CCFLAGS    = -Wall -O
45#EXTRADEFS  = -DMODEM_DEVICE=\"$(MODEM_PATH)\" -DGLIBC2 -DHAVE_STRERROR
46#EXTRADEFS  = -DMODEM_DEVICE=\"$(MODEM_PATH)\"
47#EXTRALIBS  = -lcrypt
48#EXTRALIBS  =
49#LINKX11    =
50#LINKFORMS  = -L$(LIBFORMS) -lforms
51#INSTALL    = install
52#
53# Debian vars (if your Debian distribution is relatively
54# old and does not use glibc2, use the lines which DO NOT
55# include -lcrypt for EXTRALIBS and -DGLIBC2 for EXTRADEFS).
56#------------------------------------------------------------
57#BINX11     = $(X11PREFIX)/bin
58#USRLIBXISP = /usr/lib/xisp
59#USRLOCAL   = $(USRLIBXISP)
60#SBINDIR    = /usr/sbin
61#VARRUN     = /var/run
62#USRLIBPPP  = $(USRLIBXISP)
63#OPTSDIR    = /etc
64#PPPDLCKDIR = /var/lock
65#MANDIR     = $(X11PREFIX)/man/man1
66#ETCPPP     = /etc/ppp
67#INSTPPPDIR = $(ETCPPP)
68#DESTDIR    =
69#GROUP      = dialout
70#CCFLAGS    = -Wall -O2
71#EXTRADEFS  = -DMODEM_DEVICE=\"$(MODEM_PATH)\" -DGLIBC2
72##EXTRADEFS  = -DMODEM_DEVICE=\"$(MODEM_PATH)\"
73#EXTRALIBS  = -lcrypt
74##EXTRALIBS  =
75#LINKX11    =
76#LINKFORMS  = -L$(LIBFORMS) -lforms
77#INSTALL    = install
78#
79# Red Hat vars (for versions 5.x-7.x, no change is
80# required; for versions 4.x use the lines which DO NOT
81# include -lcrypt for EXTRALIBS and -DGLIBC2 for EXTRADEFS).
82#------------------------------------------------------------
83#BINX11     = $(X11PREFIX)/bin
84#USRLOCAL   = /usr/bin
85#SBINDIR    = /usr/sbin
86#VARRUN     = /var/run
87#USRLIBPPP  = $(SBINDIR)
88#OPTSDIR    = /etc/ppp
89#MANDIR     = /usr/man/man1
90#ETCPPP     = /etc/ppp
91#INSTPPPDIR = $(ETCPPP)
92#PPPDLCKDIR = /var/lock
93##DESTDIR    = $(RPM_BUILD_ROOT)
94#DESTDIR    =
95##GROUP      = root
96#GROUP      = pppusers
97#CCFLAGS    = $(RPM_OPT_FLAGS)
98#EXTRADEFS  = -DMODEM_DEVICE=\"$(MODEM_PATH)\" -DGLIBC2
99##EXTRADEFS  = -DMODEM_DEVICE=\"$(MODEM_PATH)\"
100#EXTRALIBS  = -lcrypt
101##EXTRALIBS  =
102#LINKX11    =
103#LINKFORMS  = -L$(LIBFORMS) -lforms
104#INSTALL    = install
105#
106# Linux on the Alpha
107#--------------------
108#BINX11     = $(X11PREFIX)/bin
109#USRLOCAL   = $(PREFIX)/bin
110#SBINDIR    = /usr/sbin
111#VARRUN     = /var/run
112#USRLIBPPP  = /usr/lib/ppp
113#OPTSDIR    = /usr/lib/ppp
114#MANDIR     = $(X11PREFIX)/man/man1
115#ETCPPP     = /etc/ppp
116#INSTPPPDIR = $(ETCPPP)
117#PPPDLCKDIR = /var/lock
118#DESTDIR    =
119#GROUP      = uucp
120#CCFLAGS    = -Wall -O
121#EXTRADEFS  = -DMODEM_DEVICE=\"$(MODEM_PATH)\"
122#EXTRALIBS  = -lcrypt
123#LINKX11    =
124#LINKFORMS  = -L$(LIBFORMS) -lforms
125#INSTALL    = install
126#
127#=====================================================================
128#             Sun OS (SunOS-4.1.x, Solaris-2.x) Section              |
129#=====================================================================
130#
131# SunOS 4.1.x vars
132#------------------
133##BINX11     = $(X11PREFIX)/bin
134#BINX11     = $(X11PREFIX)/bin/sun4
135#USRLOCAL   = $(PREFIX)/bin
136#SBINDIR    = /etc/ppp
137##SBINDIR    = $(PREFIX)/etc
138#VARRUN     = /etc/ppp
139#USRLIBPPP  = /etc/ppp
140#OPTSDIR    = /etc/ppp
141#MANDIR     = $(X11PREFIX)/man/man1
142#ETCPPP     = /etc/ppp
143#INSTPPPDIR = $(ETCPPP)
144#PPPDLCKDIR = /usr/spool/locks
145#DESTDIR    =
146#GROUP      = uucp
147#CCFLAGS    = -Wall -O
148#EXTRADEFS  = -DMODEM_DEVICE=\"$(MODEM_PATH)\" -DSUNOS41x -DBROKEN_SPRINTF
149#EXTRALIBS  = -L./SunOS/ufc-crypt -lufc
150#LINKX11    =
151#LINKFORMS  = -L$(LIBFORMS) -lforms
152#INSTALL    = install
153#
154# SunOS 5.x (Solaris 2.x, where x>4) vars
155#-----------------------------------------
156#BINX11     = $(X11PREFIX)/bin
157#USRLOCAL   = $(PREFIX)/bin
158#SBINDIR    = $(PREFIX)/bin
159#VARRUN     = /etc/ppp
160##VARRUN     = /var/run
161#USRLIBPPP  = /etc/ppp
162#OPTSDIR    = /etc/ppp
163#MANDIR     = $(X11PREFIX)/man/man1
164#ETCPPP     = /etc/ppp
165#INSTPPPDIR = $(ETCPPP)
166#PPPDLCKDIR = /var/spool/locks
167#DESTDIR    =
168#GROUP      = uucp
169##GROUP      = sys
170#CCFLAGS    = -Wall -O
171#EXTRADEFS  = -DMODEM_DEVICE=\"$(MODEM_PATH)\" -DSUNOS5x -DHAVE_STRERROR
172#EXTRALIBS  = -L./SunOS/ufc-crypt -lufc -lsocket -lnsl
173#LINKX11    =
174#LINKFORMS  = -L$(LIBFORMS) -lforms
175#INSTALL    = /usr/ucb/install
176#
177#=====================================================================
178#                             BSD Section                            |
179#                                                                    |
180#  Both NetBSD and FreeBSD ports were known to work for xisp-2.6p1   |
181#  but have not been tested for xisp-2.7. If you make modifications  |
182#  for running xisp-2.7 under either BSD flavor, please send your    |
183#  patches to dbouras@hol.gr and they shall be integrated into the   |
184#  official distribution.                                            |
185#=====================================================================
186#
187# NetBSD vars
188#-------------
189#BINX11     = $(X11PREFIX)/bin
190#USRLOCAL   = $(BINX11)
191#SBINDIR    = /usr/sbin
192#VARRUN     = /var/run
193#USRLIBPPP  = $(PREFIX)/libexec
194#MANDIR     = $(PREFIX)/man/man1
195#ETCPPP     = /etc/ppp
196#OPTSDIR    = $(ETCPPP)
197#INSTPPPDIR = $(ETCPPP)
198##INSTPPPDIR = $(PREFIX)/share/examples/xisp
199#PPPDLCKDIR = /var/spool/lock
200#DESTDIR    =
201#GROUP      = dialer
202#CCFLAGS    = -Wall -O
203#EXTRADEFS  = -DMODEM_DEVICE=\"$(MODEM_PATH)\" -DHAVE_STRERROR
204#EXTRALIBS  = -lcrypt
205#LINKX11    = -Wl,-R$(LIBX11)
206#LINKFORMS  = -L$(LIBFORMS) -lforms
207#INSTALL    = /usr/bin/install
208#
209# FreeBSD vars
210#-------------
211BINX11     = $(X11PREFIX)/bin
212USRLOCAL   = $(BINX11)
213SBINDIR    = /usr/sbin
214VARRUN     = /var/run
215USRLIBPPP  = $(PREFIX)/libexec
216MANDIR     = $(PREFIX)/man/man1
217ETCPPP     = ${PREFIX}/etc/ppp
218OPTSDIR    = $(ETCPPP)
219INSTPPPDIR = $(ETCPPP)
220PPPDLCKDIR = /var/spool/lock
221DESTDIR    =
222GROUP      = dialer
223CHAT_PATH  = /usr/bin
224PPPD_PATH  = /usr/sbin
225CCFLAGS    ?= -Wall -O -DUSE_OPENSSL
226EXTRALIBS  = -L/usr/local/lib -lcrypto
227LINKX11    = -Wl,-R$(LIBX11)
228LINKFORMS  = -L$(LIBFORMS) -lforms
229INSTALL    = /usr/bin/install
230MODEM_DEV  = cuaa0
231MODEM_DEVS = cuaa0 cuaa1 cuaa2 cuaa3 umodem
232EXTRADEFS  = -DMODEM_DEVICE=\"$(MODEM_PATH)\" -DHAVE_STRERROR \
233	     -DCHAT_PATH=\"$(CHAT_PATH)\" -DPPPD_PATH=\"$(PPPD_PATH)\"
234#
235#=====================================================================
236#                    Program configuration options                   |
237#=====================================================================
238#
239# Choose the XPM image with many (21) colors: xisp-hc.xpm
240# the one with some (12) colors: xisp-mc.xpm
241# or the one with very few (6) colors: xisp-lc.xpm
242#---------------------------------------------------------
243#XPMIMAGE = xisp-hc.xpm
244#XPMIMAGE = xisp-mc.xpm
245#XPMIMAGE = xisp-lc.xpm
246#
247# If you desire to use the XPM animation code, comment out
248# all icons above, and uncomment the following two lines
249#----------------------------------------------------------
250XPMIMAGE  = xisp-ol.xpm
251ANIMATE   = -DXPMANIMATE
252#
253# If you prefer passing dialing environment via the new
254# XISPENV environment variable as opposed to the old style
255# environment file, then uncomment the line defining the
256# USESENV Makefile variable below.
257#
258# You can not use this option if your version of pppd was
259# built to discard all environment variables; examples of
260# such case include the default installation of pppd-2.3.5
261# on Sparc Solaris 2.6, and Sun's pppd on ix86 Solaris 8,
262# for both of which USESENV must not be defined (i.e. the
263# line defining USESENV must be left commented-out)
264#----------------------------------------------------------
265USESENV   = -DISPENV_USEVARS=1
266#
267# If you want multiple users to use the same xisp configuration
268# and to share log files via an effective user id specifically
269# defined for this purpose, comment out the following three lines:
270#------------------------------------------------------------------
271XISPUSER  = root
272SHAREALL  =
273SHAREOBJ  =
274#
275# and un-comment the following three (remember to change the
276# effective uid name "xisp" if you don't like the default):
277#
278#XISPUSER  = xisp
279#SHAREALL  = -DRUNASEUID=1
280#SHAREOBJ  = xisp_euidaccess.o
281#
282# NOTE: If you use the second option, remember to create the
283# user defined by $XISPUSER in your password file BEFORE you
284# do "make install", otherwise installation will fail.
285#
286# Defines for hard-coded default paths
287#--------------------------------------
288BINPATH   = -DBINPATH=\"$(DESTDIR)$(SBINDIR)\"
289LIBPATH   = -DLIBPATH=\"$(DESTDIR)$(USRLIBPPP)\"
290OPTPATH   = -DOPTPATH=\"$(DESTDIR)$(OPTSDIR)\"
291RUNPATH   = -DRUNDIR=\"$(DESTDIR)$(VARRUN)\"
292LCKPATH   = -DPPPDLCKDIR=\"$(PPPDLCKDIR)\"
293PATHS     = $(BINPATH) $(LIBPATH) $(OPTPATH) $(RUNPATH) $(LCKPATH)
294#
295# Finally, stick them all together
296#----------------------------------
297DEFINES   = $(PATHS) $(ANIMATE) $(USESENV) $(SHAREALL)
298#
299# Compiler option flags
300#-----------------------
301CCOPTS    = $(CCFLAGS) $(DEFINES) $(EXTRADEFS)
302#
303#=====================================================================
304#       You shouldn't need to edit anything below this line          |
305#=====================================================================
306
307all: xisp xispdial xisprccv xispterm xispid
308
309xisp: xisp.o pcode.o network.o rcio.o logs.o $(SHAREOBJ)
310	$(CC) $(LINKX11) -o xisp xisp.o pcode.o network.o rcio.o logs.o \
311	$(SHAREOBJ) $(EXTRALIBS) -L$(LIBX11) $(LINKFORMS) -lXpm -lX11 -lm
312
313xisp.o: xisp.h xisp.c xisp.xpm version.h common.h pcode.h network.h \
314	rcio.h logs.h help.c peHelp.c excl.xpm
315	$(CC) $(CCOPTS) -I$(INCX11) -I$(INCFORMS) -c xisp.c
316
317xisp.xpm:
318	cp $(XPMIMAGE) xisp.xpm
319
320pcode.o: pcode.h pcode.c
321	$(CC) $(CCOPTS) -c pcode.c
322
323network.o: network.h network.c
324	$(CC) $(CCOPTS) -c network.c
325
326xispdial: xispdial.o $(SHAREOBJ)
327	$(CC) $(CCOPTS) -o xispdial xispdial.o $(SHAREOBJ)
328
329xispdial.o: xispdial.c common.h version.h
330	$(CC) $(CCOPTS) -c xispdial.c
331
332xisprccv: xisprccv.o pcode.o $(SHAREOBJ)
333	$(CC) -o xisprccv xisprccv.o pcode.o $(SHAREOBJ) $(EXTRALIBS) -lm
334
335xisprccv.o: xisprccv.c common.h version.h pcode.h logs.h
336	$(CC) $(CCOPTS) -c xisprccv.c
337
338xispterm: xispterm.h xispterm.c
339	$(CC) $(CCOPTS) -I$(INCX11) -I$(INCFORMS) -o xispterm xispterm.c \
340	$(EXTRALIBS) -L$(LIBX11) $(LINKFORMS) -lXpm -lX11 -lm
341
342rcio.o: rcio.h rcio.c common.h version.h
343	$(CC) $(CCOPTS) -I$(INCX11) -I$(INCFORMS) -c rcio.c
344
345logs.o: logs.h logs.c version.h
346	$(CC) $(CCOPTS) -c logs.c
347
348xisp_euidaccess.o: xisp_euidaccess.c
349	$(CC) $(CCOPTS) -c xisp_euidaccess.c
350
351xispid: xispid.c
352	$(CC) $(CCOPTS) -o xispid xispid.c
353
354xisp.1: xisp.man
355	sed -e s,@ETCPPP@,$(ETCPPP),g \
356	-e s,@USRLIBPPP@,$(USRLIBPPP),g \
357	-e s,@USRLOCAL@,$(USRLOCAL),g < xisp.man > xisp.1
358
359install: xisp xispdial xisprccv xispterm xispid xisp.1
360	if [ ! -d $(DESTDIR)$(BINX11) ]; then \
361	  $(INSTALL) -d $(DESTDIR)$(BINX11); fi
362	$(INSTALL) -m 750 -s \
363	  xisp $(DESTDIR)$(BINX11)/xisp
364	if [ $(XISPUSER) != root ]; then \
365	  chmod 4750 $(DESTDIR)$(BINX11)/xisp; fi
366	if [ ! -d $(DESTDIR)$(USRLIBPPP) ]; then \
367	  $(INSTALL) -d $(DESTDIR)$(USRLIBPPP); fi
368	$(INSTALL) -m 750 -s \
369	  xispdial $(DESTDIR)$(USRLIBPPP)/xispdial
370	if [ $(XISPUSER) != root ]; then \
371	  chmod 4750 $(DESTDIR)$(USRLIBPPP)/xispdial; fi
372	$(INSTALL) -m 750 -s \
373	  xispterm $(DESTDIR)$(USRLIBPPP)/xispterm
374	if [ ! -d $(DESTDIR)$(USRLOCAL) ]; then \
375	  $(INSTALL) -d $(DESTDIR)$(USRLOCAL); fi
376	$(INSTALL) -m 750 -s \
377	  xisprccv $(DESTDIR)$(USRLOCAL)/xisprccv
378	if [ $(XISPUSER) != root ]; then \
379	  chmod 4750 $(DESTDIR)$(USRLOCAL)/xisprccv; fi
380	$(INSTALL) -m 750 -s \
381	  xispid $(DESTDIR)$(USRLOCAL)/xispid
382#	if [ ! -d $(DESTDIR)$(OPTSDIR) ]; then \
383#	  $(INSTALL) -d $(DESTDIR)$(OPTSDIR); fi
384#	$(INSTALL) -g $(GROUP) -m 640 -o root \
385#	  options.xisp $(DESTDIR)$(OPTSDIR)/options.xisp
386	if [ ! -d $(DESTDIR)$(MANDIR) ]; then \
387	  $(INSTALL) -d $(DESTDIR)$(MANDIR); fi
388	$(INSTALL) -m 644 \
389	  xisp.1 $(DESTDIR)$(MANDIR)/xisp.1
390	sed -e s/__XISPGROUP/$(GROUP)/ \
391	  -e sM__XISPIDM$(USRLOCAL)/xispidM \
392	  < ip-up.xisp > ip-up.install
393	sed -e s/__XISPGROUP/$(GROUP)/ \
394	  -e sM__XISPIDM$(USRLOCAL)/xispidM \
395	  < ip-down.xisp > ip-down.install
396	if [ ! -d $(DESTDIR)$(INSTPPPDIR) ]; then \
397	  $(INSTALL) -d $(DESTDIR)$(INSTPPPDIR); fi
398	if [ -f $(DESTDIR)$(INSTPPPDIR)/ip-up ]; then \
399	  mv -f $(DESTDIR)$(INSTPPPDIR)/ip-up \
400	  $(DESTDIR)$(INSTPPPDIR)/ip-up.bak; fi
401	$(INSTALL) -m 750 \
402	  ip-up.install $(DESTDIR)$(INSTPPPDIR)/ip-up.xisp
403	if [ -f $(DESTDIR)$(INSTPPPDIR)/ip-down ]; then \
404	  mv -f $(DESTDIR)$(INSTPPPDIR)/ip-down \
405	  $(DESTDIR)$(INSTPPPDIR)/ip-down.bak; fi
406	$(INSTALL) -m 750 \
407	  ip-down.install $(DESTDIR)$(INSTPPPDIR)/ip-down.xisp
408	rm -f ip-up.install ip-down.install
409	for i in $(MODEM_DEVS); do \
410	sed -e sM__DEVICEM/dev/$${i}M \
411	  < xisp.peers.device > xisp_$${i}; \
412	done
413	sed -e sM__DIALER_PATHM$(USRLIBPPP)M \
414	  < xisp.peers.dialer > xisp_dialer
415	if [ ! -d $(DESTDIR)$(INSTPPPDIR)/peers ]; then \
416	  $(INSTALL) -d $(DESTDIR)$(INSTPPPDIR)/peers; fi
417	for i in $(MODEM_DEVS); do \
418	if [ -f $(DESTDIR)$(INSTPPPDIR)/peers/xisp_$${i} ]; then \
419	  mv -f $(DESTDIR)$(INSTPPPDIR)/peers/xisp_$${i} \
420	  $(DESTDIR)$(INSTPPPDIR)/peers/xisp_$${i}.bak; fi; \
421	done
422	for i in $(MODEM_DEVS); do \
423	$(INSTALL) -m 640 \
424	  xisp_$$i $(DESTDIR)$(INSTPPPDIR)/peers/xisp_$${i}; \
425	done
426	if [ -f $(DESTDIR)$(INSTPPPDIR)/peers/xisp_dialer ]; then \
427	  mv -f $(DESTDIR)$(INSTPPPDIR)/peers/xisp_dialer \
428	  $(DESTDIR)$(INSTPPPDIR)/peers/xisp_dialer.bak; fi
429	$(INSTALL) -m 640 \
430	  xisp_dialer $(DESTDIR)$(INSTPPPDIR)/peers/xisp_dialer
431	for i in $(MODEM_DEVS); do \
432	rm -f xisp_$${i}; \
433	done
434	rm -f xisp_dialer
435
436clean:
437	rm -f *.o xisp xispdial xisprccv xispterm xispid xisp.xpm xisp.1
438
439uninstall:
440	rm -f $(DESTDIR)$(BINX11)/xisp \
441	  $(DESTDIR)$(USRLIBPPP)/xispdial \
442	  $(DESTDIR)$(USRLIBPPP)/xispterm \
443	  $(DESTDIR)$(USRLOCAL)/xisprccv \
444	  $(DESTDIR)$(USRLOCAL)/xispid \
445	  $(DESTDIR)$(MANDIR)/xisp.1 \
446	  $(DESTDIR)$(INSTPPPDIR)/peers/xisp_dialer \
447	  $(DESTDIR)$(INSTPPPDIR)/peers/xisp_dialer.bak
448	for i in $(MODEM_DEVS); do \
449	rm -f $(DESTDIR)$(INSTPPPDIR)/peers/xisp_$${i} \
450	  $(DESTDIR)$(INSTPPPDIR)/peers/xisp_$${i}.bak; \
451	done
452	mv -f $(DESTDIR)$(INSTPPPDIR)/ip-up \
453	  $(DESTDIR)$(INSTPPPDIR)/ip-up.xisp
454	if [ -f $(DESTDIR)$(INSTPPPDIR)/ip-up.bak ]; then \
455	  mv -f $(DESTDIR)$(INSTPPPDIR)/ip-up.bak \
456	  $(DESTDIR)$(INSTPPPDIR)/ip-up; fi
457	mv -f $(DESTDIR)$(INSTPPPDIR)/ip-down \
458	  $(DESTDIR)$(INSTPPPDIR)/ip-down.xisp
459	if [ -f $(DESTDIR)$(INSTPPPDIR)/ip-down.bak ]; then \
460	  mv -f $(DESTDIR)$(INSTPPPDIR)/ip-down.bak \
461	  $(DESTDIR)$(INSTPPPDIR)/ip-down; fi
462
463