summaryrefslogtreecommitdiff
path: root/src/Makefile.osx
diff options
context:
space:
mode:
authorfcolin2010-11-22 16:36:39 +0000
committerfcolin2010-11-22 16:36:39 +0000
commit72f10760767debf6f8f33c128dc0a2a4acca905a (patch)
tree71b2c40a3a3389c93a8575b0bdfa4ebebeec1f61 /src/Makefile.osx
parente5d1c6fad7130dac302e314b66ad32150eaba91b (diff)
downloadivy-c-72f10760767debf6f8f33c128dc0a2a4acca905a.zip
ivy-c-72f10760767debf6f8f33c128dc0a2a4acca905a.tar.gz
ivy-c-72f10760767debf6f8f33c128dc0a2a4acca905a.tar.bz2
ivy-c-72f10760767debf6f8f33c128dc0a2a4acca905a.tar.xz
Modification from eric@eparsonage.com
Diffstat (limited to 'src/Makefile.osx')
-rw-r--r--src/Makefile.osx274
1 files changed, 146 insertions, 128 deletions
diff --git a/src/Makefile.osx b/src/Makefile.osx
index 4649b0c..eeec664 100644
--- a/src/Makefile.osx
+++ b/src/Makefile.osx
@@ -1,128 +1,146 @@
-PERHAPS64 := $(shell uname -m | perl -ne "print /64/ ? '64' : '';")
-LIB = /lib$(PERHAPS64)
-ifeq ($(PERHAPS64), "64")
- FPIC=
-else
- FPIC=-fPIC
-endif
-
-ifndef PREFIX
- PREFIX=/opt/rosx
-endif
-
-PCREINC = `pcre-config --cflags`
-PCRELIB = `pcre-config --libs`
-CASESENSITIVE = "yes"
-ifeq ($(CASESENSITIVE), "no")
- PCRE_OPT=PCRE_CASELESS
- REGCOMP_OPT=REG_ICASE
-else
- PCRE_OPT=0
- REGCOMP_OPT=REG_EXTENDED
-endif
-REGEXP= -DUSE_PCRE_REGEX -DPCRE_OPT=$(PCRE_OPT)
-
-OBJ = ivyloop.o timer.o ivysocket.o ivy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o param.o
-OMPOBJ = ivyloop.o timer.o ivysocket_omp.o ivy_omp.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o param.o
-
-TOOLS_DIR = ../tools
-
-# you should first install gcc version >= 4.3
-# gcc (g++) 4.3 is the first gcc version which support openmp under macosx
-# using macport greatly simplify gcc install : port install gcc44
-OMPCC = gcc-mp-4.4
-OMPCPP = g++-mp-4.4
-OMPLIBTOOL =ar q
-OMPCFLAGS = -g -Wall $(FPIC) -fopenmp -DOPENMP=1
-OMPLIB = -lgomp -lpthread
-
-
-LIBTOOL=ar q # linux and solaris
-CFLAGS = -g -Wall $(FPIC)
-
-CC=gcc
-CPP=g++
-#CC = $(OMPCC)
-#CPP = $(OMPCPP)
-LIBTOOL = $(OMPLIBTOOL)
-CFLAGS = -g -Wall -Wshadow $(FPIC)
-
-# ------------------------------------------------------------------------------------------
-
-.c.o:
- $(CC) $(CFLAGS) -c $*.c
-
-.cpp.o:
- $(CPP) $(CFLAGS) -c $*.cpp
-
-
-all: static-libs tools # shared-libs
-libomp: libivy_omp.a
-
-omp: libomp
- @(cd $(TOOLS_DIR) && $(MAKE) -f Makefile.osx omp)
-
-static-libs: libivy.a
-
-shared-libs: libivy.dylib
-
-ivybind.o: ivybind.c
- $(CC) -c $(CFLAGS) $(REGEXP) $(PCREINC) ivybind.c
-
-ivy_omp.o: ivy.c
- $(OMPCC) -c $(OMPCFLAGS) -o ivy_omp.o ivy.c
-
-ivysocket_omp.o: ivysocket.c
- $(OMPCC) -c $(OMPCFLAGS) -o ivysocket_omp.o ivysocket.c
-
-
-libivy.a: $(OBJ)
- rm -f $@
- $(LIBTOOL) $@ $(OBJ)
-
-libivy_omp.a: $(OMPOBJ)
- rm -f $@
- $(LIBTOOL) $@ $(OMPOBJ)
-
-libivy.dylib: $(OBJ)
- $(CC) -dynamiclib -o $@ $(OBJ) $(PCRELIB)
-
-libivy_omp.dylib: $(OMPOBJ)
- $(OMPCC) -dynamiclib -o $@ $(OMPOBJ) $(PCRELIB) $(OMPLIB)
-
-# ------------------------------------------------------------------------------------------
-
-installlibs: static-libs shared-libs
- test -d $(DESTDIR)$(PREFIX)$(LIB) || mkdir -p $(DESTDIR)$(PREFIX)$(LIB)
- install -m644 libivy.a $(DESTDIR)$(PREFIX)$(LIB)
- install -m644 libivy.dylib $(DESTDIR)$(PREFIX)$(LIB)
- @(cd $(TOOLS_DIR) && $(MAKE) -f Makefile.osx install)
-
-includes:
- test -d $(DESTDIR)$(PREFIX)/include/Ivy || mkdir -p $(DESTDIR)$(PREFIX)/include/Ivy
- install -m644 ivy.h $(DESTDIR)$(PREFIX)/include/Ivy/
- install -m644 ivybind.h $(DESTDIR)$(PREFIX)/include/Ivy/
- install -m644 ivybuffer.h $(DESTDIR)$(PREFIX)/include/Ivy/
- install -m644 ivychannel.h $(DESTDIR)$(PREFIX)/include/Ivy/
- install -m644 ivydebug.h $(DESTDIR)$(PREFIX)/include/Ivy/
- install -m644 ivyloop.h $(DESTDIR)$(PREFIX)/include/Ivy/
- install -m644 ivysocket.h $(DESTDIR)$(PREFIX)/include/Ivy/
- install -m644 list.h $(DESTDIR)$(PREFIX)/include/Ivy/
- install -m644 timer.h $(DESTDIR)$(PREFIX)/include/Ivy/
- install -m644 version.h $(DESTDIR)$(PREFIX)/include/Ivy/
-
-installbins: commands
- test -d $(DESTDIR)$(PREFIX)/bin || mkdir -p $(DESTDIR)$(PREFIX)/bin
- install -m755 ivyprobe $(DESTDIR)$(PREFIX)/bin
- install -m755 ivyperf $(DESTDIR)$(PREFIX)/bin
-
-tools: static-libs
- @(cd $(TOOLS_DIR) && $(MAKE) -f Makefile.osx)
-
-install: installlibs installbins includes
-
-# ------------------------------------------------------------------------------------------
-
-clean:
- -rm -f *.o *.a *.dylib *.dylib.* *~
- @(cd $(TOOLS_DIR) && $(MAKE) -f Makefile.osx clean)
+LBITS := $(shell getconf LONG_BIT)
+ifeq ($(LBITS),64)
+ FPIC = -fPIC
+else
+ FPIC =
+endif
+
+ifndef PREFIX
+ PREFIX=/opt/local
+endif
+
+PCREINC = `pcre-config --cflags`
+PCRELIB = `pcre-config --libs`
+CASESENSITIVE = "yes"
+ifeq ($(CASESENSITIVE), "no")
+ PCRE_OPT=PCRE_CASELESS
+ REGCOMP_OPT=REG_ICASE
+else
+ PCRE_OPT=0
+ REGCOMP_OPT=REG_EXTENDED
+endif
+REGEXP= -DUSE_PCRE_REGEX -DPCRE_OPT=$(PCRE_OPT)
+
+OBJ = ivyloop.o timer.o ivysocket.o ivy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o param.o
+OMPOBJ = ivyloop.o timer.o ivysocket_omp.o ivy_omp.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o param.o
+GLIBOBJ = ivyglibloop.o ivysocket.o ivy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o param.o
+
+TOOLS_DIR = ../tools
+
+# you should first install gcc version >= 4.3
+# gcc (g++) 4.3 is the first gcc version which support openmp under macosx
+# using macport greatly simplify gcc install : port install gcc44
+OMPCC = gcc-mp-4.4
+OMPCPP = g++-mp-4.4
+OMPLIBTOOL =ar q
+OMPCFLAGS = -g -Wall $(FPIC) -fopenmp -DOPENMP=1
+OMPLIB = -lgomp -lpthread
+
+GLIBINC = `pkg-config --cflags glib-2.0`
+GLIBLIB = `pkg-config --libs glib-2.0`
+
+
+LIBTOOL=ar q # linux and solaris
+CFLAGS = -g -Wall $(FPIC)
+
+CC=gcc
+CPP=g++
+#CC = $(OMPCC)
+#CPP = $(OMPCPP)
+LIBTOOL = $(OMPLIBTOOL)
+CFLAGS = -g -Wall -Wshadow $(FPIC)
+
+# ------------------------------------------------------------------------------------------
+
+.c.o:
+ $(CC) $(CFLAGS) -c $*.c
+
+.cpp.o:
+ $(CPP) $(CFLAGS) -c $*.cpp
+
+
+all: static-libs shared-libs tools
+libomp: libivy_omp.a
+
+omp: libomp
+ @(cd $(TOOLS_DIR) && $(MAKE) -f Makefile.osx omp)
+
+static-libs: libivy.a libglibivy.a
+
+shared-libs: libivy.dylib libglibivy.dylib
+
+ivybind.o: ivybind.c
+ $(CC) -c $(CFLAGS) $(REGEXP) $(PCREINC) ivybind.c
+
+ivy_omp.o: ivy.c
+ $(OMPCC) -c $(OMPCFLAGS) -o ivy_omp.o ivy.c
+
+ivysocket_omp.o: ivysocket.c
+ $(OMPCC) -c $(OMPCFLAGS) -o ivysocket_omp.o ivysocket.c
+
+ivyglibloop.o: ivyglibloop.c ivyglibloop.h
+ $(CC) -c $(CFLAGS) $(GLIBINC) ivyglibloop.c
+
+libivy.a: $(OBJ)
+ rm -f $@
+ $(LIBTOOL) $@ $(OBJ)
+
+libivy_omp.a: $(OMPOBJ)
+ rm -f $@
+ $(LIBTOOL) $@ $(OMPOBJ)
+
+libivy.dylib: $(OBJ)
+ #$(CC) $(CFLAGS) -dynamiclib -install_name $(DESTDIR)$(PREFIX)/lib/libivy.dylib -o $@ $(OBJ) $(PCRELIB)
+ $(CC) $(CFLAGS) -dynamiclib -o $@ $(OBJ) $(PCRELIB)
+
+libivy_omp.dylib: $(OMPOBJ)
+ #$(OMPCC) -dynamiclib -install_name $(DESTDIR)$(PREFIX)$(LIB)/lib/libivy_omp.dylib -o $@ $(OMPOBJ) $(PCRELIB) $(OMPLIB)
+ $(OMPCC) -dynamiclib -o $@ $(OMPOBJ) $(PCRELIB) $(OMPLIB)
+
+libglibivy.a: $(GLIBOBJ)
+ rm -f $@
+ $(LIBTOOL) $@ $(GLIBOBJ)
+
+libglibivy.dylib: $(GLIBOBJ)
+ #$(CC) $(CFLAGS) -dynamiclib -install_name $(DESTDIR)$(PREFIX)/lib/libglibivy.dylib -o $@ $(GLIBOBJ) $(PCRELIB) $(GLIBLIB)
+ $(CC) $(CFLAGS) -dynamiclib -o $@ $(GLIBOBJ) $(PCRELIB) $(GLIBLIB)
+
+
+
+# ------------------------------------------------------------------------------------------
+
+installlibs: static-libs shared-libs
+ test -d $(DESTDIR)$(PREFIX)$(LIB) || mkdir -p $(DESTDIR)$(PREFIX)$(LIB)
+ install -m644 libivy.a $(DESTDIR)$(PREFIX)/lib/
+ install -m644 libivy.dylib $(DESTDIR)$(PREFIX)/lib/
+ install -m644 libglibivy.a $(DESTDIR)$(PREFIX)/lib/
+ install -m644 libglibivy.dylib $(DESTDIR)$(PREFIX)/lib/
+
+includes:
+ test -d $(DESTDIR)$(PREFIX)/include/Ivy || mkdir -p $(DESTDIR)$(PREFIX)/include/Ivy
+ install -m644 ivy.h $(DESTDIR)$(PREFIX)/include/Ivy/
+ install -m644 ivybind.h $(DESTDIR)$(PREFIX)/include/Ivy/
+ install -m644 ivybuffer.h $(DESTDIR)$(PREFIX)/include/Ivy/
+ install -m644 ivychannel.h $(DESTDIR)$(PREFIX)/include/Ivy/
+ install -m644 ivydebug.h $(DESTDIR)$(PREFIX)/include/Ivy/
+ install -m644 ivyloop.h $(DESTDIR)$(PREFIX)/include/Ivy/
+ install -m644 ivysocket.h $(DESTDIR)$(PREFIX)/include/Ivy/
+ install -m644 list.h $(DESTDIR)$(PREFIX)/include/Ivy/
+ install -m644 timer.h $(DESTDIR)$(PREFIX)/include/Ivy/
+ install -m644 version.h $(DESTDIR)$(PREFIX)/include/Ivy/
+
+installbins: tools
+ test -d $(DESTDIR)$(PREFIX)/bin || mkdir -p $(DESTDIR)$(PREFIX)/bin
+ install -m755 $(TOOLS_DIR)/ivyprobe $(DESTDIR)$(PREFIX)/bin
+ install -m755 $(TOOLS_DIR)/ivyperf $(DESTDIR)$(PREFIX)/bin
+
+tools: static-libs
+ @(cd $(TOOLS_DIR) && $(MAKE) -f Makefile.osx)
+
+install: installlibs installbins includes
+
+# ------------------------------------------------------------------------------------------
+
+clean:
+ -rm -f *.o *.a *.dylib *.dylib.* *~
+ @(cd $(TOOLS_DIR) && $(MAKE) -f Makefile.osx clean)