~ chicken-core (chicken-5) aceef6749cae748610232a50dea339cc0e096903
commit aceef6749cae748610232a50dea339cc0e096903 Author: Peter Bex <Peter.Bex@xs4all.nl> AuthorDate: Sun Sep 5 20:45:49 2010 +0200 Commit: Peter Bex <Peter.Bex@xs4all.nl> CommitDate: Sun Sep 5 20:45:49 2010 +0200 Refactor installation to loop over libs and programs diff --git a/rules.make b/rules.make index 69592703..fdd9081b 100644 --- a/rules.make +++ b/rules.make @@ -33,7 +33,7 @@ VPATH=$(SRCDIR) # object files IMPORT_LIB_OBJECTS_1 = \ - chicken lolevel srfi-1 srfi-4 data-structures \ + chicken lolevel srfi-1 srfi-4 data-structures \ ports files posix srfi-13 srfi-69 extras \ regex irregex srfi-14 tcp foreign scheme \ csi srfi-18 utils @@ -64,9 +64,17 @@ ALWAYS_STATIC_UTILITY_PROGRAM_OBJECTS_1 = \ chicken-bug csi-static ## TODO: Shouldn't these manpages match their program names (ie CSI_PROGRAM etc)? -MANPAGES = chicken.1 csc.1 csi.1 chicken-install.1 chicken-uninstall.1 \ +MANPAGES = \ + chicken.1 csc.1 csi.1 chicken-install.1 chicken-uninstall.1 \ chicken-status.1 chicken-profile.1 chicken-bug.1 +# Not all programs built are installed(?) This is the master list that takes +# care of which programs should actually be installed/uninstalled +INSTALLED_PROGRAMS = \ + $(CHICKEN_PROGRAM) $(CSI_PROGRAM) $(CHICKEN_PROFILE_PROGRAM) \ + $(CSC_PROGRAM) $(CHICKEN_BUG_PROGRAM) $(CHICKEN_STATUS_PROGRAM)\ + $(CHICKEN_INSTALL_PROGRAM) $(CHICKEN_UNINSTALL_PROGRAM) + DISTFILES = library.c eval.c expand.c chicken-syntax.c chicken-ffi-syntax.c \ data-structures.c ports.c files.c extras.c lolevel.c utils.c \ tcp.c srfi-1.c srfi-4.c srfi-13.c srfi-14.c srfi-18.c srfi-69.c \ @@ -321,13 +329,9 @@ endif ifeq ($(NEEDS_RELINKING),yes) install-bin: - $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) $(CHICKEN_PROGRAM)$(EXE) - $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) $(CSI_PROGRAM)$(EXE) - $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) $(CSC_PROGRAM)$(EXE) - $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) $(CHICKEN_PROFILE_PROGRAM)$(EXE) - $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) $(CHICKEN_INSTALL_PROGRAM)$(EXE) - $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) $(CHICKEN_UNINSTALL_PROGRAM)$(EXE) - $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) $(CHICKEN_STATUS_PROGRAM)$(EXE) + $(foreach prog,$(INSTALLED_PROGRAMS),\ + $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) $(prog)$(EXE) $(NL)) + $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) $(IMPORT_LIBRARIES:%=%.so) $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) $(IMPORT_LIBRARIES:%=%.import.so) $(MAKE) -f $(SRCDIR)Makefile.$(PLATFORM) CONFIG=$(CONFIG) NEEDS_RELINKING=no RUNTIME_LINKER_PATH="$(LIBDIR)" SONAME_VERSION=.$(BINARYVERSION) install-bin @@ -354,15 +358,17 @@ else install-bin: $(TARGETS) install-libs install-dev $(MAKEDIR_COMMAND) $(MAKEDIR_COMMAND_OPTIONS) "$(DESTDIR)$(IBINDIR)" - $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) $(CHICKEN_PROGRAM)$(EXE) "$(DESTDIR)$(IBINDIR)" - $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) $(CSI_PROGRAM)$(EXE) "$(DESTDIR)$(IBINDIR)" - $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) $(CHICKEN_PROFILE_PROGRAM)$(EXE) "$(DESTDIR)$(IBINDIR)" - $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) $(CSC_PROGRAM)$(EXE) "$(DESTDIR)$(IBINDIR)" - $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) $(CHICKEN_BUG_PROGRAM)$(EXE) "$(DESTDIR)$(IBINDIR)" + + $(foreach prog,$(INSTALLED_PROGRAMS),\ + $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) \ + $(prog)$(EXE) "$(DESTDIR)$(IBINDIR)" $(NL)) + $(foreach obj,$(IMPORT_LIB_OBJECTS_1),\ $(call install-import-lib,$(obj))) + $(call install-import-lib, setup-api) $(call install-import-lib, setup-download) + $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) setup-api.so "$(DESTDIR)$(IEGGDIR)" $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) setup-download.so "$(DESTDIR)$(IEGGDIR)" ifndef STATICBUILD @@ -370,38 +376,21 @@ ifndef STATICBUILD $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) $(CHICKEN_UNINSTALL_PROGRAM)$(EXE) "$(DESTDIR)$(IBINDIR)" $(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_PROGRAM)" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IBINDIR)$(SEP)$(CSI_PROGRAM)" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_PROFILE_PROGRAM)" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IBINDIR)$(SEP)$(CSC_PROGRAM)" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_BUG_PROGRAM)" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)setup-api.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)setup-download.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)setup-api.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)setup-download.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)chicken.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)lolevel.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)srfi-1.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)srfi-4.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)data-structures.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)ports.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)files.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)posix.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)srfi-13.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)srfi-69.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)extras.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)regex.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)irregex.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)srfi-14.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)tcp.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)foreign.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)scheme.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)csi.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)srfi-18.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IEGGDIR)$(SEP)utils.import.so" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_INSTALL_PROGRAM)" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_UNINSTALL_PROGRAM)" - $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_STATUS_PROGRAM)" + $(foreach prog,$(INSTALLED_PROGRAMS),\ + $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) \ + "$(DESTDIR)$(IBINDIR)$(SEP)$(prog)" $(NL)) + + $(foreach apilib,$(SETUP_API_OBJECTS),\ + $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) + "$(DESTDIR)$(IEGGDIR)$(SEP)$(apilib).so" $(NL)) + + $(foreach api-importlib,$(SETUP_API_IMPORT_LIB_OBJECTS),\ + $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) + "$(DESTDIR)$(IEGGDIR)$(SEP)$(api-importlib).import.so" $(NL)) + + $(foreach import-lib,$(IMPORT_LIB_OBJECTS_1),\ + $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) \ + "$(DESTDIR)$(IEGGDIR)$(SEP)$(import-lib).import.so" $(NL)) endif ifeq ($(CROSS_CHICKEN)$(DESTDIR),0) -$(IBINDIR)$(SEP)$(CHICKEN_INSTALL_PROGRAM) -update-db @@ -420,9 +409,11 @@ install-other-files: $(MAKEDIR_COMMAND) $(MAKEDIR_COMMAND_OPTIONS) "$(DESTDIR)$(IMANDIR)" $(MAKEDIR_COMMAND) $(MAKEDIR_COMMAND_OPTIONS) "$(DESTDIR)$(IDOCDIR)" $(MAKEDIR_COMMAND) $(MAKEDIR_COMMAND_OPTIONS) "$(DESTDIR)$(IDATADIR)" + $(foreach obj, $(MANPAGES), \ $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) \ $(SRCDIR)$(obj) "$(DESTDIR)$(IMANDIR)" $(NL)) + $(MAKEDIR_COMMAND) $(MAKEDIR_COMMAND_OPTIONS) "$(DESTDIR)$(IDOCDIR)$(SEP)manual" $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)manual$(SEP)* "$(DESTDIR)$(IDOCDIR)$(SEP)manual" $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)README "$(DESTDIR)$(IDOCDIR)" @@ -431,14 +422,10 @@ install-other-files: $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)chicken.png "$(DESTDIR)$(IDATADIR)" uninstall: - $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_PROGRAM)$(EXE)" \ - "$(DESTDIR)$(IBINDIR)$(SEP)$(CSI_PROGRAM)$(EXE)" \ - "$(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_STATUS_PROGRAM)$(EXE)" \ - "$(DESTDIR)$(IBINDIR)$(SEP)$(CSC_PROGRAM)$(EXE)" \ - "$(DESTDIR)$(IBINDIR)$(SEP)$(CHICKEN_BUG_PROGRAM)$(EXE)" + $(foreach prog,$(INSTALLED_PROGRAMS),\ + $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS)\ + "$(DESTDIR)$(IBINDIR)$(SEP)$(prog)$(EXE)" $(NL)) + $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(ILIBDIR)$(SEP)libchicken$(A) " $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(ILIBDIR)$(SEP)libchicken$(SO)" ifdef USES_SONAME @@ -451,9 +438,11 @@ endif ifeq ($(PLATFORM),cygwin) $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(IBINDIR)$(SEP)cygchicken*" endif + $(foreach obj,$(MANPAGES),\ $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) \ "$(DESTDIR)$(IMANDIR)$(SEP)$(obj)" $(NL)) + $(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) "$(DESTDIR)$(IINCDIR)$(SEP)chicken.h $(DESTDIR)$(IINCDIR)$(SEP)$(CHICKEN_CONFIG_H)" $(REMOVE_COMMAND) $(REMOVE_COMMAND_RECURSIVE_OPTIONS) "$(DESTDIR)$(IDATADIR)" ifdef WINDOWS_SHELLTrap