diff --git a/.gitignore b/.gitignore
index 3f133812b5701659606720b7d8c2cb19691f5326..97a414dab43acb9bd8f1f36bfbc6756c2bb5e907 100644
--- a/.gitignore
+++ b/.gitignore
@@ -55,3 +55,5 @@ __pycache__/
 *.py[cod]
 *$py.class
 .ipynb_checkpoints
+
+.cache/*
diff --git a/CTP/CMakeLists.txt b/CTP/CMakeLists.txt
index 12a3a646e182546933e927ed1b873c2db6d9203a..b1098f7194f198ed5ecb74bec97b601c03aadb5d 100644
--- a/CTP/CMakeLists.txt
+++ b/CTP/CMakeLists.txt
@@ -9,7 +9,7 @@ set (PROGRAM "${PROJECT_NAME}_makereg")
 
 set (TARGETS ${TARGETS} ${LIBRARY} ${CLIENT_LIBRARY} ${PROGRAM} PARENT_SCOPE)
 
-## for RPC Command ${RPCCOM}
+## for RPC Command ${RPCCOM} ${RPCGEN_FLAGS}
 include (compiler.cmake)
 
 ################################################################################
@@ -42,23 +42,23 @@ ADD_CUSTOM_COMMAND(
   DEPENDS ${RPC_DEP_HEADER_SRC})
 ADD_CUSTOM_COMMAND(
 	OUTPUT ${RPC_XDR_SOURCE}
-	COMMAND ${RPCCOM} -o ${RPC_XDR_SOURCE} -c ${RPC_RAW}
+	COMMAND ${RPCCOM} ${RPCGEN_FLAGS} -o ${RPC_XDR_SOURCE} -c ${RPC_RAW}
 	DEPENDS ${RPC_RAW})
 ADD_CUSTOM_COMMAND(
 	OUTPUT ${RPC_SVC_SOURCE}
-	COMMAND ${RPCCOM} -o ${RPC_SVC_SOURCE} -m ${RPC_RAW}
+	COMMAND ${RPCCOM} ${RPCGEN_FLAGS} -o ${RPC_SVC_SOURCE} -m ${RPC_RAW}
 	DEPENDS ${RPC_RAW})
 ADD_CUSTOM_COMMAND(
 	OUTPUT ${RPC_SVC_PATCH_SOURCE}
 	COMMAND sed -e 's/extern/static/g' ${RPC_SVC_SOURCE} > ${RPC_SVC_PATCH_SOURCE}
-	DEPENDS ${RCP_SVC_SOURCE})
+	DEPENDS ${RPC_SVC_SOURCE})
 ADD_CUSTOM_COMMAND(
 	OUTPUT ${RPC_CLNT_SOURCE}
-	COMMAND ${RPCCOM} -o ${RPC_CLNT_SOURCE} -l ${RPC_RAW}
+	COMMAND ${RPCCOM} ${RPCGEN_FLAGS} -o ${RPC_CLNT_SOURCE} -l ${RPC_RAW}
 	DEPENDS ${RPC_RAW})
 ADD_CUSTOM_COMMAND(
 	OUTPUT ${RPC_HEADER}
-	COMMAND ${RPCCOM} -o ${RPC_HEADER} -h ${RPC_RAW}
+	COMMAND ${RPCCOM} ${RPCGEN_FLAGS} -o ${RPC_HEADER} -h ${RPC_RAW}
 	DEPENDS ${RPC_RAW})
 
 ################################################################################
@@ -80,7 +80,7 @@ set_target_properties(${LIBRARY} PROPERTIES
 add_library(${CLIENT_LIBRARY} STATIC 
 	${CLIENT_SOURCES} 
 	${RPC_CLNT_SOURCE} ${RPC_XDR_SOURCE} ${RPC_HEADER})
-set_target_properties(${LIBRARY} PROPERTIES 
+set_target_properties(${CLIENT_LIBRARY} PROPERTIES 
   VERSION ${PROJECT_VERSION} 
   SOVERSION ${PROJECT_VERSION_MAJOR})
 
diff --git a/CTP/CTP/daVarRpcProc.c b/CTP/CTP/daVarRpcProc.c
index 27a22d68c13d09ea3535f3e9990bfb4ec7ea818d..c41ae841143da445f53e171a5b13bb02d2ec6bb4 100644
--- a/CTP/CTP/daVarRpcProc.c
+++ b/CTP/CTP/daVarRpcProc.c
@@ -154,7 +154,7 @@ RVALLIST *davar_readmultiple_1(NAMELIST *argp, CLIENT *clnt)
     }
     free(result.RVALLIST_val);
 #else
-    xdr_free(xdr_RVALLIST, (void *) &result);
+    xdr_free((xdrproc_t)xdr_RVALLIST, (void *) &result);
 #endif
   } else need_to_free = 1;
 /*  minfo = mallinfo();
@@ -180,7 +180,7 @@ ERRLIST *davar_writemultiple_1(WVALLIST *argp, CLIENT *clnt)
   static ERRLIST result;
   int i;
 
-  xdr_free(xdr_ERRLIST, (void *) &result);
+  xdr_free((xdrproc_t)xdr_ERRLIST, (void *) &result);
 
   result.ERRLIST_len = argp->WVALLIST_len;
   result.ERRLIST_val = (int *) malloc(result.ERRLIST_len*sizeof(any));
@@ -285,7 +285,7 @@ davar_readmultiple_test_cb_1(argp, clnt)
 #endif
 
 	memset((char *)&clnt_res, 0, sizeof(clnt_res));
-	if ((clnt_stat = clnt_call(clnt, DAVAR_READMULTIPLE_TEST_CB, xdr_RVALLIST, argp, xdr_int, &clnt_res, TIMEOUT)) != RPC_SUCCESS) {
+	if ((clnt_stat = clnt_call(clnt, DAVAR_READMULTIPLE_TEST_CB, (xdrproc_t)xdr_RVALLIST, argp, (xdrproc_t)xdr_int, &clnt_res, TIMEOUT)) != RPC_SUCCESS) {
 	  printf("clnt call failed, clnt_stat = %d\n",clnt_stat);
 	  clnt_perrno(clnt_stat);
 		return (NULL);
@@ -319,7 +319,7 @@ WVALLIST *davar_readpatternmatch_1(char **argp, CLIENT *clnt)
     }
     free(result.WVALLIST_val);
 #else
-    xdr_free(xdr_WVALLIST, (void *) &result);
+    xdr_free((xdrproc_t)xdr_WVALLIST, (void *) &result);
 #endif
   } else need_to_free = 1;
 /*  minfo = mallinfo();
@@ -439,9 +439,9 @@ int daVarCallBack()
       free(argp->test_condition);
 #else
       if(testresult) {
-	xdr_free(xdr_RVALLIST, (void *) &rpc);
+	xdr_free((xdrproc_t)xdr_RVALLIST, (void *) &rpc);
       }
-      xdr_free(xdr_TESTNAMELIST, (void *) argp);
+      xdr_free((xdrproc_t)xdr_TESTNAMELIST, (void *) argp);
 #endif
       free(argp);
       free(this->sock_in);
diff --git a/CTP/client/thClient.c b/CTP/client/thClient.c
index bc5b9cb225111a51446ac730be6d3301e99b2e61..69ac752a4eae1ffab803353a76b318a1aa7ffc7e 100644
--- a/CTP/client/thClient.c
+++ b/CTP/client/thClient.c
@@ -84,7 +84,7 @@ FCALLSCFUN1(INT,thPrintList,THPRTLIST,thprtlist,INT);
 /* Don't really understand the following.  What about ultrix?
    This is probably because of the _ in clnt_create */
 #ifndef __osf__
-FCALLSCFUN4(INT,clnt_create,CLNT_CREATE,clnt_create,STRING,INT,INT,STRING);
+FCALLSCFUN4(INT,myClntCreate,CLNT_CREATE,clnt_create,STRING,INT,INT,STRING);
 #else
 #ifdef BIT64
 FCALLSCFUN4(INT,myClntCreate,CLNT_CREATE,clnt_create,STRING,INT,INT,STRING);
diff --git a/CTP/compiler.cmake b/CTP/compiler.cmake
index b18ca3745fb1a1eb7729bb1db02c9744abbd734c..5b7fd99d5eae476f7c254a520ec4d5386c40e261 100644
--- a/CTP/compiler.cmake
+++ b/CTP/compiler.cmake
@@ -5,6 +5,8 @@ set(RPCCOM rpcgen -b)
 ## C Compiler Settings 
 ################################################################################
 enable_language (C)
+set(CMAKE_C_STANDARD 89)
+set(CMAKE_C_STANDARD_REQUIRED yes)
 
 ## set special compiler flags
 get_filename_component(C_COMPILER_NAME ${CMAKE_C_COMPILER} NAME)
@@ -12,7 +14,7 @@ get_filename_component(C_COMPILER_NAME ${CMAKE_C_COMPILER} NAME)
 if (C_COMPILER_NAME MATCHES "cc.*" OR 
     C_COMPILER_NAME MATCHES "gcc.*" OR 
     C_COMPILER_NAME MATCHES "clang.*")
-  set (CC_EXTRA_FLAGS "-Wall -W")
+  set (CC_EXTRA_FLAGS "-Wall -W -fomit-frame-pointer -Wno-error=return-type -Wno-unused-but-set-variable -Wno-implicit-function-declaration -Wno-unused-parameter -Wno-unused-variable -Wno-sign-compare -Wno-parentheses")
   set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CC_EXTRA_FLAGS}")
   set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${CC_EXTRA_FLAGS}")
   set (CMAKE_C_FLAGS_DEBUG   "${CMAKE_C_FLAGS_DEBUG} ${CC_EXTRA_FLAGS}")
@@ -33,3 +35,27 @@ endif ()
 ################################################################################
 ## f2c settings
 add_definitions("-Df2cFortran")
+
+################################################################################
+## RPCGEN Configuration (macOS Homebrew vs. default)
+################################################################################
+## On macOS, prefer Homebrew rpcsvc-proto rpcgen to avoid broken system rpcgen.
+## On other Unix platforms, use the system-default rpcgen without changes.
+set(RPCCOM "rpcgen")  # default fallback
+set(RPCGEN_FLAGS "")
+
+if (APPLE)
+  find_program(HOMEBREW_RPCGEN NAMES rpcgen PATHS /opt/homebrew/opt/rpcsvc-proto/bin NO_DEFAULT_PATH)
+  if (HOMEBREW_RPCGEN)
+    message(STATUS "Using Homebrew rpcgen: ${HOMEBREW_RPCGEN}")
+    set(RPCCOM ${HOMEBREW_RPCGEN})
+    set(RPCGEN_FLAGS -b)
+  else ()
+    message(WARNING "Homebrew rpcgen not found. Using system default.")
+    set(RPCCOM rpcgen)
+    set(RPCGEN_FLAGS -b)
+  endif ()
+else ()
+  set(RPCCOM rpcgen)
+  set(RPCGEN_FLAGS -b)
+endif ()
diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake
index 875eb56cbd2931cdbaacd9f0e6c9394f8fe38f58..e9c1b441c212053aa58c920a6008e7bf6e107600 100644
--- a/cmake/compiler.cmake
+++ b/cmake/compiler.cmake
@@ -17,7 +17,7 @@ get_filename_component(C_COMPILER_NAME ${CMAKE_C_COMPILER} NAME)
 if (C_COMPILER_NAME MATCHES "cc.*" OR 
     C_COMPILER_NAME MATCHES "gcc.*" OR 
     C_COMPILER_NAME MATCHES "clang.*")
-  set (CC_EXTRA_FLAGS "-fomit-frame-pointer -Wno-error=return-type")
+  set (CC_EXTRA_FLAGS "-fomit-frame-pointer -Wno-error=return-type -std=gnu89 -Wno-unused-but-set-variable -Wno-implicit-function-declaration -Wno-unused-parameter -Wno-unused-variable -Wno-sign-compare -Wno-parentheses")
   set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CC_EXTRA_FLAGS}")
   set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${CC_EXTRA_FLAGS}")
   set (CMAKE_C_FLAGS_DEBUG   "${CMAKE_C_FLAGS_DEBUG} ${CC_EXTRA_FLAGS}")
diff --git a/nanocernlib b/nanocernlib
index cee0741e7008ac46bc4ce5ded570735894efa00a..55a2f9a4ebea3d2339f54082c20a50d5c9aa842d 160000
--- a/nanocernlib
+++ b/nanocernlib
@@ -1 +1 @@
-Subproject commit cee0741e7008ac46bc4ce5ded570735894efa00a
+Subproject commit 55a2f9a4ebea3d2339f54082c20a50d5c9aa842d
diff --git a/simc/shared/musc.f b/simc/shared/musc.f
index 7ade04d589b756a3531d7d439eb1d59143426bfd..4f104220a5098c5f7bce2affae8429551d8d6b84 100644
--- a/simc/shared/musc.f
+++ b/simc/shared/musc.f
@@ -40,7 +40,7 @@ C-_____________________________________________________________________
 
 	beta = p / sqrt(m2+p*p)
 
-	if (doing_positron)
+	if (doing_positron) then
 	  dth = dth + musc_with_tail(beta, p, rad_len)
 	  dph = dph + musc_with_tail(beta, p, rad_len)
 	else