~ 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_SHELL
Trap