Chris Herborth's first pass at making config and install
for BeOS better.
This commit is contained in:
parent
0039d7b4e6
commit
7a5f420e67
55
BeOS/README
55
BeOS/README
|
@ -8,6 +8,9 @@ What's Here?
|
|||
ar-fake - A shell script used by the build process to emulate a "real"
|
||||
POSIX ar command; helps to build the Python shared library.
|
||||
|
||||
dl_export.h - A header defining the evil magic declaration decorations
|
||||
required for dynamic loading.
|
||||
|
||||
linkcc - A shell script used by the build process to build the Python
|
||||
shared library.
|
||||
|
||||
|
@ -35,21 +38,7 @@ Python 1.5.2 and later will compile "out of the box" on BeOS), try this:
|
|||
|
||||
2) Configure with:
|
||||
|
||||
AR=$(pwd)/BeOS/ar-fake RANLIB=: ./configure --verbose \
|
||||
--prefix=/boot/home/config --with-thread
|
||||
|
||||
When configure is done, add this anywhere in config.h:
|
||||
|
||||
#ifndef DL_EXPORT
|
||||
# define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||
#endif
|
||||
#ifndef DL_IMPORT
|
||||
# ifdef USE_DL_EXPORT
|
||||
# define DL_IMPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||
# else
|
||||
# define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE
|
||||
# endif
|
||||
#endif
|
||||
./configure --verbose --prefix=/boot/home/config --with-thread
|
||||
|
||||
3) Copy Modules/Setup.in to Modules/Setup.
|
||||
|
||||
|
@ -68,22 +57,19 @@ Python 1.5.2 and later will compile "out of the box" on BeOS), try this:
|
|||
operator _locale fcntl pwd grp select _socket errno crypt termios
|
||||
audioop imageop rgbimg md5 timing rotor syslog curses new gdbm soundex
|
||||
binascii parser cStringIO cPickle zlib
|
||||
|
||||
Note that some of these (readline, curses, gdbm, and zlib) require extra
|
||||
libraries that aren't supplied with Python. If you don't have the extra
|
||||
libs (you can probably get them from GeekGadgets), don't try to use
|
||||
these modules; they won't compile.
|
||||
|
||||
5) Make sure Modules/Makefile.pre has REALLIBRARY set to:
|
||||
5) Make:
|
||||
|
||||
REALLIBRARY=../libpython$(VERSION).so
|
||||
make
|
||||
|
||||
6) Make:
|
||||
6) Test:
|
||||
|
||||
make OPT=-DUSE_DL_EXPORT CCSHARED=-UUSE_DL_EXPORT MACHDEP=beos
|
||||
|
||||
On PowerPC systems, you'll see lots of warnings about duplicate
|
||||
symbols when things get linked; don't worry about this, it's
|
||||
harmless (and should disappear soon).
|
||||
|
||||
7) Test:
|
||||
|
||||
make OPT=-DUSE_DL_EXPORT CCSHARED=-UUSE_DL_EXPORT MACHDEP=beos test
|
||||
make test
|
||||
|
||||
Expect the following errors:
|
||||
|
||||
|
@ -97,16 +83,11 @@ Python 1.5.2 and later will compile "out of the box" on BeOS), try this:
|
|||
NOTE: On R4/x86, the pause() function is broken; expect the signal
|
||||
module test to crash Python!
|
||||
|
||||
8) Install:
|
||||
7) Install:
|
||||
|
||||
make OPT=-DUSE_DL_EXPORT CCSHARED=-UUSE_DL_EXPORT MACHDEP=beos nstall
|
||||
make install
|
||||
|
||||
This will fail trying to copy libpython1.5.a; at that point in the
|
||||
install, everything you "normally" need is installed (all the Python
|
||||
bits), and the stuff you need for compiling C-based modules is half-
|
||||
installed. This will be fixed before the 1.5.2 release.
|
||||
8) Enjoy!
|
||||
|
||||
9) Enjoy!
|
||||
|
||||
- Chris Herborth (chrish@qnx.com)
|
||||
December 22, 1998
|
||||
- Chris Herborth (chrish@beoscentral.com)
|
||||
January 12, 1999
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
#ifndef BEOS_DL_EXPORT_H
|
||||
#define BEOS_DL_EXPORT_H
|
||||
|
||||
/* There are no declarations here, so no #ifdef __cplusplus...
|
||||
*
|
||||
* This is the nasty declaration decorations required by certain systems
|
||||
* (in our case, BeOS) for dynamic object loading.
|
||||
*
|
||||
* This trivial header is released under the same license as the rest of
|
||||
* Python:
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software and its
|
||||
* documentation for any purpose and without fee is hereby granted,
|
||||
* provided that the above copyright notice appear in all copies and that
|
||||
* both that copyright notice and this permission notice appear in
|
||||
* supporting documentation, and that the names of Stichting Mathematisch
|
||||
* Centrum or CWI or Corporation for National Research Initiatives or
|
||||
* CNRI not be used in advertising or publicity pertaining to
|
||||
* distribution of the software without specific, written prior
|
||||
* permission.
|
||||
*
|
||||
* While CWI is the initial source for this software, a modified version
|
||||
* is made available by the Corporation for National Research Initiatives
|
||||
* (CNRI) at the Internet address ftp://ftp.python.org.
|
||||
*
|
||||
* STICHTING MATHEMATISCH CENTRUM AND CNRI DISCLAIM ALL WARRANTIES WITH
|
||||
* REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH
|
||||
* CENTRUM OR CNRI BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
|
||||
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
||||
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* - Chris Herborth (chrish@beoscentral.com)
|
||||
* January 11, 1999
|
||||
*/
|
||||
|
||||
#ifndef DL_EXPORT
|
||||
# define DL_EXPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||
#endif
|
||||
#ifndef DL_IMPORT
|
||||
# ifdef USE_DL_EXPORT
|
||||
# define DL_IMPORT(RTYPE) __declspec(dllexport) RTYPE
|
||||
# else
|
||||
# define DL_IMPORT(RTYPE) __declspec(dllimport) RTYPE
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#endif
|
|
@ -382,8 +382,10 @@ libainstall: all
|
|||
else true; \
|
||||
fi; \
|
||||
done
|
||||
$(INSTALL_DATA) $(LIBRARY) $(LIBPL)/$(LIBRARY)
|
||||
$(RANLIB) $(LIBPL)/$(LIBRARY)
|
||||
@if [ "$(MACHDEP)" != "beos" ] ; then \
|
||||
$(INSTALL_DATA) $(LIBRARY) $(LIBPL)/$(LIBRARY) ; \
|
||||
$(RANLIB) $(LIBPL)/$(LIBRARY) ; \
|
||||
fi
|
||||
$(INSTALL_DATA) Modules/config.c $(LIBPL)/config.c
|
||||
$(INSTALL_DATA) Modules/python.o $(LIBPL)/python.o
|
||||
$(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(LIBPL)/config.c.in
|
||||
|
|
|
@ -453,3 +453,9 @@
|
|||
|
||||
/* Define if you have the m library (-lm). */
|
||||
#undef HAVE_LIBM
|
||||
|
||||
/* Define if you have special dynamic linkage requirements in declarations. */
|
||||
#undef DL_EXPORT_HEADER
|
||||
#ifdef DL_EXPORT_HEADER
|
||||
#include DL_EXPORT_HEADER
|
||||
#endif
|
||||
|
|
36
configure.in
36
configure.in
|
@ -107,8 +107,40 @@ AC_ARG_WITH(gcc, [--without-gcc never use gcc], [
|
|||
case $ac_sys_system in
|
||||
OSF1) CC=cc
|
||||
without_gcc=;;
|
||||
BeOS*) CC=cc
|
||||
without_gcc=;;
|
||||
BeOS*)
|
||||
# Dunno if it's a good idea to get this over with all at once, or
|
||||
# to handle it in with the other goodies.
|
||||
MACHDEP=beos
|
||||
|
||||
case $BE_HOST_CPU in
|
||||
ppc)
|
||||
CC="mwcc -I$PWD/BeOS"
|
||||
without_gcc=yes
|
||||
OPT="-DUSE_DL_EXPORT -O7 -opt schedule604"
|
||||
CCSHARED=-UUSE_DL_EXPORT
|
||||
LDFLAGS="$LDFLAGS -nodup"
|
||||
|
||||
AR="$PWD/BeOS/ar-fake"
|
||||
RANLIB=:
|
||||
|
||||
AC_DEFINE(DL_EXPORT_HEADER,"dl_export.h")
|
||||
;;
|
||||
x86)
|
||||
CC="gcc -I$PWD/BeOS"
|
||||
without_gcc=no
|
||||
OPT="-DUSE_DL_EXPORT -O3 -mpentiumpro"
|
||||
CCSHARED=-UUSE_DL_EXPORT
|
||||
|
||||
AR="$PWD/BeOS/ar-fake"
|
||||
RANLIB=:
|
||||
|
||||
AC_DEFINE(DL_EXPORT_HEADER,"dl_export.h")
|
||||
;;
|
||||
*)
|
||||
AC_ERROR(Your BeOS system isn't PowerPC or x86... neat, but this won't work...)
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*) without_gcc=no;;
|
||||
esac])
|
||||
AC_MSG_RESULT($without_gcc)
|
||||
|
|
Loading…
Reference in New Issue