-CFLAGS+=-I$(LIBUCW)/include $(TLSCF) $(GCRCF)
-LDFLAGS+=$(TLSLF)
-LDFLAGS+=-lpthread # FIXME: Use libucw without threads
+DIRS+=submit
+SDIR=$(o)/submit
+
+### The submit server ###
+
+PROGS+=$(addprefix $(SDIR)/,submitd privkey connect)
+
+$(SHERLOCK_PERL_MODS): PERL_MODULE_DIR=MO
+
+$(SDIR)/submitd: $(addprefix $(SDIR)/,submitd.o commands.o tasks.o) $(LIBUCW) $(LIBSH)
+$(SDIR)/submitd: CFLAGS+=$(TLSCF) $(GCRCF)
+$(SDIR)/submitd: LIBS+=$(TLSLF)
+
+$(SDIR)/connect: $(SDIR)/connect.o $(LIBUCW)
+$(SDIR)/connect: CFLAGS+=$(TLSCF) $(GCRCF)
+$(SDIR)/connect: LIBS+=$(TLSLF)
+
+$(SDIR)/privkey: $(SDIR)/privkey.o $(LIBUCW)
+$(SDIR)/privkey: CFLAGS+=$(TLSCF) $(GCRCF)
+$(SDIR)/privkey: LIBS+=$(TLSLF)
+
+CONFIGS+=submitd
+run/cf/submitd: $(SDIR)/submitd.cf
+
+### Submitter perl module ###