ranlib libtcl80.a when building both shared and static libs.

patch from Matthieu Herrb <matthieu@laas.fr>, PR 438.
This commit is contained in:
marc 1998-04-16 17:01:44 +00:00
parent 687531ad25
commit 273c321cd1
2 changed files with 164 additions and 267 deletions

View File

@ -1,43 +1,27 @@
*** configure.orig Tue Nov 25 08:31:42 1997
--- configure Tue Feb 10 18:58:52 1998
***************
*** 3780,3787 ****
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
!
! SHLIB_CFLAGS="-fpic"
SHLIB_LD="ld -Bshareable -x"
SHLIB_LD_LIBS=""
SHLIB_SUFFIX=".so"
--- 3780,3792 ----
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
!
! case `machine` in
! sparc)
! SHLIB_CFLAGS="-fPIC";;
! *)
! SHLIB_CFLAGS="-fpic";;
! esac
SHLIB_LD="ld -Bshareable -x"
SHLIB_LD_LIBS=""
SHLIB_SUFFIX=".so"
***************
*** 3789,3795 ****
DL_LIBS=""
LD_FLAGS=""
LD_SEARCH_FLAGS=""
! TCL_SHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.so.1.0'
else
echo "$ac_t""no" 1>&6
--- 3794,3800 ----
DL_LIBS=""
LD_FLAGS=""
LD_SEARCH_FLAGS=""
! TCL_SHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.so.1.2'
else
echo "$ac_t""no" 1>&6
--- configure.orig Tue Nov 25 08:31:42 1997
+++ configure Wed Apr 15 19:26:53 1998
@@ -3780,8 +3780,13 @@
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
-
- SHLIB_CFLAGS="-fpic"
+
+ case `machine` in
+ sparc)
+ SHLIB_CFLAGS="-fPIC";;
+ *)
+ SHLIB_CFLAGS="-fpic";;
+ esac
SHLIB_LD="ld -Bshareable -x"
SHLIB_LD_LIBS=""
SHLIB_SUFFIX=".so"
@@ -3789,7 +3794,7 @@
DL_LIBS=""
LD_FLAGS=""
LD_SEARCH_FLAGS=""
- TCL_SHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.so.1.0'
+ TCL_SHARED_LIB_SUFFIX='`echo ${VERSION} | tr -d .`.so.1.2'
else
echo "$ac_t""no" 1>&6

View File

@ -1,224 +1,137 @@
*** Makefile.in.orig Tue Nov 25 10:31:41 1997
--- Makefile.in Wed Jan 28 17:27:32 1998
***************
*** 55,61 ****
BIN_INSTALL_DIR = $(INSTALL_ROOT)$(exec_prefix)/bin
# Directory in which to install the include file tcl.h:
! INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include
# Top-level directory in which to install manual entries:
MAN_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/man
--- 55,63 ----
BIN_INSTALL_DIR = $(INSTALL_ROOT)$(exec_prefix)/bin
# Directory in which to install the include file tcl.h:
! INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/tcl$(VERSION)
! GENERIC_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/tcl$(VERSION)/generic
! UNIX_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/tcl$(VERSION)/unix
# Top-level directory in which to install manual entries:
MAN_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/man
***************
*** 133,139 ****
# "install" around; better to use the install-sh script that comes
# with the distribution, which is slower but guaranteed to work.
! INSTALL = @srcdir@/install-sh -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644
--- 135,141 ----
# "install" around; better to use the install-sh script that comes
# with the distribution, which is slower but guaranteed to work.
! INSTALL = install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644
***************
*** 310,316 ****
SRCS = $(GENERIC_SRCS) $(UNIX_SRCS)
! all: ${TCL_LIB_FILE} tclsh
# The following target is configured by autoconf to generate either
# a shared library or non-shared library for Tcl.
--- 312,318 ----
SRCS = $(GENERIC_SRCS) $(UNIX_SRCS)
! all: ${TCL_LIB_FILE} libtcl80.a tclsh
# The following target is configured by autoconf to generate either
# a shared library or non-shared library for Tcl.
***************
*** 319,324 ****
--- 321,331 ----
@MAKE_LIB@
$(RANLIB) ${TCL_LIB_FILE}
+ libtcl80.a: ${OBJS}
+ rm -f libtcl80.a
+ ar cr libtcl80.a ${OBJS}
+ $(RANLIB) libtcl80.a
+
# Make target which outputs the list of the .o contained in the Tcl lib
# usefull to build a single big shared library containing Tcl and other
# extensions. used for the Tcl Plugin. -- dl
***************
*** 410,416 ****
# some ranlibs write to current directory, and this might not always be
# possible (e.g. if installing as root).
! install-binaries: $(TCL_LIB_FILE) tclsh
@for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \
do \
if [ ! -d $$i ] ; then \
--- 417,423 ----
# some ranlibs write to current directory, and this might not always be
# possible (e.g. if installing as root).
! install-binaries: $(TCL_LIB_FILE) libtcl80.a tclsh
@for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \
do \
if [ ! -d $$i ] ; then \
***************
*** 424,441 ****
@$(INSTALL_DATA) $(TCL_LIB_FILE) $(LIB_INSTALL_DIR)/$(TCL_LIB_FILE)
@(cd $(LIB_INSTALL_DIR); $(RANLIB) $(TCL_LIB_FILE))
@chmod 555 $(LIB_INSTALL_DIR)/$(TCL_LIB_FILE)
@echo "Installing tclsh"
@$(INSTALL_PROGRAM) tclsh $(BIN_INSTALL_DIR)/tclsh$(VERSION)
@echo "Installing tclConfig.sh"
! @$(INSTALL_DATA) tclConfig.sh $(LIB_INSTALL_DIR)/tclConfig.sh
install-libraries:
! @for i in $(INSTALL_ROOT)$(prefix)/lib $(INCLUDE_INSTALL_DIR) \
! $(SCRIPT_INSTALL_DIR); \
do \
if [ ! -d $$i ] ; then \
echo "Making directory $$i"; \
! mkdir $$i; \
chmod 755 $$i; \
else true; \
fi; \
--- 431,453 ----
@$(INSTALL_DATA) $(TCL_LIB_FILE) $(LIB_INSTALL_DIR)/$(TCL_LIB_FILE)
@(cd $(LIB_INSTALL_DIR); $(RANLIB) $(TCL_LIB_FILE))
@chmod 555 $(LIB_INSTALL_DIR)/$(TCL_LIB_FILE)
+ @echo "Installing libtcl80.a"
+ @$(INSTALL_DATA) libtcl80.a $(LIB_INSTALL_DIR)/libtcl80.a
+ @(cd $(LIB_INSTALL_DIR); $(RANLIB) libtcl80.a)
+ @chmod 555 $(LIB_INSTALL_DIR)/libtcl80.a
@echo "Installing tclsh"
@$(INSTALL_PROGRAM) tclsh $(BIN_INSTALL_DIR)/tclsh$(VERSION)
@echo "Installing tclConfig.sh"
! @mkdir -p $(SCRIPT_INSTALL_DIR)
! @$(INSTALL_DATA) tclConfig.sh $(SCRIPT_INSTALL_DIR)/tclConfig.sh
install-libraries:
! @for i in $(INSTALL_ROOT)$(prefix)/lib $(GENERIC_INCLUDE_INSTALL_DIR) \
! $(UNIX_INCLUDE_INSTALL_DIR) $(SCRIPT_INSTALL_DIR); \
do \
if [ ! -d $$i ] ; then \
echo "Making directory $$i"; \
! mkdir -p $$i; \
chmod 755 $$i; \
else true; \
fi; \
***************
*** 449,456 ****
else true; \
fi; \
done;
! @echo "Installing tcl.h"
! @$(INSTALL_DATA) $(GENERIC_DIR)/tcl.h $(INCLUDE_INSTALL_DIR)/tcl.h
@for i in $(TOP_DIR)/library/*.tcl $(TOP_DIR)/library/tclIndex $(UNIX_DIR)/tclAppInit.c $(UNIX_DIR)/ldAix; \
do \
echo "Installing $$i"; \
--- 461,475 ----
else true; \
fi; \
done;
! @echo "Installing libraries, tcl.h and other headers"
! @for i in $(GENERIC_DIR)/*.h ; \
! do \
! echo "Installing $$i"; \
! $(INSTALL_DATA) $$i $(GENERIC_INCLUDE_INSTALL_DIR); \
! done;
! @ln -sf $(GENERIC_INCLUDE_INSTALL_DIR)/tcl.h $(INCLUDE_INSTALL_DIR)/tcl.h
! @echo "Installing $(TOP_DIR)unix/tclUnixPort.h"
! @$(INSTALL_DATA) $(TOP_DIR)/unix/tclUnixPort.h $(UNIX_INCLUDE_INSTALL_DIR)
@for i in $(TOP_DIR)/library/*.tcl $(TOP_DIR)/library/tclIndex $(UNIX_DIR)/tclAppInit.c $(UNIX_DIR)/ldAix; \
do \
echo "Installing $$i"; \
***************
*** 478,484 ****
@cd $(TOP_DIR)/doc; for i in *.1; \
do \
echo "Installing doc/$$i"; \
! rm -f $(MAN1_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
$$i > $(MAN1_INSTALL_DIR)/$$i; \
chmod 444 $(MAN1_INSTALL_DIR)/$$i; \
--- 497,503 ----
@cd $(TOP_DIR)/doc; for i in *.1; \
do \
echo "Installing doc/$$i"; \
! rm -f $(MAN1_INSTALL_DIR)/$$i $(MAN1_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
$$i > $(MAN1_INSTALL_DIR)/$$i; \
chmod 444 $(MAN1_INSTALL_DIR)/$$i; \
***************
*** 487,493 ****
@cd $(TOP_DIR)/doc; for i in *.3; \
do \
echo "Installing doc/$$i"; \
! rm -f $(MAN3_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
$$i > $(MAN3_INSTALL_DIR)/$$i; \
chmod 444 $(MAN3_INSTALL_DIR)/$$i; \
--- 506,512 ----
@cd $(TOP_DIR)/doc; for i in *.3; \
do \
echo "Installing doc/$$i"; \
! rm -f $(MAN3_INSTALL_DIR)/$$i $(MAN3_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
$$i > $(MAN3_INSTALL_DIR)/$$i; \
chmod 444 $(MAN3_INSTALL_DIR)/$$i; \
***************
*** 496,507 ****
@cd $(TOP_DIR)/doc; for i in *.n; \
do \
echo "Installing doc/$$i"; \
! rm -f $(MANN_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
$$i > $(MANN_INSTALL_DIR)/$$i; \
chmod 444 $(MANN_INSTALL_DIR)/$$i; \
done;
$(UNIX_DIR)/mkLinks $(MANN_INSTALL_DIR)
Makefile: $(UNIX_DIR)/Makefile.in
$(SHELL) config.status
--- 515,533 ----
@cd $(TOP_DIR)/doc; for i in *.n; \
do \
echo "Installing doc/$$i"; \
! rm -f $(MANN_INSTALL_DIR)/$$i $(MANN_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
$$i > $(MANN_INSTALL_DIR)/$$i; \
chmod 444 $(MANN_INSTALL_DIR)/$$i; \
done;
$(UNIX_DIR)/mkLinks $(MANN_INSTALL_DIR)
+ @echo "**********"
+ @echo "IMPORTANT:"
+ @echo "**********"
+ @echo "tclConfig.sh in $(SCRIPT_INSTALL_DIR)/tclConfig.sh"
+ @echo "tcl.h in $(INCLUDE_INSTALL_DIR)/tcl.h"
+ @echo "There are NOT default place, but good place to avoid"
+ @echo "conflicting with another version of Tcl/Tks."
Makefile: $(UNIX_DIR)/Makefile.in
$(SHELL) config.status
--- Makefile.in.orig Tue Nov 25 08:31:41 1997
+++ Makefile.in Wed Apr 15 19:26:53 1998
@@ -55,7 +55,9 @@
BIN_INSTALL_DIR = $(INSTALL_ROOT)$(exec_prefix)/bin
# Directory in which to install the include file tcl.h:
-INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include
+INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/tcl$(VERSION)
+GENERIC_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/tcl$(VERSION)/generic
+UNIX_INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/include/tcl$(VERSION)/unix
# Top-level directory in which to install manual entries:
MAN_INSTALL_DIR = $(INSTALL_ROOT)$(prefix)/man
@@ -133,7 +135,7 @@
# "install" around; better to use the install-sh script that comes
# with the distribution, which is slower but guaranteed to work.
-INSTALL = @srcdir@/install-sh -c
+INSTALL = install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644
@@ -310,7 +312,7 @@
SRCS = $(GENERIC_SRCS) $(UNIX_SRCS)
-all: ${TCL_LIB_FILE} tclsh
+all: ${TCL_LIB_FILE} libtcl80.a tclsh
# The following target is configured by autoconf to generate either
# a shared library or non-shared library for Tcl.
@@ -319,6 +321,11 @@
@MAKE_LIB@
$(RANLIB) ${TCL_LIB_FILE}
+libtcl80.a: ${OBJS}
+ rm -f libtcl80.a
+ ar cr libtcl80.a ${OBJS}
+ ranlib libtcl80.a
+
# Make target which outputs the list of the .o contained in the Tcl lib
# usefull to build a single big shared library containing Tcl and other
# extensions. used for the Tcl Plugin. -- dl
@@ -410,7 +417,7 @@
# some ranlibs write to current directory, and this might not always be
# possible (e.g. if installing as root).
-install-binaries: $(TCL_LIB_FILE) tclsh
+install-binaries: $(TCL_LIB_FILE) libtcl80.a tclsh
@for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \
do \
if [ ! -d $$i ] ; then \
@@ -424,18 +431,23 @@
@$(INSTALL_DATA) $(TCL_LIB_FILE) $(LIB_INSTALL_DIR)/$(TCL_LIB_FILE)
@(cd $(LIB_INSTALL_DIR); $(RANLIB) $(TCL_LIB_FILE))
@chmod 555 $(LIB_INSTALL_DIR)/$(TCL_LIB_FILE)
+ @echo "Installing libtcl80.a"
+ @$(INSTALL_DATA) libtcl80.a $(LIB_INSTALL_DIR)/libtcl80.a
+ @(cd $(LIB_INSTALL_DIR); $(RANLIB) libtcl80.a)
+ @chmod 555 $(LIB_INSTALL_DIR)/libtcl80.a
@echo "Installing tclsh"
@$(INSTALL_PROGRAM) tclsh $(BIN_INSTALL_DIR)/tclsh$(VERSION)
@echo "Installing tclConfig.sh"
- @$(INSTALL_DATA) tclConfig.sh $(LIB_INSTALL_DIR)/tclConfig.sh
+ @mkdir -p $(SCRIPT_INSTALL_DIR)
+ @$(INSTALL_DATA) tclConfig.sh $(SCRIPT_INSTALL_DIR)/tclConfig.sh
install-libraries:
- @for i in $(INSTALL_ROOT)$(prefix)/lib $(INCLUDE_INSTALL_DIR) \
- $(SCRIPT_INSTALL_DIR); \
+ @for i in $(INSTALL_ROOT)$(prefix)/lib $(GENERIC_INCLUDE_INSTALL_DIR) \
+ $(UNIX_INCLUDE_INSTALL_DIR) $(SCRIPT_INSTALL_DIR); \
do \
if [ ! -d $$i ] ; then \
echo "Making directory $$i"; \
- mkdir $$i; \
+ mkdir -p $$i; \
chmod 755 $$i; \
else true; \
fi; \
@@ -449,8 +461,15 @@
else true; \
fi; \
done;
- @echo "Installing tcl.h"
- @$(INSTALL_DATA) $(GENERIC_DIR)/tcl.h $(INCLUDE_INSTALL_DIR)/tcl.h
+ @echo "Installing libraries, tcl.h and other headers"
+ @for i in $(GENERIC_DIR)/*.h ; \
+ do \
+ echo "Installing $$i"; \
+ $(INSTALL_DATA) $$i $(GENERIC_INCLUDE_INSTALL_DIR); \
+ done;
+ @ln -sf $(GENERIC_INCLUDE_INSTALL_DIR)/tcl.h $(INCLUDE_INSTALL_DIR)/tcl.h
+ @echo "Installing $(TOP_DIR)unix/tclUnixPort.h"
+ @$(INSTALL_DATA) $(TOP_DIR)/unix/tclUnixPort.h $(UNIX_INCLUDE_INSTALL_DIR)
@for i in $(TOP_DIR)/library/*.tcl $(TOP_DIR)/library/tclIndex $(UNIX_DIR)/tclAppInit.c $(UNIX_DIR)/ldAix; \
do \
echo "Installing $$i"; \
@@ -478,7 +497,7 @@
@cd $(TOP_DIR)/doc; for i in *.1; \
do \
echo "Installing doc/$$i"; \
- rm -f $(MAN1_INSTALL_DIR)/$$i; \
+ rm -f $(MAN1_INSTALL_DIR)/$$i $(MAN1_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
$$i > $(MAN1_INSTALL_DIR)/$$i; \
chmod 444 $(MAN1_INSTALL_DIR)/$$i; \
@@ -487,7 +506,7 @@
@cd $(TOP_DIR)/doc; for i in *.3; \
do \
echo "Installing doc/$$i"; \
- rm -f $(MAN3_INSTALL_DIR)/$$i; \
+ rm -f $(MAN3_INSTALL_DIR)/$$i $(MAN3_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
$$i > $(MAN3_INSTALL_DIR)/$$i; \
chmod 444 $(MAN3_INSTALL_DIR)/$$i; \
@@ -496,12 +515,19 @@
@cd $(TOP_DIR)/doc; for i in *.n; \
do \
echo "Installing doc/$$i"; \
- rm -f $(MANN_INSTALL_DIR)/$$i; \
+ rm -f $(MANN_INSTALL_DIR)/$$i $(MANN_INSTALL_DIR)/$$i; \
sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
$$i > $(MANN_INSTALL_DIR)/$$i; \
chmod 444 $(MANN_INSTALL_DIR)/$$i; \
done;
$(UNIX_DIR)/mkLinks $(MANN_INSTALL_DIR)
+ @echo "**********"
+ @echo "IMPORTANT:"
+ @echo "**********"
+ @echo "tclConfig.sh in $(SCRIPT_INSTALL_DIR)/tclConfig.sh"
+ @echo "tcl.h in $(INCLUDE_INSTALL_DIR)/tcl.h"
+ @echo "There are NOT default place, but good place to avoid"
+ @echo "conflicting with another version of Tcl/Tks."
Makefile: $(UNIX_DIR)/Makefile.in
$(SHELL) config.status