1#
2# installation directories. DIR contains the main interactive plan program,
3# SBIN contains netplan, and LIB contains everything else (pland, notifier,
4# plan.help, PostScript skeletons). If you change any of these, remove util.o.
5# INCDIR is for searching nonstandard include directories, eg. "-I/usr/X11R5".
6# ALWAYS TERMINATE macro assignments with #. DO NOT put a blank between the
7# path and the #, or you'll get compile errors. DO NOT put blanks before and
8# after "=", this is parsed and rewritten by the configure script.
9#
10#				# user-callable executable (plan)
11DIR=${PREFIX}/bin
12#				# auxiliary programs (pland, notifier, PS)
13LIB=${DATADIR}
14#				# help file (plan.help)
15SBIN=${PREFIX}/bin
16#				# system programs (netplan)
17HELP=${DOCSDIR}
18#				# netplan expects netplan.dir/ here
19NETPLANDIR=${DATADIR}
20#				# unformatted nroff manpage (plan.[14])
21MAN=${MANPREFIX}/man/man
22#				# formatted manpage (plan.[14])
23CATMAN=${MANPREFIX}/man/cat
24#				# subdirectory in home dir, or empty
25PLANRULE=
26#				# lockfile for plan, %d is uid
27PLANLOCK="/tmp/.plan%d"
28#				# lockfile for pland, %d is uid
29PLANDLOCK="/tmp/.pland%d"
30#				# extra cc options, e.g. "-I/var/include"
31INCDIR=
32#				# standard Unix lexer
33LEX=lex
34#				# standard Unix compiler generator
35YACC=yacc
36#				# numerical user ID of <nobody> account
37NOB_UID=65534
38#				# default numerical group ID of <nobody>
39NOB_GID=65534
40# 				# used by plan to pre-process holiday files,
41#				# plan will check if this file really exists
42CPP_PATH='/lib/cpp -P -I$(HELP)'
43#				# by default, fork on startup? TRUE or FALSE
44DOFORK=TRUE
45#				# switching to ISO8859-1
46ESCTOISOLATIN=\"\\033\(B\"
47#				# switching to JIS X0201-1976 roman
48ESCTOJISLATIN=\"\\033\(J\"
49#				# uncomment this for Japanese version of plan
50#				# JAPAN requires X11R5 and a Japanese env.
51JAPANDEFS='-DJAPAN -DESCTOASCII=$(ESCTOJISLATIN) -DLENTOASCII=3 -DLOCALE_SJIS=ja_JP.SJIS -DLOCALE_EUC=ja_JP.EUC'
52.if defined(JAPANESE)
53JAPAN=-DJAPAN -DESCTOASCII=$(ESCTOJISLATIN) -DLENTOASCII=3 \
54	-DLOCALE_SJIS=\"ja_JP.SJIS\" -DLOCALE_EUC=\"ja_JP.EUC\"
55.else
56JAPAN=
57.endif
58#				# default holiday locale
59HOLIDAY=german
60#				# do NOT define -O2 on DEC OSF/1 machines!
61#				# use -O instead of -O2 on HP and Solaris
62DEBUG=${CFLAGS}
63#				# what to do without make arguments
64DEFTARGET=linux
65#------------------------- end of configuration section ----------------------
66
67OPT=$(DEBUG) $(PLANRULE) -DPLANLOCK=\"$(PLANLOCK)\" -DPLANDLOCK=\"$(PLANDLOCK)\"
68
69DESTDIR=
70
71#
72# compiler flags. Add these to *_C macro as needed:
73#
74#	-DDESKTOP	for SGIs running IRIX 5.2, desktop look&feel, 4Dwm only
75#	-DBSD		use setpgrp(0, 0) and new wait(); also for OSF systems
76#	-DSUN		for SunOS 4.1.x systems
77#	-DIBM		for IBM AIX systems, includes sys/lockf.h
78#	-DULTRIX	for Ultrix 4.3/Motif 1.1.3 systems, different font
79#	-DPID_T=long	for IBM/AIX systems and other systems with pids>30000
80#	-DFIXMBAR	use if pulldowns in the menu bar are empty (HP/UX 8.x)
81#	-DNOMSEP	remove all XmVaSEPARATORs in pulldowns (some HP/UX's)
82#	-DNOREGEX	if you don't have regcmp() and regex()
83#	-DNOLIMIT	if there is no /usr/include/limits.h
84#	-DNOKILL0	if kill(pid,0) works (sends no signal, pid check only)
85#	-DFLOCK		use flock instead of lockf
86#	-DNOLOCK	use if lockf() and flock() are both undefined
87#	-DUSERAND	use rand/srand instead of random/srandom
88#	-DBACKING	for window backing store if supported (untested)
89#	-DRABBITS	daemon survives logout (if there is no utmp/getpwnam)
90#	-DDESTROYBUG	fixes Linux XtDestroyWidget bug that kills plan when a
91#			Done button is used. WARNING: introduces a memory leak
92#	-DSTDLIBMALLOC	do not include <malloc.h>, use <stdlib.h> instead,
93#			(FreeBSD)
94#
95# Note for HP systems: if you have the PROG-AUX option, remove -DNOREGEX
96# from HP_C, and add -lPW to HP_L1. On Suns, try removing -DNOREGEX (and
97# adding -lPW if necessary) to get regular expression searches. If you have
98# problems with HP/UX and missing pulldowns, try adding/removing -DFIXMBAR.
99# Sun users using Solaris 2.1 and gcc may have to add -DNOMSEP for pulldowns,
100# and -DNOLOCK if "deadlock avoided" messages appear. There is at least one
101# IBM that will compile plan only with -DNOLOCK if -DIBM is removed.
102# Don't use a renamed copy of this Makefile, it uses itself recursively.
103# If your linker can't find libraries such as libXm.a, setenv LD_LIBRARY_PATH.
104# SGI is compiled with -32 because IRIX 6.2 doesn't install -n32 Motif libs
105# by default, and the cvd debugger works better with -32 too.
106#
107
108SGI4_C	=
109SGI5_C	= -DSYSV -DSVR4 -DDESKTOP
110SGI6_C	= -n32 -mips3 -woff 1167 -DSYSV -DSVR4 -DDESKTOP -D_BSD_SIGNALS
111HP8_C	= -Aa -I/usr/include/Motif1.1 -I/usr/include/X11R4 -I/usr/include\
112	  -D_INCLUDE_HPUX_SOURCE -D_INCLUDE_POSIX_SOURCE\
113	  -D_INCLUDE_XOPEN_SOURCE -DNOREGEX -DFIXMBAR -DRABBITS
114HP9_C	= -Aa -I/usr/include/Motif1.2 -I/usr/include/X11R5 -I/usr/include\
115	  -D_HPUX_SOURCE -DRABBITS -DNOMSEP -DNOREGEX -DUSERAND
116HP_C    = -Ae -I/usr/include/Motif1.2_R6 -I/usr/include/X11R6 -I/usr/include\
117          -D_HPUX_SOURCE -DRABBITS
118HPG_C	= -ansi -I/usr/include/Motif1.2 -I/usr/include/X11R5 -DHPGCC\
119	  -DRABBITS -DNOMSEP -DNOREGEX -DUSERAND
120IBM_C	= -O -I/usr/include/X11 -D_ALL_SOURCE -DIBM -DAIXV3 -DNOMSEP -DRABBITS
121PS2_C	= -O -I/usr/include/X11 -D_POSIX_SOURCE\
122	  -DIBM -D_XOPEN_SOURCE -D_ANSI_C_SOURCE -DNOMSEP -DNOLOCK
123OSF_C	= -DNOREGEX -DBSD -DOSF -DRABBITS -DNOMSEP -DFLOCK
124SUN_C	= -DSUN -DRABBITS -DNOMSEP
125SUNG_C	= -DSUN -DRABBITS -DNOMSEP -ansi -I/usr/5include -I/usr/include/X11\
126	  -DNOREGEX
127SPARC_C	= -DSUN -DRABBITS -DNOMSEP -ansi -I/usr/5include -I/usr/include/X11\
128	  -DNOREGEX -Dsparc
129SOL_C	= -DSUN -DSOLARIS2 -DNOMSEP -I/usr/local/X11R5/include\
130	  -I/usr/local/X11R5/include/X11 -I/usr/ucbinclude
131SOLG_C	= -DSUN -DSOLARIS2 -DNOMSEP -DUSERAND -I/usr/openwin/include\
132	  -I/usr/dt/include -L/usr/dt/lib
133ULTRIX_C= -DNOLOCK -DULTRIX -DRABBITS -DNOMSEP
134CDC_C	= -DUSERAND
135MIPS_C	= -DMIPS -systype sysv -Wf,-XNd4000 -DPID_T="int" -DMIPS\
136	  -I/usr/include/bsd
137DG_C	=
138SNI_C	= -DSYSV -DNOREGEX -DUSERAND
139ISC_C	= -DSYSV -DNOREGEX -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_SYSV3
140NCR_C	= -DNCR -DNOMSEP -DRABBITS
141USL_C	= -DNOKILL0 -I/usr/X/include
142BSDI_C	= -DBSD -DRABBITS -I/usr/X11/include -DFLOCK -DNOREGEX -Dbsdi
143BSDIG_C	= -DBSD -DRABBITS -I/usr/X11/include -DFLOCK -DNOREGEX -Dbsdi -ansi
144NBSD_C	= -ansi -I/usr/X11R6/include -DBSD -DRABBITS -DNOLOCK -DNOREGEX\
145	  -DNO_MOTIF
146FBSD_C	= -ansi -I$(LOCALBASE)/include -DBSD -DNOLOCK -DNOREGEX -DRABBITS\
147	  -DSTDLIBMALLOC
148OBSD_C	= -ansi -I/usr/X11R6/include -DBSD -DRABBITS -DNOLOCK -DNOREGEX\
149	  -DNO_MOTIF -DSTDLIBMALLOC
150LINUX_C	= -W -Wall -m32 -I/usr/X11R6/include -DNOLOCK -DLINUX -Dlinux
151LINUX64_C = -W -Wall -m64 -I/usr/X11R6/include -DNOLOCK -DLINUX -Dlinux
152SVR4_C	= -DSVR4 -DSYSV -DOLDTZ -DUSERAND -DPID_T=long -DNOMSEP
153NEWS_C	= -DNEWSOS4 -DNOMSEP -DSUN -DBSD -DRABBITS -DNGROUPS_MAX=16\
154	  -DPID_T="int" -Dconst=""
155NEWSG_C	= -DNEWSOS4 -DNOMSEP -DSUN -DBSD -DRABBITS -DNGROUPS_MAX=16\
156	  -DPID_T="int"
157NEWS6_C	= -DNOMSEP -DSVR4 -DRABBITS -DNOREGEX
158NEWS6G_C= -DNOMSEP -DSVR4 -DRABBITS -DNOREGEX
159SQNT2_C	= -I/usr/include  -DUSERAND -DBACKING -DSYSV -D_NO_PROTO -DUSG
160SQNT4_C	= -I/usr/include  -DBACKING -DUSERAND -DSETREUID
161CONV_C	= -Dconvex -DBSD -DRABBITS -I/usr/X11/include -DNOLOCK -DNOREGEX -Dbsdi
162UW_C	= -I/usr/X/include -DOLDTZ -DUSERAND \
163	  -DSVR4 -D_INCLUDE_POSIX_SOURCE -D_INCLUDE_XOPEN_SOURCE
164APOL_C	= -I/usr/include/X11R5 -I/usr/include\
165	  -D_APOLLO_SOURCE -DRABBITS -DNOMSEP -DNOREGEX -DUSERAND -DNOLOCK
166OS2_C	= -Zmt -Wimplicit -Wno-unused -I$(X11ROOT)/XFree86/include -DNOMSEP \
167	  -DNOLOCK
168LYNX_C  = -DNOREGEX -D__NO_INCLUDE_WARN__ -DBSD -mthreads
169MACOSX_C= -W -Wall -I/usr/X11R6/include -I/usr/OpenMotif/include -DNOLOCK -DMACOSX -DNOREGEX
170
171
172#
173# loader flags. Requires X11, Xt, and Motif libraries. PW is for regcmp/regex.
174#
175
176SGI_L1	= -lXm_s -lXt_s -lXmu -lX11_s -lPW -lsun
177SGI_L2	= -lsun -lc_s
178SGI5_L1	= -lXm -lXt -lX11 -lPW
179SGI5_L2	= -lc
180SGI6_L1	= -lXm -lXt -lX11 -lPW
181SGI6_L2	= -L/usr/local/lib -lc
182HP8_L1	= -L/usr/lib/X11R4 -L/usr/lib/Motif1.1 -lXm -lXt -lX11 -lc
183HP8_L2	=
184HP9_L1	= -L/usr/lib/X11R5 -L/usr/lib/Motif1.2 -lXm -lXt -lX11 -lc
185HP9_L2	=
186HP_L1	= -L/usr/lib/X11R6 -L/usr/lib/Motif1.2_R6 -lXm -lXt -lX11 -lc -lPW
187HP_L2	= -lXm -lXt -lX11 -lc -lPW
188IBM_L1	= -lXm -lXt -lX11 -lPW
189IBM_L2	=
190PS2_L1	= -lXm -lXt -lX11 -lPW
191PS2_L2	=
192OSF_L1	= -lXm -lXt -lX11
193OSF_L2	=
194SUN_L1	= -lXm -lXt -lX11
195SUN_L2	= -lc
196SUNG_L1	= -L/usr/5lib -lXm -lXt -lX11
197SUNG_L2	= -L/usr/5lib -lc
198SPARC_L1= -L/usr/5lib -lXm -lXt -lX11 -lm
199SPARC_L2= -L/usr/5lib -lc
200SOL_L1	= -L$(OPENWINHOME)/lib -L$(MOTIFHOME)/lib -lXm -lXt -lX11 -lelf -lgen -lsocket -lnsl
201SOL_L2	= -lc -lsocket -lnsl
202SOLG_L1	= -L$(OPENWINHOME)/lib -L$(MOTIFHOME)/lib -lXm -lXt -lX11 -lelf -lgen -lsocket -lnsl
203SOLG_L2	= -lc -lsocket -lnsl
204ULTRIX_L1= -lXm -lXt -lX11
205ULTRIX_L2=
206CDC_L1	= -lXm -lXt -lX11 -lgen -lnsl -lsocket
207CDC_L2	= -lgen -lnsl -lsocket
208MIPS_L1	= -lXm -lXt -lX11 -lbsd -lsun -lc -lPW
209#MIPS_L1= -L/usr/X11/lib -lXm -lXt -lX11 -lbsd -lc -lPW
210MIPS_L2	=
211DG_L1	= -lXm -lXt -lX11 -lPW
212DG_L2	=
213SNI_L1	= -lXm -lXt -lX11 -lsocket -lnsl -lXmu -lXext -lgen
214SNI_L2	= -lsocket -lnsl
215ISC_L1	= -lXm -lXt -lX11 -lXmu -linet -lnsl_s
216ISC_L2	=
217NCR_L1	= -lXm -lXt -lX11 -lXext -lnsl -lgen
218NCR_L2	= -lgen
219USL_L1	= -B static -lXm -B dynamic -lXaw -lXext -lXmu -lXt -lX11 -lm -lnsl -lgen
220USL_L1m	= -lXm -lXaw -lXext -lXmu -lXt -lX11 -lm -lnsl -lgen
221USL_L2	= -lc
222BSDI_L1	= -lXm -lXt -lX11
223BSDI_L2	= -lc
224BSDIG_L1= -L/usr/X11/lib -lXm -lXt -lX11
225BSDIG_L2= -L/usr/X11/lib -lc
226NBSD_L1	= -L/usr/X11R6/lib -lXm -lXt -lX11
227NBSD_L2	= -L/usr/X11R6/lib -lc
228FBSD_L1	= -L$(LOCALBASE)/lib ${MOTIFLIB} -lXt -lSM -lICE -lX11 -lXext
229FBSD_L2	=
230OBSD_L1	= -L$(LOCALBASE)/lib ${MOTIFLIB} -lXt -lSM -lICE -lX11 -lXext
231OBSD_L2	=
232LINUX_L1= -L/usr/X11R6/lib -L/usr/lib/X11R6/lib -lXm -lXt -lX11 -lXpm -lc -lXext -lICE -lX11
233LINUX_L2= -lc
234SLINUX_L1= -L/usr/X11R6/lib -L/usr/lib/X11R6/lib -lSM /usr/X11R6/lib/libXm.a -lXt -lX11 /usr/X11R6/lib/libXpm.a -lc -lXext -lSM -lICE -lX11
235SLINUX_L2= -lc
236SVR4_L1	= -lXm -lXt -lX11 -lgen -lsocket -lnsl
237SVR4_LK2=
238NEWS_L1	= -lXm -lXt -lX11 -lXlc
239NEWS_L2	=
240NEWS6_L1= -lXm -lXt -lX11 -lsocket -lnsl
241NEWS6_L2= -lsocket -lnsl
242SQNT2_L1= -Xo -lXm -lXaw -lXmu -lXt -lXext -lX11 -lm -lPW -leli -linet -lnsl -lseq
243SQNT2_L2=
244SQNT4_L1= -lXm -lXaw -lXmu -lXt -lXext -lX11 -lm -lPW
245SQNT4_L2= -lsocket -lnsl -lseq
246CONV_L1	= -lXm -lXt -lX11
247CONV_L2	= -lc
248UW_L1	= -lXm -lXt -lX11 -lgen -lnsl
249UW_L2	= -lgen
250APOL_L1	= -L/usr/lib/X11R5 -L/usr/lib/Motif1.2 -lXm -lXt -lX11 -lc
251APOL_L2	=
252OS2_L1	= -s -Zexe -Zmtd -L$(X11ROOT)/XFree86/lib -lXm -lXt -lX11 -lsocket -lbsd -lregexp -Zsysv-signals
253OS2_L2	= -s -Zexe -Zmtd -lsocket -lbsd -Zsysv-signals
254LYNX_L1	= -mthreads -lXm_s -lXt_s -lSM -lICE -lXpm -lXext -lXmu -lX11_s -lbsd
255LYNX_L2	= -mthreads -lbsd
256MACOSX_L1= -L/usr/X11R6/lib -L/usr/OpenMotif/lib -lSM -lXm -lXt -lX11 -lXpm -lc -lXext -lSM -lICE -lX11
257MACOSX_L2= -lc
258
259
260start: $(DEFTARGET)
261
262#---------------------------------------------------------------
263# to add another system here, define XXX_C, XXX_L1, and XXX_L2 by picking
264# available options from the list at the top of this Makefile, add an echo
265# here, and add a target in the next section. Please mail patches to me.
266
267help:
268	@echo "Usage:"
269	@echo "  make sgi4      4.x SGI systems"
270	@echo "  make sgi5      5.x SGI systems, desktop look&feel, 4Dwm only"
271	@echo "  make sgi       6.x SGI systems, desktop look&feel, 4Dwm only"
272	@echo "  make hp8       HP/UX 8 with X11R4 and Motif 1.1.5"
273	@echo "  make hp9       HP/UX 9 with X11R5 and Motif 1.2"
274	@echo "  make hp        HP/UX 10/11 with X11R5 and Motif 1.2"
275	@echo "  make hpg       HP/UX 10/11 with X11R5, Motif 1.2, gcc"
276	@echo "  make ibm       IBM RS6000 running AIX"
277	@echo "  make ps2       IBM PS/2 Model 8577, AIX 1.3 with mpp level 0013 patches, gcc"
278	@echo "  make osf       DEC running OSF/1"
279	@echo "  make sun       Sun with Motif (won't work with OpenLook)"
280	@echo "  make sung      Sun 4.1.3/Solaris 2.2 with Motif, using gcc"
281	@echo "  make sparc     Sun 4.1.3 on SUN 4C, gcc, adds -Dsparc option"
282	@echo "  make sol       Solaris 2.5 with Motif, using cc"
283	@echo "  make solg      Solaris 2.5 with Motif, using gcc"
284	@echo "  make ultrix    Ultrix 4.3 with Motif 1.1.3"
285	@echo "  make cdc       CDC/Mips running EP/IX 2.1.1"
286	@echo "  make mips      Mips Magnum RISCos 4.52 with RISCwindows 4.0"
287	@echo "  make dg        Data General DG/UX, with gcc"
288	@echo "  make sni       SNI SINIX 5.41"
289	@echo "  make isc       SunSoft Interactive Unix v4.0"
290	@echo "  make ncr       NCR 3000 systems"
291	@echo "  make usl       USL SVR4.2 V1 with mdev package"
292	@echo "  make uslm      ...same with Motif run-time libraries"
293	@echo "  make linux     Linux with Motif"
294	@echo "  make slinux    Linux with statically linked Motif"
295	@echo "  make bsdi      BSDI/386"
296	@echo "  make bsdig     BSDI/386 with gcc"
297	@echo "  make netbsd    NetBSD/i386 1.0A (maybe others too)"
298	@echo "  make freebsd   FreeBSD"
299	@echo "  make openbsd	OpenBSD"
300	@echo "  make svr4      SVR4 Using gcc"
301	@echo "  make news4     Sony NEWS-OS4.x"
302	@echo "  make news4g    Sony NEWS-OS4.x with gcc"
303	@echo "  make news6     Sony NEWS-OS6.x"
304	@echo "  make news6g    Sony NEWS-OS6.x with gcc"
305	@echo "  make sqnt2     Sequent Dynix/ptx 2.0 or 2.1, using cc"
306	@echo "  make sqnt4     Sequent Dynix/ptx 4.0 or 4.1, using cc"
307	@echo "  make convex    Convex C220 running BSD, gcc"
308	@echo "  make uw        UnixWare 1.1 and 2.0"
309	@echo "  make apollo    HP/Apollo DomainOS"
310	@echo "  make os2       OS/2, XFree86"
311	@echo "  make lynx      LynxOS mag 2.5.1 092297-D i386"
312	@echo "  make macosx    MacOS X with OpenMotif 2.1 (www.ist-inc.com)"
313	@echo ""
314	@echo "  make install   install compiled programs in"
315	@echo "                 $(DIR), $(SBIN), and $(LIB)."
316	@echo "  make clean     remove everything in this dir except sources"
317	@echo ""
318	@echo "If you have problems, first read this Makefile. You may also"
319	@echo "want to change the installation directory if you are not root."
320	@echo "The installation directory is set at the top of this Makefile."
321	@echo "For a Japanese version, edit the JAPAN line in the Makefile."
322
323
324#---------------------------------------------------------------
325
326sgi: sgi6
327
328sgi4:
329	env CF="$(SGI4_C)" L1F="$(SGI_L1)" L2F="$(SGI_L2)" MYCC=cc make all
330
331sgi5:
332	env CF="$(SGI5_C)" L1F="$(SGI5_L1)" L2F="$(SGI5_L2)" MYCC=cc make all
333
334sgi6:
335	env CF="$(SGI6_C)" L1F="$(SGI6_L1)" L2F="$(SGI6_L2)" MYCC=cc make all
336
337sgi6g:
338	env CF="$(SGI6_C)" L1F="$(SGI6_L1)" L2F="$(SGI6_L2)" MYCC=gcc make all
339
340hp8:
341	env CF="$(HP8_C)" L1F="$(HP8_L1)" L2F="$(HP8_L2)" MYCC=cc make all
342
343hp9:
344	env CF="$(HP9_C)" L1F="$(HP9_L1)" L2F="$(HP9_L2)" MYCC=cc make all
345
346hp:
347	env CF="$(HP_C)" L1F="$(HP_L1)" L2F="$(HP_L2)" MYCC=cc make all
348
349hpg:
350	bison -y -d parser.y
351	-mv y.tab.c parser.c
352	env CF="$(HPG_C)" L1F="$(HP_L1)" L2F="$(HP_L2)" MYCC=gcc make all
353
354ibm:
355	env CF="$(IBM_C)" L1F="$(IBM_L1)" L2F="$(IBM_L2)" MYCC=cc make all
356
357ps2:
358	env CF="$(PS2_C)" L1F="$(PS2_L1)" L2F="$(PS2_L2)" MYCC=gcc make all
359
360osf:
361	env CF="$(OSF_C)" L1F="$(OSF_L1)" L2F="$(OSF_L2)" MYCC=cc make all
362
363sun:
364	env CF="$(SUN_C)" L1F="$(SUN_L1)" L2F="$(SUN_L2)" MYCC=acc make all
365
366sung:
367	env CF="$(SUNG_C)" L1F="$(SUNG_L1)" L2F="$(SUNG_L2)" MYCC=gcc make all
368
369sung-netplan:
370	env CF="$(SUNG_C)" L1F="$(SUNG_L1)" L2F="$(SUNG_L2)" MYCC=gcc make netplan
371
372sparc:
373	env CF="$(SPARC_C)" L1F="$(SPARC_L1)" L2F="$(SPARC_L2)" MYCC=gcc \
374		make NOB_UID=65534 NOB_GID=65534 all
375
376sol:
377	env CF="$(SOL_C)" L1F="$(SOL_L1)" L2F="$(SOL_L2)" MYCC=cc make all
378
379solg:
380	env CF="$(SOLG_C)" L1F="$(SOLG_L1)" L2F="$(SOLG_L2)" MYCC="LD_RUN_PATH=/usr/dt/lib gcc" make all
381
382ultrix:
383	env CF="$(ULTRIX_C)" L1F="$(ULTRIX_L1)" L2F="$(ULTRIX_L2)" MYCC=cc make all
384
385cdc:
386	env CF="$(CDC_C)" L1F="$(CDC_L1)" L2F="$(CDC_L2)" MYCC=cc make all
387
388mips:
389	env CF="$(MIPS_C)" L1F="$(MIPS_L1)" L2F="$(MIPS_L2)" MYCC=cc make all
390
391dg:
392	env CF="$(DG_C)" L1F="$(DG_L1)" L2F="$(DG_L2)" MYCC=gcc make all
393
394sni:
395	env CF="$(SNI_C)" L1F="$(SNI_L1)" L2F="$(SNI_L2)" MYCC=cc make all
396
397isc:
398	env CF="$(ISC_C)" L1F="$(ISC_L1)" L2F="$(ISC_L2)" MYCC=gcc make all
399
400ncr:
401	env CF="$(NCR_C)" L1F="$(NCR_L1)" L2F="$(NCR_L2)" MYCC=cc make all
402
403usl:
404	env CF="$(USL_C)" L1F="$(USL_L1)" L2F="$(USL_L2)" MYCC=cc make all
405
406uslm:
407	env CF="$(USL_C)" L1F="$(USL_L1m)" L2F="$(USL_L2)" MYCC=cc make all
408
409bsdi:
410	env CF="$(BSDI_C)" L1F="$(BSDI_L1)" L2F="$(BSDI_L2)" MYCC=acc make all
411
412bsdig:
413	env CF="$(BSDIG_C)" L1F="$(BSDIG_L1)" L2F="$(BSDIG_L2)" MYCC=gcc make all
414
415netbsd:
416	env CF="$(NBSD_C)" L1F="$(NBSD_L1)" L2F="$(NBSD_L2)" MYCC=gcc $(MAKE) all
417
418freebsd:
419	env CF="$(FBSD_C)" L1F="$(FBSD_L1)" L2F="$(FBSD_L2)" MYCC=${CC} make all
420
421openbsd:
422	env CF="$(OBSD_C)" L1F="$(OBSD_L1)" L2F="$(OBSD_L2)" MYCC=${CC} make all
423
424svr4:
425	env CF="$(SVR4_C)" L1F="$(SVR4_L1)" L2F="$(SVR4_L2)" MYCC=gcc make all
426
427linux:
428	-env CF="$(LINUX_C)" L1F="$(LINUX_L1)" L2F="$(LINUX_L2)" MYCC=gcc make all
429	@echo --------------------
430	@echo 'NOTE: if compilation failed with "cannot find -lXt", try "make clean; make linux64"'
431
432linux64:
433	env CF="$(LINUX64_C)" L1F="$(LINUX_L1)" L2F="$(LINUX_L2)" MYCC=gcc make all
434
435slinux:
436	env CF="$(LINUX_C)" L1F="$(SLINUX_L1)" L2F="$(SLINUX_L2)" MYCC=gcc make all
437
438news4:
439	make CF="$(NEWS_C)" L1F="$(NEWS_L1)" L2F="$(NEWS_L2)" MYCC=cc all
440
441news4g:
442	make CF="$(NEWSG_C)" L1F="$(NEWS_L1)" L2F="$(NEWS_L2)" MYCC=gcc all
443
444news6:
445	env CF="$(NEWS6_C)" L1F="$(NEWS6_L1)" L2F="$(NEWS6_L2)" MYCC=/usr/bin/cc make all
446
447news6g:
448	env CF="$(NEWS6G_C)" L1F="$(NEWS6_L1)" L2F="$(NEWS6_L2)" MYCC=gcc make all
449
450sqnt2:
451	env CF="$(SQNT2_C)"  L1F="$(SQNT2_L1)" L2F="$(SQNT2_L2)" MYCC=cc make all
452
453sqnt4:
454	env CF="$(SQNT4_C)"  L1F="$(SQNT4_L1)" L2F="$(SQNT4_L2)" MYCC=cc make all
455
456convex:
457	env CF="$(CONV_C)" L1F="$(CONV_L1)" L2F="$(CONV_L2)" MYCC=gcc make all
458
459uw:
460	env CF="$(UW_C)" L1F="$(UW_L1)" L2F="$(UW_L2)" MYCC=cc make all
461
462apollo:
463	env CF="$(APOL_C)" L1F="$(APOL_L1)" L2F="$(APOL_L2)" MYCC=cc make all
464
465os2:
466	make all CF="$(OS2_C)" L1F="$(OS2_L1)" L2F="$(OS2_L2)" MYCC=gcc
467
468lynx:
469	make CF="$(LYNX_C)" L1F="$(LYNX_L1)" L2F="$(LYNX_L2)" MYCC=gcc \
470	                LEX="flex -l" YACC="bison -y" all
471
472macosx:
473	env CF="$(MACOSX_C)" L1F="$(MACOSX_L1)" L2F="$(MACOSX_L2)" MYCC=gcc make all
474
475#------------------------------ don't change anything below ------------------
476
477INC	= bm_blank.h bm_except.h bm_icon.h bm_iconsub.h bm_checker.h\
478	  bm_private.h bm_message.h bm_noticon.h bm_recycle.h bm_script.h\
479	  bm_circle.h bm_chkcircle.h bm_tri.h bm_todo.h cal.h config.h proto.h\
480	  notifier.h version.h resources.h grok.h form.h
481
482P_SRC	= main.c popup.c print.c gotomenu.c network.c\
483	  calmenu.c monmenu.c mondraw.c editmenu.c editdraw.c edit.c\
484	  msgmenu.c cycmenu.c cyccalc.c keymenu.c excmenu.c\
485	  cnfmenu.c yearmenu.c yeardraw.c holmenu.c adjmenu.c\
486	  weekmenu.c weekdraw.c weekcalc.c servmenu.c usermenu.c confmenu.c\
487	  yovmenu.c yovdraw.c yovcalc.c daymenu.c daydraw.c daycalc.c\
488	  usersel.c psdraw.c xutil.c help.c dbase.c file_r.c file_w.c\
489	  convert.c util.c time.c sublist.c parser.y parser.lex holiday.c\
490	  language.c g_dbase.c g_dbfile.c g_formfile.c g_formop.c \
491	  vcalendar_r.c vcalendar_w.c
492
493P_OBJ	= main.o popup.o print.o gotomenu.o network.o\
494	  calmenu.o monmenu.o mondraw.o editmenu.o editdraw.o edit.o\
495	  msgmenu.o cycmenu.o cyccalc.o keymenu.o excmenu.o\
496	  cnfmenu.o yearmenu.o yeardraw.o holmenu.o adjmenu.o\
497	  weekmenu.o weekdraw.o weekcalc.o servmenu.o usermenu.o confmenu.o\
498	  yovmenu.o yovdraw.o yovcalc.o daymenu.o daydraw.o daycalc.o\
499	  usersel.o psdraw.o xutil.o help.o dbase.o file_r.o file_w.o\
500	  convert.o util.o time.o sublist.o parser.o lex.yy.o holiday.o\
501	  language.o g_dbase.o g_dbfile.o g_formfile.o g_formop.o \
502	  vcalendar_r.o vcalendar_w.o
503
504D_SRC	= daemon.c dbase.c file_r.c util.c time.c cyccalc.c network.c\
505	  convert.c language.c g_dbase.c g_dbfile.c g_formfile.c g_formop.c\
506	  vcalendar_r.c
507D_OBJ	= daemon.o dbase.o file_r.o util.o time.o cyccalc.o network.o\
508	  convert.o language.o g_dbase.o g_dbfile.o g_formfile.o g_formop.o\
509	  vcalendar_r.o
510
511N_SRC	= notifier.c notmenu.c
512N_OBJ	= notifier.o notmenu.o
513
514S_SRC	= netplan.c netplan_acl.c
515S_OBJ	= netplan.o netplan_acl.o
516S_INC	= netplan.h netplan_if.h
517
518CCLINE	= $(MYCC) $(OPT) $(CF) $(JAPAN) $(INCDIR)
519
520#---------------------------------------------------------------
521all:	plan pland notifier netplan
522
523plan:	$(P_OBJ)
524	$(CCLINE) -o plan $(P_OBJ) $(L1F)
525
526pland:	$(D_OBJ)
527	$(CCLINE) -o pland $(D_OBJ) $(L2F)
528
529notifier: $(N_OBJ)
530	$(CCLINE) -o notifier $(N_OBJ) $(L1F)
531
532netplan: $(S_OBJ) $(MAKEFILE)
533	$(CCLINE) -o netplan $(S_OBJ) \
534		-L/usr/local/lib $(L2F)
535
536.c.o:
537	$(CCLINE) -c $<
538
539print.o: print.c $(MAKEFILE)
540	$(CCLINE) -c -DLIB=\"$(LIB)\" $<
541
542network.o: network.c netplan_if.h $(MAKEFILE)
543	$(CCLINE) -c -DLIB=\"$(LIB)\" $<
544
545usermenu.o: usermenu.c $(MAKEFILE)
546	$(CCLINE) -c -DLIB=\"$(LIB)\" $<
547
548holiday.o: holiday.c $(MAKEFILE)
549	$(CCLINE) -DCPP_PATH=\"$(CPP_PATH)\" -c -DLIB=\"$(DOCS)\" $<
550
551util.o: util.c $(MAKEFILE)
552	$(CCLINE) -c -DPATH=\"$(LIB):$(DIR):$(HELP)\" $<
553
554netplan.o: netplan.c netplan_if.h $(MAKEFILE)
555	$(CCLINE) -DNOBODY_UID=$(NOB_UID) -DNOBODY_GID=$(NOB_GID) -c -DLIB=\"$(NETPLANDIR)\" $<
556#	$(MYCC) $(OPT) $(CF) -DNOBODY_UID=`grep nobody /etc/passwd | head -1 | awk -F: '{print $$3}'` -DNOBODY_GID=`grep nobody /etc/passwd | head -1 | awk -F: '{print $$4}'` $(INCDIR) -c -DLIB=\"$(NETPLAN)\" $<
557
558daemon.c: $(Makefile)
559
560parser.c: parser.y
561	$(YACC) -d parser.y
562	-mv y.tab.c parser.c
563
564lex.yy.o: lex.yy.c parser.c
565	$(CCLINE) -c lex.yy.c
566
567lex.yy.c: parser.lex
568	$(LEX) parser.lex
569
570$(P_OBJ): config.h cal.h proto.h
571$(D_OBJ): config.h proto.h
572$(N_OBJ): notifier.h
573$(S_OBJ): $(S_INC)
574main.o popup.o file_r.o file_w.o daemon.o notifier.o: version.h
575main.o:	resources.h
576g_dbase.o g_dbfile.o g_formfile.o g_formop.o: grok.h form.h
577
578#---------------------------------------------------------------
579install:
580	-rm -f $(DESTDIR)$(DIR)/pland $(DESTDIR)$(DIR)/notifier $(DESTDIR)$(LIB)/netplan
581	mkdir -p $(DESTDIR)$(DIR)
582	cp plan $(DESTDIR)$(DIR)
583	mkdir -p $(DESTDIR)$(LIB)
584	cp pland notifier ../misc/plan_cal.ps ../language/plan* $(DESTDIR)$(LIB)
585	mkdir -p $(DESTDIR)$(SBIN)
586	cp netplan $(DESTDIR)$(SBIN)
587	-(test x'$(JAPAN)' != x && cp ../misc/plan_calSJ.ps $(DESTDIR)$(LIB)) || exit 0
588	mkdir -p $(DESTDIR)$(HELP)
589	cp ../language/plan.help $(DESTDIR)$(HELP)
590	-strip $(DESTDIR)$(DIR)/plan $(DESTDIR)$(LIB)/pland $(DESTDIR)$(LIB)/notifier $(DESTDIR)$(SBIN)/netplan
591	-chmod 755 $(DESTDIR)$(DIR)/plan $(DESTDIR)$(LIB)/pland $(DESTDIR)$(LIB)/notifier $(DESTDIR)$(LIB)/netplan
592	-chmod 644 $(DESTDIR)$(HELP)/plan.help $(DESTDIR)$(LIB)/plan_cal.ps $(DESTDIR)$(LIB)/plan.lang.*
593	-(test x'$(JAPAN)' != x && chmod 644 $(DESTDIR)$(LIB)/plan_calSJ.ps) || exit 0
594	mkdir -p $(DESTDIR)$(NETPLANDIR)/netplan.dir
595	-chmod 700 $(DESTDIR)$(NETPLANDIR)/netplan.dir || exit 0
596	-(test x'$(CATMAN)' != xNONE -a -x "`which nroff`" && nroff -man ../misc/plan.1 >../misc/plan.1cat) || exit 0
597	-(test x'$(CATMAN)' != xNONE -a -x "`which nroff`" && nroff -man ../misc/plan.4 >../misc/plan.4cat) || exit 0
598	-(test x'$(CATMAN)' != xNONE -a -x "`which nroff`" && nroff -man ../misc/netplan.1 >../misc/netplan.1cat) || exit 0
599	-(test x'$(MAN)'    != xNONE -a -d $(DESTDIR)$(MAN)1 && cp ../misc/plan.1 $(DESTDIR)$(MAN)1/plan.1) || exit 0
600	-(test x'$(MAN)'    != xNONE -a -d $(DESTDIR)$(MAN)4 && cp ../misc/plan.4 $(DESTDIR)$(MAN)4/plan.4) || exit 0
601	-(test x'$(MAN)'    != xNONE -a -d $(DESTDIR)$(MAN)1 && cp ../misc/netplan.1 $(DESTDIR)$(MAN)1/netplan.1) || exit 0
602	-(test x'$(CATMAN)' != xNONE -a -d $(DESTDIR)$(CATMAN)1 && cp ../misc/plan.1cat $(DESTDIR)$(CATMAN)1/plan.1) || exit 0
603	-(test x'$(CATMAN)' != xNONE -a -d $(DESTDIR)$(CATMAN)4 && cp ../misc/plan.4cat $(DESTDIR)$(CATMAN)4/plan.4) || exit 0
604	-(test x'$(CATMAN)' != xNONE -a -d $(DESTDIR)$(CATMAN)1 && cp ../misc/netplan.1cat $(DESTDIR)$(CATMAN)1/netplan.1) || exit 0
605	-(test -f ${HOME}/.holiday || cp ../holiday/holiday_$(HOLIDAY) ${HOME}/.holiday) || exit 0
606	-(test `uname` = IRIX -o `uname` = IRIX64 && mkdir $$HOME/.icons) || exit 0
607	-(test `uname` = IRIX -o `uname` = IRIX64 && cp ../misc/Plan.icon $$HOME/.icons/Plan.icon) || exit 0
608	@echo ""
609	@echo "use ../holiday/* as templates for your ~/.holiday file"
610
611clean:
612	-rm -f *.o
613	-rm -f y.tab.h y.tab.c parser.c lex.yy.c
614	-rm -f y.output core plan pland notifier netplan tags
615
616#---------------------------------------------------------------
617# for my own use, for making releases etc.
618
619VERSION	= `egrep define.VERSION     version.h | sed 's/"$$//;s/.*"//;s/[V ]//g'`
620SVERSION= `egrep define.VERSION src/version.h | sed 's/"$$//;s/.*"//;s/[V ]//g'`
621LIST	= README HISTORY plan.spec holiday/* language/* misc/* src/resources.h.bigfonts web/*
622SRC	= Makefile $(P_SRC) daemon.c $(N_SRC) $(S_SRC) $(INC) $(S_INC) configure
623
624LDIR	= $(LOCALBASE)/lib
625BINDIR	= plan-$(VERSION)
626gMYCC	= gcc
627gCF	= -m32 -I$(LOCALBASE)/include -D_POSIX_SOURCE -DNOLOCK -DLINUX -Dlinux
628gL1F	= -L$(LDIR) $(LDIR)/libXm.a -lXt -lX11 $(LDIR)/libXpm.a -lc -lXext -lICE -lXp -lX11
629gL2F	= -lc
630
631linuxtar: $(P_OBJ) $(D_OBJ) $(N_OBJ) $(S_OBJ) $(MAKEFILE) README.linuxbin
632	-rm -rf $(BINDIR)
633	mkdir $(BINDIR) $(BINDIR)/src
634	cp README.linuxbin $(BINDIR)
635	$(gMYCC) $(OPT) $(gCF) $(JAPAN) $(INCDIR) -o $(BINDIR)/src/plan     $(P_OBJ) $(gL1F)
636	$(gMYCC) $(OPT) $(gCF) $(JAPAN) $(INCDIR) -o $(BINDIR)/src/pland    $(D_OBJ) $(gL2F)
637	$(gMYCC) $(OPT) $(gCF) $(JAPAN) $(INCDIR) -o $(BINDIR)/src/notifier $(N_OBJ) $(gL1F)
638	$(gMYCC) $(OPT) $(gCF) $(JAPAN) $(INCDIR) -o $(BINDIR)/src/netplan  $(S_OBJ) -L/usr/local/lib $(gL2F)
639	tar czvf ../plan-$(VERSION).linuxbin.tar.gz $(BINDIR)
640	rm -rf $(BINDIR)
641
642tar:
643	mv Makefile Makefile.save
644	cp Makefile.orig Makefile
645	cd ..; rm -rf plan-$(SVERSION).tar.gz plan-$(SVERSION)
646	cd ..; mkdir plan-$(SVERSION)
647	cd ..; tar chf - $(LIST) `echo " $(SRC)" | sed 's= = src/=g'` | (cd plan-$(SVERSION); tar xvf -)
648	cd ..; tar zhcvf plan-$(SVERSION).tar.gz plan-$(SVERSION)
649	cd ..; rm -rf plan-$(SVERSION)
650	mv Makefile.save Makefile
651
652rpm: tar
653	cd ..; rpmbuild -vv -ba plan-1.10-20070416.spec
654