]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - build/Makefile.macosx
Compilation on Windows/Cygwin
[u/mrichter/AliRoot.git] / build / Makefile.macosx
index 671a1af2c3ede442ee7c7e6b1f265b38302b2955..d2b59f36b30a4f598f01b70e47963497f96034c2 100644 (file)
@@ -1,48 +1,82 @@
 # Makefile for AliRoot for MacOS X with gcc
 
-PLATFORM      = macosx
+XARGS = xargs
+
+# OS version
+MACOSX_MAJOR := $(strip $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 1))
+MACOSX_MINOR := $(strip $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2))
+
+# fink directories
+FINK_ROOT := $(shell which fink | sed -e 's?/bin/fink??')
+ifeq (,$(FINK_ROOT))
+# No fink, build will probably fail, but we try a guess
+FINK_ROOT=/usr/local
+endif
 
 # The compilers
 CXX           = g++ 
-F77          = g77
 CC           = gcc
 
+ifeq (g95,$(findstring g95,$(ROOTBUILD)))
+F77          = g95
+else
+F77          = gfortran
+endif
+
 # Global optimisation
 OPT           = -O -g
+NOOPT         = -O0 -g
 
-CXXOPTS       = $(OPT) -Wall -W -pipe -fsigned-char -fno-common -fweak-coalesced -fmessage-length=0
-COPT         = $(OPT) -Wall -W -fno-common -fweak-coalesced
+CXXOPT        = $(OPT) 
+CXXNOOPT      = $(NOOPT) 
+COPT         = $(OPT)
 FOPT         = $(OPT) -fno-second-underscore 
-CXXFLAGS      = $(CXXOPTS) -I/sw/include
-CFLAGS       = -Wall -pipe -I/sw/include
-
-# rootcint flags
-CINTFLAGS     = 
+ifeq (g95,$(findstring g95,$(ROOTBUILD)))
+FOPT        += -fbounds-check
+endif
 
 # CERNLIB defines
-
-CLIBDEFS      = -DCERNLIB_LINUX -DCERNLIB_BLDLIB -DCERNLIB_CZ
+CLIBDEFS      = -DCERNLIB_LINUX -DCERNLIB_BLDLIB -DCERNLIB_CZ -DCERNLIB_PPC
 CLIBCXXOPTS   =
 CLIBCOPT      =
-CLIBFOPT      =
+CLIBFOPT      = $(CLIBDEFS)
 
-# Common Fortran compilation flags
-FFLAGS = $(CLIBFOPT)  $(CLIBDEFS) $(FOPT)
-               
-LD            = export MACOSX_DEPLOYMENT_TARGET=10.3 ; \
+CXXSTF        =  -pipe -Wall -W -Wno-long-double -pipe -fbounds-check -fsigned-char -fno-common -fmessage-length=0 -Woverloaded-virtual -Weffc++ -Wconversion -fno-default-inline -fno-inline -I/usr/X11R6/include -I$(FINK_ROOT)/include
+
+# Compiler flags
+CXXFLAGS      = $(CXXOPT) $(CXXSTF)
+
+CXXFLAGSNO    = $(CXXNOOPT) $(CXXSTF) 
+
+CFLAGS       = $(COPT) -Wall -W -fno-common -pipe -I$(FINK_ROOT)/include
+
+FFLAGS        = $(CLIBFOPT) $(FOPT)
+ifeq (g95,$(findstring g95,$(ROOTBUILD)))
+FFLAGS        += -ftrace=full
+FFLAGS        +=-DFORTRAN_G95
+else
+FFLAGS        +=-DFORTRAN_GFORTRAN
+endif
+
+# rmkdepend flags for building dependencies of FORTRAN files
+DEPENDFFLAGS  = $(FFLAGS)
+
+# rootcint flags
+CINTFLAGS     = 
+
+LD            = export MACOSX_DEPLOYMENT_TARGET=$(MACOSX_MAJOR).$(MACOSX_MINOR) ; \
                unset LD_PREBIND ; \
                g++
-LDFLAGS       = $(OPT) 
+LDFLAGS       = $(OPT) $(DICTLOAD)
 
 SHLD        := $(LD)
-SOFLAGS      := -bundle -flat_namespace -undefined dynamic_lookup
-#SHLIB        := -lg2c
-SHLIB        :=
+SOFLAGS      := -bundle -undefined dynamic_lookup
+SHLIB        := 
 SOEXT       := so
 
 DYLD        := $(LD)
-DYFLAGS       = -dynamiclib -flat_namespace -undefined dynamic_lookup -single_module
-DYLIB        :=
+DYFLAGS       = -dynamiclib -undefined dynamic_lookup -single_module
+DYLIB        := 
 DYEXT        := dylib
 
 ALLD         = ar
@@ -50,19 +84,17 @@ ALFLAGS       = cr
 ALLIB         = 
 AEXT         = a
 
-
-# rmkdepend flags for building dependencies of FORTRAN files
-DEPENDFFLAGS = $(FFLAGS)
-
 DEPENDCXXFLAGS = $(CXXFLAGS) -I/usr/include/sys
 
-GLIBS         = -L/usr/X11R6/lib -lX11
-
-#System libraries
-SYSLIBS = -ldl
-
-EXEFLAGS+= -Xlinker -bind_at_load -Xlinker -m #-lg2c
-
+SYSLIBS      := -L/usr/X11R6/lib -lX11
 
+EXEFLAGS     := -bind_at_load 
 
+#System libraries
 
+ifeq (g95,$(findstring g95,$(ROOTBUILD)))
+SYSLIBS += -L$(shell g95 --print-search-dirs | sed -n -e 's/install: //p') -lf95
+else
+SYSLIBS += -ldl $(shell $(F77) -print-file-name=libgfortran.dylib)
+SYSLIBS += $(shell $(F77) -print-file-name=libgfortranbegin.a)
+endif