~ chicken-core (chicken-5) 1bc6f5196a7246e48edc3ca6790652d7195674d4
commit 1bc6f5196a7246e48edc3ca6790652d7195674d4 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Tue Mar 9 13:01:13 2010 +0100 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Tue Mar 9 13:01:13 2010 +0100 provide chicken-fetch and chicken-install on windows diff --git a/Makefile.cygwin b/Makefile.cygwin index 0fc58e1e..4f0edf8a 100644 --- a/Makefile.cygwin +++ b/Makefile.cygwin @@ -36,6 +36,7 @@ SRCDIR = ./ ARCH ?= x86 HACKED_APPLY ?= 1 DLLSINPATH = 1 +INSTALL_FETCH_AND_REMOVE ?= 1 # options @@ -85,6 +86,14 @@ LIBUCHICKEN_IMPORT_LIBRARY = libuchicken.dll.a CHICKEN_CONFIG_H = chicken-config.h APPLY_HACK_OBJECT = apply-hack.$(ARCH)$(O) +# Vista doesn't like programs named "install" + +INSTALL_PROGRAM = cp +INSTALL_PROGRAM_SHARED_LIBRARY_OPTIONS = -r +INSTALL_PROGRAM_STATIC_LIBRARY_OPTIONS = -r +INSTALL_PROGRAM_EXECUTABLE_OPTIONS = -r +INSTALL_PROGRAM_FILE_OPTIONS = -r + # select default and internal settings CUSTOM_CHICKEN_DEFAULTS=1 diff --git a/Makefile.mingw b/Makefile.mingw index 52ecb90f..547d75d0 100644 --- a/Makefile.mingw +++ b/Makefile.mingw @@ -40,6 +40,7 @@ ARCH ?= x86 WINDOWS = 1 WINDOWS_SHELL = 1 UNAME_SYS = MinGW +INSTALL_FETCH_AND_REMOVE ?= 1 ifeq ($(ARCH),x86) HACKED_APPLY ?= 1 diff --git a/Makefile.mingw-msys b/Makefile.mingw-msys index b78b327e..5e1e957b 100644 --- a/Makefile.mingw-msys +++ b/Makefile.mingw-msys @@ -41,6 +41,7 @@ else HACKED_APPLY = endif WINDOWS = 1 +INSTALL_FETCH_AND_REMOVE ?= 1 # file extensions @@ -70,6 +71,15 @@ LIBUCHICKEN_SO_LIBRARIES = -lm -lws2_32 LIBCHICKEN_IMPORT_LIBRARY = libchicken.dll.a LIBUCHICKEN_IMPORT_LIBRARY = libuchicken.dll.a +# Don't use "install" program as it is broken in some Mingw versions and +# Vista doesn't like it, anyway. + +INSTALL_PROGRAM = cp +INSTALL_PROGRAM_SHARED_LIBRARY_OPTIONS = -r +INSTALL_PROGRAM_STATIC_LIBRARY_OPTIONS = -r +INSTALL_PROGRAM_EXECUTABLE_OPTIONS = -r +INSTALL_PROGRAM_FILE_OPTIONS = -r + # special files CHICKEN_CONFIG_H = chicken-config.h diff --git a/README b/README index 90c448a4..8039ad19 100644 --- a/README +++ b/README @@ -304,6 +304,13 @@ provided (`Makefile.mingw-msys' and `Makefile.mingw'). Please also read the notes below. + - On Windows Vista and later versions, programs that have + names including the words `setup' or `install' will + require administrator rights to execute correctly. For this + reason the `chicken-install.exe' and `chicken-uninstall.exe' + programs are also available under the names `chicken-fetch.exe' + and `chicken-remove.exe', respectively + - When installing under the mingw-msys platform, PREFIX must be an absolute path name (i.e. it must include the drive letter) and must use forward slashes (no backward slashes). diff --git a/defaults.make b/defaults.make index d6d0585d..076a117c 100644 --- a/defaults.make +++ b/defaults.make @@ -311,7 +311,9 @@ CSC_PROGRAM = $(PROGRAM_PREFIX)csc$(PROGRAM_SUFFIX) CSI_PROGRAM = $(PROGRAM_PREFIX)csi$(PROGRAM_SUFFIX) CHICKEN_PROFILE_PROGRAM = $(PROGRAM_PREFIX)chicken-profile$(PROGRAM_SUFFIX) CHICKEN_INSTALL_PROGRAM = $(PROGRAM_PREFIX)chicken-install$(PROGRAM_SUFFIX) +CHICKEN_FETCH_PROGRAM = $(PROGRAM_PREFIX)chicken-fetch$(PROGRAM_SUFFIX) CHICKEN_UNINSTALL_PROGRAM = $(PROGRAM_PREFIX)chicken-uninstall$(PROGRAM_SUFFIX) +CHICKEN_REMOVE_PROGRAM = $(PROGRAM_PREFIX)chicken-remove$(PROGRAM_SUFFIX) CHICKEN_STATUS_PROGRAM = $(PROGRAM_PREFIX)chicken-status$(PROGRAM_SUFFIX) CHICKEN_BUG_PROGRAM = $(PROGRAM_PREFIX)chicken-bug$(PROGRAM_SUFFIX) IMPORT_LIBRARIES = chicken lolevel srfi-1 srfi-4 data-structures ports files posix srfi-13 srfi-69 extras \ diff --git a/rules.make b/rules.make index 0faceadc..cc69a16a 100644 --- a/rules.make +++ b/rules.make @@ -872,6 +872,10 @@ endif ifndef STATICBUILD $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) $(CHICKEN_INSTALL_PROGRAM)$(EXE) "$(DESTDIR)$(IBINDIR)" $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) $(CHICKEN_UNINSTALL_PROGRAM)$(EXE) "$(DESTDIR)$(IBINDIR)" +ifneq ($(INSTALL_FETCH_AND_REMOVE),) + $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) $(CHICKEN_INSTALL_PROGRAM)$(EXE) "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_FETCH_PROGRAM)" + $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) $(CHICKEN_UNINSTALL_PROGRAM)$(EXE) "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_REMOVE_PROGRAM)" +endif $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) $(CHICKEN_STATUS_PROGRAM)$(EXE) "$(DESTDIR)$(IBINDIR)" ifneq ($(POSTINSTALL_PROGRAM),true) $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_INSTALL_PROGRAM)" @@ -880,7 +884,11 @@ ifneq ($(POSTINSTALL_PROGRAM),true) endif ifneq ($(CROSS_CHICKEN),1) ifeq ($(DESTDIR),) +ifneq ($(INSTALL_FETCH_AND_REMOVE),) + -$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_FETCH_PROGRAM) -update-db +else -$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_INSTALL_PROGRAM) -update-db +endif else @echo @echo "Warning: cannot run chicken-install -update-db when DESTDIR is set" @@ -974,6 +982,8 @@ uninstall: "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_PROFILE_PROGRAM)$(EXE)" \ "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_INSTALL_PROGRAM)$(EXE)" \ "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_UNINSTALL_PROGRAM)$(EXE)" \ + "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_FETCH_PROGRAM)$(EXE)" \ + "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_REMOVE_PROGRAM)$(EXE)" \ "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_STATUS_PROGRAM)$(EXE)" \ "$(DESTDIR)$(IBINDIR)$(SEP)$(CSC_PROGRAM)$(EXE)" \ "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_BUG_PROGRAM)$(EXE)"Trap