~ chicken-core (chicken-5) 10e353b937555241914ad2a82f91c3cf8f5101ed


commit 10e353b937555241914ad2a82f91c3cf8f5101ed
Author:     Peter Bex <peter.bex@xs4all.nl>
AuthorDate: Sun May 18 18:39:00 2014 +0200
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Mon Jun 2 12:20:54 2014 +1200

    Shorten defaults.make by automating the replacement of slash->backslash in 'I'-prefixed variables under Windows.
    
    Some small reshufflings to group together more WINDOWS_SHELL things to
    make it a little easier to read.  Remove currently-unused "HEAD" variable.
    
    Signed-off-by: Evan Hanson <evhan@foldling.org>

diff --git a/defaults.make b/defaults.make
index 9c826357..6deb228e 100644
--- a/defaults.make
+++ b/defaults.make
@@ -49,31 +49,12 @@ VARDIR ?= $(LIBDIR)
 CHICKENLIBDIR = $(VARDIR)/$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
 EGGDIR ?= $(CHICKENLIBDIR)/$(BINARYVERSION)
 
-ifdef WINDOWS_SHELL
-SPREFIX = $(subst /,$(SEP),$(PREFIX))
-IBINDIR = $(SPREFIX)$(SEP)bin
-ILIBDIR = $(SPREFIX)$(SEP)lib
-ISHAREDIR = $(SPREFIX)$(SEP)share
-IDATADIR = $(ISHAREDIR)$(SEP)$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
-ITOPMANDIR = $(ISHAREDIR)$(SEP)man
-IMANDIR = $(ITOPMANDIR)$(SEP)man1
-IINCDIR = $(SPREFIX)$(SEP)include$(SEP)$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
-IDOCDIR = $(IDATADIR)$(SEP)doc
-ICHICKENLIBDIR = $(ILIBDIR)$(SEP)$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
-IEGGDIR = $(ICHICKENLIBDIR)$(SEP)$(BINARYVERSION)
-else
-SPREFIX = $(PREFIX)
-IBINDIR = $(BINDIR)
-ILIBDIR = $(LIBDIR)
-ISHAREDIR = $(SHAREDIR)
-IDATADIR = $(DATADIR)
-ITOPMANDIR = $(TOPMANDIR)
-IMANDIR = $(MANDIR)
-IINCDIR = $(INCDIR)
-IDOCDIR = $(DOCDIR)
-ICHICKENLIBDIR = $(CHICKENLIBDIR)
-IEGGDIR = $(EGGDIR)
-endif
+# For the windows shell, we must distinguish between paths built into
+# binaries (system calls may use slash as a separator) and paths
+# passed to shell commands when installing.  We prefix the latter with
+# an 'I':
+INST_DIRS=BINDIR LIBDIR SHAREDIR DATADIR MANDIR INCDIR DOCDIR EGGDIR
+$(foreach dir,$(INST_DIRS),$(eval I$(dir)=$(subst /,$(SEP),$($(dir)))))
 
 INSTALL_LIB_NAME = $(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)
 RUNTIME_LINKER_PATH ?= .
@@ -97,16 +78,13 @@ RC_COMPILER ?= windres
 endif
 endif
 LINKER ?= $(C_COMPILER)
-ifdef WINDOWS_SHELL
-REMOVE_COMMAND ?= del
-else
-REMOVE_COMMAND ?= rm
-endif
 ASSEMBLER ?= $(C_COMPILER)
 ifdef WINDOWS_SHELL
+REMOVE_COMMAND ?= del
 INSTALL_PROGRAM ?= xcopy
 MAKEDIR_COMMAND ?= -mkdir
 else
+REMOVE_COMMAND ?= rm
 INSTALL_PROGRAM ?= install
 MAKEDIR_COMMAND ?= install
 endif
@@ -182,17 +160,14 @@ ifdef WINDOWS_SHELL
 REMOVE_COMMAND_OPTIONS ?= /f /q
 REMOVE_COMMAND_RECURSIVE_OPTIONS ?= /f /s /q
 MAKE_WRITABLE_COMMAND ?= rem
-else
-REMOVE_COMMAND_OPTIONS ?= -f
-REMOVE_COMMAND_RECURSIVE_OPTIONS ?= -fr
-MAKE_WRITABLE_COMMAND ?= chmod 0755
-endif
-ifdef WINDOWS_SHELL
 INSTALL_PROGRAM_SHARED_LIBRARY_OPTIONS ?= /Y
 INSTALL_PROGRAM_STATIC_LIBRARY_OPTIONS ?= /Y
 INSTALL_PROGRAM_EXECUTABLE_OPTIONS ?= /Y
 INSTALL_PROGRAM_FILE_OPTIONS ?= /Y
 else
+REMOVE_COMMAND_OPTIONS ?= -f
+REMOVE_COMMAND_RECURSIVE_OPTIONS ?= -fr
+MAKE_WRITABLE_COMMAND ?= chmod 0755
 INSTALL_PROGRAM_SHARED_LIBRARY_OPTIONS ?= -m 755
 INSTALL_PROGRAM_STATIC_LIBRARY_OPTIONS ?= -m 644
 INSTALL_PROGRAM_EXECUTABLE_OPTIONS ?= -m 755
@@ -330,11 +305,6 @@ ifdef WINDOWS
 TARGETS += chicken.rc$(O)
 endif
 
-ifeq ($(HEAD),)
-HEAD = HEAD
-endif
-
-
 # main rule
 
 .PHONY: all
Trap