Index: /issm/trunk-jpl/m4/issm_options.m4
===================================================================
--- /issm/trunk-jpl/m4/issm_options.m4	(revision 15383)
+++ /issm/trunk-jpl/m4/issm_options.m4	(revision 15384)
@@ -1527,5 +1527,4 @@
 	fi
 	AM_CONDITIONAL([IOS], [test x$HAVE_IOS != xno])
-	AC_DEFINE([_HAVE_IOS_],[1],[with ios.])
 	AC_MSG_RESULT($HAVE_IOS)
 	dnl }}}
@@ -1555,5 +1554,4 @@
 	AM_CONDITIONAL([ANDROIDJNI], [test x$HAVE_ANDROID = xjni])
 	AM_CONDITIONAL([ANDROIDEXE], [test x$HAVE_ANDROID = xexe])
-	AC_DEFINE([_HAVE_ANDROID_],[1],[with android.])
 	AC_MSG_RESULT($HAVE_ANDROID)
 	dnl }}}
Index: /issm/trunk-jpl/src/c/classes/Elements/Element.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 15383)
+++ /issm/trunk-jpl/src/c/classes/Elements/Element.h	(revision 15384)
@@ -84,4 +84,5 @@
 		virtual void   SmbGradients()=0;
 		virtual int    UpdatePotentialUngrounding(IssmDouble* potential_sheet_ungrounding,Vector<IssmDouble>* vec_nodes_on_iceshelf,IssmDouble* nodes_on_iceshelf)=0;
+		virtual void UpdateConstraints(void)=0; 
 		virtual void   ResetCoordinateSystem()=0;
 
@@ -133,5 +134,4 @@
 		virtual void GetHydrologyDCInefficientHmax(IssmDouble* ph_max, Node* innode)=0;
 		virtual void GetHydrologyTransfer(Vector<IssmDouble>* transfer)=0; 
-		virtual void UpdateConstraints(void)=0; 
 		virtual void HydrologyEPLGetMask(Vector<IssmDouble>* mask)=0;
 		virtual void HydrologyEPLGetActive(Vector<IssmDouble>* active)=0;
Index: /issm/trunk-jpl/src/c/classes/Elements/Penta.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 15383)
+++ /issm/trunk-jpl/src/c/classes/Elements/Penta.h	(revision 15384)
@@ -215,4 +215,5 @@
 		Tria*	  SpawnTria(int g0, int g1, int g2);
 		void	  SurfaceNormal(IssmDouble* surface_normal, IssmDouble xyz_list[3][3]);
+		void     UpdateConstraints(void);
 
 		#ifdef _HAVE_DIAGNOSTIC_
@@ -314,5 +315,4 @@
 		void    HydrologyEPLGetMask(Vector<IssmDouble>* vec_mask);
 		void    InputUpdateFromSolutionHydrologyDCInefficient(IssmDouble* solution);
-		void    UpdateConstraints(void);
 		#endif
 		#ifdef _HAVE_THERMAL_
Index: /issm/trunk-jpl/src/c/classes/Elements/Tria.h
===================================================================
--- /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 15383)
+++ /issm/trunk-jpl/src/c/classes/Elements/Tria.h	(revision 15384)
@@ -214,4 +214,5 @@
 		void	         SetClone(int* minranks);
 		void	         SurfaceNormal(IssmDouble* surface_normal, IssmDouble xyz_list[3][3]);
+		void             UpdateConstraints(void);
 
 		#ifdef _HAVE_DIAGNOSTIC_
@@ -248,5 +249,4 @@
 		void    GetSolutionFromInputsOneDof(Vector<IssmDouble>* solution,int enum_type);
 		void    CreateHydrologyWaterVelocityInput(void);
-		void    UpdateConstraints(void);
 		void	  InputUpdateFromSolutionHydrology(IssmDouble* solution);
 		void	  InputUpdateFromSolutionHydrologyShreve(IssmDouble* solution);
Index: /issm/trunk-jpl/src/c/classes/FemModel.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 15383)
+++ /issm/trunk-jpl/src/c/classes/FemModel.cpp	(revision 15384)
@@ -1583,4 +1583,5 @@
 #endif
 
+#ifdef _HAVE_HYDROLOGY_
 void FemModel::HydrologyEPLupdateDomainx(void){ /*{{{*/
 
@@ -1666,2 +1667,3 @@
 }
 /*}}}*/
+#endif
Index: /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp
===================================================================
--- /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 15383)
+++ /issm/trunk-jpl/src/c/classes/Materials/Matice.cpp	(revision 15384)
@@ -567,4 +567,5 @@
 					return;
 				}
+				#ifdef _HAVE_3D_
 				case PentaEnum: {
 					IssmDouble valuesp[6];
@@ -573,4 +574,5 @@
 					return;
 				}
+			  	#endif
 				default: _error_("element " << EnumToStringx(element->ObjectEnum()) << " not implemented yet");
 			}
@@ -631,4 +633,5 @@
 					return;
 				}
+				#ifdef _HAVE_3D_
 				case PentaEnum:{
 					IssmDouble valuesp[6];
@@ -637,4 +640,5 @@
 					return;
 				}
+				# endif
 				default: _error_("element " << EnumToStringx(element->ObjectEnum()) << " not implemented yet");
 			}
Index: /issm/trunk-jpl/src/c/modules/ResetConstraintsx/ResetConstraintsx.cpp
===================================================================
--- /issm/trunk-jpl/src/c/modules/ResetConstraintsx/ResetConstraintsx.cpp	(revision 15383)
+++ /issm/trunk-jpl/src/c/modules/ResetConstraintsx/ResetConstraintsx.cpp	(revision 15384)
@@ -2,4 +2,10 @@
  * \brief: reset thermal penalties
  */
+
+#ifdef HAVE_CONFIG_H
+	#include <config.h>
+#else
+#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
+#endif
 
 #include "./ResetConstraintsx.h"
@@ -21,11 +27,14 @@
 	/*Do we have penalties linked to rifts? In this case, run our special rifts penalty 
 	 * management routine, otherwise, skip : */
+	#ifdef _HAVE_RIFTS_
 	if (RiftIsPresent(loads,analysis_type)){
 		_error_("rift constraints reset not supported yet!");
 	}
-	else if(ThermalIsPresent(loads,analysis_type)){
+	#endif
+	#ifdef _HAVE_THERMAL_
+	if(ThermalIsPresent(loads,analysis_type)){
 		ThermalConstraintsReset(loads,analysis_type);
 	}
-	else{ /*Do nothing, no constraints management!:*/}
+	#endif
 
 }
