+# Makefile for MO-Eval submitter
+# (c) 2008 Martin Mares <mj@ucw.cz>
+
TLSCF:=$(shell libgnutls-config --cflags)
TLSLF:=$(shell libgnutls-config --libs)
+GCRCF:=$(shell libgcrypt-config --cflags)
+
+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)
-CFLAGS=-O2 -Iinclude -g -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -Wundef -Wredundant-decls -std=gnu99 $(TLSCF)
-LDFLAGS=$(TLSLF)
+$(SDIR)/connect: $(SDIR)/connect.o $(LIBUCW)
+$(SDIR)/connect: CFLAGS+=$(TLSCF) $(GCRCF)
+$(SDIR)/connect: LIBS+=$(TLSLF)
-CC=gcc-4.1.1
-CFLAGS+=-Wno-pointer-sign -Wdisabled-optimization -Wno-missing-field-initializers
-LDFLAGS+=-lpthread # FIXME: Use libucw without threads
+$(SDIR)/privkey: $(SDIR)/privkey.o $(LIBUCW)
+$(SDIR)/privkey: CFLAGS+=$(TLSCF) $(GCRCF)
+$(SDIR)/privkey: LIBS+=$(TLSLF)
-all: submitd connect
+CONFIGS+=submitd
+run/cf/submitd: $(SDIR)/submitd.cf
-submitd: submitd.o commands.o tasks.o lib/libsh.a lib/libucw.a
-submitd.o: submitd.c submitd.h
-commands.o: commands.c submitd.h
-tasks.o: tasks.c submitd.h
-connect: connect.o lib/libucw.a
-connect.o: connect.c
+### Submitter perl module ###
+
+EXTRA_RUNDIRS+=lib/perl5/MO
+SUBMIT_PERL_MODS=$(o)/submit/Submit.pm
+PROGS+=$(SUBMIT_PERL_MODS)
+
+### The submit client and utilities ###
+
+PROGS+=$(addprefix $(SDIR)/,contest create-certs remote-status remote-submit show-submits)
+
+$(SDIR)/contest: $(s)/submit/contest.pl
+$(SDIR)/create-certs: $(s)/submit/create-certs.sh
+$(SDIR)/remote-status: $(s)/submit/remote-status.pl
+$(SDIR)/remote-submit: $(s)/submit/remote-submit.pl
+$(SDIR)/show-submits: $(s)/submit/show-submits.pl
certs:
certtool --generate-privkey --outfile ca-key.pem
certtool --generate-request --load-privkey client-key.pem --outfile client-req.pem --template client-cert.tpl
certtool --generate-certificate --load-request client-req.pem --outfile client-cert.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem --template client-cert.tpl
# Beware of serial numbers
-
-clean:
- rm -f `find . -name "*~" -or -name "*.[oa]" -or -name "\#*\#" -or -name TAGS -or -name core -or -name .depend -or -name .#*`
- rm -f submitd connect