| 1 | ### Makefile for preparing a progressive release. |
| 2 | ### |
| 3 | |
| 4 | ### This makefile is distinct from test-build for several reasons. |
| 5 | ### First, this version builds a "stage4" using src directories that |
| 6 | ### have no CVS directories. Second, the binaries are build from |
| 7 | ### independent copies of the source. That is, each host release will |
| 8 | ### have it's own copy of the src directory. |
| 9 | |
| 10 | ### |
| 11 | ### This file was written and is maintained by K. Richard Pixley, |
| 12 | ### <rich@cygnus.com>. |
| 13 | ### |
| 14 | |
| 15 | CVS := /usr/latest/bin/cvs # using cvs-1.3 |
| 16 | tree := progressive |
| 17 | rooting := /usr/cygnus |
| 18 | cvs_module := progressive1 |
| 19 | gccflags := "-O" |
| 20 | release_tag := progressive-920529 |
| 21 | bundle := emacs |
| 22 | host := sun4 |
| 23 | |
| 24 | ifeq (${bundle},emacs) |
| 25 | fixincludes := |
| 26 | doc := emacs |
| 27 | else |
| 28 | fixincludes := ${host_release}/lib/fixincludes |
| 29 | doc := install |
| 30 | endif |
| 31 | |
| 32 | host_release=${host}/${release_tag} |
| 33 | objdir=${host_release}/objdir |
| 34 | |
| 35 | all: .${host}-done fluff |
| 36 | |
| 37 | testfile: all blockit ${host}+.Z |
| 38 | ${host}+.Z: |
| 39 | (cd ${host} ; tar cf - ${release_tag} \ |
| 40 | | compress -vV \ |
| 41 | | ../blockit \ |
| 42 | > ../$@) |
| 43 | |
| 44 | .${host}-done: .${host}-install .${host}-install-info |
| 45 | # rm -rf ${objdir} |
| 46 | # touch $@ |
| 47 | |
| 48 | .${host}-install: .${host}-all |
| 49 | ${MAKE} -C ${objdir} -w install-no-fixedincludes \ |
| 50 | prefix=`pwd`/${host_release} \ |
| 51 | exec_prefix=`pwd`/${host_release}/H-${host} \ |
| 52 | "CC=/usr/cygnus/${tree}.${tree}/H-${host}/bin/gcc ${gccflags}" |
| 53 | touch $@ |
| 54 | |
| 55 | .${host}-install-info: .${host}-info |
| 56 | ${MAKE} -C ${objdir} -w install-info \ |
| 57 | prefix=`pwd`/${host_release} \ |
| 58 | exec_prefix=`pwd`/${host_release}/H-${host} \ |
| 59 | "CC=/usr/cygnus/${tree}.${tree}/H-${host}/bin/gcc \ |
| 60 | ${gccflags}" |
| 61 | touch $@ |
| 62 | |
| 63 | .${host}-all: .${host}-config |
| 64 | ${MAKE} -C ${objdir} -w all "CC=/usr/cygnus/${tree}.${tree}/H-${host}/bin/gcc ${gccflags}" |
| 65 | touch $@ |
| 66 | |
| 67 | .${host}-info: .${host}-config |
| 68 | ${MAKE} -C ${objdir} -w info "CC=/usr/cygnus/${tree}.${tree}/H-${host}/bin/gcc ${gccflags}" |
| 69 | touch $@ |
| 70 | |
| 71 | .${host}-config: .${host}-src |
| 72 | cd ${objdir} ; \ |
| 73 | ../src/configure ${host} \ |
| 74 | -prefix=${rooting}/${release_tag} \ |
| 75 | -exec_prefix=${rooting}/${release_tag}/H-${host} |
| 76 | touch $@ |
| 77 | |
| 78 | .${host}-src: .${release_tag}-co .${host}-dirs |
| 79 | rm -rf ${host_release}/src |
| 80 | (tar cf - ${release_tag} | (cd ${host_release} ; tar xvf -) ; true) |
| 81 | (cd ${host_release}/${release_tag} ; find . \( -name CVS -o -name CVS.adm \) -depth -exec rm -rf {} \; ) |
| 82 | mv ${host_release}/${release_tag} ${host_release}/src |
| 83 | touch $@ |
| 84 | |
| 85 | .${host}-dirs: |
| 86 | [ -d ${host} ] || mkdir ${host} |
| 87 | [ -d ${host_release} ] || mkdir ${host_release} |
| 88 | [ -d ${objdir} ] || mkdir ${objdir} |
| 89 | touch $@ |
| 90 | |
| 91 | .${release_tag}-co: .${release_tag}-tagged |
| 92 | ${CVS} co -r ${release_tag} ${cvs_module} |
| 93 | mv ${tree} ${release_tag} |
| 94 | touch $@ |
| 95 | |
| 96 | .${release_tag}-tagged: |
| 97 | ${CVS} rtag ${release_tag} ${cvs_module} |
| 98 | touch $@ |
| 99 | |
| 100 | fluff: ${host_release}/src/Build-A-Release.mk \ |
| 101 | ${host_release}/src/Pack-A-Progressive \ |
| 102 | ${fixincludes} \ |
| 103 | ${host_release}/src/README \ |
| 104 | ${fixincludes} \ |
| 105 | ${host}/Install \ |
| 106 | ${host}/install.dvi \ |
| 107 | ${host}/tape-labels.dvi \ |
| 108 | ${host_release}/CYGNUS |
| 109 | |
| 110 | ${host}/tape-labels.dvi: ${host_release}/src/tape-labels.tex |
| 111 | cp $< ${host}/`basename $<` |
| 112 | (cd ${host} ; tex `basename $<`) |
| 113 | rm ${host}/`basename $<` |
| 114 | |
| 115 | ${host}/install.dvi: ${host_release}/src/install.texinfo |
| 116 | cp $< ${host}/`basename $<` |
| 117 | (cd ${host} ; tex `basename $<`) |
| 118 | (cd ${host} ; tex `basename $<`) |
| 119 | (cd ${host} ; tex `basename $<`) |
| 120 | rm ${host}/`basename $<` |
| 121 | |
| 122 | print-notes: ${host}/install.dvi |
| 123 | lpr $^ |
| 124 | |
| 125 | print-labels: ${host}/tape-labels.dvi |
| 126 | lpr $^ |
| 127 | |
| 128 | clean-fluff: |
| 129 | rm -f ${host_release}/src/Build-A-Release.mk \ |
| 130 | ${host_release}/src/Pack-A-Progressive \ |
| 131 | ${host_release}/lib/fixincludes \ |
| 132 | ${host_release}/Install \ |
| 133 | ${host_release}/src/${doc}-texi.in \ |
| 134 | ${host_release}/src/tape-labels-tex.in \ |
| 135 | ${host_release}/src/tape-labels.tex \ |
| 136 | ${host_release}/src/install.texinfo \ |
| 137 | ${host_release}/src/Install.in \ |
| 138 | |
| 139 | ${host_release}/src/Build-A-Release.mk: ${release_tag}/Build-A-Release.mk |
| 140 | cp $< $@ |
| 141 | |
| 142 | ${host_release}/src/Pack-A-Progressive: ${release_tag}/Pack-A-Progressive |
| 143 | cp $< $@ |
| 144 | |
| 145 | ${host_release}/src/Install.in: ${release_tag}/Install.in |
| 146 | cp $< $@ |
| 147 | |
| 148 | ${host_release}/src/CYGNUS: ${release_tag}/CYGNUS |
| 149 | cp $< $@ |
| 150 | |
| 151 | ${host_release}/CYGNUS: ${host_release}/src/CYGNUS |
| 152 | cp $< $@ |
| 153 | |
| 154 | ${host_release}/src/${doc}-texi.in: ${release_tag}/${doc}-texi.in |
| 155 | cp $< $@ |
| 156 | |
| 157 | ${host_release}/src/tape-labels-tex.in: ${release_tag}/tape-labels-tex.in |
| 158 | cp $< $@ |
| 159 | |
| 160 | ${host_release}/lib/fixincludes: ${host_release}/src/gcc/fixincludes |
| 161 | cp $< $@ |
| 162 | chmod a+x $@ |
| 163 | |
| 164 | ${host}/Install: ${host_release}/Install |
| 165 | cp $< $@ |
| 166 | chmod a+x $@ |
| 167 | |
| 168 | ${host_release}/Install: ${host_release}/src/Install |
| 169 | cp $< $@ |
| 170 | chmod a+x $@ |
| 171 | |
| 172 | ${host_release}/src/install.texinfo: ${host_release}/src/${doc}-texi.in |
| 173 | $(MAKE) process -f Build-A-Release.mk IN=$< OUT=$@ relno=`echo ${release_tag} | sed "/${tree}-/s///"` |
| 174 | |
| 175 | ${host_release}/src/tape-labels.tex: ${host_release}/src/tape-labels-tex.in |
| 176 | $(MAKE) process -f Build-A-Release.mk IN=$< OUT=$@ relno=`echo ${release_tag} | sed "/${tree}-/s///"` |
| 177 | |
| 178 | ${host_release}/src/README: ${host_release}/src/install.texinfo |
| 179 | -makeinfo +no-headers +no-split $< -o $@ |
| 180 | ### remove tags table |
| 181 | sed -e '/^Tag Table/,$$d' $@ | sed -e '$$d' > $@.new |
| 182 | mv -f $@.new $@ |
| 183 | |
| 184 | ${host_release}/src/Install: ${host_release}/src/Install.in |
| 185 | $(MAKE) process -f Build-A-Release.mk IN=$< OUT=$@ relno=`echo ${release_tag} | sed "/${tree}-/s///"` |
| 186 | chmod a+x $@ |
| 187 | |
| 188 | process: process-${host} |
| 189 | @if grep '||' ${OUT}.new ; then \ |
| 190 | echo $0 missed at least one of the triggers. 1>&2 ; \ |
| 191 | exit 1 ; \ |
| 192 | else \ |
| 193 | true ; \ |
| 194 | fi |
| 195 | mv ${OUT}.new ${OUT} |
| 196 | |
| 197 | process-sun4: |
| 198 | sed -e "/^@clear HOSTsun4/s::@set HOSTsun4:" \ |
| 199 | -e "/^@set HOSTsun3/s::@clear HOSTsun3:" \ |
| 200 | -e "/^@set HOSTdecstation/s::@clear HOSTdecstation:" \ |
| 201 | -e "/^@set HOSTiris/s::@clear HOSTiris:" \ |
| 202 | -e "/^@set HOSTrs6000/s::@clear HOSTrs6000:" \ |
| 203 | -e "/^@set FIXMES/s::@clear FIXMES:" \ |
| 204 | -e "/\|\|RELNO\|\|/s::${relno}:g" \ |
| 205 | -e "/\|\|TAPdflt\|\|/s::QIC-24:g" \ |
| 206 | -e "/\|\|DEVdflt\|\|/s::/dev/nrst8:g" \ |
| 207 | -e "/\|\|BD\|\|/s::35:g" \ |
| 208 | -e "/\|\|SD\|\|/s::34:g" \ |
| 209 | -e "/\|\|DF\|\|/s::69:g" \ |
| 210 | -e "/\|\|HOST\|\|/s::Sun-4:g" \ |
| 211 | -e "/\|\|HOSTstr\|\|/s::sun4:g" \ |
| 212 | -e "/\|\|TARGET\|\|/s::sun4:g" \ |
| 213 | -e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \ |
| 214 | -e "/\|\|BUNDLE\|\|/s::${bundle}:g" \ |
| 215 | < ${IN} > ${OUT}.new |
| 216 | |
| 217 | process-sun3: |
| 218 | sed -e "/^@set HOSTsun4/s::@clear HOSTsun4:" \ |
| 219 | -e "/^@clear HOSTsun3/s::@set HOSTsun3:" \ |
| 220 | -e "/^@set HOSTdecstation/s::@clear HOSTdecstation:" \ |
| 221 | -e "/^@set HOSTiris/s::@clear HOSTiris:" \ |
| 222 | -e "/^@set HOSTrs6000/s::@clear HOSTrs6000:" \ |
| 223 | -e "/^@set FIXMES/s::@clear FIXMES:" \ |
| 224 | -e "/\|\|RELNO\|\|/s::${relno}:g" \ |
| 225 | -e "/\|\|TAPdflt\|\|/s::QIC-24:g" \ |
| 226 | -e "/\|\|DEVdflt\|\|/s::/dev/nrst8:g" \ |
| 227 | -e "/\|\|BD\|\|/s::32:g" \ |
| 228 | -e "/\|\|SD\|\|/s::34:g" \ |
| 229 | -e "/\|\|DF\|\|/s::65:g" \ |
| 230 | -e "/\|\|HOST\|\|/s::Sun-3:g" \ |
| 231 | -e "/\|\|HOSTstr\|\|/s::sun3:g" \ |
| 232 | -e "/\|\|TARGET\|\|/s::sun3:g" \ |
| 233 | -e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \ |
| 234 | -e "/\|\|BUNDLE\|\|/s::${bundle}:g" \ |
| 235 | < ${IN} > ${OUT}.new |
| 236 | |
| 237 | process-decstation: |
| 238 | sed -e "/^@set HOSTsun4/s::@clear HOSTsun4:" \ |
| 239 | -e "/^@set HOSTsun3/s::@clear HOSTsun3:" \ |
| 240 | -e "/^@clear HOSTdecstation/s::@set HOSTdecstation:" \ |
| 241 | -e "/^@set HOSTiris/s::@clear HOSTiris:" \ |
| 242 | -e "/^@set HOSTrs6000/s::@clear HOSTrs6000:" \ |
| 243 | -e "/^@set FIXMES/s::@clear FIXMES:" \ |
| 244 | -e "/\|\|RELNO\|\|/s::${relno}:g" \ |
| 245 | -e "/\|\|TAPdflt\|\|/s::QIC-24:g" \ |
| 246 | -e "/\|\|DEVdflt\|\|/s::/dev/nrmt0:g" \ |
| 247 | -e "/\|\|BD\|\|/s::27:g" \ |
| 248 | -e "/\|\|SD\|\|/s::34:g" \ |
| 249 | -e "/\|\|DF\|\|/s::61:g" \ |
| 250 | -e "/\|\|HOST\|\|/s::Decstation:g" \ |
| 251 | -e "/\|\|HOSTstr\|\|/s::decstation:g" \ |
| 252 | -e "/\|\|TARGET\|\|/s::decstation:g" \ |
| 253 | -e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \ |
| 254 | -e "/\|\|BUNDLE\|\|/s::${bundle}:g" \ |
| 255 | < ${IN} > ${OUT}.new |
| 256 | true |
| 257 | |
| 258 | process-iris4: |
| 259 | sed -e "/^@set HOSTsun4/s::@clear HOSTsun4:" \ |
| 260 | -e "/^@set HOSTsun3/s::@clear HOSTsun3:" \ |
| 261 | -e "/^@set HOSTdecstation/s::@clear HOSTdecstation:" \ |
| 262 | -e "/^@clear HOSTiris/s::@set HOSTiris:" \ |
| 263 | -e "/^@set HOSTrs6000/s::@clear HOSTrs6000:" \ |
| 264 | -e "/^@set FIXMES/s::@clear FIXMES:" \ |
| 265 | -e "/\|\|RELNO\|\|/s::${relno}:g" \ |
| 266 | -e "/\|\|TAPdflt\|\|/s::QIC-24:g" \ |
| 267 | -e "/\|\|DEVdflt\|\|/s::/dev/mt/tps0d0nrns:g" \ |
| 268 | -e "/\|\|BD\|\|/s::25:g" \ |
| 269 | -e "/\|\|SD\|\|/s::34:g" \ |
| 270 | -e "/\|\|DF\|\|/s::59:g" \ |
| 271 | -e "/\|\|HOST\|\|/s::Iris:g" \ |
| 272 | -e "/\|\|HOSTstr\|\|/s::iris4:g" \ |
| 273 | -e "/\|\|TARGET\|\|/s::iris4:g" \ |
| 274 | -e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \ |
| 275 | -e "/\|\|BUNDLE\|\|/s::${bundle}:g" \ |
| 276 | < ${IN} > ${OUT}.new |
| 277 | |
| 278 | process-rs6000: |
| 279 | sed -e "/^@set HOSTsun4/s::@clear HOSTsun4:" \ |
| 280 | -e "/^@set HOSTsun3/s::@clear HOSTsun3:" \ |
| 281 | -e "/^@set HOSTdecstation/s::@clear HOSTdecstation:" \ |
| 282 | -e "/^@set HOSTiris/s::@clear HOSTiris:" \ |
| 283 | -e "/^@clear HOSTrs6000/s::@set HOSTrs6000:" \ |
| 284 | -e "/^@set FIXMES/s::@clear FIXMES:" \ |
| 285 | -e "/\|\|RELNO\|\|/s::${relno}:g" \ |
| 286 | -e "/\|\|TAPdflt\|\|/s::QIC-24:g" \ |
| 287 | -e "/\|\|DEVdflt\|\|/s::/dev/rmt0.1:g" \ |
| 288 | -e "/\|\|BD\|\|/s::36:g" \ |
| 289 | -e "/\|\|SD\|\|/s::34:g" \ |
| 290 | -e "/\|\|DF\|\|/s::70:g" \ |
| 291 | -e "/\|\|HOST\|\|/s::RS/6000:g" \ |
| 292 | -e "/\|\|HOSTstr\|\|/s::rs6000:g" \ |
| 293 | -e "/\|\|TARGET\|\|/s::rs6000:g" \ |
| 294 | -e "/\|\|GCCvn\|\|/s::cygnus-2.0.2:g" \ |
| 295 | -e "/\|\|BUNDLE\|\|/s::${bundle}:g" \ |
| 296 | < ${IN} > ${OUT}.new |
| 297 | |
| 298 | clean: |
| 299 | rm -rf ${host} |
| 300 | |
| 301 | blockit: blockit.c |
| 302 | |
| 303 | ### EOF |