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@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@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@dowling.edu ===================================================== _______________________________________________ imgcif-l mailing list imgcif-l@iucr.org http://scripts.iucr.org/mailman/listinfo/imgcif-l
Copyright © International Union of Crystallography
IUCr Webmaster