On 06.07.2010 20:57 CE(S)T, lennox@cs.columbia.edu wrote:
* set CFLAGS in the tzcode Makefile to -DHAVE_SYS_WAIT_H=0 -DHAVE_SYS_STAT_H=0 -DHAVE_SYMLINK=0
* write a wrapper function for link() mapping it to the Windows NT CreateHardLink function:
Thank you for these tips. I could now build zic with Visual Studio and the following command: cl -DHAVE_SYS_WAIT_H=0 -DHAVE_SYMLINK=0 -DHAVE_UNISTD_H=0 zic.c scheck.c ialloc.c my_getopt.c my_link.c I needed to insert #include "getopt.h" in private.h (I thought it is an appropriate location) and copy my_getopt (see other message) and another c file with your link function into it. I now have the following source files: getopt.h ialloc.c my_getopt.c my_getopt.h my_link.c private.h scheck.c tzfile.h zic.c In the end I have a zic.exe that seems to do the job. I run it like this: zic -d output input/africa input/antarctica input/asia input/australasia input/etcetera input/europe input/northamerica input/pacificnew input/southamerica (Windows CMD doesn't expand * like bash would do and zic doesn't do it either so I need to specify all files separately.) It creates 457 files in 16 directories with a total size of 536 kB. After looking into the resulting files, I have the impression that the transition timestamps are all 32-bit, even in the 64-bit v2 section (half of the bytes in that area are 0). I assume that zic only creates transition records until before 2038. How can I extend that range? I didn't find a good place in the code.
If you need to support older filesystems, e.g. FAT32, you could alternately map link() to CopyFile instead.
What does zic use links for? Does it link zone aliases? I think I won't need them in my calendar application, do I? Could I disable creating duplicate files (or linking them)? -- Yves Goergen "LonelyPixel" <nospam.list@unclassified.de> Visit my web laboratory at http://beta.unclassified.de