Blame view

Giac_maj/giac-1.4.9/src/Makefile.jni 4.33 KB
6663b6c9   adorian   projet complet av...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
  # This Makefile script should compile giac on Mac OS X 10.6 or 10.8.
  # @author Bernard Parisse <bernard.parisse@ujf-grenoble.fr>
  # @author Zoltan Kovacs <zoltan@geogebra.org>
  
  GIAC=unstable
  GIAC_VER=1.1.0
  GIAC_URL=http://www-fourier.ujf-grenoble.fr/~parisse/giac/
  PREFIX=/usr/local
  
  GIAC_TGZ=giac_$(GIAC).tgz
  GIAC_DIR=giac-$(GIAC_VER)
  
  LIBDIR=$(PREFIX)/lib
  
  JNILIB=$(GIAC_DIR)/src/libjavagiac.jnilib
  
  GMP_VER=5.1.2
  GMP_URL=ftp://ftp.gmplib.org/pub/gmp/gmp-$(GMP_VER).tar.bz2
  GMP=$(LIBDIR)/libgmp.dylib
  
  GSL_VER=1.16
  GSL_URL=http://tweedo.com/mirror/gnu/gsl/gsl-$(GSL_VER).tar.gz
  GSL=$(LIBDIR)/libgsl.dylib
  
  MPFR_VER=3.1.2
  MPFR_URL=http://www.mpfr.org/mpfr-current/mpfr-$(MPFR_VER).tar.bz2
  MPFR=$(LIBDIR)/libmpfr.dylib
  
  GETTEXT_VER=0.18.3
  GETTEXT_URL=http://ftp.gnu.org/pub/gnu/gettext/gettext-$(GETTEXT_VER).tar.gz
  GETTEXT=$(LIBDIR)/libintl.dylib
  
  #SDK=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
  SDK=/Developer/SDKs/MacOSX10.6.sdk
  
  all: prereq $(JNILIB)
  
  prereq: xcode-check $(GMP) $(GSL) $(MPFR) $(GETTEXT)
  
  xcode-check:
  	which xcodebuild
  	xcodebuild -version
  
  $(GMP): gmp-$(GMP_VER)
  	cd gmp-$(GMP_VER) && \
  	 ./configure --with-pic && \
  	 make && \
  	 sudo make install
  
  $(GSL): gsl-$(GSL_VER)
  	cd gsl-$(GSL_VER) && \
  	 ./configure && \
  	 make && \
  	 sudo make install
  
  $(MPFR): mpfr-$(MPFR_VER)
  	cd mpfr-$(MPFR_VER) && \
  	 ./configure && \
  	 make && \
  	 sudo make install
  
  $(GETTEXT): gettext-$(GETTEXT_VER)
  	cd gettext-$(GETTEXT_VER) && \
  	 ./configure && \
  	 make && \
  	 sudo make install
  
  gmp-$(GMP_VER):
  	curl -o gmp-$(GMP_VER).tar.bz2 $(GMP_URL)
  	tar xjf gmp-$(GMP_VER).tar.bz2
  
  gsl-$(GSL_VER):
  	curl -o gsl-$(GSL_VER).tar.gz $(GSL_URL)
  	tar xzf gsl-$(GSL_VER).tar.gz
  
  mpfr-$(MPFR_VER):
  	curl -o mpfr-$(MPFR_VER).tar.bz2 $(MPFR_URL)
  	tar xjf mpfr-$(MPFR_VER).tar.bz2
  
  gettext-$(GETTEXT_VER):
  	curl -o gettext-$(GETTEXT_VER).tar.gz $(GETTEXT_URL)
  	tar xzf gettext-$(GETTEXT_VER).tar.gz
  
  # Download and compile giac
  $(GIAC_TGZ):
  	curl -o $(GIAC_TGZ) $(GIAC_URL)/$(GIAC_TGZ)
  $(GIAC_DIR): $(GIAC_TGZ)
  	tar xzf $(GIAC_TGZ)
  untar: $(GIAC_DIR)
  
  $(GIAC_DIR)/Makefile:
  	cd $(GIAC_DIR) && \
  	 ./configure --prefix=/Applications/usr \
           CFLAGS="-m64 -O2 -I$(PREFIX)/include -g -isysroot $(SDK) -DGIAC_GENERIC_CONSTANTS -DSMARTPTR64 -DIN_GIAC" \
           CXXFLAGS="-m64 -O2 -I$(PREFIX)/include -g -isysroot $(SDK) -DGIAC_GENERIC_CONSTANTS -DSMARTPTR64 -DIN_GIAC" \
           CPPFLAGS="-m64 -O2 " \
           LIBS="-framework AGL -framework ApplicationServices -isysroot $(SDK) -lmpfr -lpthread -lz -lgsl -lgslcblas -lm -lgmp" \
           LDFLAGS="-L$(LIBDIR)" \
           --no-recursion
  
  $(GIAC_DIR)/src/libgiac.la: $(GIAC_DIR)/Makefile $(GIAC_DIR)/src
  	cd $(GIAC_DIR)/src && \
  	 make libgiac.la
  
  $(GIAC_DIR)/src/giac_wrap.cxx: $(GIAC_DIR) ../giac_wrap.cxx
  	cp ../giac_wrap.cxx $(GIAC_DIR)/src
  
  $(GIAC_DIR)/src/giac_wrap.o: $(GIAC_DIR)/src/giac_wrap.cxx $(GIAC_DIR)/src/libgiac.la
  	cd $(GIAC_DIR)/src/; \
           g++ -m64 -fPIC -c giac_wrap.cxx -I/System/Library/Frameworks/JavaVM.framework/Headers\
            -I/System/Library/Frameworks/JavaVM.framework/Headers -I$(PREFIX)/include
  
  $(GIAC_DIR)/src/static:
  	rm -fR $(GIAC_DIR)/src/static
  	mkdir -p $(GIAC_DIR)/src/static
  	for i in gmp gsl gslcblas intl mpfr; do \
  	 cp $(LIBDIR)/lib$$i.a $(GIAC_DIR)/src/static; \
  	 done
  
  $(JNILIB): $(GIAC_DIR)/src/giac_wrap.o $(GIAC_DIR)/src/static
  	cd $(GIAC_DIR)/src/; \
  	 g++ -Wl,-search_paths_first -m64 tinymt32.o threaded.o sym2poly.o gausspol.o mathml.o ti89.o maple.o moyal.o misc.o permu.o \
  	  quater.o desolve.o input_parser.o symbolic.o index.o modfactor.o modpoly.o ezgcd.o derive.o solve.o risch.o intgab.o \
  	  intg.o lin.o series.o subst.o csturm.o vecteur.o tex.o global.o ifactor.o alg_ext.o gauss.o isom.o help.o plot3d.o plot.o \
  	  rpn.o prog.o TmpFGLM.o TmpLESystemSolver.o cocoa.o pari.o usual.o identificateur.o gen.o unary.o input_lexer.o first.o giac_wrap.o \
  	 -liconv -lncurses -lm -lz -lgmp -lgsl -lgslcblas -lmpfr -lpthread -lintl -Lstatic \
  	 -dynamiclib -framework Accelerate -framework CoreFoundation \
  	 -o libjavagiac.jnilib
  
  clean-libs:
  	test -r $(GMP) && sudo mv $(GMP) $(GMP).old
  	test -r $(GSL) && sudo mv $(GSL) $(GSL).old
  	test -r $(MPFR) && sudo mv $(MPFR) $(MPFR).old
  	test -r $(GETTEXT) && sudo mv $(GETTEXT) $(GETTEXT).old
  
  clean:
  	cd $(GIAC_DIR)/src; \
  	 make clean
  
  test: $(JNILIB)
  	ls -l $(JNILIB)
  	otool -L $(JNILIB)
  
  clean-jnilib:
  	rm $(JNILIB)