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