# arch-tag: Tom Lord Tue Dec 4 14:47:16 2001 (install-scm-subdirs.mk) # # install-scm-subdirs.mk - # ################################################################ # Copyright (C) 2001 Tom Lord # # See the file "COPYING" for further information about # the copyright and warranty status of this work. # ifndef install-scm-mk install-scm-subdirs-mk := 1 # Set on entry: (see also "rules.mk") # # Optionally set on entry: # # $(scm-files) the relative path names of Scheme files to install. # # This file installs a library of Scheme programs organized as # subdirectories of a source tree, e.g.: # # $(srcdir)/scheme/data-structures # /runq.scm # /ratlist.scm # ... # /ice-9 # ... # /unix # ... # ... # # They are installed as corresponding subdirectories of # # $(scm-install-dir) # # and links to the subdirectories are installed in # # $(scm-linkdir) # # No other directory should install in these same subdirectories of # $(scm-install-dir) and $(scm-linkdir). # # After installation, the build directory will contain "Installed-scm-files" # which is a list of the Scheme files that were installed. The list # includes relative path names, e.g.: # # data-structures/runq.scm # data-structures/ratlist.scm # ... # include $(makefiles)/rules.mk ifndef scm-files scm-files := $(sort $(shell cd $(srcdir) ;\ find [a-zA-Z]* -type f -name "*.scm" )) endif scm-dirs := $(shell echo $(dir $(scm-files)) | sed -f $(makefiles)/column.sed | sed -e "s,/$$,," | sort -u) install: install-scm-files install-scm-files: $(scm-files) echo $(scm-files) | sed -f $(makefiles)/column.sed > Installed-scm-files for f in $(addprefix $(scm-install-dir)/,$(scm-dirs)) ; do \ test ! -e $$f || rm -r $$f ; \ done mkdir -p $(addprefix $(scm-install-dir)/,$(scm-dirs)) cd $(srcdir) ; \ for f in $(scm-files) ; do \ cp $$f $(scm-install-dir)/`dirname $$f` ; \ done clean: clean-install-scm-files clean-install-scm-files: test ! -e Installed-scm-files || rm Installed-scm-files endif