>From 63e008b4766f0057fce8998e213f26c13ffc3c19 Mon Sep 17 00:00:00 2001 From: Philip Lorenz Date: Wed, 4 May 2011 12:15:08 +0200 Subject: [PATCH 5/6] Pass ARCH to monoclr Makefile and change monoclr Makefile to support Mono >= 2.8. Additionally, -fPIC is added for x86_64 compiles and the Glib 2 CFLAGS and libraries are retrieved via pkg-config. --- Makefile | 2 +- src/monoclr/Makefile | 27 ++++++++++++++++++++------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 212e54a..62001e6 100644 --- a/Makefile +++ b/Makefile @@ -179,7 +179,7 @@ asm: Python.Runtime.il monoclr: - make -C $(BASEDIR)/src/monoclr PYTHON=$(PYTHON) + make -C $(BASEDIR)/src/monoclr PYTHON=$(PYTHON) ARCH=$(ARCH) run: python.exe $(RUNNER) python.exe diff --git a/src/monoclr/Makefile b/src/monoclr/Makefile index 11b8c90..9b7f5c0 100755 --- a/src/monoclr/Makefile +++ b/src/monoclr/Makefile @@ -1,13 +1,13 @@ # Author: Christian Heimes -PYTHON = python +PYTHON ?= python BASENAME = $(shell $(PYTHON) -c "import sys; print 'python%i.%i' % sys.version_info[:2]") GCC = gcc ifeq ($(origin WINDIR), undefined) - DLL_OR_SO = "-shared" + DLL_OR_SO = -shared else - DLL_OR_SO = "-dynamiclib" + DLL_OR_SO = -dynamiclib endif @@ -16,11 +16,24 @@ PY_LIBS = $(shell $(PYTHON) -c "from distutils.sysconfig import get_config_vars; PY_CFLAGS = -I$(shell $(PYTHON) -c "from distutils.sysconfig import get_config_vars; \ print get_config_vars('CFLAGS')[0] + ' -I' + get_config_vars('CONFINCLUDEPY')[0]") -MONO_LIBS = $(shell pkg-config --libs mono) # Was --libs mono -MONO_CFLAGS = $(shell pkg-config --cflags mono) # Was --cflags mono +ARCH ?= $(shell getconf LONG_BIT) -LIBS = $(MONO_LIBS) $(PY_LIBS) -CFLAGS = $(MONO_CFLAGS) $(PY_CFLAGS) +CFLAGS_32 = +CFLAGS_64 = -fPIC + +MONO_LIBS = $(shell pkg-config --libs mono-2) +MONO_CFLAGS = $(shell pkg-config --cflags mono-2) +# Check if Mono >= 2.8 was found - if not fallback to old version +ifeq ($(strip $(MONO_LIBS)),) + MONO_LIBS = $(shell pkg-config --libs mono) + MONO_CFLAGS = $(shell pkg-config --cflags mono) +endif + +GLIB_LIBS = $(shell pkg-config --libs glib-2.0) +GLIB_CFLAGS = $(shell pkg-config --cflags glib-2.0) + +LIBS = $(MONO_LIBS) $(PY_LIBS) $(GLIB_LIBS) +CFLAGS = $(MONO_CFLAGS) $(PY_CFLAGS) $(GLIB_CFLAGS) $(CFLAGS_$(ARCH)) all: clr$(BASENAME) $(BASENAME) clr.so -- 1.7.5