Correctly configure tcl and tk 8.4 on architectures which lack shared

libraries, though hppa might need more work.

prodded by jolan@; ok jolan@ pval@
This commit is contained in:
miod 2004-05-20 21:25:44 +00:00
parent 993a6d10a8
commit ca27018957
8 changed files with 135 additions and 77 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.6 2004/05/07 15:28:31 naddy Exp $ # $OpenBSD: Makefile,v 1.7 2004/05/20 21:25:44 miod Exp $
# Uses pthreads (can but does not at the moment) # Uses pthreads (can but does not at the moment)
COMMENT= "Tool Command Language" COMMENT= "Tool Command Language"
@ -30,6 +30,9 @@ SEPARATE_BUILD= concurrent
CONFIGURE_STYLE= autoconf no-autoheader CONFIGURE_STYLE= autoconf no-autoheader
CONFIGURE_ARGS+= ${CONFIGURE_SHARED} CONFIGURE_ARGS+= ${CONFIGURE_SHARED}
CONFIGURE_ARGS+= --enable-static CONFIGURE_ARGS+= --enable-static
.if defined(NO_SHARED_LIBS) && ${NO_SHARED_LIBS:L} == "yes"
CONFIGURE_ARGS+= --disable-shared
.endif
CONFIGURE_ENV= PORTSDIR="${PORTSDIR}" CONFIGURE_ENV= PORTSDIR="${PORTSDIR}"
WRKDIST= ${WRKDIR}/tcl${VERSION}/unix WRKDIST= ${WRKDIR}/tcl${VERSION}/unix

View File

@ -1,6 +1,6 @@
$OpenBSD: patch-Makefile_in,v 1.1.1.1 2003/11/19 15:47:15 jose Exp $ $OpenBSD: patch-Makefile_in,v 1.2 2004/05/20 21:25:46 miod Exp $
--- Makefile.in.orig Mon Jul 21 18:29:22 2003 --- Makefile.in.orig 2004-03-01 23:58:59.000000000 +0000
+++ Makefile.in Wed Aug 20 22:28:18 2003 +++ Makefile.in 2004-05-17 09:30:31.000000000 +0000
@@ -40,6 +40,9 @@ mandir = @mandir@ @@ -40,6 +40,9 @@ mandir = @mandir@
# when installing files. # when installing files.
INSTALL_ROOT = INSTALL_ROOT =
@ -120,7 +120,7 @@ $OpenBSD: patch-Makefile_in,v 1.1.1.1 2003/11/19 15:47:15 jose Exp $
Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in
$(SHELL) config.status $(SHELL) config.status
@@ -1396,7 +1426,7 @@ package-quick: package-config package-bi @@ -1401,7 +1431,7 @@ package-quick: package-config package-bi
package-config: package-config:
mkdir -p $(DISTDIR)/unix/`arch` mkdir -p $(DISTDIR)/unix/`arch`
cd $(DISTDIR)/unix/`arch`; \ cd $(DISTDIR)/unix/`arch`; \

View File

@ -1,12 +1,34 @@
--- tcl.m4.orig 2003-07-21 18:29:22.000000000 -0400 --- tcl.m4.orig 2004-03-01 23:58:59.000000000 +0000
+++ tcl.m4 2003-08-20 23:12:58.000000000 -0400 +++ tcl.m4 2004-05-17 12:45:28.000000000 +0000
@@ -1189,16 +1189,21 @@ dnl AC_CHECK_TOOL(AR, ar) @@ -1209,7 +1209,7 @@ dnl AC_CHECK_TOOL(AR, ar)
NetBSD-*|FreeBSD-[[1-2]].*|OpenBSD-*) CC_SEARCH_FLAGS=""
LD_SEARCH_FLAGS=""
;;
- NetBSD-*|FreeBSD-[[1-2]].*|OpenBSD-*)
+ NetBSD-*|FreeBSD-[[1-2]].*)
# Not available on all versions: check for include file. # Not available on all versions: check for include file.
AC_CHECK_HEADER(dlfcn.h, [ AC_CHECK_HEADER(dlfcn.h, [
- # NetBSD/SPARC needs -fPIC, -fpic will not do. # NetBSD/SPARC needs -fPIC, -fpic will not do.
- SHLIB_CFLAGS="-fPIC" @@ -1251,6 +1251,56 @@ dnl AC_CHECK_TOOL(AR, ar)
- SHLIB_LD="ld -Bshareable -x" UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
TCL_LIB_VERSIONS_OK=nodots
;;
+ OpenBSD-*)
+ case `machine` in
+ hppa|luna88k|mvme88k|vax)
+ # XXX not sure tclLdAout will work on hppa...
+ SHLIB_CFLAGS=""
+ SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r"
+ SHLIB_LD_LIBS='${LIBS}'
+ SHLIB_SUFFIX=".a"
+ DL_OBJS="tclLoadAout.o"
+ DL_LIBS=""
+ LDFLAGS=""
+ CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+ LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+ ;;
+ *)
+ # OpenBSD/SPARC[64] needs -fPIC, -fpic will not do. + # OpenBSD/SPARC[64] needs -fPIC, -fpic will not do.
+ case `machine` in + case `machine` in
+ sparc|sparc64) + sparc|sparc64)
@ -15,27 +37,32 @@
+ SHLIB_CFLAGS="-fpic";; + SHLIB_CFLAGS="-fpic";;
+ esac + esac
+ SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}" + SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}"
SHLIB_LD_LIBS="" + SHLIB_LD_LIBS=""
SHLIB_SUFFIX=".so" + SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o" + DL_OBJS="tclLoadDl.o"
DL_LIBS="" + DL_LIBS=""
- LDFLAGS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
- LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+ LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0' + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0'
AC_MSG_CHECKING(for ELF) + AC_MSG_CHECKING(for ELF)
AC_EGREP_CPP(yes, [ + AC_EGREP_CPP(yes, [
#ifdef __ELF__ +#ifdef __ELF__
@@ -1206,9 +1211,9 @@ dnl AC_CHECK_TOOL(AR, ar) + yes
#endif +#endif
], + ],
AC_MSG_RESULT(yes) + AC_MSG_RESULT(yes)
- SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so',
+ [ LDFLAGS=-Wl,-export-dynamic ], + [ LDFLAGS=-Wl,-export-dynamic ],
AC_MSG_RESULT(no) + AC_MSG_RESULT(no)
- SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0'
+ LDFLAGS="" + LDFLAGS=""
) + )
], [ + ;;
SHLIB_CFLAGS="" + esac
+
+ # FreeBSD doesn't handle version numbers with dots.
+
+ UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+ TCL_LIB_VERSIONS_OK=nodots
+ ;;
FreeBSD-*)
# FreeBSD 3.* and greater have ELF.
SHLIB_CFLAGS="-fPIC"

View File

@ -1,6 +1,6 @@
$OpenBSD: patch-Makefile_in,v 1.1.1.1 2003/11/19 15:45:58 jose Exp $ $OpenBSD: patch-Makefile_in,v 1.2 2004/05/20 21:25:46 miod Exp $
--- Makefile.in.orig Mon Jul 21 18:29:44 2003 --- Makefile.in.orig 2004-03-02 00:04:48.000000000 +0000
+++ Makefile.in Tue Aug 19 22:45:54 2003 +++ Makefile.in 2004-05-17 10:34:16.000000000 +0000
@@ -227,7 +227,7 @@ TCL_STUB_FLAGS = @TCL_STUB_FLAGS@ @@ -227,7 +227,7 @@ TCL_STUB_FLAGS = @TCL_STUB_FLAGS@
# Libraries to use when linking. This definition is determined by the # Libraries to use when linking. This definition is determined by the
# configure script. # configure script.
@ -10,7 +10,7 @@ $OpenBSD: patch-Makefile_in,v 1.1.1.1 2003/11/19 15:45:58 jose Exp $
# The symbol below provides support for dynamic loading and shared # The symbol below provides support for dynamic loading and shared
# libraries. See configure.in for a description of what it means. # libraries. See configure.in for a description of what it means.
@@ -389,7 +389,7 @@ DEMOPROGS = browse hello ixset rmt rolod @@ -390,7 +390,7 @@ DEMOPROGS = browse hello ixset rmt rolod
all: binaries libraries doc all: binaries libraries doc
@ -19,7 +19,7 @@ $OpenBSD: patch-Makefile_in,v 1.1.1.1 2003/11/19 15:45:58 jose Exp $
libraries: libraries:
@@ -409,6 +409,11 @@ ${STUB_LIB_FILE}: ${STUB_LIB_OBJS} @@ -410,6 +410,11 @@ ${STUB_LIB_FILE}: ${STUB_LIB_OBJS}
rm -f $@ rm -f $@
@MAKE_STUB_LIB@ @MAKE_STUB_LIB@
@ -31,7 +31,7 @@ $OpenBSD: patch-Makefile_in,v 1.1.1.1 2003/11/19 15:45:58 jose Exp $
# Make target which outputs the list of the .o contained in the Tk lib # Make target which outputs the list of the .o contained in the Tk lib
# usefull to build a single big shared library containing Tcl/Tk and other # usefull to build a single big shared library containing Tcl/Tk and other
# extensions. used for the Tcl Plugin. -- dl # extensions. used for the Tcl Plugin. -- dl
@@ -532,10 +537,14 @@ install-binaries: $(TK_LIB_FILE) $(TK_ST @@ -533,10 +538,14 @@ install-binaries: $(TK_LIB_FILE) $(TK_ST
@echo "Installing $(LIB_FILE) to $(LIB_INSTALL_DIR)/" @echo "Installing $(LIB_FILE) to $(LIB_INSTALL_DIR)/"
@@INSTALL_LIB@ @@INSTALL_LIB@
@chmod 555 $(LIB_INSTALL_DIR)/$(LIB_FILE) @chmod 555 $(LIB_INSTALL_DIR)/$(LIB_FILE)
@ -47,7 +47,7 @@ $OpenBSD: patch-Makefile_in,v 1.1.1.1 2003/11/19 15:45:58 jose Exp $
@if test "$(TK_BUILD_EXP_FILE)" != ""; then \ @if test "$(TK_BUILD_EXP_FILE)" != ""; then \
echo "Installing $(TK_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \ echo "Installing $(TK_EXP_FILE) to $(LIB_INSTALL_DIR)/"; \
$(INSTALL_DATA) $(TK_BUILD_EXP_FILE) \ $(INSTALL_DATA) $(TK_BUILD_EXP_FILE) \
@@ -548,6 +557,7 @@ install-binaries: $(TK_LIB_FILE) $(TK_ST @@ -549,6 +558,7 @@ install-binaries: $(TK_LIB_FILE) $(TK_ST
install-libraries: install-libraries:
@for i in $(INCLUDE_INSTALL_DIR) \ @for i in $(INCLUDE_INSTALL_DIR) \
@ -55,20 +55,20 @@ $OpenBSD: patch-Makefile_in,v 1.1.1.1 2003/11/19 15:45:58 jose Exp $
$(SCRIPT_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)/images \ $(SCRIPT_INSTALL_DIR) $(SCRIPT_INSTALL_DIR)/images \
$(SCRIPT_INSTALL_DIR)/msgs; \ $(SCRIPT_INSTALL_DIR)/msgs; \
do \ do \
@@ -562,11 +572,19 @@ install-libraries: @@ -563,11 +573,19 @@ install-libraries:
chmod +x $(UNIX_DIR)/install-sh; \ chmod +x $(UNIX_DIR)/install-sh; \
fi fi
@echo "Installing header files"; @echo "Installing header files";
- @for i in $(GENERIC_DIR)/tk.h $(GENERIC_DIR)/tkDecls.h \ - @for i in $(GENERIC_DIR)/tk.h $(GENERIC_DIR)/tkDecls.h \
- $(GENERIC_DIR)/tkPlatDecls.h ; \ - $(GENERIC_DIR)/tkPlatDecls.h ; \
+ @for i in $(GENERIC_DIR)/*.h ; \ + @for i in $(GENERIC_DIR)/*.h ; \
do \ + do \
- $(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR); \
+ echo "Installing $$i"; \ + echo "Installing $$i"; \
+ $(INSTALL_DATA) $$i $(INSTALL_ROOT)$(GENERIC_INCLUDE_INSTALL_DIR); \ + $(INSTALL_DATA) $$i $(INSTALL_ROOT)$(GENERIC_INCLUDE_INSTALL_DIR); \
+ done + done
+ @for i in $(UNIX_DIR)/*.h ; \ + @for i in $(UNIX_DIR)/*.h ; \
+ do \ do \
- $(INSTALL_DATA) $$i $(INCLUDE_INSTALL_DIR); \
+ $(INSTALL_DATA) $$i $(INSTALL_ROOT)$(UNIX_INCLUDE_INSTALL_DIR); \ + $(INSTALL_DATA) $$i $(INSTALL_ROOT)$(UNIX_INCLUDE_INSTALL_DIR); \
done; done;
+ @ln -sf $(GENERIC_INCLUDE_INSTALL_DIR)/tk.h $(INCLUDE_INSTALL_DIR)/tk.h + @ln -sf $(GENERIC_INCLUDE_INSTALL_DIR)/tk.h $(INCLUDE_INSTALL_DIR)/tk.h

View File

@ -1,6 +1,7 @@
--- configure.in~ Tue Jul 22 00:29:44 2003 $OpenBSD: patch-configure_in,v 1.2 2004/05/20 21:25:46 miod Exp $
+++ configure.in Wed Aug 20 23:08:24 2003 --- configure.in.orig 2004-03-02 00:04:48.000000000 +0000
@@ -102,6 +102,8 @@ +++ configure.in 2004-05-17 10:34:16.000000000 +0000
@@ -108,6 +108,8 @@ SC_CONFIG_CFLAGS
SC_ENABLE_SYMBOLS SC_ENABLE_SYMBOLS
@ -9,7 +10,7 @@
LIB_RUNTIME_DIR='${LIB_RUNTIME_DIR}' LIB_RUNTIME_DIR='${LIB_RUNTIME_DIR}'
TK_DBGX=${DBGX} TK_DBGX=${DBGX}
@@ -349,7 +351,7 @@ @@ -361,7 +363,7 @@ eval eval "TK_UNSHARED_LIB_SUFFIX=${UNSH
if test "${SHARED_BUILD}" = "1" -a "${SHLIB_SUFFIX}" != ""; then if test "${SHARED_BUILD}" = "1" -a "${SHLIB_SUFFIX}" != ""; then
SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \${TCL_STUB_LIB_SPEC}" SHLIB_LD_LIBS="${SHLIB_LD_LIBS} \${TCL_STUB_LIB_SPEC}"

View File

@ -1,12 +1,34 @@
--- tcl.m4.orig 2003-07-21 18:29:44.000000000 -0400 --- tcl.m4.orig 2004-03-02 00:04:48.000000000 +0000
+++ tcl.m4 2003-08-20 23:56:13.000000000 -0400 +++ tcl.m4 2004-05-17 12:40:54.000000000 +0000
@@ -1189,16 +1189,21 @@ dnl AC_CHECK_TOOL(AR, ar) @@ -1209,7 +1209,7 @@ dnl AC_CHECK_TOOL(AR, ar)
NetBSD-*|FreeBSD-[[1-2]].*|OpenBSD-*) CC_SEARCH_FLAGS=""
LD_SEARCH_FLAGS=""
;;
- NetBSD-*|FreeBSD-[[1-2]].*|OpenBSD-*)
+ NetBSD-*|FreeBSD-[[1-2]].*)
# Not available on all versions: check for include file. # Not available on all versions: check for include file.
AC_CHECK_HEADER(dlfcn.h, [ AC_CHECK_HEADER(dlfcn.h, [
- # NetBSD/SPARC needs -fPIC, -fpic will not do. # NetBSD/SPARC needs -fPIC, -fpic will not do.
- SHLIB_CFLAGS="-fPIC" @@ -1251,6 +1251,56 @@ dnl AC_CHECK_TOOL(AR, ar)
- SHLIB_LD="ld -Bshareable -x" UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
TCL_LIB_VERSIONS_OK=nodots
;;
+ OpenBSD-*)
+ case `machine` in
+ hppa|luna88k|mvme88k|vax)
+ # XXX not sure tclLdAout will work on hppa...
+ SHLIB_CFLAGS=""
+ SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r"
+ SHLIB_LD_LIBS='${LIBS}'
+ SHLIB_SUFFIX=".a"
+ DL_OBJS="tclLoadAout.o"
+ DL_LIBS=""
+ LDFLAGS=""
+ CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'
+ LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+ ;;
+ *)
+ # OpenBSD/SPARC[64] needs -fPIC, -fpic will not do. + # OpenBSD/SPARC[64] needs -fPIC, -fpic will not do.
+ case `machine` in + case `machine` in
+ sparc|sparc64) + sparc|sparc64)
@ -15,27 +37,32 @@
+ SHLIB_CFLAGS="-fpic";; + SHLIB_CFLAGS="-fpic";;
+ esac + esac
+ SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}" + SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}"
SHLIB_LD_LIBS="" + SHLIB_LD_LIBS=""
SHLIB_SUFFIX=".so" + SHLIB_SUFFIX=".so"
DL_OBJS="tclLoadDl.o" + DL_OBJS="tclLoadDl.o"
DL_LIBS="" + DL_LIBS=""
- LDFLAGS="" + CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
- LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}'
+ LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} + LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0' + SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0'
AC_MSG_CHECKING(for ELF) + AC_MSG_CHECKING(for ELF)
AC_EGREP_CPP(yes, [ + AC_EGREP_CPP(yes, [
#ifdef __ELF__ +#ifdef __ELF__
@@ -1206,9 +1211,9 @@ dnl AC_CHECK_TOOL(AR, ar) + yes
#endif +#endif
], + ],
AC_MSG_RESULT(yes) + AC_MSG_RESULT(yes)
- SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so',
+ [ LDFLAGS=-Wl,-export-dynamic ], + [ LDFLAGS=-Wl,-export-dynamic ],
AC_MSG_RESULT(no) + AC_MSG_RESULT(no)
- SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0'
+ LDFLAGS="" + LDFLAGS=""
) + )
], [ + ;;
SHLIB_CFLAGS="" + esac
+
+ # FreeBSD doesn't handle version numbers with dots.
+
+ UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a'
+ TCL_LIB_VERSIONS_OK=nodots
+ ;;
FreeBSD-*)
# FreeBSD 3.* and greater have ELF.
SHLIB_CFLAGS="-fPIC"

View File

@ -1,3 +1,4 @@
@comment $OpenBSD: PFRAG.shared,v 1.1.1.1 2003/11/19 15:45:59 jose Exp $ @comment $OpenBSD: PFRAG.shared,v 1.2 2004/05/20 21:25:46 miod Exp $
lib/libtk84.so.1.0 lib/libtk84.so.1.0
lib/tk8.4/pkgIndex.tcl
DYNLIBDIR(%D/lib) DYNLIBDIR(%D/lib)

View File

@ -1,4 +1,4 @@
@comment $OpenBSD: PLIST,v 1.1.1.1 2003/11/19 15:45:59 jose Exp $ @comment $OpenBSD: PLIST,v 1.2 2004/05/20 21:25:47 miod Exp $
@option no-default-conflict @option no-default-conflict
@pkgcfl tk-8.4.* @pkgcfl tk-8.4.*
bin/wish8.4 bin/wish8.4
@ -556,7 +556,6 @@ lib/tk8.4/obsolete.tcl
lib/tk8.4/optMenu.tcl lib/tk8.4/optMenu.tcl
lib/tk8.4/palette.tcl lib/tk8.4/palette.tcl
lib/tk8.4/panedwindow.tcl lib/tk8.4/panedwindow.tcl
lib/tk8.4/pkgIndex.tcl
lib/tk8.4/prolog.ps lib/tk8.4/prolog.ps
lib/tk8.4/safetk.tcl lib/tk8.4/safetk.tcl
lib/tk8.4/scale.tcl lib/tk8.4/scale.tcl