Get plugins working using the top-level makefile.
authorChris Hanson <org/chris-hanson/cph>
Mon, 22 Oct 2018 07:04:11 +0000 (00:04 -0700)
committerChris Hanson <org/chris-hanson/cph>
Mon, 22 Oct 2018 07:04:11 +0000 (00:04 -0700)
Probably still some bugs; note workarounds for interaction between edwin and
blowfish/gdbm.  I'd like to fix those by making new plugins for the parts of
edwin that use those; that way they're installed only if both edwin and the
matching plugin is installed.

21 files changed:
src/Makefile.in
src/blowfish/blowfish.pkg
src/blowfish/compile.scm
src/configure.ac
src/edwin/edwin.pkg
src/edwin/edwin.sf
src/edwin/make.scm
src/gdbm/compile.scm
src/gdbm/gdbm.pkg
src/imail/compile.scm
src/imail/compile.sh
src/imail/imail.pkg
src/mcrypt/compile.scm
src/mcrypt/mcrypt.pkg
src/pgsql/compile.scm
src/pgsql/pgsql.pkg
src/x11-screen/compile.scm [new file with mode: 0644]
src/x11-screen/compile.sh
src/x11-screen/x11-screen.pkg
src/x11/compile.sh
src/x11/x11.pkg

index 9cf12bf3d8aa7a1f4888b866e57335e10b9a76a8..9285043cb7cec1a81fa5e1bfbae64630fc8bdb3a 100644 (file)
@@ -63,7 +63,7 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/microcode/mkinstalldirs
 LIARC_BOOT_BUNDLES = compiler cref sf star-parser
 LIARC_BUNDLES = $(LIARC_BOOT_BUNDLES) ffi sos ssp xml
 
-SUBDIRS = $(INSTALLED_SUBDIRS) 6001 win32 xdoc
+SUBDIRS = $(INSTALLED_SUBDIRS) win32 xdoc
 INSTALLED_SUBDIRS = microcode runtime $(LIARC_BUNDLES)
 OPTION_SUBDIRS = @OPTION_SUBDIRS@
 
@@ -110,9 +110,14 @@ all-native: all-ssp
 all-native: all-star-parser
 all-native: all-win32
 all-native: all-xml
-@IF_X11@all-native: all-x11
+@IF_BLOWFISH@all-native: all-blowfish
 @IF_EDWIN@all-native: all-edwin
+@IF_GDBM@all-native: all-gdbm
 @IF_IMAIL@all-native: all-imail
+@IF_MCRYPT@all-native: all-mcrypt
+@IF_PGSQL@all-native: all-pgsql
+@IF_X11@all-native: all-x11
+@IF_X11_SCREEN@all-native: all-x11-screen
 
 # XXX This should really depend on microcode/gen-nonce and
 # microcode/extract-liarc-decls instead of microcode/scheme, but
@@ -380,19 +385,43 @@ bundle-xml: xml/xml-unx.c
        (cd xml && $(MAKE) compile-liarc-bundle)
 
 ################
-# Edwin
+# blowfish
+################
+
+.PHONY: all-blowfish
+all-blowfish: compile-blowfish
+
+.PHONY: compile-blowfish
+compile-blowfish: compile-runtime
+       (cd blowfish && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
+
+################
+# edwin
 ################
 
 .PHONY: all-edwin
 all-edwin: compile-edwin
 
 .PHONY: compile-edwin
-compile-edwin: compile-runtime
+compile-edwin: compile-runtime compile-xml
+@IF_BLOWFISH@compile-edwin: compile-blowfish
+@IF_GDBM@compile-edwin: compile-gdbm
 @IF_X11@compile-edwin: compile-x11
-       (cd edwin && $(MAKE))
+       (cd edwin && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
 
 ################
-# Imail
+# gdbm
+################
+
+.PHONY: all-gdbm
+all-gdbm: compile-gdbm
+
+.PHONY: compile-gdbm
+compile-gdbm: compile-runtime
+       (cd gdbm && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
+
+################
+# imail
 ################
 
 .PHONY: all-imail
@@ -400,7 +429,29 @@ all-imail: compile-imail
 
 .PHONY: compile-imail
 compile-imail: compile-runtime compile-sos compile-edwin compile-star-parser
-       (cd imail && $(MAKE))
+       (cd imail && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
+
+################
+# mcrypt
+################
+
+.PHONY: all-mcrypt
+all-mcrypt: compile-mcrypt
+
+.PHONY: compile-mcrypt
+compile-mcrypt: compile-runtime
+       (cd mcrypt && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
+
+################
+# pgsql
+################
+
+.PHONY: all-pgsql
+all-pgsql: compile-pgsql
+
+.PHONY: compile-pgsql
+compile-pgsql: compile-runtime
+       (cd pgsql && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
 
 ################
 # X11
@@ -411,8 +462,18 @@ all-x11: compile-x11
 
 .PHONY: compile-x11
 compile-x11: compile-runtime
-       (cd x11 && $(MAKE))
-       (cd x11-screen && $(MAKE))
+       (cd x11 && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
+
+################
+# X11-screen
+################
+
+.PHONY: all-x11-screen
+all-x11-screen: compile-x11-screen
+
+.PHONY: compile-x11-screen
+compile-x11-screen: compile-runtime compile-x11 compile-edwin
+       (cd x11-screen && MIT_SCHEME_EXE=$(MIT_SCHEME_EXE) $(MAKE))
 
 #####################
 ### Cross compilation
index 23879068afcb4b0538bb9d468824599739c5614d..5ad69c1674ddb08cde97374fa07212ef9cfdb08d 100644 (file)
@@ -24,7 +24,7 @@ USA.
 
 |#
 
-(global-definitions runtime/)
+(global-definitions "../runtime/")
 
 (define-package (blowfish)
   (files "blowfish")
index c6cba0ee8289d20090d787660d9e76498cc2df8f..e3d666dcf4e4be423b66935fbdf76844f5c1ed5a 100644 (file)
@@ -2,7 +2,7 @@
 
 ;;;; Compile the BLOWFISH option.
 
-(load-option 'CREF)
-(load-option 'FFI)
-(compile-file "blowfish" '() (->environment '(RUNTIME)))
+(load-option 'cref)
+(load-option 'ffi)
+(compile-file "blowfish" '() (->environment '(runtime)))
 (cref/generate-constructors "blowfish")
\ No newline at end of file
index c5c2277fd89bac3552c67d26f50880ba28e34da6..34adfde50c78127a8e46f9ca67c6f61cb80fd1f6 100644 (file)
@@ -96,7 +96,7 @@ AC_ARG_ENABLE([x11],
 
 AC_ARG_ENABLE([edwin],
     AS_HELP_STRING([--enable-edwin],
-       [Add support for the Edwin edit [[yes]]]))
+       [Add support for the Edwin editor [[yes]]]))
 : ${enable_edwin=yes}
 
 AC_ARG_ENABLE([imail],
@@ -255,12 +255,18 @@ if test x"${mit_scheme_native_code}" = xsvm1 \
     HOST_COMPILER_HEAP="--heap 10000"
 fi
 
+if test x"${enable_x11}" = xyes && test x"${enable_edwin}" = xyes; then
+    enable_x11_screen=yes
+else
+    enable_x11_screen=no
+fi
+
 OPTION_SUBDIRS=
-if test x"${enable_x11}" = xyes; then
-    OPTION_SUBDIRS="${OPTION_SUBDIRS} x11 x11-screen"
-    IF_X11=
+if test x"${enable_blowfish}" = xyes; then
+    OPTION_SUBDIRS="${OPTION_SUBDIRS} blowfish"
+    IF_BLOWFISH=
 else
-    IF_X11="#!x11: "
+    IF_BLOWFISH="#!blowfish: "
 fi
 if test x"${enable_edwin}" = xyes; then
     OPTION_SUBDIRS="${OPTION_SUBDIRS} edwin"
@@ -268,24 +274,18 @@ if test x"${enable_edwin}" = xyes; then
 else
     IF_EDWIN="#!edwin: "
 fi
-if test x"${enable_imail}" = xyes; then
-    OPTION_SUBDIRS="${OPTION_SUBDIRS} imail"
-    IF_IMAIL=
-else
-    IF_IMAIL="#!imail: "
-fi
-if test x"${enable_blowfish}" = xyes; then
-    OPTION_SUBDIRS="${OPTION_SUBDIRS} blowfish"
-    IF_BLOWFISH=
-else
-    IF_BLOWFISH="#!blowfish: "
-fi
 if test x"${enable_gdbm}" = xyes; then
     OPTION_SUBDIRS="${OPTION_SUBDIRS} gdbm"
     IF_GDBM=
 else
     IF_GDBM="#!gdbm: "
 fi
+if test x"${enable_imail}" = xyes; then
+    OPTION_SUBDIRS="${OPTION_SUBDIRS} imail"
+    IF_IMAIL=
+else
+    IF_IMAIL="#!imail: "
+fi
 if test x"${enable_mcrypt}" = xyes; then
     OPTION_SUBDIRS="${OPTION_SUBDIRS} mcrypt"
     IF_MCRYPT=
@@ -298,6 +298,18 @@ if test x"${enable_pgsql}" = xyes; then
 else
     IF_PGSQL="#!pgsql: "
 fi
+if test x"${enable_x11}" = xyes; then
+    OPTION_SUBDIRS="${OPTION_SUBDIRS} x11"
+    IF_X11=
+else
+    IF_X11="#!x11: "
+fi
+if test x"${enable_x11_screen}" = xyes; then
+    OPTION_SUBDIRS="${OPTION_SUBDIRS} x11-screen"
+    IF_X11_SCREEN=
+else
+    IF_X11_SCREEN="#!x11-screen: "
+fi
 
 AC_SUBST([ALL_TARGET])
 AC_SUBST([AUXDIR])
@@ -315,6 +327,7 @@ AC_SUBST([IF_PGSQL])
 AC_SUBST([IF_SVM])
 AC_SUBST([IF_SVM_COMPILER])
 AC_SUBST([IF_X11])
+AC_SUBST([IF_X11_SCREEN])
 AC_SUBST([INSTALL_COM])
 AC_SUBST([INSTALL_LIARC_BUNDLES])
 AC_SUBST([MIT_SCHEME_EXE])
@@ -348,7 +361,10 @@ if test x"${enable_pgsql}" = xyes; then
     AC_CONFIG_SUBDIRS([pgsql])
 fi
 if test x"${enable_x11}" = xyes; then
-    AC_CONFIG_SUBDIRS([x11 x11-screen])
+    AC_CONFIG_SUBDIRS([x11])
+fi
+if test x"${enable_x11_screen}" = xyes; then
+    AC_CONFIG_SUBDIRS([x11-screen])
 fi
 
 AC_CONFIG_FILES([
index ac04bb3aa59be025a18dc2b7c5b824d7b8be72b6..a1a03839ecaaa920d7485d975580585d98f6076f 100644 (file)
@@ -26,10 +26,8 @@ USA.
 
 ;;;; Edwin Packaging
 \f
-(global-definitions runtime/)
-(global-definitions xml/)
-(global-definitions blowfish/)
-(global-definitions gdbm/)
+(global-definitions "../runtime/")
+(global-definitions "../xml/")
 
 (define-package (edwin)
   (files "utils"
@@ -122,6 +120,7 @@ USA.
          (port/output-channel output-port-channel)
          (port/state textual-port-state)
          generic-port-operation:write-substring)
+  #|
   (import (blowfish)
          blowfish-encrypt-port
          blowfish-file?
@@ -140,6 +139,7 @@ USA.
          gdbm_fast
          gdbm_replace
          gdbm_wrcreat)
+  |#
   (export ()
          create-editor
          create-editor-args
index 87522d79510f7fa9c366510d1e859ef677d4d514..f2aad22d7e66ae7935a91ba870eef59f44c26a47 100644 (file)
@@ -25,9 +25,6 @@ USA.
 |#
 
 (load-option 'cref)
-(load-option 'xml)
-(load-option 'blowfish)
-(load-option 'gdbm)
 
 (if (not (name->package '(edwin)))
     (let ((package-set (package-set-pathname "edwin")))
index d1cdee9ff19cb23b1edca3fddc0008bafb11cd3b..2a5c59ab8fa7d07a4f4127b81b5832951088b3a7 100644 (file)
@@ -29,8 +29,6 @@ USA.
 (declare (usual-integrations))
 
 (load-option 'xml)
-(load-option 'blowfish)
-(load-option 'gdbm)
 (with-loader-base-uri (system-library-uri "edwin/")
   (lambda ()
     (load-package-set "edwin"
index fe20d1d59c3d4f8ccbbbdac512fe13327193ba57..b4c7c9841f59cb714239b07be1b41723a496482a 100644 (file)
@@ -2,7 +2,7 @@
 
 ;;;; Compile the GDBM option.
 
-(load-option 'CREF)
-(load-option 'FFI)
-(compile-file "gdbm" '() (->environment '(RUNTIME)))
+(load-option 'cref)
+(load-option 'ffi)
+(compile-file "gdbm" '() (->environment '(runtime)))
 (cref/generate-constructors "gdbm")
\ No newline at end of file
index 2d29d9be9017771516141c420b78192e9cab5326..56fd964ef7bdd14c89e0ae074866cbdf87d02591 100644 (file)
@@ -24,7 +24,7 @@ USA.
 
 |#
 
-(global-definitions runtime/)
+(global-definitions "../runtime/")
 
 (define-package (gdbm)
   (files "gdbm")
index 3fb0d6146836eaa2f9d61b012e1bcdaf442e66ec..e12daa3231579ea8c18f1711b08fbf54e961970f 100644 (file)
@@ -31,6 +31,10 @@ USA.
 (load-option '*parser)
 (with-working-directory-pathname (directory-pathname (current-load-pathname))
   (lambda ()
+    (unless (load-option 'edwin #t)
+      (with-working-directory-pathname (merge-pathnames "../edwin")
+       (lambda ()
+         (load "make"))))
     (for-each (lambda (filename)
                (compile-file filename '() (->environment '(edwin))))
              '("imail-browser"
index c396df36b7f78adc4b3402b824b2e4bfe3ff59fc..83fc7cf7f83ecfbc42709c85566c59360b9a6c0c 100755 (executable)
@@ -3,8 +3,8 @@
 #
 # Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
 #     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-#     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016
-#     Massachusetts Institute of Technology
+#     2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
+#     2017, 2018 Massachusetts Institute of Technology
 #
 # This file is part of MIT/GNU Scheme.
 #
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or (at
 # your option) any later version.
-# 
+#
 # MIT/GNU Scheme is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 # General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with MIT/GNU Scheme; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
 set -e
 : ${MIT_SCHEME_EXE=mit-scheme}
 ${MIT_SCHEME_EXE} --batch-mode <<\EOF
-(begin
-
-  (parameterize ((param:suppress-loading-message? #t))
-    (load-option 'EDWIN))
-
-  (load "compile.scm")
-  )
+(load "compile.scm")
 EOF
 suffix=`echo "(display (microcode-id/operating-system-suffix))" \
        | ${MIT_SCHEME_EXE} --batch-mode`
index 4178e8383a20ee0414f139748cec0d05f54aafbc..e4d5792d7d5d913db8cd6d074f4118ec9a148046 100644 (file)
@@ -26,10 +26,10 @@ USA.
 
 ;;;; IMAIL mail reader: packaging
 
-(global-definitions runtime/)
-(global-definitions sos/)
-(global-definitions edwin/)
-(global-definitions star-parser/parser)
+(global-definitions "../runtime/")
+(global-definitions "../sos/")
+(global-definitions "../edwin/")
+(global-definitions "../star-parser/parser")
 
 (define-package (edwin imail)
   (files "imail-util"
index b1ade84a6d7fe75d4286e8c16cd1658c099580cd..f98c295d1361f069fd44247a7d6f52a935a07a41 100644 (file)
@@ -2,7 +2,7 @@
 
 ;;;; Compile the MCRYPT option.
 
-(load-option 'CREF)
-(load-option 'FFI)
-(compile-file "mcrypt" '() (->environment '(RUNTIME)))
+(load-option 'cref)
+(load-option 'ffi)
+(compile-file "mcrypt" '() (->environment '(runtime)))
 (cref/generate-constructors "mcrypt")
\ No newline at end of file
index 98e63b95e34e740403f31e61e5fd0300f451bb25..b023f1e853223361976edcbef39614029d8fac5c 100644 (file)
@@ -24,7 +24,7 @@ USA.
 
 |#
 
-(global-definitions runtime/)
+(global-definitions "../runtime/")
 
 (define-package (mcrypt)
   (files "mcrypt")
index f4be94acdaa435fe7e7e6793c2f66906768b91d8..f957028b24f1f8af48afc6ffff9d599e5c87537a 100644 (file)
@@ -2,7 +2,7 @@
 
 ;;;; Compile the PGSQL option.
 
-(load-option 'CREF)
-(load-option 'FFI)
+(load-option 'cref)
+(load-option 'ffi)
 (compile-file "pgsql" '() (->environment '()))
 (cref/generate-constructors "pgsql")
\ No newline at end of file
index fe9548a75781e9db8032b03eda439f453ebb8a64..e662721f98260ff1d7564f5041b40216950df987 100644 (file)
@@ -24,7 +24,7 @@ USA.
 
 |#
 
-(global-definitions runtime/)
+(global-definitions "../runtime/")
 
 (define-package (postgresql)
   (files "pgsql")
diff --git a/src/x11-screen/compile.scm b/src/x11-screen/compile.scm
new file mode 100644 (file)
index 0000000..9f1e180
--- /dev/null
@@ -0,0 +1,39 @@
+#| -*-Scheme-*-
+
+Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
+    1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+    2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
+    2017, 2018 Massachusetts Institute of Technology
+
+This file is part of MIT/GNU Scheme.
+
+MIT/GNU Scheme is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+MIT/GNU Scheme is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with MIT/GNU Scheme; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301,
+USA.
+
+|#
+
+(load-option 'cref)
+(with-working-directory-pathname (directory-pathname (current-load-pathname))
+  (lambda ()
+    (unless (load-option 'edwin #t)
+      (with-working-directory-pathname (merge-pathnames "../edwin")
+       (lambda ()
+         (load "make"))))
+    (for-each (lambda (filename)
+               (compile-file filename '() (->environment '(edwin))))
+             '("x11-screen"
+               "x11-key"
+               "x11-command"))
+    (cref/generate-constructors "x11-screen")))
\ No newline at end of file
index 88556b52c2a93adaac5464d9fd31cf07ff7d024a..781e5dc9145e4a1750f2bd58050256139324102a 100755 (executable)
 set -e
 : ${MIT_SCHEME_EXE=mit-scheme}
 ${MIT_SCHEME_EXE} --batch-mode <<\EOF
-(begin
-
-  (parameterize ((param:suppress-loading-message? #t))
-    (load-option 'CREF)
-    (load-option 'X11)
-    (load-option 'EDWIN))
-
-  (if (name->package '(EDWIN SCREEN X11-SCREEN))
-      (error "The (EDWIN SCREEN X11-SCREEN) package already exists."))
-  (let ((package-set (package-set-pathname "x11-screen")))
-    (if (not (file-modification-time<? "x11-screen.pkg" package-set))
-       (cref/generate-trivial-constructor "x11-screen" #f))
-    (construct-packages-from-file (fasload package-set)))
-
-  (compile-file "x11-screen" '() (->environment '(edwin screen x11-screen)))
-  (compile-file "x11-key" '() (->environment '(edwin x11-keys)))
-  (compile-file "x11-command" '() (->environment '(edwin x11-commands)))
-
-  (cref/generate-constructors "x11-screen")
-  )
+(load "compile.scm")
 EOF
 suffix=`echo "(display (microcode-id/operating-system-suffix))" \
        | ${MIT_SCHEME_EXE} --batch-mode`
index b25d6dfb2ed5cd990d89e59f8b29f1ac3c70c71f..96faaa7373e09060661eb27b83340a21decc0d98 100644 (file)
@@ -25,9 +25,9 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ;;;; Edwin Packaging
 \f
-(global-definitions runtime/)
-(global-definitions edwin/)
-(global-definitions x11/)
+(global-definitions "../runtime/")
+(global-definitions "../edwin/")
+(global-definitions "../x11/")
 
 (define-package (edwin screen x11-screen)
   (files "x11-screen")
index b1b88e76d6a30f7dfbf25a950c195d51078c2e43..17324858d85e551a27925ffe429a2cd067ed8400 100755 (executable)
@@ -30,8 +30,8 @@ set -e
 ${MIT_SCHEME_EXE} --prepend-library . --batch-mode <<\EOF
 
 (begin
-  (load-option 'CREF)
-  (load-option 'FFI)
+  (load-option 'cref)
+  (load-option 'ffi)
 
   (let ((runtime (->environment '(runtime))))
     (compile-file "x11" '() runtime)
index 1c60559513ec34b069878f67d0a5d54bc1322e4a..c82998671f4e7d653a1eeb160dfa4f68b8c87a80 100644 (file)
@@ -25,7 +25,7 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
 ;;;; X11 Graphics Packaging
 \f
-(global-definitions runtime/)
+(global-definitions "../runtime/")
 
 (define-package (x11)
   (files "x11")