>From a36a11585684beb3471207158e7e10281c849a29 Mon Sep 17 00:00:00 2001 From: Peter Bex Date: Sun, 18 May 2014 18:39:00 +0200 Subject: [PATCH 2/2] 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. --- defaults.make | 52 +++++++++++----------------------------------------- 1 file changed, 11 insertions(+), 41 deletions(-) diff --git a/defaults.make b/defaults.make index 9c82635..6deb228 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 -- 1.7.10.4