[Imgcif-l] CBFlib_0.7.7 update to subrelease 0.7.7.4

Herbert J. Bernstein yaya at bernstein-plus-sons.com
Mon May 7 18:09:39 BST 2007


Dear Jon,

   Thank you.  This is very helpful, and it is a good idea to send it
to the list to save others from having to report the same problems.
Since windows is a very odd case, I think I'll make a distinct
Makefile_MINGW, rather than use a make.inc  I'll wait a couple of
days for other trouble reports and put out an update with your
changes early next week.

   Regards,
     Herbert

At 6:29 PM +0200 5/7/07, Jon Wright wrote:
>Dear Herbert,
>
>Here are some notes for compiling with the mingw system on windows. 
>It is a free gnu c compiler with "msys" bash shell.  For f90 I used 
>the g95 compiler ( www.g95.org ).
>
>g95 is fussy about the inline binary constants. A diff of 
>fcb_read_bits.m4 should be attached - it could easily contain errors 
>as I don't really know the intentions of the code. I have just used 
>the transfer intrinsic to give a matching type to use in IAND.
>
>libmap.a is required for target 'all' in the Makefiles but my 'make' 
>doesn't see how to make it. I've attached an edited makefile for 
>this compiler / platform. There are some issues with "time" not 
>existing and, no directories /usr/bin etc. Might be worthwhile to 
>have a Makefile and then a platform dependent make.inc ? I had to 
>change in lots of places.
>
>My favourite windows C compiler (mingw gcc) didn't know about bzero: 
>needed to add something near the top of cbf_codes.c:
>
>#ifdef __MINGW32__
>#define bzero(ptr,size) memset (ptr, 0, size);
>#endif
>
>
>The needed to remove the -ansi flag from the makefile as "swab" 
>function is otherwise hidden by an ifdef in <string.h>.
>  src/cbf_uncompressed.c:431: warning: implicit declaration of function `swab'
>
>mkstemp is missing on mingw32 also (in img2cif.c etc), I have 
>attached a header file implementation, but I am not sure if it 
>works. If this is in the example directory then add this to 
>img2cif.c, cif2cbf.c and convert_minicbf.c:
>
>#ifdef __MINGW32__
>#include "mkstemp.h"
>#endif
>
>It might be better to use tmpfile(?). /tmp exists on my system, but 
>is extremely unlikely to be there in general. This change allows the 
>programs to compile, but not pass the tests. It seems windows (mingw 
>MSYS bash shell) does like reading or writing binary images through 
>stdin or stdout. I changed the makefile to use filenames for the 
>images. This means the mkstemp supplied may be no good. It might be 
>better to force stdin and stdout to be binary streams in this case, 
>as in 
>(http://archives.postgresql.org/pgsql-hackers-win32/2005-01/msg00227.php)
>
>I can investigate further if you think it is likely that windows 
>users will need this functionality.
>
>Since "time" is not a windows/dos command - I added a makefile 
>variable $(TIME) which is empty for this system.
>
>Finally, I get a slew of test failures which make me worry I got the 
>fortran wrong, trimmed output from "make tests" is attached. With 
>the fixes it appears to be OK apart from the map part.
>
>I shall try to look at the python bindings again soon. Leaving 
>tomorrow for the APS user meeting  for a week and then the UK for 
>the week after.
>
>Best wishes,
>
>Jon
>
>
>
>
>Herbert J. Bernstein wrote:
>>The CBFlib release at
>>
>>    http://www.bernstein-plus-sons.com/software/CBF
>>
>>has been upgraded to CBFlib_0.7.7 subrelease 0.7.7.4 of 6 May 2007.
>>
>>For those used to CBFlib_0.7.6.1, this is a major revision, with
>>an implementation of byte offset compression, and extension of
>>the packed compression, support for reading with f90 routines,
>>support for 3d images, and much faster I/O.  A draft of the
>>latest draft imgCIF dictionary (version 1.5.2) is included
>>and can also be seen at
>>
>>    http://www.bernstein-plus-sons.com/software/CBF/doc
>>
>>For those who have already been using CBFlib_0.7.7, the changes
>>in this version are to correct an error in the ordering of dimensions
>>in some image writes, and adjust the ordering of dimension
>>declarations versus the actual array declarations to work with
>>more f90 compilers.  The draft dictionary has been updated
>>too include the latest suggestions from the recent discussion
>>on the imgcif list.
>>
>>Our thanks to:
>>
>>    W. Kabsch for the f90 implementation of A. Hammersley's
>>byte offset compression and the initial F90 code to read
>>CBFs,
>>    J. P. Abrahams and CCP4 for permission to incorporate the
>>logic of packed_c.c into CBFlib under the gnu open source licenses,
>>    E. Eikenberry for a very fast C-implementation of byte offset
>>compression and for helpful suggestions in speeding things up
>>in general,
>>    H. Powell for pointing out the need to reorder the F90 declarations
>>    A. Hammersley and J. Wright for many helpful suggestions, especially
>>with respect to beam centering and real arrays,
>>    and these people and many other members of the community for testing
>>and suggestions and a great deal of patience as we work though problems.
>>
>>    Bug reports, comments and suggestions would be much appreciated.
>>
>>    -- Herbert
>
>
>
>20a21,22
>>        INTEGER(1)                 MASK1
>>        INTEGER(8)                 MASK8
>34c36,37
><         BITCODE = IAND(BBYTE,Z''`000000FF''`)
>---
>>          MASK1 = TRANSFER(Z''`000000FF''`,BBYTE)
>>          BITCODE = IAND(BBYTE,MASK1)
>43c46
><	      TBITCODE = IAND(BBYTE,Z''`000000FF''`)
>---
>>	      TBITCODE = IAND(BBYTE,MASK1)
>65c68,69
><         TBITCODE = 
>ISHFT(IAND(TBITCODE,Z''`000000FF''`),-(BCOUNT-(COUNT-LBITCOUNT)) )
>---
>>          MASK8 = TRANSFER(Z''`000000FF''`,TBITCODE)
>>          TBITCODE = ISHFT(IAND(TBITCODE,MASK8),-(BCOUNT-(COUNT-LBITCOUNT)) )
>
>gcc -g -O2  -Wall  -DGNUGETOPT -I./include -I./src  \
>               ./examples/makecbf.c  -L./lib \
>       -lcbf -lm -limg -o bin/makecbf
>gcc -g -O2  -Wall  -DGNUGETOPT -I./include -I./src  \
>               ./examples/img2cif.c ./lib/getopt.o -L./lib \
>       -lcbf -lm -limg -o bin/img2cif
>gcc -g -O2  -Wall  -DGNUGETOPT -I./include -I./src  \
>               ./examples/cif2cbf.c ./lib/getopt.o -L./lib \
>       -lcbf -lm -limg -o bin/cif2cbf
>./bin/makecbf example.mar2300 makecbf.cbf
>./bin/img2cif -c packed -m headers -d digest \
>	-e base64  example.mar2300  img2cif_packed.cif
>./bin/img2cif -c canonical -m headers -d digest \
>	-e base64  example.mar2300  img2cif_canonical.cif
>./bin/img2cif -c packed -m headers -d digest \
>	-e none  example.mar2300  img2cif_packed.cbf
>./bin/img2cif -c canonical -m headers -d digest \
>	-e none example.mar2300  img2cif_canonical.cbf
>./bin/cif2cbf -e none -c packed \
>	img2cif_canonical.cif cif2cbf_packed.cbf
>./bin/cif2cbf -e none -c canonical \
>	img2cif_packed.cif cif2cbf_canonical.cbf
>cmp cif2cbf_packed.cbf    makecbf.cbf
>cmp cif2cbf_packed.cbf    img2cif_packed.cbf
>cmp cif2cbf_canonical.cbf img2cif_canonical.cbf
>gcc -g -O2  -Wall  -DGNUGETOPT -I./include -I./src  \
>               ./examples/convert_image.c ./examples/img.c 
>./lib/getopt.o -L./lib \
>       -lcbf -lm -o bin/convert_image
>gcc -g -O2  -Wall  -DGNUGETOPT -I./include -I./src  \
>               ./examples/convert_minicbf.c ./lib/getopt.o -L./lib \
>       -lcbf -lm -o bin/convert_minicbf
>g++ -g -O2  -Wall  -DGNUGETOPT -I./include -I./src  \
>               ./examples/testcell.C -L./lib \
>       -lcbf -lm -o bin/testcell
>gcc -g -O2  -Wall  -DGNUGETOPT -I./include -I./src  \
>               ./examples/testreals.c -L./lib \
>       -lcbf -lm -o bin/testreals
>gcc -g -O2  -Wall  -DGNUGETOPT -I./include -I./src  \
>               ./examples/testflat.c -L./lib \
>       -lcbf -lm -o bin/testflat
>gcc -g -O2  -Wall  -DGNUGETOPT -I./include -I./src  \
>               ./examples/testflatpacked.c -L./lib \
>       -lcbf -lm -o bin/testflatpacked
>g95 -g  ./examples/test_xds_binary.f90 \
>	-L./lib -lfcb -o bin/test_xds_binary
>g95 -g  ./examples/test_fcb_read_image.f90 \
>	-L./lib -lfcb -o bin/test_fcb_read_image
>./bin/cif2cbf -e hex -c none \
>	makecbf.cbf cif2cbf_ehcn.cif
>./bin/cif2cbf -e none -c packed \
>	cif2cbf_ehcn.cif cif2cbf_encp.cbf
>cmp makecbf.cbf cif2cbf_encp.cbf
>./bin/cif2cbf -i 9ins.cif -o 9ins.cbf
>cmp 9ins.cif 9ins.cbf
>./bin/convert_image -F -c diffrn_data_frame=diffrn_frame_data 
>example.mar2300 converted_flat.cbf
>  Pixel area, projected area: 0.0225         , 0.0157899     
>cmp converted_flat.cbf converted_flat_orig.cbf
>./bin/convert_image -c diffrn_data_frame=diffrn_frame_data 
>example.mar2300 converted.cbf
>  Pixel area, projected area: 0.0225         , 0.0157899     
>cmp converted.cbf converted_orig.cbf
>./bin/testcell < testcell.dat > testcell.prt
>cmp testcell.prt testcell_orig.prt
>testcell.prt testcell_orig.prt differ: char 28, line 1
>./bin/convert_image -F -c diffrn_data_frame=diffrn_frame_data  -d 
>adscquantum315 mb_LP_1_001.img adscconverted_flat.cbf
>  Pixel area, projected area: 0.0105243      , 0.00703457    
>cmp adscconverted_flat.cbf adscconverted_flat_orig.cbf
>./bin/convert_image -c diffrn_data_frame=diffrn_frame_data  -d 
>adscquantum315 mb_LP_1_001.img adscconverted.cbf
>  Pixel area, projected area: 0.0105243      , 0.00703457    
>cmp adscconverted.cbf adscconverted_orig.cbf
>./bin/testreals
>cmp testrealin.cbf testrealout.cbf
>./bin/testflat
>cmp testflatin.cbf testflatout.cbf
>./bin/testflatpacked
>cmp testflatpackedin.cbf testflatpackedout.cbf
>echo testflatout.cbf |  ./bin/test_xds_binary > test_xds_bin_testflatout.out
>diff -b -c test_xds_bin_testflatout.out test_xds_bin_testflatout_orig.out
>echo testflatpackedout.cbf |  ./bin/test_xds_binary > 
>test_xds_bin_testflatpackedout.out
>diff -b -c test_xds_bin_testflatpackedout.out 
>test_xds_bin_testflatpackedout_orig.out
>echo testflatout.cbf |  ./bin/test_fcb_read_image  > 
>test_fcb_read_testflatout.out
>diff test_fcb_read_testflatout.out test_fcb_read_testflatout_orig.out
>1,1608c1,7
><   NAME OF TEST CBF
><   1000 x 1000 I4 TEST
><   1000 x 1000 I2 TEST
><   1000 x 1000 I4 TEST, WITH -3 on diag and transpose
><   1000 x 1000 I2 TEST, WITH -3 on diag and transpose
><   50 x 60 x 70 3D_I4 TEST
><  KFRAME( 40 , 40 , 50 ) =  1000 , SHOULD BE  -3
><  KFRAME( 1 , 41 , 50 ) =  1000 , SHOULD BE  89
><  KFRAME( 41 , 41 , 50 ) =  1000 , SHOULD BE  -3
><  KFRAME( 42 , 42 , 50 ) =  1000 , SHOULD BE  -3
><  KFRAME( 43 , 43 , 50 ) =  1000 , SHOULD BE  -3
><  KFRAME( 44 , 44 , 50 ) =  1000 , SHOULD BE  -3
>[ many lines snipped ]
>
><  KFRAME( 14 , 13 , 50 ) =  952 , SHOULD BE  1000
><  KFRAME( 15 , 13 , 50 ) =  993 , SHOULD BE  1000
><  KFRAME( 16 , 13 , 50 ) =  999 , SHOULD BE  1000
><  KFRAME( 5 , 14 , 50 ) =  999 , SHOULD BE  1000 <  KFRAME( 6 , 14 
>, 50 ) =  998 , SHOULD BE  1000
><  KFRAME( 7 , 14 , 50 ) =  996 , SHOULD BE  1000
><  KFRAME( 8 , 14 , 50 ) =  990 , SHOULD BE  1000
><  KFRAME( 9 , 14 , 50 ) =  982 , SHOULD BE  1000
>[ many lines snipped ]
><  KFRAME( 48 , 60 , 70 ) =  995 , SHOULD BE  1000
><  KFRAME( 49 , 60 , 70 ) =  997 , SHOULD BE  1000
><  KFRAME( 50 , 60 , 70 ) =  997 , SHOULD BE  1000
><  TESTS COMPLETED
>---
>>    NAME OF TEST CBF
>>    1000 x 1000 I4 TEST
>>    1000 x 1000 I2 TEST
>>    1000 x 1000 I4 TEST, WITH -3 on diag and transpose
>>    1000 x 1000 I2 TEST, WITH -3 on diag and transpose
>>    50 x 60 x 70 3D_I4 TEST
>>   TESTS COMPLETED
>
>######################################################################
>#  Makefile - command file for make to create CBFlib                 #
>#                                                                    #
># Version 0.7.7 26 April 2007                                        #
>#                                                                    #
>#                          Paul Ellis and                            #
>#         Herbert J. Bernstein (yaya at bernstein-plus-sons.com)        #
>#                                                                    #
># (C) Copyright 2006 Herbert J. Bernstein                            #
>#                                                                    #
>######################################################################
>
>######################################################################
>#                                                                    #
># YOU MAY REDISTRIBUTE THE CBFLIB PACKAGE UNDER THE TERMS OF THE GPL #
>#                                                                    #
># ALTERNATIVELY YOU MAY REDISTRIBUTE THE CBFLIB API UNDER THE TERMS  #
># OF THE LGPL                                                        #
>#                                                                    #
>######################################################################
>
>########################### GPL NOTICES ##############################
>#                                                                    #
># 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-1307  USA                                                    #
>#                                                                    #
>######################################################################
>
>######################### LGPL NOTICES ###############################
>#                                                                    #
># This library is free software; you can redistribute it and/or      #
># modify it under the terms of the GNU Lesser General Public         #
># License as published by the Free Software Foundation; either       #
># version 2.1 of the License, or (at your option) any later version. #
>#                                                                    #
># This library 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  #
># Lesser General Public License for more details.                    #
>#                                                                    #
># You should have received a copy of the GNU Lesser General Public   #
># License along with this library; if not, write to the Free         #
># Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,    #
># MA  02110-1301  USA                                                #
>#                                                                    #
>######################################################################
>
>######################################################################
>#                                                                    #
>#                    Stanford University Notices                     #
>#  for the CBFlib software package that incorporates SLAC software   #
>#                 on which copyright is disclaimed                   #
>#                                                                    #
># This software                                                      #
># -------------                                                      #
># The term "this software", as used in these Notices, refers to      #
># those portions of the software package CBFlib that were created by #
># employees of the Stanford Linear Accelerator Center, Stanford      #
># University.                                                        #
>#                                                                    #
># Stanford disclaimer of copyright                                   #
># --------------------------------                                   #
># Stanford University, owner of the copyright, hereby disclaims its  #
># copyright and all other rights in this software.  Hence, anyone    #
># may freely use it for any purpose without restriction.             #
>#                                                                    #
># Acknowledgement of sponsorship                                     #
># ------------------------------                                     #
># This software was produced by the Stanford Linear Accelerator      #
># Center, Stanford University, under Contract DE-AC03-76SFO0515 with #
># the Department of Energy.                                          #
>#                                                                    #
># Government disclaimer of liability                                 #
># ----------------------------------                                 #
># Neither the United States nor the United States Department of      #
># Energy, nor any of their employees, makes any warranty, express or #
># implied, or assumes any legal liability or responsibility for the  #
># accuracy, completeness, or usefulness of any data, apparatus,      #
># product, or process disclosed, or represents that its use would    #
># not infringe privately owned rights.                               #
>#                                                                    #
># Stanford disclaimer of liability                                   #
># --------------------------------                                   #
># Stanford University makes no representations or warranties,        #
># express or implied, nor assumes any liability for the use of this  #
># software.                                                          #
>#                                                                    #
># Maintenance of notices                                             #
># ----------------------                                             #
># In the interest of clarity regarding the origin and status of this #
># software, this and all the preceding Stanford University notices   #
># are to remain affixed to any copy or derivative of this software   #
># made or distributed by the recipient and are to be affixed to any  #
># copy of software made or distributed by the recipient that         #
># contains a copy or derivative of this software.                    #
>#                                                                    #
># Based on SLAC Software Notices, Set 4                              #
># OTT.002a, 2004 FEB 03                                              #
>######################################################################
>
>
>
>######################################################################
>#                               NOTICE                               #
># Creative endeavors depend on the lively exchange of ideas. There   #
># are laws and customs which establish rights and responsibilities   #
># for authors and the users of what authors create.  This notice     #
># is not intended to prevent you from using the software and         #
># documents in this package, but to ensure that there are no         #
># misunderstandings about terms and conditions of such use.          #
>#                                                                    #
># Please read the following notice carefully.  If you do not         #
># understand any portion of this notice, please seek appropriate     #
># professional legal advice before making use of the software and    #
># documents included in this software package.  In addition to       #
># whatever other steps you may be obliged to take to respect the     #
># intellectual property rights of the various parties involved, if   #
># you do make use of the software and documents in this package,     #
># please give credit where credit is due by citing this package,     #
># its authors and the URL or other source from which you obtained    #
># it, or equivalent primary references in the literature with the    #
># same authors.                                                      #
>#                                                                    #
># Some of the software and documents included within this software   #
># package are the intellectual property of various parties, and      #
># placement in this package does not in any way imply that any       #
># such rights have in any way been waived or diminished.             #
>#                                                                    #
># With respect to any software or documents for which a copyright    #
># exists, ALL RIGHTS ARE RESERVED TO THE OWNERS OF SUCH COPYRIGHT.   #
>#                                                                    #
># Even though the authors of the various documents and software      #
># found here have made a good faith effort to ensure that the        #
># documents are correct and that the software performs according     #
># to its documentation, and we would greatly appreciate hearing of   #
># any problems you may encounter, the programs and documents any     #
># files created by the programs are provided **AS IS** without any   *
># warranty as to correctness, merchantability or fitness for any     #
># particular or general use.                                         #
>#                                                                    #
># THE RESPONSIBILITY FOR ANY ADVERSE CONSEQUENCES FROM THE USE OF    #
># PROGRAMS OR DOCUMENTS OR ANY FILE OR FILES CREATED BY USE OF THE   #
># PROGRAMS OR DOCUMENTS LIES SOLELY WITH THE USERS OF THE PROGRAMS   #
># OR DOCUMENTS OR FILE OR FILES AND NOT WITH AUTHORS OF THE          #
># PROGRAMS OR DOCUMENTS.                                             #
>######################################################################
>
>######################################################################
>#                                                                    #
>#                           The IUCr Policy                          #
>#      for the Protection and the Promotion of the STAR File and     #
>#     CIF Standards for Exchanging and Archiving Electronic Data     #
>#                                                                    #
># Overview                                                           #
>#                                                                    #
># The Crystallographic Information File (CIF)[1] is a standard for   #
># information interchange promulgated by the International Union of  #
># Crystallography (IUCr). CIF (Hall, Allen & Brown, 1991) is the     #
># recommended method for submitting publications to Acta             #
># Crystallographica Section C and reports of crystal structure       #
># determinations to other sections of Acta Crystallographica         #
># and many other journals. The syntax of a CIF is a subset of the    #
># more general STAR File[2] format. The CIF and STAR File approaches #
># are used increasingly in the structural sciences for data exchange #
># and archiving, and are having a significant influence on these     #
># activities in other fields.                                        #
>#                                                                    #
># Statement of intent                                                #
>#                                                                    #
># The IUCr's interest in the STAR File is as a general data          #
># interchange standard for science, and its interest in the CIF,     #
># a conformant derivative of the STAR File, is as a concise data     #
># exchange and archival standard for crystallography and structural  #
># science.                                                           #
>#                                                                    #
># Protection of the standards                                        #
>#                                                                    #
># To protect the STAR File and the CIF as standards for              #
># interchanging and archiving electronic data, the IUCr, on behalf   #
># of the scientific community,                                       #
>#                                                                    #
># # holds the copyrights on the standards themselves,                *
>#                                                                    #
># # owns the associated trademarks and service marks, and            *
>#                                                                    #
># # holds a patent on the STAR File.                                 *
>#                                                                    #
># These intellectual property rights relate solely to the            #
># interchange formats, not to the data contained therein, nor to     #
># the software used in the generation, access or manipulation of     #
># the data.                                                          #
>#                                                                    #
># Promotion of the standards                                         #
>#                                                                    #
># The sole requirement that the IUCr, in its protective role,        #
># imposes on software purporting to process STAR File or CIF data    #
># is that the following conditions be met prior to sale or           #
># distribution.                                                      #
>#                                                                    #
># # Software claiming to read files written to either the STAR       *
># File or the CIF standard must be able to extract the pertinent     #
># data from a file conformant to the STAR File syntax, or the CIF    #
># syntax, respectively.                                              #
>#                                                                    #
># # Software claiming to write files in either the STAR File, or     *
># the CIF, standard must produce files that are conformant to the    #
># STAR File syntax, or the CIF syntax, respectively.                 #
>#                                                                    #
># # Software claiming to read definitions from a specific data       *
># dictionary approved by the IUCr must be able to extract any        #
># pertinent definition which is conformant to the dictionary         #
># definition language (DDL)[3] associated with that dictionary.      #
>#                                                                    #
># The IUCr, through its Committee on CIF Standards, will assist      #
># any developer to verify that software meets these conformance      #
># conditions.                                                        #
>#                                                                    #
># Glossary of terms                                                  #
>#                                                                    #
># [1] CIF:  is a data file conformant to the file syntax defined     #
># at http://www.iucr.org/iucr-top/cif/spec/index.html                #
>#                                                                    #
># [2] STAR File:  is a data file conformant to the file syntax       #
># defined at http://www.iucr.org/iucr-top/cif/spec/star/index.html   #
>#                                                                    #
># [3] DDL:  is a language used in a data dictionary to define data   #
># items in terms of "attributes". Dictionaries currently approved    #
># by the IUCr, and the DDL versions used to construct these          #
># dictionaries, are listed at                                        #
># http://www.iucr.org/iucr-top/cif/spec/ddl/index.html               #
>#                                                                    #
># Last modified: 30 September 2000                                   #
>#                                                                    #
># IUCr Policy Copyright (C) 2000 International Union of              #
># Crystallography                                                    #
>######################################################################
>
>
># Version string
>VERSION = 0.7.7
>
>
>#
># Definitions to get gnu version of getopt or system version of getopt
>#
>#GETOPT		=	SYSTEM
>ifeq ($(GETOPT),)
>   GETOPT	=	getopt-1.1.4_cbf
>endif
>
>#
># Set the compiler and flags
>#
>#########################################################
>#
>#  Appropriate compiler definitions for MAC OS X
>#
>#########################################################
>#CC	= gcc
>#C++	= g++
>#CFLAGS  = -g -O2  -Wall -ansi -pedantic
>#F90C = gfortran
>#F90FLAGS = -g
>#F90LDFLAGS = -bind_at_load
>#TIME = time
>#########################################################
>#
>#  Appropriate compiler definitions for Linux
>#
>#########################################################
>#CC	= gcc
>#C++	= g++
>#CFLAGS  = -g -O2  -Wall -ansi -pedantic
>#F90C = gfortran
>#F90FLAGS = -g
>#F90LDFLAGS =
>#TIME = time
>#########################################################
>#
>#  Appropriate compiler definitions for Mingw
>#
>#########################################################
>CC	= gcc
>C++	= g++
>CFLAGS  = -g -O2  -Wall
>F90C = g95
>F90FLAGS = -g
>F90LDFLAGS =
>TIME =
>#########################################################
>#
>#  Appropriate compiler definitions for AIX
>#
>#########################################################
>#CC	= xlc
>#C++	= xlC
>#CFLAGS  = -g -O2  -Wall
>#F90C = xlf90
>#F90FLAGS = -g -qsuffix=f=f90
>#F90LDFLAGS =
>#TIME = time
>
>#
># Program to use to pack shars
>#
>SHAR	= echo 'no shar for ming'
>#SHAR	= /usr/local/bin/gshar
>
>#
># Program to use to create archives
>#
>AR	= ar
>
>#
># Program to use to add an index to an archive
>#
>RANLIB  = ranlib
>
>#
># Program to use to decompress a data file
>#
>DECOMPRESS = bunzip2
>
>#
># Extension for compressed data file (with period)
>#
>CEXT = .bz2
>
># Program to use to retrieve a URL
>
>#DOWNLOAD = /sw/bin/wget
>DOWNLOAD = wget
>
>
>#
># Directories
>#
>ROOT     = .
>LIB      = $(ROOT)/lib
>BIN      = $(ROOT)/bin
>SRC      = $(ROOT)/src
>INCLUDE  = $(ROOT)/include
>M4       = $(ROOT)/m4
>EXAMPLES = $(ROOT)/examples
>DOC      = $(ROOT)/doc
>GRAPHICS = $(ROOT)/html_graphics
>DATADIR  = $(ROOT)/../CBFlib_$(VERSION)_Data_Files
>INSTALLDIR  = $(HOME)
>
>#
># URL from which to retrieve the data directory
>#
>DATAURL	 = 
>http://arcib.dowling.edu/software/CBFlib/downloads/version_$(VERSION)/CBFlib_$(VERSION)_Data_Files.tar.gz
>
>
>#
># Include directories
>#
>INCLUDES = -I$(INCLUDE) -I$(SRC)
>
>######################################################################
>#  You should not need to make modifications below this line         #
>######################################################################
>
>#
># Suffixes of files to be used or built
>#
>.SUFFIXES:	.c .o .f90 .m4
>
>.m4.f90:
>		m4 -P $< > $@
>
>.f90.o:
>		$(F90C) -g -c $< -o $@
>
>
>#
># Common dependencies
>#
>COMMONDEP = Makefile
>
>#
># Source files
>#
>SOURCE   =  $(SRC)/cbf.c               \
>             $(SRC)/cbf_alloc.c         \
>             $(SRC)/cbf_ascii.c         \
>             $(SRC)/cbf_binary.c        \
>             $(SRC)/cbf_byte_offset.c   \
>             $(SRC)/cbf_canonical.c     \
>             $(SRC)/cbf_codes.c         \
>             $(SRC)/cbf_compress.c      \
>             $(SRC)/cbf_context.c       \
>             $(SRC)/cbf_file.c          \
>             $(SRC)/cbf_lex.c           \
>             $(SRC)/cbf_packed.c        \
>             $(SRC)/cbf_predictor.c     \
>             $(SRC)/cbf_read_binary.c   \
>             $(SRC)/cbf_read_mime.c     \
>             $(SRC)/cbf_simple.c        \
>             $(SRC)/cbf_string.c        \
>             $(SRC)/cbf_stx.c           \
>             $(SRC)/cbf_tree.c          \
>             $(SRC)/cbf_uncompressed.c  \
>             $(SRC)/cbf_write.c         \
>             $(SRC)/cbf_write_binary.c  \
>             $(SRC)/md5c.c
>
>F90SOURCE = $(SRC)/fcb_atol_wcnt.f90     \
>             $(SRC)/fcb_ci_strncmparr.f90 \
>             $(SRC)/fcb_exit_binary.f90   \
>             $(SRC)/fcb_nblen_array.f90   \
>             $(SRC)/fcb_next_binary.f90   \
>             $(SRC)/fcb_open_cifin.f90    \
>             $(SRC)/fcb_packed.f90        \
>             $(SRC)/fcb_read_bits.f90     \
>             $(SRC)/fcb_read_byte.f90     \
>             $(SRC)/fcb_read_image.f90    \
>             $(SRC)/fcb_read_line.f90     \
>             $(SRC)/fcb_read_xds_i2.f90   \
>             $(SRC)/fcb_skip_whitespace.f90 \
>             $(EXAMPLES)/test_fcb_read_image.f90 \
>             $(EXAMPLES)/test_xds_binary.f90
>            
>           
>#
># Header files
>#
>HEADERS   =  $(INCLUDE)/cbf.h                  \
>              $(INCLUDE)/cbf_alloc.h            \
>              $(INCLUDE)/cbf_ascii.h            \
>              $(INCLUDE)/cbf_binary.h           \
>              $(INCLUDE)/cbf_byte_offset.h      \
>              $(INCLUDE)/cbf_canonical.h        \
>              $(INCLUDE)/cbf_codes.h            \
>              $(INCLUDE)/cbf_compress.h         \
>              $(INCLUDE)/cbf_context.h          \
>              $(INCLUDE)/cbf_file.h             \
>              $(INCLUDE)/cbf_lex.h              \
>              $(INCLUDE)/cbf_packed.h           \
>              $(INCLUDE)/cbf_predictor.h        \
>              $(INCLUDE)/cbf_read_binary.h      \
>              $(INCLUDE)/cbf_read_mime.h        \
>              $(INCLUDE)/cbf_simple.h           \
>              $(INCLUDE)/cbf_string.h           \
>              $(INCLUDE)/cbf_stx.h              \
>              $(INCLUDE)/cbf_tree.h             \
>              $(INCLUDE)/cbf_uncompressed.h     \
>              $(INCLUDE)/cbf_write.h            \
>              $(INCLUDE)/cbf_write_binary.h     \
>              $(INCLUDE)/global.h               \
>              $(INCLUDE)/md5.h
>
>#
># m4 macro files
>#
>M4FILES   = $(M4)/fcblib_defines.m4            \
>			$(M4)/fcb_exit_binary.m4           \
>             $(M4)/fcb_next_binary.m4           \
>             $(M4)/fcb_open_cifin.m4            \
>             $(M4)/fcb_packed.m4                \
>             $(M4)/fcb_read_bits.m4             \
>             $(M4)/fcb_read_image.m4            \
>             $(M4)/fcb_read_xds_i2.m4           \
>             $(M4)/test_fcb_read_image.m4       \
>             $(M4)/test_xds_binary.m4
>
>
>#
># Documentation files
>#
>DOCUMENTS = $(DOC)/CBFlib.pdf                   \
>             $(DOC)/CBFlib.rtf                   \
>             $(DOC)/CBFlib_NOTICES.html          \
>             $(DOC)/CBFlib_NOTICES.txt           \
>             $(DOC)/ChangeLog                    \
>             $(DOC)/ChangeLog.html               \
>             $(DOC)/MANIFEST                     \
>             $(DOC)/example.html
>
>#
># HTML Graphics files
>#
>JPEGS     = $(GRAPHICS)/CBFbackground.jpg      \
>             $(GRAPHICS)/CBFbig.jpg             \
>             $(GRAPHICS)/CBFbutton.jpg          \
>             $(GRAPHICS)/cbflibbackground.jpg   \
>             $(GRAPHICS)/cbflibbig.jpg          \
>             $(GRAPHICS)/cbflibbutton.jpg       \
>             $(GRAPHICS)/cifhome.jpg            \
>             $(GRAPHICS)/iucrhome.jpg           \
>             $(GRAPHICS)/noticeButton.jpg
>
>
>#
># Default: instructions
>#
>default:
>	@echo ' '
>	@echo '***************************************************************'
>	@echo ' '
>	@echo ' PLEASE READ README and doc/CBFlib_NOTICES.txt'
>	@echo ' '
>	@echo ' Before making the CBF library and example programs, check'
>	@echo ' that the C compiler name and flags are correct:'
>	@echo ' '
>	@echo ' The current values are:'
>	@echo ' '
>	@echo '   $(CC) $(CFLAGS)'
>	@echo ' '
>	@echo ' Before installing the CBF library and example programs, check'
>	@echo ' that the install directory is correct:'
>	@echo ' '
>	@echo ' The current value :'
>	@echo ' '
>	@echo '   $(INSTALLDIR) '
>	@echo ' '
>	@echo ' To compile the CBF library and example programs type:'
>	@echo ' '
>	@echo '   make clean'
>	@echo '   make all'
>	@echo ' '
>	@echo ' To run a set of tests type:'
>	@echo ' '
>	@echo '   make tests'
>	@echo ' '
>	@echo ' The tests assume that several data files are in the 
>directory' $(DATADIR)
>	@echo ' This directory can be obtained from'
>	@echo ' '
>	@echo ' ' $(DATAURL)
>	@echo ' '
>	@echo ' To clean up the directories type:'
>	@echo ' '
>	@echo '   make clean'
>	@echo ' '
>	@echo ' To install the library and binaries type:'
>	@echo ' '
>	@echo '   make install'
>	@echo ' '
>	@echo '***************************************************************'
>	@echo ' '
>
>#
># Compile the library and examples
>#
>all:	$(LIB) $(BIN) $(SOURCE) $(F90SOURCE) $(HEADERS)  \
>		$(LIB)/libcbf.a          \
>		$(LIB)/libfcb.a          \
>#		$(LIB)/libmap.a          \
>         $(BIN)/convert_image     \
>         $(BIN)/convert_minicbf   \
>         $(BIN)/makecbf           \
>         $(BIN)/img2cif           \
>         $(BIN)/cif2cbf           \
>		$(BIN)/testcell          \
>		$(BIN)/cif2c             \
>		$(BIN)/testreals         \
>		$(BIN)/testflat          \
>		$(BIN)/testflatpacked    \
>		$(BIN)/test_xds_binary   \
>		$(BIN)/test_fcb_read_image
>
>
>install:  all $(INSTALLDIR) $(INSTALLDIR)/lib $(INSTALLDIR)/bin
>		-cp $(INSTALLDIR)/lib/libcbf.a $(INSTALLDIR)/lib/libcbf_old.a
>		cp $(LIB)/libcbf.a $(INSTALLDIR)/lib/libcbf.a
>		-cp $(INSTALLDIR)/bin/convert_image 
>$(INSTALLDIR)/bin/convert_image_old
>		cp $(BIN)/convert_image $(INSTALLDIR)/bin/convert_image
>		-cp $(INSTALLDIR)/bin/convert_minicbf 
>$(INSTALLDIR)/bin/convert_minicbf_old
>		cp $(BIN)/convert_minicbf $(INSTALLDIR)/bin/convert_minicbf
>		-cp $(INSTALLDIR)/bin/makecbf $(INSTALLDIR)/bin/makecbf_old
>		cp $(BIN)/makecbf $(INSTALLDIR)/bin/makecbf
>		-cp $(INSTALLDIR)/bin/img2cif $(INSTALLDIR)/bin/img2cif_old
>		cp $(BIN)/img2cif $(INSTALLDIR)/bin/img2cif
>		-cp $(INSTALLDIR)/bin/cif2cbf $(INSTALLDIR)/bin/cif2cbf_old
>		cp $(BIN)/cif2cbf $(INSTALLDIR)/bin/cif2cbf
>		-cp $(INSTALLDIR)/bin/cif2c $(INSTALLDIR)/bin/cif2c_old
>		cp $(BIN)/cif2c $(INSTALLDIR)/bin/cif2c
>		-cp $(INSTALLDIR)/bin/testreals $(INSTALLDIR)/bin/testreals_old
>		cp $(BIN)/testreals $(INSTALLDIR)/bin/testreals
>		-cp $(INSTALLDIR)/bin/testflat $(INSTALLDIR)/bin/testflat_old
>		cp $(BIN)/testflat $(INSTALLDIR)/bin/testflat
>		-cp $(INSTALLDIR)/bin/testflatpacked 
>$(INSTALLDIR)/bin/testflatpacked_old
>		cp $(BIN)/testflatpacked $(INSTALLDIR)/bin/testflatpacked
>		chmod 644 $(INSTALLDIR)/lib/libcbf.a
>		chmod 755 $(INSTALLDIR)/bin/convert_image
>		chmod 755 $(INSTALLDIR)/bin/convert_minicbf
>		chmod 755 $(INSTALLDIR)/bin/makecbf
>		chmod 755 $(INSTALLDIR)/bin/img2cif
>		chmod 755 $(INSTALLDIR)/bin/cif2cbf
>		chmod 755 $(INSTALLDIR)/bin/cif2c
>		chmod 755 $(INSTALLDIR)/bin/testreals
>		chmod 755 $(INSTALLDIR)/bin/testflat
>		chmod 755 $(INSTALLDIR)/bin/testflatpacked
>
>
>#
># Changes if a local gnu getopt is used
>#
>
>ifneq ($(GETOPT),SYSTEM)
>CFLAGS		+=	-DGNUGETOPT
>GOPTLIB		=	$(LIB)/getopt.o
>GOPTINC		=	$(INCLUDE)/getopt.h
>GOPTCLEAN	=	$(GETOPT)_clean
>GOPTBUILD	=	$(GETOPT)_build
>
>GOPTURL		= 
>	http://arcib.dowling.edu/software/getopt/downloads/$(GETOPT).tar.gz
>
>
>#
># getopt package
>#
>$(GETOPT):
>		$(DOWNLOAD) $(GOPTURL)
>		tar -xvf $(GETOPT).tar.gz
>		-rm $(GETOPT).tar.gz
>
>#
># build getopt
>#
>$(LIB)/getopt.o:		$(GOPTBUILD)
>		(cd $(GETOPT); cp gnu/getopt.o ../$(LIB) )
>$(INCLUDE)/getopt.h:	$(GOPTBUILD)
>		(cd $(GETOPT); cp gnu/getopt.h ../$(INCLUDE) )
>$(GOPTBUILD): 		$(GETOPT)
>		(cd $(GETOPT); sed 
>"1,\$$s/WITHOUT_GETTEXT=0/WITHOUT_GETTEXT=1/g" Makefile \
>		  | sed "1,\$$s/WITH_GETTEXT/WITHOUT_GETTEXT/g"> 
>Makefile_CBF; \
>		  make -f Makefile_CBF GNUGETOPT=1 LIBCGETOPT=0 gnu/getopt.o; \
>		  touch ../$(GOPTBUILD))
>$(GOPTCLEAN):
>		-(cd $(GETOPT); make clean)
>		-rm $(GETOPT)/gnu/getopt.o
>		-rm $(GOPTBUILD)
>
>endif
>
>
>#
># Directories
>#
>$(INSTALLDIR):
>	mkdir -p $(INSTALLDIR)
>	mkdir $(INSTALLDIR)/lib
>	mkdir $(INSTALLDIR)/bin
>
>$(LIB):
>	mkdir $(LIB)
>
>$(BIN):
>	mkdir $(BIN)
>
>#
># Parser
>#
>$(SRC)/cbf_stx.c: $(SRC)/cbf.stx.y
>	bison $(SRC)/cbf.stx.y -o $(SRC)/cbf.stx.tab.c -d
>	mv $(SRC)/cbf.stx.tab.c $(SRC)/cbf_stx.c
>	mv $(SRC)/cbf.stx.tab.h $(INCLUDE)/cbf_stx.h
>
>#
># CBF library
>#
>$(LIB)/libcbf.a: $(SOURCE) $(HEADERS) $(COMMONDEP)
>	$(CC) $(CFLAGS) $(INCLUDES) $(WARNINGS) -c $(SOURCE)
>	$(AR) cr $@ *.o
>	rm *.o
>	$(RANLIB) $@
>
>#
># IMG library
>#
>$(LIB)/libimg.a: $(EXAMPLES)/img.c $(HEADERS) $(COMMONDEP)
>	$(CC) $(CFLAGS) $(INCLUDES) $(WARNINGS) -c $(EXAMPLES)/img.c
>	$(AR) cr $@ *.o
>	rm *.o
>	$(RANLIB) $@
>
>#
># CBF and IMG libraries
>#
>CBF_IMG_LIBS:  $(LIB)/libcbf.a $(LIB)/libimg.a
>
>
>#
># FCB library
>#
>$(LIB)/libfcb.a: $(F90SOURCE) $(COMMONDEP)
>	$(F90C) $(F90FLAGS) -c $(F90SOURCE)
>	$(AR) cr $@ *.o
>	rm *.o
>	$(RANLIB) $@
>
>
>#
># F90SOURCE
>#
>$(SRC)/fcb_exit_binary.f90: $(M4)/fcb_exit_binary.m4 $(M4)/fcblib_defines.m4
>	(cd $(M4); m4 -P fcb_exit_binary.m4) > $(SRC)/fcb_exit_binary.f90
>$(SRC)/fcb_next_binary.f90: $(M4)/fcb_next_binary.m4 $(M4)/fcblib_defines.m4
>	(cd $(M4); m4 -P fcb_next_binary.m4) > $(SRC)/fcb_next_binary.f90
>$(SRC)/fcb_open_cifin.f90: $(M4)/fcb_open_cifin.m4 $(M4)/fcblib_defines.m4
>	(cd $(M4); m4 -P fcb_open_cifin.m4)  > $(SRC)/fcb_open_cifin.f90
>$(SRC)/fcb_packed.f90: $(M4)/fcb_packed.m4 $(M4)/fcblib_defines.m4
>	(cd $(M4); m4 -P fcb_packed.m4)      > $(SRC)/fcb_packed.f90
>$(SRC)/fcb_read_bits.f90: $(M4)/fcb_read_bits.m4 $(M4)/fcblib_defines.m4
>	(cd $(M4); m4 -P fcb_read_bits.m4)   > $(SRC)/fcb_read_bits.f90
>$(SRC)/fcb_read_image.f90: $(M4)/fcb_read_image.m4 $(M4)/fcblib_defines.m4
>	(cd $(M4); m4 -P fcb_read_image.m4)  > $(SRC)/fcb_read_image.f90
>$(SRC)/fcb_read_xds_i2.f90: $(M4)/fcb_read_xds_i2.m4 $(M4)/fcblib_defines.m4
>	(cd $(M4); m4 -P fcb_read_xds_i2.m4) > $(SRC)/fcb_read_xds_i2.f90
>$(EXAMPLES)/test_fcb_read_image.f90: $(M4)/test_fcb_read_image.m4 
>$(M4)/fcblib_defines.m4
>	(cd $(M4); m4 -P test_fcb_read_image.m4) > 
>$(EXAMPLES)/test_fcb_read_image.f90
>$(EXAMPLES)/test_xds_binary.f90: $(M4)/test_xds_binary.m4 
>$(M4)/fcblib_defines.m4
>	(cd $(M4); m4 -P test_xds_binary.m4) > $(EXAMPLES)/test_xds_binary.f90
>
>#
># convert_image example program
>#
>$(BIN)/convert_image: $(LIB)/libcbf.a $(EXAMPLES)/convert_image.c 
>$(EXAMPLES)/img.c \
>					$(GOPTLIB)	$(GOPTINC)
>	$(CC) $(CFLAGS) $(INCLUDES) $(WARNINGS) \
>               $(EXAMPLES)/convert_image.c $(EXAMPLES)/img.c 
>$(GOPTLIB) -L$(LIB) \
>	      -lcbf -lm -o $@
>#
># convert_minicbf example program
>#
>$(BIN)/convert_minicbf: $(LIB)/libcbf.a $(EXAMPLES)/convert_minicbf.c \
>					$(GOPTLIB)	$(GOPTINC)
>	$(CC) $(CFLAGS) $(INCLUDES) $(WARNINGS) \
>               $(EXAMPLES)/convert_minicbf.c $(GOPTLIB) -L$(LIB) \
>	      -lcbf -lm -o $@
>
>#
># makecbf example program
>#
>$(BIN)/makecbf: $(LIB)/libcbf.a $(EXAMPLES)/makecbf.c $(LIB)/libimg.a
>	$(CC) $(CFLAGS) $(INCLUDES) $(WARNINGS) \
>               $(EXAMPLES)/makecbf.c  -L$(LIB) \
>	      -lcbf -lm -limg -o $@
>
>#
># img2cif example program
>#
>$(BIN)/img2cif: $(LIB)/libcbf.a $(EXAMPLES)/img2cif.c $(LIB)/libimg.a \
>					$(GOPTLIB)	$(GOTPINC)
>	$(CC) $(CFLAGS) $(INCLUDES) $(WARNINGS) \
>               $(EXAMPLES)/img2cif.c $(GOPTLIB) -L$(LIB) \
>	      -lcbf -lm -limg -o $@
>
>#
># cif2cbf example program
>#
>$(BIN)/cif2cbf: $(LIB)/libcbf.a $(EXAMPLES)/cif2cbf.c $(LIB)/libimg.a \
>					$(GOPTLIB)	$(GOPTINC)
>	$(CC) $(CFLAGS) $(INCLUDES) $(WARNINGS) \
>               $(EXAMPLES)/cif2cbf.c $(GOPTLIB) -L$(LIB) \
>	      -lcbf -lm -limg -o $@
>#
># testcell example program
>#
>$(BIN)/testcell: $(LIB)/libcbf.a $(EXAMPLES)/testcell.C
>	$(C++) $(CFLAGS) $(INCLUDES) $(WARNINGS) \
>               $(EXAMPLES)/testcell.C -L$(LIB) \
>	      -lcbf -lm -o $@
>
>#
># cif2c example program
>#
>$(BIN)/cif2c: $(LIB)/libcbf.a $(EXAMPLES)/cif2c.c
>	$(C++) $(CFLAGS) $(INCLUDES) $(WARNINGS) \
>               $(EXAMPLES)/cif2c.c -L$(LIB) \
>	      -lcbf -lm -o $@
>
>#
># testreals example program
>#
>$(BIN)/testreals: $(LIB)/libcbf.a $(EXAMPLES)/testreals.c
>	$(CC) $(CFLAGS) $(INCLUDES) $(WARNINGS) \
>               $(EXAMPLES)/testreals.c -L$(LIB) \
>	      -lcbf -lm -o $@
>#
># testflat example program
>#
>$(BIN)/testflat: $(LIB)/libcbf.a $(EXAMPLES)/testflat.c
>	$(CC) $(CFLAGS) $(INCLUDES) $(WARNINGS) \
>               $(EXAMPLES)/testflat.c -L$(LIB) \
>	      -lcbf -lm -o $@
>#
># testflatpacked example program
>#
>$(BIN)/testflatpacked: $(LIB)/libcbf.a $(EXAMPLES)/testflatpacked.c
>	$(CC) $(CFLAGS) $(INCLUDES) $(WARNINGS) \
>               $(EXAMPLES)/testflatpacked.c -L$(LIB) \
>	      -lcbf -lm -o $@
>	     
>#
># test_xds_binary example program
>#
>$(BIN)/test_xds_binary: $(LIB)/libfcb.a $(EXAMPLES)/test_xds_binary.f90
>	$(F90C) $(F90FLAGS) $(F90LDFLAGS) $(EXAMPLES)/test_xds_binary.f90 \
>		-L$(LIB) -lfcb -o $@
>
>#
># test_fcb_read_image example program
>#
>$(BIN)/test_fcb_read_image: $(LIB)/libfcb.a 
>$(EXAMPLES)/test_fcb_read_image.f90
>	$(F90C) $(F90FLAGS) $(F90LDFLAGS) $(EXAMPLES)/test_fcb_read_image.f90 \
>		-L$(LIB) -lfcb -o $@
>
>#
># Data files for tests
>#
>
>$(DATADIR):
>		(cd ..; $(DOWNLOAD) $(DATAURL))
>		(cd ..; tar -xvf CBFlib_$(VERSION)_Data_Files.tar.gz)
>		-(cd ..; rm CBFlib_$(VERSION)_Data_Files.tar.gz)
>
>
>example.mar2300:	$(DATADIR) $(DATADIR)/example.mar2300$(CEXT)
>		$(DECOMPRESS) < $(DATADIR)/example.mar2300$(CEXT) > 
>example.mar2300
>
>
>converted_flat_orig.cbf:	$(DATADIR) 
>$(DATADIR)/converted_flat_orig.cbf$(CEXT)
>		$(DECOMPRESS) < 
>$(DATADIR)/converted_flat_orig.cbf$(CEXT) > converted_flat_orig.cbf
>
>
>adscconverted_flat_orig.cbf:	$(DATADIR) 
>$(DATADIR)/adscconverted_flat_orig.cbf$(CEXT)
>		$(DECOMPRESS) < 
>$(DATADIR)/adscconverted_flat_orig.cbf$(CEXT) > 
>adscconverted_flat_orig.cbf
>
>
>converted_orig.cbf:	$(DATADIR) $(DATADIR)/converted_orig.cbf$(CEXT)
>		$(DECOMPRESS) < 
>$(DATADIR)/converted_orig.cbf$(CEXT) > converted_orig.cbf
>
>
>adscconverted_orig.cbf:	$(DATADIR) 
>$(DATADIR)/adscconverted_orig.cbf$(CEXT)
>		$(DECOMPRESS) < 
>$(DATADIR)/adscconverted_orig.cbf$(CEXT) > adscconverted_orig.cbf
>
>
>mb_LP_1_001.img:	$(DATADIR) $(DATADIR)/mb_LP_1_001.img$(CEXT)
>		$(DECOMPRESS) < $(DATADIR)/mb_LP_1_001.img$(CEXT) > 
>mb_LP_1_001.img
>
>
>9ins.cif:	$(DATADIR) $(DATADIR)/9ins.cif$(CEXT)
>		$(DECOMPRESS) < $(DATADIR)/9ins.cif$(CEXT) > 9ins.cif
>
>testcell_orig.prt:	$(DATADIR) $(DATADIR)/testcell_orig.prt$(CEXT)
>		$(DECOMPRESS) < $(DATADIR)/testcell_orig.prt$(CEXT) > 
>testcell_orig.prt
>
>testrealin.cbf:	$(DATADIR) $(DATADIR)/testrealin.cbf$(CEXT)
>		$(DECOMPRESS) < $(DATADIR)/testrealin.cbf$(CEXT) > 
>testrealin.cbf
>
>testflatin.cbf:	$(DATADIR) $(DATADIR)/testflatin.cbf$(CEXT)
>		$(DECOMPRESS) < $(DATADIR)/testflatin.cbf$(CEXT) > 
>testflatin.cbf
>
>testflatpackedin.cbf:	$(DATADIR) $(DATADIR)/testflatpackedin.cbf$(CEXT)
>		$(DECOMPRESS) < 
>$(DATADIR)/testflatpackedin.cbf$(CEXT) > testflatpackedin.cbf
>
>test_xds_bin_testflatout_orig.out:	$(DATADIR) \
>		$(DATADIR)/test_xds_bin_testflatout_orig.out$(CEXT)
>		$(DECOMPRESS) < 
>$(DATADIR)/test_xds_bin_testflatout_orig.out$(CEXT) \
>		> test_xds_bin_testflatout_orig.out
>
>test_xds_bin_testflatpackedout_orig.out: $(DATADIR) \
>		$(DATADIR)/test_xds_bin_testflatout_orig.out$(CEXT)
>		$(DECOMPRESS) < 
>$(DATADIR)/test_xds_bin_testflatpackedout_orig.out$(CEXT) \
>		> test_xds_bin_testflatpackedout_orig.out
>
>test_fcb_read_testflatout_orig.out: $(DATADIR) \
>		$(DATADIR)/test_xds_bin_testflatout_orig.out$(CEXT)
>		$(DECOMPRESS) < 
>$(DATADIR)/test_fcb_read_testflatout_orig.out$(CEXT) \
>		> test_fcb_read_testflatout_orig.out
>
>test_fcb_read_testflatpackedout_orig.out: $(DATADIR) \
>		$(DATADIR)/test_xds_bin_testflatpackedout_orig.out$(CEXT)
>		$(DECOMPRESS) < 
>$(DATADIR)/test_fcb_read_testflatpackedout_orig.out$(CEXT) \
>		> test_fcb_read_testflatpackedout_orig.out
>
>
>#
># Tests
>#
>tests:	$(LIB) $(BIN) basic extra
>
>#
># Basic Tests
>#
>
>basic:	$(BIN)/makecbf $(BIN)/img2cif $(BIN)/cif2cbf example.mar2300
>	$(BIN)/makecbf example.mar2300 makecbf.cbf
>	$(BIN)/img2cif -c packed -m headers -d digest \
>		-e base64  example.mar2300  img2cif_packed.cif
>	$(BIN)/img2cif -c canonical -m headers -d digest \
>		-e base64  example.mar2300  img2cif_canonical.cif
>	$(BIN)/img2cif -c packed -m headers -d digest \
>		-e none  example.mar2300  img2cif_packed.cbf
>	$(BIN)/img2cif -c canonical -m headers -d digest \
>		-e none example.mar2300  img2cif_canonical.cbf
>	$(BIN)/cif2cbf -e none -c packed \
>		img2cif_canonical.cif cif2cbf_packed.cbf
>	$(BIN)/cif2cbf -e none -c canonical \
>		img2cif_packed.cif cif2cbf_canonical.cbf
>	-cmp cif2cbf_packed.cbf    makecbf.cbf
>	-cmp cif2cbf_packed.cbf    img2cif_packed.cbf
>	-cmp cif2cbf_canonical.cbf img2cif_canonical.cbf
>
>#
># Extra Tests
>#
>extra:	$(BIN)/convert_image $(BIN)/convert_minicbf $(BIN)/cif2cbf 
>$(BIN)/testcell \
>	$(BIN)/testreals $(BIN)/testflat $(BIN)/testflatpacked \
>	$(BIN)/test_xds_binary $(BIN)/test_fcb_read_image \
>	makecbf.cbf 9ins.cif example.mar2300 converted_orig.cbf 
>mb_LP_1_001.img\
>	adscconverted_orig.cbf testcell_orig.prt testrealin.cbf \
>	testflatin.cbf testflatpackedin.cbf \
>	converted_flat_orig.cbf adscconverted_flat_orig.cbf \
>	test_xds_bin_testflatout_orig.out 
>test_xds_bin_testflatpackedout_orig.out \
>	test_fcb_read_testflatout_orig.out 
>test_fcb_read_testflatpackedout_orig.out
>	$(TIME) $(BIN)/cif2cbf -e hex -c none \
>		makecbf.cbf cif2cbf_ehcn.cif
>	$(TIME) $(BIN)/cif2cbf -e none -c packed \
>		cif2cbf_ehcn.cif cif2cbf_encp.cbf
>	-cmp makecbf.cbf cif2cbf_encp.cbf
>	$(TIME) $(BIN)/cif2cbf -i 9ins.cif -o 9ins.cbf
>	-cmp 9ins.cif 9ins.cbf
>	$(TIME) $(BIN)/convert_image -F -c 
>diffrn_data_frame=diffrn_frame_data example.mar2300 
>converted_flat.cbf
>	-cmp converted_flat.cbf converted_flat_orig.cbf
>	$(TIME) $(BIN)/convert_image -c 
>diffrn_data_frame=diffrn_frame_data example.mar2300 converted.cbf
>	-cmp converted.cbf converted_orig.cbf
>	$(TIME) $(BIN)/testcell < testcell.dat > testcell.prt
>	-cmp testcell.prt testcell_orig.prt
>	$(TIME) $(BIN)/convert_image -F -c 
>diffrn_data_frame=diffrn_frame_data  -d adscquantum315 
>mb_LP_1_001.img adscconverted_flat.cbf
>	-cmp adscconverted_flat.cbf adscconverted_flat_orig.cbf
>	$(TIME) $(BIN)/convert_image -c 
>diffrn_data_frame=diffrn_frame_data  -d adscquantum315 
>mb_LP_1_001.img adscconverted.cbf
>	-cmp adscconverted.cbf adscconverted_orig.cbf
>	$(TIME) $(BIN)/testreals
>	-cmp testrealin.cbf testrealout.cbf
>	$(TIME) $(BIN)/testflat
>	-cmp testflatin.cbf testflatout.cbf
>	$(TIME) $(BIN)/testflatpacked
>	-cmp testflatpackedin.cbf testflatpackedout.cbf
>	echo testflatout.cbf | $(TIME) $(BIN)/test_xds_binary > 
>test_xds_bin_testflatout.out
>	-diff -b -c test_xds_bin_testflatout.out 
>test_xds_bin_testflatout_orig.out
>	echo testflatpackedout.cbf | $(TIME) $(BIN)/test_xds_binary > 
>test_xds_bin_testflatpackedout.out
>	-diff -b -c test_xds_bin_testflatpackedout.out 
>test_xds_bin_testflatpackedout_orig.out
>	echo testflatout.cbf | $(TIME) $(BIN)/test_fcb_read_image  > 
>test_fcb_read_testflatout.out
>	-diff test_fcb_read_testflatout.out test_fcb_read_testflatout_orig.out
>	echo testflatpackedout.cbf | $(TIME) 
>$(BIN)/test_fcb_read_image > test_fcb_read_testflatpackedout.out
>	-diff test_fcb_read_testflatpackedout.out 
>test_fcb_read_testflatpackedout_orig.out
>
>
>#
># Remove all non-source files
>#
>empty:
>	@-rm -f  $(LIB)/libcbf.a
>	@-rm -f  $(LIB)/libfcb.a
>	@-rm -f  $(LIB)/libimg.a
>	@-rm -f  $(LIB)/getopt.o
>	@-rm -f  $(INCLUDE)/getopt.h
>	@-rm -f  $(BIN)/makecbf
>	@-rm -f  $(BIN)/img2cif
>	@-rm -f  $(BIN)/cif2cbf
>	@-rm -f  $(BIN)/convert_image
>	@-rm -f  $(BIN)/convert_minicbf
>	@-rm -f  $(BIN)/test_fcb_read_image
>	@-rm -f  $(BIN)/test_xds_binary
>	@-rm -f  $(BIN)/testcell
>	@-rm -f  $(BIN)/cif2c
>	@-rm -f  $(BIN)/testreals
>	@-rm -f  $(BIN)/testflat
>	@-rm -f  $(BIN)/testflatpacked
>	@-rm -f  makecbf.cbf
>	@-rm -f  img2cif_packed.cif
>	@-rm -f  img2cif_canonical.cif
>	@-rm -f  img2cif_packed.cbf
>	@-rm -f  img2cif_canonical.cbf
>	@-rm -f  img2cif_raw.cbf
>	@-rm -f  cif2cbf_packed.cbf
>	@-rm -f  cif2cbf_canonical.cbf
>	@-rm -f  converted.cbf
>	@-rm -f  adscconverted.cbf
>	@-rm -f  converted_flat.cbf
>	@-rm -f  adscconverted_flat.cbf
>	@-rm -f  cif2cbf_ehcn.cif
>	@-rm -f  cif2cbf_encp.cbf
>	@-rm -f  9ins.cbf
>	@-rm -f  9ins.cif
>	@-rm -f  testcell.prt
>	@-rm -f  example.mar2300
>	@-rm -f  converted_orig.cbf
>	@-rm -f  adscconverted_orig.cbf
>	@-rm -f  converted_flat_orig.cbf
>	@-rm -f  adscconverted_flat_orig.cbf
>	@-rm -f  testrealin.cbf
>	@-rm -f  testrealout.cbf
>	@-rm -f  testflatin.cbf
>	@-rm -f  testflatout.cbf
>	@-rm -f  testflatpackedin.cbf
>	@-rm -f  testflatpackedout.cbf
>	@-rm -f  test_fcb_read_testflatout.out
>	@-rm -f  test_fcb_read_testflatpackedout.out
>	@-rm -f  test_xds_bin_testflatpackedout.out
>	@-rm -f  test_xds_bin_testflatout.out
>	@-rm -f  test_fcb_read_testflatout_orig.out
>	@-rm -f  test_fcb_read_testflatpackedout_orig.out
>	@-rm -f  test_xds_bin_testflatpackedout_orig.out
>	@-rm -f  test_xds_bin_testflatout_orig.out
>	@-rm -f  mb_LP_1_001.img
>	@-rm -f  9ins.cif
>	@-rm -f  testcell_orig.prt
>	@-rm -f  $(SRC)/fcb_exit_binary.f90
>	@-rm -f  $(SRC)/fcb_next_binary.f90
>	@-rm -f  $(SRC)/fcb_open_cifin.f90
>	@-rm -f  $(SRC)/fcb_packed.f90
>	@-rm -f  $(SRC)/fcb_read_bits.f90
>	@-rm -f  $(SRC)/fcb_read_image.f90
>	@-rm -f  $(SRC)/fcb_read_xds_i2.f90
>	@-rm -f  $(EXAMPLES)/test_fcb_read_image.f90
>	@-rm -f  $(EXAMPLES)/test_xds_binary.f90
>
>#
># Remove temporary files
>#
>clean:	$(GOPTCLEAN)
>	@-rm -f core
>	@-rm -f *.o
>	@-rm -f *.u
>	@-rm -f ./lib/getopt.o
>#
># Restore to distribution state
>#
>distclean:	clean empty
>
>#
># Create a Shell Archive for distribution
>#
>
>shar:   $(DOCUMENTS) $(SOURCE) $(SRC)/cbf.stx $(HEADERS) \
>          $(EXAMPLES)/img.c \
>	 $(EXAMPLES)/img.h \
>	 $(EXAMPLES)/makecbf.c $(EXAMPLES)/img2cif.c $(EXAMPLES)/cif2cbf.c \
>	 $(EXAMPLES)/convert_image.c $(EXAMPLES)/testcell.C\
>	 $(EXAMPLES)/template_adscquantum4_2304x2304.cbf \
>	 $(EXAMPLES)/template_mar345_2300x2300.cbf \
>	 README.html README Makefile \
>	 $(JPEGS) 9ins.cif.gz
>	-/bin/rm -f CBFlib.shar*
>	$(SHAR) -p -o CBFlib.shar -n CBFlib.shar -M \
>	 $(DOCUMENTS) $(SOURCE) $(SRC)/cbf.stx $(HEADERS) \
>          $(EXAMPLES)/img.c \
>	$(EXAMPLES)/img.h \
>	 $(EXAMPLES)/makecbf.c $(EXAMPLES)/img2cif.c $(EXAMPLES)/cif2cbf.c \
>	 $(EXAMPLES)/convert_image.c \
>	 $(EXAMPLES)/template_adscquantum4_2304x2304.cbf \
>	 $(EXAMPLES)/template_mar345_2300x2300.cbf \
>	 README.html README Makefile \
>	 $(JPEGS) 9ins.cif.gz
>	mv CBFlib.shar.01 CBFlib.shar
>	compress CBFlib.shar
>
>#
># Create a Tape Archive for distribution
>#
>
>tar:   $(DOCUMENTS) $(SOURCE) $(SRC)/cbf.stx $(HEADERS) \
>          $(EXAMPLES)/img.c \
>	 $(EXAMPLES)/img.h \
>	 $(EXAMPLES)/makecbf.c $(EXAMPLES)/img2cif.c $(EXAMPLES)/cif2cbf.c \
>	 $(EXAMPLES)/convert_image.c $(EXAMPLES)/testcell.C \
>	 $(EXAMPLES)/testreals.c \
>	 $(EXAMPLES)/testflat.c \
>	 $(EXAMPLES)/testflatpacked.c \
>	$(EXAMPLES)/template_adscquantum4_2304x2304.cbf \
>	 $(EXAMPLES)/template_mar345_2300x2300.cbf \
>	 $(EXAMPLES)/template_adscquantum315_3072x3072.cbf \
>	 README.html README Makefile \
>	 $(JPEGS) 9ins.cif.gz testcell.dat testcell_orig.prt \
>	 converted_orig.cbf adscconverted_original.cbf
>	-/bin/rm -f CBFlib.tar*
>	tar cvBf CBFlib.tar \
>	 $(DOCUMENTS) $(SOURCE) $(SRC)/cbf.stx $(HEADERS) \
>          $(EXAMPLES)/img.c \
>	$(EXAMPLES)/img.h \
>	 $(EXAMPLES)/makecbf.c $(EXAMPLES)/img2cif.c $(EXAMPLES)/cif2cbf.c \
>	 $(EXAMPLES)/convert_image.c $(EXAMPLES)/testcell.C 
>$(EXAMPLES)/testreals.c \
>	 $(EXAMPLES)/template_adscquantum4_2304x2304.cbf \
>	 $(EXAMPLES)/template_mar345_2300x2300.cbf \
>	 README.html README Makefile \
>	 $(JPEGS) 9ins.cif.gz testcell.dat testcell_orig.prt \
>	 converted_orig.cbf \
>	 adscconverted_original.cbf
>	 gzip --best CBFlib.tar
>
>
>/*  Modified by JPW... it was opening the return of mktemp, which is
>  *  not what you want...
>  *
>  *
>  * $OpenLDAP: /libraries/liblutil/utils.c,v 1.30 2005/11/24 00:10:06 
>ando Exp $
>  * This work is part of OpenLDAP Software <http://www.openldap.org/>.
>  *
>  * Copyright 1998-2005 The OpenLDAP Foundation.
>  * All rights reserved.
>  *
>  * Redistribution and use in source and binary forms, with or without
>  * modification, are permitted only as authorized by the OpenLDAP
>  * Public License.
>  *
>  * A copy of this license is available in the file LICENSE in the
>  * top-level directory of the distribution or, alternatively, at
>  * <http://www.OpenLDAP.org/license.html>.
>  */
>
>#ifdef __MINGW32__
>#include <stdio.h>
>#include <stdlib.h>
>#include <fcntl.h>
>
>int mkstemp( char * templatename )
>{
>     /* creates the template name overwriting templatename */
>     mktemp ( templatename ) ;
>     return open ( templatename, O_RDWR|O_CREAT|O_EXCL, 0600 );
>}
>#endif
>
>
>
>
>_______________________________________________
>imgcif-l mailing list
>imgcif-l at iucr.org
>http://scripts.iucr.org/mailman/listinfo/imgcif-l


-- 
=====================================================
  Herbert J. Bernstein, Professor of Computer Science
    Dowling College, Kramer Science Center, KSC 121
         Idle Hour Blvd, Oakdale, NY, 11769

                  +1-631-244-3035
                  yaya at dowling.edu
=====================================================


More information about the imgcif-l mailing list