diff --git a/src/petsc4Foam/Allwmake b/src/petsc4Foam/Allwmake
index d3db18eb60ae549543d83f2d87771b919e7d37ce..c07c3937fb3aa24fefed23a01c47425456f1dc2a 100755
--- a/src/petsc4Foam/Allwmake
+++ b/src/petsc4Foam/Allwmake
@@ -1,7 +1,8 @@
 #!/bin/sh
 cd ${0%/*} || exit 1                         # Run from this directory
-. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
-. $WM_PROJECT_DIR/wmake/scripts/have_petsc
+targetType=libso
+. "${WM_PROJECT_DIR:?}"/wmake/scripts/AllwmakeParseArguments
+. "${WM_PROJECT_DIR:?}"/wmake/scripts/have_petsc
 
 #------------------------------------------------------------------------------
 
diff --git a/src/petsc4Foam/Make/files b/src/petsc4Foam/Make/files
index 0fd0f768515c1207d5ba7f68302a180347725d6f..eee14d3027cce414336328916f72458d78c3e0e4 100644
--- a/src/petsc4Foam/Make/files
+++ b/src/petsc4Foam/Make/files
@@ -4,4 +4,4 @@ utils/petscControls.C
 utils/petscLinearSolverContexts.C
 utils/petscCacheManager.C
 
-LIB = $(FOAM_SITE_LIBBIN)/libpetscFoam
+LIB = $(FOAM_MODULE_LIBBIN)/libpetscFoam
diff --git a/src/petsc4Foam/Make/options b/src/petsc4Foam/Make/options
index 3ac2dfd16a974b625090181979a44a782ca4d3c8..41ef56677326e58acec84e7516169e3488f62175 100644
--- a/src/petsc4Foam/Make/options
+++ b/src/petsc4Foam/Make/options
@@ -1,6 +1,13 @@
 sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
 sinclude $(RULES)/mplib$(WM_MPLIB)
 
+sinclude $(GENERAL_RULES)/module-group-path
+
+/* Failsafe - default to group location */
+ifeq (,$(strip $(FOAM_MODULE_LIBBIN)))
+    FOAM_MODULE_LIBBIN = $(FOAM_SITE_LIBBIN)
+endif
+
 EXE_INC = \
     $(PFLAGS) $(PINC) \
     -Wno-old-style-cast \
@@ -11,4 +18,5 @@ EXE_INC = \
 
 LIB_LIBS = \
     -lfiniteVolume \
-    -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) -L${PETSC_LIB_DIR} -lpetsc
+    -L$(FOAM_EXT_LIBBIN)/$(FOAM_MPI) \
+    -L${PETSC_LIB_DIR} -lpetsc