1 2# This Makefile is for Mac OS 10.15 for 64 bit AFNI, with local linking. 3# for either gcc (v.10) from homebrew or the default gcc with 4# Xcode (Apple clang v.12 ) 5# The required libraries for use should come with Xcode, XQuartz 6# and homebrew 7# 8# use homebrew to install the following: 9# 10# brew install 11# libpng jpeg expat freetype fontconfig openmotif libomp 12# libxt gsl glib pkg-config, gcc (version 10 used here by default) 13# 14# 15 16 17# brew install gsl 18# put this symbolic link for needed library 19#ln -s /usr/local/Cellar/gsl/2.6/lib/libgsl.25.dylib /usr/local/lib/libgsl.dylib 20#ln -s /usr/local/Cellar/openmotif/2.3.8_1/lib/libXm.4.dylib /usr/local/lib/libXm.4.dylib 21# if XQuartz doesn't include libXm (as it used to), then use this 22#ln -s /usr/local/Cellar/openmotif/2.3.8_1/lib/libXm.a /usr/local/lib/libXm.a 23#ln -s /usr/local/Cellar/jpeg/9d/lib/libjpeg.a /usr/local/lib/libjpeg.a 24#ln -s /usr/local/Cellar/jpeg/9d/lib/libjpeg.a /usr/local/lib/libjpeg.9.a 25#ln -s /usr/local/Cellar/netpbm/10.86.18/include/netpbm/pgm.h /usr/local/include/pgm.h 26 27# I've removed libbz2.dylib from the installed dylib list because it doesn't 28# seem to be used below, but on 10.15 with brew install 29# there is /usr/lib/libbz2.1.0.dylib 30 31usr_ROOT = /usr/local 32 33USE_ZLIB = -DHAVE_ZLIB 34LZLIB = -lz 35USE_GIFTI = -DHAVE_GIFTI 36LGIFTI = -lexpat 37 38# ------------------------------ 39# python from C 40#IPYTHON = -I/Users/molfesepj/anaconda3/include/python3.8 -DSELENIUM_READY 41#LPYTHON = -L/Users/molfesepj/anaconda3/lib/python3.8/config 42#LDPYTHON = -lpython3.8 43 44# ---------------------------------------------------------------------- 45# X configuration 46# 47 48XROOT = /opt/X11 49XROOT_I = -I$(XROOT)/include 50XROOT_L = -L$(XROOT)/lib 51 52XLIBS = -lXm -ljpeg.9 -lXt 53 54# ---------------------------------------------------------------------- 55 56 57CCDEBS = -DAFNI_DEBUG -DIMSEQ_DEBUG -DDISPLAY_DEBUG -DTHD_DEBUG 58CEXTRA = -m64 -Wcomment -Wformat -DUSE_TRACING -DHAVE_XDBE \ 59 -DDONT_USE_MCW_MALLOC $(LESSTIF_DEFS) 60# choose gcc version below from homebrew directory in /usr/local/bin 61# or Apple clang from /usr/bin (or just first gcc in path) 62# set CC and CCMIN to appropriate directory 63#CC = /usr/local/bin/gcc-10 -O2 -DDARWIN $(CEXTRA) 64# MacOS default is clang 65CC = /usr/bin/gcc -O2 -DDARWIN $(CEXTRA) 66CCVOL = $(CC) 67CCFAST = $(CC) 68#CCMIN = /usr/local/bin/gcc-10 69CCMIN = /usr/bin/gcc 70CCD = $(CC) $(CCDEBS) 71CCOLD = $(CC) 72 73BREWI = /usr/local/opt/libomp/include/ 74BREWL = /usr/local/opt/libomp/lib/ 75OMPFLAG = -Xpreprocessor -fopenmp -lomp -I$(BREWI) -L$(BREWL) -DUSE_OMP 76 77SYSTEM_NAME = macos_10.15_local_gcc_clang 78INSTALLDIR = $(SYSTEM_NAME) 79 80EXTRA_INSTALL_FILES = /usr/local/lib/libXm.4.dylib \ 81 /usr/local/lib/libjpeg.9.dylib \ 82 /usr/local/lib/libgsl.dylib \ 83 /usr/local/lib/libglib-2.0.0.dylib \ 84 /usr/local/lib/libgslcblas.0.dylib \ 85 /usr/local/lib/libpng16.16.dylib \ 86 /usr/local/lib/libintl.8.dylib \ 87 /usr/lib/libiconv.2.dylib 88 89 90# these were the PJM's library files to copy to binary distribution directory 91# The list above includes different versions to copy 92# 93# /usr/local/lib/libfreetype.6.dylib \ 94# /usr/local/lib/gcc/8/lib/libgomp.1.dylib \ 95# /usr/local/lib/gcc/8/lib/libgcc_s.1.dylib \ 96# /usr/local/lib/libgsl.0.dylib \ 97# /usr/local/lib/libiconv.2.dylib \ 98# /usr/local/lib/freetype219/lib/libfreetype.6.dylib \ 99# /Users/molfesepj/anaconda3/lib/python3.8/config-3.8-darwin/libpython3.8.a \ 100# /usr/local/lib/libbz2.1.dylib \ 101# 102 103EXTRA_INSTALL_COMMANDS = ( cd $(INSTALLDIR) ; \ 104 chmod u+w *.dylib ; \ 105 if [ -d $(HOME)/EXTRAPROGS ]; then $(CP) $(HOME)/EXTRAPROGS/* . ; fi ; ) 106 107IFLAGS = -I. $(XROOT_I) -I/usr/local/include -I/usr/include 108 109LFLAGS = -L. -L/usr/local/lib $(XROOT_L) -L/usr/lib -L/usr/lib -Wl,-x -Wl,-multiply_defined -Wl,warning -Wl,-bind_at_load $(LPYTHON) 110 111CCSVD = $(CCMIN) -m64 -O0 112 113PLUGIN_SUFFIX = so 114PLUGIN_LFLAGS = -m64 -bundle -flat_namespace -undefined suppress -Wl,-x 115PLUGIN_CC = $(CC) -dynamic -fno-common 116PLFLAGS = -m64 -dynamic $(LFLAGS) 117 118# include the line below if you want to include vector arith in 3dDeconvolve_f 119# SPECIAL = -framework Accelerate -DUSE_ACCELERATE 120 121AR = /usr/bin/ar 122RANLIB = /usr/bin/ranlib 123TAR = /usr/bin/tar 124MKDIR = /bin/mkdir 125GZIP = /usr/bin/gzip 126LD = $(CCMIN) 127 128RM = /bin/rm -f 129MV = /bin/mv -f 130CP = /bin/cp -f 131 132LINT = /usr/bin/lint -a -b -u -v -x $(IFLAGS) $(CCDEFS) 133 134LIBDIR = $(INSTALLDIR) 135SHOWOFF = -DSHOWOFF=$(SYSTEM_NAME) 136 137INSTALL_PREREQ = suma_gts 138# uncomment if the Gnu Scientific Library is installed (libgsl, libgslcblas) 139# GSLPROGS = balloon 140EXPROGS = $(GSLPROGS) 141 142# for dynamic linking 143 144LLIBS = -lmri -lf2c $(XLIBS) -lXft -lfontconfig \ 145 -lpng16 -liconv -lXmu -lXp -lXpm -lXext -lX11 \ 146 $(LZLIB) $(LGIFTI) $(LDPYTHON) -lm -lc 147 148# this is called a hack - command to convert dyname -lXm to static for R_io.so 149#RLIB_CONVERT = | sed 's/-lXm/\/usr\/lib\/libXm.a/' 150RLIB_CONVERT = | sed 's/-lXm/\/usr\/local\/lib\/libXm.a/' 151 152# vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv 153# For suma 154# ZSS Aug. 08. LibGLw.a now made locally and called libGLws.a 155 156SUMA_GL_DYLIB_CMD = -lGL 157 158GLw_IPATH = 159GLw_LIB = -lGLw 160# uncomment next two lines if you want to use libGLws.a, SUMA's copy of GLw 161GLw_IPATH = -IGLw_local 162GLw_LIB = libGLws.a 163 164 165SUMA_GLIB_VER = -2.0 166SUMA_INCLUDE_PATH = $(GLw_IPATH) -I.. -I../niml $(IFLAGS) -Igts/src -I${usr_ROOT}/lib/glib-2.0/include -I${usr_ROOT}/include/glib-2.0 167#SUMA_LINK_PATH = $(XROOT_L) $(LFLAGS) -L.. 168SUMA_LINK_PATH = $(XROOT_L) $(LFLAGS) -L.. 169 170SUMA_LINK_LIB = $(XLIBS) $(GLw_LIB) $(LLIBS) -lGLU -lGL -lmri -lf2c -lmx -L${usr_ROOT}/lib/ -lglib-2.0 $(SUMA_GL_DYLIB_CMD) 171SUMA_MAKEFILE_NAME = SUMA_Makefile 172SUMA_BIN_ARCHIVE = SUMA_MacOSX.tar 173SUMA_MDEFS = -DSUMA_GL_NO_CHECK_FRAME_BUFFER 174# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 175 176 177############################################################### 178 179MAKE = make 180include Makefile.INCLUDE 181