mirror of
https://github.com/python/cpython
synced 2024-09-05 00:05:39 +00:00
Part of SF patch #102409 by jlt63: Cygwin Python DLL and Shared
Extension Patch. Note: this could use some testing on NeXT, DG/UX, or BeOS, because of the changes in the Makefile regarding $(LDLIBRARY).
This commit is contained in:
parent
5a53019b0d
commit
aef734b182
11
Makefile.in
11
Makefile.in
|
@ -131,6 +131,7 @@ CFLAGS= $(OPT) -I. $(DEFS)
|
|||
|
||||
LIBRARY= libpython$(VERSION).a
|
||||
LDLIBRARY= @LDLIBRARY@
|
||||
@SET_DLLLIBRARY@
|
||||
|
||||
# Default target
|
||||
all: $(LIBRARY) python$(EXE) sharedmods
|
||||
|
@ -247,6 +248,10 @@ altbininstall: python$(EXE)
|
|||
$(INSTALL_DATA) libpython$(VERSION).so $(LIBDIR); \
|
||||
else true; \
|
||||
fi
|
||||
if test -f "$(DLLLIBRARY)"; then \
|
||||
$(INSTALL_DATA) $(DLLLIBRARY) $(BINDIR); \
|
||||
else true; \
|
||||
fi
|
||||
|
||||
# Install the manual page
|
||||
maninstall:
|
||||
|
@ -371,9 +376,9 @@ libainstall: all
|
|||
else true; \
|
||||
fi; \
|
||||
done
|
||||
@if test -d $(LIBRARY); then :; else \
|
||||
$(INSTALL_DATA) $(LIBRARY) $(LIBPL)/$(LIBRARY) ; \
|
||||
$(RANLIB) $(LIBPL)/$(LIBRARY) ; \
|
||||
@if test -d $(LDLIBRARY); then :; else \
|
||||
$(INSTALL_DATA) $(LDLIBRARY) $(LIBPL)/$(LDLIBRARY) ; \
|
||||
$(RANLIB) $(LIBPL)/$(LDLIBRARY) ; \
|
||||
fi
|
||||
$(INSTALL_DATA) Modules/config.c $(LIBPL)/config.c
|
||||
$(INSTALL_DATA) Modules/python.o $(LIBPL)/python.o
|
||||
|
|
12
acconfig.h
12
acconfig.h
|
@ -185,3 +185,15 @@
|
|||
|
||||
|
||||
/* Leave that blank line there-- autoheader needs it! */
|
||||
|
||||
@BOTTOM@
|
||||
|
||||
#ifdef __CYGWIN__
|
||||
#ifdef USE_DL_IMPORT
|
||||
#define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE
|
||||
#define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||
#else
|
||||
#define DL_IMPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||
#define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||
#endif
|
||||
#endif
|
||||
|
|
10
config.h.in
10
config.h.in
|
@ -634,3 +634,13 @@
|
|||
|
||||
/* Define if you have the ieee library (-lieee). */
|
||||
#undef HAVE_LIBIEEE
|
||||
|
||||
#ifdef __CYGWIN__
|
||||
#ifdef USE_DL_IMPORT
|
||||
#define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE
|
||||
#define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||
#else
|
||||
#define DL_IMPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||
#define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||
#endif
|
||||
#endif
|
||||
|
|
25
configure.in
25
configure.in
|
@ -237,10 +237,13 @@ esac
|
|||
# LDLIBRARY is the name of the library to link against (as opposed to the
|
||||
# name of the library into which to insert object files). On systems
|
||||
# without shared libraries, LDLIBRARY is the same as LIBRARY (defined in
|
||||
# the Makefiles).
|
||||
# the Makefiles). On Cygwin LDLIBRARY is the import library, DLLLIBRARY is the
|
||||
# shared (i.e., DLL) library.
|
||||
AC_SUBST(MAKE_LDLIBRARY)
|
||||
AC_SUBST(LDLIBRARY)
|
||||
AC_SUBST(SET_DLLLIBRARY)
|
||||
LDLIBRARY=''
|
||||
SET_DLLLIBRARY=''
|
||||
|
||||
# LINKCC is the command that links the python executable -- default is $(CC).
|
||||
# This is altered for AIX in order to build the export list before
|
||||
|
@ -283,6 +286,10 @@ dguxR4)
|
|||
beos*)
|
||||
LDLIBRARY='libpython$(VERSION).so'
|
||||
;;
|
||||
cygwin*)
|
||||
LDLIBRARY='libpython$(VERSION).dll.a'
|
||||
SET_DLLLIBRARY='DLLLIBRARY= $(basename $(LDLIBRARY))'
|
||||
;;
|
||||
esac
|
||||
AC_MSG_RESULT($LDLIBRARY)
|
||||
|
||||
|
@ -292,7 +299,10 @@ then
|
|||
LDLIBRARY='libpython$(VERSION).a'
|
||||
MAKE_LDLIBRARY="true"
|
||||
else
|
||||
MAKE_LDLIBRARY='$(MAKE) $(LDLIBRARY)'
|
||||
case $MACHDEP in
|
||||
cygwin*) MAKE_LDLIBRARY='$(MAKE) -C Modules ../$(DLLLIBRARY)';;
|
||||
*) MAKE_LDLIBRARY='$(MAKE) $(LDLIBRARY)';;
|
||||
esac
|
||||
fi
|
||||
|
||||
AC_PROG_RANLIB
|
||||
|
@ -317,6 +327,7 @@ AC_SUBST(LN)
|
|||
if test -z "$LN" ; then
|
||||
case $ac_sys_system in
|
||||
BeOS*) LN="ln -s";;
|
||||
CYGWIN*) LN="ln -s";;
|
||||
*) LN=ln;;
|
||||
esac
|
||||
fi
|
||||
|
@ -341,6 +352,11 @@ case $ac_sys_system in
|
|||
Monterey*) OPT="";;
|
||||
esac
|
||||
|
||||
# Cygwin does not need PIC compiler option so remove it to prevent warnings
|
||||
case $ac_sys_system in
|
||||
CYGWIN*) OPT="`echo $OPT | sed 's/ *-fPIC//'`";;
|
||||
esac
|
||||
|
||||
if test "$ac_arch_flags"
|
||||
then
|
||||
OPT="$OPT $ac_arch_flags"
|
||||
|
@ -559,12 +575,13 @@ AC_SUBST(LDSHARED)
|
|||
AC_SUBST(CCSHARED)
|
||||
AC_SUBST(LINKFORSHARED)
|
||||
# SO is the extension of shared libraries `(including the dot!)
|
||||
# -- usually .so, .sl on HP-UX
|
||||
# -- usually .so, .sl on HP-UX, .dll on Cygwin
|
||||
AC_MSG_CHECKING(SO)
|
||||
if test -z "$SO"
|
||||
then
|
||||
case $ac_sys_system in
|
||||
hp*|HP*) SO=.sl;;
|
||||
CYGWIN*) SO=.dll;;
|
||||
*) SO=.so;;
|
||||
esac
|
||||
fi
|
||||
|
@ -622,6 +639,7 @@ then
|
|||
fi;;
|
||||
SCO_SV*) LDSHARED="cc -G -KPIC -Ki486 -belf -Wl,-Bexport";;
|
||||
Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";;
|
||||
CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";;
|
||||
*) LDSHARED="ld";;
|
||||
esac
|
||||
fi
|
||||
|
@ -646,6 +664,7 @@ then
|
|||
*gcc*) CCSHARED="-shared";;
|
||||
*) CCSHARED="";;
|
||||
esac;;
|
||||
CYGWIN*) CCSHARED="-DUSE_DL_IMPORT";;
|
||||
esac
|
||||
fi
|
||||
AC_MSG_RESULT($CCSHARED)
|
||||
|
|
Loading…
Reference in a new issue