ftp.nice.ch/pub/next/developer/apps/check_nibs.1.6.README

This is the README for check_nibs.1.6.NIHS.b.tar.gz [Download] [Browse] [Up]

check_nibs
----------

INTRO
-----

check_nibs is a tool for the NEXTSTEP developer.  It is a utility which makes the task of synchronizing Interface Builder nibs files with their corresponding custom class headers much easier.  Many crashing bugs during development are caused by outlets and instance variables which are trashed when a nib is loaded after the File's Owner class has been modified and recompiled but which has not yet been reparsed in IB.

Any out of sync nibs are listed along with the class(es) that should be parsed into them (as well as the name of the header file which describes the class).  There is support for header files which contain multiple class interfaces, and there is no restriction that Interface Builder's naming convention for class files be used.  nibs for all languages in the project are checked, and the .nib~ backups are ignored.  I have even found vestigial classes in some nibs which I decided to remove since they were no longer in use.


REVISION HISTORY
----------------

This is the fourth public release, version 1.6; with support for Motorola (NeXT), Intel, HP-PA, and SPARC included.


CHANGES
-------

1)  check_nibs is now much faster.  The PB.project file is consulted to narrow the search to just the header and nib files within a project.  There should be no worries about having your total build times slowed by using this utility.  It takes a mere 19 seconds for check_nibs to examine and report on all 36 projects in my development source code directories: i.e.

check_nibs ~/Projects/*

Individual times are usually under 1 second for most projects, and under 5 seconds for my largest project containing 20 nibs and 52 classes.

2)  check_nibs no longer relies on the time stamps of nibs and interface headers to determine validity of files.  All relevant files are double-checked against each other and reported whereever there is a discrepancy.


CAVEATS
-------

Most of the caveats from version 1.0 have been addressed by now.  The foremost problem remaining is that this program begs for a couple more features.  Future versions will attempt to address the following:

1)  For nearly all make rules there is a procedure to update files which are out of date.  There is currently no programmatic means for re-parsing a class into a nib under makefile automation (that we are aware of).  A colleague is working on providing this solution for check_nibs, and this will result in a new version release.

2)  Subprojects are not automatically handled.  However, check_nibs will accept multiple directory paths on the command line, so all .subproj directories should be listed along with the root project directory.

3)  NOTE: Any part of this may need to be updated for the final EOF IB.


LEGAL STUFF
-----------

I am tired of legalese, so I will word the following in plain english.  The language should be precise enough to avoid misunderstanding in the event that legal action is necessary.

I cannot be responsible for anyone who relies on this utility without using their noggin.  There are no guarantees or warrantees associated with this software.  I especially cannot guarantee that project directories which "pass" the check_nib test will build correctly.  You must accept this program as is or do without.

Please do not charge money for this utility.  Please do not remove my name from this README or the executable.  Please do not distribute modified versions of these files.  I hold the copyrights for this utility and do not give permission for it to be distributed on CD-ROM without my prior written permission.  For those of you who are compiling CD-ROM archives of software available freely via ftp, these restrictions are aimed directly at you - especially if you are planning to charge for the CD-ROM, but even if you are not.  I would suggest keeping a copy of this README around to remind you not to forget about the restrictions I have placed on this free software.  Future versions are not guaranteed to be free.


USAGE & INSTALLATION
--------------------

check_nibs will provide a listing of the parse operations which must be done within Interface Builder.  It can be run at the command prompt or inserted into a project's makefile.  In either case, the recommended installation point is in /usr/local/bin (or ~/Unix/bin if you do not have write access to /usr/local).

If you use check_nibs within Project Builder, the report listing appears in the build window.  The -w option will treat the discrepancies as warnings, without -w check_nibs will stop the build until you reparse the nibs to get them back in sync with your custom classes.


For command line usage, the help for check_nibs reads:

sounds:brianw> check_nibs -h
Usage: check_nibs [-wvV] [-n <nib file>] [<project directory> ...]
 Scans all header files in the specified project directories and reports
 all out of sync .nib files.  The current directory is used by default if
 no project directory is specified.  .nib files are assumed to be in
 subdirectories with the suffix .lproj
    -w          print warnings only - do not stop build
    -v          Verbose status
    -V          even more Verbose status
    -n <file>   specifies a single nib to check instead of all nibs
--- Version 1.4, written Sep - Oct, 1994 ---
--- Copyright 1994, Brian Willoughby <brianw@sounds.wa.com> ---


For use in NEXTSTEP projects, the following lines can be added to Makefile.preamble and Makefile.postamble, respectively:

###############################################################################
#  Makefile.preamble
###############################################################################

# Targets to be built before subprojects & bundles
OTHER_INITIAL_TARGETS =	check_nibs


###############################################################################
#  Makefile.postamble
###############################################################################

# extended rules
# Remove -w to treat discrepancies as build errors instead of warnings
check_nibs:
	/usr/local/bin/check_nibs -w $(SRCROOT)


AUTHOR
------

    Brian Willoughby	Software Design Engineer, BSEE from NCSU
NeXTmail welcome	Sound Consulting: Software Design and Development
BrianW@SoundS.WA.com	Bellevue, WA

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.