BUILDDIR = cvs-1.9 PKGNAME = FSFcvs DESTDIR = ${TOPDIR}/pkg BASEDIR = /opt/${PKGNAME} CONFOPTS = NAME = cvs ARCH = Solaris2.5 VER = 1.9 CATEGORY = application VENDOR = Free Software Foundation EMAIL = dj@gregor.com CLASSES = none PKGPROTO = /usr/bin/pkgproto PKGMK = /usr/bin/pkgmk PKGTRANS = /usr/bin/pkgtrans INSTUSER = root INSTGROUP = root TOPDIR:sh = pwd SUPPDIR = ${BASEDIR}/supportbin DIFF = "${SUPPDIR}/diff" GREP = "${SUPPDIR}/grep" PATCH_PROGRAM= "${SUPPDIR}/patch" RCSBIN_DFLT = "${SUPPDIR}" all: build build: configured.${BUILDDIR} cd ${BUILDDIR} ; ${MAKE} build.pkg: configured.${BUILDDIR} options.h cd ${BUILDDIR} ; ${MAKE} ${BUILDDIR}/src/options.h.sav: mv ${BUILDDIR}/src/options.h ${BUILDDIR}/src/options.h.sav options.h: ${BUILDDIR}/src/options.h ${BUILDDIR}/src/options.h: ${BUILDDIR}/src/options.h.sav sed -e 's|#define[ ]*DIFF.*|#define DIFF ${DIFF}|' \ -e 's|#define[ ]*GREP.*|#define GREP ${GREP}|' \ -e 's|#define[ ]*PATCH_PROGRAM.*|#define PATCH_PROGRAM ${PATCH_PROGRAM}|' \ -e 's|#define[ ]*RCSBIN_DFLT.*|#define RCSBIN_DFLT ${RCSBIN_DFLT}|' \ > ${BUILDDIR}/src/options.h < ${BUILDDIR}/src/options.h.sav clean: cd ${BUILDDIR} ; ${MAKE} clean install: cd ${BUILDDIR} ; ${MAKE} install pkg: ${BUILDDIR}.pkg ${DESTDIR}${BASEDIR}: mkdir -p ${DESTDIR}${BASEDIR} mkdir -p ${DESTDIR}${BASEDIR}/bin mkdir -p ${DESTDIR}${BASEDIR}/man/man1 mkdir -p ${DESTDIR}${BASEDIR}/man/man5 mkdir -p ${DESTDIR}${BASEDIR}/man/man8 mkdir -p ${DESTDIR}${BASEDIR}/lib mkdir -p ${DESTDIR}${BASEDIR}/info mkdir -p ${DESTDIR}${BASEDIR}/sbin mkdir -p ${DESTDIR}${SUPPDIR} untarred.${BUILDDIR}: ${BUILDDIR}.tar.gz gzip -cd ${BUILDDIR}.tar.gz | tar xvf - touch untarred.${BUILDDIR} %.gz: % gzip -9 $< clean.${DESTDIR}: rm -rf ${DESTDIR} ${DESTDIR}/install: ${DESTDIR}${BASEDIR} mkdir -p ${DESTDIR}/install ${DESTDIR}/install/postinstall: ${DESTDIR}/install \ ${DESTDIR}${BASEDIR}/sbin/setuprcs \ ${DESTDIR}${BASEDIR}/sbin/setuppatch \ ${DESTDIR}${BASEDIR}/sbin/setupdiff \ ${DESTDIR}${BASEDIR}/sbin/setupgrep rm -f $@ @echo "#!/bin/sh" >> $@ @echo "${BASEDIR}/sbin/setuprcs" >> $@ @echo "${BASEDIR}/sbin/setuppatch" >> $@ @echo "${BASEDIR}/sbin/setupdiff" >> $@ @echo "${BASEDIR}/sbin/setupgrep" >> $@ chmod 755 $@ ${DESTDIR}/install/preremove: ${DESTDIR}/install rm -f $@ @echo "#!/bin/sh" >> $@ @echo "rm -f ${BASEDIR}/supportbin/*" >> $@ chmod 755 $@ install-docs: ${DESTDIR}${BASEDIR}/docs cd ${BUILDDIR} ; ls -1 [A-Z]* | egrep -v 'Makefile|ChangeLog.zoo' | \ cpio -updm ${DESTDIR}${BASEDIR}/docs ${DESTDIR}${BASEDIR}/docs: ${DESTDIR}${BASEDIR} mkdir -p ${DESTDIR}${BASEDIR}/docs install-contrib: ${DESTDIR}${BASEDIR}/contrib cd ${BUILDDIR}/contrib ; find . -depth -print | \ cpio -updm ${DESTDIR}${BASEDIR}/contrib ${DESTDIR}${BASEDIR}/contrib: ${DESTDIR}${BASEDIR} mkdir -p ${DESTDIR}${BASEDIR}/contrib install-pkg: clean.${DESTDIR} build.pkg ${DESTDIR}${BASEDIR} \ ${DESTDIR}/install/postinstall ${DESTDIR}/install/preremove \ install-contrib install-docs install-README cd ${BUILDDIR} ; ${MAKE} prefix=${DESTDIR}${BASEDIR} \ INSTALL=/usr/ucb/install install configured.${BUILDDIR}: untarred.${BUILDDIR} cd ${BUILDDIR} ; ./configure --prefix=${BASEDIR} \ ${CONFOPTS} touch configured.${BUILDDIR} veryclean: rm -rf ${BUILDDIR} ${DESTDIR} configured.${BUILDDIR} \ untarred.${BUILDDIR} /var/spool/pkg/${PKGNAME} \ ${BUILDDIR}.pkg ${BUILDDIR}.pkg: ${DESTDIR}/prototype ( cd ${DESTDIR} ; pkgmk -or ./${BASEDIR} ) $(PKGTRANS) /var/spool/pkg ${TOPDIR}/${BUILDDIR}.pkg ${PKGNAME} ${DESTDIR}/prototype: ${DESTDIR}/pkginfo ( cd ${DESTDIR} ; echo "i pkginfo" ; \ find . -print | egrep -v './(prototype|pkginfo)' | $(PKGPROTO) | \ sed -e 's/ \([0-9][0-9]*\) [^ ][^ ]* [^ ][^ ]*$$/ \1 '"${INSTUSER} ${INSTGROUP}/" \ -e 's|none |none /|' \ -e 's|${BASEDIR}/||' \ -e '/ \/opt/d' \ -e '/ \/install /d' \ -e 's|^f none /install/\([^ ]*\) .*|i \1=install/\1|' \ ) > ${DESTDIR}/prototype ${DESTDIR}/pkginfo: install-pkg rm -f ${DESTDIR}/pkginfo @echo "PKG=\"${PKGNAME}\"" >> ${DESTDIR}/pkginfo @echo "NAME=\"${NAME}\"" >> ${DESTDIR}/pkginfo @echo "ARCH=\"${ARCH}\"" >> ${DESTDIR}/pkginfo @echo "VERSION=\"${VER}\"" >> ${DESTDIR}/pkginfo @echo "CATEGORY=\"${CATEGORY}\"" >> ${DESTDIR}/pkginfo @echo "VENDOR=\"${VENDOR}\"" >> ${DESTDIR}/pkginfo @echo "EMAIL=\"${EMAIL}\"" >> ${DESTDIR}/pkginfo # @echo "PSTAMP=\"${PSTAMP}\"" >> ${DESTDIR}/pkginfo @echo "BASEDIR=\"${BASEDIR}\"" >> ${DESTDIR}/pkginfo @echo "CLASSES=\"${CLASSES}\"" >> ${DESTDIR}/pkginfo ${DESTDIR}${BASEDIR}/sbin/setuprcs: rm -f $@ @echo "#!/bin/sh" >> $@ @echo "" >> $@ @echo "SUPPDIR=$(SUPPDIR)" >> $@ @echo "" >> $@ @echo "makelinks() {" >> $@ @echo " RCSCOMMANDS=\"ci co ident merge rcs rcsclean rcsdiff rcsmerge rlog\"" >> $@ @echo "" >> $@ @echo " echo \"Making links for RCS binary directory \$${RCSDIR}\"" >> $@ @echo "" >> $@ @echo " for RCSCOMMAND in \$${RCSCOMMANDS}" >> $@ @echo " do" >> $@ @echo " rm -f \$${SUPPDIR}/\$${RCSCOMMAND}" >> $@ @echo " ln -s \$${RCSDIR}/\$${RCSCOMMAND} \$${SUPPDIR}/\$${RCSCOMMAND}" >> $@ @echo " done" >> $@ @echo "}" >> $@ @echo "" >> $@ @echo "searchforrcsdir() {" >> $@ @echo "" >> $@ @echo " PATH=\$$PATH:/usr/local/bin:/opt/FSFrcs/bin" >> $@ @echo " export PATH" >> $@ @echo " " >> $@ @echo " RCSCMD=co" >> $@ @echo " WHICHOUT=\`which \$${RCSCMD}\`" >> $@ @echo " " >> $@ @echo " if echo \"\$${WHICHOUT}\" | grep \"^no \$${RCSCMD} in\" > /dev/null" >> $@ @echo " then" >> $@ @echo " RCSDIR=\"\"" >> $@ @echo " else" >> $@ @echo " # See if it is a symbolic link--if so, find what it references" >> $@ @echo " RCSCMDPATH=\`ls -l \$$WHICHOUT | sed 's/^.* \\([^ ]*\\)\$$/\\1/'\`" >> $@ @echo " " >> $@ @echo " # get just the directory" >> $@ @echo " RCSDIR=\`echo \$$RCSCMDPATH | sed 's|/[^/]*\$$||'\`" >> $@ @echo " fi" >> $@ @echo "" >> $@ @echo "}" >> $@ @echo "" >> $@ @echo "if [ \$$# -gt 1 ]" >> $@ @echo "then" >> $@ @echo " echo \"\`basename \$$0\`: too many arguments. Usage: \`basename \$$0\` [&2" >> $@ @echo " exit 1" >> $@ @echo "fi" >> $@ @echo "" >> $@ @echo "if [ \$$# -eq 1 ]" >> $@ @echo "then" >> $@ @echo " RCSDIR=\$$1;shift" >> $@ @echo " makelinks" >> $@ @echo " exit 0" >> $@ @echo "else" >> $@ @echo " searchforrcsdir" >> $@ @echo " if [ \"x\$${RCSDIR}\" = \"x\" ]" >> $@ @echo " then" >> $@ @echo " echo \"\`basename \$$0\`: could not find RCS binary directory\" >&2" >> $@ @echo " echo \"Please run \\\"\`basename \$$0\` \\\" to specify the RCS directory\" >&2" >> $@ @echo " exit 1" >> $@ @echo " fi" >> $@ @echo " makelinks" >> $@ @echo "fi" >> $@ @echo "" >> $@ @echo "exit 0" >> $@ chmod 755 $@ ${DESTDIR}${BASEDIR}/sbin/setupdiff: rm -f $@ @echo "#!/bin/sh" >> $@ @echo "" >> $@ @echo "SUPPDIR=$(SUPPDIR)" >> $@ @echo "" >> $@ @echo "makelinks() {" >> $@ @echo " echo \"Making link for diff from \$${DIFF}\"" >> $@ @echo "" >> $@ @echo " rm -f \$${SUPPDIR}/diff" >> $@ @echo " ln -s \$${DIFF} \$${SUPPDIR}/diff" >> $@ @echo "}" >> $@ @echo "" >> $@ @echo "searchfordiff() {" >> $@ @echo "" >> $@ @echo " PATH=\$$PATH:/usr/local/bin:/opt/FSFdiff/bin" >> $@ @echo " export PATH" >> $@ @echo "" >> $@ @echo " PATHSAVE=\$$PATH" >> $@ @echo " PATH=\`echo \$$PATH | sed 's|^/bin:||;s|:/bin:|:|;s|^/usr/bin:||;s|:/usr/bin:|:|'\`" >> $@ @echo "" >> $@ @echo " WHICHOUT=\`/usr/bin/which diff\`" >> $@ @echo "" >> $@ @echo " PATH=\$$PATHSAVE" >> $@ @echo " " >> $@ @echo " if echo \"\$${WHICHOUT}\" | grep \"^no diff in\" > /dev/null" >> $@ @echo " then" >> $@ @echo " DIFF=\"\"" >> $@ @echo " else" >> $@ @echo " # See if it is a symbolic link--if so, find what it references" >> $@ @echo " DIFF=\`ls -l \$$WHICHOUT | sed 's/^.* \\([^ ]*\\)\$$/\\1/'\`" >> $@ @echo " fi" >> $@ @echo "" >> $@ @echo "}" >> $@ @echo "" >> $@ @echo "if [ \$$# -gt 1 ]" >> $@ @echo "then" >> $@ @echo " echo \"\`basename \$$0\`: too many arguments. Usage: \`basename \$$0\` [\" >&2" >> $@ @echo " exit 1" >> $@ @echo "fi" >> $@ @echo "" >> $@ @echo "if [ \$$# -eq 1 ]" >> $@ @echo "then" >> $@ @echo " DIFF=\$$1;shift" >> $@ @echo " makelinks" >> $@ @echo " exit 0" >> $@ @echo "else" >> $@ @echo " searchfordiff" >> $@ @echo " if [ \"x\$${DIFF}\" = \"x\" ]" >> $@ @echo " then" >> $@ @echo " echo \"\`basename \$$0\`: could not find GNU diff\" >&2" >> $@ @echo " echo \"Please run \\\"\`basename \$$0\` \\\" to specify a GNU diff executable\" >&2" >> $@ @echo " exit 1" >> $@ @echo " fi" >> $@ @echo " makelinks" >> $@ @echo "fi" >> $@ @echo "" >> $@ @echo "exit 0" >> $@ chmod 755 $@ ${DESTDIR}${BASEDIR}/sbin/setuppatch: rm -f $@ @echo "#!/bin/sh" >> $@ @echo "" >> $@ @echo "SUPPDIR=$(SUPPDIR)" >> $@ @echo "" >> $@ @echo "makelinks() {" >> $@ @echo " echo \"Making link for patch from \$${PATCH}\"" >> $@ @echo "" >> $@ @echo " rm -f \$${SUPPDIR}/patch" >> $@ @echo " ln -s \$${PATCH} \$${SUPPDIR}/patch" >> $@ @echo "}" >> $@ @echo "" >> $@ @echo "searchforpatch() {" >> $@ @echo "" >> $@ @echo " PATH=\$$PATH:/usr/local/bin:/opt/FSFpatch/bin" >> $@ @echo " export PATH" >> $@ @echo "" >> $@ @echo " PATHSAVE=\$$PATH" >> $@ @echo " PATH=\`echo \$$PATH | sed 's|^/bin:||;s|:/bin:|:|;s|^/usr/bin:||;s|:/usr/bin:|:|'\`" >> $@ @echo "" >> $@ @echo " WHICHOUT=\`/usr/bin/which patch\`" >> $@ @echo "" >> $@ @echo " PATH=\$$PATHSAVE" >> $@ @echo " " >> $@ @echo " if echo \"\$${WHICHOUT}\" | grep \"^no patch in\" > /dev/null" >> $@ @echo " then" >> $@ @echo " PATCH=\"\"" >> $@ @echo " else" >> $@ @echo " # See if it is a symbolic link--if so, find what it references" >> $@ @echo " PATCH=\`ls -l \$$WHICHOUT | sed 's/^.* \\([^ ]*\\)\$$/\\1/'\`" >> $@ @echo " fi" >> $@ @echo "" >> $@ @echo "}" >> $@ @echo "" >> $@ @echo "if [ \$$# -gt 1 ]" >> $@ @echo "then" >> $@ @echo " echo \"\`basename \$$0\`: too many arguments. Usage: \`basename \$$0\` [\" >&2" >> $@ @echo " exit 1" >> $@ @echo "fi" >> $@ @echo "" >> $@ @echo "if [ \$$# -eq 1 ]" >> $@ @echo "then" >> $@ @echo " PATCH=\$$1;shift" >> $@ @echo " makelinks" >> $@ @echo " exit 0" >> $@ @echo "else" >> $@ @echo " searchforpatch" >> $@ @echo " if [ \"x\$${PATCH}\" = \"x\" ]" >> $@ @echo " then" >> $@ @echo " echo \"\`basename \$$0\`: could not find GNU patch\" >&2" >> $@ @echo " echo \"Please run \\\"\`basename \$$0\` \\\" to specify a GNU patch executable\" >&2" >> $@ @echo " exit 1" >> $@ @echo " fi" >> $@ @echo " makelinks" >> $@ @echo "fi" >> $@ @echo "" >> $@ @echo "exit 0" >> $@ chmod 755 $@ ${DESTDIR}${BASEDIR}/sbin/setupgrep: rm -f $@ @echo "#!/bin/sh" >> $@ @echo "" >> $@ @echo "SUPPDIR=$(SUPPDIR)" >> $@ @echo "" >> $@ @echo "makelinks() {" >> $@ @echo " echo \"Making link for grep from \$${GREP}\"" >> $@ @echo "" >> $@ @echo " rm -f \$${SUPPDIR}/grep" >> $@ @echo " ln -s \$${GREP} \$${SUPPDIR}/grep" >> $@ @echo "}" >> $@ @echo "" >> $@ @echo "searchforgrep() {" >> $@ @echo "" >> $@ @echo " PATH=\$$PATH:/usr/local/bin:/opt/FSFgrep/bin" >> $@ @echo " export PATH" >> $@ @echo "" >> $@ @echo " WHICHOUT=\`which grep\`" >> $@ @echo "" >> $@ @echo " if echo \"\$${WHICHOUT}\" | grep \"^no grep in\" > /dev/null" >> $@ @echo " then" >> $@ @echo " GREP=\"\"" >> $@ @echo " else" >> $@ @echo " # See if it is a symbolic link--if so, find what it references" >> $@ @echo " GREP=\`ls -l \$$WHICHOUT | sed 's/^.* \\([^ ]*\\)\$$/\\1/'\`" >> $@ @echo " fi" >> $@ @echo "" >> $@ @echo "}" >> $@ @echo "" >> $@ @echo "if [ \$$# -gt 1 ]" >> $@ @echo "then" >> $@ @echo " echo \"\`basename \$$0\`: too many arguments. Usage: \`basename \$$0\` [\" >&2" >> $@ @echo " exit 1" >> $@ @echo "fi" >> $@ @echo "" >> $@ @echo "if [ \$$# -eq 1 ]" >> $@ @echo "then" >> $@ @echo " GREP=\$$1;shift" >> $@ @echo " makelinks" >> $@ @echo " exit 0" >> $@ @echo "else" >> $@ @echo " searchforgrep" >> $@ @echo " if [ \"x\$${GREP}\" = \"x\" ]" >> $@ @echo " then" >> $@ @echo " echo \"\`basename \$$0\`: could not find grep\" >&2" >> $@ @echo " echo \"Please run \\\"\`basename \$$0\` \\\" to specify a Grep executable\" >&2" >> $@ @echo " exit 1" >> $@ @echo " fi" >> $@ @echo " makelinks" >> $@ @echo "fi" >> $@ @echo "" >> $@ @echo "exit 0" >> $@ chmod 755 $@ install-README: ${DESTDIR}${BASEDIR}/README ${DESTDIR}${BASEDIR}/README: ${DESTDIR}${BASEDIR} rm -f $@ @echo "CVS package built by Daniel J. Gregor Jr. on `date`" >> $@ @echo "" >> $@ @echo "See the docs/README file for copyright information." >> $@ @echo "" >> $@ @echo "Documentation is in the docs/ and info/ directories." >> $@ @echo "" >> $@ @echo "CVS needs to know where to find grep, RCS binaries, and a" >> $@ @echo "GNU version of patch and diff. (The ones with Solaris will" >> $@ @echo "_not_ work!!) There are shell scripts in the sbin/" >> $@ @echo "that attempt to do this when the package is installed." >> $@ @echo "If they failed, or found the wrong versions, you need to" >> $@ @echo "make the links into supportbin/ yourself, or re-run the" >> $@ @echo "failed scripts with the location of the binaries." >> $@ @echo "" >> $@ @echo "If you need to get RCS, you can find it at:" >> $@ @echo " ftp://opcom.sun.ca/pub/freeware/rcs-5.7.gz" >> $@ @echo "" >> $@ @echo "GNU patch and diff are at:" >> $@ @echo " ftp://opcom.sun.ca/pub/freeware/patch-2.1.gz" >> $@ @echo " ftp://opcom.sun.ca/pub/freeware/diffutils-2.7.gz" >> $@ @echo "" >> $@ @echo "If you have any questions, comments, problems, etc.," >> $@ @echo "with this package, please contact me at ." >> $@ chmod 644 $@