| Enable a statically-linked version of slsh to be built and installed |
| |
| Adapt an upstream patch to make it apply on 2.3.0. Unnecessary changes |
| have been ignored. |
| |
| Repository: git://git.jedsoft.org/git/slang.git |
| Commit ID: 3796db6fb94a2fc7fe2fb0b6918501b69a4d3a02 |
| Author: John E. Davis <jed@jedsoft.org> |
| |
| Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> |
| --- |
| diff -rup a/autoconf/Makefile.in b/autoconf/Makefile.in |
| --- a/autoconf/Makefile.in 2014-09-18 04:02:24.000000000 +0100 |
| +++ b/autoconf/Makefile.in 2014-12-08 11:59:30.879313080 +0000 |
| @@ -41,16 +41,19 @@ src/Makefile: configure src/Makefile.in |
| # |
| makefiles: Makefile slsh/Makefile modules/Makefile src/Makefile |
| help: |
| - @echo "make install : install a shared version of the library" |
| - @echo "make install-static : install a static version" |
| - @echo "make install-all : install both shared and static versions" |
| - @echo "make check : Build the library and run the regression tests" |
| + @echo "make install ==> shared version of the library, slsh and modules" |
| + @echo "make install-static ==> static version of the library and slsh; no modules" |
| + @echo "make install-all ==> shared/static versions of the library/modules + shared slsh." |
| + @echo "make install-modules ==> install the modules" |
| + @echo "make check ==> Build the library and run the regression tests" |
| slang.pc: configure autoconf/slangpc.in |
| @echo "slang.pc needs to be updated -- rerun configure" |
| @exit 1 |
| static: makefiles slang.pc |
| cd src; $(MAKE) static |
| - cd slsh; $(MAKE) all |
| + cd slsh; $(MAKE) static |
| +modules: |
| + cd modules; $(MAKE) all |
| elf: makefiles slang.pc |
| cd src; $(MAKE) elf |
| cd slsh; $(MAKE) all |
| @@ -73,10 +76,11 @@ clean: |
| cd demo; $(MAKE) clean |
| install-static: |
| cd src; $(MAKE) install-static |
| + cd slsh; $(MAKE) install-static |
| install-pkgconfig: slang.pc |
| $(MKINSDIR) $(DEST_PKGCONFIGDIR) |
| $(INSTALL_DATA) slang.pc $(DEST_PKGCONFIGDIR)/ |
| -install-elf: |
| +install-elf: install-pkgconfig |
| cd src; $(MAKE) install-elf |
| @echo Now installing slsh |
| cd slsh; $(MAKE) install |
| @@ -86,7 +90,10 @@ install-elf: |
| @echo "On some systems, e.g., linux, you may also have to run ldconfig." |
| @echo "" |
| install: install-elf install-pkgconfig |
| -install-all: install-elf install-static install-pkgconfig |
| +install-all: install-elf |
| + cd src; $(MAKE) install-static |
| +install-modules: |
| + cd modules; $(MAKE) install |
| install-links: |
| cd src; $(MAKE) install-links |
| # |
| diff -rup a/slsh/Makefile.in b/slsh/Makefile.in |
| --- a/slsh/Makefile.in 2014-12-08 11:52:51.303284637 +0000 |
| +++ b/slsh/Makefile.in 2014-12-08 12:06:44.811939732 +0000 |
| @@ -16,7 +16,8 @@ SLANG_INST_INC = -I@includedir@ |
| SLANG_INST_LIB = -L$(INST_LIB_DIR) |
| #--------------------------------------------------------------------------- |
| SLANG_SRCINC = -I@SRCDIR@ |
| -SLANG_SRCLIB = -L@ELFDIR@ |
| +SLANG_ELFLIB = -L@ELFDIR@# for dynamically linked |
| +SLANG_OBJLIB = -L@OBJDIR@# for statically linked |
| #--------------------------------------------------------------------------- |
| OTHER_LIBS = @TERMCAP@ @DYNAMIC_LINK_LIB@ @LIBS@ @M_LIB@ |
| RPATH = @RPATH@ |
| @@ -73,10 +74,12 @@ INST_LIBS = $(DEST_LIB_DIR) $(RPATH) $(S |
| DEFS = -DSLSH_CONF_DIR='"$(SLSH_CONF_DIR)"' -DSLSH_PATH='"$(SLSH_LIB_DIR)"' \ |
| -DSLSH_CONF_DIR_ENV='$(SLSH_CONF_DIR_ENV)' -DSLSH_LIB_DIR_ENV='$(SLSH_LIB_DIR_ENV)' \ |
| -DSLSH_PATH_ENV='$(SLSH_PATH_ENV)' |
| -SRC_LIBS = $(SLANG_SRCLIB) -lslang $(READLINE_LIB) $(OTHER_LIBS) |
| +SRC_LIBS = $(SLANG_ELFLIB) -lslang $(READLINE_LIB) $(OTHER_LIBS) |
| +STATIC_SRC_LIBS = $(SLANG_OBJLIB) -lslang $(READLINE_LIB) $(OTHER_LIBS) |
| # |
| all: $(OBJDIR)/slsh_exe |
| slsh: $(OBJDIR)/slsh |
| +static: $(OBJDIR)/slsh_static |
| $(OBJDIR)/slsh_exe: $(OBJDIR)/slsh.o $(OBJDIR)/readline.o |
| $(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh_exe $(LDFLAGS) $(SRC_LIBS) |
| $(OBJDIR)/slsh: $(OBJDIR)/slsh.o $(OBJDIR)/readline.o |
| @@ -85,6 +88,8 @@ $(OBJDIR)/slsh.o: $(OBJDIR) slsh.c slsh. |
| cd $(OBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(DEFS) $(SRCDIR)/slsh.c |
| $(OBJDIR)/readline.o: $(OBJDIR) readline.c slsh.h config.h Makefile |
| cd $(OBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(DEFS) -DUSE_GNU_READLINE=$(GNU_READLINE) $(SRCDIR)/readline.c |
| +$(OBJDIR)/slsh_static: $(OBJDIR)/slsh.o $(OBJDIR)/readline.o |
| + $(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh_static $(LDFLAGS) $(STATIC_SRC_LIBS) |
| $(OBJDIR): |
| -$(MKINSDIR) $(OBJDIR) |
| config.h: ../src/config.h |
| @@ -151,6 +156,12 @@ install: slsh install_directories instal |
| $(INSTALL_DATA) etc/slsh.rc $(DEST_SLSH_CONF_DIR)/ |
| echo 'prepend_to_slang_load_path("$(SLSH_LOCALLIB_DIR)");' >> $(DEST_SLSH_CONF_DIR)/slsh.rc |
| $(INSTALL_DATA) doc/man/slsh.1 $(DEST_MAN_DIR)/ |
| +install-static: static install_directories install_lib_files install_rline_files \ |
| + install_scripts install_help install_docs |
| + $(INSTALL) $(OBJDIR)/slsh_static $(DEST_BIN_DIR)/slsh |
| + $(INSTALL_DATA) etc/slsh.rc $(DEST_SLSH_CONF_DIR)/ |
| + echo 'prepend_to_slang_load_path("$(SLSH_LOCALLIB_DIR)");' >> $(DEST_SLSH_CONF_DIR)/slsh.rc |
| + $(INSTALL_DATA) doc/man/slsh.1 $(DEST_MAN_DIR)/ |
| #--------------------------------------------------------------------------- |
| # Housekeeping |
| #--------------------------------------------------------------------------- |
| @@ -161,5 +172,5 @@ distclean: clean |
| # |
| .PHONY: all clean distclean symlinks slsh install install_directories \ |
| install_lib_files install_rline_files install_scripts install_help \ |
| - install_docs |
| + install_docs install-static static |
| |