-dsig_SOURCES = dsig.c cc.h cc-sig.c getdate.y getdate.h
-catcrypt_SOURCES = catcrypt.c cc.h cc-sig.c cc-kem.c cc-enc.c
-key_SOURCES = keyutil.c getdate.y getdate.h
+define(`LIBCAT_SRC', `cc.h getdate.h dnl
+ cc-sig.c cc-subcmd.c cc-enc.c cc-kem.c cc-list.c')
+libcatcrypt_a_SOURCES = LIBCAT_SRC getdate.y
+
+patsubst(MP_SOURCES, `\.c\>', `.lo') dsig.o keyutil.o rspit.o \
+ patsubst(LIBCAT_SRC, `\.c\>', `.o'): \
+ mptypes.h primetab.h
+
+dsig_SOURCES = dsig.c
+cookie_SOURCES = cookie.c
+catcrypt_SOURCES = catcrypt.c
+catsign_SOURCES = catsign.c
+key_SOURCES = keyutil.c