#DS	qef tutorial set # 3
#:	SID	@(#)qeftut3.ds	8.7 - 00/02/27
#D QefAdm/confvrs/RCS
#D QefAdm/relinfo/RCS
#D QefAdm/touchdir/RCS
#D RCS
#D appl/RCS
#D appl/appl/RCS
#D appl/cmd/RCS
#D appl/lib/RCS
#D appl/man/RCS
#D cmd/RCS
#F QefAdm/confvrs/RCS/confdefl.vrs,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.1
-date	98.04.29.06.30.35;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@options			# e.g., DEBUGGING, NO_MAN, PURIFY
-			# Run ``x-qvrs opt-vars'' for standard list
-
-cset _F_cc		@@NotSet # flag to all cc executions
-cset _F_cc_c		@@NotSet # flags to cc -c executions
-cset _F_cc_o		@@NotSet # flags to cc -o executions
-cset _F_instal		-qIs # instal(1) flags
-cset _T_cc		@@NotSet # name of cc
-@
#F QefAdm/confvrs/confdefl.vrs -m444
-options			# e.g., DEBUGGING, NO_MAN, PURIFY
-			# Run ``x-qvrs opt-vars'' for standard list
-
-cset _F_cc		@NotSet # flag to all cc executions
-cset _F_cc_c		@NotSet # flags to cc -c executions
-cset _F_cc_o		@NotSet # flags to cc -o executions
-cset _F_instal		-qIs # instal(1) flags
-cset _T_cc		@NotSet # name of cc
#F QefAdm/relinfo/RCS/qeffile,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.1
-date	98.04.29.06.30.35;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@Begin	qsg	# Note: no additional flags
-
-# relinfo script creates _DestDir_/relinfo file
-
-relinfo
-@
#F QefAdm/relinfo/qeffile -m444
-Begin	qsg	# Note: no additional flags
-
-# relinfo script creates _DestDir_/relinfo file
-
-relinfo
#F QefAdm/touchdir/RCS/qeffile,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.1
-date	98.04.29.06.30.35;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@# The following line allows qef to be run in the baseline tree.
-
-set PermitQef	This script does nothing other than produce documentation
-
-Begin	qsg
-
-touchdir
-@
#F QefAdm/touchdir/qeffile -m444
-# The following line allows qef to be run in the baseline tree.
-
-set PermitQef	This script does nothing other than produce documentation
-
-Begin	qsg
-
-touchdir
#F RCS/README,v -m444
-head	1.2;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.2
-date	2000.02.13.19.43.59;	author dt;	state Exp;
-branches;
-next	1.1;
-
-1.1
-date	98.04.29.06.26.34;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@created
-@
-
-
-1.2
-log
-@fixes for new QefAdm organization
-@
-text
-@# TAKE A LOOK AROUND.
-# View all the *.vrs and qeffiles.
-ls -F
-	QefAdm/		administration directory
-	    QefAdm/confvrs/	default and production config files
-	        QefAdm/confvrs/confdefl.vrs
-	    QefAdm/relinfo/	directory for final all Post process
-	        QefAdm/relinfo/qeffile
-	    QefAdm/touchdir/	directory of touchfiles
-	        QefAdm/touchdir/qeffile
-	README	this file
-	appl/	an example application directory
-	    ...
-	cmd/	another simpler example
-	    cmd/hello.c
-	    cmd/qeffile
-	qeffile		the top level qeffile
-	root.vrs	file specifying root information
-	tree.vrs	project configuraion information
-qdupd
-	add current directory to the qdsrv database
-mkqtree -s ../work	# make work tree
-cd ../work
-mkqtree -o ../obj	# make object tree
-cd ../obj
-qvrs -f
-	note getting files from other trees.
-rootvrs -d ../d -C demo
-	set _DestDir_ and ConfigName
-qef All
-	do entire project
-	note creation of instal.log
-qds -X
-	If using csh set alias qd as indicated
-	If using bash set function qd as indicated
-	If not using csh or sh ... you're out of luck
-qd -n appl/appl
-	takes you to the work directory
-sls
-sls appl.h
-cp `sls appl.h` .
-sls
-qd -o ..
-	takes you to appl in object directory
-qef
-	Note stuff rebuilt as appl.h different
-qd -n appl
-	takes you to appl/appl in work directory
-rm appl.h
-qd -o ..
-qef
-	Note stuff rebuilt as dependency list changed
-
--------------------
-Touchfiles
-
-touchfiles
-touchfiles -p
-touchfiles -c cc
-touchfiles
-qef All		# note all cc compiles happening
-@
-
-
-1.1
-log
-@Initial revision
-@
-text
-@d4 16
-a19 7
-	appl/		an application's source directory
-	cmd/		another application
-	confvrs/	default and production config files
-	relinfo/		directory for final all Post process
-	qeffile		the qef control file
-	root.vrs	the root.vrs file for this tree
-	tree.vrs	project config
-d55 1
-a55 1
-Supplementary stuff
-d57 4
-a60 5
-cd touchdir
-qef
-date > cc
-qef
-cd ..
-@
#F RCS/qeffile,v -m444
-head	1.3;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.3
-date	2000.02.27.10.11.00;	author dt;	state Exp;
-branches;
-next	1.2;
-
-1.2
-date	2000.02.13.19.43.59;	author dt;	state Exp;
-branches;
-next	1.1;
-
-1.1
-date	98.04.29.06.26.34;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@created
-@
-
-
-1.3
-log
-@Added _DefaultArgs_
-@
-text
-@# A qefdirs qeffile
-
-set _DefaultArgs_ All
-
-Begin	qefdirs
-
-# Note: `qefdirs -X' outputs a description of the syntax and semantics
-
-P = Post	# add Post construction key P
-		# qefdirs already provides I==Install, L==Local, M==Man
-
-All = Install Man Post
-
-# add directories and operations after this line
-
-appl		ILM
-cmd		IL	appl	# cmd requires appl's installation
-
-+ a new level
-
-QefAdm/relinfo	P
-@
-
-
-1.2
-log
-@fixes for new QefAdm organization
-@
-text
-@d3 2
-@
-
-
-1.1
-log
-@Initial revision
-@
-text
-@d19 1
-a19 1
-relinfo		P
-@
#F RCS/root.vrs,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.1
-date	98.04.29.06.26.34;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@created
-@
-
-
-1.1
-log
-@Initial revision
-@
-text
-@cset	TreeType	baseline
-set	Project		tut3
-set	Revision	1.1
-@
#F RCS/tree.vrs,v -m444
-head	1.2;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.2
-date	2000.02.13.19.43.59;	author dt;	state Exp;
-branches;
-next	1.1;
-
-1.1
-date	98.04.29.06.26.34;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@created
-@
-
-
-1.2
-log
-@fixes for new QefAdm organization
-@
-text
-@# standard flags for instal(1)
-setifnil _F_instal	-qIs
-
-# name of the Product's normal directory
-setifnil ProdDir	/usr/@@Project
-
-cset	InstLog		@@RootDir/instal.log
-
-if @\100(notempty @@_DestDir_)
-	addpath	LibPath		@@_DestDir_/lib
-	addpath	InclPath	@@_DestDir_/hdrs
-fi
-if !@\100(option STAND_ALONE)
-	addpath	LibPath		@@ProdDir/lib
-	addpath	InclPath	@@ProdDir/hdrs
-fi
-addpath TouchPath	@\100(paths QefAdm/touchdir @@RootPath)
-set	FSIC_Key	a
-@
-
-
-1.1
-log
-@Initial revision
-@
-text
-@d17 1
-a17 1
-addpath TouchPath	@\100(paths touchdir @@RootPath)
-@
#F README -m444
-# TAKE A LOOK AROUND.
-# View all the *.vrs and qeffiles.
-ls -F
-	QefAdm/		administration directory
-	    QefAdm/confvrs/	default and production config files
-	        QefAdm/confvrs/confdefl.vrs
-	    QefAdm/relinfo/	directory for final all Post process
-	        QefAdm/relinfo/qeffile
-	    QefAdm/touchdir/	directory of touchfiles
-	        QefAdm/touchdir/qeffile
-	README	this file
-	appl/	an example application directory
-	    ...
-	cmd/	another simpler example
-	    cmd/hello.c
-	    cmd/qeffile
-	qeffile		the top level qeffile
-	root.vrs	file specifying root information
-	tree.vrs	project configuraion information
-qdupd
-	add current directory to the qdsrv database
-mkqtree -s ../work	# make work tree
-cd ../work
-mkqtree -o ../obj	# make object tree
-cd ../obj
-qvrs -f
-	note getting files from other trees.
-rootvrs -d ../d -C demo
-	set _DestDir_ and ConfigName
-qef All
-	do entire project
-	note creation of instal.log
-qds -X
-	If using csh set alias qd as indicated
-	If using bash set function qd as indicated
-	If not using csh or sh ... you're out of luck
-qd -n appl/appl
-	takes you to the work directory
-sls
-sls appl.h
-cp `sls appl.h` .
-sls
-qd -o ..
-	takes you to appl in object directory
-qef
-	Note stuff rebuilt as appl.h different
-qd -n appl
-	takes you to appl/appl in work directory
-rm appl.h
-qd -o ..
-qef
-	Note stuff rebuilt as dependency list changed
-
--------------------
-Touchfiles
-
-touchfiles
-touchfiles -p
-touchfiles -c cc
-touchfiles
-qef All		# note all cc compiles happening
#F appl/RCS/qeffile,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.1
-date	98.04.29.06.30.35;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@# Another qefdirs qeffile -- see ../qeffile
-
-Begin	qefdirs
-
-appl		I
-lib		IL
-
-+	This line starts a new level
-
-cmd		IL	-lib
-man		m		# m == Man, but only if @@NO_MAN not set
-@
#F appl/RCS/tree.vrs,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.1
-date	98.04.29.06.30.35;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@# This tree.vrs file applies this directory and all
-# its sub-directories
-
-suspend		# suspend processing until higher directories'
-		# qvrs files have been processed
-
-# Insert this directory at beginning of the include path
-
-addpath InclPath @\100(paths @@Dots)
-
-# @\100(paths X) generates list of X across the @@SrcPath
-# See x-qvrs Dots for description or @@Dots
-@
#F appl/appl/RCS/appl.h,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@ * @;
-
-
-1.1
-date	98.04.29.06.30.34;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@#ifndef	APPL_TYPES_H
-#define	APPL_TYPES_H
-
-extern int	rtn(void);
-
-#endif /* APPL_TYPES_H */
-@
#F appl/appl/RCS/qeffile,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.1
-date	98.04.29.06.30.34;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@set Suffixes	h	# limit sls to *.h files
-
-Begin
-
-# Install all *.h files into destination's hdrs/appl/
-
-instfls -d _DestDir_/hdrs/appl @@argv~x/h/
-@
#F appl/appl/appl.h -m444
-#ifndef	APPL_TYPES_H
-#define	APPL_TYPES_H
-
-extern int	rtn(void);
-
-#endif /* APPL_TYPES_H */
#F appl/appl/qeffile -m444
-set Suffixes	h	# limit sls to *.h files
-
-Begin
-
-# Install all *.h files into destination's hdrs/appl/
-
-instfls -d _DestDir_/hdrs/appl @argv~x/h/
#F appl/cmd/RCS/appl.c,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@ * @;
-
-
-1.1
-date	98.04.29.06.30.34;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@/* LIBS: -lappl
- */
-
-#include	<appl/appl.h>
-#include	<stdio.h>
-
-main()
-{
-	printf("Doesn't do much at all, but rtn()=\045d\134n", rtn());
-}
-@
#F appl/cmd/RCS/qeffile,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.1
-date	98.04.29.06.30.34;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@# Need to add ../lib to LibPath to get -lappl
-
-addpath LibPath ../lib
-
-Begin
-
-# Note that -v will embed version string in the binary
-
-program -v appl.c
-
-# Just in case we add any new files ...
-# Note that appl.c already processed by above so not done again.
-
-commands @@argv
-@
#F appl/cmd/appl.c -m444
-/* LIBS: -lappl
- */
-
-#include	<appl/appl.h>
-#include	<stdio.h>
-
-main()
-{
-	printf("Doesn't do much at all, but rtn()=\045d\134n", rtn());
-}
#F appl/cmd/qeffile -m444
-# Need to add ../lib to LibPath to get -lappl
-
-addpath LibPath ../lib
-
-Begin
-
-# Note that -v will embed version string in the binary
-
-program -v appl.c
-
-# Just in case we add any new files ...
-# Note that appl.c already processed by above so not done again.
-
-commands @argv
#F appl/lib/RCS/qeffile,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.1
-date	98.04.29.06.30.34;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@# Note that InclPath need not set set as already done in ../tree.vrs
-
-Begin
-
-# Create appl library, add a version file
-
-library -v -n appl @@argv
-@
#F appl/lib/RCS/rtn.c,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@ * @;
-
-
-1.1
-date	98.04.29.06.30.34;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@#include	<appl/appl.h>
-
-int
-rtn()
-{
-	return 6; /* may be this should be 42 */
-}
-@
#F appl/lib/qeffile -m444
-# Note that InclPath need not set set as already done in ../tree.vrs
-
-Begin
-
-# Create appl library, add a version file
-
-library -v -n appl @argv
#F appl/lib/rtn.c -m444
-#include	<appl/appl.h>
-
-int
-rtn()
-{
-	return 6; /* may be this should be 42 */
-}
#F appl/man/RCS/appl.1,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.1
-date	98.04.29.06.30.34;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@.TH APPL 1
-.SH NAME
-example \134- example application directory structure
-.SH SYNOPSIS
-\134fBappl\134fP
-.SH INTRODUCTION
-This is an example manual page.
-Like so many it says so little.
-@
#F appl/man/RCS/qeffile,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.1
-date	98.04.29.06.30.34;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@set Suffixes 1
-
-Begin
-
-# Install all the manual sections in the usual place
-
-cmds_man @@argv
-
-# We could have used commands as that function recognizes *.1 files
-@
#F appl/man/appl.1 -m444
-.TH APPL 1
-.SH NAME
-example \134- example application directory structure
-.SH SYNOPSIS
-\134fBappl\134fP
-.SH INTRODUCTION
-This is an example manual page.
-Like so many it says so little.
#F appl/man/qeffile -m444
-set Suffixes 1
-
-Begin
-
-# Install all the manual sections in the usual place
-
-cmds_man @argv
-
-# We could have used commands as that function recognizes *.1 files
#F appl/qeffile -m444
-# Another qefdirs qeffile -- see ../qeffile
-
-Begin	qefdirs
-
-appl		I
-lib		IL
-
-+	This line starts a new level
-
-cmd		IL	-lib
-man		m		# m == Man, but only if @NO_MAN not set
#F appl/tree.vrs -m444
-# This tree.vrs file applies this directory and all
-# its sub-directories
-
-suspend		# suspend processing until higher directories'
-		# qvrs files have been processed
-
-# Insert this directory at beginning of the include path
-
-addpath InclPath \100(paths @Dots)
-
-# \100(paths X) generates list of X across the @SrcPath
-# See x-qvrs Dots for description or @Dots
#F cmd/RCS/hello.c,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@ * @;
-
-
-1.1
-date	98.04.29.06.30.35;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@/* LIBS: -lappl
- *
- * The LIBS: string in the previous line is used within the qef system
- * to name the libraries associated with the file.  See:
- *
- *	man 1 libs
- *	x-qvrs LIBS
- *	x-qef _Libs_
- */
-
-#include	<stdio.h>
-#include	<appl/appl.h>
-
-main()
-{
-	printf("Hello world\134n");
-	printf("rtn() = \045d\134n", rtn());
-	exit(0);
-}
-@
#F cmd/RCS/qeffile,v -m444
-head	1.1;
-access;
-symbols;
-locks; strict;
-comment	@# @;
-
-
-1.1
-date	98.04.29.06.30.35;	author dt;	state Exp;
-branches;
-next	;
-
-
-desc
-@@
-
-
-1.1
-log
-@created
-@
-text
-@addpath LibPath ../lib
-
-Begin
-
-commands @@argv
-@
#F cmd/hello.c -m444
-/* LIBS: -lappl
- *
- * The LIBS: string in the previous line is used within the qef system
- * to name the libraries associated with the file.  See:
- *
- *	man 1 libs
- *	x-qvrs LIBS
- *	x-qef _Libs_
- */
-
-#include	<stdio.h>
-#include	<appl/appl.h>
-
-main()
-{
-	printf("Hello world\134n");
-	printf("rtn() = \045d\134n", rtn());
-	exit(0);
-}
#F cmd/qeffile -m444
-addpath LibPath ../lib
-
-Begin
-
-commands @argv
#F qeffile -m444
-# A qefdirs qeffile
-
-set _DefaultArgs_ All
-
-Begin	qefdirs
-
-# Note: `qefdirs -X' outputs a description of the syntax and semantics
-
-P = Post	# add Post construction key P
-		# qefdirs already provides I==Install, L==Local, M==Man
-
-All = Install Man Post
-
-# add directories and operations after this line
-
-appl		ILM
-cmd		IL	appl	# cmd requires appl's installation
-
-+ a new level
-
-QefAdm/relinfo	P
#F root.vrs -m444
-cset	TreeType	baseline
-set	Project		tut3
-set	Revision	1.1
#F tree.vrs -m444
-# standard flags for instal(1)
-setifnil _F_instal	-qIs
-
-# name of the Product's normal directory
-setifnil ProdDir	/usr/@Project
-
-cset	InstLog		@RootDir/instal.log
-
-if \100(notempty @_DestDir_)
-	addpath	LibPath		@_DestDir_/lib
-	addpath	InclPath	@_DestDir_/hdrs
-fi
-if !\100(option STAND_ALONE)
-	addpath	LibPath		@ProdDir/lib
-	addpath	InclPath	@ProdDir/hdrs
-fi
-addpath TouchPath	\100(paths QefAdm/touchdir @RootPath)
-set	FSIC_Key	a
