diff --git a/src/xpdev/GNUmakefile b/src/xpdev/GNUmakefile
index 4d9b9e3a5149271d18d9d339fbe30cac97b9edf3..019a20e01c8de066cb5619dd2e6097a374871ac8 100644
--- a/src/xpdev/GNUmakefile
+++ b/src/xpdev/GNUmakefile
@@ -21,6 +21,18 @@ $(WRAPTEST): $(MTOBJODIR)/wraptest.o $(DEPS) | $(EXEODIR)
 	@echo Linking $@
 	$(QUIET)$(CC) -o $@ $(LDFLAGS) $(MT_LDFLAGS) $^ $(XPDEV-MT_LIB_BUILD) -lm $(XPDEV-MT_LIBS)
 
+$(SOPENFILE): $(MTOBJODIR)/sopenfile.o $(DEPS) | $(EXEODIR)
+	@echo Linking $@
+	$(QUIET)$(CC) -o $@ $(LDFLAGS) $(MT_LDFLAGS) $^ $(XPDEV-MT_LIB_BUILD) -lm $(XPDEV-MT_LIBS)
+
+$(LOCKFILE): $(OBJODIR)/lockfile.o $(DEPS) | $(EXEODIR)
+	@echo Linking $@
+	$(QUIET)$(CC) -o $@ $(LDFLAGS) $^ $(XPDEV_LIB_BUILD) -lm $(XPDEV-LIBS)
+
+$(SHOWLOCKS): $(OBJODIR)/showlocks.o $(DEPS) | $(EXEODIR)
+	@echo Linking $@
+	$(QUIET)$(CC) -o $@ $(LDFLAGS) $^ $(XPDEV_LIB_BUILD) -lm $(XPDEV-LIBS)
+
 $(XPTIME): $(OBJODIR)/xptime.o $(XPDEV_LIB_BUILD)
 	@echo Linking $@
 	$(QUIET)$(CC) -o $@ $(LDFLAGS) $^ $(XPDEV_LIB_BUILD) -lm
diff --git a/src/xpdev/targets.mk b/src/xpdev/targets.mk
index 1da192231dfc1f230807704a9f4a7cc6f7a1632e..3905375b0fc243a19a9fd7cf8669c345eb8bd6c2 100644
--- a/src/xpdev/targets.mk
+++ b/src/xpdev/targets.mk
@@ -7,6 +7,9 @@
 # ODIR, DIRSEP, LIBFILE, EXEFILE, and DELETE must be pre-defined
 
 WRAPTEST		= $(EXEODIR)$(DIRSEP)wraptest$(EXEFILE)
+SOPENFILE		= $(EXEODIR)$(DIRSEP)sopenfile$(EXEFILE)
+LOCKFILE		= $(EXEODIR)$(DIRSEP)lockfile$(EXEFILE)
+SHOWLOCKS		= $(EXEODIR)$(DIRSEP)showlocks$(EXEFILE)
 XPTIME			= $(EXEODIR)$(DIRSEP)xptime$(EXEFILE)
 XPDEV_LIB_BUILD	= $(LIBODIR)$(DIRSEP)$(LIBPREFIX)xpdev$(LIBFILE)
 XPDEV-MT_LIB_BUILD	= $(LIBODIR)$(DIRSEP)$(LIBPREFIX)xpdev_mt$(LIBFILE)
@@ -15,7 +18,7 @@ XPDEV-MT_SHLIB_BUILD	= $(LIBODIR)$(DIRSEP)$(LIBPREFIX)xpdev_mt$(SOFILE)
 
 all: lib mtlib
 
-tests: $(MTOBJODIR) $(LIBODIR) $(EXEODIR) $(WRAPTEST)
+tests: $(MTOBJODIR) $(LIBODIR) $(EXEODIR) $(WRAPTEST) $(SOPENFILE) $(LOCKFILE) $(SHOWLOCKS)
 
 dl: dl-lib dl-mtlib