makefile
上传用户:yflamps
上传日期:2010-04-01
资源大小:155k
文件大小:5k
源码类别:

3D图形编程

开发平台:

C/C++

  1. # makefile for Triangle and Show Me
  2. #
  3. # Type "make" to compile Triangle and Show Me.
  4. #
  5. # After compiling, type "triangle -h" and "showme -h" to read instructions
  6. #   for using each of these programs.
  7. #
  8. # Type "make trilibrary" to compile Triangle as an object file (triangle.o).
  9. #
  10. # Type "make distclean" to delete all object and executable files.
  11. # SRC is the directory in which the C source files are, and BIN is the
  12. #   directory where you want to put the executable programs.  By default,
  13. #   both are the current directory.
  14. SRC = ./
  15. BIN = ./
  16. # CC should be set to the name of your favorite C compiler.
  17. CC = cc
  18. # CSWITCHES is a list of all switches passed to the C compiler.  I strongly
  19. #   recommend using the best level of optimization.  I also strongly
  20. #   recommend timing each level of optimization to see which is the
  21. #   best.  For instance, when I had a DEC Alpha using DEC's optimizing
  22. #   compiler, the -O2 switch generated a notably faster version of Triangle
  23. #   than the -O3 switch.  Go figure.
  24. #
  25. # By default, Triangle and Show Me use double precision floating point
  26. #   numbers.  If you prefer single precision, use the -DSINGLE switch.
  27. #   Double precision uses more memory, but improves the resolution of
  28. #   the meshes you can generate with Triangle.  It also reduces the
  29. #   likelihood of a floating exception due to overflow.  Also, it is
  30. #   much faster than single precision on many architectures.  I recommend
  31. #   double precision unless you want to generate a mesh for which you do
  32. #   not have enough memory to use double precision.
  33. #
  34. # If yours is not a Unix system, use the -DNO_TIMER switch to eliminate the
  35. #   Unix-specific timer code.  Also, don't try to compile Show Me; it only
  36. #   works with X Windows.
  37. #
  38. # To get the exact arithmetic to work right on an Intel processor, use the
  39. #   -DCPU86 switch with Microsoft C, or the -DLINUX switch with gcc running
  40. #   on Linux.  The floating-point arithmetic might not be robust otherwise.
  41. #   Please see http://www.cs.cmu.edu/~quake/robust.pc.html for details.
  42. #
  43. # If you are modifying Triangle, I recommend using the -DSELF_CHECK switch
  44. #   while you are debugging.  Defining the SELF_CHECK symbol causes
  45. #   Triangle to include self-checking code.  Triangle will execute more
  46. #   slowly, however, so be sure to remove this switch before compiling a
  47. #   production version.
  48. #
  49. # If the size of the Triangle binary is important to you, you may wish to
  50. #   generate a reduced version of Triangle.  The -DREDUCED switch gets rid
  51. #   of all features that are primarily of research interest.  Specifically,
  52. #   defining the REDUCED symbol eliminates the -i, -F, -s, and -C switches.
  53. #   The -DCDT_ONLY switch gets rid of all meshing algorithms above and beyond
  54. #   constrained Delaunay triangulation.  Specifically, defining the CDT_ONLY
  55. #   symbol eliminates the -r, -q, -a, -u, -D, -S, and -s switches.  The
  56. #   REDUCED and CDT_ONLY symbols may be particularly attractive when Triangle
  57. #   is called by another program that does not need all of Triangle's
  58. #   features; in this case, these switches should appear as part of
  59. #   "TRILIBDEFS" below.
  60. #
  61. # On some systems, you may need to include -I/usr/local/include and/or
  62. #   -L/usr/local/lib in the compiler options to ensure that the X include
  63. #   files and libraries that Show Me needs are found.  If you get errors
  64. #   like "Can't find include file X11/Xlib.h", you need the former switch.
  65. #   Try compiling without them first; add them if that fails.
  66. #
  67. # An example CSWITCHES line is:
  68. #
  69. #   CSWITCHES = -O -DNO_TIMER -DLINUX -I/usr/X11R6/include -L/usr/X11R6/lib
  70. CSWITCHES = -O -DLINUX -I/usr/X11R6/include -L/usr/X11R6/lib
  71. # TRILIBDEFS is a list of definitions used to compile an object code version
  72. #   of Triangle (triangle.o) to be called by another program.  The file
  73. #   "triangle.h" contains detailed information on how to call triangle.o.
  74. #
  75. # The -DTRILIBRARY should always be used when compiling Triangle into an
  76. #   object file.
  77. #
  78. # An example TRILIBDEFS line is:
  79. #
  80. #   TRILIBDEFS = -DTRILIBRARY -DREDUCED -DCDT_ONLY
  81. TRILIBDEFS = -DTRILIBRARY
  82. # RM should be set to the name of your favorite rm (file deletion program).
  83. RM = /bin/rm
  84. # The action starts here.
  85. all: $(BIN)triangle $(BIN)showme
  86. trilibrary: $(BIN)triangle.o $(BIN)tricall
  87. $(BIN)triangle: $(SRC)triangle.c
  88. $(CC) $(CSWITCHES) -o $(BIN)triangle $(SRC)triangle.c -lm
  89. $(BIN)tricall: $(BIN)tricall.c $(BIN)triangle.o
  90. $(CC) $(CSWITCHES) -o $(BIN)tricall $(SRC)tricall.c 
  91. $(BIN)triangle.o -lm
  92. $(BIN)triangle.o: $(SRC)triangle.c $(SRC)triangle.h
  93. $(CC) $(CSWITCHES) $(TRILIBDEFS) -c -o $(BIN)triangle.o 
  94. $(SRC)triangle.c
  95. $(BIN)showme: $(SRC)showme.c
  96. $(CC) $(CSWITCHES) -o $(BIN)showme $(SRC)showme.c -lX11
  97. distclean:
  98. $(RM) $(BIN)triangle $(BIN)triangle.o $(BIN)tricall $(BIN)showme