diff --git a/src/gds/CMakeLists.txt b/src/gds/CMakeLists.txt
index b812ebf45235163cf2b418b8027f65fff1dfd94d..e9122b9086f09a68701c81bdd55e868e75d999f3 100644
--- a/src/gds/CMakeLists.txt
+++ b/src/gds/CMakeLists.txt
@@ -1,3 +1,4 @@
+include(FindThreads)
 FIND_PROGRAM(RPCGEN_PROG rpcgen)
 MESSAGE("Found rpcgen at ${RPCGEN_PROG}")
 
@@ -43,6 +44,7 @@ SET (GDS_SRC
         gdssched.c
         gdssched_server.c
         gdssched_util.c
+        awgtpman.c
         )
 
 SET (GDS_CC_SRC
@@ -200,7 +202,7 @@ endforeach(RPC_TEMPLATE)
 # we do this in two libraries, as the C files need -std=gnu99, the C++ compilers give warnings
 # when building with this, so split the C & C++ portions into seperate pieces
 
-add_library(gds_c STATIC
+add_library(gds_c OBJECT
         ${CMAKE_CURRENT_BINARY_DIR}/gds_includes
         ${GDS_BIN_HDRS}
         ${GDS_SRC}
@@ -210,13 +212,15 @@ target_include_directories(gds_c PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../include)
 target_include_directories(gds_c PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/gds_includes)
 target_compile_definitions(gds_c PRIVATE -DPORTMAP -DLIGO_GDS -DGDS_NO_EPICS ${max_chnname_size})
 
-add_library(gds_cc STATIC
+add_library(gds_cc OBJECT
     ${CMAKE_CURRENT_BINARY_DIR}/gds_includes
     ${GDS_CC_SRC}
     )
 target_compile_definitions(gds_cc PRIVATE -DPORTMAP -DLIGO_GDS -DGDS_NO_EPICS ${max_chnname_size})
-target_link_libraries(gds_cc PUBLIC gds_c)
-add_library(daqd::gds ALIAS gds_cc)
+
+
+add_executable(awgtpman $<TARGET_OBJECTS:gds_c> $<TARGET_OBJECTS:gds_cc>)
+target_link_libraries(awgtpman ${CMAKE_THREAD_LIBS_INIT})
 
 #SET( CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-std=gnu99 -I. -I../include -g -DPORTMAP -DLIGO_GDS -DGDS_NO_EPICS ${max_chnname_size}" )
 #SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -DPORTMAP -DLIGO_GDS -DGDS_NO_EPICS ${max_chnname_size}" )