# This file is transmogrified into Setup.config by config.status.

# The purpose of this file is to conditionally enable certain modules
# based on configure-time options.

# init system calls(posix/nt/...) for INITFUNC (used by makesetup)
posix posixmodule.c

# Threading
thread threadmodule.c

# The signal module
signal signalmodule.c

# On win32 host(mingw build in MSYS environment) show that site.py
# fail to load if some modules are not build-in:
#_functools _functoolsmodule.c	# Tools for working with functions and callable objects
#operator operator.c	# operator.add() and similar goodies
#_locale _localemodule.c	# -lintl
#_winreg ../PC/_winreg.c
#time timemodule.c
#msvcrt ../PC/msvcrtmodule.c


# The rest of the modules previously listed in this file are built
# by the setup.py script in Python 2.1 and later.
