--- makefile.orig	2013-11-06 20:26:24 UTC
+++ makefile
@@ -11,7 +11,7 @@
 # CXX should be set to the name of your favorite C++ compiler.
 # ===========================================================
 
-CXX = g++
+#CXX = g++
 #CXX = icpc
 #CXX = CC
 
@@ -19,11 +19,12 @@ CXX = g++
 # -O2, -O3 ... to find the best optimization level.
 # ===================================================================
 
-CXXFLAGS = -O3
+CXXFLAGS ?= -O3
+ARFLAGS ?= -crD 
 
 # PREDCXXFLAGS is for compiling J. Shewchuk's predicates. 
 
-PREDCXXFLAGS = -O0
+PREDCXXFLAGS? = -O0
 
 # SWITCHES is a list of switches to compile TetGen.
 # =================================================
@@ -36,7 +37,7 @@ PREDCXXFLAGS = -O0
 #   down the speed of TetGen.  They can be skipped by define the -DNDEBUG
 #   switch.
 
-SWITCHES = 
+SWITCHES = -DNDEBUG
 
 # RM should be set to the name of your favorite rm (file deletion program).
 
@@ -44,19 +45,20 @@ RM = /bin/rm
 
 # The action starts here.
 
-tetgen:	tetgen.cxx predicates.o
-	$(CXX) $(CXXFLAGS) $(SWITCHES) -o tetgen tetgen.cxx predicates.o -lm
-
-tetlib: tetgen.cxx predicates.o
-	$(CXX) $(CXXFLAGS) $(SWITCHES) -DTETLIBRARY -c tetgen.cxx
-	ar r libtet.a tetgen.o predicates.o
-
+LIBS=	-lm
+tetgen:	tetgen.o predicates.o
+	$(CXX) $(CXXFLAGS) $(LDFLAGS) -o ${.TARGET} ${.ALLSRC} ${LIBS}
+tetgen.o: tetgen.cxx
+	$(CXX) $(CXXFLAGS) $(SWITCHES) -c -o ${.TARGET} ${.ALLSRC}
 predicates.o: predicates.cxx
-	$(CXX) $(PREDCXXFLAGS) -c predicates.cxx
+	$(CXX) $(CXXFLAGS) $(PREDCXXFLAGS) $(SWITCHES) -c -o ${.TARGET} ${.ALLSRC}
 
-clean:
-	$(RM) *.o *.a tetgen *~
+tetgen_lib.o: tetgen.cxx
+	$(CXX) $(CXXFLAGS) $(SWITCHES) -DTETLIBRARY -c -o ${.TARGET} ${.ALLSRC}
+libtet.a: tetgen_lib.o predicates.o
+	$(AR) $(ARFLAGS) ${.TARGET} ${.ALLSRC}
 
+tetlib: libtet.a
 
-
-
+clean:
+	$(RM) -f *.o *.a tetgen *~
