/* * fhist - file history and comparison tools * Copyright (C) 1998, 2001, 2003, 2005 Peter Miller; * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. * * MANIFEST: How to build the release sets */ integration-build-targets: archive/[project_minus].README archive/[project_minus].lsm archive/[project_minus].pdf archive/[project_minus].spec archive/[project_minus].tar.gz archive/[project_short].gif archive/[project_short].html archive/.htaccess archive/ChangeLog ; source_file_order = README [sort [stringset [source_files] BUILDING LICENSE MANIFEST /* * These two are for time stamping the distribution, * and cranking on the version. */ common/patchlevel.h /* * These four are for building the distribution. */ Makefile.in common/config.h.in install-sh configure /* * This is for building the RPM package */ [project_minus].spec - README ] ] ; /* * These recipes build a Makefile for a user. They do not build a * Makefile useful for a development build, because no arch * information is included in the Makefile. */ makefile-per-file = [prepost "" ",M" [source_files]]; Makefile.in: etc/Makefile.head etc/Makefile.sh etc/Makefile.awk /* [vs_file] */ [makefile-per-file] { cat [resolve etc/Makefile.head [makefile-per-file]] > [target]; sh [resolve etc/Makefile.sh] [source_files] | [awk] -f [resolve etc/Makefile.awk] >> [target]; } %0%,M: etc/Makefi.file.sh etc/Makefile.awk { depfile = [match_mask %%0%%,Md [need]]; sh [resolve etc/Makefi.file.sh] %0% [resolve %0%] [resolve [depfile]] | [awk] -f [resolve etc/Makefile.awk] > [target]; } archive/[project_minus].tar.gz: [source_file_order] set shallow { tar cf - [resolve [source_file_order]] | tardy -una Peter -gna Miller -unu 0 -gnu 0 -ms 0644 -mc 07022 -now -prefix\=[project_minus] [prepost "-rp=" "" [search_list]] | gzip -9 > [target]; } archive/[project_minus].%: % set shallow { cat [resolve [need]] > [target]; } #include-cooked [addsuffix ".d" [match_mask etc/%.man [source_files]]] /* * This is not in the integration-build-targets because it takes far * too long to do. */ RPM: archive/[project_minus]-1.i386.rpm; archive/[project_minus]-1.i386.rpm archive/[project_minus]-1.src.rpm: archive/[project_minus].tar.gz etc/rpm-build.sh set shallow { sh [resolve etc/rpm-build.sh] RPM-temporary [resolve archive/[project_minus].tar.gz] ; mv RPM-temporary/RPMS/i386/[project_minus]-1.i386.rpm archive/[project_minus]-1.i386.rpm ; mv RPM-temporary/SRPMS/[project_minus]-1.src.rpm archive/[project_minus]-1.src.rpm ; rm -r RPM-temporary; } [project_minus].spec: etc/spec.sh [source_files] { version\=[version_short] sh [resolve etc/spec.sh] [source_files] > [target]; } archive/[project_minus].spec: [project_minus].spec set shallow { cat [resolve [need]] > [target]; } archive/%: etc/%.uue set shallow { uudecode -o [target] [resolve [need]]; } etc/[project_short].html.d: etc/[project_short].html set no-cascade { c_incl -nc -ns -eia -r -nrec [sort [prepost "-I" /[arch]/etc [search_list]] [prepost "-I" "/etc" [search_list]] ] -prefix "'cascade etc/"[project_short]".html ='" -suffix "';'" [resolve etc/[project_short].html] [prepost "-rlp=" "" [search_list]] /* remove leading path */ -slp [arch] "'[arch]'" /* substitute leading path */ -o [target]; } #include-cooked-nowarn etc/[project_short].html.d archive/[project_short].html: etc/[project_short].html etc/ssp.awk set shallow { roffpp [sort [prepost "-I" /[arch]/etc [search_list]] [prepost "-I" "/etc" [search_list]] ] [resolve etc/[project_short].html] | groff -Tascii -t -P-hub -man | [awk] -f [resolve etc/ssp.awk] > [target]; } etc/[project_short].lsm.d: etc/[project_short].lsm set no-cascade { c_incl -nc -ns -eia -r -nrec [sort [prepost "-I" /[arch]/etc [search_list]] [prepost "-I" "/etc" [search_list]] ] -prefix "'cascade etc/"[project_short]".lsm ='" -suffix "';'" [resolve etc/[project_short].lsm] [prepost "-rlp=" "" [search_list]] /* remove leading path */ -slp [arch] "'[arch]'" /* substitute leading path */ -o [target]; } #include-cooked-nowarn etc/[project_short].lsm.d archive/[project_minus].lsm: etc/[project_short].lsm etc/ssp.awk set shallow { roffpp [sort [prepost "-I" /[arch]/etc [search_list]] [prepost "-I" "/etc" [search_list]] ] [resolve etc/[project_short].lsm] | groff -Tascii -t -P-hub -man | [awk] -f [resolve etc/ssp.awk] > [target]; } %0%,m: %0%: etc/MANIFEST.sh set no-cascade { sh [resolve etc/MANIFEST.sh] %0% [resolve %0%] > [target]; } MANIFEST: etc/MANIFEST.head [addsuffix ",m" [stringset [source_files] - MANIFEST]] { cat [resolve [need]] > [target]; } LICENSE: lib/en/cat1/fhist_lic.1 { cp [resolve [need]] [target]; } %0%.y,M:: %0%.gen.c,Md; %0%.c,M:: %0%.c,Md; %1/%0%2.c,Md: %1/%0%2.c { c_incl -nc /* no cache */ -ns /* no system */ -eia /* empty if absent */ [sort [stringset [cc_include_flags] [prepost "-I" "/%1" [search_list]] ] ] [resolve %1/%0%2.c] -nsri /* no source relative includes */ [prepost "-rlp=" "" [search_list]] /* remove leading path */ -rlp [arch] /* remove leading architecture */ -o [target]; } archive/[project_minus].pdf: lib/en/reference.pdf set shallow { cp [resolve [need]] [target]; } archive/.htaccess: etc/htaccess set shallow { sed '/^#/d' < [resolve etc/htaccess] > [target]; } archive/ChangeLog: [source_files] { aereport change_log -p fhist -c 1 -o [target] -pw\=80 -pl\=66; } /* * Catch 22: You need to build these to be able to automatically discover * that you need to build them. Sigh. */ cascade etc/fhist.html = etc/version.so; cascade etc/fhist.lsm = etc/version.so; check-tarball: archive/[project_minus].tar.gz etc/check-tgz.sh { sh [resolve etc/check-tgz.sh archive/[project_minus].tar.gz]; }