Almost-Delaunay Simplices in CGAL : Installation Manual Deepak Bandyopadhyay 1. Unzip the package into a directory named "ADCGAL" somewhere in your path. 2. Make sure CGAL and Boost are already installed and CGAL_MAKEFILE and CGALROOT are defined in the environment variables. This version expects CGAL-3.2 onwards; earlier versions needed some patches to the CGAL include files that have been incorporated into the latest versions. 3A. For Windows: ================ * Open MSVC++8.x/Intel Compiler. VS2003 versions of the .vcproj files are provided in a VS2003 directory. * Load solution ADCGAL7.sln, or project ADsimpCGAL7.vcproj (AD simplices) or ADCGAL7.vcproj (AD edges only). The projects differ in one preprocessor definiton (ADSIMP_CGAL) and in the files included (ADsimpCGAL.cpp should be only in ADsimpCGAL.vcproj) * Edit the Properties and change paths of CGAL and Boost libraries and include files to those on your system. * Compile. The output will lie in the directory "Release" under ADCGAL for ADCGAL.exe, AD simplices ("ReleaseEdge" for ADedgeCGAL, since we don't want the *.o files for the two versions to reside in the same place). 3B. For Linux ============= * Edit the Makefile (symlink to Makefile.linux) to change the settings to your CGAL and BOOST installations. Make sure ADSIMP_CGAL is defined within CXX_FLAGS if you want to compile "AD simplices" code, and commented out for AD edge code. You can tell which version was actually compiled since the simplex version will take a non-zero time for Step 6 (written to standard output), and will not create *.AD3, *.del3, *.AD4, *.del4 files. There are Linux-specific defines also: the gcc version I used had the hash_map include file in a non-standard location, so I had to define -DCYGWIN_GCC_BUG and provide alternate code (most of these bugs affect compilation with Cygwin GCC also). Another is -DREPLACE_AUTO_REF_BOOST - this is unique to Linux, as the auto_ref smart pointer implementation I used does not work in Linux, it uses Win32 API stuff to do threads that I tried to replace but could not make it work, so provide an alternate implementation using BOOST smart pointers. * Compile: "make ADedgeCGAL" or "make ADCGAL" for edges only or simplices, respectively. You make have to "make clean" (or "make ADswitch" to remove ADmainCGAL.o) before you change from one to the other (in future they should be built in different places to avoid this; right now both executables appear in the ADCGAL directory). 4. Use the executable or incorporate in scripts Usage: ADCGAL , more details in the usage manual. %%% Checklist of files in the current version, in directory ADCGAL before installation %%% C++ source files ADconvex.cpp ADedgeCGAL.cpp ADfunc.cpp ADjoggle.cpp ADmainCGAL.cpp ADPointNeighbors.cpp ADsimpCGAL.cpp auto_ref.cpp MyDelaunay.cpp tester.cpp %% C++ header files ADCGAL.h ADcommon.h ADconvex.h ADdefs.h ADfunc.h ADPointNeighbors.h ADutil.h auto_ref.h MyDelaunay.h MySTLextensions.h quick_mem_manager.h SortedTuples.h sorted_vector.h %% makefiles (Linux) and project files (Win) Makefile makefile.cyg Makefile.linux ADCGAL7.sln tester7.sln ADCGAL7.vcproj ADsimpCGAL7.vcproj tester7.vcproj %% sample input files (remove .out from the names to get third argument of ADCGAL) trouble.out 2bnh.out allpts.out 1lo6.out 1af70.out %% Files that you should see added after a successful compilation: *.o (one for each *.cpp) ADCGAL (simplices Binary, which appears after you "make ADCGAL" ADedgeCGAL (edges Binary, which will appear only after you "make ADedgeCGAL" %% Install Troubleshooting: Nothing here for now; make sure you have the right versions of all required libraries; that CGALROOT, BOOSTDIR and CGAL_MAKEFILE environment variables are set; that all paths in the Makefile or project file are valid %% Cygwin support: Cygwin is supported again, hurray! Use the makefile.cyg (Makefile is symlinked to linux version as this is a more common case). Use eg. "make -f makefile.cyg ADCGAL.exe" or remove the link Makefile and symlink makefile.cyg as makefile. I didn't do this to fight Windows/DOS's tendency to ignore case in filenames, which would have overwritten the Linux makefile. % a note on binaries Because of various compiler optimizations, the VC++ 8.0-compiled executables seem both smaller and faster by a factor of 2 than the cygwin-compiled executables; though both are provided, the VC++ ones should be preferred.