# build info
PYTHON_VER = 2.7
CFLAGS_COMMON += -I$(SOURCE_DIR)/Include
CFLAGS_CONFIG += -DVERSION=\"$(PYTHON_VER)\"
CFLAGS_CONFIG += -DPREFIX=\"$(PREFIX)\"
CFLAGS_CONFIG += -DEXEC_PREFIX=\"$(EXEC_PREFIX)\"
CFLAGS_CONFIG += -DVPATH=\"$(SOURCE_DIR)\"
CFLAGS_CONFIG += -DPYTHONPATH=\"$(PYTHON_PATH)\"
# dynamically loaded extension module
pyext/%$(OS_LIB_SUFFIX): LDFLAGS_IMPLIB =
pyext/%$(OS_LIB_SUFFIX): LDFLAGS_SONAME =
pyext/%$(OS_LIB_SUFFIX): LDFLAGS_DSOEXT = -Wl,-soname -Wl,$(subst pyext/,,$@)
pyext/%$(OS_LIB_SUFFIX): LDFLAGS_DYNEXT = $(LDFLAGS_DSOEXT) $(LDFLAGS_PYEXT)
pyext/%$(OS_LIB_SUFFIX):
$(CC) -shared -o $@ $^ $(LDFLAGS_SHARED) $(LDFLAGS_DYNEXT) -l$(PACKAGE)
# statically linked extension
pyext/%$(OS_ARCHIVE_EXT):
rm -f $@
$(AR) rcs $@ $^
# compile rules for python's extension modules
Modules/cjkcodecs/%.lo: $(SOURCE_DIR)/Modules/cjkcodecs/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_SHARED)
Modules/cjkcodecs/%.o: $(SOURCE_DIR)/Modules/cjkcodecs/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_STATIC)
Modules/expat/%.lo: $(SOURCE_DIR)/Modules/expat/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_SHARED)
Modules/expat/%.o: $(SOURCE_DIR)/Modules/expat/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_STATIC)
Modules/zlib/%.lo: $(SOURCE_DIR)/Modules/zlib/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_SHARED)
Modules/zlib/%.o: $(SOURCE_DIR)/Modules/zlib/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_STATIC)
Modules/_ctypes/%.lo: $(SOURCE_DIR)/Modules/_ctypes/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_SHARED)
Modules/_ctypes/%.o: $(SOURCE_DIR)/Modules/_ctypes/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_STATIC)
Modules/_io/%.lo: $(SOURCE_DIR)/Modules/_io/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_SHARED)
Modules/_io/%.o: $(SOURCE_DIR)/Modules/_io/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_STATIC)
Modules/_multiprocessing/%.lo: $(SOURCE_DIR)/Modules/_multiprocessing/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_SHARED)
Modules/_multiprocessing/%.o: $(SOURCE_DIR)/Modules/_multiprocessing/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_STATIC)
Modules/_sqlite/%.lo: $(SOURCE_DIR)/Modules/_sqlite/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_SHARED)
Modules/_sqlite/%.o: $(SOURCE_DIR)/Modules/_sqlite/%.c $(ALL_HEADERS) host.tag tree.tag config.tag
$(CC) -c -o $@ $< $(CFLAGS_STATIC)
# build rules for python's extension modules
include $(PROJECT_DIR)/project/pyexts.mk
# shared extension modules: desired subset
ifeq ($(ALL_STATIC),yes)
all: $(PYEXT_SUBSET_STATIC)
else
all: $(PYEXT_SUBSET_SHARED)
endif