2 * post stuff to WWWDIR for web access
3 * index generated from
*.mm
6 WWWDIR
= wwwfiles public_html
11 .WWW.semaphore
: .SEMAPHORE
13 .EXPORT
: WWWSTYLE WWWTYPES
16 * item
:WWW
: [style
=frame
] [save
=pattern
] file ...
18 * `item'.mm generates index.html
19 * other files copied to $(WWWDIR)/`item
'
23 ":WWW:" : .MAKE .OPERATOR
24 local A B D I J L X E P R M
25 .WWW.LOCAL .WWW.REMOTE : .DO.NOTHING
26 WWWDIR := $(HOME:X=$(WWWDIR):T=F:O=1)
27 B := $(*:N=*.mm::O=1:B)
29 M := $(WWWDIR)/man/man1
32 A := WWW$(I:/=.*//:F=%(upper)s)
35 (html_info) : $$(MM2HTMLINFO) $$(MM2HTMLINIT)
36 if WWWSTYLE == "frame"
37 %.html %-index.html : %.mm (html_info)
38 $(MM2HTML) $(MM2HTMLFLAGS) $(%:N=faq.*:?> $(<:O=1)?-f $(%) -x?) -o WWWTYPES=$(WWWTYPES:@Q:@Q) $(WWWSOURCE.$(%)) $(>)
40 %.html : %.mm (html_info)
41 $(MM2HTML) $(MM2HTMLFLAGS) -o WWWTYPES=$(WWWTYPES:@Q:@Q) $(>) $(WWWSOURCE.$(%)) > $(<)
43 %.html : %.1 (html_info)
44 $(MM2HTML) $(MM2HTMLFLAGS) $(>) $(WWWSOURCE.$(%)) > $(<)
45 %-man.html : $(BINDIR)/% (html_info)
46 ignore $(>) --html 2> $(<)
48 if { test '' = '$(*)' || { strings $(*) | egrep -q '\
[\
+NAME
\?|libcmd\.|cmd
[0-9][0-9]\.
' ;} ;} && [[ "$( $(<:B) '--???html
' -- 2>&1 )" == version=[1-9]* ]]
49 then ( $(<:B) '--??html
' -- 2>$(<) ) || true
52 $(M)/%.html : .DONTCARE $(INSTALLROOT)/bin/%
60 .WWW .WWW.BIN : $(D) $(M) -
62 $(SILENT) test -d $(<) || mkdir $(<)
63 if ( J = "$(R:N=*.mm)" )
65 if I == "*-index.html"
75 return $(*$(%:T=SR):N=-l*:T=F:P=B:N!=-l*|/*)
82 if J = "$(.DLL.NAME. $(L) $($(L).VERSION):T=F)"
85 elif A || "$(I:A=.COMMAND|.ARCHIVE)" || "$(I:D:D:N=$(INSTALLROOT))" || "$(I:N=*-www)"
88 X += $$(.WWW.req $(I))
91 .WWW : $(J:D=$(M):B:S=.html)
92 $(J:D=$(M):B:S=.html) : $(I) $(I:B:S=.1:T=F:?$(I:B:S=.1)??)
93 if strings $$(*:O=1) | egrep -q '\
[\
+NAME
\?|libcmd\.|cmd
[0-9][0-9]\.
'
94 then $$(IGNORE) $$(*:O=1) '--??html
' -- 2>&1
95 elif test '' != '$$(*:N
=*.1)'
96 then $$(MM2HTML) $$(*:N=*.1)
105 $(D)/$(I) :COPY: $(I)
109 .WWW.EDIT. : .FUNCTION
111 for I $(.INSTALL.LIST.:C,^$(INSTALLROOT)/,,:N!=lib/lib/*)
113 if "$(I:B:S)" == "$(J:B:S)"
114 E += -s ',^
$(J
)$,$(I
),'
119 .WWW.LIST. : .FUNCTION
121 for I $(.INSTALL.LIST.:C,^$(INSTALLROOT)/,,:N!=lib/lib/*)
123 if "$(I:B:S)" == "$(J:B:S)"
129 .WWW .WWW.BIN : $(D)/$(B)-$(CC.HOSTTYPE).tgz
130 $(D)/$(B)-$(CC.HOSTTYPE).tgz : $(X:V)
132 This archive contains $(CC.HOSTTYPE) binaries for
134 Add the bin directory to PATH and the lib directory
135 to LD_LIBRARY_PATH or its equivalent for your system.
136 Use the --?help and --man options for online help,
137 documentation and contact info.
139 $(PAX) -wvf $(<) -x tar:gzip -s "/X.$(tmp).X/README/" $(.WWW.EDIT. $(*)) -s ',\
(.
*\
)-www
$,bin
/\
1,' -s ',.
*/lib
/,lib
/,' X.$(tmp).X $(*:N!=-l*)
144 * item ... :WWWBIN: index.mm file ... host:arch ...
147 * `host' of type
`arch' for www.bin files
150 ":WWWBIN:" : .MAKE .OPERATOR
151 local HOST ITEM ARCH BINS DIRS G
154 TYPE := $(HOST:/.*://)
155 HOST := $(HOST:/:.*//)
157 ARCH := $(PWD:D:C,/$(CC.HOSTTYPE)/,/$(TYPE)/)
161 if TYPE == "$(CC.HOSTTYPE)"
162 G := $("index.mm":G=%.html:D=$(WWWDIR)/$(ITEM):B:S)
165 $(G) : .JOINT $(ARCH)/$(ITEM)/$(ITEM).mm (html_info) .WWW.semaphore .FORCE
167 $$(MAKE) $$(-) $$(=) www
170 BINS += $(WWWDIR)/$(ITEM)/$(ITEM)-$(TYPE).tgz
171 DIRS += $(ARCH)/$(ITEM)
174 .WWW.REMOTE : $(BINS)
175 ARCH := $(ARCH:C,/src/.*,,)
177 $(BINS) :JOINT: .FORCE .WWW.semaphore
179 eval \"\`bin
/package debug use\
`\"
180 PATH=\$PATH:$(PATH):/usr/ccs/bin
184 $(MAKE) $(-) $(=) --errorid=\$dir www.bin
191 * :WWWPOST: [ host [ dir [ tmp ] ] ]
193 * post local $(WWWDIR) to host:dir putting archives in host:tmp/www-*.pax
194 * defaults: host=www dir=$(WWWDIR) tmp=tmp
197 ":WWWPOST:" : .MAKE .OPERATOR
198 local ( host dir tmp ignore ... ) $(>) www $(WWWDIR:B:S) tmp ignore
200 .WWW.ALL : .WWW.REMOTE - .WWW.LOCAL
202 .POST : .VIRTUAL base.pax delta.pax
205 *) $$(>:C,.*,rcp & $(host):$(tmp)/$(dir)-&;,)
210 pax -rvf $HOME/$(tmp)/$(dir)-delta.pax -z $HOME/$(tmp)/$(dir)-base.pax
218 .base.list. : .FUNCTION
220 X := $(sh pax -f $(%:N=*.pax):C,\n, ,G:C,^,$$(WWWDIR)/,)
223 delta.pax : .WWW.ALL base.pax $$(.base.list. $$(*))
225 pax -wvf $(<:P=A) -z $(*:N=*.pax:P=A) .
230 print .xx title=\"$(<:B:/\..*//) FAQ index\"
234 print .H 1 \"$(<:B:/\..*//) FAQ index\"
237 do exec < $i || exit 1
239 while read -r op a1 a2
248 a2=${a2%\ [Ff][Aa][Qq]}
251 print .xx link=\"$f' '$a2\"
274 '') print -r -- $op $a1 $a2 ;;
287 * [ dir ] :WWWPAGE: [ source ... ] file.mm file
289 * *.mm generates *.html
290 * faq.*.mm generates faq.mm
291 * other files copied to $(WWWDIR)[/dir]
292 * files after - (toggle) are just asserted on ::
295 ":WWWPAGE:" : .MAKE .OPERATOR
296 local B D I J O P Q S X G A
301 if X = "$(P:B:S:N=faq.*.mm)"
302 Q := $(D:+$(D).)faq.mm
314 .WWW.LOCAL : $(WWWDIR)/man/man1/$(I).html
315 $(WWWDIR)/man/man1/$(I).html : .DONTCARE
322 if A || I == "$(WWWSAVE)"
329 WWWSOURCE.$(<:O=1) += $(I:T=F:P=L=*)
337 elif ( G = "$(I:G=%.html)" )
338 $(G) : .IMPLICIT $(S) $(I)
341 if J == "*-index.html"
349 .WWW.LOCAL : $(D)/$(O)
350 $(D)/$(O) :INSTALL: $(J)
364 $(D)/$(O) :INSTALL: $(I)
365 .WWW.LOCAL : $(D)/$(O)
373 if A || I == "$(WWWSAVE)"
384 elif ( O = "$(I:G=%.html)" )
385 $(O) : $(S) .IMPLICIT $(I)
388 if J == "*-index.html"
401 * rhs done by default
404 ":WWWALL:" : .MAKE .OPERATOR
407 ":WWWMAN:" : .MAKE .OPERATOR
410 .WWW.MAN : .MAKE .FORCE
413 .WWW.LOCAL : $(WWWDIR)/man/man1/$(I:B).html
414 $(WWWDIR)/man/man1/$(I:B).html : .DO.WWW.MAN $(I)
416 for I $(sh builtin:B)
417 .WWW.LOCAL : $(WWWDIR)/man/man1/$(I).html
418 $(WWWDIR)/man/man1/$(I).html : .DO.WWW.MAN -
420 for I $("$(BINDIR)/*([!-.])":P=G:B)
422 H := $(WWWDIR)/man/man1/$(I).html
423 if ! "$(*$(H))" && I != "$(.WWW.NOMAN.:/ /|/G)"
426 elif "$(PATH:/:/ /G:X=$(I:/.*_//):T=F:O=1)"
427 H := $(WWWDIR)/man/man1/$(I:/.*_//).html
429 $(H) : .DO.WWW.MAN $(BINDIR)/$(I)
433 .WWW.SED. : .FUNCTION
435 E = s/^\(\.xx.link=.*\)%HOSTTYPE%\(.*\)%HOSTTYPE%\(.*\)/
437 E := $(E:V)\$$("\n").LI\$$("\n")\1$(T)\2$(T)\3
447 I|.sn %|A.DONTCARE|M$$(%)|
448 I|.so %|A.DONTCARE|M$$(%)|
450 .ATTRIBUTE.%.mm : .SCAN.mm