diff options
author | Allen George <allen.george@gmail.com> | 2018-11-30 15:06:44 -0500 |
---|---|---|
committer | James E. King III <jking@apache.org> | 2018-12-05 16:09:10 -0500 |
commit | 54e9587117595d3ecbde1bf8065dc09197808bdb (patch) | |
tree | 08134965f6570bc79a3a5777ca88d5420084c0a8 /tutorial/cl | |
parent | 30d3125cc277b6e42034d5ac72fd3e5f248f353a (diff) | |
download | thrift-54e9587117595d3ecbde1bf8065dc09197808bdb.tar.gz |
THRIFT-4676: Fix intermittent CL build failures
Diffstat (limited to 'tutorial/cl')
-rwxr-xr-x | tutorial/cl/Makefile.am | 36 | ||||
l--------- | tutorial/cl/ensure-externals.sh | 1 | ||||
-rw-r--r-- | tutorial/cl/load-locally.lisp | 22 | ||||
-rw-r--r-- | tutorial/cl/make-tutorial-client.lisp | 2 | ||||
-rw-r--r-- | tutorial/cl/make-tutorial-server.lisp | 2 |
5 files changed, 52 insertions, 11 deletions
diff --git a/tutorial/cl/Makefile.am b/tutorial/cl/Makefile.am index fb6e83a42..2b2013a3c 100755 --- a/tutorial/cl/Makefile.am +++ b/tutorial/cl/Makefile.am @@ -15,19 +15,30 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -# + +setup-local-lisp-env: ensure-externals.sh + bash ensure-externals.sh gen-cl: $(top_srcdir)/tutorial/tutorial.thrift $(THRIFT) --gen cl -r $< -TutorialServer: make-tutorial-server.lisp - $(SBCL) --script make-tutorial-server.lisp +ALL_FILE_PREREQS = \ + load-locally.lisp \ + make-tutorial-server.lisp \ + make-tutorial-client.lisp \ + shared-implementation.lisp \ + thrift-tutorial.asd \ + tutorial-implementation.lisp -TutorialClient: make-tutorial-client.lisp +# NOTE: the server and client cannot be built in parallel +# because on loading the make-tutorial-* scripts SBCL will +# attempt to compile their dependencies. Unfortunately, +# because their dependencies are shared, parallel jobs can +# end up overwriting or corrupting the compiled files +all-local: gen-cl setup-local-lisp-env $(ALL_FILE_PREREQS) + $(SBCL) --script make-tutorial-server.lisp $(SBCL) --script make-tutorial-client.lisp -all-local: gen-cl TutorialClient TutorialServer - tutorialserver: all ./TutorialServer @@ -35,9 +46,16 @@ tutorialclient: all ./TutorialClient clean-local: - $(RM) -r gen-* - $(RM) TutorialServer - $(RM) TutorialClient + -$(RM) -r gen-* + -$(RM) -r externals + -$(RM) -r quicklisp + -$(RM) -r lib + -$(RM) quicklisp.lisp + -$(RM) backport-update.zip + -$(RM) shared-implementation.fasl + -$(RM) tutorial-implementation.fasl + -$(RM) TutorialServer + -$(RM) TutorialClient EXTRA_DIST = \ tutorial-implementation.lisp \ diff --git a/tutorial/cl/ensure-externals.sh b/tutorial/cl/ensure-externals.sh new file mode 120000 index 000000000..5ae8c5657 --- /dev/null +++ b/tutorial/cl/ensure-externals.sh @@ -0,0 +1 @@ +../../lib/cl/ensure-externals.sh
\ No newline at end of file diff --git a/tutorial/cl/load-locally.lisp b/tutorial/cl/load-locally.lisp new file mode 100644 index 000000000..b52a0a269 --- /dev/null +++ b/tutorial/cl/load-locally.lisp @@ -0,0 +1,22 @@ +(in-package #:cl-user) + +;;;; Licensed under the Apache License, Version 2.0 (the "License"); +;;;; you may not use this file except in compliance with the License. +;;;; You may obtain a copy of the License at +;;;; +;;;; http://www.apache.org/licenses/LICENSE-2.0 +;;;; +;;;; Unless required by applicable law or agreed to in writing, software +;;;; distributed under the License is distributed on an "AS IS" BASIS, +;;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +;;;; See the License for the specific language governing permissions and +;;;; limitations under the License. + +;;;; Just a script for loading the library itself, using bundled dependencies. +;;;; This is an identical copy of the file in lib/cl. + +(require "asdf") + +(load (merge-pathnames "externals/bundle.lisp" *load-truename*)) +(asdf:load-asd (merge-pathnames "lib/de.setf.thrift-backport-update/thrift.asd" *load-truename*)) +(asdf:load-system :thrift) diff --git a/tutorial/cl/make-tutorial-client.lisp b/tutorial/cl/make-tutorial-client.lisp index 59450a2ea..3a6d86134 100644 --- a/tutorial/cl/make-tutorial-client.lisp +++ b/tutorial/cl/make-tutorial-client.lisp @@ -13,7 +13,7 @@ ;;;; limitations under the License. (require "asdf") -(load (merge-pathnames "../../lib/cl/load-locally.lisp" *load-truename*)) +(load (merge-pathnames "load-locally.lisp" *load-truename*)) (asdf:load-system :net.didierverna.clon) (asdf:load-asd (merge-pathnames "gen-cl/shared/thrift-gen-shared.asd" *load-truename*)) (asdf:load-asd (merge-pathnames "gen-cl/tutorial/thrift-gen-tutorial.asd" *load-truename*)) diff --git a/tutorial/cl/make-tutorial-server.lisp b/tutorial/cl/make-tutorial-server.lisp index 5621ff366..4cf1a9026 100644 --- a/tutorial/cl/make-tutorial-server.lisp +++ b/tutorial/cl/make-tutorial-server.lisp @@ -13,7 +13,7 @@ ;;;; limitations under the License. (require "asdf") -(load (merge-pathnames "../../lib/cl/load-locally.lisp" *load-truename*)) +(load (merge-pathnames "load-locally.lisp" *load-truename*)) (asdf:load-system :net.didierverna.clon) (asdf:load-asd (merge-pathnames "gen-cl/shared/thrift-gen-shared.asd" *load-truename*)) (asdf:load-asd (merge-pathnames "gen-cl/tutorial/thrift-gen-tutorial.asd" *load-truename*)) |