]> mj.ucw.cz Git - moe.git/blobdiff - Makefile
Doc: Copies of the old LibUCW documentation are gone
[moe.git] / Makefile
index 8598a419f807bd162b0ec7c2156bf44cd41e8e48..86f91d8638841bc6541e6f50df461c8a21932ece 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,45 +1,48 @@
-# Makefile for mo-eval and related utilities
-# (c) 2007 Martin Mares <mj@ucw.cz>
+# Makefile for Moe
+# (c) 2008--2012 Martin Mares <mj@ucw.cz>
 
-VERSION=1.0.1
-#DEBUG=-ggdb
-CFLAGS=-O2 -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -Wundef -Wredundant-decls -Winline $(DEBUG) -std=gnu99
+VERSION=2.0
 
-# Comment out if you are using a recent gcc
-CFLAGS+=-Wno-pointer-sign -Wdisabled-optimization -Wno-missing-field-initializers
+# The default target
+all:: runtree programs datafiles configs
 
-# Comment out if you do not wish to build remote submit utilities
-SUBMIT=submit
-LIBUCW:=$(shell cd ../holmes-libs-3.12/run && pwd)
+# Include configuration
+s=.
+-include obj/config.mk
+obj/config.mk:
+       @echo "You need to run configure first." && false
 
-export LIBUCW CFLAGS LDFLAGS DEBUG
-
-all: bin/box bin/iwrapper bin/md5crypt bin/pedant $(SUBMIT)
-
-bin/%: src/%.o
-       $(CC) $(LDFLAGS) -o $@ $^
-
-bin/box: src/box.o
-bin/iwrapper: src/iwrapper.o
-bin/md5crypt: src/md5crypt.o src/md5.o
-bin/pedant: src/pedant.o
-
-submit:
-
-clean::
-       rm -f `find . -name "*~" -or -name "*.[oa]" -or -name "\#*\#" -or -name TAGS -or -name core`
-       rm -f bin/box bin/iwrapper bin/md5crypt bin/pedant
-
-distclean: clean
+ifdef CONFIG_DOC
+all:: docs
+endif
 
-ifdef SUBMIT
+# We will use the libucw build system
+BUILDSYS=$(s)/build
+include $(BUILDSYS)/Maketop
+
+# Include makefiles of libraries we wish to use
+ifdef CONFIG_UCW_LIBS
+include $(s)/ucw/Makefile
+include $(s)/sherlock/Makefile
+# Disable built-in tests and documentation of these libraries
+TESTS=
+DOCS=
+DOC_INDICES=
+endif
 
-submit:
-       $(MAKE) -C submit
+include $(s)/box/Makefile
+include $(s)/isolate/Makefile
+include $(s)/utils/Makefile
+include $(s)/eval/Makefile
+include $(s)/judge/Makefile
 
-clean::
-       $(MAKE) -C submit clean
+ifdef CONFIG_SUBMIT
+include $(s)/submit/Makefile
+endif
 
+ifdef CONFIG_MOP
+include $(s)/mop/Makefile
 endif
 
-.PHONY: all clean distclean submit
+# And finally the default rules of the build system
+include $(BUILDSYS)/Makebottom