/* Declarations */ /* $Id: Howto.cook,v 1.2 2002/08/19 03:32:04 gilles Exp $ */ /* old */ header_name = index.html; /* new */ hn_prefix_ht = index; hn_suffix_ht = .html; hn_prefix_m4 = .index; hn_suffix_m4 = .m4; hn_lang = .??; myname_name = .myname; family_name = .nav.html; regex = ! -regex '^./_tmp.*'; myname_files = [collect find . -type f -name [myname_name] -a [regex]]; header_m4_files = [collect find . -type f -name \ [hn_prefix_m4][hn_suffix_m4] -a [regex]]; /* [print [header_m4_files]]; */ myname_list = .myname_files; if [exists [myname_list]] then { myname_files_old = [collect cat [myname_list]]; docookfamily = [stringset [myname_files_old] - [myname_files]]; } else { docookfamily = ""; } [shell echo [myname_files] > [myname_list]]; family_files = [fromto %0[myname_name] %0[family_name] \ [myname_files]]; hf_from_myname = [fromto %0[myname_name] %0[header_name] \ [myname_files]]; hf_from_m4 = [fromto %0[hn_prefix_m4]%1[hn_suffix_m4] \ %0[hn_prefix_ht]%1[hn_suffix_ht] [header_m4_files]]; hf_to_link = [stringset [hf_from_myname] - [hf_from_m4]]; /* [print "hf_from_m4="[hf_from_m4]]; */ /* By default, just print usage */ all: usage; /* Cook everything useful */ s:site; sf: clean s; site: family doc headers; site_doc: family; family: [family_files]; h:headers; hf: cleanh h; headers: headers_m4; headers_ln: [hf_to_link]; headers_m4: [hf_from_m4] ; clean: clean_families clean_doc clean_tilde clean_headers_m4; /* Now the real stuff */ %0[hn_prefix_ht]%1[hn_suffix_ht]: ns %0[hn_prefix_m4]%1[hn_suffix_m4] [collect c_incl '--Language=M4' %0[hn_prefix_m4]%1[hn_suffix_m4]] { setenv M4PATH = doc/include; m4 -P '-DM4_LIDDIR=doc -DM4_HERE='./%0 \ %0[hn_prefix_m4]%1[hn_suffix_m4] \ > [target]; } ns: [family_files]; nsf: clean_ns ns; clean_ns: clean_families; [family_files]: [myname_files] set ["if" [docookfamily] "then" forced] { navsquare --output [family_name] --nosave --nokeepamtime \ --html --topbottom --sbgcolor '00FFFF' void; } [hf_to_link]: family { files = [hf_to_link]; loop file = [hf_to_link] { /* echo [file];*/ if [not [exists [file]]] then { [print [file] does not exist "=> link"]; dirf = [dirname [file]]; cd [dirf] && pwd && echo ln -s [family_name] [header_name]\;; } else [print [file] exists]; } } cleanh: clean_hf_links clean_headers_m4; clean_hf_links: { rm -f [hf_to_link]; } clean_headers_m4: { rm -f [hf_from_m4]; set clearstat; } clean_families: { if [exists [family_files]] then rm -f [family_files] set clearstat; } doc: set forced { cd doc && make doc; } htm: set forced { cd doc && make htm; } html: set forced { cd doc && make html; } txt: set forced { cd doc && make txt; } txt2: set forced { cd doc && make txt2; } ps: set forced { cd doc && make ps; } pdf: set forced { cd doc && make pdf; } clean_doc: { cd doc && make clean; } clean_tilde: { find . -name \".*~\" -o -name \"*~\" | xargs rm -f ; } get: { cd files && sh memo.wget; } /* lfo: site rsync; */ lfo: site rsync; rsync: set forced { rsync -alptvz --delete ./ \ /home/gilles/public_html/www.linux-france.org/html/prj/lfoyer; /bin/sh /home/gilles/memo/lfo-rsync; } usage: { set silent; echo "you can do :"; echo "cook site # cook everything"; echo "cook family"; echo "cook clean"; }