1#
2# Licensed to the Apache Software Foundation (ASF) under one
3# or more contributor license agreements. See the NOTICE file
4# distributed with this work for additional information
5# regarding copyright ownership. The ASF licenses this file
6# to you under the Apache License, Version 2.0 (the
7# "License"); you may not use this file except in compliance
8# with the License. You may obtain a copy of the License at
9#
10#   http://www.apache.org/licenses/LICENSE-2.0
11#
12# Unless required by applicable law or agreed to in writing,
13# software distributed under the License is distributed on an
14# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15# KIND, either express or implied. See the License for the
16# specific language governing permissions and limitations
17# under the License.
18
19setup-local-lisp-env: ../../lib/cl/ensure-externals.sh
20	bash ../../lib/cl/ensure-externals.sh
21
22gen-cl: $(top_srcdir)/tutorial/tutorial.thrift
23	$(THRIFT) --gen cl -r $<
24
25ALL_FILE_PREREQS = \
26		   load-locally.lisp \
27		   make-tutorial-server.lisp \
28		   make-tutorial-client.lisp \
29		   shared-implementation.lisp \
30		   thrift-tutorial.asd \
31		   tutorial-implementation.lisp
32
33# NOTE: the server and client cannot be built in parallel
34# because on loading the make-tutorial-* scripts SBCL will
35# attempt to compile their dependencies. Unfortunately,
36# because their dependencies are shared, parallel jobs can
37# end up overwriting or corrupting the compiled files
38all-local: gen-cl setup-local-lisp-env $(ALL_FILE_PREREQS)
39	$(SBCL) --script make-tutorial-server.lisp
40	$(SBCL) --script make-tutorial-client.lisp
41
42tutorialserver: all
43	./TutorialServer
44
45tutorialclient: all
46	./TutorialClient
47
48clean-local:
49	-$(RM) -r gen-*
50	-$(RM) -r externals
51	-$(RM) -r quicklisp
52	-$(RM) -r lib
53	-$(RM) quicklisp.lisp
54	-$(RM) backport-update.zip
55	-$(RM) shared-implementation.fasl
56	-$(RM) tutorial-implementation.fasl
57	-$(RM) TutorialServer
58	-$(RM) TutorialClient
59
60EXTRA_DIST = \
61	tutorial-implementation.lisp \
62	shared-implementation.lisp \
63	thrift-tutorial.asd \
64	make-tutorial-server.lisp \
65	make-tutorial-client.lisp \
66	load-locally.lisp
67