cloog-parma-0.16.1/0000755000175000017500000000000011511607624011004 500000000000000cloog-parma-0.16.1/Makefile.am0000644000175000017500000000633011506661346012767 00000000000000cloog_srcdir = @CLOOG_SRCDIR@ cloog_builddir = @CLOOG_BUILDDIR@ if BUNDLED_CLOOG MAYBE_CLOOG = cloog-core endif SUBDIRS = . test DIST_SUBDIRS = $(MAYBE_CLOOG) . test ACLOCAL_AMFLAGS = -I m4 FORCE: cloog-core/source/version.c: FORCE cd cloog-core; $(MAKE) $(AM_MAKEFLAGS) source/version.c cloog-core/version.h: FORCE cd cloog-core; $(MAKE) $(AM_MAKEFLAGS) version.h cloog-core/include/cloog/version.h: FORCE cd cloog-core; $(MAKE) $(AM_MAKEFLAGS) include/cloog/version.h bin_PROGRAMS = cloog lib_LTLIBRARIES = libcloog-ppl.la if NEED_GET_MEMORY_FUNCTIONS GET_MEMORY_FUNCTIONS=$(cloog_srcdir)/source/mp_get_memory_functions.c endif SOURCES_CORE = \ $(GET_MEMORY_FUNCTIONS) \ $(cloog_srcdir)/source/block.c \ $(cloog_srcdir)/source/clast.c \ $(cloog_srcdir)/source/matrix.c \ $(cloog_srcdir)/source/state.c \ $(cloog_srcdir)/source/input.c \ $(cloog_srcdir)/source/int.c \ $(cloog_srcdir)/source/loop.c \ $(cloog_srcdir)/source/names.c \ $(cloog_srcdir)/source/options.c \ $(cloog_srcdir)/source/pprint.c \ $(cloog_srcdir)/source/program.c \ $(cloog_srcdir)/source/statement.c \ $(cloog_srcdir)/source/stride.c \ $(cloog_srcdir)/source/union_domain.c \ $(cloog_srcdir)/source/matrix/constraintset.c \ $(cloog_builddir)/source/version.c \ $(cloog_builddir)/version.h DEFAULT_INCLUDES = -I. INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include AM_CFLAGS = $(CFLAGS_WARN) libcloog_ppl_la_CPPFLAGS = @CLOOG_CPPFLAGS@ @PPL_CPPFLAGS@ libcloog_ppl_la_LDFLAGS = -version-info @versioninfo@ \ -rpath $(libdir) @PPL_LDFLAGS@ libcloog_ppl_la_LIBADD = @PPL_LIBS@ nodist_libcloog_ppl_la_SOURCES = $(SOURCES_CORE) libcloog_ppl_la_SOURCES = \ source/domain.c \ source/backend.c LDADD = libcloog-ppl.la cloog_CPPFLAGS = @CLOOG_CPPFLAGS@ cloog_DEPENDENCIES = libcloog-ppl.la nodist_cloog_SOURCES = $(cloog_srcdir)/source/cloog.c cloogincludedir = $(includedir)/cloog nodist_clooginclude_HEADERS = \ $(cloog_srcdir)/include/cloog/block.h \ $(cloog_srcdir)/include/cloog/clast.h \ $(cloog_srcdir)/include/cloog/cloog.h \ $(cloog_srcdir)/include/cloog/input.h \ $(cloog_srcdir)/include/cloog/int.h \ $(cloog_srcdir)/include/cloog/matrix.h \ $(cloog_srcdir)/include/cloog/state.h \ $(cloog_srcdir)/include/cloog/domain.h \ $(cloog_srcdir)/include/cloog/loop.h \ $(cloog_srcdir)/include/cloog/constraints.h \ $(cloog_srcdir)/include/cloog/names.h \ $(cloog_srcdir)/include/cloog/options.h \ $(cloog_srcdir)/include/cloog/pprint.h \ $(cloog_srcdir)/include/cloog/program.h \ $(cloog_srcdir)/include/cloog/statement.h \ $(cloog_srcdir)/include/cloog/stride.h \ $(cloog_srcdir)/include/cloog/union_domain.h \ $(cloog_builddir)/include/cloog/version.h cloogmatrixincludedir = $(cloogincludedir)/matrix nodist_cloogmatrixinclude_HEADERS = \ $(cloog_srcdir)/include/cloog/matrix/constraintset.h cloogpplincludedir = $(cloogincludedir)/ppl cloogpplinclude_HEADERS = \ include/cloog/ppl/backend.h \ include/cloog/ppl/cloog.h \ include/cloog/ppl/domain.h check: $(MAKE) test -C test install-data-local: @test -z "$(pkgconfig_libdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfig_libdir)" $(INSTALL_DATA) $(pkgconfig_libfile) "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)" uninstall-local: rm -f "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)" cloog-parma-0.16.1/test/0000755000175000017500000000000011511607626011765 500000000000000cloog-parma-0.16.1/test/merge.c0000644000175000017500000000031711406127443013146 00000000000000/* Generated from ../../../git/cloog/test/merge.cloog by CLooG 0.14.0-249-g82c3b0f gmp bits in 0.00s. */ for (c1=0;c1<=10;c1++) { if (c1 == 0) { S1(0); } if (c1 >= 2) { S2(c1); } S3(c1); } cloog-parma-0.16.1/test/wavefront.c0000644000175000017500000000036611406127443014066 00000000000000/* Generated from ../../../git/cloog/test/wavefront.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if ((m >= 1) && (n >= 1)) { for (c1=2;c1<=n+m;c1++) { for (c2=max(1,c1-m);c2<=min(n,c1-1);c2++) { S1(c2,c1-c2) ; } } } cloog-parma-0.16.1/test/esced.c0000644000175000017500000000046011406127443013131 00000000000000/* Generated from ../../../git/cloog/test/esced.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (m >= 1) { if (n >= 1) { for (i=1;i<=m;i++) { S1(i) ; for (j=1;j<=n;j++) { S2(i,j) ; } } } if (n <= 0) { for (i=1;i<=m;i++) { S1(i) ; } } } cloog-parma-0.16.1/test/forwardsub-1-1-2.c0000644000175000017500000000035411406127443014661 00000000000000/* Generated from ../../../git/cloog/test/forwardsub-1-1-2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ S3(1,1) ; S1(2,1) ; S4(2,2) ; for (i=3;i<=M;i++) { S1(i,1) ; for (j=2;j<=i-1;j++) { S2(i,j) ; } S4(i,i) ; } cloog-parma-0.16.1/test/yosr.c0000644000175000017500000000065611406127443013051 00000000000000/* Generated from ../../../git/cloog/test/yosr.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (n >= 2) { for (j=2;j<=n;j++) { S1(1,j) ; } for (proc=2;proc<=n-1;proc++) { for (i=1;i<=proc-1;i++) { for (j=i+1;j<=n;j++) { S2(i,j,proc) ; } } for (j=proc+1;j<=n;j++) { S1(proc,j) ; } } for (i=1;i<=n-1;i++) { for (j=i+1;j<=n;j++) { S2(i,j,n) ; } } } cloog-parma-0.16.1/test/min-4-1.c0000644000175000017500000000033311406127443013127 00000000000000/* Generated from ../../../git/cloog/test/min-4-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if ((M >= -N) && (M >= -O) && (N >= 0) && (N >= -O)) { for (i=max(-M,-N);i<=min(N,O);i++) { S1(i) ; } } cloog-parma-0.16.1/test/basic-bounds-1.c0000644000175000017500000000022311406127443014552 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (i=0;i<=2;i++) { S1(i) ; } cloog-parma-0.16.1/test/mod4.c0000644000175000017500000000042011406127443012705 00000000000000/* Generated from ../../../git/cloog/test/mod4.cloog by CLooG 0.14.0-257-g356797c gmp bits in 0.01s. */ for (j=2;j<=10;j+=3) { div41 = floord(j+2,3); div42 = floord(j+1,3); S1(j,div41,div42,2,(j-2)/3); S2(j,div41,div42,2,(j-2)/3); S3(j,div41,div42,2,(j-2)/3); } cloog-parma-0.16.1/test/union.c0000644000175000017500000000047011477125253013204 00000000000000/* Generated from ../../../git/cloog-parma/cloog-core/test/union.cloog by CLooG 0.14.0-337-g6531dee gmp bits. */ if ((M >= 1) && (M <= 10)) { for (c1=0;c1<=100;c1++) { S1(c1); } } if (M >= 11) { for (c1=-100;c1<=0;c1++) { S1(-c1); } } if (M <= -1) { for (c1=0;c1<=100;c1++) { S1(c1); } } cloog-parma-0.16.1/test/darte.c0000644000175000017500000000314111406127363013145 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/darte.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ if (n >= 1) { for (t3=n+3;t3<=3*n+1;t3++) { if ((t3+n+1)%2 == 0) { S1(1,n,(t3-n-1)/2); } } for (t1=-n+2;t1<=n-1;t1++) { for (t2=max(-t1+2,t1+2);t2<=min(-t1+4,-t1+2*n);t2++) { for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { if ((t1+t3)%2 == 0) { S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2); } } } } if (t1 >= 2) { for (t3=t1+4;t3<=t1+2*n+2;t3++) { if ((t1+t3)%2 == 0) { S1(t1+1,1,(-t1+t3-2)/2); } } } for (t2=max(-t1+5,t1+3);t2<=min(-t1+2*n,t1+2*n);t2++) { for (t3=1;t3<=min(n,t2+1);t3++) { if ((t1+t2+1)%2 == 0) { S2((t1+t2-3)/2,(-t1+t2-1)/2,t3); } } for (t3=t2+2;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { S2((t1+t2-3)/2,(-t1+t2-1)/2,t3); } if ((t1+t2)%2 == 0) { if ((t1+t3)%2 == 0) { S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2); } } } for (t3=max(n+1,t2+2);t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { if ((t1+t3)%2 == 0) { S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2); } } } } for (t2=max(-t1+5,-t1+2*n+1);t2<=min(-t1+2*n+3,t1+2*n+1);t2++) { for (t3=1;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { S2((t1+t2-3)/2,(-t1+t2-1)/2,t3); } } } if (t1 <= -1) { for (t3=1;t3<=n;t3++) { S2(t1+n-1,n,t3); } } } for (t3=1;t3<=n;t3++) { S2(n,1,t3); } } cloog-parma-0.16.1/test/walters2.c0000644000175000017500000000042511406127443013612 00000000000000/* Generated from ../../../git/cloog/test/walters2.cloog by CLooG 0.14.0-249-g82c3b0f gmp bits in 0.01s. */ for (i=0;i<=51;i++) { S2(0,i); } for (j=1;j<=24;j++) { S2(j,0); for (i=1;i<=50;i++) { S1(j,i); } S2(j,51); } S2(25,0); for (i=1;i<=51;i++) { S2(25,i); } cloog-parma-0.16.1/test/lex.c0000644000175000017500000000023111406127443012632 00000000000000/* Generated from /home/skimo/git/cloog/test/lex.cloog by CLooG 0.14.0-234-g330f397 gmp bits in 0.00s. */ for (c1=0;c1<=10;c1++) { S2(c1); S1(c1); } cloog-parma-0.16.1/test/yosr2.c0000644000175000017500000000066111406127443013127 00000000000000/* Generated from ../../../git/cloog/test/yosr2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ for (i=1;i<=M;i++) { S2(i) ; } for (proc=2;proc<=M-1;proc++) { for (i=1;i<=proc-1;i++) { S4(i,proc) ; } for (j=1;j<=proc-1;j++) { S1(proc,j) ; } for (j=proc+1;j<=M;j++) { for (k=1;k<=proc-1;k++) { S3(proc,j,k) ; } } } for (i=1;i<=M-1;i++) { S4(i,M) ; } for (j=1;j<=M-1;j++) { S1(M,j) ; } cloog-parma-0.16.1/test/lineality-1-2.c0000644000175000017500000000037511406127363014343 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/lineality-1-2.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ for (i=1;i<=M;i++) { for (j=1;j<=i-1;j++) { S1(i,j); } S1(i,i); S2(i,i); for (j=i+1;j<=M;j++) { S1(i,j); } } cloog-parma-0.16.1/test/lux.c0000644000175000017500000000065011406127443012657 00000000000000/* Generated from ../../../git/cloog/test/lux.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ if (M >= 2) { for (l=2;l<=M;l++) { S1(1,1,M,l) ; } for (i=2;i<=M-1;i++) { for (j=1;j<=i-1;j++) { for (k=j+1;k<=M;k++) { S2(i,j,k,k,i) ; } } for (l=i+1;l<=M;l++) { S1(i,i,M,l) ; } } for (j=1;j<=M-1;j++) { for (k=j+1;k<=M;k++) { S2(M,j,k,k,M) ; } } } cloog-parma-0.16.1/test/levenshtein-1-2-3.c0000644000175000017500000000122511406127443015027 00000000000000/* Generated from ../../../git/cloog/test/levenshtein-1-2-3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.12s. */ S1(0,0) ; S2(1,0) ; S3(1,1) ; for (i=2;i<=N;i++) { S2(i,0) ; for (j=1;j<=i-1;j++) { S6(i,j) ; } S3(i,i) ; } S7(N+1,0) ; for (j=1;j<=N;j++) { S6(N+1,j) ; S8(N+1,j) ; } for (i=N+2;i<=2*M-N-2;i++) { j = floord(i-N-1,2) ; S7(i,j) ; if ((i+N)%2 == 0) { S5(i,(i-N)/2) ; S8(i,(i-N)/2) ; } for (j=ceild(i-N+1,2);j<=floord(i+N-1,2);j++) { S6(i,j) ; S8(i,j) ; } if ((i+N)%2 == 0) { S4(i,(i+N)/2) ; S8(i,(i+N)/2) ; } } for (i=2*M-N-1;i<=2*M-2;i++) { for (j=i-M+1;j<=M-1;j++) { S6(i,j) ; } } cloog-parma-0.16.1/test/stride2.c0000644000175000017500000000055211406127443013424 00000000000000/* Generated from ../../../git/cloog-parma/cloog-core/test/stride2.cloog by CLooG 0.14.0-275-g15c65cd gmp bits. */ for (c1=3;c1<=100;c1++) { for (c2=max(ceild(-c1+27,24),ceild(100*c1-2700,219));c2<=floord(c1,3);c2++) { if ((c1 == 27) && (c2 == 0)) { S1(27); } if (c1 == 3*c2) { if (c1%3 == 0) { S2(c1,c1/3); } } } } cloog-parma-0.16.1/test/min-3-1.c0000644000175000017500000000027311406127443013131 00000000000000/* Generated from ../../../git/cloog/test/min-3-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (i=0;i<=min(10,M);i++) { for (j=0;j<=min(10,M);j++) { S1(i,j) ; } } cloog-parma-0.16.1/test/nul_basic1.c0000644000175000017500000000025211406127443014065 00000000000000/* Generated from ../../../git/cloog/test/nul_basic1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ if (M >= 0) { for (i=0;i<=M;i+=2) { S1(i,i/2) ; } } cloog-parma-0.16.1/test/dartef.f0000644000175000017500000000321011406127365013315 00000000000000! Generated from /home/skimo/git/cloog-parma/cloog-core/test/dartef.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. IF (n >= 1) THEN DO t3=n+3, 3*n+1 IF (MOD(t3+n+1, 2) == 0) THEN S1(1,n,(t3-n-1)/2) END IF END DO DO t1=-n+2, n-1 DO t2=MAX(-t1+2,t1+2), MIN(-t1+4,-t1+2*n) DO t3=t2+2, t2+2*n IF (MOD(t1+t2, 2) == 0) THEN IF (MOD(t1+t3, 2) == 0) THEN S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) END IF END IF END DO END DO IF (t1 >= 2) THEN DO t3=t1+4, t1+2*n+2 IF (MOD(t1+t3, 2) == 0) THEN S1(t1+1,1,(-t1+t3-2)/2) END IF END DO END IF DO t2=MAX(-t1+5,t1+3), MIN(-t1+2*n,t1+2*n) DO t3=1, MIN(n,t2+1) IF (MOD(t1+t2+1, 2) == 0) THEN S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) END IF END DO DO t3=t2+2, n IF (MOD(t1+t2+1, 2) == 0) THEN S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) END IF IF (MOD(t1+t2, 2) == 0) THEN IF (MOD(t1+t3, 2) == 0) THEN S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) END IF END IF END DO DO t3=MAX(n+1,t2+2), t2+2*n IF (MOD(t1+t2, 2) == 0) THEN IF (MOD(t1+t3, 2) == 0) THEN S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) END IF END IF END DO END DO DO t2=MAX(-t1+5,-t1+2*n+1), MIN(-t1+2*n+3,t1+2*n+1) DO t3=1, n IF (MOD(t1+t2+1, 2) == 0) THEN S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) END IF END DO END DO IF (t1 <= -1) THEN DO t3=1, n S2(t1+n-1,n,t3) END DO END IF END DO DO t3=1, n S2(n,1,t3) END DO END IF cloog-parma-0.16.1/test/yosrf.f0000644000175000017500000000057311406127443013220 00000000000000! Generated from ../../../git/cloog/test/yosrf.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. IF (n >= 2) THEN DO j=2, n S1(1,j) END DO DO proc=2, n-1 DO i=1, proc-1 DO j=i+1, n S2(i,j,proc) END DO END DO DO j=proc+1, n S1(proc,j) END DO END DO DO i=1, n-1 DO j=i+1, n S2(i,j,n) END DO END DO END IF cloog-parma-0.16.1/test/logopar.c0000644000175000017500000000057711406127363013523 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/logopar.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ for (j=0;j<=m;j++) { S1(1,j); } for (i=2;i<=n;i++) { for (j=0;j<=i-2;j++) { S2(i,j); } for (j=i-1;j<=n;j++) { S1(i,j); S2(i,j); } for (j=n+1;j<=m;j++) { S1(i,j); } } for (i=n+1;i<=m+1;i++) { for (j=i-1;j<=m;j++) { S1(i,j); } } cloog-parma-0.16.1/test/logo.c0000644000175000017500000000056611406127363013016 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/logo.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ for (j=0;j<=7;j++) { S1(1,j); } for (i=2;i<=6;i++) { for (j=0;j<=i-2;j++) { S2(i,j); } for (j=i-1;j<=4;j++) { S1(i,j); S2(i,j); } for (j=5;j<=7;j++) { S1(i,j); } } for (i=7;i<=8;i++) { for (j=i-1;j<=7;j++) { S1(i,j); } } cloog-parma-0.16.1/test/sor1d.c0000644000175000017500000000222611511332307013072 00000000000000/* Generated from ../../..//git/cloog-parma/cloog-core/test/sor1d.cloog by CLooG 0.16.0-2-g9ec66d3 gmp bits. */ if ((M >= 1) && (N >= 3)) { for (glT1=-1;glT1<=floord(3*M+N-5,100);glT1++) { for (rp1=max(max(0,ceild(100*glT1-2*M-N+5,100)),ceild(100*glT1-N-193,300));rp1<=min(min(min(min(floord(glT1+1,2),floord(M,100)),floord(100*glT1+99,100)),floord(50*glT1+51,150)),floord(100*glT1+N+98,300));rp1++) { for (vT1=max(max(max(max(0,100*glT1-100*rp1),100*rp1-1),200*rp1-3),200*rp1-N+1);vT1<=min(min(2*M+N-5,100*glT1-100*rp1+99),200*rp1+N+193);vT1++) { for (vP1=max(max(1,ceild(vT1-N+5,2)),100*rp1-1);vP1<=min(min(min(floord(vT1+2,2),M),100*rp1+99),-100*rp1+vT1+2);vP1++) { if (100*rp1 == vP1+1) { S3(glT1-rp1,rp1-1,rp1,100*rp1-1,-200*rp1+vT1+6); } if (rp1 <= floord(vP1,100)) { S1(glT1-rp1,rp1,vP1,vT1-2*vP1+4); } if ((rp1 <= min(floord(M-100,100),floord(vT1-197,200))) && (100*rp1 == vP1-99)) { if ((99*vP1+99)%100 == 0) { S2((100*glT1-vP1+99)/100,rp1,(vP1+1)/100,vP1,-200*rp1+vT1-194); } } } } } S4(glT1); } } cloog-parma-0.16.1/test/param-split.c0000644000175000017500000000032211406127443014274 00000000000000/* Generated from ../../../git/cloog-polylib/cloog-core/test/param-split.cloog by CLooG 0.14.0-278-gcf1f323 gmp bits. */ if (M <= -1) { S2(0); } for (i=0;i<=M;i++) { S1(i); if (i == 0) { S2(i); } } cloog-parma-0.16.1/test/emploi.c0000644000175000017500000000045611406127443013340 00000000000000/* Generated from ../../../git/cloog/test/emploi.cloog by CLooG 0.14.0-264-gca47033 gmp bits in 0.00s. */ if (n >= 1) { if (m >= 1) { for (i=1;i<=n;i++) { S1(i); for (j=1;j<=m;j++) { S2(i,j); } } } if (m <= 0) { for (i=1;i<=n;i++) { S1(i); } } } cloog-parma-0.16.1/test/1point-1.c0000644000175000017500000000017011406127443013414 00000000000000/* Generated from ../../../git/cloog/test/1point-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ S1(2*M,M) ; cloog-parma-0.16.1/test/no_lindep.c0000644000175000017500000000016711406127443014021 00000000000000/* Generated from ../../../git/cloog/test/no_lindep.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ S1(N+2) ; cloog-parma-0.16.1/test/forwardsub-2-1-2-3.c0000644000175000017500000000040111406127443015013 00000000000000/* Generated from ../../../git/cloog/test/forwardsub-2-1-2-3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ S3(1,0) ; for (k=2;k<=M;k++) { S1(1,1,k) ; } for (i=2;i<=M-1;i++) { S4(i,0) ; for (k=i+1;k<=M;k++) { S2(i,1,k) ; } } S4(M,0) ; cloog-parma-0.16.1/test/Makefile.am0000644000175000017500000003335011477121424013743 00000000000000# # /**-------------------------------------------------------------------** # ** CLooG ** # **-------------------------------------------------------------------** # ** makefile ** # **-------------------------------------------------------------------** #/***************************************************************************** # * CLooG : the Chunky Loop Generator (experimental) * # ***************************************************************************** # * * # * Copyright (C) 2003 Cedric Bastoul * # * * # * This library is free software; you can redistribute it and/or * # * modify it under the terms of the GNU Lesser General Public * # * License as published by the Free Software Foundation; either * # * version 2.1 of the License, or (at your option) any later version. * # * * # * This library is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * # * Lesser General Public License for more details. * # * * # * You should have received a copy of the GNU Lesser General Public * # * License along with this library; if not, write to the Free Software * # * Foundation, Inc., 51 Franklin Street, Fifth Floor, * # * Boston, MA 02110-1301 USA * # * * # * CLooG, the Chunky Loop Generator * # * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * # * This file has been written with the help of the Bart Kienhuis's checking * # * makefile for PipLib. * # * * # *****************************************************************************/ cloog_srcdir = @CLOOG_SRCDIR@ noinst_PROGRAMS = generate_test INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include LDADD = ../libcloog-ppl.la generate_test_CPPFLAGS = @CLOOG_CPPFLAGS@ nodist_generate_test_SOURCES = $(cloog_srcdir)/test/generate_test.c FORCE: ../libcloog-ppl.la: FORCE cd ..; $(MAKE) $(AM_MAKEFLAGS) libcloog-ppl.la ROOT = .. FINITE_CLOOGTEST_C = \ 0D-1 \ 0D-2 \ 0D-3 \ 1point-1 \ 1point-2 \ 4-param \ basic-bounds-1 \ basic-bounds-2 \ basic-bounds-3 \ basic-bounds-4 \ basic-bounds-5 \ basic-bounds-6 \ block \ byu98-1-2-3 \ cholesky \ cholesky2 \ classen \ constbound \ darte \ donotsimp \ dot \ dot2 \ double \ durbin_e_s \ emploi \ esced \ ex1 \ forwardsub-1-1-2 \ forwardsub-2-1-2-3 \ forwardsub-3-1-2 \ gauss \ gesced \ gesced2 \ gesced3 \ guide \ iftest \ iftest2 \ largeur \ levenshtein-1-2-3 \ lex \ lineality-1-2 \ lineality-2-1-2 \ logo \ logopar \ lu \ lu2 \ lub \ lux \ min-1-1 \ min-2-1 \ min-3-1 \ min-4-1 \ mode \ multi-mm-1 \ no_lindep \ orc \ rectangle \ singleton \ square+triangle-1-1-2-3 \ swim \ test \ thomasset \ tiling \ uday_scalars \ union \ vivien \ vivien2 \ walters \ walters2 \ wavefront \ yosr \ yosr2 \ ./non_optimal/nul_complex1 \ ./non_optimal/usvd_e_t \ ./non_optimal/youcef \ ./reservoir/cholesky2 \ ./reservoir/fusion1 \ ./reservoir/fusion2 \ ./reservoir/jacobi2 \ ./reservoir/jacobi3 \ ./reservoir/lim-lam1 \ ./reservoir/lim-lam2 \ ./reservoir/lim-lam3 \ ./reservoir/lim-lam4 \ ./reservoir/lim-lam5 \ ./reservoir/lim-lam6 \ ./reservoir/liu-zhuge1 \ ./reservoir/loechner3 \ ./reservoir/loechner4 \ ./reservoir/loechner5 \ ./reservoir/mg-interp2 \ ./reservoir/mg-interp \ ./reservoir/mg-psinv \ ./reservoir/mg-resid \ ./reservoir/mg-rprj3 \ ./reservoir/pingali1 \ ./reservoir/pingali2 \ ./reservoir/pingali3 \ ./reservoir/pingali4 \ ./reservoir/pingali5 \ ./reservoir/pingali6 \ ./reservoir/QR \ ./reservoir/tang-xue1 \ ./reservoir/two CLOOGTEST_C = \ infinite \ infinite2 \ infinite3 \ infinite4 \ $(FINITE_CLOOGTEST_C) # ./reservoir/long \ # faber CLOOGTEST_FORTRAN = \ dartef \ iftestf \ levenshtein-1-2-3f \ yosrf CLOOGTEST_STRIDED = \ basic-bounds-2 \ mod4 \ nul_basic1 \ nul_basic2 \ nul_lcpc \ multi-stride \ multi-stride2 \ reservoir/bastoul3 \ reservoir/stride \ reservoir/stride2 SPECIAL_TESTS = \ vasilache \ merge \ equality \ equality2 \ param-split \ stride \ stride2 \ sor1d SPECIAL_OPTIONS = \ 'vasilache -f 8 -l 9' \ 'merge -f -1' \ 'equality -f -1 -l 2 -override' \ 'equality2 -f -1 -l 4 -esp 1 -override' \ 'param-split -f -1' \ 'stride -f -1 -strides 1' \ 'stride2 -f -1 -strides 1' \ 'sor1d -f -1' EXTRA_DIST = \ $(CLOOGTEST_C:%=%.c) \ $(CLOOGTEST_FORTRAN:%=%.f) \ $(CLOOGTEST_STRIDED:%=%.c) \ $(SPECIAL_TESTS:%=%.c) generate: @echo " /*-----------------------------------------------*" @echo " * Generate files *" @echo " *-----------------------------------------------*/" @for x in $(CLOOGTEST_C) ; do \ echo "Generate $$x.c" ; \ $(top_builddir)/cloog $(cloog_srcdir)/test/$$x.cloog -o $(srcdir)/$$x.c ; \ done ; \ for x in $(CLOOGTEST_FORTRAN) ; do \ echo "Generate $$x.f" ; \ $(top_builddir)/cloog $(cloog_srcdir)/test/$$x.cloog -o $(srcdir)/$$x.f ; \ done ; \ for x in $(CLOOGTEST_STRIDED) ; do \ echo "Generate $$x.c" ; \ $(top_builddir)/cloog $(cloog_srcdir)/test/$$x.cloog \ -strides 1 -o $(srcdir)/$$x.c ; \ done ; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo "Generate file $$x ($$options)" ; \ $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog \ $$options > $(srcdir)/$$x.c ; \ done; done valgrind: @echo " /*-----------------------------------------------*" @echo " * Checking files by Valgrind *" @echo " *-----------------------------------------------*/" for x in $(CLOOGTEST_C) ; do \ echo "Valgrinding $$x.c" ; \ valgrind $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog ; \ done ; \ for x in $(CLOOGTEST_FORTRAN) ; do \ echo "Valgrinding $$x.f" ; \ valgrind $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog ; \ done test_run: generate_test$(EXEEXT) @echo " /*-----------------------------------------------*" @echo " * Testing CLooG *" @echo " *-----------------------------------------------*/" @failedtest=0 ; \ echo "--- Testing C files... (correct output)" ; \ for x in $(FINITE_CLOOGTEST_C) ; do \ echo -n "Verify file $$x... " ; \ echo -n "generating... " ; \ $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $(cloog_srcdir)/test/$$x.cloog > test_test.c ; \ ./generate_test$(EXEEXT) < $(cloog_srcdir)/test/$$x.cloog > test_main.c; \ echo -n "compiling... " ; \ $(COMPILE) -c test_test.c; \ $(COMPILE) -Dtest=good -c $(cloog_srcdir)/test/$$x.good.c -o test_good.o; \ $(LINK) test_main.c test_test.o test_good.o > /dev/null; \ echo -n "comparing... " ; \ ./test_run$(EXEEXT); \ result=$$?; \ if test "$$result" -ne "0" ; then \ failedtest=`expr $$failedtest + 1` ; \ fi; \ $(RM) $@; \ echo; \ done; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo -n "Verify file $$x ($$options)... " ; \ echo -n "generating... " ; \ $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $$options $(cloog_srcdir)/test/$$x.cloog > test_test.c ; \ ./generate_test$(EXEEXT) < $(cloog_srcdir)/test/$$x.cloog > test_main.c; \ echo -n "compiling... " ; \ $(COMPILE) -c test_test.c; \ $(COMPILE) -Dtest=good -c $(cloog_srcdir)/test/$$x.good.c -o test_good.o; \ $(LINK) test_main.c test_test.o test_good.o > /dev/null; \ echo -n "comparing... " ; \ ./test_run$(EXEEXT); \ result=$$?; \ if test "$$result" -ne "0" ; then \ failedtest=`expr $$failedtest + 1` ; \ fi; \ $(RM) $@; \ echo; \ done; done; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo -n "Verify file $$x ($$options -sh 1)... " ; \ echo -n "generating... " ; \ $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $$options -sh 1 $(cloog_srcdir)/test/$$x.cloog > test_test.c ; \ ./generate_test$(EXEEXT) < $(cloog_srcdir)/test/$$x.cloog > test_main.c; \ echo -n "compiling... " ; \ $(COMPILE) -c test_test.c; \ $(COMPILE) -Dtest=good -c $(cloog_srcdir)/test/$$x.good.c -o test_good.o; \ $(LINK) test_main.c test_test.o test_good.o > /dev/null; \ echo -n "comparing... " ; \ ./test_run$(EXEEXT); \ result=$$?; \ if test "$$result" -ne "0" ; then \ failedtest=`expr $$failedtest + 1` ; \ fi; \ $(RM) $@; \ echo; \ done; done; \ if [ $$failedtest != 0 ] ; then \ echo "$$failedtest tests failed" ; \ else \ echo "CLooG works correctly :-) !" ; \ fi test: @echo " /*-----------------------------------------------*" @echo " * Testing CLooG *" @echo " *-----------------------------------------------*/" @failedtest=0 ; \ echo "--- Testing C files... (expected output)" ; \ for x in $(CLOOGTEST_C) ; do \ echo "Verify file $$x" ; \ $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done ; \ echo "--- Testing FORTRAN files..." ; \ for x in $(CLOOGTEST_FORTRAN) ; do \ echo "Verify file $$x" ; \ $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.f ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done ; \ echo "--- Testing STRIDED files..." ; \ for x in $(CLOOGTEST_STRIDED) ; do \ echo "Verify file $$x" ; \ $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog \ -strides 1 > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done ; \ echo "--- Testing SPECIAL OPTIONS files..." ; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo "Verify file $$x ($$options)" ; \ $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog \ $$options > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done; done; \ rm ttemp ; \ if [ $$failedtest != 0 ] ; then \ echo "$$failedtest tests failed" ; \ else \ echo "CLooG works correctly :-) !" ; \ fi cloog-parma-0.16.1/test/basic-bounds-4.c0000644000175000017500000000022511406127443014557 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-4.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (i=0;i<=M+1;i++) { S1(i) ; } cloog-parma-0.16.1/test/block.c0000644000175000017500000000020611406127443013136 00000000000000/* Generated from /home/skimo/git/cloog/test/block.cloog by CLooG 0.14.0-170-g72daac3 gmp bits in 0.00s. */ S1(); S3(0); S2(); S3(1); cloog-parma-0.16.1/test/1point-2.c0000644000175000017500000000017211406127443013417 00000000000000/* Generated from ../../../git/cloog/test/1point-2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ S1(2*M,N+2) ; cloog-parma-0.16.1/test/guide.c0000644000175000017500000000031111406127443013136 00000000000000/* Generated from ../../../git/cloog/test/guide.cloog by CLooG 0.14.0-264-gca47033 gmp bits in 0.00s. */ if (N >= 1) { for (i=1;i<=N;i++) { S1(i); } for (i=N+1;i<=2*N;i++) { S2(i); } } cloog-parma-0.16.1/test/durbin_e_s.c0000644000175000017500000000133311406127363014160 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/durbin_e_s.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ S4(1,0,0); S7(1,0,0); S8(1,0,3); for (i=2;i<=9;i++) { if (i == 2) { S2(i,-7,0); S3(i,-7,1); S6(i,-7,2); } if (i >= 3) { S2(i,-7,0); S3(i,-7,1); } for (j=-6;j<=i-10;j++) { S3(i,j,1); } if (i == 9) { S3(i,0,1); S6(i,0,2); S8(i,0,3); } if ((i >= 3) && (i <= 8)) { S3(i,i-9,1); S6(i,i-9,2); } if (i <= 8) { S8(i,0,3); } for (j=1;j<=i-1;j++) { S5(i,j,3); } } S2(10,-7,0); S3(10,-7,1); for (j=-6;j<=0;j++) { S3(10,j,1); } S3(10,1,1); S6(10,1,2); S5(10,1,3); S1(10,1,4); for (j=2;j<=9;j++) { S5(10,j,3); S1(10,j,4); } S1(10,10,4); cloog-parma-0.16.1/test/cholesky.c0000644000175000017500000000116311406127443013670 00000000000000/* Generated from ../../../git/cloog/test/cholesky.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.04s. */ if (n >= 1) { if (n >= 2) { S1(1) ; S3(1) ; for (c3=2;c3<=n;c3++) { S4(1,c3) ; S6(1,c3) ; } } if (n == 1) { S1(1) ; S3(1) ; } for (c1=2;c1<=n-1;c1++) { S1(c1) ; for (c3=1;c3<=c1-1;c3++) { S2(c1,c3) ; } S3(c1) ; for (c3=c1+1;c3<=n;c3++) { S4(c1,c3) ; for (c5=1;c5<=c1-1;c5++) { S5(c1,c3,c5) ; } S6(c1,c3) ; } } if (n >= 2) { S1(n) ; for (c3=1;c3<=n-1;c3++) { S2(n,c3) ; } S3(n) ; } } cloog-parma-0.16.1/test/basic-bounds-6.c0000644000175000017500000000017311406127443014563 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-6.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ S1(-1) ; cloog-parma-0.16.1/test/classen.c0000644000175000017500000000621011406127362013475 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/classen.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ if (m >= 1) { if (m >= 2) { S1(0,1,1,1); S2(0,1,1,1,1,1,2,1); S3(0,1,1,2,1,1,1,2); S4(0,1,2,2,1,1,2,2); S8(0,1); } if (m == 1) { S1(0,1,1,1); S8(0,1); } for (glT1=1;glT1<=2*m-4;glT1++) { if (glT1 <= m-2) { S5(glT1-1,1,glT1,1,glT1,1,glT1+1,1); S1(glT1,1,glT1+1,1); S2(glT1,1,glT1+1,1,glT1+1,1,glT1+2,1); S3(glT1,1,glT1+1,2,glT1+1,1,glT1+1,2); S4(glT1,1,glT1+2,2,glT1+1,1,glT1+2,2); } if (glT1 >= m) { S5(glT1-1,glT1-m+2,glT1,glT1-m+2,m-1,glT1-m+2,m,glT1-m+2); S6(glT1-1,glT1-m+1,glT1,glT1-m+2,m,glT1-m+1,m,glT1-m+2); S1(glT1,glT1-m+2,m,glT1-m+2); S3(glT1,glT1-m+2,glT1+1,glT1-m+3,m,glT1-m+2,m,glT1-m+3); } if (glT1 == m-1) { S5(glT1-1,1,glT1,1,glT1,1,glT1+1,1); S1(glT1,1,glT1+1,1); S3(glT1,1,glT1+1,2,glT1+1,1,glT1+1,2); } for (rp1=max(2,glT1-m+3);rp1<=min(glT1,m-1);rp1++) { S5(glT1-1,rp1,glT1,rp1,glT1-rp1+1,rp1,glT1-rp1+2,rp1); S6(glT1-1,rp1-1,glT1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+2,rp1); S7(glT1-1,rp1-1,glT1+1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+3,rp1); S1(glT1,rp1,glT1-rp1+2,rp1); S2(glT1,rp1,glT1+1,rp1,glT1-rp1+2,rp1,glT1-rp1+3,rp1); S3(glT1,rp1,glT1+1,rp1+1,glT1-rp1+2,rp1,glT1-rp1+2,rp1+1); S4(glT1,rp1,glT1+2,rp1+1,glT1-rp1+2,rp1,glT1-rp1+3,rp1+1); } if (glT1 <= m-2) { S6(glT1-1,glT1,glT1,glT1+1,1,glT1,1,glT1+1); S7(glT1-1,glT1,glT1+1,glT1+1,1,glT1,2,glT1+1); S1(glT1,glT1+1,1,glT1+1); S2(glT1,glT1+1,glT1+1,glT1+1,1,glT1+1,2,glT1+1); S3(glT1,glT1+1,glT1+1,glT1+2,1,glT1+1,1,glT1+2); S4(glT1,glT1+1,glT1+2,glT1+2,1,glT1+1,2,glT1+2); } if (glT1 >= m) { S5(glT1-1,m,glT1,m,glT1-m+1,m,glT1-m+2,m); S6(glT1-1,m-1,glT1,m,glT1-m+2,m-1,glT1-m+2,m); S7(glT1-1,m-1,glT1+1,m,glT1-m+2,m-1,glT1-m+3,m); S1(glT1,m,glT1-m+2,m); S2(glT1,m,glT1+1,m,glT1-m+2,m,glT1-m+3,m); } if (glT1 == m-1) { S6(glT1-1,glT1,glT1,glT1+1,1,glT1,1,glT1+1); S7(glT1-1,glT1,glT1+1,glT1+1,1,glT1,2,glT1+1); S1(glT1,glT1+1,1,glT1+1); S2(glT1,glT1+1,glT1+1,glT1+1,1,glT1+1,2,glT1+1); } for (coordP1=max(1,glT1-m+2);coordP1<=min(m,glT1+1);coordP1++) { S8(glT1,coordP1); } } if (m >= 2) { if (m >= 3) { S5(2*m-4,m-1,2*m-3,m-1,m-1,m-1,m,m-1); S6(2*m-4,m-2,2*m-3,m-1,m,m-2,m,m-1); S1(2*m-3,m-1,m,m-1); S3(2*m-3,m-1,2*m-2,m,m,m-1,m,m); } if (m == 2) { S5(0,1,1,1,1,1,2,1); S1(1,1,2,1); S3(1,1,2,2,2,1,2,2); } if (m >= 3) { S5(2*m-4,m,2*m-3,m,m-2,m,m-1,m); S6(2*m-4,m-1,2*m-3,m,m-1,m-1,m-1,m); S7(2*m-4,m-1,2*m-2,m,m-1,m-1,m,m); S1(2*m-3,m,m-1,m); S2(2*m-3,m,2*m-2,m,m-1,m,m,m); } if (m == 2) { S6(0,1,1,2,1,1,1,2); S7(0,1,2,2,1,1,2,2); S1(1,2,1,2); S2(1,2,2,2,1,2,2,2); } for (coordP1=m-1;coordP1<=m;coordP1++) { S8(2*m-3,coordP1); } } if (m >= 2) { S5(2*m-3,m,2*m-2,m,m-1,m,m,m); S6(2*m-3,m-1,2*m-2,m,m,m-1,m,m); S1(2*m-2,m,m,m); S8(2*m-2,m); } } cloog-parma-0.16.1/test/equality.c0000644000175000017500000000043111406127443013701 00000000000000/* Generated from ../../../git/cloog/test/equality.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ for (i0=0;i0<=5;i0++) { for (i1=ceild(4*i0,5);i1<=floord(6*i0+20,5);i1++) { if (2*i0 == i1) { S1(i0,i1) ; } if (i1 == 4) { S2(i0,i1) ; } } } cloog-parma-0.16.1/test/gesced3.c0000644000175000017500000000040311406127443013360 00000000000000/* Generated from ../../../git/cloog/test/gesced3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ for (c1=M+1;c1<=2*M;c1++) { S1(c1-M) ; } for (c1=2*M+1;c1<=M+N;c1++) { S2(c1-2*M) ; S1(c1-M) ; } for (c1=M+N+1;c1<=2*M+N;c1++) { S2(c1-2*M) ; } cloog-parma-0.16.1/test/0D-3.c0000644000175000017500000000015711406127443012454 00000000000000/* Generated from ../../../git/cloog/test/0D-3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ S1() ; cloog-parma-0.16.1/test/uday_scalars.c0000644000175000017500000000033611406127443014522 00000000000000/* Generated from ../../../git/cloog/test/uday_scalars.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (n >= 0) { for (p3=0;p3<=n;p3++) { S1(p3,0,0) ; } for (p3=0;p3<=n;p3++) { S2(0,p3,0) ; } } cloog-parma-0.16.1/test/reservoir/0000755000175000017500000000000011511607626014005 500000000000000cloog-parma-0.16.1/test/reservoir/lim-lam5.c0000644000175000017500000000057611406127443015513 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam5.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (M >= 1) { for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S2(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S3(c2,c4) ; } } } cloog-parma-0.16.1/test/reservoir/jacobi2.c0000644000175000017500000000030311406127443015373 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/jacobi2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (c2=0;c2<=M-1;c2++) { for (c4=0;c4<=M-1;c4++) { S1(c2,c4) ; } } cloog-parma-0.16.1/test/reservoir/mg-resid.c0000644000175000017500000000163111406127365015601 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/./reservoir/mg-resid.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ if ((M >= 1) && (N >= 3) && (O >= 3)) { if (M >= 3) { for (c2=2;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S1(c2,2,c6); S2(c2,2,c6); } for (c4=4;c4<=2*N-3;c4++) { for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { S1(c2,(c4+1)/2,c6); S2(c2,(c4+1)/2,c6); } } for (c6=2;c6<=M-1;c6++) { if (c4%2 == 0) { S3(c2,c4/2,c6); } } } for (c6=2;c6<=M-1;c6++) { S3(c2,N-1,c6); } } } if (M <= 2) { for (c2=2;c2<=O-1;c2++) { for (c4=3;c4<=2*N-3;c4++) { for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { S1(c2,(c4+1)/2,c6); S2(c2,(c4+1)/2,c6); } } } } } } cloog-parma-0.16.1/test/reservoir/QR.c0000644000175000017500000000376211406127443014420 00000000000000/* Generated from ../../../git/cloog/test/reservoir/QR.cloog by CLooG 0.14.0-262-g4b60cd5 gmp bits in 0.06s. */ if (N >= 1) { S1(0); if ((M <= 0) && (N >= 2)) { S3(0); S10(0); S1(1); S5(0); } if ((M >= 1) && (N == 1)) { for (c4=0;c4<=M-1;c4++) { S2(0,c4); } S3(0); for (c4=0;c4<=M-1;c4++) { S4(0,c4); } S10(0); S5(0); } if ((M <= 0) && (N == 1)) { S3(0); S10(0); S5(0); } if ((M >= 1) && (N >= 2)) { for (c4=0;c4<=M-1;c4++) { S2(0,c4); } S3(0); for (c4=0;c4<=M-1;c4++) { S4(0,c4); } S10(0); S1(1); S5(0); } for (c2=2;c2<=min(M,N-1);c2++) { for (c4=c2-1;c4<=N-1;c4++) { S6(c2-2,c4); for (c6=c2-2;c6<=M-1;c6++) { S7(c2-2,c4,c6); } S8(c2-2,c4); for (c6=c2-2;c6<=M-1;c6++) { S9(c2-2,c4,c6); } } for (c4=c2-1;c4<=M-1;c4++) { S2(c2-1,c4); } S3(c2-1); for (c4=c2-1;c4<=M-1;c4++) { S4(c2-1,c4); } S10(c2-1); S1(c2); S5(c2-1); } if ((M >= 1) && (M <= N-2)) { for (c4=M;c4<=N-1;c4++) { S6(M-1,c4); S7(M-1,c4,M-1); S8(M-1,c4); S9(M-1,c4,M-1); } S3(M); S10(M); S1(M+1); S5(M); } for (c2=max(2,M+2);c2<=N-1;c2++) { for (c4=c2-1;c4<=N-1;c4++) { S6(c2-2,c4); S8(c2-2,c4); } S3(c2-1); S10(c2-1); S1(c2); S5(c2-1); } if ((M >= N) && (N >= 2)) { S6(N-2,N-1); for (c6=N-2;c6<=M-1;c6++) { S7(N-2,N-1,c6); } S8(N-2,N-1); for (c6=N-2;c6<=M-1;c6++) { S9(N-2,N-1,c6); } for (c4=N-1;c4<=M-1;c4++) { S2(N-1,c4); } S3(N-1); for (c4=N-1;c4<=M-1;c4++) { S4(N-1,c4); } S10(N-1); S5(N-1); } if ((M == N-1) && (N >= 2)) { S6(N-2,N-1); S7(N-2,N-1,N-2); S8(N-2,N-1); S9(N-2,N-1,N-2); S3(N-1); S10(N-1); S5(N-1); } if ((M <= N-2) && (N >= 2)) { S6(N-2,N-1); S8(N-2,N-1); S3(N-1); S10(N-1); S5(N-1); } } cloog-parma-0.16.1/test/reservoir/stride2.c0000644000175000017500000000027111406127443015442 00000000000000/* Generated from ../../../git/cloog/test/reservoir/stride2.cloog by CLooG 0.14.0-253-ge300ff5 gmp bits in 0.00s. */ if (M >= 0) { for (c2=2;c2<=M;c2+=7) { S1(c2,(c2-2)/7); } } cloog-parma-0.16.1/test/reservoir/jacobi3.c0000644000175000017500000000117311406127443015402 00000000000000/* Generated from ../../../git/cloog/test/reservoir/jacobi3.cloog by CLooG 0.14.0-262-g4b60cd5 gmp bits in 0.01s. */ if ((M >= 1) && (N >= 3)) { for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { S1(1,c4,c6); } } for (c2=3;c2<=2*M;c2++) { for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { if (c2%2 == 0) { S1(c2/2,c4,c6); } } } for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { if ((c2+1)%2 == 0) { S2((c2-1)/2,c4,c6); } } } } for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { S2(M,c4,c6); } } } cloog-parma-0.16.1/test/reservoir/pingali4.c0000644000175000017500000000041011406127443015570 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/pingali4.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S2(c2,c4) ; } } cloog-parma-0.16.1/test/reservoir/pingali3.c0000644000175000017500000000052711406127443015600 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/pingali3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (M >= 1) { for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { for (c6=1;c6<=M;c6++) { S2(c2,c4,c6) ; } } } } cloog-parma-0.16.1/test/reservoir/lim-lam6.c0000644000175000017500000000045411406127443015507 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam6.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (M >= 1) { for (c2=0;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=0;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S2(c4,c2) ; } } } cloog-parma-0.16.1/test/reservoir/lim-lam2.c0000644000175000017500000000054311406127443015502 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ for (c2=1;c2<=M;c2++) { S1(c2) ; } if (N >= 2) { for (c2=1;c2<=M;c2++) { for (c4=2;c4<=N;c4++) { S2(c2,c4) ; } } } if (N >= 2) { for (c2=1;c2<=M;c2++) { for (c4=1;c4<=N-1;c4++) { S3(c2,c4) ; } } } cloog-parma-0.16.1/test/reservoir/loechner4.c0000644000175000017500000000051611406127443015753 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/loechner4.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ if (M >= 1) { for (c2=2;c2<=2*M;c2++) { for (c4=1;c4<=M;c4++) { for (c6=1;c6<=M;c6++) { for (c8=max(1,c2-M);c8<=min(M,c2-1);c8++) { S1(c6,c4,c8,c2-c8) ; } } } } } cloog-parma-0.16.1/test/reservoir/lim-lam3.c0000644000175000017500000000172311406127443015504 00000000000000/* Generated from ../../../git/cloog/test/reservoir/lim-lam3.cloog by CLooG 0.14.0-262-g4b60cd5 gmp bits in 0.01s. */ for (c2=5;c2<=min(8,5*M);c2++) { if (c2%5 == 0) { S4(c2/5); } } for (c2=9;c2<=min(13,5*M-1);c2++) { for (c4=max(1,ceild(c2-M-3,4));c4<=floord(c2-4,5);c4++) { S2(c2-4*c4-3,c4); } if (c2%5 == 0) { S4(c2/5); } for (c4=max(1,ceild(c2-3*M-1,2));c4<=floord(c2-4,5);c4++) { if ((c2+c4+2)%3 == 0) { S3((c2-2*c4-1)/3,c4); } } } for (c2=14;c2<=5*M-1;c2++) { for (c4=max(2,ceild(c2-M-3,4));c4<=min(floord(c2-8,3),M-1);c4++) { for (c6=max(1,ceild(c2-2*c4-M-5,2));c6<=min(floord(c2-3*c4-6,2),c4-1);c6++) { S1(c2-2*c4-2*c6-5,c4,c6); } } for (c4=max(1,ceild(c2-M-3,4));c4<=floord(c2-4,5);c4++) { S2(c2-4*c4-3,c4); } if (c2%5 == 0) { S4(c2/5); } for (c4=max(1,ceild(c2-3*M-1,2));c4<=floord(c2-4,5);c4++) { if ((c2+c4+2)%3 == 0) { S3((c2-2*c4-1)/3,c4); } } } if (M >= 2) { S4(M); } cloog-parma-0.16.1/test/reservoir/fusion1.c0000644000175000017500000000034611406127443015455 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/fusion1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (c2=0;c2<=M;c2++) { S1(c2) ; } for (c2=1;c2<=M;c2++) { S2(c2) ; } for (c2=0;c2<=M;c2++) { S3(c2) ; } cloog-parma-0.16.1/test/reservoir/pingali6.c0000644000175000017500000000115611406127443015602 00000000000000/* Generated from ../../../git/cloog/test/reservoir/pingali6.cloog by CLooG 0.14.0-262-g4b60cd5 gmp bits in 0.01s. */ if (N >= 3) { for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { S1(1,c4,c6); } } for (c2=3;c2<=2*M;c2++) { for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { if (c2%2 == 0) { S1(c2/2,c4,c6); } } } for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { if ((c2+1)%2 == 0) { S2((c2-1)/2,c4,c6); } } } } for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { S2(M,c4,c6); } } } cloog-parma-0.16.1/test/reservoir/pingali1.c0000644000175000017500000000110011406127443015562 00000000000000/* Generated from ../../../git/cloog/test/reservoir/pingali1.cloog by CLooG 0.14.0-249-g82c3b0f gmp bits in 0.02s. */ if ((M >= 1) && (N >= 1)) { if (N >= 2) { for (c2=1;c2<=M;c2++) { for (c4=1;c4<=2;c4++) { if ((c4+1)%2 == 0) { S2(c2,(c4+1)/2); } } for (c4=3;c4<=2*N-1;c4++) { for (c6=max(1,c4-N);c6<=floord(c4-1,2);c6++) { S1(c2,c4-c6,c6); } if ((c4+1)%2 == 0) { S2(c2,(c4+1)/2); } } } } if (N == 1) { for (c2=1;c2<=M;c2++) { S2(c2,1); } } } cloog-parma-0.16.1/test/reservoir/cholesky2.c0000644000175000017500000000207011406127443015770 00000000000000/* Generated from ../../../git/cloog/test/reservoir/cholesky2.cloog by CLooG 0.14.0-262-g4b60cd5 gmp bits in 0.01s. */ if (M >= 1) { for (c2=2;c2<=min(3,3*M-4);c2++) { if ((c2+1)%3 == 0) { S1((c2+1)/3); } for (c4=ceild(c2+4,3);c4<=min(M,c2);c4++) { if ((c2+c4)%2 == 0) { S2((c2-c4+2)/2,c4); } } } for (c2=max(2,3*M-3);c2<=min(3,3*M-1);c2++) { if ((c2+1)%3 == 0) { S1((c2+1)/3); } } for (c2=4;c2<=3*M-4;c2++) { if ((c2+1)%3 == 0) { S1((c2+1)/3); } for (c4=ceild(c2+2,3);c4<=min(M,c2-2);c4++) { for (c6=ceild(c2-c4+2,2);c6<=min(c4,c2-c4);c6++) { S3(c2-c4-c6+1,c4,c6); } } for (c4=ceild(c2+4,3);c4<=min(M,c2);c4++) { if ((c2+c4)%2 == 0) { S2((c2-c4+2)/2,c4); } } } for (c2=max(4,3*M-3);c2<=3*M-2;c2++) { if ((c2+1)%3 == 0) { S1((c2+1)/3); } for (c4=ceild(c2+2,3);c4<=min(M,c2-2);c4++) { for (c6=ceild(c2-c4+2,2);c6<=min(c4,c2-c4);c6++) { S3(c2-c4-c6+1,c4,c6); } } } if (M >= 2) { S1(M); } } cloog-parma-0.16.1/test/reservoir/pingali2.c0000644000175000017500000000045411406127443015576 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/pingali2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ if (M >= 1) { for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S2(c2,c4) ; } } } cloog-parma-0.16.1/test/reservoir/tang-xue1.c0000644000175000017500000000071711406127443015704 00000000000000/* Generated from ../../../git/cloog/test/reservoir/tang-xue1.cloog by CLooG 0.14.0-165-g01eb246 gmp bits in 0.01s. */ for (c2=0;c2<=9;c2++) { for (c4=max(-1,c2-9);c4<=min(4,c2+3);c4++) { for (c6=max(max(1,c2),c2-c4);c6<=min(min(9,c2+1),c2-c4+4);c6++) { for (c8=max(1,-c2+c4+c6);c8<=min(4,-c2+c4+c6+1);c8++) { if (c2%2 == 0) { if (c4%2 == 0) { S1(c2/2,(-c2+c4)/2,-c2+c6,-c4+c8); } } } } } } cloog-parma-0.16.1/test/reservoir/lim-lam1.c0000644000175000017500000000100611406127364015476 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/./reservoir/lim-lam1.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ S1(1,100); for (c2=-98;c2<=99;c2++) { if (c2 <= 0) { S1(1,-c2+1); } if (c2 >= 1) { S2(c2,1); } for (c4=max(2,-2*c2+3);c4<=min(199,-2*c2+200);c4++) { if (c4%2 == 0) { S1((2*c2+c4)/2,c4/2); } if ((c4+1)%2 == 0) { S2((2*c2+c4-1)/2,(c4+1)/2); } } if (c2 <= 0) { S1(c2+100,100); } if (c2 >= 1) { S2(100,-c2+101); } } S2(100,1); cloog-parma-0.16.1/test/reservoir/loechner5.c0000644000175000017500000000046511406127443015757 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/loechner5.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ if (M >= 1) { for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { for (c6=1;c6<=M;c6++) { for (c8=1;c8<=M;c8++) { S1(c4,c6,c2,c8) ; } } } } } cloog-parma-0.16.1/test/reservoir/mg-interp2.c0000644000175000017500000000153611406127443016057 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/mg-interp2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.11s. */ if (O >= 2) { if ((M >= P+1) && (N >= Q+1)) { for (c2=1;c2<=O-1;c2++) { for (c4=Q;c4<=N-1;c4++) { for (c6=P;c6<=M-1;c6++) { S1(c2,c4,c6) ; } } } } if ((M >= 2) && (N >= Q+1)) { for (c2=1;c2<=O-1;c2++) { for (c4=Q;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S2(c2,c4,c6) ; } } } } if ((M >= P+1) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=P;c6<=M-1;c6++) { S3(c2,c4,c6) ; } } } } if ((M >= 2) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S4(c2,c4,c6) ; } } } } } cloog-parma-0.16.1/test/reservoir/fusion2.c0000644000175000017500000000056111406127443015455 00000000000000/* Generated from ../../../git/cloog/test/reservoir/fusion2.cloog by CLooG 0.14.0-262-g4b60cd5 gmp bits in 0.00s. */ if ((M >= 1) && (N >= 1)) { for (c4=1;c4<=M;c4++) { S1(1,c4); } for (c2=2;c2<=N;c2++) { for (c4=1;c4<=M;c4++) { S2(c2-1,c4); } for (c4=1;c4<=M;c4++) { S1(c2,c4); } } for (c4=1;c4<=M;c4++) { S2(N,c4); } } cloog-parma-0.16.1/test/reservoir/mg-interp.c0000644000175000017500000001071211406127365015774 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/./reservoir/mg-interp.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ if ((M >= 2) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S1(c2,1,c6); } if (N == 2) { for (c6=1;c6<=M-1;c6++) { S6(c2,1,c6); S7(c2,1,c6); } } if (N >= 3) { for (c6=1;c6<=M-1;c6++) { S6(c2,1,c6); S7(c2,1,c6); } } if (N == 2) { for (c6=1;c6<=M;c6++) { S3(c2,1,c6); } } if (N == 2) { for (c6=1;c6<=M-1;c6++) { S11(c2,1,c6); } } if (N >= 3) { for (c6=1;c6<=M;c6++) { S3(c2,1,c6); } for (c6=1;c6<=M-1;c6++) { S1(c2,2,c6); } S1(c2,2,M); } if (N == 3) { for (c6=1;c6<=M-1;c6++) { S6(c2,2,c6); S7(c2,2,c6); } for (c6=1;c6<=M-1;c6++) { S11(c2,1,c6); } } if (N >= 4) { for (c6=1;c6<=M-1;c6++) { S6(c2,2,c6); S7(c2,2,c6); } for (c6=1;c6<=M-1;c6++) { S11(c2,1,c6); } } for (c4=3;c4<=2*N-5;c4++) { for (c6=1;c6<=M-1;c6++) { if ((c4+1)%2 == 0) { S10(c2,(c4-1)/2,c6); } } for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { S3(c2,(c4+1)/2,c6); } } for (c6=1;c6<=M-1;c6++) { if (c4%2 == 0) { S6(c2,(c4+2)/2,c6); } if ((c4+1)%2 == 0) { S1(c2,(c4+3)/2,c6); } if (c4%2 == 0) { S7(c2,(c4+2)/2,c6); } } if ((c4+1)%2 == 0) { S1(c2,(c4+3)/2,M); } for (c6=1;c6<=M-1;c6++) { if (c4%2 == 0) { S11(c2,c4/2,c6); } } } if (N >= 4) { for (c6=1;c6<=M-1;c6++) { } for (c6=1;c6<=M;c6++) { } for (c6=1;c6<=M-1;c6++) { S6(c2,N-1,c6); S7(c2,N-1,c6); } for (c6=1;c6<=M-1;c6++) { S11(c2,N-2,c6); } } if (N >= 3) { for (c6=1;c6<=M-1;c6++) { S10(c2,N-2,c6); } for (c6=1;c6<=M;c6++) { S3(c2,N-1,c6); } for (c6=1;c6<=M-1;c6++) { } } if (N >= 3) { for (c6=1;c6<=M-1;c6++) { } for (c6=1;c6<=M-1;c6++) { S11(c2,N-1,c6); } } for (c6=1;c6<=M-1;c6++) { S10(c2,N-1,c6); } } } if ((M == 1) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=-1;c4<=min(0,2*N-5);c4++) { if ((c4+1)%2 == 0) { S1(c2,(c4+3)/2,1); } } for (c4=1;c4<=2*N-5;c4++) { if ((c4+1)%2 == 0) { S3(c2,(c4+1)/2,1); } if ((c4+1)%2 == 0) { S1(c2,(c4+3)/2,1); } } for (c4=max(1,2*N-4);c4<=2*N-3;c4++) { if ((c4+1)%2 == 0) { S3(c2,(c4+1)/2,1); } } } } if ((M >= 2) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S2(c2,1,c6); } for (c6=1;c6<=M-1;c6++) { S8(c2,1,c6); } for (c4=3;c4<=2*N-2;c4++) { for (c6=1;c6<=M;c6++) { if (c4%2 == 0) { S2(c2,c4/2,c6); } } for (c6=1;c6<=M-1;c6++) { if (c4%2 == 0) { S8(c2,c4/2,c6); } } for (c6=1;c6<=M-1;c6++) { if ((c4+1)%2 == 0) { S9(c2,(c4-1)/2,c6); } } } for (c6=1;c6<=M-1;c6++) { S9(c2,N-1,c6); } } } if ((M == 1) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=2;c4<=2*N-2;c4++) { if (c4%2 == 0) { S2(c2,c4/2,1); } } } } if ((M >= 2) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S4(c2,c4,c6); } } } } if ((M >= 2) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S5(c2,c4,c6); } } } } if ((M >= P+1) && (N >= Q+1)) { for (c2=R;c2<=O-1;c2++) { for (c4=Q;c4<=N-1;c4++) { for (c6=P;c6<=M-1;c6++) { S12(c2,c4,c6); } } } } if ((M >= 2) && (N >= Q+1)) { for (c2=R;c2<=O-1;c2++) { for (c4=Q;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S13(c2,c4,c6); } } } } if ((M >= P+1) && (N >= 2)) { for (c2=R;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=P;c6<=M-1;c6++) { S14(c2,c4,c6); } } } } if ((M >= 2) && (N >= 2)) { for (c2=R;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S15(c2,c4,c6); } } } } cloog-parma-0.16.1/test/reservoir/mg-psinv.c0000644000175000017500000000163111406127365015632 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/./reservoir/mg-psinv.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ if ((M >= 1) && (N >= 3) && (O >= 3)) { if (M >= 3) { for (c2=2;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S1(c2,2,c6); S2(c2,2,c6); } for (c4=4;c4<=2*N-3;c4++) { for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { S1(c2,(c4+1)/2,c6); S2(c2,(c4+1)/2,c6); } } for (c6=2;c6<=M-1;c6++) { if (c4%2 == 0) { S3(c2,c4/2,c6); } } } for (c6=2;c6<=M-1;c6++) { S3(c2,N-1,c6); } } } if (M <= 2) { for (c2=2;c2<=O-1;c2++) { for (c4=3;c4<=2*N-3;c4++) { for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { S1(c2,(c4+1)/2,c6); S2(c2,(c4+1)/2,c6); } } } } } } cloog-parma-0.16.1/test/reservoir/liu-zhuge1.c0000644000175000017500000000227511406127365016071 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/./reservoir/liu-zhuge1.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ if ((M >= 0) && (N >= 0)) { for (c2=-4;c2<=min(-1,3*M+N-4);c2++) { for (c4=max(0,c2-3*M+4);c4<=min(N,c2+4);c4++) { if ((c2+2*c4+1)%3 == 0) { S1((c2-c4+4)/3,c4); } } } for (c2=0;c2<=3*M+N-4;c2++) { for (c4=max(0,c2-3*M);c4<=min(c2,c2-3*M+3);c4++) { if ((c2+2*c4)%3 == 0) { S2((c2-c4)/3,c4); } } for (c4=max(0,c2-3*M+4);c4<=min(N,c2);c4++) { if ((c2+2*c4)%3 == 0) { S2((c2-c4)/3,c4); } if ((c2+2*c4+1)%3 == 0) { S1((c2-c4+4)/3,c4); } } for (c4=max(c2+1,c2-3*M+4);c4<=min(N,c2+4);c4++) { if ((c2+2*c4+1)%3 == 0) { S1((c2-c4+4)/3,c4); } } for (c4=max(0,c2-3*M);c4<=min(N,c2);c4++) { if ((c2+2*c4)%3 == 0) { S3((c2-c4)/3,c4); } } } for (c2=max(0,3*M+N-3);c2<=3*M+N;c2++) { for (c4=max(0,c2-3*M);c4<=min(N,c2);c4++) { if ((c2+2*c4)%3 == 0) { S2((c2-c4)/3,c4); } } for (c4=max(0,c2-3*M);c4<=min(N,c2);c4++) { if ((c2+2*c4)%3 == 0) { S3((c2-c4)/3,c4); } } } } cloog-parma-0.16.1/test/reservoir/bastoul3.c0000644000175000017500000000036011406127443015621 00000000000000/* Generated from ../../../git/cloog/test/reservoir/bastoul3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (i=3;i<=9;i++) { for (j=max(1,i-6);j<=min(3,i-2);j++) { if ((i+j)%2 == 0) { S1(i,j,(i-j)/2) ; } } } cloog-parma-0.16.1/test/reservoir/lim-lam4.c0000644000175000017500000000075011406127443015504 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam4.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.04s. */ if (M >= 2) { S1(1,0,0) ; for (c2=2;c2<=2*M-2;c2++) { for (c4=max(-M+1,-c2+1);c4<=-1;c4++) { for (i=max(1,c2-M+1);i<=min(M-1,c2+c4);i++) { S1(i,c2+c4-i,-c4) ; } for (c6=max(-c4,c2-M+1);c6<=min(M-1,c2-1);c6++) { S2(c2-c6,c4+c6,c6) ; } } for (i=max(1,c2-M+1);i<=min(c2,M-1);i++) { S1(i,c2-i,0) ; } } } cloog-parma-0.16.1/test/reservoir/pingali5.c0000644000175000017500000000116111406127443015575 00000000000000/* Generated from ../../../git/cloog/test/reservoir/pingali5.cloog by CLooG 0.14.0-262-g4b60cd5 gmp bits in 0.00s. */ if (M >= 2) { for (c2=3;c2<=2*M-3;c2++) { for (c4=ceild(c2+3,2);c4<=M;c4++) { for (i=ceild(c2+1,2);i<=min(c2-1,c4-1);i++) { S1(i,c2-i,c4); } } for (c4=max(1,c2-M);c4<=floord(c2-1,2);c4++) { S2(c2-c4,c4); } for (c4=ceild(c2+3,2);c4<=M;c4++) { for (i=ceild(c2+1,2);i<=min(c2-1,c4-1);i++) { S3(i,c2-i,c4); } } } for (c2=max(3,2*M-2);c2<=2*M-1;c2++) { for (c4=max(1,c2-M);c4<=floord(c2-1,2);c4++) { S2(c2-c4,c4); } } } cloog-parma-0.16.1/test/reservoir/two.c0000644000175000017500000000027611406127443014704 00000000000000/* Generated from ../../../git/cloog/test/reservoir/two.cloog by CLooG 0.14.0-253-ge300ff5 gmp bits in 0.00s. */ for (i=0;i<=1;i++) { if ((i+1)%2 == 0) { S1(i,(-i+3)/2,(i+9)/2); } } cloog-parma-0.16.1/test/reservoir/stride.c0000644000175000017500000000027111406127443015360 00000000000000/* Generated from ../../../git/cloog/test/reservoir/stride.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ if (M >= 2) { for (c2=2;c2<=M;c2+=7) { S1(c2,(c2-2)/7) ; } } cloog-parma-0.16.1/test/reservoir/mg-rprj3.c0000644000175000017500000000206111406127365015531 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/./reservoir/mg-rprj3.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ if ((M >= 2) && (N >= 3) && (O >= 3)) { if (M >= 3) { for (c2=2;c2<=O-1;c2++) { for (c6=2;c6<=M;c6++) { S1(c2,2,c6); } for (c4=3;c4<=N-1;c4++) { for (c6=2;c6<=M;c6++) { S2(c2,c4-1,c6); } S4(c2,c4-1,2); for (c6=2;c6<=M-2;c6++) { S3(c2,c4-1,c6); S5(c2,c4-1,c6); S4(c2,c4-1,c6+1); } S3(c2,c4-1,M-1); S5(c2,c4-1,M-1); for (c6=2;c6<=M;c6++) { S1(c2,c4,c6); } } for (c6=2;c6<=M;c6++) { S2(c2,N-1,c6); } S4(c2,N-1,2); for (c6=2;c6<=M-2;c6++) { S3(c2,N-1,c6); S5(c2,N-1,c6); S4(c2,N-1,c6+1); } S3(c2,N-1,M-1); S5(c2,N-1,M-1); } } if (M == 2) { for (c2=2;c2<=O-1;c2++) { S1(c2,2,2); for (c4=3;c4<=N-1;c4++) { S2(c2,c4-1,2); S1(c2,c4,2); } S2(c2,N-1,2); } } } cloog-parma-0.16.1/test/reservoir/loechner3.c0000644000175000017500000000044211406127443015750 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/loechner3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (M >= 1) { for (c2=1;c2<=M;c2++) { for (c4=2;c4<=c2+M;c4++) { for (c6=max(1,-c2+c4);c6<=min(M,c4-1);c6++) { S1(c2,c6,c4-c6) ; } } } } cloog-parma-0.16.1/test/cholesky2.c0000644000175000017500000000264111406127443013754 00000000000000/* Generated from ../../../git/cloog/test/cholesky2.cloog by CLooG 0.14.0-261-g26b30f1 gmp bits in 0.02s. */ if (M >= 1) { if (M >= 2) { for (c2=1;c2<=M-1;c2++) { S1(c2); for (c3=c2+1;c3<=M;c3++) { S4(c2,c3); } } S1(M); } if (M == 1) { S1(1); } S3(1); if ((M <= 2) && (M >= 2)) { for (c2=2;c2<=M;c2++) { S6(1,c2); } } if (M >= 3) { S6(1,2); for (c2=3;c2<=M;c2++) { S6(1,c2); for (i=2;i<=c2-1;i++) { S5(i,c2,1); } } } for (c1=3;c1<=3*M-7;c1++) { if ((c1+2)%3 == 0) { S3((c1+2)/3); } if (c1%3 == 0) { S2((c1+3)/3,c1/3); } c2 = floord(c1+6,3); if ((c1+1)%3 == 0) { S6((c1+1)/3,c2); } if (c1%3 == 0) { S2(c2,c1/3); } for (c2=ceild(c1+7,3);c2<=M;c2++) { if ((c1+1)%3 == 0) { S6((c1+1)/3,c2); } if (c1%3 == 0) { S2(c2,c1/3); } if ((c1+1)%3 == 0) { for (i=ceild(c1+4,3);i<=c2-1;i++) { S5(i,c2,(c1+1)/3); } } } } for (c1=max(3,3*M-6);c1<=3*M-4;c1++) { if ((c1+2)%3 == 0) { S3((c1+2)/3); } if (c1%3 == 0) { S2((c1+3)/3,c1/3); } for (c2=ceild(c1+4,3);c2<=M;c2++) { if ((c1+1)%3 == 0) { S6((c1+1)/3,c2); } if (c1%3 == 0) { S2(c2,c1/3); } } } if (M >= 2) { S2(M,M-1); } if (M >= 2) { S3(M); } } cloog-parma-0.16.1/test/iftest.c0000644000175000017500000000024011406127443013340 00000000000000/* Generated from ../../../git/cloog/test/iftest.cloog by CLooG 0.14.0-264-gca47033 gmp bits in 0.00s. */ if (n >= 1) { for (i=1;i<=n;i++) { S1(i); } } cloog-parma-0.16.1/test/orc.c0000644000175000017500000000226211406127443012633 00000000000000/* Generated from ../../../git/cloog/test/orc.cloog by CLooG 0.14.0-253-ge300ff5 gmp bits in 0.01s. */ S1(0); S2(0,0); for (p2=1;p2<=22;p2++) { if ((p2+1)%2 == 0) { S3(0,(p2-1)/2); } if (p2%2 == 0) { S2(0,p2/2); } } S3(0,11); for (p1=2;p1<=6;p1++) { if ((p1+1)%3 == 0) { S4((p1-2)/3); } if ((p1+2)%3 == 0) { S2((p1-1)/3,0); } if (p1%3 == 0) { S1(p1/3); } for (p2=1;p2<=floord(-2*p1+68,3);p2++) { if ((p1+2)%3 == 0) { if ((p2+1)%2 == 0) { S3((p1-1)/3,(p2-1)/2); } if (p2%2 == 0) { S2((p1-1)/3,p2/2); } } } p2 = floord(-2*p1+71,3); if ((p1+2)%3 == 0) { if ((p2+1)%2 == 0) { S3((p1-1)/3,(p2-1)/2); } } } S2(2,0); for (p2=1;p2<=18;p2++) { if ((p2+1)%2 == 0) { S3(2,(p2-1)/2); } if (p2%2 == 0) { S2(2,p2/2); } } S3(2,9); S4(2); S5(0); S6(0,0); for (p2=1;p2<=9;p2++) { S6(0,p2); } for (p1=2;p1<=42;p1++) { if ((p1+1)%3 == 0) { S7((p1-2)/3); } if ((p1+2)%3 == 0) { S6((p1-1)/3,0); } if (p1%3 == 0) { S5(p1/3); } for (p2=1;p2<=9;p2++) { if ((p1+2)%3 == 0) { S6((p1-1)/3,p2); } } } S6(14,0); for (p2=1;p2<=9;p2++) { S6(14,p2); } S7(14); cloog-parma-0.16.1/test/lu.c0000644000175000017500000000073711406127443012475 00000000000000/* Generated from ../../../git/cloog/test/lu.cloog by CLooG 0.14.0-249-g82c3b0f gmp bits in 0.02s. */ if (n >= 2) { for (j=2;j<=n;j++) { S1(1,j); } for (c1=2;c1<=n-1;c1++) { for (c2=2;c2<=n-1;c2++) { for (i=1;i<=min(c1-1,c2-1);i++) { S2(i,c2,c1); } } for (i=1;i<=c1-1;i++) { S2(i,n,c1); } for (j=c1+1;j<=n;j++) { S1(c1,j); } } for (c2=2;c2<=n;c2++) { for (i=1;i<=c2-1;i++) { S2(i,c2,n); } } } cloog-parma-0.16.1/test/levenshtein-1-2-3f.f0000644000175000017500000000120011406127443015171 00000000000000! Generated from ../../../git/cloog/test/levenshtein-1-2-3f.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.11s. S1(0,0) S2(1,0) S3(1,1) DO i=2, N S2(i,0) DO j=1, i-1 S6(i,j) END DO S3(i,i) END DO S7(N+1,0) DO j=1, N S6(N+1,j) S8(N+1,j) END DO DO i=N+2, 2*M-N-2 j = FLOOR(REAL(i-N-1)/REAL(2)) S7(i,j) IF (MOD(i+N, 2) == 0) THEN S5(i,(i-N)/2) S8(i,(i-N)/2) END IF DO j=CEILING(REAL(i-N+1)/REAL(2)), FLOOR(REAL(i+N-1)/REAL(2)) S6(i,j) S8(i,j) END DO IF (MOD(i+N, 2) == 0) THEN S4(i,(i+N)/2) S8(i,(i+N)/2) END IF END DO DO i=2*M-N-1, 2*M-2 DO j=i-M+1, M-1 S6(i,j) END DO END DO cloog-parma-0.16.1/test/thomasset.c0000644000175000017500000000317311406127364014063 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/thomasset.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ if (n >= 1) { for (c1=0;c1<=floord(n-5,3);c1++) { for (i=max(1,3*c1+1);i<=3*c1+3;i++) { S1(i,c1); } } for (c1=max(0,ceild(n-4,3));c1<=floord(n-1,3);c1++) { if (c1 <= 0) { S1(1,c1); for (j=1;j<=min(n,3*c1-n+5);j++) { for (k=0;k<=min(0,floord(3*c1-j-n+4,3));k++) { for (p=max(ceild(n-2,3),ceild(3*c1-j-3*k,3));p<=min(floord(n,3),floord(3*c1-j-3*k+2,3));p++) { S2(1,j,k,p,c1-k-p); } } } } if (c1 >= 1) { for (j=1;j<=min(n,3*c1-n+5);j++) { for (k=0;k<=min(0,floord(3*c1-j-n+4,3));k++) { for (p=max(ceild(n-2,3),ceild(3*c1-j-3*k,3));p<=min(floord(n,3),floord(3*c1-j-3*k+2,3));p++) { S2(1,j,k,p,c1-k-p); } } } } for (i=max(2,3*c1+1);i<=min(n,3*c1+3);i++) { S1(i,c1); } for (c2=1;c2<=n-1;c2++) { for (j=1;j<=min(n,3*c1-n+5);j++) { for (k=0;k<=min(0,floord(3*c1-j-n+4,3));k++) { for (p=max(ceild(n-2,3),ceild(3*c1-j-3*k,3));p<=min(floord(n,3),floord(3*c1-j-3*k+2,3));p++) { S2(c2+1,j,k,p,c1-k-p); } } } } } for (c1=ceild(n,3);c1<=floord(2*n+1,3);c1++) { for (c2=0;c2<=n-1;c2++) { for (j=max(1,3*c1-n-1);j<=min(n,3*c1-n+5);j++) { for (k=max(0,ceild(3*c1-j-n,3));k<=min(0,floord(3*c1-j-n+4,3));k++) { for (p=max(ceild(n-2,3),ceild(3*c1-j-3*k,3));p<=min(floord(n,3),floord(3*c1-j-3*k+2,3));p++) { S2(c2+1,j,k,p,c1-k-p); } } } } } } cloog-parma-0.16.1/test/byu98-1-2-3.c0000644000175000017500000000062611406127362013467 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/byu98-1-2-3.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ for (i=2;i<=3;i++) { for (j=-i+6;j<=6;j++) { S1(i,j); } } for (i=4;i<=7;i++) { for (j=i-1;j<=-i+8;j++) { S1(i,j); } if (i >= 6) { S2(i,-i+9); } if (i <= 5) { S1(i,-i+9); S2(i,-i+9); } for (j=max(-i+10,i-1);j<=6;j++) { S1(i,j); } } S2(8,1); cloog-parma-0.16.1/test/square+triangle-1-1-2-3.c0000644000175000017500000000045111406127363015743 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/square+triangle-1-1-2-3.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ for (j=1;j<=M;j++) { S1(1,j); } for (i=2;i<=M;i++) { S1(i,1); for (j=2;j<=i;j++) { S1(i,j); S2(i,j); } for (j=i+1;j<=M;j++) { S1(i,j); } } cloog-parma-0.16.1/test/iftestf.f0000644000175000017500000000023611406127443013516 00000000000000! Generated from ../../../git/cloog/test/iftestf.cloog by CLooG 0.14.0-264-gca47033 gmp bits in 0.00s. IF (n >= 1) THEN DO i=1, n S1(i) END DO END IF cloog-parma-0.16.1/test/multi-stride.c0000644000175000017500000000021211406127443014463 00000000000000/* Generated from ../../../git/cloog/test/multi-stride.cloog by CLooG 0.14.0-253-ge300ff5 gmp bits in 0.00s. */ for (i=2;i<=100;i+=6) { } cloog-parma-0.16.1/test/test.c0000644000175000017500000000056511406127364013035 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/test.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ for (i=1;i<=2;i++) { for (j=1;j<=M;j++) { S1(i,j); } } for (i=3;i<=N;i++) { for (j=1;j<=min(M,i-1);j++) { S1(i,j); } if (i >= M+1) { S2(i,i); } if (i <= M) { S1(i,i); S2(i,i); } for (j=i+1;j<=M;j++) { S1(i,j); } } cloog-parma-0.16.1/test/constbound.c0000644000175000017500000000053611406127443014230 00000000000000/* Generated from ../../../git/cloog/test/constbound.cloog by CLooG 0.14.0-253-ge300ff5 gmp bits in 0.01s. */ for (t0=0;t0<=199;t0++) { for (t2=max(0,50*t0);t2<=50*t0+24;t2++) { for (t3=0;t3<=t2;t3++) { S1(t0,t2,t3); } } for (t2=50*t0+25;t2<=min(9999,50*t0+49);t2++) { for (t3=0;t3<=t2;t3++) { S2(t0,t2,t3); } } } cloog-parma-0.16.1/test/tiling.c0000644000175000017500000000032011406127443013327 00000000000000/* Generated from ../../../git/cloog/test/tiling.cloog by CLooG 0.14.0-253-ge300ff5 gmp bits in 0.00s. */ for (ii=0;ii<=floord(n,10);ii++) { for (i=max(0,10*ii);i<=min(n,10*ii+9);i++) { S1(ii,i); } } cloog-parma-0.16.1/test/basic-bounds-5.c0000644000175000017500000000022011406127443014553 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-5.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ j = floord(M+1,2) ; S1(1,j) ; cloog-parma-0.16.1/test/gesced.c0000644000175000017500000000061011406127443013275 00000000000000/* Generated from ../../../git/cloog/test/gesced.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.05s. */ for (c1=1;c1<=N;c1++) { S1(c1) ; } for (c1=N+1;c1<=2*N;c1++) { for (i=1;i<=N;i++) { S2(i,c1-N) ; } } for (c1=2*N+1;c1<=M+N;c1++) { for (i=1;i<=N;i++) { S3(i,c1-2*N) ; S2(i,c1-N) ; } } for (c1=M+N+1;c1<=M+2*N;c1++) { for (i=1;i<=N;i++) { S3(i,c1-2*N) ; } } cloog-parma-0.16.1/test/lineality-2-1-2.c0000644000175000017500000000051111406127363014472 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/lineality-2-1-2.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ for (i=1;i<=M;i++) { for (j=1;j<=min(M,i+1);j++) { S1(i,j); } if (i >= M-1) { S2(i,i+2); } if (i <= M-2) { S1(i,i+2); S2(i,i+2); } for (j=i+3;j<=M;j++) { S1(i,j); } } cloog-parma-0.16.1/test/4-param.c0000644000175000017500000000052411406127443013310 00000000000000/* Generated from ../../../git/cloog/test/4-param.cloog by CLooG 0.14.0-249-g82c3b0f gmp bits in 0.01s. */ for (i=m;i<=min(min(n,q),p-1);i++) { S1(i); } for (i=p;i<=min(min(n,q),m-1);i++) { S2(i); } for (i=max(m,p);i<=min(n,q);i++) { S1(i); S2(i); } for (i=max(m,q+1);i<=n;i++) { S1(i); } for (i=max(p,n+1);i<=q;i++) { S2(i); } cloog-parma-0.16.1/test/dot.c0000644000175000017500000000031211406127443012630 00000000000000/* Generated from ../../../git/cloog/test/dot.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (j=1;j<=M;j++) { S1(0,j) ; } for (i=1;i<=N;i++) { for (j=1;j<=M;j++) { S2(i,j) ; } } cloog-parma-0.16.1/test/donotsimp.c0000644000175000017500000000034611406127443014065 00000000000000/* Generated from ../../../git/cloog/test/donotsimp.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ for (c2=1;c2<=10;c2++) { for (c4=1;c4<=c2;c4++) { S1(c2,c4) ; } for (c4=11;c4<=M;c4++) { S2(c2,c4) ; } } cloog-parma-0.16.1/test/iftest2.c0000644000175000017500000000032211406127443013423 00000000000000/* Generated from ../../../git/cloog/test/iftest2.cloog by CLooG 0.14.0-264-gca47033 gmp bits in 0.00s. */ if ((M >= 1) && (N >= 1)) { for (i=1;i<=N;i++) { for (j=1;j<=M;j++) { S1(i,j); } } } cloog-parma-0.16.1/test/0D-2.c0000644000175000017500000000020111406127443012441 00000000000000/* Generated from ../../../git/cloog/test/0D-2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ if (M >= 0) { S1() ; } cloog-parma-0.16.1/test/0D-1.c0000644000175000017500000000015711406127443012452 00000000000000/* Generated from ../../../git/cloog/test/0D-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ S1() ; cloog-parma-0.16.1/test/rectangle.c0000644000175000017500000000030711406127443014012 00000000000000/* Generated from ../../../git/cloog/test/rectangle.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (c1=0;c1<=2*n;c1++) { for (i=max(0,c1-n);i<=min(c1,n);i++) { S1(i,c1-i) ; } } cloog-parma-0.16.1/test/dot2.c0000644000175000017500000000043611406127443012721 00000000000000/* Generated from ../../../git/cloog/test/dot2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ for (i=1;i<=min(M,N);i++) { S1(i) ; for (j=1;j<=M;j++) { S2(i,j) ; } } for (i=N+1;i<=M;i++) { S1(i) ; } for (i=M+1;i<=N;i++) { for (j=1;j<=M;j++) { S2(i,j) ; } } cloog-parma-0.16.1/test/vivien.c0000644000175000017500000001215211406127364013351 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/vivien.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ if (28*n >= -27) { for (p1=-54*n+4;p1<=4;p1++) { if (p1%2 == 0) { S1((p1-2)/2); } } if (n >= 1) { S3(1); } if ((n <= 1) && (n >= 2)) { S1(2); } for (p1=max(max(5,-54*n+4),4*n+2);p1<=6;p1++) { if (p1%2 == 0) { S1((p1-2)/2); } } if (n >= 2) { S4(1,2); S1(2); S6(1,2); } for (p1=7;p1<=min(9,4*n-2);p1++) { for (p2=ceild(-p1+2,4);p2<=min(-1,floord(-p1+2*n,2));p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } } if ((p1+3)%4 == 0) { S3((p1-1)/4); } if (p1%2 == 0) { S1((p1-2)/2); } if (p1 <= 2*n+2) { if (p1%2 == 0) { S6(1,(p1-2)/2); } if ((p1+1)%2 == 0) { S2((p1-3)/2,1); } } for (p2=max(ceild(-p1+2*n+5,2),ceild(p1-2*n-1,2));p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { S2((p1-2*p2-1)/2,p2); } } } for (p1=10;p1<=min(2*n+58,4*n-2);p1++) { for (p2=ceild(-p1+2,4);p2<=min(floord(-p1+2*n,2),floord(-p1+5,4));p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } } for (p2=ceild(-p1+6,4);p2<=min(min(-1,floord(-p1+2*n,2)),floord(-p1+9,4));p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+6,4));p2<=min(min(-1,floord(-p1+2*n+2,2)),floord(-p1+9,4));p2++) { for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=ceild(-p1+10,4);p2<=min(-1,floord(-p1+2*n,2));p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+10,4));p2<=min(-1,floord(-p1+2*n+2,2));p2++) { if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=max(ceild(-p1+2*n+3,2),ceild(-p1+10,4));p2<=min(-1,floord(-p1+2*n+4,2));p2++) { if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } } if (p1 <= 2*n+4) { if (p1%2 == 0) { S6(2,(p1-4)/2); } if ((p1+3)%4 == 0) { S3((p1-1)/4); } if (p1%2 == 0) { S1((p1-2)/2); } } if (p1 >= 2*n+5) { if ((p1+3)%4 == 0) { S3((p1-1)/4); } if (p1%2 == 0) { S1((p1-2)/2); } } if (p1 <= 2*n+2) { if (p1%2 == 0) { S6(1,(p1-2)/2); } if ((p1+1)%2 == 0) { S2((p1-3)/2,1); } } for (p2=2;p2<=min(floord(-p1+2*n+4,2),floord(p1-3,4));p2++) { if ((p1+1)%2 == 0) { S2((p1-2*p2-1)/2,p2); } } for (p2=max(ceild(-p1+2*n+5,2),ceild(p1-2*n-1,2));p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { S2((p1-2*p2-1)/2,p2); } } } if ((n >= 2) && (n <= 29)) { S2(n,n-1); } for (p1=max(7,4*n);p1<=min(2*n+58,4*n+1);p1++) { if ((p1+3)%4 == 0) { S3((p1-1)/4); } if (p1%2 == 0) { S1((p1-2)/2); } } for (p1=max(max(7,-54*n+4),4*n+2);p1<=2*n+58;p1++) { if (p1%2 == 0) { S1((p1-2)/2); } } for (p1=2*n+59;p1<=4*n-2;p1++) { for (p2=ceild(-p1+2,4);p2<=min(floord(-p1+2*n,2),floord(-p1+5,4));p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } } for (p2=ceild(-p1+6,4);p2<=min(floord(-p1+2*n,2),floord(-p1+9,4));p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+6,4));p2<=min(floord(-p1+2*n+2,2),floord(-p1+9,4));p2++) { for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+10,4));p2<=floord(-p1+2*n+2,2);p2++) { if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=max(ceild(-p1+2*n+3,2),ceild(-p1+10,4));p2<=floord(-p1+2*n+4,2);p2++) { if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } } if ((p1+3)%4 == 0) { S3((p1-1)/4); } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { S2((p1-2*p2-1)/2,p2); } } } if (n >= 30) { S2(n,n-1); } for (p1=max(4*n,2*n+59);p1<=4*n+1;p1++) { if ((p1+3)%4 == 0) { S3((p1-1)/4); } } } cloog-parma-0.16.1/test/gauss.c0000644000175000017500000000060611406127443013172 00000000000000/* Generated from ../../../git/cloog/test/gauss.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.03s. */ if (M >= 2) { for (c2=2;c2<=M;c2++) { for (j=2;j<=M;j++) { S2(1,j,c2) ; } } for (c1=2;c1<=M-1;c1++) { for (c2=c1+1;c2<=M;c2++) { for (j=1;j<=c1-1;j++) { S1(c1,j,c2) ; } for (j=c1+1;j<=M;j++) { S2(c1,j,c2) ; } } } } cloog-parma-0.16.1/test/Makefile.in0000644000175000017500000007431711511607554013766 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # /**-------------------------------------------------------------------** # ** CLooG ** # **-------------------------------------------------------------------** # ** makefile ** # **-------------------------------------------------------------------** #/***************************************************************************** # * CLooG : the Chunky Loop Generator (experimental) * # ***************************************************************************** # * * # * Copyright (C) 2003 Cedric Bastoul * # * * # * This library is free software; you can redistribute it and/or * # * modify it under the terms of the GNU Lesser General Public * # * License as published by the Free Software Foundation; either * # * version 2.1 of the License, or (at your option) any later version. * # * * # * This library is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * # * Lesser General Public License for more details. * # * * # * You should have received a copy of the GNU Lesser General Public * # * License along with this library; if not, write to the Free Software * # * Foundation, Inc., 51 Franklin Street, Fifth Floor, * # * Boston, MA 02110-1301 USA * # * * # * CLooG, the Chunky Loop Generator * # * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * # * This file has been written with the help of the Bart Kienhuis's checking * # * makefile for PipLib. * # * * # *****************************************************************************/ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = generate_test$(EXEEXT) subdir = test DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_submodule.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = PROGRAMS = $(noinst_PROGRAMS) nodist_generate_test_OBJECTS = generate_test-generate_test.$(OBJEXT) generate_test_OBJECTS = $(nodist_generate_test_OBJECTS) generate_test_LDADD = $(LDADD) generate_test_DEPENDENCIES = ../libcloog-ppl.la DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/autoconf/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(nodist_generate_test_SOURCES) DIST_SOURCES = ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITS = @BITS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CD = @CD@ CFLAGS = @CFLAGS@ CFLAGS_WARN = @CFLAGS_WARN@ CLOOG_BUILDDIR = @CLOOG_BUILDDIR@ CLOOG_CPPFLAGS = @CLOOG_CPPFLAGS@ CLOOG_SRCDIR = @CLOOG_SRCDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PPL_CPPFLAGS = @PPL_CPPFLAGS@ PPL_LDFLAGS = @PPL_LDFLAGS@ PPL_LIBS = @PPL_LIBS@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ versioninfo = @versioninfo@ cloog_srcdir = @CLOOG_SRCDIR@ INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include LDADD = ../libcloog-ppl.la generate_test_CPPFLAGS = @CLOOG_CPPFLAGS@ nodist_generate_test_SOURCES = $(cloog_srcdir)/test/generate_test.c ROOT = .. FINITE_CLOOGTEST_C = \ 0D-1 \ 0D-2 \ 0D-3 \ 1point-1 \ 1point-2 \ 4-param \ basic-bounds-1 \ basic-bounds-2 \ basic-bounds-3 \ basic-bounds-4 \ basic-bounds-5 \ basic-bounds-6 \ block \ byu98-1-2-3 \ cholesky \ cholesky2 \ classen \ constbound \ darte \ donotsimp \ dot \ dot2 \ double \ durbin_e_s \ emploi \ esced \ ex1 \ forwardsub-1-1-2 \ forwardsub-2-1-2-3 \ forwardsub-3-1-2 \ gauss \ gesced \ gesced2 \ gesced3 \ guide \ iftest \ iftest2 \ largeur \ levenshtein-1-2-3 \ lex \ lineality-1-2 \ lineality-2-1-2 \ logo \ logopar \ lu \ lu2 \ lub \ lux \ min-1-1 \ min-2-1 \ min-3-1 \ min-4-1 \ mode \ multi-mm-1 \ no_lindep \ orc \ rectangle \ singleton \ square+triangle-1-1-2-3 \ swim \ test \ thomasset \ tiling \ uday_scalars \ union \ vivien \ vivien2 \ walters \ walters2 \ wavefront \ yosr \ yosr2 \ ./non_optimal/nul_complex1 \ ./non_optimal/usvd_e_t \ ./non_optimal/youcef \ ./reservoir/cholesky2 \ ./reservoir/fusion1 \ ./reservoir/fusion2 \ ./reservoir/jacobi2 \ ./reservoir/jacobi3 \ ./reservoir/lim-lam1 \ ./reservoir/lim-lam2 \ ./reservoir/lim-lam3 \ ./reservoir/lim-lam4 \ ./reservoir/lim-lam5 \ ./reservoir/lim-lam6 \ ./reservoir/liu-zhuge1 \ ./reservoir/loechner3 \ ./reservoir/loechner4 \ ./reservoir/loechner5 \ ./reservoir/mg-interp2 \ ./reservoir/mg-interp \ ./reservoir/mg-psinv \ ./reservoir/mg-resid \ ./reservoir/mg-rprj3 \ ./reservoir/pingali1 \ ./reservoir/pingali2 \ ./reservoir/pingali3 \ ./reservoir/pingali4 \ ./reservoir/pingali5 \ ./reservoir/pingali6 \ ./reservoir/QR \ ./reservoir/tang-xue1 \ ./reservoir/two CLOOGTEST_C = \ infinite \ infinite2 \ infinite3 \ infinite4 \ $(FINITE_CLOOGTEST_C) # ./reservoir/long \ # faber CLOOGTEST_FORTRAN = \ dartef \ iftestf \ levenshtein-1-2-3f \ yosrf CLOOGTEST_STRIDED = \ basic-bounds-2 \ mod4 \ nul_basic1 \ nul_basic2 \ nul_lcpc \ multi-stride \ multi-stride2 \ reservoir/bastoul3 \ reservoir/stride \ reservoir/stride2 SPECIAL_TESTS = \ vasilache \ merge \ equality \ equality2 \ param-split \ stride \ stride2 \ sor1d SPECIAL_OPTIONS = \ 'vasilache -f 8 -l 9' \ 'merge -f -1' \ 'equality -f -1 -l 2 -override' \ 'equality2 -f -1 -l 4 -esp 1 -override' \ 'param-split -f -1' \ 'stride -f -1 -strides 1' \ 'stride2 -f -1 -strides 1' \ 'sor1d -f -1' EXTRA_DIST = \ $(CLOOGTEST_C:%=%.c) \ $(CLOOGTEST_FORTRAN:%=%.f) \ $(CLOOGTEST_STRIDED:%=%.c) \ $(SPECIAL_TESTS:%=%.c) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list generate_test$(EXEEXT): $(generate_test_OBJECTS) $(generate_test_DEPENDENCIES) @rm -f generate_test$(EXEEXT) $(LINK) $(generate_test_OBJECTS) $(generate_test_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/generate_test-generate_test.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< generate_test-generate_test.o: $(cloog_srcdir)/test/generate_test.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(generate_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT generate_test-generate_test.o -MD -MP -MF $(DEPDIR)/generate_test-generate_test.Tpo -c -o generate_test-generate_test.o `test -f '$(cloog_srcdir)/test/generate_test.c' || echo '$(srcdir)/'`$(cloog_srcdir)/test/generate_test.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/generate_test-generate_test.Tpo $(DEPDIR)/generate_test-generate_test.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/test/generate_test.c' object='generate_test-generate_test.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(generate_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o generate_test-generate_test.o `test -f '$(cloog_srcdir)/test/generate_test.c' || echo '$(srcdir)/'`$(cloog_srcdir)/test/generate_test.c generate_test-generate_test.obj: $(cloog_srcdir)/test/generate_test.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(generate_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT generate_test-generate_test.obj -MD -MP -MF $(DEPDIR)/generate_test-generate_test.Tpo -c -o generate_test-generate_test.obj `if test -f '$(cloog_srcdir)/test/generate_test.c'; then $(CYGPATH_W) '$(cloog_srcdir)/test/generate_test.c'; else $(CYGPATH_W) '$(srcdir)/$(cloog_srcdir)/test/generate_test.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/generate_test-generate_test.Tpo $(DEPDIR)/generate_test-generate_test.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/test/generate_test.c' object='generate_test-generate_test.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(generate_test_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o generate_test-generate_test.obj `if test -f '$(cloog_srcdir)/test/generate_test.c'; then $(CYGPATH_W) '$(cloog_srcdir)/test/generate_test.c'; else $(CYGPATH_W) '$(srcdir)/$(cloog_srcdir)/test/generate_test.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am FORCE: ../libcloog-ppl.la: FORCE cd ..; $(MAKE) $(AM_MAKEFLAGS) libcloog-ppl.la generate: @echo " /*-----------------------------------------------*" @echo " * Generate files *" @echo " *-----------------------------------------------*/" @for x in $(CLOOGTEST_C) ; do \ echo "Generate $$x.c" ; \ $(top_builddir)/cloog $(cloog_srcdir)/test/$$x.cloog -o $(srcdir)/$$x.c ; \ done ; \ for x in $(CLOOGTEST_FORTRAN) ; do \ echo "Generate $$x.f" ; \ $(top_builddir)/cloog $(cloog_srcdir)/test/$$x.cloog -o $(srcdir)/$$x.f ; \ done ; \ for x in $(CLOOGTEST_STRIDED) ; do \ echo "Generate $$x.c" ; \ $(top_builddir)/cloog $(cloog_srcdir)/test/$$x.cloog \ -strides 1 -o $(srcdir)/$$x.c ; \ done ; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo "Generate file $$x ($$options)" ; \ $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog \ $$options > $(srcdir)/$$x.c ; \ done; done valgrind: @echo " /*-----------------------------------------------*" @echo " * Checking files by Valgrind *" @echo " *-----------------------------------------------*/" for x in $(CLOOGTEST_C) ; do \ echo "Valgrinding $$x.c" ; \ valgrind $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog ; \ done ; \ for x in $(CLOOGTEST_FORTRAN) ; do \ echo "Valgrinding $$x.f" ; \ valgrind $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog ; \ done test_run: generate_test$(EXEEXT) @echo " /*-----------------------------------------------*" @echo " * Testing CLooG *" @echo " *-----------------------------------------------*/" @failedtest=0 ; \ echo "--- Testing C files... (correct output)" ; \ for x in $(FINITE_CLOOGTEST_C) ; do \ echo -n "Verify file $$x... " ; \ echo -n "generating... " ; \ $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $(cloog_srcdir)/test/$$x.cloog > test_test.c ; \ ./generate_test$(EXEEXT) < $(cloog_srcdir)/test/$$x.cloog > test_main.c; \ echo -n "compiling... " ; \ $(COMPILE) -c test_test.c; \ $(COMPILE) -Dtest=good -c $(cloog_srcdir)/test/$$x.good.c -o test_good.o; \ $(LINK) test_main.c test_test.o test_good.o > /dev/null; \ echo -n "comparing... " ; \ ./test_run$(EXEEXT); \ result=$$?; \ if test "$$result" -ne "0" ; then \ failedtest=`expr $$failedtest + 1` ; \ fi; \ $(RM) $@; \ echo; \ done; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo -n "Verify file $$x ($$options)... " ; \ echo -n "generating... " ; \ $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $$options $(cloog_srcdir)/test/$$x.cloog > test_test.c ; \ ./generate_test$(EXEEXT) < $(cloog_srcdir)/test/$$x.cloog > test_main.c; \ echo -n "compiling... " ; \ $(COMPILE) -c test_test.c; \ $(COMPILE) -Dtest=good -c $(cloog_srcdir)/test/$$x.good.c -o test_good.o; \ $(LINK) test_main.c test_test.o test_good.o > /dev/null; \ echo -n "comparing... " ; \ ./test_run$(EXEEXT); \ result=$$?; \ if test "$$result" -ne "0" ; then \ failedtest=`expr $$failedtest + 1` ; \ fi; \ $(RM) $@; \ echo; \ done; done; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo -n "Verify file $$x ($$options -sh 1)... " ; \ echo -n "generating... " ; \ $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $$options -sh 1 $(cloog_srcdir)/test/$$x.cloog > test_test.c ; \ ./generate_test$(EXEEXT) < $(cloog_srcdir)/test/$$x.cloog > test_main.c; \ echo -n "compiling... " ; \ $(COMPILE) -c test_test.c; \ $(COMPILE) -Dtest=good -c $(cloog_srcdir)/test/$$x.good.c -o test_good.o; \ $(LINK) test_main.c test_test.o test_good.o > /dev/null; \ echo -n "comparing... " ; \ ./test_run$(EXEEXT); \ result=$$?; \ if test "$$result" -ne "0" ; then \ failedtest=`expr $$failedtest + 1` ; \ fi; \ $(RM) $@; \ echo; \ done; done; \ if [ $$failedtest != 0 ] ; then \ echo "$$failedtest tests failed" ; \ else \ echo "CLooG works correctly :-) !" ; \ fi test: @echo " /*-----------------------------------------------*" @echo " * Testing CLooG *" @echo " *-----------------------------------------------*/" @failedtest=0 ; \ echo "--- Testing C files... (expected output)" ; \ for x in $(CLOOGTEST_C) ; do \ echo "Verify file $$x" ; \ $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done ; \ echo "--- Testing FORTRAN files..." ; \ for x in $(CLOOGTEST_FORTRAN) ; do \ echo "Verify file $$x" ; \ $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.f ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done ; \ echo "--- Testing STRIDED files..." ; \ for x in $(CLOOGTEST_STRIDED) ; do \ echo "Verify file $$x" ; \ $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog \ -strides 1 > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done ; \ echo "--- Testing SPECIAL OPTIONS files..." ; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo "Verify file $$x ($$options)" ; \ $(top_builddir)/cloog$(EXEEXT) $(cloog_srcdir)/test/$$x.cloog \ $$options > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done; done; \ rm ttemp ; \ if [ $$failedtest != 0 ] ; then \ echo "$$failedtest tests failed" ; \ else \ echo "CLooG works correctly :-) !" ; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: cloog-parma-0.16.1/test/multi-stride2.c0000644000175000017500000000030011406127443014543 00000000000000/* Generated from ../../../git/cloog/test/multi-stride2.cloog by CLooG 0.14.0-253-ge300ff5 gmp bits in 0.00s. */ for (i=2;i<=100;i+=3) { if ((i+1)%2 == 0) { S1(i,(i-1)/2,(i-2)/3); } } cloog-parma-0.16.1/test/forwardsub-3-1-2.c0000644000175000017500000000064211406127443014663 00000000000000/* Generated from ../../../git/cloog/test/forwardsub-3-1-2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ S3(2,1) ; S1(3,1) ; S1(4,1) ; S4(4,2) ; for (i=5;i<=M+1;i++) { S1(i,1) ; for (j=2;j<=floord(i-1,2);j++) { S2(i,j) ; } if (i%2 == 0) { S4(i,i/2) ; } } for (i=M+2;i<=2*M-1;i++) { for (j=i-M;j<=floord(i-1,2);j++) { S2(i,j) ; } if (i%2 == 0) { S4(i,i/2) ; } } S4(2*M,M) ; cloog-parma-0.16.1/test/min-2-1.c0000644000175000017500000000043411406127443013127 00000000000000/* Generated from ../../../git/cloog/test/min-2-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if ((M >= 0) && (N >= 1)) { for (i=1;i<=N;i++) { for (j=0;j<=min(min(M,i),-i+N);j++) { for (k=0;k<=min(min(M,i),-i+N);k++) { S1(i,j,k) ; } } } } cloog-parma-0.16.1/test/lu2.c0000644000175000017500000000074111406127443012552 00000000000000/* Generated from ../../../git/cloog/test/lu2.cloog by CLooG 0.14.0-249-g82c3b0f gmp bits in 0.02s. */ if (n >= 2) { for (l=2;l<=n;l++) { S1(1,n,1,l); } for (i=2;i<=n-1;i++) { for (j=2;j<=n-1;j++) { for (k=1;k<=min(i-1,j-1);k++) { S2(i,j,k,j,i); } } for (k=1;k<=i-1;k++) { S2(i,n,k,n,i); } for (l=i+1;l<=n;l++) { S1(i,n,i,l); } } for (j=2;j<=n;j++) { for (k=1;k<=j-1;k++) { S2(n,j,k,j,n); } } } cloog-parma-0.16.1/test/equality2.c0000644000175000017500000000116611406127443013771 00000000000000/* Generated from ../../../git/cloog-parma/cloog-core/test/equality2.cloog by CLooG 0.14.0-275-g15c65cd gmp bits. */ for (i0=1;i0<=10000;i0++) { for (i1=1000;i1<=1016;i1++) { for (i2=1;i2<=min(-2*i1+2033,2*i1-1999);i2++) { for (i3=ceild(2*i1-i2-1967,32);i3<=floord(-i2+33,16);i3++) { if ((i2 == 1) && (i3 == 2)) { if (i1%2 == 0) { S1(i0,i1,i2,i3,i0,(i1+2)/2,i1-999,i0,i1-999,(i1-998)/2,(i1-998)/2); } } if ((2*i1 == i2+1999) && (i3 == 1)) { S2(i0,i1,i2,i3,i0,2*i1-1000,1,2,i0,i1-499,2*i1-1999,i0,2*i1-1999,i1-999,i1-999); } } } } } cloog-parma-0.16.1/test/stride.c0000644000175000017500000000054511406127443013344 00000000000000/* Generated from ../../..//git/cloog-parma/cloog-core/test/stride.cloog by CLooG 0.14.0-275-g15c65cd gmp bits. */ for (c1=3;c1<=100;c1++) { for (c2=max(ceild(4*c1-100,9),ceild(-c1+25,22));c2<=floord(c1,3);c2++) { if ((c1 == 25) && (c2 == 0)) { S1(25); } if (c1 == 3*c2) { if (c1%3 == 0) { S2(c1,c1/3); } } } } cloog-parma-0.16.1/test/non_optimal/0000755000175000017500000000000011511607626014304 500000000000000cloog-parma-0.16.1/test/non_optimal/nul_complex1.c0000644000175000017500000000050111406127443016767 00000000000000/* Generated from ../../../git/cloog/test/./non_optimal/nul_complex1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ if (n >= 0) { for (c1=0;c1<=5*n;c1++) { for (c2=max(ceild(2*c1,3),c1-n);c2<=min(floord(2*c1+2*n,3),c1);c2++) { if (c2%2 == 0) { S1((-2*c1+3*c2)/2,c1-c2) ; } } } } cloog-parma-0.16.1/test/non_optimal/usvd_e_t.c0000644000175000017500000001146711406127364016210 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/./non_optimal/usvd_e_t.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ for (i=0;i<=2;i++) { S1(i,0,0); S2(i,0,0); for (j=1;j<=4;j++) { S2(i,j,0); } } S1(3,0,0); S2(3,0,0); for (j=1;j<=4;j++) { S2(3,j,0); } for (j=7;j<=11;j++) { S8(3,j,0); } S1(4,0,0); S2(4,0,0); S3(4,0,0); S5(4,0,0); for (j=1;j<=4;j++) { S2(4,j,0); S5(4,j,0); } for (j=7;j<=11;j++) { S8(4,j,0); } for (i=5;i<=6;i++) { if (i == 6) { S6(i,-4,0); } S6(i,i-9,0); S7(i,i-9,0); for (j=i-8;j<=-1;j++) { S7(i,j,0); } S3(i,0,0); S7(i,0,0); if (i == 6) { S4(i,1,-1); } S4(i,i-4,-1); S5(i,i-4,0); for (j=i-3;j<=4;j++) { S5(i,j,0); } for (j=7;j<=11;j++) { S8(i,j,0); } } for (j=-4;j<=-3;j++) { S6(7,j,0); } S6(7,-2,0); S7(7,-2,0); S7(7,-1,0); S3(7,0,0); S7(7,0,0); for (j=1;j<=2;j++) { S4(7,j,-1); } S4(7,3,-1); S5(7,3,0); S5(7,4,0); S9(7,4,0); S10(7,4,0); S11(7,4,0); S21(7,4,0); S23(7,4,0); S11(7,4,1); S16(7,4,1); S17(7,4,1); for (k=2;k<=4;k++) { S11(7,4,k); } S12(7,5,0); S21(7,5,0); S22(7,5,0); S23(7,5,0); S12(7,5,1); S16(7,5,1); S17(7,5,1); for (k=2;k<=4;k++) { S12(7,5,k); } S21(7,6,0); S22(7,6,0); S23(7,6,0); for (j=7;j<=8;j++) { S8(7,j,0); S21(7,j,0); S22(7,j,0); S23(7,j,0); } S8(7,9,0); S22(7,9,0); for (j=10;j<=11;j++) { S8(7,j,0); } for (j=-4;j<=-2;j++) { S6(8,j,0); } S6(8,-1,0); S7(8,-1,0); S3(8,0,0); S7(8,0,0); S19(8,1,-2); S4(8,1,-1); S19(8,1,-1); S19(8,1,0); S15(8,1,4); S18(8,1,4); for (k=-4;k<=-3;k++) { S14(8,2,k); S20(8,2,k); } S14(8,2,-2); S19(8,2,-2); S20(8,2,-2); S4(8,2,-1); S14(8,2,-1); S19(8,2,-1); S20(8,2,-1); S14(8,2,0); S19(8,2,0); S20(8,2,0); S15(8,2,4); S18(8,2,4); for (k=-4;k<=-2;k++) { S14(8,3,k); S20(8,3,k); } S4(8,3,-1); S14(8,3,-1); S20(8,3,-1); S14(8,3,0); S20(8,3,0); S15(8,3,4); S18(8,3,4); for (k=-4;k<=-2;k++) { S14(8,4,k); S20(8,4,k); } S4(8,4,-1); S14(8,4,-1); S20(8,4,-1); S5(8,4,0); S9(8,4,0); S10(8,4,0); S14(8,4,0); S20(8,4,0); S23(8,4,0); S13(8,4,1); S21(8,4,1); S23(8,4,1); S24(8,4,1); S13(8,4,2); S16(8,4,2); S17(8,4,2); S24(8,4,2); S13(8,4,3); S24(8,4,3); S13(8,4,4); S15(8,4,4); S23(8,5,0); S11(8,5,1); S21(8,5,1); S22(8,5,1); S23(8,5,1); S24(8,5,1); S11(8,5,2); S16(8,5,2); S17(8,5,2); S24(8,5,2); S11(8,5,3); S24(8,5,3); S11(8,5,4); S15(8,5,4); S23(8,6,0); S12(8,6,1); S21(8,6,1); S22(8,6,1); S23(8,6,1); S24(8,6,1); S12(8,6,2); S16(8,6,2); S17(8,6,2); S24(8,6,2); S12(8,6,3); S24(8,6,3); S12(8,6,4); for (j=7;j<=8;j++) { S23(8,j,0); S21(8,j,1); S22(8,j,1); S23(8,j,1); S24(8,j,1); for (k=2;k<=3;k++) { S24(8,j,k); } } S22(8,9,1); S7(9,0,0); for (j=1;j<=2;j++) { for (k=-1;k<=0;k++) { S19(9,j,k); } for (k=4;k<=5;k++) { S15(9,j,k); S18(9,j,k); } } S20(9,3,-4); for (k=-3;k<=-2;k++) { S14(9,3,k); S20(9,3,k); } for (k=-1;k<=0;k++) { S14(9,3,k); S19(9,3,k); S20(9,3,k); } for (k=4;k<=5;k++) { S15(9,3,k); S18(9,3,k); } S20(9,4,-4); for (k=-3;k<=-1;k++) { S14(9,4,k); S20(9,4,k); } S9(9,4,0); S10(9,4,0); S14(9,4,0); S20(9,4,0); S23(9,4,0); S23(9,4,1); S13(9,4,2); S21(9,4,2); S23(9,4,2); S24(9,4,2); S13(9,4,3); S16(9,4,3); S17(9,4,3); S24(9,4,3); S13(9,4,4); S15(9,4,4); S18(9,4,4); S15(9,4,5); S18(9,4,5); for (k=0;k<=1;k++) { S23(9,5,k); } S13(9,5,2); S21(9,5,2); S22(9,5,2); S23(9,5,2); S24(9,5,2); S13(9,5,3); S16(9,5,3); S17(9,5,3); S24(9,5,3); S13(9,5,4); S15(9,5,4); S15(9,5,5); for (k=0;k<=1;k++) { S23(9,6,k); } S11(9,6,2); S21(9,6,2); S22(9,6,2); S23(9,6,2); S24(9,6,2); S11(9,6,3); S16(9,6,3); S17(9,6,3); S24(9,6,3); S11(9,6,4); for (k=0;k<=1;k++) { S23(9,7,k); } S12(9,7,2); S21(9,7,2); S22(9,7,2); S23(9,7,2); S24(9,7,2); S12(9,7,3); S16(9,7,3); S17(9,7,3); S24(9,7,3); S12(9,7,4); for (k=0;k<=1;k++) { S23(9,8,k); } S21(9,8,2); S22(9,8,2); S23(9,8,2); S24(9,8,2); S24(9,8,3); S22(9,9,2); for (j=1;j<=3;j++) { S19(10,j,0); S26(10,j,3); S15(10,j,4); S18(10,j,4); S25(10,j,4); for (k=5;k<=6;k++) { S15(10,j,k); S18(10,j,k); } } for (k=-4;k<=-3;k++) { S20(10,4,k); } for (k=-2;k<=-1;k++) { S14(10,4,k); S20(10,4,k); } S9(10,4,0); S10(10,4,0); S14(10,4,0); S19(10,4,0); S20(10,4,0); S13(10,4,3); S21(10,4,3); S24(10,4,3); S26(10,4,3); S13(10,4,4); S15(10,4,4); S16(10,4,4); S17(10,4,4); S18(10,4,4); S25(10,4,4); for (k=5;k<=6;k++) { S15(10,4,k); S18(10,4,k); } S13(10,5,3); S21(10,5,3); S22(10,5,3); S24(10,5,3); S26(10,5,3); S13(10,5,4); S15(10,5,4); S16(10,5,4); S17(10,5,4); S18(10,5,4); S25(10,5,4); for (k=5;k<=6;k++) { S15(10,5,k); S18(10,5,k); } S13(10,6,3); S21(10,6,3); S22(10,6,3); S24(10,6,3); S13(10,6,4); S16(10,6,4); S17(10,6,4); S11(10,7,3); S21(10,7,3); S22(10,7,3); S24(10,7,3); S11(10,7,4); S16(10,7,4); S17(10,7,4); S12(10,8,3); S21(10,8,3); S22(10,8,3); S24(10,8,3); S12(10,8,4); S16(10,8,4); S17(10,8,4); S22(10,9,3); for (i=11;i<=14;i++) { for (j=1;j<=5;j++) { S26(i,j,3); S25(i,j,4); } } cloog-parma-0.16.1/test/non_optimal/youcef.c0000644000175000017500000000053311406127364015662 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/./non_optimal/youcef.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ for (i=0;i<=5;i++) { if (i == 5) { S1(i,5); S2(i,5); S3(i,5); } if (i <= 4) { S1(i,i); S2(i,i); } for (j=i+1;j<=4;j++) { S2(i,j); } if (i <= 4) { S2(i,5); S3(i,5); } } cloog-parma-0.16.1/test/nul_lcpc.c0000644000175000017500000000050711406127443013647 00000000000000/* Generated from ../../../git/cloog/test/nul_lcpc.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.03s. */ for (i=1;i<=6;i+=2) { for (j=1;j<=i;j++) { S1(i,(i-1)/2,j) ; S2(i,(i-1)/2,j) ; } for (j=i+1;j<=p;j++) { S1(i,(i-1)/2,j) ; } } for (i=7;i<=m;i+=2) { for (j=1;j<=p;j++) { S1(i,(i-1)/2,j) ; } } cloog-parma-0.16.1/test/infinite2.c0000644000175000017500000000032611406127443013736 00000000000000/* Generated from ../../../git/cloog/test/infinite2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (i=1;i<=N;i++) { S1(i) ; for (j=1;j<=M;j++) { S2(i,j) ; } } for (i=N+1;;i++) { S1(i) ; } cloog-parma-0.16.1/test/vasilache.c0000644000175000017500000000127011406127443014005 00000000000000/* Generated from ../../../git/cloog/test/vasilache.cloog by CLooG 0.14.0-261-g26b30f1 gmp bits in 0.07s. */ S1(); S2(); for (p1=0;p1<=N-1;p1++) { for (p3=0;p3<=N-1;p3++) { S4(p1,p3); S5(p1,p3); } } for (p1=0;p1<=N-1;p1++) { for (p3=0;p3<=N-1;p3++) { for (p5=0;p5<=floord(N-1,32);p5++) { if (p5 >= 0) { S7(p1,p3,p5,32*p5); } if (p5 <= -1) { S7(p1,p3,p5,0); } for (p7=max(1,32*p5+1);p7<=min(N-1,32*p5+31);p7++) { S6(p1,p3,p5,p7-1); S7(p1,p3,p5,p7); } if (p5 >= ceild(N-32,32)) { S6(p1,p3,p5,N-1); } if (p5 <= floord(N-33,32)) { S6(p1,p3,p5,32*p5+31); } } } } S8(); cloog-parma-0.16.1/test/infinite.c0000644000175000017500000000036311406127443013655 00000000000000/* Generated from ../../../git/cloog/test/infinite.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ for (;i<=0;i++) { S1(i) ; } for (i=1;i<=N;i++) { S1(i) ; for (j=1;j<=M;j++) { S2(i,j) ; } } for (i=N+1;;i++) { S1(i) ; } cloog-parma-0.16.1/test/largeur.c0000644000175000017500000000031611406127443013507 00000000000000/* Generated from ../../../git/cloog/test/largeur.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ if (M >= 1) { for (c1=1;c1<=M;c1++) { for (c2=1;c2<=c1;c2++) { S1(c2,c1) ; } } } cloog-parma-0.16.1/test/lub.c0000644000175000017500000000044211406127443012630 00000000000000/* Generated from ../../../git/cloog/test/lub.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ if (M >= 2) { for (i=1;i<=M-1;i++) { for (j=i+1;j<=M;j++) { S1(i,j) ; for (k=i+1;k<=M;k++) { S2(i,j,k) ; S3(i,j,k) ; } S4(i,j) ; } } } cloog-parma-0.16.1/test/singleton.c0000644000175000017500000000017411406127443014052 00000000000000/* Generated from /home/skimo/git/cloog/test/singleton.cloog by CLooG 0.14.0-242-g720faff gmp bits in 0.00s. */ S2(); S1(); cloog-parma-0.16.1/test/multi-mm-1.c0000644000175000017500000000036611406127363013753 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/multi-mm-1.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ for (i=0;i<=M;i++) { for (j=0;j<=min(N,i);j++) { S1(i,j); S2(i,j); } for (j=N+1;j<=i;j++) { S1(i,j); } } cloog-parma-0.16.1/test/basic-bounds-3.c0000644000175000017500000000022311406127443014554 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (i=0;i<=M;i++) { S1(i) ; } cloog-parma-0.16.1/test/nul_basic2.c0000644000175000017500000000027211406127443014070 00000000000000/* Generated from ../../../git/cloog/test/nul_basic2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (i=2;i<=n;i+=2) { if (i%4 == 0) { S2(i,i/4) ; } S1(i,i/2) ; } cloog-parma-0.16.1/test/double.c0000644000175000017500000000035411406127443013322 00000000000000/* Generated from ../../../git/cloog/test/double.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (M >= 0) { for (i=0;i<=M;i++) { S1(i) ; for (j=0;j<=N;j++) { S2(i,j) ; S3(i,j) ; } S4(i) ; } } cloog-parma-0.16.1/test/infinite3.c0000644000175000017500000000050111406127443013732 00000000000000/* Generated from ../../../git/cloog/test/infinite3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.03s. */ for (;i<=0;i++) { S1(i) ; } for (i=1;i<=min(M,N);i++) { S1(i) ; for (j=1;j<=M;j++) { S2(i,j) ; } } for (i=N+1;i<=M;i++) { S1(i) ; } for (i=M+1;i<=N;i++) { for (j=1;j<=M;j++) { S2(i,j) ; } } cloog-parma-0.16.1/test/min-1-1.c0000644000175000017500000000034411406127443013126 00000000000000/* Generated from ../../../git/cloog/test/min-1-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if ((M >= 0) && (N >= 1)) { for (i=1;i<=N;i++) { for (j=0;j<=min(min(M,i),-i+N);j++) { S1(i,j) ; } } } cloog-parma-0.16.1/test/basic-bounds-2.c0000644000175000017500000000017211406127443014556 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ S1(0) ; cloog-parma-0.16.1/test/walters.c0000644000175000017500000000137111406127443013531 00000000000000/* Generated from ../../../git/cloog/test/walters.cloog by CLooG 0.14.0-261-g26b30f1 gmp bits in 0.02s. */ div36 = 0; S2(1,div36,1,0); S4(1,div36,1,0); S3(2,0,1,1); S4(2,0,1,1); for (i=3;i<=10;i++) { if ((i+2)%3 <= 1) { div36 = floord(i-1,3); if ((i+1)%3 <= 1) { div37 = floord(i+1,3); if (i%3 <= 1) { div38 = floord(i,3); S4(i,div36,div37,div38); } if ((i+1)%3 == 0) { S3(i,div36,div37,(i+1)/3); S4(i,div36,div37,(i+1)/3); } } if ((i+2)%3 == 0) { div38 = floord(i,3); S2(i,div36,(i+2)/3,div38); S4(i,div36,(i+2)/3,div38); } } if (i%3 == 0) { div37 = floord(i+1,3); div38 = floord(i,3); S1(i,i/3,div37,div38); S4(i,i/3,div37,div38); } } cloog-parma-0.16.1/test/vivien2.c0000644000175000017500000000762611406127364013445 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/vivien2.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ for (p1=-54*n+4;p1<=4;p1++) { if (p1%2 == 0) { S1((p1-2)/2); } } S3(1); S4(1,2); S1(2); S6(1,2); for (p1=7;p1<=9;p1++) { for (p2=ceild(-p1+2,4);p2<=-1;p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } } if ((p1+3)%4 == 0) { S3((p1-1)/4); } if (p1%2 == 0) { S1((p1-2)/2); } if (p1%2 == 0) { S6(1,(p1-2)/2); } if ((p1+1)%2 == 0) { S2((p1-3)/2,1); } } for (p1=10;p1<=2*n+58;p1++) { for (p2=ceild(-p1+2,4);p2<=min(floord(-p1+2*n,2),floord(-p1+5,4));p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } } for (p2=ceild(-p1+6,4);p2<=min(min(-1,floord(-p1+2*n,2)),floord(-p1+9,4));p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+6,4));p2<=min(floord(-p1+2*n+2,2),floord(-p1+9,4));p2++) { for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=ceild(-p1+10,4);p2<=min(-1,floord(-p1+2*n,2));p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+10,4));p2<=min(-1,floord(-p1+2*n+2,2));p2++) { if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=max(ceild(-p1+2*n+3,2),ceild(-p1+10,4));p2<=min(-1,floord(-p1+2*n+4,2));p2++) { if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } } if (p1 <= 2*n+4) { if (p1%2 == 0) { S6(2,(p1-4)/2); } if ((p1+3)%4 == 0) { S3((p1-1)/4); } if (p1%2 == 0) { S1((p1-2)/2); } } if (p1 >= 2*n+5) { if ((p1+3)%4 == 0) { S3((p1-1)/4); } if (p1%2 == 0) { S1((p1-2)/2); } } if (p1 <= 2*n+2) { if (p1%2 == 0) { S6(1,(p1-2)/2); } if ((p1+1)%2 == 0) { S2((p1-3)/2,1); } } if (p1 == 2*n+3) { if ((p1+1)%2 == 0) { S2((p1-3)/2,1); } } for (p2=max(2,ceild(p1-2*n-1,2));p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { S2((p1-2*p2-1)/2,p2); } } } for (p1=2*n+59;p1<=4*n-2;p1++) { for (p2=ceild(-p1+2,4);p2<=min(floord(-p1+2*n,2),floord(-p1+5,4));p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } } for (p2=ceild(-p1+6,4);p2<=min(floord(-p1+2*n,2),floord(-p1+9,4));p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+6,4));p2<=min(floord(-p1+2*n+2,2),floord(-p1+9,4));p2++) { for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+10,4));p2<=floord(-p1+2*n+2,2);p2++) { if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=max(ceild(-p1+2*n+3,2),ceild(-p1+10,4));p2<=floord(-p1+2*n+4,2);p2++) { if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } } if ((p1+3)%4 == 0) { S3((p1-1)/4); } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { S2((p1-2*p2-1)/2,p2); } } } S2(n,n-1); for (p1=4*n;p1<=4*n+1;p1++) { if ((p1+3)%4 == 0) { S3((p1-1)/4); } } cloog-parma-0.16.1/test/swim.c0000644000175000017500000002643311406127443013035 00000000000000/* Generated from ../../../git/cloog/test/swim.cloog by CLooG 0.14.0-262-g4b60cd5 gmp bits in 0.42s. */ if (M == 1) { S1(); S2(); S3(); S4(); S5(); S6(); S7(); S8(); S9(); S10(); S11(); S12(); S13(); S14(); S15(); S16(); S17(); S18(); S19(); S20(); S21(); S22(); S23(); S24(); S25(); S26(); S27(); for (p1=1;p1<=N;p1++) { for (p3=1;p3<=N;p3++) { S28(p1,p3); S29(p1,p3); S30(p1,p3); } S31(p1); } S32(); S33(); S34(); if (O <= 1) { S35(); } S36(); S37(); if ((N >= 1) && (Q >= 1) && (R >= 1)) { for (p1=2;p1<=P;p1++) { S38(p1); S39(p1); for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S40(p1,p3,p5); S41(p1,p3,p5); S42(p1,p3,p5); S43(p1,p3,p5); } } for (p3=1;p3<=Q;p3++) { S44(p1,p3); S45(p1,p3); S46(p1,p3); S47(p1,p3); } for (p3=1;p3<=R;p3++) { S48(p1,p3); S49(p1,p3); S50(p1,p3); S51(p1,p3); } S52(p1); S53(p1); S54(p1); S55(p1); S56(p1); S57(p1); S58(p1); for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S59(p1,p3,p5); S60(p1,p3,p5); S61(p1,p3,p5); } } for (p3=1;p3<=Q;p3++) { S62(p1,p3); S63(p1,p3); S64(p1,p3); } for (p3=1;p3<=R;p3++) { S65(p1,p3); S66(p1,p3); S67(p1,p3); } S68(p1); S69(p1); S70(p1); S71(p1); S72(p1); S73(p1); S74(p1); S75(p1); S76(p1); S77(p1); S78(p1); S79(p1); S80(p1); S81(p1); S82(p1); S83(p1); S84(p1); S85(p1); S86(p1); S87(p1); S88(p1); S89(p1); S90(p1); S91(p1); S92(p1); S93(p1); S94(p1); for (p3=1;p3<=N;p3++) { for (p5=1;p5<=N;p5++) { S95(p1,p3,p5); S96(p1,p3,p5); S97(p1,p3,p5); } S98(p1,p3); } S99(p1); S100(p1); S101(p1); for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S102(p1,p3,p5); S103(p1,p3,p5); S104(p1,p3,p5); S105(p1,p3,p5); S106(p1,p3,p5); S107(p1,p3,p5); } } for (p3=1;p3<=Q;p3++) { S108(p1,p3); S109(p1,p3); S110(p1,p3); S111(p1,p3); S112(p1,p3); S113(p1,p3); } for (p3=1;p3<=R;p3++) { S114(p1,p3); S115(p1,p3); S116(p1,p3); S117(p1,p3); S118(p1,p3); S119(p1,p3); } S120(p1); S121(p1); S122(p1); S123(p1); S124(p1); S125(p1); } } if ((N <= 0) && (Q >= 1) && (R >= 1)) { for (p1=2;p1<=P;p1++) { S38(p1); S39(p1); for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S40(p1,p3,p5); S41(p1,p3,p5); S42(p1,p3,p5); S43(p1,p3,p5); } } for (p3=1;p3<=Q;p3++) { S44(p1,p3); S45(p1,p3); S46(p1,p3); S47(p1,p3); } for (p3=1;p3<=R;p3++) { S48(p1,p3); S49(p1,p3); S50(p1,p3); S51(p1,p3); } S52(p1); S53(p1); S54(p1); S55(p1); S56(p1); S57(p1); S58(p1); for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S59(p1,p3,p5); S60(p1,p3,p5); S61(p1,p3,p5); } } for (p3=1;p3<=Q;p3++) { S62(p1,p3); S63(p1,p3); S64(p1,p3); } for (p3=1;p3<=R;p3++) { S65(p1,p3); S66(p1,p3); S67(p1,p3); } S68(p1); S69(p1); S70(p1); S71(p1); S72(p1); S73(p1); S74(p1); S75(p1); S76(p1); S77(p1); S78(p1); S79(p1); S80(p1); S81(p1); S82(p1); S83(p1); S84(p1); S85(p1); S86(p1); S87(p1); S88(p1); S89(p1); S90(p1); S91(p1); S92(p1); S93(p1); S94(p1); S99(p1); S100(p1); S101(p1); for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S102(p1,p3,p5); S103(p1,p3,p5); S104(p1,p3,p5); S105(p1,p3,p5); S106(p1,p3,p5); S107(p1,p3,p5); } } for (p3=1;p3<=Q;p3++) { S108(p1,p3); S109(p1,p3); S110(p1,p3); S111(p1,p3); S112(p1,p3); S113(p1,p3); } for (p3=1;p3<=R;p3++) { S114(p1,p3); S115(p1,p3); S116(p1,p3); S117(p1,p3); S118(p1,p3); S119(p1,p3); } S120(p1); S121(p1); S122(p1); S123(p1); S124(p1); S125(p1); } } if ((N >= 1) && (Q <= 0) && (R >= 1)) { for (p1=2;p1<=P;p1++) { S38(p1); S39(p1); for (p3=1;p3<=R;p3++) { S48(p1,p3); S49(p1,p3); S50(p1,p3); S51(p1,p3); } S52(p1); S53(p1); S54(p1); S55(p1); S56(p1); S57(p1); S58(p1); for (p3=1;p3<=R;p3++) { S65(p1,p3); S66(p1,p3); S67(p1,p3); } S68(p1); S69(p1); S70(p1); S71(p1); S72(p1); S73(p1); S74(p1); S75(p1); S76(p1); S77(p1); S78(p1); S79(p1); S80(p1); S81(p1); S82(p1); S83(p1); S84(p1); S85(p1); S86(p1); S87(p1); S88(p1); S89(p1); S90(p1); S91(p1); S92(p1); S93(p1); S94(p1); for (p3=1;p3<=N;p3++) { for (p5=1;p5<=N;p5++) { S95(p1,p3,p5); S96(p1,p3,p5); S97(p1,p3,p5); } S98(p1,p3); } S99(p1); S100(p1); S101(p1); for (p3=1;p3<=R;p3++) { S114(p1,p3); S115(p1,p3); S116(p1,p3); S117(p1,p3); S118(p1,p3); S119(p1,p3); } S120(p1); S121(p1); S122(p1); S123(p1); S124(p1); S125(p1); } } if ((N <= 0) && (Q <= 0) && (R >= 1)) { for (p1=2;p1<=P;p1++) { S38(p1); S39(p1); for (p3=1;p3<=R;p3++) { S48(p1,p3); S49(p1,p3); S50(p1,p3); S51(p1,p3); } S52(p1); S53(p1); S54(p1); S55(p1); S56(p1); S57(p1); S58(p1); for (p3=1;p3<=R;p3++) { S65(p1,p3); S66(p1,p3); S67(p1,p3); } S68(p1); S69(p1); S70(p1); S71(p1); S72(p1); S73(p1); S74(p1); S75(p1); S76(p1); S77(p1); S78(p1); S79(p1); S80(p1); S81(p1); S82(p1); S83(p1); S84(p1); S85(p1); S86(p1); S87(p1); S88(p1); S89(p1); S90(p1); S91(p1); S92(p1); S93(p1); S94(p1); S99(p1); S100(p1); S101(p1); for (p3=1;p3<=R;p3++) { S114(p1,p3); S115(p1,p3); S116(p1,p3); S117(p1,p3); S118(p1,p3); S119(p1,p3); } S120(p1); S121(p1); S122(p1); S123(p1); S124(p1); S125(p1); } } if ((N >= 1) && (Q <= 0) && (R <= 0)) { for (p1=2;p1<=P;p1++) { S38(p1); S39(p1); S52(p1); S53(p1); S54(p1); S55(p1); S56(p1); S57(p1); S58(p1); S68(p1); S69(p1); S70(p1); S71(p1); S72(p1); S73(p1); S74(p1); S75(p1); S76(p1); S77(p1); S78(p1); S79(p1); S80(p1); S81(p1); S82(p1); S83(p1); S84(p1); S85(p1); S86(p1); S87(p1); S88(p1); S89(p1); S90(p1); S91(p1); S92(p1); S93(p1); S94(p1); for (p3=1;p3<=N;p3++) { for (p5=1;p5<=N;p5++) { S95(p1,p3,p5); S96(p1,p3,p5); S97(p1,p3,p5); } S98(p1,p3); } S99(p1); S100(p1); S101(p1); S120(p1); S121(p1); S122(p1); S123(p1); S124(p1); S125(p1); } } if ((N <= 0) && (Q <= 0) && (R <= 0)) { for (p1=2;p1<=P;p1++) { S38(p1); S39(p1); S52(p1); S53(p1); S54(p1); S55(p1); S56(p1); S57(p1); S58(p1); S68(p1); S69(p1); S70(p1); S71(p1); S72(p1); S73(p1); S74(p1); S75(p1); S76(p1); S77(p1); S78(p1); S79(p1); S80(p1); S81(p1); S82(p1); S83(p1); S84(p1); S85(p1); S86(p1); S87(p1); S88(p1); S89(p1); S90(p1); S91(p1); S92(p1); S93(p1); S94(p1); S99(p1); S100(p1); S101(p1); S120(p1); S121(p1); S122(p1); S123(p1); S124(p1); S125(p1); } } if ((N >= 1) && (Q >= 1) && (R <= 0)) { for (p1=2;p1<=P;p1++) { S38(p1); S39(p1); for (p3=1;p3<=Q;p3++) { S44(p1,p3); S45(p1,p3); S46(p1,p3); S47(p1,p3); } S52(p1); S53(p1); S54(p1); S55(p1); S56(p1); S57(p1); S58(p1); for (p3=1;p3<=Q;p3++) { S62(p1,p3); S63(p1,p3); S64(p1,p3); } S68(p1); S69(p1); S70(p1); S71(p1); S72(p1); S73(p1); S74(p1); S75(p1); S76(p1); S77(p1); S78(p1); S79(p1); S80(p1); S81(p1); S82(p1); S83(p1); S84(p1); S85(p1); S86(p1); S87(p1); S88(p1); S89(p1); S90(p1); S91(p1); S92(p1); S93(p1); S94(p1); for (p3=1;p3<=N;p3++) { for (p5=1;p5<=N;p5++) { S95(p1,p3,p5); S96(p1,p3,p5); S97(p1,p3,p5); } S98(p1,p3); } S99(p1); S100(p1); S101(p1); for (p3=1;p3<=Q;p3++) { S108(p1,p3); S109(p1,p3); S110(p1,p3); S111(p1,p3); S112(p1,p3); S113(p1,p3); } S120(p1); S121(p1); S122(p1); S123(p1); S124(p1); S125(p1); } } if ((N <= 0) && (Q >= 1) && (R <= 0)) { for (p1=2;p1<=P;p1++) { S38(p1); S39(p1); for (p3=1;p3<=Q;p3++) { S44(p1,p3); S45(p1,p3); S46(p1,p3); S47(p1,p3); } S52(p1); S53(p1); S54(p1); S55(p1); S56(p1); S57(p1); S58(p1); for (p3=1;p3<=Q;p3++) { S62(p1,p3); S63(p1,p3); S64(p1,p3); } S68(p1); S69(p1); S70(p1); S71(p1); S72(p1); S73(p1); S74(p1); S75(p1); S76(p1); S77(p1); S78(p1); S79(p1); S80(p1); S81(p1); S82(p1); S83(p1); S84(p1); S85(p1); S86(p1); S87(p1); S88(p1); S89(p1); S90(p1); S91(p1); S92(p1); S93(p1); S94(p1); S99(p1); S100(p1); S101(p1); for (p3=1;p3<=Q;p3++) { S108(p1,p3); S109(p1,p3); S110(p1,p3); S111(p1,p3); S112(p1,p3); S113(p1,p3); } S120(p1); S121(p1); S122(p1); S123(p1); S124(p1); S125(p1); } } } cloog-parma-0.16.1/test/infinite4.c0000644000175000017500000000020711406127443013736 00000000000000/* Generated from ../../../git/cloog/test/infinite4.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (;;i++) { S1(i) ; } cloog-parma-0.16.1/test/ex1.c0000644000175000017500000000052311406127443012543 00000000000000/* Generated from ../../../git/cloog/test/ex1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ for (i=0;i<=14;i++) { for (j=0;j<=n-15;j++) { S1(i,j) ; } } for (i=15;i<=n;i++) { for (j=0;j<=9;j++) { S1(i,j) ; } for (j=10;j<=n-15;j++) { S1(i,j) ; S2(i,j) ; } for (j=n-14;j<=n;j++) { S2(i,j) ; } } cloog-parma-0.16.1/test/gesced2.c0000644000175000017500000000102611406127363013362 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/gesced2.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ for (c1=1;c1<=4;c1++) { for (c2=5;c2<=M-10;c2++) { S1(c1,c2); } } for (c1=5;c1<=M-10;c1++) { for (c2=-c1+1;c2<=4;c2++) { S2(c1+c2,c1); } for (c2=5;c2<=min(M-10,-c1+M);c2++) { S1(c1,c2); S2(c1+c2,c1); } for (c2=-c1+M+1;c2<=M-10;c2++) { S1(c1,c2); } for (c2=M-9;c2<=-c1+M;c2++) { S2(c1+c2,c1); } } for (c1=M-9;c1<=M;c1++) { for (c2=5;c2<=M-10;c2++) { S1(c1,c2); } } cloog-parma-0.16.1/test/mode.c0000644000175000017500000000072611406127363013000 00000000000000/* Generated from /home/skimo/git/cloog-parma/cloog-core/test/mode.cloog by CLooG 0.14.0-285-g341b1cd gmp bits. */ if (M >= 0) { if (N >= 0) { for (i=0;i<=M;i++) { for (j=0;j<=min(N,i);j++) { S1(i,j); S2(i,j); } for (j=N+1;j<=i;j++) { S1(i,j); } for (j=i+1;j<=N;j++) { S2(i,j); } } } if (N <= -1) { for (i=0;i<=M;i++) { for (j=0;j<=i;j++) { S1(i,j); } } } } cloog-parma-0.16.1/source/0000755000175000017500000000000011511607624012304 500000000000000cloog-parma-0.16.1/source/backend.c0000644000175000017500000000101511323427315013752 00000000000000#include static int cloog_ppl_count = 0; /** * Allocate and initialize full state. */ CloogState *cloog_state_malloc(void) { CloogState *state; if (cloog_ppl_count == 0) { if (ppl_initialize() < 0) return NULL; } cloog_ppl_count++; state = cloog_core_state_malloc(); state->backend = NULL; return state; } /** * Free state and backend independent parts. */ void cloog_state_free(CloogState *state) { cloog_core_state_free(state); if (--cloog_ppl_count == 0) ppl_finalize(); } cloog-parma-0.16.1/source/domain.c0000644000175000017500000017601111511332000013624 00000000000000#include #include #include #include #include #include #define ALLOC(type) (type*)malloc(sizeof(type)) #define ALLOCN(type,n) (type*)malloc((n)*sizeof(type)) CloogDomain *cloog_domain_from_powerset(CloogState *state, ppl_Pointset_Powerset_C_Polyhedron_t ps, int nb_par) { CloogDomain *domain; assert(ps); domain = ALLOC(CloogDomain); if (!domain) cloog_die("memory overflow.\n"); domain->state = state; domain->ps = ps; domain->nb_par = nb_par; domain->refs = 1; return domain; } CloogScattering *cloog_scattering_from_powerset(CloogState *state, ppl_Pointset_Powerset_C_Polyhedron_t ps, int nb_par) { return (CloogScattering *)cloog_domain_from_powerset(state, ps, nb_par); } /** * Returns true if each scattering dimension is or may be defined in terms * of the original iterators. */ int cloog_scattering_fully_specified(CloogScattering *scattering, CloogDomain *domain) { return 1; } /* * Return the number of constraints in the constraint system. */ static int ppl_Constraint_System_count(ppl_const_Constraint_System_t cs) { int n = 0; ppl_Constraint_System_const_iterator_t cit, cit_end; if (ppl_new_Constraint_System_const_iterator(&cit) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint_System_const_iterator(&cit_end) < 0) cloog_die("PPL error.\n"); if (ppl_Constraint_System_begin(cs, cit) < 0) cloog_die("PPL error.\n"); if (ppl_Constraint_System_end(cs, cit_end) < 0) cloog_die("PPL error.\n"); while (!ppl_Constraint_System_const_iterator_equal_test(cit, cit_end)) { ++n; if (ppl_Constraint_System_const_iterator_increment(cit) < 0) cloog_die("PPL error.\n"); } ppl_delete_Constraint_System_const_iterator(cit_end); ppl_delete_Constraint_System_const_iterator(cit); return n; } /* * Create a CloogMatrix with the constraints of pol in PolyLib format. */ static CloogMatrix *cloog_matrix_from_polyhedron(ppl_const_Polyhedron_t pol) { int row = 0; CloogMatrix *M; ppl_dimension_type dim; ppl_Coefficient_t coeff; ppl_const_Constraint_System_t cs; ppl_Constraint_System_const_iterator_t cit, cit_end; if (ppl_Polyhedron_get_minimized_constraints(pol, &cs) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint_System_const_iterator(&cit) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint_System_const_iterator(&cit_end) < 0) cloog_die("PPL error.\n"); if (ppl_Constraint_System_begin(cs, cit) < 0) cloog_die("PPL error.\n"); if (ppl_Constraint_System_end(cs, cit_end) < 0) cloog_die("PPL error.\n"); if (ppl_new_Coefficient(&coeff) < 0) cloog_die("PPL error.\n"); ppl_Polyhedron_space_dimension(pol, &dim); M = cloog_matrix_alloc(ppl_Constraint_System_count(cs), 1 + dim + 1); while (!ppl_Constraint_System_const_iterator_equal_test(cit, cit_end)) { int col; int eq; ppl_const_Constraint_t con; if (ppl_Constraint_System_const_iterator_dereference(cit, &con) < 0) cloog_die("PPL error.\n"); eq = ppl_Constraint_type(con) == PPL_CONSTRAINT_TYPE_EQUAL; cloog_int_set_si(M->p[row][0], eq ? 0 : 1); for (col = 0; col < dim; ++col) { if (ppl_Constraint_coefficient(con, col, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_Coefficient_to_mpz_t(coeff, M->p[row][1 + col]) < 0) cloog_die("PPL error.\n"); } if (ppl_Constraint_inhomogeneous_term(con, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_Coefficient_to_mpz_t(coeff, M->p[row][1 + dim]) < 0) cloog_die("PPL error.\n"); ++row; if (ppl_Constraint_System_const_iterator_increment(cit) < 0) cloog_die("PPL error.\n"); } ppl_delete_Coefficient(coeff); ppl_delete_Constraint_System_const_iterator(cit_end); ppl_delete_Constraint_System_const_iterator(cit); return M; } /* * Create a CloogMatrix with the constraints of ps, which is assumed * to contain exactly one disjunct, in PolyLib format. */ static CloogMatrix *cloog_matrix_from_powerset(ppl_Pointset_Powerset_C_Polyhedron_t ps) { CloogMatrix *M; ppl_const_Polyhedron_t pol; ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t pit; if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_begin(ps, pit) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_dereference(pit, &pol) < 0) cloog_die("PPL error.\n"); M = cloog_matrix_from_polyhedron(pol); ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit); return M; } /** * Extract contraints from domain. */ CloogConstraintSet *cloog_domain_constraints(CloogDomain *domain) { CloogMatrix *M; ppl_Pointset_Powerset_C_Polyhedron_t ps = domain->ps; size_t n; ppl_dimension_type dim; if (ppl_Pointset_Powerset_C_Polyhedron_omega_reduce(ps) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_size(ps, &n) < 0) cloog_die("PPL error.\n"); assert(n <= 1); ppl_Pointset_Powerset_C_Polyhedron_space_dimension(ps, &dim); if (n == 0) M = cloog_matrix_alloc(0, 1 + dim + 1); else M = cloog_matrix_from_powerset(ps); return cloog_constraint_set_from_cloog_matrix(M); } void cloog_domain_print_constraints(FILE *foo, CloogDomain *domain, int print_number) { ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t pit, pit_end; ppl_Pointset_Powerset_C_Polyhedron_t ps = domain->ps; size_t n; if (ppl_Pointset_Powerset_C_Polyhedron_omega_reduce(ps) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_size(ps, &n) < 0) cloog_die("PPL error.\n"); if (print_number) fprintf(foo, "%d\n", (int)n); if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_begin(ps, pit) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit_end) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_end(ps, pit_end) < 0) cloog_die("PPL error.\n"); while (!ppl_Pointset_Powerset_C_Polyhedron_const_iterator_equal_test(pit, pit_end)) { ppl_const_Polyhedron_t pol; CloogMatrix *M; if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_dereference(pit, &pol) < 0) cloog_die("PPL error.\n"); M = cloog_matrix_from_polyhedron(pol); cloog_matrix_print(foo, M); cloog_matrix_free(M); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_increment(pit) < 0) cloog_die("PPL error.\n"); } ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit); ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit_end); } void cloog_scattering_print_constraints(FILE *foo, CloogScattering *scattering) { cloog_domain_print_constraints(foo, &(scattering->dom), 1); } void cloog_domain_free(CloogDomain *domain) { if (!domain) return; if (--domain->refs > 0) return; ppl_delete_Pointset_Powerset_C_Polyhedron(domain->ps); free(domain); } void cloog_scattering_free(CloogScattering *scatt) { cloog_domain_free(&scatt->dom); } CloogDomain *cloog_domain_copy(CloogDomain *domain) { if (!domain) return domain; domain->refs++; return domain; } CloogDomain *cloog_domain_duplicate(CloogDomain *domain) { ppl_Pointset_Powerset_C_Polyhedron_t ps; if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&ps, domain->ps) < 0) cloog_die("PPL error.\n"); return cloog_domain_from_powerset(domain->state, ps, domain->nb_par); } /* * Create a new polyhedron that contains the convex hull of the polyhedra * is ps. */ static ppl_Polyhedron_t convex_hull(ppl_const_Pointset_Powerset_C_Polyhedron_t ps) { ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t pit, pit_end; ppl_const_Polyhedron_t pol; ppl_Polyhedron_t hull; if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_begin(ps, pit) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit_end) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_end(ps, pit_end) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_dereference(pit, &pol) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_increment(pit) < 0) cloog_die("PPL error.\n"); if (ppl_new_C_Polyhedron_from_C_Polyhedron(&hull, pol) < 0) cloog_die("PPL error.\n"); while (!ppl_Pointset_Powerset_C_Polyhedron_const_iterator_equal_test(pit, pit_end)) { if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_dereference(pit, &pol) < 0) cloog_die("PPL error.\n"); if (ppl_Polyhedron_poly_hull_assign(hull, pol) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_increment(pit) < 0) cloog_die("PPL error.\n"); } ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit); ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit_end); return hull; } /** * cloog_domain_convex function: * Computes the convex hull of domain. */ CloogDomain *cloog_domain_convex(CloogDomain *domain) { ppl_const_Polyhedron_t pol; ppl_Pointset_Powerset_C_Polyhedron_t ps; size_t n; if (ppl_Pointset_Powerset_C_Polyhedron_omega_reduce(domain->ps) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_size(domain->ps, &n) < 0) cloog_die("PPL error.\n"); if (n <= 1) return cloog_domain_copy(domain); pol = convex_hull(domain->ps); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron(&ps, pol) < 0) cloog_die("PPL error.\n"); ppl_delete_Polyhedron(pol); return cloog_domain_from_powerset(domain->state, ps, domain->nb_par); } /** * cloog_domain_simple_convex: * Given a list (union) of polyhedra, this function returns a "simple" * convex hull of this union. For now, we just return the actual * convex hull. */ CloogDomain *cloog_domain_simple_convex(CloogDomain *domain) { return cloog_domain_convex(domain); } /** * cloog_domain_simplify function: * Given two polyhedral domains (dom1) and (dom2), * this function finds the largest domain set (or the smallest list * of non-redundant constraints), that when intersected with polyhedral * domain (dom2) equals (dom1)intersect(dom2). The output is a new CloogDomain * structure with a polyhedral domain with the "redundant" constraints removed. * NB: the second domain is required not to be a union. */ CloogDomain *cloog_domain_simplify(CloogDomain *dom1, CloogDomain *dom2) { ppl_Pointset_Powerset_C_Polyhedron_t ps; if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&ps, dom1->ps) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_simplify_using_context_assign(ps, dom2->ps) < 0) cloog_die("PPL error.\n"); return cloog_domain_from_powerset(dom1->state, ps, dom1->nb_par); } /** * cloog_domain_union function: * This function returns a new polyhedral domain which is the union of * two polyhedral domains (dom1) U (dom2). */ CloogDomain *cloog_domain_union(CloogDomain *dom1, CloogDomain *dom2) { CloogDomain *dom; ppl_Pointset_Powerset_C_Polyhedron_t ps; if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&ps, dom1->ps) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign(ps, dom2->ps) < 0) cloog_die("PPL error.\n"); dom = cloog_domain_from_powerset(dom1->state, ps, dom1->nb_par); cloog_domain_free(dom1); cloog_domain_free(dom2); return dom; } /** * cloog_domain_intersection function: * This function returns a new polyhedral domain which is the intersection of * two polyhedral domains (dom1) \cap (dom2). */ CloogDomain *cloog_domain_intersection(CloogDomain *dom1, CloogDomain *dom2) { ppl_Pointset_Powerset_C_Polyhedron_t ps; if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&ps, dom1->ps) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_intersection_assign(ps, dom2->ps) < 0) cloog_die("PPL error.\n"); return cloog_domain_from_powerset(dom1->state, ps, dom1->nb_par); } /* * Given an equality "a x + b = 0" and a powerset U, * construct a new powerset V equal to * * (U \cap { a x + b >= 1 }) \cup (U \cap { a x + b <= -1 }) */ static ppl_Pointset_Powerset_C_Polyhedron_t subtract_eq( ppl_const_Pointset_Powerset_C_Polyhedron_t ps, ppl_const_Constraint_t eq) { ppl_Pointset_Powerset_C_Polyhedron_t res1, res2; ppl_Linear_Expression_t le, le_eq; ppl_Constraint_t con; ppl_Coefficient_t coeff; cloog_int_t v; if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&res1, ps) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&res2, ps) < 0) cloog_die("PPL error.\n"); cloog_int_init(v); if (ppl_new_Coefficient(&coeff) < 0) cloog_die("PPL error.\n"); cloog_int_set_si(v, -1); ppl_assign_Coefficient_from_mpz_t(coeff, v); if (ppl_new_Linear_Expression(&le) < 0) cloog_die("PPL error.\n"); if (ppl_new_Linear_Expression_from_Constraint(&le_eq, eq) < 0) cloog_die("PPL error.\n"); if (ppl_subtract_Linear_Expression_from_Linear_Expression(le, le_eq) < 0) cloog_die("PPL error.\n"); if (ppl_Linear_Expression_add_to_inhomogeneous(le, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint(&con, le, PPL_CONSTRAINT_TYPE_GREATER_OR_EQUAL) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_add_constraint(res1, con) < 0) cloog_die("PPL error.\n"); ppl_delete_Constraint(con); if (ppl_assign_Linear_Expression_from_Linear_Expression(le, le_eq) < 0) cloog_die("PPL error.\n"); if (ppl_Linear_Expression_add_to_inhomogeneous(le, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint(&con, le, PPL_CONSTRAINT_TYPE_GREATER_OR_EQUAL) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_add_constraint(res2, con) < 0) cloog_die("PPL error.\n"); ppl_delete_Constraint(con); ppl_delete_Linear_Expression(le); ppl_delete_Linear_Expression(le_eq); ppl_delete_Coefficient(coeff); cloog_int_clear(v); if (ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign(res1, res2) < 0) cloog_die("PPL error.\n"); ppl_delete_Pointset_Powerset_C_Polyhedron(res2); return res1; } /* * Given an inequality "a x + b >= 0" and a powerset U, * construct a new powerset V equal to U \cap { a x + b <= -1 } */ static ppl_Pointset_Powerset_C_Polyhedron_t subtract_ineq( ppl_const_Pointset_Powerset_C_Polyhedron_t ps, ppl_const_Constraint_t ineq) { ppl_Pointset_Powerset_C_Polyhedron_t res; ppl_Linear_Expression_t le, le_ineq; ppl_Constraint_t con; ppl_Coefficient_t coeff; cloog_int_t v; if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&res, ps) < 0) cloog_die("PPL error.\n"); cloog_int_init(v); if (ppl_new_Coefficient(&coeff) < 0) cloog_die("PPL error.\n"); cloog_int_set_si(v, -1); ppl_assign_Coefficient_from_mpz_t(coeff, v); if (ppl_new_Linear_Expression(&le) < 0) cloog_die("PPL error.\n"); if (ppl_new_Linear_Expression_from_Constraint(&le_ineq, ineq) < 0) cloog_die("PPL error.\n"); if (ppl_subtract_Linear_Expression_from_Linear_Expression(le, le_ineq) < 0) cloog_die("PPL error.\n"); if (ppl_Linear_Expression_add_to_inhomogeneous(le, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint(&con, le, PPL_CONSTRAINT_TYPE_GREATER_OR_EQUAL) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_add_constraint(res, con) < 0) cloog_die("PPL error.\n"); ppl_delete_Constraint(con); ppl_delete_Linear_Expression(le); ppl_delete_Linear_Expression(le_ineq); ppl_delete_Coefficient(coeff); cloog_int_clear(v); return res; } /* * Update the powerset ps to ps \ pol by intersecting the original ps * with the negation of each of the constraints of pol and collecting * the results. */ static ppl_Pointset_Powerset_C_Polyhedron_t subtract( ppl_Pointset_Powerset_C_Polyhedron_t ps, ppl_const_Polyhedron_t pol) { ppl_dimension_type dim; ppl_Pointset_Powerset_C_Polyhedron_t res; ppl_const_Constraint_System_t cs; ppl_Constraint_System_const_iterator_t cit, cit_end; ppl_Pointset_Powerset_C_Polyhedron_space_dimension(ps, &dim); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension(&res, dim, 1) < 0) cloog_die("PPL error.\n"); if (ppl_Polyhedron_get_minimized_constraints(pol, &cs) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint_System_const_iterator(&cit) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint_System_const_iterator(&cit_end) < 0) cloog_die("PPL error.\n"); if (ppl_Constraint_System_begin(cs, cit) < 0) cloog_die("PPL error.\n"); if (ppl_Constraint_System_end(cs, cit_end) < 0) cloog_die("PPL error.\n"); while (!ppl_Constraint_System_const_iterator_equal_test(cit, cit_end)) { ppl_const_Constraint_t con; ppl_Pointset_Powerset_C_Polyhedron_t d; int eq; if (ppl_Constraint_System_const_iterator_dereference(cit, &con) < 0) cloog_die("PPL error.\n"); eq = ppl_Constraint_type(con) == PPL_CONSTRAINT_TYPE_EQUAL; if (eq) d = subtract_eq(ps, con); else d = subtract_ineq(ps, con); if (ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign(res, d) < 0) cloog_die("PPL error.\n"); ppl_delete_Pointset_Powerset_C_Polyhedron(d); if (ppl_Constraint_System_const_iterator_increment(cit) < 0) cloog_die("PPL error.\n"); } ppl_delete_Constraint_System_const_iterator(cit_end); ppl_delete_Constraint_System_const_iterator(cit); ppl_delete_Pointset_Powerset_C_Polyhedron(ps); return res; } /** * cloog_domain_difference function: * Returns the set difference domain \ minus. */ CloogDomain *cloog_domain_difference(CloogDomain *domain, CloogDomain *minus) { ppl_Pointset_Powerset_C_Polyhedron_t ps; ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t pit, pit_end; if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&ps, domain->ps) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_begin(minus->ps, pit) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit_end) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_end(minus->ps, pit_end) < 0) cloog_die("PPL error.\n"); while (!ppl_Pointset_Powerset_C_Polyhedron_const_iterator_equal_test(pit, pit_end)) { ppl_const_Polyhedron_t pol; if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_dereference(pit, &pol) < 0) cloog_die("PPL error.\n"); ps = subtract(ps, pol); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_increment(pit) < 0) cloog_die("PPL error.\n"); } ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit); ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit_end); return cloog_domain_from_powerset(domain->state, ps, domain->nb_par); } /* * Update powerset ps by inserting n unconstrained dimensions before * dimension pos. */ static void powerset_insert_dims(ppl_Pointset_Powerset_C_Polyhedron_t ps, int pos, int n) { ppl_dimension_type dim; ppl_dimension_type *ds; int i; ppl_Pointset_Powerset_C_Polyhedron_space_dimension(ps, &dim); if (ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed(ps, n) < 0) cloog_die("PPL error.\n"); ds = ALLOCN(ppl_dimension_type, dim + n); if (!ds) cloog_die("memory overflow.\n"); for (i = 0; i < pos; ++i) ds[i] = i; for (i = 0; i < dim - pos; ++i) ds[pos + i] = pos + n + i; for (i = 0; i < n; ++i) ds[dim + i] = pos + i; if (ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions(ps, ds, dim + n) < 0) cloog_die("PPL error.\n"); free(ds); } /* * Given two disjoint powersets ps1 and ps2 in a space of dimension d, * check whether for any common value of the parameters and dimensions * preceding pos in both powersets, the values of dimension pos in ps1 are * smaller or larger than those in ps2. * * Return * 1 if bset1 follows bset2 * -1 if bset1 precedes bset2 * 0 if bset1 and bset2 are incomparable */ static int powerset_compare_at(ppl_const_Pointset_Powerset_C_Polyhedron_t ps1, ppl_const_Pointset_Powerset_C_Polyhedron_t ps2, int pos, int d) { int cmp; int bounded, dummy; ppl_Pointset_Powerset_C_Polyhedron_t ps1c, ps2c; ppl_Linear_Expression_t le; ppl_dimension_type sdim; ppl_Coefficient_t coeff_n; ppl_Coefficient_t coeff_d; cloog_int_t v; cloog_int_init(v); if (ppl_new_Coefficient(&coeff_d) < 0) cloog_die("PPL error.\n"); if (ppl_new_Coefficient(&coeff_n) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&ps1c, ps1) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&ps2c, ps2) < 0) cloog_die("PPL error.\n"); powerset_insert_dims(ps1c, d, d - pos); powerset_insert_dims(ps2c, pos, d - pos); if (ppl_Pointset_Powerset_C_Polyhedron_intersection_assign(ps1c, ps2c) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_is_empty(ps1c)) { cmp = 0; } else { ppl_Pointset_Powerset_C_Polyhedron_space_dimension(ps1c, &sdim); if (ppl_new_Linear_Expression_with_dimension(&le, sdim) < 0) cloog_die("PPL error.\n"); cloog_int_set_si(v, 1); ppl_assign_Coefficient_from_mpz_t(coeff_n, v); if (ppl_Linear_Expression_add_to_coefficient(le, pos, coeff_n) < 0) cloog_die("PPL error.\n"); cloog_int_set_si(v, -1); ppl_assign_Coefficient_from_mpz_t(coeff_n, v); if (ppl_Linear_Expression_add_to_coefficient(le, d, coeff_n) < 0) cloog_die("PPL error.\n"); bounded = ppl_Pointset_Powerset_C_Polyhedron_maximize(ps1c, le, coeff_n, coeff_d, &dummy); if (!bounded) cmp = 1; else { if (ppl_Coefficient_to_mpz_t(coeff_n, v) < 0) cloog_die("PPL error.\n"); if (cloog_int_is_pos(v)) cmp = 1; else cmp = -1; } ppl_delete_Linear_Expression(le); } ppl_delete_Pointset_Powerset_C_Polyhedron(ps1c); ppl_delete_Pointset_Powerset_C_Polyhedron(ps2c); ppl_delete_Coefficient(coeff_n); ppl_delete_Coefficient(coeff_d); cloog_int_clear(v); return cmp; } /** * cloog_domain_sort function: * This function topologically sorts (nb_doms) domains. Here (doms) is an * array of pointers to CloogDomains, (nb_doms) is the number of domains, * (level) is the level to consider for partial ordering, (permut) if not * NULL, is an array of (nb_doms) integers that contains a permutation * specification after call in order to apply the topological sorting. */ void cloog_domain_sort(CloogDomain **doms, unsigned nb_doms, unsigned level, int *permut) { int i, j, k, cmp; unsigned char **follows; int d; if (!nb_doms) return; d = cloog_domain_dimension(doms[0]); follows = ALLOCN(unsigned char *, nb_doms); if (!follows) cloog_die("memory overflow.\n"); for (i = 0; i < nb_doms; ++i) { follows[i] = ALLOCN(unsigned char, nb_doms); if (!follows[i]) cloog_die("memory overflow.\n"); for (j = 0; j < nb_doms; ++j) follows[i][j] = 0; } for (i = 1; i < nb_doms; ++i) { for (j = 0; j < i; ++j) { if (follows[i][j] || follows[j][i]) continue; cmp = powerset_compare_at(doms[i]->ps, doms[j]->ps, level - 1, d); if (!cmp) continue; if (cmp > 0) { follows[i][j] = 1; for (k = 0; k < i; ++k) follows[i][k] |= follows[j][k]; } else { follows[j][i] = 1; for (k = 0; k < i; ++k) follows[k][i] |= follows[k][j]; } } } for (i = 0, j = 0; i < nb_doms; j = (j + 1) % nb_doms) { for (k = 0; k < nb_doms; ++k) if (follows[j][k]) break; if (k < nb_doms) continue; for (k = 0; k < nb_doms; ++k) follows[k][j] = 0; follows[j][j] = 1; permut[i] = 1 + j; ++i; } for (i = 0; i < nb_doms; ++i) free(follows[i]); free(follows); } /** * Check whether there is or may be any value of dom1 at the given level * that is greater than or equal to a value of dom2 at the same level. * * Return * 1 is there is or may be a greater-than pair. * 0 if there is no greater-than pair, but there may be an equal-to pair * -1 if there is definitely no such pair */ int cloog_domain_follows(CloogDomain *dom1, CloogDomain *dom2, unsigned level) { return 1; } /** * cloog_domain_empty function: * Returns an empty domain of the same dimensions as template. */ CloogDomain *cloog_domain_empty(CloogDomain *template) { int dim = cloog_domain_dimension(template) + cloog_domain_parameter_dimension(template); ppl_Pointset_Powerset_C_Polyhedron_t ps; if (ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension(&ps, dim, 1) < 0) cloog_die("PPL error.\n"); return cloog_domain_from_powerset(template->state, ps, template->nb_par); } static int polyhedron_is_bounded(ppl_const_Polyhedron_t pol, unsigned level) { int lower = 0, upper = 0; ppl_Coefficient_t coeff; ppl_const_Constraint_System_t cs; ppl_Constraint_System_const_iterator_t cit, cit_end; mpz_t v; mpz_init(v); if (ppl_Polyhedron_get_minimized_constraints(pol, &cs) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint_System_const_iterator(&cit) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint_System_const_iterator(&cit_end) < 0) cloog_die("PPL error.\n"); if (ppl_Constraint_System_begin(cs, cit) < 0) cloog_die("PPL error.\n"); if (ppl_Constraint_System_end(cs, cit_end) < 0) cloog_die("PPL error.\n"); if (ppl_new_Coefficient(&coeff) < 0) cloog_die("PPL error.\n"); while (!ppl_Constraint_System_const_iterator_equal_test(cit, cit_end)) { ppl_const_Constraint_t con; if (ppl_Constraint_System_const_iterator_dereference(cit, &con) < 0) cloog_die("PPL error.\n"); if (ppl_Constraint_coefficient(con, level - 1, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_Coefficient_to_mpz_t(coeff, v) < 0) cloog_die("PPL error.\n"); if (mpz_sgn(v) != 0) { if (ppl_Constraint_type(con) == PPL_CONSTRAINT_TYPE_EQUAL) { lower = upper = 1; break; } if (mpz_sgn(v) > 0) lower = 1; else upper = 1; if (lower && upper) break; } if (ppl_Constraint_System_const_iterator_increment(cit) < 0) cloog_die("PPL error.\n"); } ppl_delete_Coefficient(coeff); ppl_delete_Constraint_System_const_iterator(cit_end); ppl_delete_Constraint_System_const_iterator(cit); mpz_clear(v); return lower && upper; } /** * Return 1 if the specified dimension has both an upper and a lower bound. */ int cloog_domain_is_bounded(CloogDomain *dom, unsigned level) { ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t pit, pit_end; ppl_Pointset_Powerset_C_Polyhedron_t ps = dom->ps; int bounded = 1; if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_begin(ps, pit) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit_end) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_end(ps, pit_end) < 0) cloog_die("PPL error.\n"); while (!ppl_Pointset_Powerset_C_Polyhedron_const_iterator_equal_test(pit, pit_end)) { ppl_const_Polyhedron_t pol; if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_dereference(pit, &pol) < 0) cloog_die("PPL error.\n"); if (!polyhedron_is_bounded(pol, level)) { bounded = 0; break; } if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_increment(pit) < 0) cloog_die("PPL error.\n"); } ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit); ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit_end); return bounded; } /****************************************************************************** * Structure display function * ******************************************************************************/ /** * cloog_domain_print_structure : * this function is a more human-friendly way to display the CloogDomain data * structure, it only shows the constraint system and includes an indentation * level (level) in order to work with others print_structure functions. */ void cloog_domain_print_structure(FILE *file, CloogDomain *domain, int level, const char *name) { int i; char *suffix = " ]"; char *prefix; ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t pit, pit_end; ppl_Pointset_Powerset_C_Polyhedron_t ps = domain->ps; for (i = 0; i < level; i++) fprintf(file, "|\t"); if (!domain->ps) { fprintf(file, "+-- Null CloogDomain\n"); return; } fprintf(file, "+-- %s\n", name); prefix = ALLOCN(char, 2 * (level + 1) + 3); if (!prefix) cloog_die("memory overflow.\n"); for (i = 0; i < level + 1; ++i) memcpy(prefix + 2 * i, "|\t", 2); strcpy(prefix + 2 * (level + 1), "[ "); if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_begin(ps, pit) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit_end) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_end(ps, pit_end) < 0) cloog_die("PPL error.\n"); while (!ppl_Pointset_Powerset_C_Polyhedron_const_iterator_equal_test(pit, pit_end)) { ppl_const_Polyhedron_t pol; CloogMatrix *M; if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_dereference(pit, &pol) < 0) cloog_die("PPL error.\n"); M = cloog_matrix_from_polyhedron(pol); cloog_matrix_print_structure(file, M, prefix, suffix); cloog_matrix_free(M); prefix[2*(level+1)] = '\0'; fprintf(file, "%s\n", prefix); prefix[2*(level+1)] = '['; if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_increment(pit) < 0) cloog_die("PPL error.\n"); } free(prefix); ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit); ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit_end); } /****************************************************************************** * Memory deallocation function * ******************************************************************************/ void cloog_domain_list_free(CloogDomainList *list) { CloogDomainList *next; for ( ; list; list = next) { next = list->next; cloog_domain_free(list->domain); free(list); } } /** * cloog_scattering_list_free function: * This function frees the allocated memory for a CloogScatteringList structure. */ void cloog_scattering_list_free(CloogScatteringList *list) { while (list != NULL) { CloogScatteringList *temp = list->next; cloog_scattering_free(list->scatt); free(list); list = temp; } } /****************************************************************************** * Reading function * ******************************************************************************/ /* * Construct a polyhedron from the constraint in M (PolyLib format). */ static ppl_Polyhedron_t cloog_matrix_to_polyhedron(CloogMatrix *M) { int row; unsigned dim; ppl_Polyhedron_t pol; ppl_Coefficient_t coeff; cloog_int_t v; if (M->NbColumns < 2) cloog_die("Input error.\n"); dim = M->NbColumns - 2; if (ppl_new_C_Polyhedron_from_space_dimension(&pol, dim, 0) < 0) cloog_die("PPL error.\n"); cloog_int_init(v); if (ppl_new_Coefficient(&coeff) < 0) cloog_die("PPL error.\n"); for (row = 0; row < M->NbRows; ++row) { int i; ppl_Linear_Expression_t le; ppl_Constraint_t con; int eq = cloog_int_is_zero(M->p[row][0]); if (ppl_new_Linear_Expression_with_dimension(&le, dim) < 0) cloog_die("PPL error.\n"); for (i = 0; i < dim; ++i) { ppl_assign_Coefficient_from_mpz_t(coeff, M->p[row][1 + i]); if (ppl_Linear_Expression_add_to_coefficient(le, i, coeff) < 0) cloog_die("PPL error.\n"); } ppl_assign_Coefficient_from_mpz_t(coeff, M->p[row][1 + dim]); if (ppl_Linear_Expression_add_to_inhomogeneous(le, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint(&con, le, eq ? PPL_CONSTRAINT_TYPE_EQUAL : PPL_CONSTRAINT_TYPE_GREATER_OR_EQUAL) < 0) cloog_die("PPL error.\n"); ppl_delete_Linear_Expression(le); if (ppl_Polyhedron_add_constraint(pol, con) < 0) cloog_die("PPL error.\n"); ppl_delete_Constraint(con); } ppl_delete_Coefficient(coeff); cloog_int_clear(v); return pol; } static char *next_line(FILE *input, char *line, unsigned len) { char *p; do { if (!(p = fgets(line, len, input))) return NULL; while (isspace(*p) && *p != '\n') ++p; } while (*p == '#' || *p == '\n'); return p; } static ppl_Pointset_Powerset_C_Polyhedron_t read_more_disjuncts(FILE *input, ppl_Pointset_Powerset_C_Polyhedron_t ps, int n) { CloogMatrix *M; ppl_const_Polyhedron_t pol; while (n-- > 0) { M = cloog_matrix_read(input); pol = cloog_matrix_to_polyhedron(M); cloog_matrix_free(M); if (ppl_Pointset_Powerset_C_Polyhedron_add_disjunct(ps, pol) < 0) cloog_die("PPL error.\n"); ppl_delete_Polyhedron(pol); } return ps; } /** * cloog_domain_read_context function: * Read parameter domain. */ CloogDomain *cloog_domain_read_context(CloogState *state, FILE *input) { char line[1024]; CloogMatrix *M; ppl_const_Polyhedron_t pol; ppl_Pointset_Powerset_C_Polyhedron_t ps; int nb_par; unsigned n_row, n_col; int n = 1; if (!next_line(input, line, sizeof(line))) cloog_die("Input error.\n"); if (sscanf(line, "%u %u", &n_row, &n_col) == 2) M = cloog_matrix_read_of_size(input, n_row, n_col); else { if (sscanf(line, "%d", &n) != 1) cloog_die("Input error.\n"); if (n < 1) cloog_die("Input error.\n"); M = cloog_matrix_read(input); } pol = cloog_matrix_to_polyhedron(M); nb_par = M->NbColumns - 2; cloog_matrix_free(M); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron(&ps, pol) < 0) cloog_die("PPL error.\n"); ppl_delete_Polyhedron(pol); ps = read_more_disjuncts(input, ps, n - 1); return cloog_domain_from_powerset(state, ps, nb_par); } /** * cloog_domain_from_context * Reinterpret context by turning parameters into variables. */ CloogDomain *cloog_domain_from_context(CloogDomain *context) { CloogDomain *domain; domain = cloog_domain_duplicate(context); cloog_domain_free(context); domain->nb_par = 0; return domain; } /** * cloog_domain_union_read function: * This function reads a union of polyhedra into a file (input) and * returns a pointer to a CloogDomain containing the read information. */ CloogDomain *cloog_domain_union_read(CloogState *state, FILE *input, int nb_parameters) { char line[1024]; int n; CloogMatrix *M; ppl_Polyhedron_t pol; ppl_Pointset_Powerset_C_Polyhedron_t ps; if (!next_line(input, line, sizeof(line))) cloog_die("Input error.\n"); if (sscanf(line, "%d", &n) != 1) cloog_die("Input error.\n"); if (n < 1) cloog_die("Input error.\n"); M = cloog_matrix_read(input); pol = cloog_matrix_to_polyhedron(M); cloog_matrix_free(M); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron(&ps, pol) < 0) cloog_die("PPL error.\n"); ppl_delete_Polyhedron(pol); ps = read_more_disjuncts(input, ps, n - 1); return cloog_domain_from_powerset(state, ps, nb_parameters); } /** * cloog_domain_read_scattering function: * This function reads in a scattering function from the file input. */ CloogScattering *cloog_domain_read_scattering(CloogDomain *domain, FILE *input) { char line[1024]; CloogMatrix *M; ppl_const_Polyhedron_t pol; ppl_Pointset_Powerset_C_Polyhedron_t ps; unsigned n_row, n_col; int n = 1; if (!next_line(input, line, sizeof(line))) cloog_die("Input error.\n"); if (sscanf(line, "%u %u", &n_row, &n_col) == 2) M = cloog_matrix_read_of_size(input, n_row, n_col); else { if (sscanf(line, "%d", &n) != 1) cloog_die("Input error.\n"); if (n < 1) cloog_die("Input error.\n"); M = cloog_matrix_read(input); } pol = cloog_matrix_to_polyhedron(M); cloog_matrix_free(M); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron(&ps, pol) < 0) cloog_die("PPL error.\n"); ppl_delete_Polyhedron(pol); ps = read_more_disjuncts(input, ps, n - 1); return cloog_scattering_from_powerset(domain->state, ps, domain->nb_par); } /****************************************************************************** * CloogMatrix Reading function * ******************************************************************************/ /** * cloog_domain_from_cloog_matrix: * Create a CloogDomain containing the constraints described in matrix. * nparam is the number of parameters contained in the domain. * Returns a pointer to the CloogDomain if successful; NULL otherwise. */ CloogDomain *cloog_domain_from_cloog_matrix(CloogState *state, CloogMatrix *matrix, int nparam) { ppl_const_Polyhedron_t pol; ppl_Pointset_Powerset_C_Polyhedron_t ps; pol = cloog_matrix_to_polyhedron(matrix); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron(&ps, pol) < 0) cloog_die("PPL error.\n"); ppl_delete_Polyhedron(pol); return cloog_domain_from_powerset(state, ps, nparam); } /** * cloog_scattering_from_cloog_matrix: * Create a CloogScattering containing the constraints described in matrix. * nparam is the number of parameters contained in the domain. * Returns a pointer to the CloogScattering if successful; NULL otherwise. */ CloogScattering *cloog_scattering_from_cloog_matrix(CloogState *state, CloogMatrix *matrix, int nb_scat, int nb_par) { ppl_const_Polyhedron_t pol; ppl_Pointset_Powerset_C_Polyhedron_t ps; pol = cloog_matrix_to_polyhedron(matrix); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron(&ps, pol) < 0) cloog_die("PPL error.\n"); ppl_delete_Polyhedron(pol); return cloog_scattering_from_powerset(state, ps, nb_par); } /****************************************************************************** * Processing functions * ******************************************************************************/ /** * cloog_domain_isempty function: */ int cloog_domain_isempty(CloogDomain *domain) { return ppl_Pointset_Powerset_C_Polyhedron_is_empty(domain->ps); } /** * cloog_domain_universe function: * This function returns the complete dim-dimensional space. */ CloogDomain *cloog_domain_universe(CloogState *state, unsigned dim) { ppl_Pointset_Powerset_C_Polyhedron_t ps; if (ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension(&ps, dim, 0) < 0) cloog_die("PPL error.\n"); return cloog_domain_from_powerset(state, ps, 0); } /** * cloog_domain_project function: * This function returns the projection of * (domain) on the (level) first dimensions (i.e. outer loops). */ CloogDomain *cloog_domain_project(CloogDomain *domain, int level) { ppl_Pointset_Powerset_C_Polyhedron_t ps; int n = cloog_domain_dimension(domain) - level; ppl_dimension_type *ds; int i; ds = ALLOCN(ppl_dimension_type, n); if (!ds) cloog_die("memory overflow.\n"); for (i = 0; i < n; ++i) ds[i] = level + i; if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&ps, domain->ps) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions(ps, ds, n) < 0) cloog_die("PPL error.\n"); free(ds); return cloog_domain_from_powerset(domain->state, ps, domain->nb_par); } /** * cloog_domain_extend function: * This function returns the (domain) given as input with (dim) * dimensions and (nb_par) parameters. * This function does not free (domain), and returns a new CloogDomain. */ CloogDomain *cloog_domain_extend(CloogDomain *domain, int dim) { ppl_Pointset_Powerset_C_Polyhedron_t ps; int n = dim - cloog_domain_dimension(domain); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&ps, domain->ps) < 0) cloog_die("PPL error.\n"); powerset_insert_dims(ps, cloog_domain_dimension(domain), n); return cloog_domain_from_powerset(domain->state, ps, domain->nb_par); } /* * Check if the given polyhedron lies on any hyperplane that doesn't * contain any integer point. */ static int polyhedron_never_integral(ppl_const_Polyhedron_t pol) { int empty = 0; CloogMatrix *M; int i; cloog_int_t gcd; cloog_int_init(gcd); M = cloog_matrix_from_polyhedron(pol); for (i = 0; i < M->NbRows; ++i) { if (!cloog_int_is_zero(M->p[i][0])) continue; if (cloog_int_is_zero(M->p[i][M->NbColumns - 1])) continue; cloog_seq_gcd(M->p[i] + 1, M->NbColumns - 2, &gcd); cloog_int_fdiv_r(gcd, M->p[i][M->NbColumns - 1], gcd); if (cloog_int_is_zero(gcd)) continue; empty = 1; break; } cloog_matrix_free(M); cloog_int_clear(gcd); return empty; } /** * cloog_domain_never_integral function: * For us, an equality like 3*i -4 = 0 is always false since 4%3 != 0. */ int cloog_domain_never_integral(CloogDomain *domain) { int empty = 1; ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t pit, pit_end; ppl_Pointset_Powerset_C_Polyhedron_t ps = domain->ps; if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_begin(ps, pit) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit_end) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_end(ps, pit_end) < 0) cloog_die("PPL error.\n"); while (!ppl_Pointset_Powerset_C_Polyhedron_const_iterator_equal_test(pit, pit_end)) { ppl_const_Polyhedron_t pol; if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_dereference(pit, &pol) < 0) cloog_die("PPL error.\n"); if (!polyhedron_never_integral(pol)) { empty = 0; break; } if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_increment(pit) < 0) cloog_die("PPL error.\n"); } ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit); ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit_end); return empty; } /* * Check if the given equality constraint imposes a stride on * the iterator i identified by strided_level. If so, set *stride * to the stride and *offset to a value c such that (i + c) % stride = 0. * Otherwise, leave *stride alone. */ static void equality_stride(ppl_const_Constraint_t eq, int dim, int strided_level, cloog_int_t *stride, cloog_int_t *offset) { int i; ppl_Coefficient_t coeff; cloog_int_t v; cloog_int_t cst; cloog_int_t gcd; cloog_int_t tmp; if (ppl_new_Coefficient(&coeff) < 0) cloog_die("PPL error.\n"); cloog_int_init(v); cloog_int_init(cst); cloog_int_init(gcd); cloog_int_init(tmp); if (ppl_Constraint_coefficient(eq, strided_level - 1, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_Coefficient_to_mpz_t(coeff, v) < 0) cloog_die("PPL error.\n"); if (cloog_int_is_zero(v)) goto done; if (ppl_Constraint_inhomogeneous_term(eq, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_Coefficient_to_mpz_t(coeff, cst) < 0) cloog_die("PPL error.\n"); /* Too complicated for our quick heuristic. */ if (!cloog_int_is_divisible_by(cst, v)) goto done; cloog_int_divexact(cst, cst, v); cloog_int_set_si(gcd, 0); for (i = strided_level; i < dim; ++i) { if (ppl_Constraint_coefficient(eq, i, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_Coefficient_to_mpz_t(coeff, tmp) < 0) cloog_die("PPL error.\n"); if (!cloog_int_is_zero(tmp)) cloog_int_gcd(gcd, gcd, tmp); } if (cloog_int_is_zero(gcd) || cloog_int_is_one(gcd)) goto done; cloog_int_gcd(tmp, gcd, v); cloog_int_divexact(gcd, gcd, tmp); cloog_int_set(*stride, gcd); cloog_int_fdiv_r(*offset, cst, gcd); done: cloog_int_clear(v); cloog_int_clear(cst); cloog_int_clear(gcd); cloog_int_clear(tmp); ppl_delete_Coefficient(coeff); } /* * Check if any of the equalities of pol imposes a stride on * the iterator i identified by strided_level. If so, set *stride * to the stride and *offset to a value c such that (i + c) % stride = 0. * Otherwise, set *stride to 1 and *offset to 0. */ static void polyhedron_stride(ppl_const_Polyhedron_t pol, int dim, int strided_level, cloog_int_t *stride, cloog_int_t *offset) { ppl_const_Constraint_System_t cs; ppl_Constraint_System_const_iterator_t cit, cit_end; cloog_int_set_si(*stride, 0); cloog_int_set_si(*offset, 0); if (ppl_Polyhedron_get_minimized_constraints(pol, &cs) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint_System_const_iterator(&cit) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint_System_const_iterator(&cit_end) < 0) cloog_die("PPL error.\n"); if (ppl_Constraint_System_begin(cs, cit) < 0) cloog_die("PPL error.\n"); if (ppl_Constraint_System_end(cs, cit_end) < 0) cloog_die("PPL error.\n"); while (!ppl_Constraint_System_const_iterator_equal_test(cit, cit_end)) { ppl_const_Constraint_t con; if (ppl_Constraint_System_const_iterator_dereference(cit, &con) < 0) cloog_die("PPL error.\n"); if (ppl_Constraint_type(con) == PPL_CONSTRAINT_TYPE_EQUAL) equality_stride(con, dim, strided_level, stride, offset); if (!cloog_int_is_zero(*stride)) break; if (ppl_Constraint_System_const_iterator_increment(cit) < 0) cloog_die("PPL error.\n"); } if (cloog_int_is_zero(*stride)) cloog_int_set_si(*stride, 1); ppl_delete_Constraint_System_const_iterator(cit_end); ppl_delete_Constraint_System_const_iterator(cit); } /** * Check whether the loop at "level" is executed at most once. * We conservatively assume that the loop may be executed more than once. */ int cloog_domain_is_otl(CloogDomain *domain, int level) { return 0; } /** * cloog_domain_stride function: * This function finds the stride imposed to unknown with the column number * 'strided_level' in order to be integral. For instance, if we have a * constraint like -i - 2j + 2k = 0, and we consider k, then k can be integral * only if (i + 2j)%2 = 0. Then only if i%2 = 0. Then k imposes a stride 2 to * the unknown i. The function returns the imposed stride in a parameter field. * - domain is the set of constraint we have to consider, * - strided_level is the column number of the unknown for which a stride have * to be found, * - stride is the stride that is returned back as a function parameter. * - offset is the value of the constant c if the condition is of the shape * (i + c)%s = 0, s being the stride. * * We only look for simple cases. In particular, we don't even bother * if the domain is a union and we only look for strides imposed by * a single equality and not any combination of the equalities. */ void cloog_domain_stride(CloogDomain *domain, int strided_level, cloog_int_t *stride, cloog_int_t *offset) { ppl_const_Polyhedron_t pol; ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t pit; int dim = cloog_domain_dimension(domain); size_t n; if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_begin(domain->ps, pit) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_size(domain->ps, &n) < 0) cloog_die("PPL error.\n"); if (n != 1) goto no_stride; if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_dereference(pit, &pol) < 0) cloog_die("PPL error.\n"); polyhedron_stride(pol, dim, strided_level, stride, offset); if (0) { no_stride: cloog_int_set_si(*stride, 1); cloog_int_set_si(*offset, 0); } ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit); } /** * Return 1 if CLooG is allowed to perform stride detection on level "level" * and 0 otherwise. * In particular, stride detection should only be performed when the lower * bound at the given level is an integral constant. */ int cloog_domain_can_stride(CloogDomain *domain, int level) { int found = 0; int row; CloogMatrix *M; size_t n; int dim = cloog_domain_dimension(domain); int nb_par = cloog_domain_parameter_dimension(domain); if (ppl_Pointset_Powerset_C_Polyhedron_size(domain->ps, &n) < 0) cloog_die("PPL error.\n"); if (n != 1) return 0; M = cloog_matrix_from_powerset(domain->ps); for (row = 0; row < M->NbRows; ++row) { if (cloog_int_is_zero(M->p[row][level])) continue; if (cloog_int_is_zero(M->p[row][0])) break; if (cloog_int_is_neg(M->p[row][level])) continue; if (found) break; if (cloog_seq_first_non_zero(M->p[row] + 1, level - 1) != -1) break; if (cloog_seq_first_non_zero(M->p[row] + level + 1, dim - level + nb_par) != -1) break; found = 1; } if (row < M->NbRows) found = 0; cloog_matrix_free(M); return found; } /** * Update the lower bounds at level "level" to the given stride information. * That is, make sure that the remainder on division by "stride" * is equal to "offset". * Since we only allow stride detection on loops with a fixed integral * lower bound, we don't actually need to change domain here as the * fixed lower bound will be updated by update_lower_bound in clast.c. */ CloogDomain *cloog_domain_stride_lower_bound(CloogDomain *domain, int level, CloogStride *stride) { return domain; } /** * cloog_domain_lazy_equal function: * This function returns 1 if the domains given as input are the same, 0 if it * is unable to decide. */ int cloog_domain_lazy_equal(CloogDomain *d1, CloogDomain *d2) { return ppl_Pointset_Powerset_C_Polyhedron_equals_Pointset_Powerset_C_Polyhedron(d1->ps, d2->ps); } /** * Return a union of sets S_i such that the convex hull of "dom", * when intersected with one the sets S_i, will have an upper and * lower bound for the dimension at "level" (provided "dom" itself * has such bounds for the dimensions). * * We currently take a very simple approach and split all parameters * into a negative and a positive part. */ CloogDomain *cloog_domain_bound_splitter(CloogDomain *dom, int level) { int i; unsigned dim = cloog_domain_dimension(dom) + dom->nb_par; ppl_Pointset_Powerset_C_Polyhedron_t ps; ppl_Pointset_Powerset_C_Polyhedron_t pos, neg; ppl_Coefficient_t coeff; ppl_Linear_Expression_t le; ppl_Constraint_t con; mpz_t v; mpz_init(v); if (ppl_new_Coefficient(&coeff) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension(&ps, dim, 0) < 0) cloog_die("PPL error.\n"); for (i = 0; i < dom->nb_par; ++i) { if (ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension(&pos, dim, 0) < 0) cloog_die("PPL error.\n"); if (ppl_new_Linear_Expression(&le) < 0) cloog_die("PPL error.\n"); mpz_set_si(v, 1); ppl_assign_Coefficient_from_mpz_t(coeff, v); if (ppl_Linear_Expression_add_to_coefficient(le, dim - dom->nb_par + i, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint(&con, le, PPL_CONSTRAINT_TYPE_GREATER_OR_EQUAL) < 0) cloog_die("PPL error.\n"); ppl_delete_Linear_Expression(le); if (ppl_Pointset_Powerset_C_Polyhedron_add_constraint(pos, con) < 0) cloog_die("PPL error.\n"); ppl_delete_Constraint(con); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension(&neg, dim, 0) < 0) cloog_die("PPL error.\n"); if (ppl_new_Linear_Expression(&le) < 0) cloog_die("PPL error.\n"); mpz_set_si(v, -1); ppl_assign_Coefficient_from_mpz_t(coeff, v); if (ppl_Linear_Expression_add_to_inhomogeneous(le, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_Linear_Expression_add_to_coefficient(le, dim - dom->nb_par + i, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint(&con, le, PPL_CONSTRAINT_TYPE_GREATER_OR_EQUAL) < 0) cloog_die("PPL error.\n"); ppl_delete_Linear_Expression(le); if (ppl_Pointset_Powerset_C_Polyhedron_add_constraint(neg, con) < 0) cloog_die("PPL error.\n"); ppl_delete_Constraint(con); if (ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign(pos, neg) < 0) cloog_die("PPL error.\n"); ppl_delete_Pointset_Powerset_C_Polyhedron(neg); if (ppl_Pointset_Powerset_C_Polyhedron_intersection_assign(ps, pos) < 0) cloog_die("PPL error.\n"); ppl_delete_Pointset_Powerset_C_Polyhedron(pos); } ppl_delete_Coefficient(coeff); mpz_clear(v); return cloog_domain_from_powerset(dom->state, ps, dom->nb_par); } /** * cloog_scattering_lazy_block function: * This function returns 1 if the two scattering functions s1 and s2 given * as input are the same (except possibly for the final dimension, where we * allow a difference of 1), assuming that the domains on which this * scatterings are applied are the same. * In fact this function answers the question "can I * safely consider the two domains as only one with two statements (a block) ?". * - s1 and s2 are the two domains to check for blocking, * - scattering is the linked list of all domains, * - scattdims is the total number of scattering dimentions. * * It's actually not that easy to get this right, so we'll just assume * that we can't block the two statements. */ int cloog_scattering_lazy_block(CloogScattering *s1, CloogScattering *s2, CloogScatteringList *scattering, int scattdims) { return 0; } /** * cloog_domain_lazy_disjoint function: * This function returns 1 if the domains given as input are disjoint, 0 if it * is unable to decide. */ int cloog_domain_lazy_disjoint(CloogDomain *d1, CloogDomain *d2) { return ppl_Pointset_Powerset_C_Polyhedron_is_disjoint_from_Pointset_Powerset_C_Polyhedron(d1->ps, d2->ps); } /** * cloog_scattering_list_lazy_same function: * This function returns 1 if two domains in the list are the same, 0 if it * is unable to decide. */ int cloog_scattering_list_lazy_same(CloogScatteringList *list) { CloogScatteringList *one, *other; for (one = list; one; one = one->next) for (other = one->next; other; other = other->next) if (ppl_Pointset_Powerset_C_Polyhedron_equals_Pointset_Powerset_C_Polyhedron(one->scatt->dom.ps, other->scatt->dom.ps)) return 1; return 0; } int cloog_domain_dimension(CloogDomain *domain) { ppl_dimension_type dim; ppl_Pointset_Powerset_C_Polyhedron_space_dimension(domain->ps, &dim); return dim - domain->nb_par; } int cloog_domain_parameter_dimension(CloogDomain *domain) { return domain->nb_par; } int cloog_scattering_dimension(CloogScattering *scatt, CloogDomain *domain) { ppl_dimension_type dim; ppl_Pointset_Powerset_C_Polyhedron_space_dimension(scatt->dom.ps, &dim); return dim - cloog_domain_dimension(domain) - domain->nb_par; } int cloog_domain_isconvex(CloogDomain *domain) { size_t n; if (ppl_Pointset_Powerset_C_Polyhedron_omega_reduce(domain->ps) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_size(domain->ps, &n) < 0) cloog_die("PPL error.\n"); return n <= 1; } /** * cloog_domain_cut_first function: * This function splits off and returns the first convex set in the * union "domain". The remainder of the union is returned in rest. * The original "domain" itself is destroyed and may not be used * after a call to this function. */ CloogDomain *cloog_domain_cut_first(CloogDomain *domain, CloogDomain **rest) { ppl_const_Polyhedron_t pol; ppl_Pointset_Powerset_C_Polyhedron_t ps, ps_first; ppl_Pointset_Powerset_C_Polyhedron_iterator_t pit; if (ppl_new_Pointset_Powerset_C_Polyhedron_iterator(&pit) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&ps, domain->ps) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_iterator_begin(ps, pit) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference(pit, &pol) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron(&ps_first, pol) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_drop_disjunct(ps, pit, pit) < 0) cloog_die("PPL error.\n"); ppl_delete_Pointset_Powerset_C_Polyhedron_iterator(pit); *rest = cloog_domain_from_powerset(domain->state, ps, domain->nb_par); cloog_domain_free(domain); return cloog_domain_from_powerset((*rest)->state, ps_first, (*rest)->nb_par); } /** * Given a union domain, try to find a simpler representation * using fewer sets in the union. * The original "domain" itself is destroyed and may not be used * after a call to this function. */ CloogDomain *cloog_domain_simplify_union(CloogDomain *domain) { CloogDomain *res; ppl_Pointset_Powerset_C_Polyhedron_t ps; if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&ps, domain->ps) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_pairwise_reduce(ps) < 0) cloog_die("PPL error.\n"); res = cloog_domain_from_powerset(domain->state, ps, domain->nb_par); cloog_domain_free(domain); return res; } /* * Check whether the iterator at position pos in polyhedron pol * has a fixed value. If so, return 1 and assign the this value to *value. * If update is set, then the fixed value is required to be identical * to the original value in *value. */ static int polyhedron_dim_is_fixed(ppl_const_Polyhedron_t pol, int pos, cloog_int_t *value, int update) { int fixed = 0; int row; CloogMatrix *M; M = cloog_matrix_from_polyhedron(pol); for (row = 0; row < M->NbRows; ++row) { if (!cloog_int_is_one(M->p[row][1 + pos]) && !cloog_int_is_neg_one(M->p[row][1 + pos])) continue; if (!cloog_int_is_zero(M->p[row][0])) continue; if (cloog_seq_first_non_zero(M->p[row] + 1, pos) != -1) continue; if (cloog_seq_first_non_zero(M->p[row] + 1 + pos + 1, M->NbColumns - 1 - pos - 2) != -1) continue; if (cloog_int_is_one(M->p[row][1 + pos])) cloog_int_neg(M->p[row][M->NbColumns - 1], M->p[row][M->NbColumns - 1]); if (update && cloog_int_ne(M->p[row][M->NbColumns - 1], *value)) break; cloog_int_set(*value, M->p[row][M->NbColumns - 1]); fixed = 1; break; } cloog_matrix_free(M); return fixed; } /* * Check whether the iterator at position pos in powerset ps * has a fixed value. If so, return 1 and assign the this value to *value. */ static int powerset_dim_is_fixed(ppl_Pointset_Powerset_C_Polyhedron_t ps, int pos, cloog_int_t *value) { int fixed = 1; int first = 1; ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t pit, pit_end; cloog_int_t v; cloog_int_init(v); if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_begin(ps, pit) < 0) cloog_die("PPL error.\n"); if (ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator(&pit_end) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_end(ps, pit_end) < 0) cloog_die("PPL error.\n"); while (!ppl_Pointset_Powerset_C_Polyhedron_const_iterator_equal_test(pit, pit_end)) { ppl_const_Polyhedron_t pol; if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_dereference(pit, &pol) < 0) cloog_die("PPL error.\n"); if (!polyhedron_dim_is_fixed(pol, pos, &v, !first)) { fixed = 0; break; } first = 0; if (ppl_Pointset_Powerset_C_Polyhedron_const_iterator_increment(pit) < 0) cloog_die("PPL error.\n"); } ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit); ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator(pit_end); if (fixed && value) cloog_int_set(*value, v); cloog_int_clear(v); return fixed; } /** * cloog_scattering_lazy_isscalar function: * this function returns 1 if the scattering dimension 'dimension' in the * scattering 'scatt' is constant. * If value is not NULL, then it is set to the constant value of dimension. */ int cloog_scattering_lazy_isscalar(CloogScattering *scatt, int dimension, cloog_int_t *value) { ppl_Pointset_Powerset_C_Polyhedron_t ps = scatt->dom.ps; return powerset_dim_is_fixed(ps, dimension, value); } /** * cloog_domain_lazy_isconstant function: * this function returns 1 if the dimension 'dimension' in the * domain 'domain' is constant. * If value is not NULL, then it is set to the constant value of dimension. */ int cloog_domain_lazy_isconstant(CloogDomain *domain, int dimension, cloog_int_t *value) { return powerset_dim_is_fixed(domain->ps, dimension, value); } /** * cloog_scattering_erase_dimension function: * this function returns a CloogDomain structure builds from 'domain' where * we removed the dimension 'dimension' and every constraint involving this * dimension. */ CloogScattering *cloog_scattering_erase_dimension(CloogScattering *scatt, int dimension) { ppl_Pointset_Powerset_C_Polyhedron_t ps; ppl_dimension_type d = dimension; if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&ps, scatt->dom.ps) < 0) cloog_die("PPL error.\n"); if (ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions(ps, &d, 1) < 0) cloog_die("PPL error.\n"); return cloog_scattering_from_powerset(scatt->dom.state, ps, scatt->dom.nb_par); } /** * cloog_domain_cube: * Construct and return a dim-dimensional cube, with values ranging * between min and max in each dimension. */ CloogDomain *cloog_domain_cube(CloogState *state, int dim, cloog_int_t min, cloog_int_t max) { int i; ppl_Polyhedron_t pol; ppl_Pointset_Powerset_C_Polyhedron_t ps; ppl_Coefficient_t coeff; cloog_int_t v; if (dim == 0) return cloog_domain_universe(state, dim); if (ppl_new_C_Polyhedron_from_space_dimension(&pol, dim, 0) < 0) cloog_die("PPL error.\n"); cloog_int_init(v); if (ppl_new_Coefficient(&coeff) < 0) cloog_die("PPL error.\n"); for (i = 0; i < dim; ++i) { ppl_Linear_Expression_t le; ppl_Constraint_t con; if (ppl_new_Linear_Expression_with_dimension(&le, dim) < 0) cloog_die("PPL error.\n"); cloog_int_set_si(v, 1); ppl_assign_Coefficient_from_mpz_t(coeff, v); if (ppl_Linear_Expression_add_to_coefficient(le, i, coeff) < 0) cloog_die("PPL error.\n"); cloog_int_neg(v, min); ppl_assign_Coefficient_from_mpz_t(coeff, v); if (ppl_Linear_Expression_add_to_inhomogeneous(le, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint(&con, le, PPL_CONSTRAINT_TYPE_GREATER_OR_EQUAL) < 0) cloog_die("PPL error.\n"); ppl_delete_Linear_Expression(le); if (ppl_Polyhedron_add_constraint(pol, con) < 0) cloog_die("PPL error.\n"); ppl_delete_Constraint(con); if (ppl_new_Linear_Expression_with_dimension(&le, dim) < 0) cloog_die("PPL error.\n"); cloog_int_set_si(v, -1); ppl_assign_Coefficient_from_mpz_t(coeff, v); if (ppl_Linear_Expression_add_to_coefficient(le, i, coeff) < 0) cloog_die("PPL error.\n"); ppl_assign_Coefficient_from_mpz_t(coeff, max); if (ppl_Linear_Expression_add_to_inhomogeneous(le, coeff) < 0) cloog_die("PPL error.\n"); if (ppl_new_Constraint(&con, le, PPL_CONSTRAINT_TYPE_GREATER_OR_EQUAL) < 0) cloog_die("PPL error.\n"); ppl_delete_Linear_Expression(le); if (ppl_Polyhedron_add_constraint(pol, con) < 0) cloog_die("PPL error.\n"); ppl_delete_Constraint(con); } ppl_delete_Coefficient(coeff); cloog_int_clear(v); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron(&ps, pol) < 0) cloog_die("PPL error.\n"); ppl_delete_Polyhedron(pol); return cloog_domain_from_powerset(state, ps, 0); } /** * cloog_domain_scatter function: * This function add the scattering (scheduling) informations to a domain. */ CloogDomain *cloog_domain_scatter(CloogDomain *domain, CloogScattering *scatt) { ppl_Pointset_Powerset_C_Polyhedron_t ps; CloogDomain *res; int nb_scat = cloog_scattering_dimension(scatt, domain); if (ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron(&ps, domain->ps) < 0) cloog_die("PPL error.\n"); powerset_insert_dims(ps, 0, nb_scat); if (ppl_Pointset_Powerset_C_Polyhedron_intersection_assign(ps, scatt->dom.ps) < 0) cloog_die("PPL error.\n"); res = cloog_domain_from_powerset(domain->state, ps, domain->nb_par); cloog_domain_free(domain); return res; } /* Check if the given list of domains has a common stride on the given level. * If so, return a pointer to a CloogStride object. If not, return NULL. * * We conservatively return NULL in this backend. */ CloogStride *cloog_domain_list_stride(CloogDomainList *list, int level) { return NULL; } cloog-parma-0.16.1/configure0000755000175000017500000155435111511607554012653 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.65. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= PACKAGE_URL= ac_unique_file="source/backend.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" enable_option_checking=no ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS subdirs pkgconfig_libfile pkgconfig_libdir BITS INSTALL BUNDLED_CLOOG_FALSE BUNDLED_CLOOG_TRUE CLOOG_CPPFLAGS CLOOG_BUILDDIR CLOOG_SRCDIR PPL_LIBS PPL_LDFLAGS PPL_CPPFLAGS NEED_GET_MEMORY_FUNCTIONS_FALSE NEED_GET_MEMORY_FUNCTIONS_TRUE CFLAGS_WARN PRTDIAG CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL RANLIB AR OBJDUMP NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL CD LN_S am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC versioninfo am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_gnu_ld enable_libtool_lock enable_portable_binary with_gcc_arch with_gmp with_gmp_prefix with_gmp_exec_prefix with_gmp_builddir with_ppl with_ppl_prefix with_ppl_exec_prefix with_ppl_builddir with_cloog with_cloog_prefix with_cloog_exec_prefix with_cloog_builddir ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' ac_subdirs_all='cloog-core' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error "unrecognized option: \`$ac_option' Try \`$0 --help' for more information." ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-portable-binary disable compiler optimizations that would produce unportable binaries Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-gcc-arch= use architecture for gcc -march/-mtune, instead of guessing --with-gmp=system Which gmp to use --with-gmp-prefix=DIR Prefix of gmp installation --with-gmp-exec-prefix=DIR Exec prefix of gmp installation --with-gmp-builddir=DIR Location of gmp builddir --with-ppl=system Which ppl to use --with-ppl-prefix=DIR Prefix of ppl installation --with-ppl-exec-prefix=DIR Exec prefix of ppl installation --with-ppl-builddir=DIR Location of ppl builddir --with-cloog=build|bundled Which cloog to use --with-cloog-prefix=DIR Prefix of cloog installation --with-cloog-exec-prefix=DIR Exec prefix of cloog installation --with-cloog-builddir=DIR Location of cloog builddir Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.65 Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_type # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel # ac_fn_c_check_decl LINENO SYMBOL VAR # ------------------------------------ # Tests whether SYMBOL is declared, setting cache variable VAR accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5 $as_echo_n "checking whether $2 is declared... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $2 (void) $2; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_decl cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.65. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in autoconf "$srcdir"/autoconf; do for ac_t in install-sh install.sh shtool; do if test -f "$ac_dir/$ac_t"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/$ac_t -c" break 2 fi done done if test -z "$ac_aux_dir"; then as_fn_error "cannot find install-sh, install.sh, or shtool in autoconf \"$srcdir\"/autoconf" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. am__api_version='1.11' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=cloog-parma VERSION=0.16.1 cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' versioninfo=1:1:0 ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "no acceptable C compiler found in \$PATH See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { as_fn_set_status 77 as_fn_error "C compiler cannot create executables See \`config.log' for more details." "$LINENO" 5; }; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of object files: cannot compile See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi # Extract the first word of "cd", so it can be a program name with args. set dummy cd; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CD"; then ac_cv_prog_CD="$CD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CD="" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CD=$ac_cv_prog_CD if test -n "$CD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CD" >&5 $as_echo "$CD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.8' macro_revision='1.3169' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`print -r -- -n 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if test "${lt_cv_ld_force_load+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' lt_prog_compiler_pic='-Xcompiler -fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if test "${lt_cv_prog_compiler__b+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(void) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if test "${lt_cv_archive_cmds_need_lc+set}" = set; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) void fnord () __attribute__((visibility("default"))); #endif void fnord () { int i=42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) void fnord () __attribute__((visibility("default"))); #endif void fnord () { int i=42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler vendor" >&5 $as_echo_n "checking for C compiler vendor... " >&6; } if test "${ax_cv_c_compiler_vendor+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_cv_c_compiler_vendor=unknown # note: don't check for gcc first since some other compilers define __GNUC__ for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ pathscale:__PATHCC__,__PATHSCALE__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #if !($vencpp) thisisanerror; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_c_compiler_vendor=`echo $ventest | cut -d: -f1`; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_compiler_vendor" >&5 $as_echo "$ax_cv_c_compiler_vendor" >&6; } # Check whether --enable-portable-binary was given. if test "${enable_portable_binary+set}" = set; then : enableval=$enable_portable_binary; acx_maxopt_portable=$withval else acx_maxopt_portable=no fi # Try to determine "good" native compiler flags if none specified via CFLAGS if test "$ac_test_CFLAGS" != "set"; then CFLAGS="" case $ax_cv_c_compiler_vendor in dec) CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host" if test "x$acx_maxopt_portable" = xno; then CFLAGS="$CFLAGS -arch host" fi;; sun) CFLAGS="-native -fast -xO5 -dalign" if test "x$acx_maxopt_portable" = xyes; then CFLAGS="$CFLAGS -xarch=generic" fi;; hp) CFLAGS="+Oall +Optrs_ansi +DSnative" if test "x$acx_maxopt_portable" = xyes; then CFLAGS="$CFLAGS +DAportable" fi;; ibm) if test "x$acx_maxopt_portable" = xno; then xlc_opt="-qarch=auto -qtune=auto" else xlc_opt="-qtune=auto" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $xlc_opt" >&5 $as_echo_n "checking whether C compiler accepts $xlc_opt... " >&6; } ax_save_FLAGS=$CFLAGS CFLAGS="$xlc_opt" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval `$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh`=yes else eval `$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh`=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then CFLAGS="-O3 -qansialias -w $xlc_opt" else CFLAGS="-O3 -qansialias -w" echo "******************************************************" echo "* You seem to have the IBM C compiler. It is *" echo "* recommended for best performance that you use: *" echo "* *" echo "* CFLAGS=-O3 -qarch=xxx -qtune=xxx -qansialias -w *" echo "* ^^^ ^^^ *" echo "* where xxx is pwr2, pwr3, 604, or whatever kind of *" echo "* CPU you have. (Set the CFLAGS environment var. *" echo "* and re-run configure.) For more info, man cc. *" echo "******************************************************" fi ;; intel) CFLAGS="-O3 -ansi_alias" if test "x$acx_maxopt_portable" = xno; then icc_archflag=unknown icc_flags="" case $host_cpu in i686*|x86_64*) # icc accepts gcc assembly syntax, so these should work: ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 0 output" >&5 $as_echo_n "checking for x86 cpuid 0 output... " >&6; } if test "${ax_cv_gcc_x86_cpuid_0+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ax_cv_gcc_x86_cpuid_0=unknown else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int op = 0, eax, ebx, ecx, edx; FILE *f; __asm__("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (op)); f = fopen("conftest_cpuid", "w"); if (!f) return 1; fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx); fclose(f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid else ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0" >&5 $as_echo "$ax_cv_gcc_x86_cpuid_0" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 1 output" >&5 $as_echo_n "checking for x86 cpuid 1 output... " >&6; } if test "${ax_cv_gcc_x86_cpuid_1+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ax_cv_gcc_x86_cpuid_1=unknown else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int op = 1, eax, ebx, ecx, edx; FILE *f; __asm__("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (op)); f = fopen("conftest_cpuid", "w"); if (!f) return 1; fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx); fclose(f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid else ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_1" >&5 $as_echo "$ax_cv_gcc_x86_cpuid_1" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu case $ax_cv_gcc_x86_cpuid_0 in # see AX_GCC_ARCHFLAG *:756e6547:*:*) # Intel case $ax_cv_gcc_x86_cpuid_1 in *6a?:*[234]:*:*|*6[789b]?:*:*:*) icc_flags="-xK";; *f3[347]:*:*:*|*f41347:*:*:*) icc_flags="-xP -xN -xW -xK";; *f??:*:*:*) icc_flags="-xN -xW -xK";; esac ;; esac ;; esac if test "x$icc_flags" != x; then for flag in $icc_flags; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 $as_echo_n "checking whether C compiler accepts $flag... " >&6; } ax_save_FLAGS=$CFLAGS CFLAGS="$flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=yes else eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then icc_archflag=$flag; break else : fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icc architecture flag" >&5 $as_echo_n "checking for icc architecture flag... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $icc_archflag" >&5 $as_echo "$icc_archflag" >&6; } if test "x$icc_archflag" != xunknown; then CFLAGS="$CFLAGS $icc_archflag" fi fi ;; gnu) # default optimization flags for gcc on all systems CFLAGS="-O3 -fomit-frame-pointer" # -malign-double for x86 systems { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -malign-double" >&5 $as_echo_n "checking whether C compiler accepts -malign-double... " >&6; } if test "${ax_cv_c_flags__malign_double+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_save_FLAGS=$CFLAGS CFLAGS="-malign-double" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_c_flags__malign_double=yes else ax_cv_c_flags__malign_double=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS fi eval ax_check_compiler_flags=$ax_cv_c_flags__malign_double { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then CFLAGS="$CFLAGS -malign-double" else : fi # -fstrict-aliasing for gcc-2.95+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fstrict-aliasing" >&5 $as_echo_n "checking whether C compiler accepts -fstrict-aliasing... " >&6; } if test "${ax_cv_c_flags__fstrict_aliasing+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_save_FLAGS=$CFLAGS CFLAGS="-fstrict-aliasing" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_c_flags__fstrict_aliasing=yes else ax_cv_c_flags__fstrict_aliasing=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS fi eval ax_check_compiler_flags=$ax_cv_c_flags__fstrict_aliasing { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then CFLAGS="$CFLAGS -fstrict-aliasing" else : fi # note that we enable "unsafe" fp optimization with other compilers, too { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -ffast-math" >&5 $as_echo_n "checking whether C compiler accepts -ffast-math... " >&6; } if test "${ax_cv_c_flags__ffast_math+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_save_FLAGS=$CFLAGS CFLAGS="-ffast-math" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_c_flags__ffast_math=yes else ax_cv_c_flags__ffast_math=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS fi eval ax_check_compiler_flags=$ax_cv_c_flags__ffast_math { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then CFLAGS="$CFLAGS -ffast-math" else : fi # Check whether --with-gcc-arch was given. if test "${with_gcc_arch+set}" = set; then : withval=$with_gcc_arch; ax_gcc_arch=$withval else ax_gcc_arch=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc architecture flag" >&5 $as_echo_n "checking for gcc architecture flag... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } if test "${ax_cv_gcc_archflag+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_cv_gcc_archflag="unknown" if test "$GCC" = yes; then if test "x$ax_gcc_arch" = xyes; then ax_gcc_arch="" if test "$cross_compiling" = no; then case $host_cpu in i[3456]86*|x86_64*) # use cpuid codes, in part from x86info-1.7 by D. Jones ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 0 output" >&5 $as_echo_n "checking for x86 cpuid 0 output... " >&6; } if test "${ax_cv_gcc_x86_cpuid_0+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ax_cv_gcc_x86_cpuid_0=unknown else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int op = 0, eax, ebx, ecx, edx; FILE *f; __asm__("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (op)); f = fopen("conftest_cpuid", "w"); if (!f) return 1; fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx); fclose(f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid else ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0" >&5 $as_echo "$ax_cv_gcc_x86_cpuid_0" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 1 output" >&5 $as_echo_n "checking for x86 cpuid 1 output... " >&6; } if test "${ax_cv_gcc_x86_cpuid_1+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ax_cv_gcc_x86_cpuid_1=unknown else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int op = 1, eax, ebx, ecx, edx; FILE *f; __asm__("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (op)); f = fopen("conftest_cpuid", "w"); if (!f) return 1; fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx); fclose(f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid else ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_1" >&5 $as_echo "$ax_cv_gcc_x86_cpuid_1" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu case $ax_cv_gcc_x86_cpuid_0 in *:756e6547:*:*) # Intel case $ax_cv_gcc_x86_cpuid_1 in *5[48]?:*:*:*) ax_gcc_arch="pentium-mmx pentium" ;; *5??:*:*:*) ax_gcc_arch=pentium ;; *6[3456]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;; *6a?:*[01]:*:*) ax_gcc_arch="pentium2 pentiumpro" ;; *6a?:*[234]:*:*) ax_gcc_arch="pentium3 pentiumpro" ;; *6[9d]?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;; *6[78b]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;; *6??:*:*:*) ax_gcc_arch=pentiumpro ;; *f3[347]:*:*:*|*f41347:*:*:*) case $host_cpu in x86_64*) ax_gcc_arch="nocona pentium4 pentiumpro" ;; *) ax_gcc_arch="prescott pentium4 pentiumpro" ;; esac ;; *f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro";; esac ;; *:68747541:*:*) # AMD case $ax_cv_gcc_x86_cpuid_1 in *5[67]?:*:*:*) ax_gcc_arch=k6 ;; *5[8d]?:*:*:*) ax_gcc_arch="k6-2 k6" ;; *5[9]?:*:*:*) ax_gcc_arch="k6-3 k6" ;; *60?:*:*:*) ax_gcc_arch=k7 ;; *6[12]?:*:*:*) ax_gcc_arch="athlon k7" ;; *6[34]?:*:*:*) ax_gcc_arch="athlon-tbird k7" ;; *67?:*:*:*) ax_gcc_arch="athlon-4 athlon k7" ;; *6[68a]?:*:*:*) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 0x80000006 output" >&5 $as_echo_n "checking for x86 cpuid 0x80000006 output... " >&6; } if test "${ax_cv_gcc_x86_cpuid_0x80000006+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ax_cv_gcc_x86_cpuid_0x80000006=unknown else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int op = 0x80000006, eax, ebx, ecx, edx; FILE *f; __asm__("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (op)); f = fopen("conftest_cpuid", "w"); if (!f) return 1; fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx); fclose(f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ax_cv_gcc_x86_cpuid_0x80000006=`cat conftest_cpuid`; rm -f conftest_cpuid else ax_cv_gcc_x86_cpuid_0x80000006=unknown; rm -f conftest_cpuid fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0x80000006" >&5 $as_echo "$ax_cv_gcc_x86_cpuid_0x80000006" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # L2 cache size case $ax_cv_gcc_x86_cpuid_0x80000006 in *:*:*[1-9a-f]??????:*) # (L2 = ecx >> 16) >= 256 ax_gcc_arch="athlon-xp athlon-4 athlon k7" ;; *) ax_gcc_arch="athlon-4 athlon k7" ;; esac ;; *f[4cef8b]?:*:*:*) ax_gcc_arch="athlon64 k8" ;; *f5?:*:*:*) ax_gcc_arch="opteron k8" ;; *f7?:*:*:*) ax_gcc_arch="athlon-fx opteron k8" ;; *f??:*:*:*) ax_gcc_arch="k8" ;; esac ;; *:746e6543:*:*) # IDT case $ax_cv_gcc_x86_cpuid_1 in *54?:*:*:*) ax_gcc_arch=winchip-c6 ;; *58?:*:*:*) ax_gcc_arch=winchip2 ;; *6[78]?:*:*:*) ax_gcc_arch=c3 ;; *69?:*:*:*) ax_gcc_arch="c3-2 c3" ;; esac ;; esac if test x"$ax_gcc_arch" = x; then # fallback case $host_cpu in i586*) ax_gcc_arch=pentium ;; i686*) ax_gcc_arch=pentiumpro ;; esac fi ;; sparc*) # Extract the first word of "prtdiag", so it can be a program name with args. set dummy prtdiag; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PRTDIAG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PRTDIAG in [\\/]* | ?:[\\/]*) ac_cv_path_PRTDIAG="$PRTDIAG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:/usr/platform/`uname -i`/sbin/:/usr/platform/`uname -m`/sbin/" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PRTDIAG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PRTDIAG" && ac_cv_path_PRTDIAG="prtdiag" ;; esac fi PRTDIAG=$ac_cv_path_PRTDIAG if test -n "$PRTDIAG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PRTDIAG" >&5 $as_echo "$PRTDIAG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null` cputype=`echo "$cputype" | tr -d ' -' |tr $as_cr_LETTERS $as_cr_letters` case $cputype in *ultrasparciv*) ax_gcc_arch="ultrasparc4 ultrasparc3 ultrasparc v9" ;; *ultrasparciii*) ax_gcc_arch="ultrasparc3 ultrasparc v9" ;; *ultrasparc*) ax_gcc_arch="ultrasparc v9" ;; *supersparc*|*tms390z5[05]*) ax_gcc_arch="supersparc v8" ;; *hypersparc*|*rt62[056]*) ax_gcc_arch="hypersparc v8" ;; *cypress*) ax_gcc_arch=cypress ;; esac ;; alphaev5) ax_gcc_arch=ev5 ;; alphaev56) ax_gcc_arch=ev56 ;; alphapca56) ax_gcc_arch="pca56 ev56" ;; alphapca57) ax_gcc_arch="pca57 pca56 ev56" ;; alphaev6) ax_gcc_arch=ev6 ;; alphaev67) ax_gcc_arch=ev67 ;; alphaev68) ax_gcc_arch="ev68 ev67" ;; alphaev69) ax_gcc_arch="ev69 ev68 ev67" ;; alphaev7) ax_gcc_arch="ev7 ev69 ev68 ev67" ;; alphaev79) ax_gcc_arch="ev79 ev7 ev69 ev68 ev67" ;; powerpc*) cputype=`((grep cpu /proc/cpuinfo | head -n 1 | cut -d: -f2 | cut -d, -f1 | sed 's/ //g') ; /usr/bin/machine ; /bin/machine; grep CPU /var/run/dmesg.boot | head -n 1 | cut -d" " -f2) 2> /dev/null` cputype=`echo $cputype | sed -e 's/ppc//g;s/ *//g'` case $cputype in *750*) ax_gcc_arch="750 G3" ;; *740[0-9]*) ax_gcc_arch="$cputype 7400 G4" ;; *74[4-5][0-9]*) ax_gcc_arch="$cputype 7450 G4" ;; *74[0-9][0-9]*) ax_gcc_arch="$cputype G4" ;; *970*) ax_gcc_arch="970 G5 power4";; *POWER4*|*power4*|*gq*) ax_gcc_arch="power4 970";; *POWER5*|*power5*|*gr*|*gs*) ax_gcc_arch="power5 power4 970";; 603ev|8240) ax_gcc_arch="$cputype 603e 603";; *) ax_gcc_arch=$cputype ;; esac ax_gcc_arch="$ax_gcc_arch powerpc" ;; esac fi # not cross-compiling fi # guess arch if test "x$ax_gcc_arch" != x -a "x$ax_gcc_arch" != xno; then for arch in $ax_gcc_arch; do if test "x$acx_maxopt_portable" = xyes; then # if we require portable code flags="-mtune=$arch" # -mcpu=$arch and m$arch generate nonportable code on every arch except # x86. And some other arches (e.g. Alpha) don't accept -mtune. Grrr. case $host_cpu in i*86|x86_64*) flags="$flags -mcpu=$arch -m$arch";; esac else flags="-march=$arch -mcpu=$arch -m$arch" fi for flag in $flags; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 $as_echo_n "checking whether C compiler accepts $flag... " >&6; } ax_save_FLAGS=$CFLAGS CFLAGS="$flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=yes else eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then ax_cv_gcc_archflag=$flag; break else : fi done test "x$ax_cv_gcc_archflag" = xunknown || break done fi fi # $GCC=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc architecture flag" >&5 $as_echo_n "checking for gcc architecture flag... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_archflag" >&5 $as_echo "$ax_cv_gcc_archflag" >&6; } if test "x$ax_cv_gcc_archflag" = xunknown; then : else CFLAGS="$CFLAGS $ax_cv_gcc_archflag" fi ;; esac if test -z "$CFLAGS"; then echo "" echo "********************************************************" echo "* WARNING: Don't know the best CFLAGS for this system *" echo "* Use ./configure CFLAGS=... to specify your own flags *" echo "* (otherwise, a default of CFLAGS=-O3 will be used) *" echo "********************************************************" echo "" CFLAGS="-O3" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $CFLAGS" >&5 $as_echo_n "checking whether C compiler accepts $CFLAGS... " >&6; } ax_save_FLAGS=$CFLAGS CFLAGS="$CFLAGS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval `$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh`=yes else eval `$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh`=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then : else echo "" echo "********************************************************" echo "* WARNING: The guessed CFLAGS don't seem to work with *" echo "* your compiler. *" echo "* Use ./configure CFLAGS=... to specify your own flags *" echo "********************************************************" echo "" CFLAGS="" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS_WARN for maximum warnings" >&5 $as_echo_n "checking CFLAGS_WARN for maximum warnings... " >&6; } if test "${ac_cv_cflags_warn_all+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_cflags_warn_all="no, unknown" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_save_CFLAGS="$CFLAGS" for ac_arg in "-pedantic % -Wall" "-xstrconst % -v" "-std1 % -verbose -w0 -warnprotos" "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" "-ansi -ansiE % -fullwarn" "+ESlit % +w1" "-Xc % -pvctl,fullmsg" "-h conform % -h msglevel 2" # do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_cflags_warn_all=`echo $ac_arg | sed -e 's,.*% *,,'` ; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CFLAGS="$ac_save_CFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_warn_all" >&5 $as_echo "$ac_cv_cflags_warn_all" >&6; } case ".$ac_cv_cflags_warn_all" in .ok|.ok,*) ;; .|.no|.no,*) ;; *) if echo " $CFLAGS_WARN " | grep " $ac_cv_cflags_warn_all " 2>&1 >/dev/null then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS_WARN does contain \$ac_cv_cflags_warn_all"; } >&5 (: CFLAGS_WARN does contain $ac_cv_cflags_warn_all) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS_WARN=\"\$CFLAGS_WARN \$ac_cv_cflags_warn_all\""; } >&5 (: CFLAGS_WARN="$CFLAGS_WARN $ac_cv_cflags_warn_all") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } CFLAGS_WARN="$CFLAGS_WARN $ac_cv_cflags_warn_all" fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # Check whether --with-gmp was given. if test "${with_gmp+set}" = set; then : withval=$with_gmp; fi case "system" in gmp) # Check whether --with-gmp_prefix was given. if test "${with_gmp_prefix+set}" = set; then : withval=$with_gmp_prefix; fi # Check whether --with-gmp_exec_prefix was given. if test "${with_gmp_exec_prefix+set}" = set; then : withval=$with_gmp_exec_prefix; fi esac case "build" in system) # Check whether --with-gmp_builddir was given. if test "${with_gmp_builddir+set}" = set; then : withval=$with_gmp_builddir; fi esac if test "x$with_gmp_prefix" != "x" -a "x$with_gmp_exec_prefix" = "x"; then with_gmp_exec_prefix=$with_gmp_prefix fi if test "x$with_gmp_prefix" != "x" -o "x$with_gmp_exec_prefix" != "x"; then if test "x$with_gmp" != "x" -a "x$with_gmp" != "xsystem"; then as_fn_error "Setting $with_gmp_prefix implies use of system gmp" "$LINENO" 5 fi with_gmp="system" fi if test "x$with_gmp_builddir" != "x"; then if test "x$with_gmp" != "x" -a "x$with_gmp" != "xbuild"; then as_fn_error "Setting $with_gmp_builddir implies use of build gmp" "$LINENO" 5 fi with_gmp="build" gmp_srcdir=`echo @abs_srcdir@ | $with_gmp_builddir/config.status --file=-` { $as_echo "$as_me:${as_lineno-$LINENO}: gmp sources in $gmp_srcdir" >&5 $as_echo "$as_me: gmp sources in $gmp_srcdir" >&6;} fi case "$with_gmp" in system) ;; *) if test -d $srcdir/.git -a \ -d $srcdir/gmp -a \ ! -d $srcdir/gmp/.git; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git repo detected, but submodule gmp not initialized" >&5 $as_echo "$as_me: WARNING: git repo detected, but submodule gmp not initialized" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You may want to run" >&5 $as_echo "$as_me: WARNING: You may want to run" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git submodule init" >&5 $as_echo "$as_me: WARNING: git submodule init" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git submodule update" >&5 $as_echo "$as_me: WARNING: git submodule update" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: sh autogen.sh" >&5 $as_echo "$as_me: WARNING: sh autogen.sh" >&2;} fi if test -f $srcdir/gmp/configure -a "system" != "no"; then with_gmp="bundled" else with_gmp="system" fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking which gmp to use" >&5 $as_echo_n "checking which gmp to use... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_gmp" >&5 $as_echo "$with_gmp" >&6; } case "$with_gmp" in system) if test "x$with_gmp_prefix" != "x"; then CPPFLAGS="-I$with_gmp_prefix/include $CPPFLAGS" fi if test "$with_gmp_exec_prefix" != "yes" ; then LDFLAGS="-L$with_gmp_exec_prefix/lib $LDFLAGS" fi ac_fn_c_check_header_mongrel "$LINENO" "gmp.h" "ac_cv_header_gmp_h" "$ac_includes_default" if test "x$ac_cv_header_gmp_h" = x""yes; then : else as_fn_error "Can't find gmp headers." "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __gmpz_init in -lgmp" >&5 $as_echo_n "checking for __gmpz_init in -lgmp... " >&6; } if test "${ac_cv_lib_gmp___gmpz_init+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgmp $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char __gmpz_init (); int main () { return __gmpz_init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gmp___gmpz_init=yes else ac_cv_lib_gmp___gmpz_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp___gmpz_init" >&5 $as_echo "$ac_cv_lib_gmp___gmpz_init" >&6; } if test "x$ac_cv_lib_gmp___gmpz_init" = x""yes; then : LIBS="$LIBS -lgmp" else as_fn_error "Can't find gmp library." "$LINENO" 5 fi ac_fn_c_check_decl "$LINENO" "mp_get_memory_functions" "ac_cv_have_decl_mp_get_memory_functions" "#include " if test "x$ac_cv_have_decl_mp_get_memory_functions" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_MP_GET_MEMORY_FUNCTIONS $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : else need_get_memory_functions=true fi ;; esac if test x$need_get_memory_functions = xtrue; then NEED_GET_MEMORY_FUNCTIONS_TRUE= NEED_GET_MEMORY_FUNCTIONS_FALSE='#' else NEED_GET_MEMORY_FUNCTIONS_TRUE='#' NEED_GET_MEMORY_FUNCTIONS_FALSE= fi # Check whether --with-ppl was given. if test "${with_ppl+set}" = set; then : withval=$with_ppl; fi case "system" in ppl) # Check whether --with-ppl_prefix was given. if test "${with_ppl_prefix+set}" = set; then : withval=$with_ppl_prefix; fi # Check whether --with-ppl_exec_prefix was given. if test "${with_ppl_exec_prefix+set}" = set; then : withval=$with_ppl_exec_prefix; fi esac case "build" in system) # Check whether --with-ppl_builddir was given. if test "${with_ppl_builddir+set}" = set; then : withval=$with_ppl_builddir; fi esac if test "x$with_ppl_prefix" != "x" -a "x$with_ppl_exec_prefix" = "x"; then with_ppl_exec_prefix=$with_ppl_prefix fi if test "x$with_ppl_prefix" != "x" -o "x$with_ppl_exec_prefix" != "x"; then if test "x$with_ppl" != "x" -a "x$with_ppl" != "xsystem"; then as_fn_error "Setting $with_ppl_prefix implies use of system ppl" "$LINENO" 5 fi with_ppl="system" fi if test "x$with_ppl_builddir" != "x"; then if test "x$with_ppl" != "x" -a "x$with_ppl" != "xbuild"; then as_fn_error "Setting $with_ppl_builddir implies use of build ppl" "$LINENO" 5 fi with_ppl="build" ppl_srcdir=`echo @abs_srcdir@ | $with_ppl_builddir/config.status --file=-` { $as_echo "$as_me:${as_lineno-$LINENO}: ppl sources in $ppl_srcdir" >&5 $as_echo "$as_me: ppl sources in $ppl_srcdir" >&6;} fi case "$with_ppl" in system) ;; *) if test -d $srcdir/.git -a \ -d $srcdir/ppl -a \ ! -d $srcdir/ppl/.git; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git repo detected, but submodule ppl not initialized" >&5 $as_echo "$as_me: WARNING: git repo detected, but submodule ppl not initialized" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You may want to run" >&5 $as_echo "$as_me: WARNING: You may want to run" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git submodule init" >&5 $as_echo "$as_me: WARNING: git submodule init" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git submodule update" >&5 $as_echo "$as_me: WARNING: git submodule update" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: sh autogen.sh" >&5 $as_echo "$as_me: WARNING: sh autogen.sh" >&2;} fi if test -f $srcdir/ppl/configure -a "system" != "no"; then with_ppl="bundled" else with_ppl="system" fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking which ppl to use" >&5 $as_echo_n "checking which ppl to use... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_ppl" >&5 $as_echo "$with_ppl" >&6; } case "$with_ppl" in system) if test "x$with_ppl_prefix" != "x"; then PPL_CPPFLAGS="-I$with_ppl_prefix/include" fi if test "x$with_ppl_exec_prefix" != "x"; then PPL_LDFLAGS="-L$with_ppl_exec_prefix/lib" fi PPL_LIBS="-lppl_c -lppl -lgmpxx" SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$PPL_CPPFLAGS $CPPFLAGS" ac_fn_c_check_header_mongrel "$LINENO" "ppl_c.h" "ac_cv_header_ppl_c_h" "$ac_includes_default" if test "x$ac_cv_header_ppl_c_h" = x""yes; then : else as_fn_error "Can't find PPL headers." "$LINENO" 5 fi CPPFLAGS="$SAVE_CPPFLAGS" esac # Check whether --with-cloog was given. if test "${with_cloog+set}" = set; then : withval=$with_cloog; fi case "system" in cloog) # Check whether --with-cloog_prefix was given. if test "${with_cloog_prefix+set}" = set; then : withval=$with_cloog_prefix; fi # Check whether --with-cloog_exec_prefix was given. if test "${with_cloog_exec_prefix+set}" = set; then : withval=$with_cloog_exec_prefix; fi esac case "build" in build|bundled) # Check whether --with-cloog_builddir was given. if test "${with_cloog_builddir+set}" = set; then : withval=$with_cloog_builddir; fi esac if test "x$with_cloog_prefix" != "x" -a "x$with_cloog_exec_prefix" = "x"; then with_cloog_exec_prefix=$with_cloog_prefix fi if test "x$with_cloog_prefix" != "x" -o "x$with_cloog_exec_prefix" != "x"; then if test "x$with_cloog" != "x" -a "x$with_cloog" != "xsystem"; then as_fn_error "Setting $with_cloog_prefix implies use of system cloog" "$LINENO" 5 fi with_cloog="system" fi if test "x$with_cloog_builddir" != "x"; then if test "x$with_cloog" != "x" -a "x$with_cloog" != "xbuild"; then as_fn_error "Setting $with_cloog_builddir implies use of build cloog" "$LINENO" 5 fi with_cloog="build" cloog_srcdir=`echo @abs_srcdir@ | $with_cloog_builddir/config.status --file=-` { $as_echo "$as_me:${as_lineno-$LINENO}: cloog sources in $cloog_srcdir" >&5 $as_echo "$as_me: cloog sources in $cloog_srcdir" >&6;} fi case "$with_cloog" in build|bundled) ;; *) if test -d $srcdir/.git -a \ -d $srcdir/cloog -a \ ! -d $srcdir/cloog/.git; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git repo detected, but submodule cloog not initialized" >&5 $as_echo "$as_me: WARNING: git repo detected, but submodule cloog not initialized" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You may want to run" >&5 $as_echo "$as_me: WARNING: You may want to run" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git submodule init" >&5 $as_echo "$as_me: WARNING: git submodule init" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git submodule update" >&5 $as_echo "$as_me: WARNING: git submodule update" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: sh autogen.sh" >&5 $as_echo "$as_me: WARNING: sh autogen.sh" >&2;} fi if test -f $srcdir/cloog/configure -a "bundled" != "no"; then with_cloog="bundled" else with_cloog="bundled" fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking which cloog to use" >&5 $as_echo_n "checking which cloog to use... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_cloog" >&5 $as_echo "$with_cloog" >&6; } case "$with_cloog" in bundled) CLOOG_SRCDIR="\$(top_srcdir)/cloog-core" CLOOG_BUILDDIR="\$(top_builddir)/cloog-core" ;; build) case "$cloog_srcdir" in /*) CLOOG_SRCDIR=$cloog_srcdir ;; *) CLOOG_SRCDIR="\$(top_srcdir)/$cloog_srcdir" esac case "$with_cloog_builddir" in /*) CLOOG_BUILDDIR=$with_cloog_builddir ;; *) CLOOG_BUILDDIR="\$(top_builddir)/$with_cloog_builddir" esac ;; esac CLOOG_CPPFLAGS="-I$CLOOG_SRCDIR/include -I$CLOOG_BUILDDIR -I$CLOOG_BUILDDIR/include" if test $with_cloog = bundled; then BUNDLED_CLOOG_TRUE= BUNDLED_CLOOG_FALSE='#' else BUNDLED_CLOOG_TRUE='#' BUNDLED_CLOOG_FALSE= fi $as_echo "#define CLOOG_INT_GMP 1" >>confdefs.h BITS="gmp" PACKAGE_NAME="cloog-ppl" PACKAGE_CFLAGS="-DCLOOG_INT_GMP=1" # we need the expanded forms... test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig libname" >&5 $as_echo_n "checking our pkgconfig libname... " >&6; } test ".$ax_create_pkgconfig_libname" != "." || \ ax_create_pkgconfig_libname="${PACKAGE_NAME}" test ".$ax_create_pkgconfig_libname" != "." || \ ax_create_pkgconfig_libname="$PACKAGE" ax_create_pkgconfig_libname=`eval echo "$ax_create_pkgconfig_libname"` ax_create_pkgconfig_libname=`eval echo "$ax_create_pkgconfig_libname"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_libname" >&5 $as_echo "$ax_create_pkgconfig_libname" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig version" >&5 $as_echo_n "checking our pkgconfig version... " >&6; } test ".$ax_create_pkgconfig_version" != "." || \ ax_create_pkgconfig_version="${PACKAGE_VERSION}" test ".$ax_create_pkgconfig_version" != "." || \ ax_create_pkgconfig_version="$VERSION" ax_create_pkgconfig_version=`eval echo "$ax_create_pkgconfig_version"` ax_create_pkgconfig_version=`eval echo "$ax_create_pkgconfig_version"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_version" >&5 $as_echo "$ax_create_pkgconfig_version" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig_libdir" >&5 $as_echo_n "checking our pkgconfig_libdir... " >&6; } test ".$pkgconfig_libdir" = "." && \ pkgconfig_libdir='${libdir}/pkgconfig' ax_create_pkgconfig_libdir=`eval echo "$pkgconfig_libdir"` ax_create_pkgconfig_libdir=`eval echo "$ax_create_pkgconfig_libdir"` ax_create_pkgconfig_libdir=`eval echo "$ax_create_pkgconfig_libdir"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkgconfig_libdir" >&5 $as_echo "$pkgconfig_libdir" >&6; } test "$pkgconfig_libdir" != "$ax_create_pkgconfig_libdir" && ( { $as_echo "$as_me:${as_lineno-$LINENO}: result: expanded our pkgconfig_libdir... $ax_create_pkgconfig_libdir" >&5 $as_echo "expanded our pkgconfig_libdir... $ax_create_pkgconfig_libdir" >&6; }) { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig_libfile" >&5 $as_echo_n "checking our pkgconfig_libfile... " >&6; } test ".$pkgconfig_libfile" != "." || \ pkgconfig_libfile="$ax_create_pkgconfig_libname.pc" ax_create_pkgconfig_libfile=`eval echo "$pkgconfig_libfile"` ax_create_pkgconfig_libfile=`eval echo "$ax_create_pkgconfig_libfile"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkgconfig_libfile" >&5 $as_echo "$pkgconfig_libfile" >&6; } test "$pkgconfig_libfile" != "$ax_create_pkgconfig_libfile" && ( { $as_echo "$as_me:${as_lineno-$LINENO}: result: expanded our pkgconfig_libfile... $ax_create_pkgconfig_libfile" >&5 $as_echo "expanded our pkgconfig_libfile... $ax_create_pkgconfig_libfile" >&6; }) { $as_echo "$as_me:${as_lineno-$LINENO}: checking our package / suffix" >&5 $as_echo_n "checking our package / suffix... " >&6; } ax_create_pkgconfig_suffix="$program_suffix" test ".$ax_create_pkgconfig_suffix" != .NONE || ax_create_pkgconfig_suffix="" { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${PACKAGE_NAME} / ${ax_create_pkgconfig_suffix}" >&5 $as_echo "${PACKAGE_NAME} / ${ax_create_pkgconfig_suffix}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig description" >&5 $as_echo_n "checking our pkgconfig description... " >&6; } ax_create_pkgconfig_description="$PACKAGE_SUMMARY" test ".$ax_create_pkgconfig_description" != "." || \ ax_create_pkgconfig_description="$ax_create_pkgconfig_libname Library" ax_create_pkgconfig_description=`eval echo "$ax_create_pkgconfig_description"` ax_create_pkgconfig_description=`eval echo "$ax_create_pkgconfig_description"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_description" >&5 $as_echo "$ax_create_pkgconfig_description" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig requires" >&5 $as_echo_n "checking our pkgconfig requires... " >&6; } ax_create_pkgconfig_requires="$PACKAGE_REQUIRES" ax_create_pkgconfig_requires=`eval echo "$ax_create_pkgconfig_requires"` ax_create_pkgconfig_requires=`eval echo "$ax_create_pkgconfig_requires"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_requires" >&5 $as_echo "$ax_create_pkgconfig_requires" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig ext libs" >&5 $as_echo_n "checking our pkgconfig ext libs... " >&6; } ax_create_pkgconfig_pkglibs="$PACKAGE_LIBS" test ".$ax_create_pkgconfig_pkglibs" != "." || ax_create_pkgconfig_pkglibs="-l$ax_create_pkgconfig_libname" ax_create_pkgconfig_libs="$ax_create_pkgconfig_pkglibs $LIBS" ax_create_pkgconfig_libs=`eval echo "$ax_create_pkgconfig_libs"` ax_create_pkgconfig_libs=`eval echo "$ax_create_pkgconfig_libs"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_libs" >&5 $as_echo "$ax_create_pkgconfig_libs" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig cppflags" >&5 $as_echo_n "checking our pkgconfig cppflags... " >&6; } ax_create_pkgconfig_cppflags="$CPPFLAGS $PACKAGE_CFLAGS" ax_create_pkgconfig_cppflags=`eval echo "$ax_create_pkgconfig_cppflags"` ax_create_pkgconfig_cppflags=`eval echo "$ax_create_pkgconfig_cppflags"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_cppflags" >&5 $as_echo "$ax_create_pkgconfig_cppflags" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig ldflags" >&5 $as_echo_n "checking our pkgconfig ldflags... " >&6; } ax_create_pkgconfig_ldflags="$LDFLAGS $PACKAGE_LDFLAGS" ax_create_pkgconfig_ldflags=`eval echo "$ax_create_pkgconfig_ldflags"` ax_create_pkgconfig_ldflags=`eval echo "$ax_create_pkgconfig_ldflags"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_ldflags" >&5 $as_echo "$ax_create_pkgconfig_ldflags" >&6; } test ".$ax_create_pkgconfig_generate" != "." || \ ax_create_pkgconfig_generate="$ax_create_pkgconfig_libname.pc" ax_create_pkgconfig_generate=`eval echo "$ax_create_pkgconfig_generate"` ax_create_pkgconfig_generate=`eval echo "$ax_create_pkgconfig_generate"` test "$pkgconfig_libfile" != "$ax_create_pkgconfig_generate" && ( { $as_echo "$as_me:${as_lineno-$LINENO}: result: generate the pkgconfig later... $ax_create_pkgconfig_generate" >&5 $as_echo "generate the pkgconfig later... $ax_create_pkgconfig_generate" >&6; }) if test ".$ax_create_pkgconfig_src_libdir" = "." ; then ax_create_pkgconfig_src_libdir=`pwd` ax_create_pkgconfig_src_libdir=`$as_dirname -- "$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" || $as_expr X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(//\)[^/]' \| \ X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(//\)$' \| \ X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test ! -d $ax_create_pkgconfig_src_libdir/src || \ ax_create_pkgconfig_src_libdir="$ax_create_pkgconfig_src_libdir/src" case ".$objdir" in *libs) ax_create_pkgconfig_src_libdir="$ax_create_pkgconfig_src_libdir/$objdir" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: noninstalled pkgconfig -L $ax_create_pkgconfig_src_libdir" >&5 $as_echo "noninstalled pkgconfig -L $ax_create_pkgconfig_src_libdir" >&6; } fi if test ".$ax_create_pkgconfig_src_headers" = "." ; then ax_create_pkgconfig_src_headers=`pwd` v="$ac_top_srcdir" ; test ".$v" != "." || v="$ax_spec_dir" test ".$v" != "." || v="$srcdir" case "$v" in /*) ax_create_pkgconfig_src_headers="" ;; esac ax_create_pkgconfig_src_headers=`$as_dirname -- "$ax_create_pkgconfig_src_headers/$v/x" || $as_expr X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(//\)[^/]' \| \ X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(//\)$' \| \ X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ax_create_pkgconfig_src_headers/$v/x" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test ! -d $ax_create_pkgconfig_src_headers/include || \ ax_create_pkgconfig_src_headers="$ax_create_pkgconfig_src_headers/include" { $as_echo "$as_me:${as_lineno-$LINENO}: result: noninstalled pkgconfig -I $ax_create_pkgconfig_src_headers" >&5 $as_echo "noninstalled pkgconfig -I $ax_create_pkgconfig_src_headers" >&6; } fi ac_config_commands="$ac_config_commands $ax_create_pkgconfig_generate" ac_config_files="$ac_config_files Makefile test/Makefile" if test $with_cloog = bundled; then subdirs="$subdirs cloog-core" fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${NEED_GET_MEMORY_FUNCTIONS_TRUE}" && test -z "${NEED_GET_MEMORY_FUNCTIONS_FALSE}"; then as_fn_error "conditional \"NEED_GET_MEMORY_FUNCTIONS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${BUNDLED_CLOOG_TRUE}" && test -z "${BUNDLED_CLOOG_FALSE}"; then as_fn_error "conditional \"BUNDLED_CLOOG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.65, with options \\"\$ac_cs_config\\" Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' ax_create_pkgconfig_generate="$ax_create_pkgconfig_generate" pkgconfig_prefix='$prefix' pkgconfig_execprefix='$exec_prefix' pkgconfig_bindir='$bindir' pkgconfig_libdir='$libdir' pkgconfig_includedir='$includedir' pkgconfig_datarootdir='$datarootdir' pkgconfig_datadir='$datadir' pkgconfig_sysconfdir='$sysconfdir' pkgconfig_suffix='$ax_create_pkgconfig_suffix' pkgconfig_package='$PACKAGE_NAME' pkgconfig_libname='$ax_create_pkgconfig_libname' pkgconfig_description='$ax_create_pkgconfig_description' pkgconfig_version='$ax_create_pkgconfig_version' pkgconfig_requires='$ax_create_pkgconfig_requires' pkgconfig_libs='$ax_create_pkgconfig_libs' pkgconfig_ldflags='$ax_create_pkgconfig_ldflags' pkgconfig_cppflags='$ax_create_pkgconfig_cppflags' pkgconfig_src_libdir='$ax_create_pkgconfig_src_libdir' pkgconfig_src_headers='$ax_create_pkgconfig_src_headers' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "$ax_create_pkgconfig_generate") CONFIG_COMMANDS="$CONFIG_COMMANDS $ax_create_pkgconfig_generate" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="" # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "$ax_create_pkgconfig_generate":C) pkgconfig_generate="$ax_create_pkgconfig_generate" if test ! -f "$pkgconfig_generate.in" then generate="true" elif grep ' generated by configure ' $pkgconfig_generate.in >/dev/null then generate="true" else generate="false"; fi if $generate ; then { $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_generate.in" >&5 $as_echo "$as_me: creating $pkgconfig_generate.in" >&6;} cat > $pkgconfig_generate.in <&5 $as_echo "$as_me: creating $pkgconfig_generate" >&6;} cat >conftest.sed < $pkgconfig_generate if test ! -s $pkgconfig_generate ; then as_fn_error "$pkgconfig_generate is empty" "$LINENO" 5 fi ; rm conftest.sed # DONE generate $pkgconfig_generate pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.pc/'` { $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_uninstalled" >&5 $as_echo "$as_me: creating $pkgconfig_uninstalled" >&6;} cat >conftest.sed < $pkgconfig_uninstalled if test ! -s $pkgconfig_uninstalled ; then as_fn_error "$pkgconfig_uninstalled is empty" "$LINENO" 5 fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled pkgconfig_requires_add=`echo ${pkgconfig_requires}` if test ".$pkgconfig_requires_add" != "." ; then pkgconfig_requires_add="pkg-config $pkgconfig_requires_add" else pkgconfig_requires_add=":" ; fi pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.sh/'` { $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_uninstalled" >&5 $as_echo "$as_me: creating $pkgconfig_uninstalled" >&6;} cat >conftest.sed <Name:>for option\\; do case \"\$option\" in --list-all|--name) echo > s>Description: *>\\;\\; --help) pkg-config --help \\; echo Buildscript Of > s>Version: *>\\;\\; --modversion|--version) echo > s>Requires:>\\;\\; --requires) echo $pkgconfig_requires_add> s>Libs: *>\\;\\; --libs) echo > s>Cflags: *>\\;\\; --cflags) echo > /--libs)/a\\ $pkgconfig_requires_add /--cflags)/a\\ $pkgconfig_requires_add\\ ;; --variable=*) eval echo '\$'\`echo \$option | sed -e 's/.*=//'\`\\ ;; --uninstalled) exit 0 \\ ;; *) ;; esac done AXEOF sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled if test ! -s $pkgconfig_uninstalled ; then as_fn_error "$pkgconfig_uninstalled is empty" "$LINENO" 5 fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 old_args="" for arg in $ac_configure_args; do case arg in --with-ppl*) ;; *) old_args="$old_args $arg" ;; esac done ac_configure_args="$old_args --without-isl $cloog_ppl_configure_args" # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit $? fi # # CONFIG_SUBDIRS section. # if test "$no_recursion" != yes; then # Remove --cache-file, --srcdir, and --disable-option-checking arguments # so they do not pile up. ac_sub_configure_args= ac_prev= eval "set x $ac_configure_args" shift for ac_arg do if test -n "$ac_prev"; then ac_prev= continue fi case $ac_arg in -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ | --c=*) ;; --config-cache | -C) ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) ;; --disable-option-checking) ;; *) case $ac_arg in *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_sub_configure_args " '$ac_arg'" ;; esac done # Always prepend --prefix to ensure using the same prefix # in subdir configurations. ac_arg="--prefix=$prefix" case $ac_arg in *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" # Pass --silent if test "$silent" = yes; then ac_sub_configure_args="--silent $ac_sub_configure_args" fi # Always prepend --disable-option-checking to silence warnings, since # different subdirs can have different --enable and --with options. ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" ac_popdir=`pwd` for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue # Do not complain, so a configure script can configure whichever # parts of a large source tree are present. test -d "$srcdir/$ac_dir" || continue ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5 $as_echo "$ac_msg" >&6 as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" # Check for guested configure; otherwise get Cygnus style configure. if test -f "$ac_srcdir/configure.gnu"; then ac_sub_configure=$ac_srcdir/configure.gnu elif test -f "$ac_srcdir/configure"; then ac_sub_configure=$ac_srcdir/configure elif test -f "$ac_srcdir/configure.in"; then # This should be Cygnus configure. ac_sub_configure=$ac_aux_dir/configure else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5 $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} ac_sub_configure= fi # The recursion is here. if test -n "$ac_sub_configure"; then # Make the cache file name correct relative to the subdirectory. case $cache_file in [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; *) # Relative name. ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} # The eval makes quoting arguments work. eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || as_fn_error "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 fi cd "$ac_popdir" done fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi echo " /*-----------------------------------------------*" echo " * CLooG configuration is OK *" echo " *-----------------------------------------------*/" echo "It appears that your system is OK to start CLooG compilation. You need" echo "now to type \"make\". After compilation, you should check CLooG by typing" echo "\"make check\". If no problem occur, you can type \"make uninstall\" if" echo "you are upgrading an old version. Lastly type \"make install\" to install" echo "CLooG on your system (log as root if necessary)." cloog-parma-0.16.1/include/0000755000175000017500000000000011511607624012427 500000000000000cloog-parma-0.16.1/include/cloog/0000755000175000017500000000000011511607624013532 500000000000000cloog-parma-0.16.1/include/cloog/ppl/0000755000175000017500000000000011511607624014325 500000000000000cloog-parma-0.16.1/include/cloog/ppl/domain.h0000644000175000017500000000054011323427315015662 00000000000000#ifndef CLOOG_PPL_DOMAIN_H #define CLOOG_PPL_DOMAIN_H #include #if defined(__cplusplus) extern "C" { #endif struct cloogdomain { CloogState *state; ppl_Pointset_Powerset_C_Polyhedron_t ps; int nb_par; int refs; }; struct cloogscattering { struct cloogdomain dom; }; #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/include/cloog/ppl/cloog.h0000644000175000017500000000036311323427315015521 00000000000000#ifndef CLOOG_PPL_H #define CLOOG_PPL_H #ifndef CLOOG_INT_GMP #define CLOOG_INT_GMP #endif #include #include #include #include #endif /* define _H */ cloog-parma-0.16.1/include/cloog/ppl/backend.h0000644000175000017500000000015211323427315016001 00000000000000#ifndef CLOOG_PPL_BACKEND_H #define CLOOG_PPL_BACKEND_H struct cloogbackend { }; #endif /* define _H */ cloog-parma-0.16.1/configure.ac0000644000175000017500000001103511511607476013217 00000000000000AC_PREREQ(2.13) AC_INIT(source/backend.c) AC_CONFIG_AUX_DIR(autoconf) AC_CONFIG_MACRO_DIR([m4]) AM_INIT_AUTOMAKE(cloog-parma, 0.16.1) AC_SUBST(versioninfo) versioninfo=1:1:0 AC_PROG_CC AC_PROG_LN_S AC_PROG_MAKE_SET AC_CHECK_PROG(CD, cd) AC_PROG_INSTALL AC_PROG_LIBTOOL AX_CC_MAXOPT AC_SUBST(CFLAGS_WARN) AX_CFLAGS_WARN_ALL(CFLAGS_WARN) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_SIZE_T dnl Checks for header files. AC_HEADER_STDC dnl /************************************************************************** dnl * Where is GMP? * dnl **************************************************************************/ AX_SUBMODULE(gmp,system,system) case "$with_gmp" in system) if test "x$with_gmp_prefix" != "x"; then CPPFLAGS="-I$with_gmp_prefix/include $CPPFLAGS" fi if test "$with_gmp_exec_prefix" != "yes" ; then LDFLAGS="-L$with_gmp_exec_prefix/lib $LDFLAGS" fi AC_CHECK_HEADER(gmp.h, [], [AC_MSG_ERROR(Can't find gmp headers.)]) AC_CHECK_LIB(gmp, __gmpz_init, [LIBS="$LIBS -lgmp"], [AC_MSG_ERROR(Can't find gmp library.)]) AC_CHECK_DECLS(mp_get_memory_functions,[],[ need_get_memory_functions=true ],[#include ]) ;; esac AM_CONDITIONAL(NEED_GET_MEMORY_FUNCTIONS, test x$need_get_memory_functions = xtrue) dnl /************************************************************************** dnl * Where is PPL? * dnl **************************************************************************/ AX_SUBMODULE(ppl,system,system) AC_SUBST(PPL_CPPFLAGS) AC_SUBST(PPL_LDFLAGS) AC_SUBST(PPL_LIBS) case "$with_ppl" in system) if test "x$with_ppl_prefix" != "x"; then PPL_CPPFLAGS="-I$with_ppl_prefix/include" fi if test "x$with_ppl_exec_prefix" != "x"; then PPL_LDFLAGS="-L$with_ppl_exec_prefix/lib" fi PPL_LIBS="-lppl_c -lppl -lgmpxx" SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$PPL_CPPFLAGS $CPPFLAGS" AC_CHECK_HEADER(ppl_c.h, [], [AC_MSG_ERROR(Can't find PPL headers.)]) CPPFLAGS="$SAVE_CPPFLAGS" esac dnl /************************************************************************** dnl * Where is CLooG? * dnl **************************************************************************/ AX_SUBMODULE(cloog,build|bundled,bundled) AC_SUBST(CLOOG_SRCDIR) AC_SUBST(CLOOG_BUILDDIR) AC_SUBST(CLOOG_CPPFLAGS) case "$with_cloog" in bundled) CLOOG_SRCDIR="\$(top_srcdir)/cloog-core" CLOOG_BUILDDIR="\$(top_builddir)/cloog-core" ;; build) case "$cloog_srcdir" in /*) CLOOG_SRCDIR=$cloog_srcdir ;; *) CLOOG_SRCDIR="\$(top_srcdir)/$cloog_srcdir" esac case "$with_cloog_builddir" in /*) CLOOG_BUILDDIR=$with_cloog_builddir ;; *) CLOOG_BUILDDIR="\$(top_builddir)/$with_cloog_builddir" esac ;; esac CLOOG_CPPFLAGS="-I$CLOOG_SRCDIR/include -I$CLOOG_BUILDDIR -I$CLOOG_BUILDDIR/include" AM_CONDITIONAL(BUNDLED_CLOOG, test $with_cloog = bundled) AC_DEFINE([CLOOG_INT_GMP], 1, [Use arbitrary precision integers]) BITS="gmp" dnl /************************************************************************** dnl * Substitutions * dnl **************************************************************************/ dnl Substitutions to do in Makefile.in. AC_SUBST(CC) AC_SUBST(LN_S) AC_SUBST(prefix) AC_SUBST(exec_prefix) AC_SUBST(INSTALL) AC_SUBST(BITS) PACKAGE_NAME="cloog-ppl" PACKAGE_CFLAGS="-DCLOOG_INT_GMP=1" AX_CREATE_PKGCONFIG_INFO AC_CONFIG_FILES(Makefile test/Makefile) if test $with_cloog = bundled; then AC_CONFIG_SUBDIRS(cloog-core) fi AC_CONFIG_COMMANDS_POST([ old_args="" for arg in $ac_configure_args; do case arg in --with-ppl*) ;; *) old_args="$old_args $arg" ;; esac done ac_configure_args="$old_args --without-isl $cloog_ppl_configure_args" ]) AC_OUTPUT echo " /*-----------------------------------------------*" echo " * CLooG configuration is OK *" echo " *-----------------------------------------------*/" echo "It appears that your system is OK to start CLooG compilation. You need" echo "now to type \"make\". After compilation, you should check CLooG by typing" echo "\"make check\". If no problem occur, you can type \"make uninstall\" if" echo "you are upgrading an old version. Lastly type \"make install\" to install" echo "CLooG on your system (log as root if necessary)." cloog-parma-0.16.1/cloog-core/0000755000175000017500000000000011511607626013037 500000000000000cloog-parma-0.16.1/cloog-core/Makefile.am0000644000175000017500000001431311505435152015011 00000000000000# # /**-------------------------------------------------------------------** # ** CLooG ** # **-------------------------------------------------------------------** # ** makefile.in ** # **-------------------------------------------------------------------** # ** First version: october 25th 2001 ** # **-------------------------------------------------------------------**/ # # makefile.in (or makefile if generated) of CLooG, the Chunky LOOp Generator. # makefile.in is not a makefile, you must run the 'configure' shellscript to # generate the makefile thanks to this file. #/***************************************************************************** # * CLooG : the Chunky Loop Generator (experimental) * # ***************************************************************************** # * * # * Copyright (C) 2001 Cedric Bastoul * # * * # * This library is free software; you can redistribute it and/or * # * modify it under the terms of the GNU Lesser General Public * # * License as published by the Free Software Foundation; either * # * version 2.1 of the License, or (at your option) any later version. * # * * # * This library is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * # * Lesser General Public License for more details. * # * * # * You should have received a copy of the GNU Lesser General Public * # * License along with this library; if not, write to the Free Software * # * Foundation, Inc., 51 Franklin Street, Fifth Floor, * # * Boston, MA 02110-1301 USA * # * * # * CLooG, the Chunky Loop Generator * # * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * # * * # *****************************************************************************/ if BUNDLED_ISL MAYBE_ISL = isl ISL_LA = $(top_builddir)/isl/libisl.la endif SUBDIRS = $(MAYBE_ISL) . doc test DIST_SUBDIRS = $(MAYBE_ISL) . doc test ACLOCAL_AMFLAGS = -I m4 FORCE: isl/libisl.la: FORCE cd isl; $(MAKE) $(AM_MAKEFLAGS) libisl.la if NO_ISL CLOOG = LIBCLOOG = else CLOOG = cloog LIBCLOOG = libcloog-isl.la endif bin_PROGRAMS = $(CLOOG) lib_LTLIBRARIES = $(LIBCLOOG) if NEED_GET_MEMORY_FUNCTIONS GET_MEMORY_FUNCTIONS=source/mp_get_memory_functions.c endif SOURCES_CORE = \ $(GET_MEMORY_FUNCTIONS) \ source/block.c \ source/clast.c \ source/matrix.c \ source/state.c \ source/input.c \ source/int.c \ source/loop.c \ source/names.c \ source/options.c \ source/pprint.c \ source/program.c \ source/statement.c \ source/stride.c \ source/union_domain.c \ source/version.c DEFAULT_INCLUDES = -I. INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include AM_CFLAGS = $(CFLAGS_WARN) libcloog_isl_la_CPPFLAGS = @ISL_CPPFLAGS@ libcloog_isl_la_LDFLAGS = -version-info @versioninfo@ \ -rpath $(libdir) @ISL_LDFLAGS@ libcloog_isl_la_LIBADD = @ISL_LIBS@ $(ISL_LA) libcloog_isl_la_SOURCES = \ $(SOURCES_CORE) \ source/isl/domain.c \ source/isl/constraints.c \ source/isl/backend.c LDADD = libcloog-isl.la cloog_DEPENDENCIES = libcloog-isl.la cloog_SOURCES = source/cloog.c pkginclude_HEADERS = \ include/cloog/block.h \ include/cloog/clast.h \ include/cloog/cloog.h \ include/cloog/input.h \ include/cloog/int.h \ include/cloog/matrix.h \ include/cloog/state.h \ include/cloog/domain.h \ include/cloog/loop.h \ include/cloog/constraints.h \ include/cloog/names.h \ include/cloog/options.h \ include/cloog/pprint.h \ include/cloog/program.h \ include/cloog/statement.h \ include/cloog/stride.h \ include/cloog/union_domain.h \ include/cloog/version.h pkgmatrixincludedir = $(pkgincludedir)/matrix pkgmatrixinclude_HEADERS = \ include/cloog/matrix/constraintset.h pkgislincludedir = $(pkgincludedir)/isl pkgislinclude_HEADERS = \ include/cloog/isl/backend.h \ include/cloog/isl/cloog.h \ include/cloog/isl/domain.h \ include/cloog/isl/constraintset.h version.h: @GIT_INDEX@ echo '#define CLOOG_HEAD "'`$(top_builddir)/genversion.sh`'"' > $@ EXTRA_DIST = \ autoconf/Doxyfile.in \ source/matrix/constraintset.c \ doc/cloog.texi \ doc/images \ examples install-data-local: @test -z "$(pkgconfig_libdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfig_libdir)" $(INSTALL_DATA) $(pkgconfig_libfile) "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)" uninstall-local: rm -f "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)" dist-hook: rm -f $(distdir)/test/Makefile $(top_builddir)/genversion.sh > $(distdir)/CLOOG_HEAD (cd doc; make cloog.pdf) && cp doc/cloog.pdf $(distdir)/doc/ #/***************************************************************************** # * Rules * # *****************************************************************************/ check: $(MAKE) test -C test valcheck: $(MAKE) valgrind -C test total: @echo " /*-----------------------------------------------*" @echo " * CLooG *" @echo " *-----------------------------------------------*/" $(MAKE) uninstall $(MAKE) clean $(MAKE) $(MAKE) install doc: @echo " /*-----------------------------------------------*" @echo " * Generating CLooG's documentation *" @echo " *-----------------------------------------------*/" doxygen ./autoconf/Doxyfile cloog-parma-0.16.1/cloog-core/test/0000755000175000017500000000000011511607626014016 500000000000000cloog-parma-0.16.1/cloog-core/test/merge.c0000644000175000017500000000026611323312273015175 00000000000000/* Generated from ../../../git/cloog/test/merge.cloog by CLooG 0.14.0-238-gb1cb779 gmp bits in 0.00s. */ S1(0); for (c1=0;c1<=10;c1++) { if (c1 >= 2) { S2(c1); } S3(c1); } cloog-parma-0.16.1/cloog-core/test/wavefront.c0000644000175000017500000000036611323312273016112 00000000000000/* Generated from ../../../git/cloog/test/wavefront.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if ((m >= 1) && (n >= 1)) { for (c1=2;c1<=n+m;c1++) { for (c2=max(1,c1-m);c2<=min(n,c1-1);c2++) { S1(c2,c1-c2) ; } } } cloog-parma-0.16.1/cloog-core/test/infinite4.cloog0000644000175000017500000000016011321074700016637 00000000000000# langage c # Context 0 2 0 1 # Number of statements 1 # {i | 1<=i<=M} 0 3 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/orc.cloog0000644000175000017500000000516011321074700015536 00000000000000 #-------------------CONTEXT------------------------ c # language is c # Context (no constarints on parameters) 1 2 # 1 lines and 2 coloumns # 1 1 0 1 # We want to set manually the parameter names #---------------------STATEMENTS-------------------- 7 #Number of Statements 1 #STMT 1 at line no. 12 has 1 domain # Domain 1 2 3 # i 1 1 1 0 1 -1 2 0 0 0 1 #STMT 2 at line no. 15 has 1 domain # Domain 1 4 4 # i j 1 1 1 0 0 1 -1 0 2 1 0 1 0 1 -1 -1 11 0 0 0 1 #STMT 3 at line no. 16 has 1 domain # Domain 1 4 4 # i j 1 1 1 0 0 1 -1 0 2 1 0 1 0 1 -1 -1 11 0 0 0 1 #STMT 4 at line no. 20 has 1 domain # Domain 1 2 3 # i 1 1 1 0 1 -1 2 0 0 0 1 #STMT 1 at line no. 32 has 1 domain # Domain 1 2 3 # l 1 1 1 0 1 -1 14 0 0 0 1 #STMT 2 at line no. 37 has 1 domain # Domain 1 4 4 # l m 1 1 1 0 0 1 -1 0 14 1 0 1 0 1 0 -1 9 0 0 0 1 #STMT 3 at line no. 41 has 1 domain # Domain 1 2 3 # l 1 1 1 0 1 -1 14 0 0 0 1 # Set Iterator Names i j #Iterator Names #---------------------SCATTERING FUNCTIONS-------------------- 7 #Scattering functions # Scattering Matrix for stmt at line no.12 3 6 # p0 p1 p2 i 1 0 1 0 0 0 0 0 0 1 0 -3 0 0 0 0 1 0 0 # Scattering Matrix for stmt at line no.15 3 7 # p0 p1 p2 i j 1 0 1 0 0 0 0 0 0 0 1 0 -3 0 -1 0 0 0 1 0 -2 0 # Scattering Matrix for stmt at line no.16 3 7 # p0 p1 p2 i j 1 0 1 0 0 0 0 0 0 0 1 0 -3 0 -1 0 0 0 1 0 -2 -1 # Scattering Matrix for stmt at line no.20 3 6 # p0 p1 p2 i 1 0 1 0 0 0 0 0 0 1 0 -3 -2 0 0 0 1 0 0 # Scattering Matrix for stmt at line no.32 3 6 # p0 p1 p2 l 1 0 1 0 0 0 -2 0 0 1 0 -3 0 0 0 0 1 0 0 # Scattering Matrix for stmt at line no.37 3 7 # p0 p1 p2 l m 1 0 1 0 0 0 0 -2 0 0 1 0 -3 0 -1 0 0 0 1 0 -1 0 # Scattering Matrix for stmt at line no.41 3 6 # p0 p1 p2 l 1 0 1 0 0 0 -2 0 0 1 0 -3 -2 0 0 0 1 0 0 1 # Set manually the scattering dimension names p0 p1 p2 #Scattering dimension names cloog-parma-0.16.1/cloog-core/test/merge.good.c0000644000175000017500000000126111321074700016116 00000000000000/* Generated from ../../../git/cloog/test/merge.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i) { hash(2); hash(i); } #define S3(i) { hash(3); hash(i); } void test() { /* Scattering iterators. */ int c1; /* Original iterators. */ int i; for (c1=0;c1<=10;c1++) { if (c1 == 0) { S1(0) ; } if (c1 >= 2) { S2(c1) ; } S3(c1) ; } } cloog-parma-0.16.1/cloog-core/test/esced.c0000644000175000017500000000046011323312273015155 00000000000000/* Generated from ../../../git/cloog/test/esced.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (m >= 1) { if (n >= 1) { for (i=1;i<=m;i++) { S1(i) ; for (j=1;j<=n;j++) { S2(i,j) ; } } } if (n <= 0) { for (i=1;i<=m;i++) { S1(i) ; } } } cloog-parma-0.16.1/cloog-core/test/emploi.good.c0000644000175000017500000000142111321074700016302 00000000000000/* Generated from ../../../git/cloog/test/emploi.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int m, int n) { /* Original iterators. */ int i, j; if (m >= 1) { for (i=1;i<=n;i++) { if (i >= m) { S1(i) ; } if (i <= min(2*m,m-1)) { S1(i) ; } for (j=1;j<=m;j++) { S2(i,j) ; } } } if (m <= 0) { for (i=1;i<=n;i++) { S1(i) ; } } } cloog-parma-0.16.1/cloog-core/test/esced.good.c0000644000175000017500000000127311321074700016105 00000000000000/* Generated from ../../../git/cloog/test/esced.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int n, int m) { /* Original iterators. */ int i, j; if (n >= 1) { for (i=1;i<=m;i++) { S1(i) ; for (j=1;j<=n;j++) { S2(i,j) ; } } } if (n <= 0) { for (i=1;i<=m;i++) { S1(i) ; } } } cloog-parma-0.16.1/cloog-core/test/lux.good.c0000644000175000017500000000165711321074700015640 00000000000000/* Generated from ../../../git/cloog/test/lux.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.02s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k,l) { hash(1); hash(i); hash(j); hash(k); hash(l); } #define S2(i,j,k,l,m) { hash(2); hash(i); hash(j); hash(k); hash(l); hash(m); } void test(int M) { /* Original iterators. */ int i, j, k, l, m; if (M >= 2) { for (l=2;l<=M;l++) { S1(1,1,M,l) ; } } for (i=2;i<=M-1;i++) { for (j=1;j<=i-1;j++) { for (k=j+1;k<=M;k++) { S2(i,j,k,k,i) ; } } for (l=i+1;l<=M;l++) { S1(i,i,M,l) ; } } if (M >= 2) { for (j=1;j<=M-1;j++) { for (k=j+1;k<=M;k++) { S2(M,j,k,k,M) ; } } } } cloog-parma-0.16.1/cloog-core/test/gesced2.good.c0000644000175000017500000000271411321074700016337 00000000000000/* Generated from ../../../git/cloog/test/gesced2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.04s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M) { /* Scattering iterators. */ int c1, c2; /* Original iterators. */ int i, j; for (c1=1;c1<=4;c1++) { for (c2=5;c2<=M-10;c2++) { S1(c1,c2) ; } } for (c1=5;c1<=min(M-10,9);c1++) { for (c2=-c1+1;c2<=4;c2++) { i = c1+c2 ; S2(c1+c2,c1) ; } for (c2=5;c2<=M-10;c2++) { S1(c1,c2) ; i = c1+c2 ; S2(c1+c2,c1) ; } for (c2=M-9;c2<=-c1+M;c2++) { i = c1+c2 ; S2(c1+c2,c1) ; } } if (M >= 20) { for (c2=-9;c2<=4;c2++) { i = c2+10 ; S2(c2+10,10) ; } for (c2=5;c2<=M-10;c2++) { S1(10,c2) ; i = c2+10 ; S2(c2+10,10) ; } } for (c1=11;c1<=M-10;c1++) { for (c2=-c1+1;c2<=4;c2++) { i = c1+c2 ; S2(c1+c2,c1) ; } for (c2=5;c2<=-c1+M;c2++) { S1(c1,c2) ; i = c1+c2 ; S2(c1+c2,c1) ; } for (c2=-c1+M+1;c2<=M-10;c2++) { S1(c1,c2) ; } } for (c1=M-9;c1<=M;c1++) { for (c2=5;c2<=M-10;c2++) { S1(c1,c2) ; } } } cloog-parma-0.16.1/cloog-core/test/levenshtein-1-2-3.good.c0000644000175000017500000000272111321074700020002 00000000000000/* Generated from ../../../git/cloog/test/levenshtein-1-2-3.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.03s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j) { hash(3); hash(i); hash(j); } #define S4(i,j) { hash(4); hash(i); hash(j); } #define S5(i,j) { hash(5); hash(i); hash(j); } #define S6(i,j) { hash(6); hash(i); hash(j); } #define S7(i,j) { hash(7); hash(i); hash(j); } #define S8(i,j) { hash(8); hash(i); hash(j); } void test(int M, int N) { /* Original iterators. */ int i, j; S1(0,0) ; S2(1,0) ; S3(1,1) ; for (i=2;i<=N;i++) { S2(i,0) ; for (j=1;j<=i-1;j++) { S6(i,j) ; } S3(i,i) ; } i = N+1 ; S7(N+1,0) ; for (j=1;j<=N;j++) { S6(N+1,j) ; S8(N+1,j) ; } for (i=N+2;i<=2*M-N-2;i++) { j = floord(i-N-1,2) ; S7(i,j) ; if ((i+N)%2 == 0) { j = (i-N)/2 ; S5(i,(i-N)/2) ; S8(i,(i-N)/2) ; } for (j=ceild(i-N+1,2);j<=floord(i+N-1,2);j++) { S6(i,j) ; S8(i,j) ; } if ((i+N)%2 == 0) { j = (i+N)/2 ; S4(i,(i+N)/2) ; S8(i,(i+N)/2) ; } } for (i=2*M-N-1;i<=2*M-2;i++) { for (j=i-M+1;j<=M-1;j++) { S6(i,j) ; } } } cloog-parma-0.16.1/cloog-core/test/forwardsub-1-1-2.c0000644000175000017500000000035411323312273016705 00000000000000/* Generated from ../../../git/cloog/test/forwardsub-1-1-2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ S3(1,1) ; S1(2,1) ; S4(2,2) ; for (i=3;i<=M;i++) { S1(i,1) ; for (j=2;j<=i-1;j++) { S2(i,j) ; } S4(i,i) ; } cloog-parma-0.16.1/cloog-core/test/logo.cloog0000644000175000017500000000050411321074700015710 00000000000000# language: C c # Context 1 3 # n 1 1 0 1 0 2 # Number of statements 1 3 5 # i j n 1 1 1 0 0 -1 # i >= 1 1 0 -1 0 7 # j <= 7 1 -1 1 0 1 # j >= i-1 0 0 0 1 4 5 # i j n 1 1 1 0 0 -2 # i >= 2 1 -1 0 0 6 # i <= 6 1 0 1 0 0 # j >= 0 1 0 -1 0 4 # j <= 4 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/0D-1.good.c0000644000175000017500000000064011321074700015420 00000000000000/* Generated from ../../../git/cloog/test/0D-1.cloog by CLooG 0.14.0-117-g5444fca gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1() { hash(1); } void test() { S1() ; } cloog-parma-0.16.1/cloog-core/test/basic-bounds-6.cloog0000644000175000017500000000021311321074700017461 00000000000000# language: C c # Context 1 2 1 1 0 1 # Number of statements 1 3 3 # i 1 1 2 3 1 -2 -1 1 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/multi-stride2.cloog0000644000175000017500000000033411321074700017455 00000000000000# Language c # Context 1 2 1 1 0 # Number of statements 1 1 # i' i j 1 4 5 0 1 -2 0 -1 0 1 0 -3 -2 1 1 0 0 0 1 -1 0 0 100 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/yosr.c0000644000175000017500000000065611323312273015075 00000000000000/* Generated from ../../../git/cloog/test/yosr.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (n >= 2) { for (j=2;j<=n;j++) { S1(1,j) ; } for (proc=2;proc<=n-1;proc++) { for (i=1;i<=proc-1;i++) { for (j=i+1;j<=n;j++) { S2(i,j,proc) ; } } for (j=proc+1;j<=n;j++) { S1(proc,j) ; } } for (i=1;i<=n-1;i++) { for (j=i+1;j<=n;j++) { S2(i,j,n) ; } } } cloog-parma-0.16.1/cloog-core/test/min-4-1.c0000644000175000017500000000033311323312273015153 00000000000000/* Generated from ../../../git/cloog/test/min-4-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if ((M >= -N) && (M >= -O) && (N >= 0) && (N >= -O)) { for (i=max(-M,-N);i<=min(N,O);i++) { S1(i) ; } } cloog-parma-0.16.1/cloog-core/test/stride2.good.c0000644000175000017500000000115111321074700016371 00000000000000/* Generated from stride2.cloog by CLooG 0.14.0-200-g26bdb56 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test() { /* Scattering iterators. */ int c1, c2; /* Original iterators. */ int i, j; for (c1=3;c1<=100;c1+=3) { if (c1 == 27) { S1(27); } S2(c1,c1/3); } } cloog-parma-0.16.1/cloog-core/test/basic-bounds-1.c0000644000175000017500000000022311323312273016576 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (i=0;i<=2;i++) { S1(i) ; } cloog-parma-0.16.1/cloog-core/test/mod4.c0000644000175000017500000000035511323312273014740 00000000000000/* Generated from /home/skimo/git/cloog/test/mod4.cloog by CLooG 0.14.0-225-g6e2d019 gmp bits in 0.00s. */ for (j=2;j<=10;j+=3) { S1(j,(j+1)/3,(j+1)/3,2,(j-2)/3); S2(j,(j+1)/3,(j+1)/3,2,(j-2)/3); S3(j,(j+1)/3,(j+1)/3,2,(j-2)/3); } cloog-parma-0.16.1/cloog-core/test/union.c0000644000175000017500000000045611511332565015234 00000000000000/* Generated from ../../../git/cloog/test/union.cloog by CLooG 0.16.0-3-g7eee03c gmp bits in 0.00s. */ if (M <= -1) { for (c1=0;c1<=100;c1++) { S1(c1); } } if (M >= 11) { for (c1=-100;c1<=0;c1++) { S1(-c1); } } if ((M >= 1) && (M <= 10)) { for (c1=0;c1<=100;c1++) { S1(c1); } } cloog-parma-0.16.1/cloog-core/test/darte.c0000644000175000017500000000310111406126537015174 00000000000000/* Generated from /home/skimo/git/cloog/test/darte.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.05s. */ if (n >= 1) { for (t3=n+3;t3<=3*n+1;t3++) { if ((t3+n+1)%2 == 0) { S1(1,n,(t3-n-1)/2); } } for (t1=-n+2;t1<=n-1;t1++) { if (t1 >= 2) { for (t3=t1+4;t3<=t1+2*n+2;t3++) { if ((t1+t3)%2 == 0) { S1(t1+1,1,(-t1+t3-2)/2); } } } for (t2=max(-t1+2,t1+2);t2<=-t1+4;t2++) { for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { if ((t1+t3)%2 == 0) { S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2); } } } } for (t2=max(-t1+5,t1+3);t2<=min(-t1+2*n,t1+2*n);t2++) { for (t3=1;t3<=min(n,t2+1);t3++) { if ((t1+t2+1)%2 == 0) { S2((t1+t2-3)/2,(-t1+t2-1)/2,t3); } } for (t3=t2+2;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { S2((t1+t2-3)/2,(-t1+t2-1)/2,t3); } if ((t1+t2)%2 == 0) { if ((t1+t3)%2 == 0) { S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2); } } } for (t3=max(n+1,t2+2);t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { if ((t1+t3)%2 == 0) { S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2); } } } } if (t1 <= -1) { for (t3=1;t3<=n;t3++) { S2(t1+n-1,n,t3); } } for (t2=-t1+2*n+1;t2<=min(-t1+2*n+3,t1+2*n+1);t2++) { for (t3=1;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { S2((t1+t2-3)/2,(-t1+t2-1)/2,t3); } } } } for (t3=1;t3<=n;t3++) { S2(n,1,t3); } } cloog-parma-0.16.1/cloog-core/test/walters2.c0000644000175000017500000000041311327562503015642 00000000000000/* Generated from ../../../git/cloog/test/walters2.cloog by CLooG 0.14.0-245-gd8c1718 gmp bits in 0.01s. */ for (i=0;i<=51;i++) { S2(0,i); } for (j=1;j<=24;j++) { S2(j,0); for (i=1;i<=50;i++) { S1(j,i); } S2(j,51); } for (i=0;i<=51;i++) { S2(25,i); } cloog-parma-0.16.1/cloog-core/test/nul_lcpc.cloog0000644000175000017500000000115711321074700016554 00000000000000# language: C c # parameter n 3 5 # m n p 1 1 1 -1 0 -1 1 0 -1 1 -1 0 0 1 0 -6 1 m n p 2 # Number of statements 1 # {i, j, k | i=2*k+1; 1<=i<=m; 1<=j<=p} 5 8 # i k j m n p 1 0 1 -2 0 0 0 0 -1 # i=2*k+1 1 1 0 0 0 0 0 -1 # 1<=i 1 -1 0 0 1 0 0 0 # i<=m 1 0 0 1 0 0 0 -1 # 1<=j 1 0 0 -1 0 0 1 0 # j<=p 0 0 0 1 # {i, j, k | i=2*k+1; 1<=i<=n; 1<=j<=i} 5 8 # i k j m n p 1 0 1 -2 0 0 0 0 -1 # i=2*k+1 1 1 0 0 0 0 0 -1 # 1<=i 1 -1 0 0 0 1 0 0 # i<=n 1 0 0 1 0 0 0 -1 # 1<=j 1 1 0 -1 0 0 0 0 # j<=i 0 0 0 1 i k j 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/lex.c0000644000175000017500000000023111323312273014656 00000000000000/* Generated from /home/skimo/git/cloog/test/lex.cloog by CLooG 0.14.0-234-g330f397 gmp bits in 0.00s. */ for (c1=0;c1<=10;c1++) { S2(c1); S1(c1); } cloog-parma-0.16.1/cloog-core/test/0D-3.cloog0000644000175000017500000000005211321074700015351 00000000000000c 1 3 1 1 0 0 1 1 1 3 1 1 0 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/yosr2.c0000644000175000017500000000066111323312273015153 00000000000000/* Generated from ../../../git/cloog/test/yosr2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ for (i=1;i<=M;i++) { S2(i) ; } for (proc=2;proc<=M-1;proc++) { for (i=1;i<=proc-1;i++) { S4(i,proc) ; } for (j=1;j<=proc-1;j++) { S1(proc,j) ; } for (j=proc+1;j<=M;j++) { for (k=1;k<=proc-1;k++) { S3(proc,j,k) ; } } } for (i=1;i<=M-1;i++) { S4(i,M) ; } for (j=1;j<=M-1;j++) { S1(M,j) ; } cloog-parma-0.16.1/cloog-core/test/param-split.cloog0000644000175000017500000000011011364353162017203 00000000000000c 0 3 0 2 1 2 4 1 1 0 0 1 -1 1 0 0 0 0 1 1 4 0 1 0 0 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/largeur.good.c0000644000175000017500000000113211321074700016455 00000000000000/* Generated from ../../../git/cloog/test/largeur.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } void test(int M) { /* Scattering iterators. */ int c1, c2; /* Original iterators. */ int i, j; for (c1=1;c1<=M;c1++) { for (c2=1;c2<=c1;c2++) { S1(c2,c1) ; } } } cloog-parma-0.16.1/cloog-core/test/lineality-1-2.c0000644000175000017500000000036511406126537016375 00000000000000/* Generated from /home/skimo/git/cloog/test/lineality-1-2.cloog by CLooG 0.14.0-284-g5c046c9 gmp bits in 0.00s. */ for (i=1;i<=M;i++) { for (j=1;j<=i-1;j++) { S1(i,j); } S1(i,i); S2(i,i); for (j=i+1;j<=M;j++) { S1(i,j); } } cloog-parma-0.16.1/cloog-core/test/tiling.cloog0000644000175000017500000000050011321074700016232 00000000000000# language: C c # parameter {n | n>= 0} 1 3 # n 1 1 1 0 1 n 1 # Number of statements: 1 # {ii, i | t*ii<=i<=t*ii+t-1 0<=i<=n} 4 5 # ii i n 1 1 0 1 0 0 1 0 -1 1 0 1 10 -1 0 9 1 -10 1 0 0 0 0 0 1 ii i 0 # Scattering functions 1 6 # c1 ii i n 1 0 1 -1 -2 0 0 0 cloog-parma-0.16.1/cloog-core/test/lu2.good.c0000644000175000017500000000175511321074700015531 00000000000000/* Generated from ../../../git/cloog/test/lu2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.02s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k,l) { hash(1); hash(i); hash(j); hash(k); hash(l); } #define S2(i,j,k,l,m) { hash(2); hash(i); hash(j); hash(k); hash(l); hash(m); } void test(int n) { /* Original iterators. */ int i, j, k, l, m; if (n >= 2) { for (l=2;l<=n;l++) { S1(1,n,1,l) ; } } for (i=2;i<=n-1;i++) { for (j=2;j<=n-1;j++) { for (k=1;k<=min(j-1,i-1);k++) { S2(i,j,k,j,i) ; } } for (k=1;k<=i-1;k++) { S2(i,n,k,n,i) ; } for (l=i+1;l<=n;l++) { S1(i,n,i,l) ; } } if (n >= 2) { for (j=2;j<=n;j++) { for (k=1;k<=j-1;k++) { S2(n,j,k,j,n) ; } } } } cloog-parma-0.16.1/cloog-core/test/cholesky.good.c0000644000175000017500000000234611321074700016645 00000000000000/* Generated from ../../../git/cloog/test/cholesky.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.05s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i) { hash(3); hash(i); } #define S4(i,j) { hash(4); hash(i); hash(j); } #define S5(i,j,k) { hash(5); hash(i); hash(j); hash(k); } #define S6(i,j) { hash(6); hash(i); hash(j); } void test(int n) { /* Scattering iterators. */ int c1, c3, c5; /* Original iterators. */ int i, j, k; if (n >= 2) { S1(1) ; S3(1) ; for (c3=2;c3<=n;c3++) { S4(1,c3) ; S6(1,c3) ; } } if (n == 1) { S1(1) ; S3(1) ; } for (c1=2;c1<=n-1;c1++) { S1(c1) ; for (c3=1;c3<=c1-1;c3++) { S2(c1,c3) ; } S3(c1) ; for (c3=c1+1;c3<=n;c3++) { S4(c1,c3) ; for (c5=1;c5<=c1-1;c5++) { S5(c1,c3,c5) ; } S6(c1,c3) ; } } if (n >= 2) { S1(n) ; for (c3=1;c3<=n-1;c3++) { S2(n,c3) ; } S3(n) ; } } cloog-parma-0.16.1/cloog-core/test/lux.c0000644000175000017500000000065011323312273014703 00000000000000/* Generated from ../../../git/cloog/test/lux.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ if (M >= 2) { for (l=2;l<=M;l++) { S1(1,1,M,l) ; } for (i=2;i<=M-1;i++) { for (j=1;j<=i-1;j++) { for (k=j+1;k<=M;k++) { S2(i,j,k,k,i) ; } } for (l=i+1;l<=M;l++) { S1(i,i,M,l) ; } } for (j=1;j<=M-1;j++) { for (k=j+1;k<=M;k++) { S2(M,j,k,k,M) ; } } } cloog-parma-0.16.1/cloog-core/test/walters2.cloog0000644000175000017500000000151711321074700016520 00000000000000# language: C c # parameters 1 2 1 1 1 2 # S1 1 12 4 1 1 0 0 1 -1 0 25 1 0 1 0 1 0 -1 51 1 1 0 -1 1 0 1 -1 1 -1 0 24 1 0 -1 50 1 1 0 0 1 -1 0 25 1 0 1 0 1 0 -1 51 0 0 0 # S2 4 11 4 1 1 0 0 1 -1 0 25 1 0 1 0 1 0 -1 51 1 1 0 -1 1 0 1 -1 1 1 0 -25 1 1 0 0 1 -1 0 25 1 0 1 0 1 0 -1 51 12 4 1 1 0 0 1 -1 0 25 1 0 1 0 1 0 -1 51 1 1 0 -1 1 0 1 -1 1 -1 0 24 1 0 1 -51 1 1 0 0 1 -1 0 25 1 0 1 0 1 0 -1 51 10 4 1 1 0 0 1 -1 0 25 1 0 1 0 1 0 -1 51 1 1 0 -1 1 0 -1 0 1 1 0 0 1 -1 0 25 1 0 1 0 1 0 -1 51 9 4 1 1 0 0 1 -1 0 25 1 0 1 0 1 0 -1 51 1 -1 0 0 1 1 0 0 1 -1 0 25 1 0 1 0 1 0 -1 51 0 0 0 1 j i 0 0 cloog-parma-0.16.1/cloog-core/test/levenshtein-1-2-3.c0000644000175000017500000000122511323312273017053 00000000000000/* Generated from ../../../git/cloog/test/levenshtein-1-2-3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.12s. */ S1(0,0) ; S2(1,0) ; S3(1,1) ; for (i=2;i<=N;i++) { S2(i,0) ; for (j=1;j<=i-1;j++) { S6(i,j) ; } S3(i,i) ; } S7(N+1,0) ; for (j=1;j<=N;j++) { S6(N+1,j) ; S8(N+1,j) ; } for (i=N+2;i<=2*M-N-2;i++) { j = floord(i-N-1,2) ; S7(i,j) ; if ((i+N)%2 == 0) { S5(i,(i-N)/2) ; S8(i,(i-N)/2) ; } for (j=ceild(i-N+1,2);j<=floord(i+N-1,2);j++) { S6(i,j) ; S8(i,j) ; } if ((i+N)%2 == 0) { S4(i,(i+N)/2) ; S8(i,(i+N)/2) ; } } for (i=2*M-N-1;i<=2*M-2;i++) { for (j=i-M+1;j<=M-1;j++) { S6(i,j) ; } } cloog-parma-0.16.1/cloog-core/test/stride2.c0000644000175000017500000000024111323312273015443 00000000000000/* Generated from stride2.cloog by CLooG 0.14.0-200-g26bdb56 gmp bits in 0.00s. */ for (c1=3;c1<=100;c1+=3) { if (c1 == 27) { S1(27); } S2(c1,c1/3); } cloog-parma-0.16.1/cloog-core/test/min-3-1.c0000644000175000017500000000027311323312273015155 00000000000000/* Generated from ../../../git/cloog/test/min-3-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (i=0;i<=min(10,M);i++) { for (j=0;j<=min(10,M);j++) { S1(i,j) ; } } cloog-parma-0.16.1/cloog-core/test/classen2.c0000644000175000017500000000412711361141766015621 00000000000000/* Generated from ../../../git/cloog/test/classen2.cloog by CLooG 0.14.0-271-gaa1e292 gmp bits in 0.14s. */ if ((M >= 2) && (N >= 3) && (outerProcTileScatter1 >= outerProcTileScatter2) && (5*outerProcTileScatter1 <= M+2*N-4) && (5*outerProcTileScatter1 <= 5*outerProcTileScatter2+N+2) && (outerProcTileScatter2 >= 0) && (5*outerProcTileScatter2 <= M+N-2) && (outerTimeTileScatter >= outerProcTileScatter1) && (outerTimeTileScatter <= 2*outerProcTileScatter1) && (outerTimeTileScatter <= outerProcTileScatter1+outerProcTileScatter2+1) && (5*outerTimeTileScatter <= 2*M+2*N-6) && (5*outerTimeTileScatter <= 5*outerProcTileScatter1+M+2) && (5*outerTimeTileScatter >= 10*outerProcTileScatter1-2*N-2) && (5*outerTimeTileScatter <= 5*outerProcTileScatter2+M+N) && (5*outerTimeTileScatter >= 10*outerProcTileScatter2-N-3) && (5*outerTimeTileScatter <= 10*outerProcTileScatter2+N+3) && (5*outerTimeTileScatter >= 5*outerProcTileScatter1+5*outerProcTileScatter2-N-4)) { for (compScatter1=max(max(max(max(max(4,5*outerTimeTileScatter),5*outerProcTileScatter2+1),5*outerProcTileScatter1+5*outerProcTileScatter2-N),10*outerProcTileScatter1-2*N+2),10*outerProcTileScatter2-N+1);compScatter1<=min(min(min(min(min(5*outerTimeTileScatter+4,2*M+2*N-6),5*outerProcTileScatter1+M+2),5*outerProcTileScatter1+5*outerProcTileScatter2+5),5*outerProcTileScatter2+M+N),10*outerProcTileScatter2+N+3);compScatter1++) { for (compScatter2=max(max(max(max(ceild(compScatter1+4,2),5*outerProcTileScatter1),5*outerProcTileScatter2+1),compScatter1-M+2),compScatter1-5*outerProcTileScatter2-1);compScatter2<=min(min(min(min(floord(compScatter1+2*N-2,2),compScatter1),5*outerProcTileScatter1+4),compScatter1-5*outerProcTileScatter2+N),5*outerProcTileScatter2+N+2);compScatter2++) { for (compScatter3=max(max(5*outerProcTileScatter2,compScatter1-compScatter2+3),compScatter2-N+2);compScatter3<=min(min(compScatter2-1,5*outerProcTileScatter2+4),compScatter1-compScatter2+N);compScatter3++) { S1(compScatter1-compScatter2+1,-compScatter1+compScatter2+compScatter3-2,compScatter2-compScatter3,compScatter1,compScatter2,compScatter3); } } } } cloog-parma-0.16.1/cloog-core/test/min-1-1.cloog0000644000175000017500000000052111321074700016026 00000000000000# language: C c # Context # {M,N | 1>=0} 1 4 # M N 1 1 0 0 1 0 1 # Number of statements 1 # {i,j |1<=i<=N; 0<=j<=M; j<=i; j+i<=N}, i.e. # {i,j | (1,j)<=i<=-j+N; 0<=j<=M} 6 6 # i j M N 1 1 1 0 0 0 -1 1 0 1 0 0 0 1 0 -1 1 0 0 1 1 -1 0 0 0 1 -1 -1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/nul_basic1.c0000644000175000017500000000025211323312273016111 00000000000000/* Generated from ../../../git/cloog/test/nul_basic1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ if (M >= 0) { for (i=0;i<=M;i+=2) { S1(i,i/2) ; } } cloog-parma-0.16.1/cloog-core/test/rectangle.good.c0000644000175000017500000000117211321074700016764 00000000000000/* Generated from ../../../git/cloog/test/rectangle.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } void test(int n) { /* Scattering iterators. */ int c1; /* Original iterators. */ int i, j; for (c1=0;c1<=2*n;c1++) { for (i=max(c1-n,0);i<=min(c1,n);i++) { j = c1-i ; S1(i,c1-i) ; } } } cloog-parma-0.16.1/cloog-core/test/dartef.f0000644000175000017500000000315011406126537015351 00000000000000! Generated from /home/skimo/git/cloog/test/dartef.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.08s. IF (n >= 1) THEN DO t3=n+3, 3*n+1 IF (MOD(t3+n+1, 2) == 0) THEN S1(1,n,(t3-n-1)/2) END IF END DO DO t1=-n+2, n-1 IF (t1 >= 2) THEN DO t3=t1+4, t1+2*n+2 IF (MOD(t1+t3, 2) == 0) THEN S1(t1+1,1,(-t1+t3-2)/2) END IF END DO END IF DO t2=MAX(-t1+2,t1+2), -t1+4 DO t3=t2+2, t2+2*n IF (MOD(t1+t2, 2) == 0) THEN IF (MOD(t1+t3, 2) == 0) THEN S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) END IF END IF END DO END DO DO t2=MAX(-t1+5,t1+3), MIN(-t1+2*n,t1+2*n) DO t3=1, MIN(n,t2+1) IF (MOD(t1+t2+1, 2) == 0) THEN S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) END IF END DO DO t3=t2+2, n IF (MOD(t1+t2+1, 2) == 0) THEN S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) END IF IF (MOD(t1+t2, 2) == 0) THEN IF (MOD(t1+t3, 2) == 0) THEN S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) END IF END IF END DO DO t3=MAX(n+1,t2+2), t2+2*n IF (MOD(t1+t2, 2) == 0) THEN IF (MOD(t1+t3, 2) == 0) THEN S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) END IF END IF END DO END DO IF (t1 <= -1) THEN DO t3=1, n S2(t1+n-1,n,t3) END DO END IF DO t2=-t1+2*n+1, MIN(-t1+2*n+3,t1+2*n+1) DO t3=1, n IF (MOD(t1+t2+1, 2) == 0) THEN S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) END IF END DO END DO END DO DO t3=1, n S2(n,1,t3) END DO END IF cloog-parma-0.16.1/cloog-core/test/basic-bounds-4.cloog0000644000175000017500000000025011321074700017460 00000000000000# language: C c # Context 2 3 # M 1 1 1 0 1 0 1 0 1 # Number of statements 1 # 3 4 # i M 1 1 1 0 0 1 -1 1 1 1 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/lineality-2-1-2.good.c0000644000175000017500000000163611321074700017453 00000000000000/* Generated from ../../../git/cloog/test/lineality-2-1-2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M) { /* Original iterators. */ int i, j; for (i=1;i<=M-3;i++) { for (j=1;j<=i+1;j++) { S1(i,j) ; } j = i+2 ; S1(i,i+2) ; S2(i,i+2) ; for (j=i+3;j<=M;j++) { S1(i,j) ; } } if (M >= 3) { i = M-2 ; for (j=1;j<=M-1;j++) { S1(M-2,j) ; } S1(M-2,M) ; S2(M-2,M) ; } for (i=M-1;i<=M;i++) { for (j=1;j<=M;j++) { S1(i,j) ; } j = i+2 ; S2(i,i+2) ; } } cloog-parma-0.16.1/cloog-core/test/yosrf.f0000644000175000017500000000057311323312273015244 00000000000000! Generated from ../../../git/cloog/test/yosrf.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. IF (n >= 2) THEN DO j=2, n S1(1,j) END DO DO proc=2, n-1 DO i=1, proc-1 DO j=i+1, n S2(i,j,proc) END DO END DO DO j=proc+1, n S1(proc,j) END DO END DO DO i=1, n-1 DO j=i+1, n S2(i,j,n) END DO END DO END IF cloog-parma-0.16.1/cloog-core/test/logopar.good.c0000644000175000017500000000205111321074700016460 00000000000000/* Generated from ../../../git/cloog/test/logopar.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int m, int n) { /* Original iterators. */ int i, j; for (j=0;j<=m;j++) { S1(1,j) ; } if (m >= n+1) { for (i=2;i<=n;i++) { for (j=0;j<=i-2;j++) { S2(i,j) ; } for (j=i-1;j<=n;j++) { S1(i,j) ; S2(i,j) ; } for (j=n+1;j<=m;j++) { S1(i,j) ; } } } if (m == n) { for (i=2;i<=n;i++) { for (j=0;j<=i-2;j++) { S2(i,j) ; } for (j=i-1;j<=n;j++) { S1(i,j) ; S2(i,j) ; } } } for (i=n+1;i<=m+1;i++) { for (j=i-1;j<=m;j++) { S1(i,j) ; } } } cloog-parma-0.16.1/cloog-core/test/levenshtein-1-2-3f.cloog0000644000175000017500000000356011321074700020104 00000000000000# language: FORTRAN f # Context # {length,width | width+2<=length; 1<=width} 3 4 # M N 1 1 1 -1 -2 1 0 1 -1 1 0 0 1 0 8 # Number of statements 1 # {t1,t2,length,width | t1=0; t2=0; width+2<=length; 1<=width} 5 6 # i j M N 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 -1 -2 1 0 0 0 1 -1 1 0 0 0 0 1 0 0 0 1 # {t1,t2,length,width | 1<=t1<=width; t2=0; width+2<=length} 5 6 # i j M N 1 0 0 1 0 0 0 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 0 1 -1 -2 1 0 0 0 0 1 0 0 0 1 # {t1,t2,length,width | t1=t2; 1<=t2<=width; width+2<=length} 5 6 # i j M N 1 0 1 -1 0 0 0 1 0 1 0 0 -1 1 0 -1 0 1 0 1 0 0 1 -1 -2 1 0 0 0 0 1 0 0 0 1 # {t1,t2,length,width | t1=2t2-width; width+1<=t2<=length-1; 1<=width} 5 6 # i j M N 1 0 1 -2 0 1 0 1 0 1 0 -1 -1 1 0 -1 1 0 -1 1 0 0 0 1 -1 1 0 0 0 0 1 0 0 0 1 # {t1,t2,length,width | t1=2t2+width; 1<=t2<=length-width-1; 1<=width} 5 6 # i j M N 1 0 1 -2 0 -1 0 1 0 1 0 0 -1 1 0 -1 1 -1 -1 1 0 0 0 1 -1 1 0 0 0 0 1 0 0 0 1 # {t1,t2,length,width | (2t2-width+1,t2+1)<=t1<=(t2+length-1,2t2+width-1); 1<=t2<=length-1; width+2<=length} 8 6 # i j M N 1 1 1 -2 0 1 -1 1 1 -1 0 0 -1 1 -1 1 1 0 -1 1 -1 2 0 1 -1 1 0 1 0 0 -1 1 0 -1 1 0 -1 1 0 0 1 -1 -2 1 0 0 0 0 1 0 0 0 1 # {t1,t2,length,width | (width+1,2t2+width+1)<=t1<=(2length-width-2,2t2+width+2); width+2<=length; 1<=width} 6 6 # i j M N 1 1 1 0 0 -1 -1 1 1 -2 0 -1 -1 1 -1 0 2 -1 -2 1 -1 2 0 1 2 1 0 0 1 -1 -2 1 0 0 0 1 -1 0 0 0 1 # {t1,t2,length,width | (width+1,2t2-width)<=t1<=(2t2+width,2length-width-2); width+2<=length; 1<=width} 7 6 # i j M N 1 1 1 0 0 -1 -1 1 1 -2 0 1 0 1 -1 2 0 1 0 1 -1 0 2 -1 -2 1 0 0 1 -1 -2 1 0 0 0 1 -1 1 0 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/logopar.c0000644000175000017500000000056711406126537015555 00000000000000/* Generated from /home/skimo/git/cloog/test/logopar.cloog by CLooG 0.14.0-284-g5c046c9 gmp bits in 0.00s. */ for (j=0;j<=m;j++) { S1(1,j); } for (i=2;i<=n;i++) { for (j=0;j<=i-2;j++) { S2(i,j); } for (j=i-1;j<=n;j++) { S1(i,j); S2(i,j); } for (j=n+1;j<=m;j++) { S1(i,j); } } for (i=n+1;i<=m+1;i++) { for (j=i-1;j<=m;j++) { S1(i,j); } } cloog-parma-0.16.1/cloog-core/test/logo.c0000644000175000017500000000055611406126537015050 00000000000000/* Generated from /home/skimo/git/cloog/test/logo.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.01s. */ for (j=0;j<=7;j++) { S1(1,j); } for (i=2;i<=6;i++) { for (j=0;j<=i-2;j++) { S2(i,j); } for (j=i-1;j<=4;j++) { S1(i,j); S2(i,j); } for (j=5;j<=7;j++) { S1(i,j); } } for (i=7;i<=8;i++) { for (j=i-1;j<=7;j++) { S1(i,j); } } cloog-parma-0.16.1/cloog-core/test/sor1d.c0000644000175000017500000000164111406126537015134 00000000000000/* Generated from ../../../git/cloog/test/sor1d.cloog by CLooG 0.14.0-278-gcf1f323 gmp bits in 0.11s. */ if ((M >= 1) && (N >= 3)) { for (glT1=-1;glT1<=floord(3*M+N-5,100);glT1++) { for (rp1=max(max(0,ceild(100*glT1-2*M-N+5,100)),ceild(100*glT1-N-193,300));rp1<=min(min(floord(glT1+1,3),floord(M,100)),glT1);rp1++) { for (vT1=max(max(100*glT1-100*rp1,200*rp1-3),200*rp1-N+1);vT1<=min(min(min(2*M+N-5,100*glT1-100*rp1+99),200*rp1+N+193),100*glT1-100*rp1+N+95);vT1++) { if (rp1 >= max(1,ceild(vT1-N+7,200))) { S3(glT1-rp1,rp1-1,rp1,100*rp1-1,-200*rp1+vT1+6); } for (vP1=max(max(1,ceild(vT1-N+5,2)),100*rp1);vP1<=min(min(floord(vT1+2,2),M),100*rp1+99);vP1++) { S1(glT1-rp1,rp1,vP1,vT1-2*vP1+4); } if (rp1 <= min(floord(M-100,100),floord(vT1-197,200))) { S2(glT1-rp1,rp1,rp1+1,100*rp1+99,-200*rp1+vT1-194); } } } S4(glT1); } } cloog-parma-0.16.1/cloog-core/test/iftestf.cloog0000644000175000017500000000100111321074700016405 00000000000000# language: FORTRAN f # The context (no constraints on parameters) 1 4 # 1 lines and 4 columns # m n 1 1 0 0 0 1 m n 1 # The number of statements 2 # First statement # The first domain 3 5 # 3 lines and 5 columns # i m n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # i <= n 1 1 -1 0 0 # i >= m # The second domain 3 5 # 3 lines and 5 columns # i m n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # i <= n 1 -1 2 0 0 # i <= 2*m 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/0D-2.good.c0000644000175000017500000000067311321074700015427 00000000000000/* Generated from ../../../git/cloog/test/0D-2.cloog by CLooG 0.14.0-117-g5444fca gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1() { hash(1); } void test(int M) { if (M >= 0) { S1() ; } } cloog-parma-0.16.1/cloog-core/test/0D-1.cloog0000644000175000017500000000003611321074700015351 00000000000000c 0 2 0 1 1 0 2 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/lub.good.c0000644000175000017500000000145011321074700015601 00000000000000/* Generated from ../../../git/cloog/test/lub.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } #define S3(i,j,k) { hash(3); hash(i); hash(j); hash(k); } #define S4(i,j) { hash(4); hash(i); hash(j); } void test(int M) { /* Original iterators. */ int i, j, k; for (i=1;i<=M-1;i++) { for (j=i+1;j<=M;j++) { S1(i,j) ; for (k=i+1;k<=M;k++) { S2(i,j,k) ; S3(i,j,k) ; } S4(i,j) ; } } } cloog-parma-0.16.1/cloog-core/test/dot2.cloog0000644000175000017500000000045611321074700015626 00000000000000# language: C c # parameters {M, N | M>=1 N >=1} 2 4 1 1 0 -1 1 0 1 -1 0 2 # Number of statements 1 # {i | 1<=i<=M} 2 5 1 1 0 0 -1 1 -1 1 0 0 0 0 0 1 # {i, j | 1<=i<=N 1<=j<=M} 4 6 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 1 0 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/test.good.c0000644000175000017500000000162011321074700015775 00000000000000/* Generated from ../../../git/cloog/test/test.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.02s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M, int N) { /* Original iterators. */ int i, j; for (i=1;i<=2;i++) { for (j=1;j<=M;j++) { S1(i,j) ; } } for (i=3;i<=M-1;i++) { for (j=1;j<=i-1;j++) { S1(i,j) ; } S1(i,i) ; S2(i,i) ; for (j=i+1;j<=M;j++) { S1(i,j) ; } } for (j=1;j<=M-1;j++) { S1(M,j) ; } S1(M,M) ; S2(M,M) ; for (i=M+1;i<=N;i++) { for (j=1;j<=M;j++) { S1(i,j) ; } S2(i,i) ; } } cloog-parma-0.16.1/cloog-core/test/param-split.c0000644000175000017500000000031011364353162016324 00000000000000/* Generated from ../../../git/cloog/test/param-split.cloog by CLooG 0.14.0-277-gce2ba57 gmp bits in 0.00s. */ for (i=0;i<=M;i++) { S1(i); if (i == 0) { S2(i); } } if (M <= -1) { S2(0); } cloog-parma-0.16.1/cloog-core/test/vivien2.cloog0000644000175000017500000000573311321074700016343 00000000000000# Context c # output in language C # no constraints on parameters 1 3 # 1 line and 3 columns # n 1 1 1 -30 # 0 >= 0 always true 1 # Setting manually the parameter' sname n # The name # -------------------- Statements ------------------ 6 # Number of statements 1 # First statement: 1 domain # First domain 2 4 # 2 lines and 4 columns # i n 1 1 1 27 -1 # i >= 1 1 -1 1 28 # n >= i 0 0 0 1 # Second statement: 1 domain # First domain 4 5 # 4 lines and 5 columns # i k n 1 1 1 29 0 -1 # i >= 1 1 -1 0 1 0 # n >= i 1 0 1 0 -1 # k >= 1 1 1 -1 0 -1 # k <= i-1 0 0 0 1 # Third statement: 1 domain # First domain 2 4 # 2 lines and 4 columns # i n 1 1 1 0 -1 # i >= 1 1 -1 1 0 # n >= i 0 0 0 1 # Fourth statement: 1 domain # First domain 4 5 # 4 lines and 5 columns # i j n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # n >= i 1 -1 1 0 -1 # j >= i+1 1 0 -1 1 0 # j <= n 0 0 0 1 # Fifth statement: 1 domain # First domain 6 6 # 6 lines and 6 columns # i j k n 1 1 1 0 0 0 -1 # i >= 1 1 -1 0 0 1 0 # n >= i 1 -1 1 0 0 -1 # j >= i+1 1 0 -1 0 1 0 # j <= n 1 0 0 1 0 -1 # k >= 1 1 1 0 -1 0 -1 # k <= i-1 0 0 0 1 # Sixth statement: 1 domain # First domain 4 5 # 4 lines and 5 columns # i j n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # n >= i 1 -1 1 0 -1 # j >= i+1 1 0 -1 1 0 # j <= n 0 0 0 1 # We manually set the iterator names i j k # ------------------------ Scattering ------------------- 6 # Number of scattering functions # First function 3 7 # 3 lines and 7 columns # p1 p2 p3 i n 1 0 1 0 0 -2 0 -2 # p1 = 2i+2 0 0 1 0 0 0 0 # p2 = 0 0 0 0 1 0 0 0 # p3 = 0 # Second function 3 8 # 3 lines and 8 columns # p1 p2 p3 i j n 1 0 1 0 0 -2 -2 0 -1 # p1 = 2i+2j+1 0 0 1 0 0 -1 0 0 # p2 = j 0 0 0 1 0 0 0 0 # p3 = 0 # Third function 3 7 # 3 lines and 7 columns # p1 p2 p3 i n 1 0 1 0 0 -4 0 -1 # p1 = 4i+1 0 0 1 0 0 0 0 # p2 = 0 0 0 0 1 0 0 0 # p3 = 0 # Fourth function 3 8 # 3 lines and 8 columns # p1 p2 p3 i j n 1 0 1 0 0 -2 -2 0 0 # p1 = 2i+2j 0 0 1 0 1 0 0 0 # p2 = -i 0 0 0 1 0 0 0 0 # p3 = 0 # Fifth function 3 9 # 3 lines and 9 columns # p1 p2 p3 i j k n 1 0 1 0 0 -2 -2 0 0 0 # p1 = 2i+2j 0 0 1 0 1 0 0 0 -1 # p2 = -i+1 0 0 0 1 0 0 -1 0 0 # p3 = k # Sixth function 3 8 # 3 lines and 8 columns # p1 p2 p3 i j n 1 0 1 0 0 -2 -2 0 0 # p1 = 2i+2j 0 0 1 0 1 0 0 -2 # p2 = -i+2 0 0 0 1 0 0 0 0 # p3 = 0 1 # Manually set the scattering dimensions p1 p2 p3 cloog-parma-0.16.1/cloog-core/test/emploi.c0000644000175000017500000000045611327562503015373 00000000000000/* Generated from ../../../git/cloog/test/emploi.cloog by CLooG 0.14.0-245-gd8c1718 gmp bits in 0.01s. */ if (n >= 1) { if (m >= 1) { for (i=1;i<=n;i++) { S1(i); for (j=1;j<=m;j++) { S2(i,j); } } } if (m <= 0) { for (i=1;i<=n;i++) { S1(i); } } } cloog-parma-0.16.1/cloog-core/test/mod4.cloog0000644000175000017500000000166411321074700015623 00000000000000# language: C c # parameters 1 2 1 1 0 3 # S1: ND_4IP_3 1 11 7 1 1 0 0 0 0 -1 1 -1 0 0 0 0 10 0 0 0 0 1 0 -2 1 -1 0 0 0 3 2 1 -1 0 0 0 3 2 1 1 0 0 0 -3 0 0 1 0 0 -1 -3 0 1 1 -3 0 0 0 2 1 -1 3 0 0 0 0 1 1 0 -3 0 0 1 1 -1 0 3 0 0 1 0 0 0 # S2: W:ND_4OP_1 1 13 7 1 0 1 0 0 -1 -1 1 0 0 3 0 -3 -2 1 1 0 0 0 0 -1 1 -1 0 0 0 0 10 0 0 0 0 1 0 -2 1 -1 0 0 0 3 2 1 -1 0 0 0 3 2 1 1 0 0 0 -3 0 0 1 0 0 -1 -3 0 1 1 -3 0 0 0 2 1 -1 3 0 0 0 0 1 1 0 -3 0 0 1 1 -1 0 3 0 0 1 0 0 0 # S3: ND_4 1 11 7 1 1 0 0 0 0 -1 1 -1 0 0 0 0 10 0 0 0 0 1 0 -2 1 -1 0 0 0 3 2 1 -1 0 0 0 3 2 1 1 0 0 0 -3 0 0 1 0 0 -1 -3 0 1 1 -3 0 0 0 2 1 -1 3 0 0 0 0 1 1 0 -3 0 0 1 1 -1 0 3 0 0 1 0 0 0 1 j div41 div42 mod6 mod6_a 0 0 cloog-parma-0.16.1/cloog-core/test/1point-1.c0000644000175000017500000000017011323312273015440 00000000000000/* Generated from ../../../git/cloog/test/1point-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ S1(2*M,M) ; cloog-parma-0.16.1/cloog-core/test/min-2-1.good.c0000644000175000017500000000124511321074700016101 00000000000000/* Generated from ../../../git/cloog/test/min-2-1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } void test(int M, int N) { /* Original iterators. */ int i, j, k; if (M >= 0) { for (i=1;i<=N;i++) { for (j=0;j<=min(min(i,M),-i+N);j++) { for (k=0;k<=min(min(M,i),-i+N);k++) { S1(i,j,k) ; } } } } } cloog-parma-0.16.1/cloog-core/test/iftest2.cloog0000644000175000017500000000112211321074700016325 00000000000000# language: C c # The context (no constraints on parameters) 1 4 # 1 lines and 4 columns # m n 1 1 0 0 0 0 1 # The number of statements 2 # First statement # The first domain 5 6 # 3 lines and 5 columns # i j m n 1 1 1 0 0 0 -1 # i >= 1 1 -1 0 0 1 0 # i <= n 1 1 0 -1 0 0 # i >= m 1 0 1 0 0 -1 1 0 -1 1 0 0 # The second domain 5 6 # 3 lines and 5 columns # i j m n 1 1 1 0 0 0 -1 # i >= 1 1 -1 0 0 1 0 # i <= n 1 -1 0 2 0 0 # i <= 2*m 1 0 1 0 0 -1 1 0 -1 1 0 0 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/min-2-1.cloog0000644000175000017500000000065211321074700016034 00000000000000# language: C c # Context # {M,N | 1>=0} 1 4 # M N 1 1 0 0 1 0 1 # Number of statements 1 # {i,j |1<=i<=N; 0<=j<=M; j<=i; j+i<=N}, i.e. # {i,j | (1,j)<=i<=-j+N; 0<=j<=M} 10 7 # i j k M N 1 1 1 0 0 0 0 -1 1 0 1 0 0 0 0 1 0 -1 0 1 0 0 1 1 -1 0 0 0 0 1 -1 -1 0 0 1 0 1 0 0 1 0 0 0 1 0 0 -1 1 0 0 1 1 0 -1 0 0 0 1 -1 0 -1 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/no_lindep.c0000644000175000017500000000016711323312273016045 00000000000000/* Generated from ../../../git/cloog/test/no_lindep.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ S1(N+2) ; cloog-parma-0.16.1/cloog-core/test/logo.good.c0000644000175000017500000000161211321074700015757 00000000000000/* Generated from ../../../git/cloog/test/logo.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M) { /* Original iterators. */ int i, j; for (j=0;j<=7;j++) { S1(1,j) ; } for (i=2;i<=5;i++) { for (j=0;j<=i-2;j++) { S2(i,j) ; } for (j=i-1;j<=4;j++) { S1(i,j) ; S2(i,j) ; } for (j=5;j<=7;j++) { S1(i,j) ; } } for (j=0;j<=4;j++) { S2(6,j) ; } for (j=5;j<=7;j++) { S1(6,j) ; } for (i=7;i<=8;i++) { for (j=i-1;j<=7;j++) { S1(i,j) ; } } } cloog-parma-0.16.1/cloog-core/test/gesced3.good.c0000644000175000017500000000141411321074700016334 00000000000000/* Generated from ../../../git/cloog/test/gesced3.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i) { hash(2); hash(i); } void test(int M, int N) { /* Scattering iterators. */ int c1; /* Original iterators. */ int i; for (c1=M+1;c1<=2*M;c1++) { i = c1-M ; S1(c1-M) ; } for (c1=2*M+1;c1<=M+N;c1++) { i = c1-2*M ; S2(c1-2*M) ; i = c1-M ; S1(c1-M) ; } for (c1=M+N+1;c1<=2*M+N;c1++) { i = c1-2*M ; S2(c1-2*M) ; } } cloog-parma-0.16.1/cloog-core/test/durbin_e_s.cloog0000644000175000017500000000257411321074700017072 00000000000000# language: C c # Context 0 2 0 # parameter names 8 # Number of statements 1 4 5 0 1 0 0 -10 0 0 0 1 -4 1 0 1 0 -1 1 0 -1 0 10 0 0 0 1 4 5 0 0 1 0 7 0 0 0 1 0 1 1 0 0 -2 1 -1 0 0 10 0 0 0 1 4 5 0 0 0 1 -1 1 0 1 0 7 1 -1 0 0 10 1 1 -1 0 -9 0 0 0 1 4 5 0 1 0 0 -1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 4 5 0 0 0 1 -3 1 1 -1 0 -1 1 -1 0 0 10 1 0 1 0 -1 0 0 0 1 4 5 0 1 -1 0 -9 0 0 0 1 -2 1 0 1 0 7 1 0 -1 0 1 0 0 0 1 4 5 0 1 0 0 -1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 4 5 0 0 1 0 0 0 0 0 1 -3 1 1 0 0 -1 1 -1 0 0 9 0 0 0 0 # iterator names 0 # scattering functions 0 # scattering dimension names cloog-parma-0.16.1/cloog-core/test/constant.good.c0000644000175000017500000000170311477113144016661 00000000000000/* Generated from ../../../git/cloog/test/constant.cloog by CLooG 0.14.0-333-g4442dac gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i) { hash(2); hash(i); } #define S3(i) { hash(3); hash(i); } #define S4(i) { hash(4); hash(i); } #define S5(i) { hash(5); hash(i); } #define S6(i) { hash(6); hash(i); } void test(int M) { /* Scattering iterators. */ int c1, c2; /* Original iterators. */ int i; for (c2=0;c2<=min(1023,M+1024);c2++) { S1(c2); S3(c2); } for (c2=max(0,M+1025);c2<=1023;c2++) { S2(c2); S3(c2); } for (c1=0;c1<=min(1023,M+1024);c1++) { S4(c1); S6(c1); } for (c1=max(0,M+1025);c1<=1023;c1++) { S5(c1); S6(c1); } } cloog-parma-0.16.1/cloog-core/test/block2.cloog0000644000175000017500000000237211467775010016146 00000000000000# CLooG -> CLooG # This is an automatic dump of a CLooG input file from a CloogInput data # structure. # Language: C c # Context: 0 2 0 # Parameter name(s) # Statement number: 3 # Iteration domain of statement 5 (ND_1IP_ED_0_0_V_0). 1 3 4 0 0 1 -1 1 1 0 0 1 -1 0 9 0 0 0 # For future options. # Iteration domain of statement 6 (ND_1OP_ED_3_0_V_1). 1 3 4 0 0 1 -1 1 1 0 0 1 -1 0 9 0 0 0 # For future options. # Iteration domain of statement 7 (ND_1). 1 3 4 0 0 1 -1 1 1 0 0 1 -1 0 9 0 0 0 # For future options. 0 # Iterator name(s) # --------------------- SCATTERING -------------------- 3 # Scattering functions # Scattering of statement 5 (ND_1IP_ED_0_0_V_0). 1 3 7 0 0 0 1 0 0 -6 0 0 1 0 0 -1 0 0 1 0 0 -1 0 0 # Scattering of statement 6 (ND_1OP_ED_3_0_V_1). 1 3 7 0 0 0 1 0 0 -11 0 0 1 0 0 -1 0 0 1 0 0 -1 0 0 # Scattering of statement 7 (ND_1). 1 3 7 0 0 0 1 0 0 -8 0 0 1 0 0 -1 0 0 1 0 0 -1 0 0 1 # Scattering dimension name(s) c0 c1 c2 cloog-parma-0.16.1/cloog-core/test/forwardsub-2-1-2-3.c0000644000175000017500000000040111323312273017037 00000000000000/* Generated from ../../../git/cloog/test/forwardsub-2-1-2-3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ S3(1,0) ; for (k=2;k<=M;k++) { S1(1,1,k) ; } for (i=2;i<=M-1;i++) { S4(i,0) ; for (k=i+1;k<=M;k++) { S2(i,1,k) ; } } S4(M,0) ; cloog-parma-0.16.1/cloog-core/test/0D-3.good.c0000644000175000017500000000064511321074700015427 00000000000000/* Generated from ../../../git/cloog/test/0D-3.cloog by CLooG 0.14.0-117-g5444fca gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1() { hash(1); } void test(int M) { S1() ; } cloog-parma-0.16.1/cloog-core/test/4-param.good.c0000644000175000017500000000142511321074700016262 00000000000000/* Generated from ../../../git/cloog/test/4-param.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i) { hash(2); hash(i); } void test(int m, int n, int p, int q) { /* Original iterators. */ int i; for (i=m;i<=min(min(n,p-1),q);i++) { S1(i) ; } for (i=p;i<=min(min(q,m-1),n);i++) { S2(i) ; } for (i=max(m,p);i<=min(n,q);i++) { S1(i) ; S2(i) ; } for (i=max(m,q+1);i<=n;i++) { S1(i) ; } for (i=max(p,n+1);i<=q;i++) { S2(i) ; } } cloog-parma-0.16.1/cloog-core/test/dealII.good.c0000644000175000017500000000147711361141766016172 00000000000000/* Generated from ../../../git/cloog/test/dealII.cloog by CLooG 0.14.0-270-g7ee1261 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(scat_0) { hash(1); hash(scat_0); } #define S2(scat_0) { hash(2); hash(scat_0); } void test(int T_2, int T_67, int T_66) { /* Original iterators. */ int scat_0; for (scat_0=0;scat_0<=min(T_66,T_2-1);scat_0++) { S1(scat_0); S2(scat_0); } if ((T_2 == 0) && (T_67 == 0)) { S1(0); } for (scat_0=max(0,T_66+1);scat_0<=T_2-1;scat_0++) { S1(scat_0); } for (scat_0=T_2;scat_0<=min(T_66,T_67-1);scat_0++) { S2(scat_0); } } cloog-parma-0.16.1/cloog-core/test/vivien2.good.c0000644000175000017500000003447511321074700016416 00000000000000/* Generated from ../../../git/cloog/test/vivien2.cloog by CLooG 0.14.0-76-gef19709 gmp bits in 0.58s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i) { hash(3); hash(i); } #define S4(i,j) { hash(4); hash(i); hash(j); } #define S5(i,j,k) { hash(5); hash(i); hash(j); hash(k); } #define S6(i,j) { hash(6); hash(i); hash(j); } void test(int n) { /* Scattering iterators. */ int p1, p2, p3; /* Original iterators. */ int i, j, k; for (p1=-54*n+4;p1<=4;p1++) { if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } } S3(1) ; S4(1,2) ; S1(2) ; S6(1,2) ; for (p1=7;p1<=9;p1++) { for (p2=ceild(-p1+2,4);p2<=-1;p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } if (p1%2 == 0) { j = (p1-2)/2 ; S6(1,(p1-2)/2) ; } if ((p1+1)%2 == 0) { i = (p1-3)/2 ; S2((p1-3)/2,1) ; } } S4(2,3) ; S4(1,4) ; S5(2,3,1) ; S6(2,3) ; S1(4) ; S6(1,4) ; for (p1=11;p1<=12;p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p2=ceild(-p1+6,4);p2<=-1;p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } if (p1%2 == 0) { j = (p1-4)/2 ; S6(2,(p1-4)/2) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } if (p1%2 == 0) { j = (p1-2)/2 ; S6(1,(p1-2)/2) ; } if ((p1+1)%2 == 0) { i = (p1-3)/2 ; S2((p1-3)/2,1) ; } for (p2=2;p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } S3(3) ; S2(5,1) ; S2(4,2) ; for (p1=14;p1<=2*n+2;p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } p2 = floord(-p1+9,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } for (p2=ceild(-p1+10,4);p2<=-1;p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } if (p1%2 == 0) { j = (p1-4)/2 ; S6(2,(p1-4)/2) ; } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } if (p1%2 == 0) { j = (p1-2)/2 ; S6(1,(p1-2)/2) ; } if ((p1+1)%2 == 0) { i = (p1-3)/2 ; S2((p1-3)/2,1) ; } for (p2=2;p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } p1 = 2*n+3 ; if ((n+1)%2 == 0) { i = (n+1)/2 ; S3((n+1)/2) ; } S2(n,1) ; for (p2=2;p2<=floord(n,2);p2++) { i = -p2+n+1 ; S2(-p2+n+1,p2) ; } p1 = 2*n+4 ; for (p2=ceild(-n-1,2);p2<=floord(-2*n+1,4);p2++) { j = p2+n+2 ; S4(-p2,p2+n+2) ; } for (p2=ceild(-n+1,2);p2<=floord(-2*n+5,4);p2++) { j = p2+n+2 ; S4(-p2,p2+n+2) ; for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; j = p2+n+1 ; S5(-p2+1,p2+n+1,p3) ; } } for (p2=ceild(-n+3,2);p2<=-2;p2++) { j = p2+n+2 ; S4(-p2,p2+n+2) ; i = -p2+2 ; j = p2+n ; S6(-p2+2,p2+n) ; for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; j = p2+n+1 ; S5(-p2+1,p2+n+1,p3) ; } } j = n-1 ; S6(3,n-1) ; S5(2,n,1) ; S6(2,n) ; i = n+1 ; S1(n+1) ; for (p1=2*n+5;p1<=min(4*n-10,2*n+58);p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } p2 = floord(-p1+9,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } p2 = floord(-p1+2*n+2,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } for (p2=ceild(-p1+2*n+3,2);p2<=min(floord(-p1+2*n+4,2),-1);p2++) { i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=4*n-9;p1<=min(4*n-8,2*n+58);p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } p2 = floord(-p1+2*n+2,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } p2 = floord(-p1+2*n+4,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=4*n-7;p1<=min(4*n-6,2*n+58);p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } for (p2=ceild(-p1+2*n+1,2);p2<=floord(-p1+9,4);p2++) { for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n+2,2);p2++) { i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } p2 = floord(-p1+2*n+4,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=4*n-5;p1<=2*n+58;p1++) { for (p2=ceild(-p1+2,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } } for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+6,4));p2<=floord(-p1+2*n+2,2);p2++) { for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } for (p2=max(ceild(-p1+2*n+3,2),ceild(-p1+10,4));p2<=floord(-p1+2*n+4,2);p2++) { i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=2*n+59;p1<=4*n-10;p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } p2 = floord(-p1+9,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } p2 = floord(-p1+2*n+2,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } p2 = floord(-p1+2*n+4,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=max(4*n-9,2*n+59);p1<=4*n-8;p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } p2 = floord(-p1+2*n+2,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } p2 = floord(-p1+2*n+4,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=max(4*n-7,2*n+59);p1<=4*n-6;p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } for (p2=ceild(-p1+2*n+1,2);p2<=floord(-p1+9,4);p2++) { for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n+2,2);p2++) { i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } p2 = floord(-p1+2*n+4,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=max(4*n-5,2*n+59);p1<=4*n-2;p1++) { for (p2=ceild(-p1+2,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } } for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+6,4));p2<=floord(-p1+2*n+2,2);p2++) { for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } for (p2=max(ceild(-p1+10,4),ceild(-p1+2*n+3,2));p2<=floord(-p1+2*n+4,2);p2++) { i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } p1 = 4*n-1 ; p2 = n-1 ; j = n-1 ; S2(n,n-1) ; for (p1=4*n;p1<=4*n+1;p1++) { if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } } } cloog-parma-0.16.1/cloog-core/test/multi-stride.cloog0000644000175000017500000000033411321074700017373 00000000000000# Language c # Context 1 2 1 1 0 # Number of statements 1 1 # i' i j 1 4 5 0 1 -2 0 -1 0 1 0 -6 -2 1 1 0 0 0 1 -1 0 0 100 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/Makefile.am0000644000175000017500000003523411511333434015772 00000000000000# # /**-------------------------------------------------------------------** # ** CLooG ** # **-------------------------------------------------------------------** # ** makefile ** # **-------------------------------------------------------------------** # ** First version: march 6th 2003 ** # **-------------------------------------------------------------------**/ # # makefile for checking. #/***************************************************************************** # * CLooG : the Chunky Loop Generator (experimental) * # ***************************************************************************** # * * # * Copyright (C) 2003 Cedric Bastoul * # * * # * This library is free software; you can redistribute it and/or * # * modify it under the terms of the GNU Lesser General Public * # * License as published by the Free Software Foundation; either * # * version 2.1 of the License, or (at your option) any later version. * # * * # * This library is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * # * Lesser General Public License for more details. * # * * # * You should have received a copy of the GNU Lesser General Public * # * License along with this library; if not, write to the Free Software * # * Foundation, Inc., 51 Franklin Street, Fifth Floor, * # * Boston, MA 02110-1301 USA * # * * # * CLooG, the Chunky Loop Generator * # * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * # * This file has been written with the help of the Bart Kienhuis's checking * # * makefile for PipLib. * # * * # *****************************************************************************/ if NO_ISL GENERATE_TEST = else GENERATE_TEST = generate_test endif noinst_PROGRAMS = $(GENERATE_TEST) INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include LDADD = ../libcloog-isl.la generate_test_SOURCES = generate_test.c FORCE: ../libcloog-isl.la: FORCE cd ..; $(MAKE) $(AM_MAKEFLAGS) libcloog-isl.la ROOT = .. FINITE_CLOOGTEST_C = \ 0D-1 \ 0D-2 \ 0D-3 \ 1point-1 \ 1point-2 \ 4-param \ basic-bounds-1 \ basic-bounds-2 \ basic-bounds-3 \ basic-bounds-4 \ basic-bounds-5 \ basic-bounds-6 \ block \ block2 \ byu98-1-2-3 \ cholesky \ cholesky2 \ classen \ classen2 \ constant \ constbound \ darte \ dealII \ donotsimp \ dot \ dot2 \ double \ durbin_e_s \ emploi \ esced \ ex1 \ forwardsub-1-1-2 \ forwardsub-2-1-2-3 \ forwardsub-3-1-2 \ gauss \ gesced \ gesced2 \ gesced3 \ guide \ iftest \ iftest2 \ largeur \ levenshtein-1-2-3 \ lex \ lineality-1-2 \ lineality-2-1-2 \ logo \ logopar \ lu \ lu2 \ lub \ lux \ min-1-1 \ min-2-1 \ min-3-1 \ min-4-1 \ mode \ multi-mm-1 \ no_lindep \ orc \ rectangle \ singleton \ square+triangle-1-1-2-3 \ swim \ test \ thomasset \ tiling \ uday_scalars \ union \ vivien \ vivien2 \ walters \ walters2 \ walters3 \ wavefront \ yosr \ yosr2 \ ./non_optimal/nul_complex1 \ ./non_optimal/usvd_e_t \ ./non_optimal/youcef \ ./reservoir/cholesky2 \ ./reservoir/fusion1 \ ./reservoir/fusion2 \ ./reservoir/jacobi2 \ ./reservoir/jacobi3 \ ./reservoir/lim-lam1 \ ./reservoir/lim-lam2 \ ./reservoir/lim-lam3 \ ./reservoir/lim-lam4 \ ./reservoir/lim-lam5 \ ./reservoir/lim-lam6 \ ./reservoir/liu-zhuge1 \ ./reservoir/loechner3 \ ./reservoir/loechner4 \ ./reservoir/loechner5 \ ./reservoir/mg-interp2 \ ./reservoir/mg-interp \ ./reservoir/mg-psinv \ ./reservoir/mg-resid \ ./reservoir/mg-rprj3 \ ./reservoir/pingali1 \ ./reservoir/pingali2 \ ./reservoir/pingali3 \ ./reservoir/pingali4 \ ./reservoir/pingali5 \ ./reservoir/pingali6 \ ./reservoir/QR \ ./reservoir/tang-xue1 \ ./reservoir/two CLOOG_ISL_TEST_C = \ isl/mod \ isl/mod2 \ isl/mod3 \ isl/mod4 CLOOGTEST_C = \ infinite \ infinite2 \ infinite3 \ infinite4 \ $(FINITE_CLOOGTEST_C) \ $(CLOOG_ISL_TEST_C) # ./reservoir/long \ # faber CLOOGTEST_FORTRAN = \ dartef \ iftestf \ levenshtein-1-2-3f \ yosrf CLOOGTEST_STRIDED = \ basic-bounds-2 \ mod4 \ nul_basic1 \ nul_basic2 \ nul_lcpc \ multi-stride \ multi-stride2 \ stride3 \ stride4 \ reservoir/bastoul3 \ reservoir/stride \ reservoir/stride2 SPECIAL_TESTS = \ vasilache \ merge \ equality \ equality2 \ otl \ param-split \ stride \ stride2 \ sor1d SPECIAL_OPTIONS = \ 'vasilache -f 8 -l 9' \ 'merge -f -1' \ 'equality -f -1 -l 2 -override' \ 'equality2 -f -1 -l 4 -esp 1 -override' \ 'otl -block 1 -esp 0 -otl 0' \ 'param-split -f -1' \ 'stride -f -1 -strides 1' \ 'stride2 -f -1 -strides 1' \ 'sor1d -f -1' EXTRA_DIST = \ $(CLOOGTEST_C:%=%.cloog) \ $(CLOOGTEST_C:%=%.c) \ $(FINITE_CLOOGTEST_C:%=%.good.c) \ $(CLOOGTEST_FORTRAN:%=%.cloog) \ $(CLOOGTEST_FORTRAN:%=%.f) \ $(CLOOGTEST_STRIDED:%=%.cloog) \ $(CLOOGTEST_STRIDED:%=%.c) \ $(SPECIAL_TESTS:%=%.cloog) \ $(SPECIAL_TESTS:%=%.c) \ $(SPECIAL_TESTS:%=%.good.c) generate: @echo " /*-----------------------------------------------*" @echo " * Generate files *" @echo " *-----------------------------------------------*/" @for x in $(CLOOGTEST_C) ; do \ echo "Generate $$x.c" ; \ $(top_builddir)/cloog $(srcdir)/$$x.cloog -o $(srcdir)/$$x.c ; \ done ; \ for x in $(CLOOGTEST_FORTRAN) ; do \ echo "Generate $$x.f" ; \ $(top_builddir)/cloog $(srcdir)/$$x.cloog -o $(srcdir)/$$x.f ; \ done ; \ for x in $(CLOOGTEST_STRIDED) ; do \ echo "Generate $$x.c" ; \ $(top_builddir)/cloog $(srcdir)/$$x.cloog \ -strides 1 -o $(srcdir)/$$x.c ; \ done ; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo "Generate file $$x ($$options)" ; \ $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \ $$options > $(srcdir)/$$x.c ; \ done; done generate_good: @for x in $(FINITE_CLOOGTEST_C) ; do \ echo "Generate $$x.good.c" ; \ $(top_builddir)/cloog$(EXEEXT) -callable 1 $(srcdir)/$$x.cloog -o $(srcdir)/$$x.good.c ; \ done; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo "Generate $$x.good.c ($$options)" ; \ $(top_builddir)/cloog$(EXEEXT) -callable 1 $$options $(srcdir)/$$x.cloog -o $(srcdir)/$$x.good.c ; \ done; done valgrind: @echo " /*-----------------------------------------------*" @echo " * Checking files by Valgrind *" @echo " *-----------------------------------------------*/" for x in $(CLOOGTEST_C) ; do \ echo "Valgrinding $$x.c" ; \ valgrind $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog ; \ done ; \ for x in $(CLOOGTEST_FORTRAN) ; do \ echo "Valgrinding $$x.f" ; \ valgrind $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog ; \ done test_run: generate_test$(EXEEXT) @echo " /*-----------------------------------------------*" @echo " * Testing CLooG *" @echo " *-----------------------------------------------*/" @failedtest=0 ; \ echo "--- Testing C files... (correct output)" ; \ for x in $(FINITE_CLOOGTEST_C) ; do \ echo -n "Verify file $$x... " ; \ echo -n "generating... " ; \ $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $(srcdir)/$$x.cloog > test_test.c ; \ ./generate_test$(EXEEXT) < $(srcdir)/$$x.cloog > test_main.c; \ echo -n "compiling... " ; \ $(COMPILE) -c test_test.c; \ $(COMPILE) -Dtest=good -c $(srcdir)/$$x.good.c -o test_good.o; \ $(LINK) test_main.c test_test.o test_good.o > /dev/null; \ echo -n "comparing... " ; \ ./test_run$(EXEEXT); \ result=$$?; \ if test "$$result" -ne "0" ; then \ failedtest=`expr $$failedtest + 1` ; \ fi; \ $(RM) $@; \ echo; \ done; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo -n "Verify file $$x ($$options)... " ; \ echo -n "generating... " ; \ $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $$options $(srcdir)/$$x.cloog > test_test.c ; \ ./generate_test$(EXEEXT) < $(srcdir)/$$x.cloog > test_main.c; \ echo -n "compiling... " ; \ $(COMPILE) -c test_test.c; \ $(COMPILE) -Dtest=good -c $(srcdir)/$$x.good.c -o test_good.o; \ $(LINK) test_main.c test_test.o test_good.o > /dev/null; \ echo -n "comparing... " ; \ ./test_run$(EXEEXT); \ result=$$?; \ if test "$$result" -ne "0" ; then \ failedtest=`expr $$failedtest + 1` ; \ fi; \ $(RM) $@; \ echo; \ done; done; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo -n "Verify file $$x ($$options -sh 1)... " ; \ echo -n "generating... " ; \ $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $$options -sh 1 $(srcdir)/$$x.cloog > test_test.c ; \ ./generate_test$(EXEEXT) < $(srcdir)/$$x.cloog > test_main.c; \ echo -n "compiling... " ; \ $(COMPILE) -c test_test.c; \ $(COMPILE) -Dtest=good -c $(srcdir)/$$x.good.c -o test_good.o; \ $(LINK) test_main.c test_test.o test_good.o > /dev/null; \ echo -n "comparing... " ; \ ./test_run$(EXEEXT); \ result=$$?; \ if test "$$result" -ne "0" ; then \ failedtest=`expr $$failedtest + 1` ; \ fi; \ $(RM) $@; \ echo; \ done; done; \ if [ $$failedtest != 0 ] ; then \ echo "$$failedtest tests failed" ; \ else \ echo "CLooG works correctly :-) !" ; \ fi test: @echo " /*-----------------------------------------------*" @echo " * Testing CLooG *" @echo " *-----------------------------------------------*/" @failedtest=0 ; \ echo "--- Testing C files... (expected output)" ; \ for x in $(CLOOGTEST_C) ; do \ echo "Verify file $$x" ; \ $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done ; \ echo "--- Testing FORTRAN files..." ; \ for x in $(CLOOGTEST_FORTRAN) ; do \ echo "Verify file $$x" ; \ $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.f ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done ; \ echo "--- Testing STRIDED files..." ; \ for x in $(CLOOGTEST_STRIDED) ; do \ echo "Verify file $$x" ; \ $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \ -strides 1 > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done ; \ echo "--- Testing SPECIAL OPTIONS files..." ; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo "Verify file $$x ($$options)" ; \ $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \ $$options > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done; done; \ rm ttemp ; \ if [ $$failedtest != 0 ] ; then \ echo "$$failedtest tests failed" ; \ else \ echo "CLooG works correctly :-) !" ; \ fi cloog-parma-0.16.1/cloog-core/test/vasilache.good.c0000644000175000017500000000313411321074700016757 00000000000000/* Generated from ../../../git/cloog/test/vasilache.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.15s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1() { hash(1); } #define S2() { hash(2); } #define S3() { hash(3); } #define S4(i,j) { hash(4); hash(i); hash(j); } #define S5(i,j) { hash(5); hash(i); hash(j); } #define S6(i,j,k,l) { hash(6); hash(i); hash(j); hash(k); hash(l); } #define S7(i,j,k,l) { hash(7); hash(i); hash(j); hash(k); hash(l); } #define S8() { hash(8); } void test(int M, int N) { /* Scattering iterators. */ int p1, p3, p5, p7; /* Original iterators. */ int i, j, k, l; S1() ; S2() ; for (p1=0;p1<=N-1;p1++) { for (p3=0;p3<=N-1;p3++) { S4(p1,p3) ; S5(p1,p3) ; } } for (p1=0;p1<=N-1;p1++) { for (p3=0;p3<=N-1;p3++) { for (p5=0;p5<=floord(N-1,32);p5++) { if (p5 >= 0) { p7 = 32*p5 ; l = 32*p5 ; S7(p1,p3,p5,32*p5) ; } if (p5 <= -1) { S7(p1,p3,p5,0) ; } for (p7=max(32*p5+1,1);p7<=min(N-1,32*p5+31);p7++) { l = p7-1 ; S6(p1,p3,p5,p7-1) ; S7(p1,p3,p5,p7) ; } if (p5 >= ceild(N-32,32)) { l = N-1 ; S6(p1,p3,p5,N-1) ; } if (p5 <= floord(N-33,32)) { p7 = 32*p5+32 ; l = 32*p5+31 ; S6(p1,p3,p5,32*p5+31) ; } } } } S8() ; } cloog-parma-0.16.1/cloog-core/test/wavefront.cloog0000644000175000017500000000042011321074700016760 00000000000000c 1 4 # n m 1 1 0 0 1 1 n m 1 1 4 6 # i j n m 1 1 1 0 0 0 -1 1 -1 0 1 0 0 1 0 1 0 0 -1 1 0 -1 0 1 0 0 0 0 0 1 2 8 # c1 c2 i j n m 1 0 1 0 -1 -1 0 0 0 0 0 1 -1 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/cholesky.cloog0000644000175000017500000000420011321074700016566 00000000000000# language: C c # parameter n 1 3 # n 1 1 0 1 1 n 6 # Number of statements 1 # S1 {i | 1<=i<=n} 2 4 # i n 1 1 1 0 -1 1 -1 1 0 0 0 0 1 # S2 {i, j | 1<=i<=n; 1<=j<=i-1} 4 5 # i j n 1 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -1 1 1 -1 0 -1 0 0 0 1 # S3 {i | 1<=i<=n} 2 4 # i n 1 1 1 0 -1 1 -1 1 0 0 0 0 1 # S4 {i, j | 1<=i<=n; i+1<=j<=n} 4 5 # i j n 1 1 1 0 0 -1 1 -1 0 1 0 1 -1 1 0 -1 1 0 -1 1 0 0 0 0 1 # S5 {i, j, k | 1<=i<=n; i+1<=j<=n 1<=k<=i-1} 6 6 # i j k n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 -1 1 0 0 -1 1 0 -1 0 1 0 1 0 0 1 0 -1 1 1 0 -1 0 -1 0 0 0 1 # S6 {i, j | 1<=i<=n; i+1<=j<=n} 4 5 # i j n 1 1 1 0 0 -1 1 -1 0 1 0 1 -1 1 0 -1 1 0 -1 1 0 0 0 0 0 6 # Scattering functions # Et les instructions de chunking (prog init)... 6 10 # c1 c2 c3 c4 c5 c6 i n 1 0 1 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 6 11 # c1 c2 c3 c4 c5 c6 i j n 1 0 1 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 -2 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 6 10 # c1 c2 c3 c4 c5 c6 i n 1 0 1 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 0 0 -3 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 6 11 # c1 c2 c3 c4 c5 c6 i j n 1 0 1 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 -4 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 6 12 # c1 c2 c3 c4 c5 c6 i j k n 1 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -4 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -2 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 6 11 # c1 c2 c3 c4 c5 c6 i j n 1 0 1 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 -4 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 -3 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/4-param.cloog0000644000175000017500000000052711321074700016216 00000000000000# language: C c # Context # parameters m n p q 1 6 # m n p q 1 1 0 0 0 0 1 1 m n p q 2 # Number of statements 1 # S1 i,... 3 7 # i m n p q 1 1 1 -1 0 0 0 0 1 -1 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 # 3 7 # i m n p q 1 1 1 0 0 -1 0 0 1 -1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/classen2.cloog0000644000175000017500000000245711361141766016506 00000000000000# created: Wed Mar 17 17:37:13 CET 2010 # ---------------------- CONTEXT ---------------------- c # language is C # Context (no parameter, so always true) 1 7 1 0 0 0 0 0 0 1 # set parameter names outerTimeTileScatter outerProcTileScatter1 outerProcTileScatter2 M N # --------------------- STATEMENTS -------------------- 1 1 # domains per statement 20 13 1 2 1 1 -1 0 0 0 0 0 0 0 0 1 1 1 1 0 -1 0 0 0 0 0 0 1 1 1 1 0 0 0 -1 0 0 0 0 0 1 1 -2 -1 -1 1 0 0 0 0 0 0 0 0 1 -1 -1 -1 0 1 0 0 0 0 0 0 -1 1 -1 -1 0 0 0 1 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 0 0 1 -2 1 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 0 0 0 1 -2 1 1 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 0 0 0 0 1 0 -1 1 0 0 0 1 0 0 -5 0 0 0 0 0 1 0 0 0 0 1 0 0 -5 0 0 0 0 1 0 0 0 0 0 1 0 0 -5 0 0 0 1 0 0 0 0 0 -1 0 0 5 0 0 4 1 0 0 0 0 -1 0 0 5 0 0 0 4 1 0 0 0 -1 0 0 5 0 0 0 0 4 1 0 0 0 0 0 0 0 0 0 0 1 -3 1 0 0 0 0 0 0 0 0 0 1 0 -2 0 0 0 # for future options... 1 # set the iterator names compIter1 compIter2 compIter3 compIter4 compIter5 compIter6 # --------------------- SCATTERING -------------------- 1 # Scattering functions 3 16 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 1 # we set the scattering dimension names compScatter1 compScatter2 compScatter3 cloog-parma-0.16.1/cloog-core/test/basic-bounds-4.c0000644000175000017500000000022511323312273016603 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-4.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (i=0;i<=M+1;i++) { S1(i) ; } cloog-parma-0.16.1/cloog-core/test/classen.cloog0000644000175000017500000001217411321074700016406 00000000000000# created: Fri Mar 4 11:37:56 CET 2005 # ---------------------- CONTEXT ---------------------- c # language is C # Context 1 3 1 1 0 1 # set parameter names m # --------------------- STATEMENTS -------------------- 8 # 1 computation stmts: 1 # one domain per statement 7 7 1 0 0 0 0 1 -1 1 0 0 -1 0 1 0 1 0 0 1 0 0 -1 1 0 0 0 -1 1 0 1 0 0 0 1 0 -1 0 0 -1 0 1 0 0 0 -1 0 1 1 0 -2 0 0 0 # for future options... # 3 prepare-send stmts: 1 # one domain per statement 13 11 1 0 0 0 0 0 0 0 0 1 -1 1 -1 0 0 0 0 0 0 0 2 -3 1 1 0 0 0 0 0 0 0 0 0 1 1 -1 0 0 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 0 1 0 1 -1 1 0 0 0 0 0 0 1 -3 1 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 1 0 -2 0 0 -1 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 1 0 0 0 -2 0 -1 0 1 0 0 0 0 0 0 -1 0 0 -1 0 1 0 0 0 0 0 0 0 0 0 # for future options... 1 # one domain per statement 13 11 1 0 0 0 0 0 0 0 0 1 -1 1 -1 0 0 0 0 0 0 0 2 -3 1 1 0 0 0 0 0 0 0 0 0 1 1 -1 0 0 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 0 1 -1 1 -1 1 0 0 0 0 0 0 1 -2 1 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 1 0 -2 0 0 -1 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 1 0 0 0 -2 0 -1 0 1 0 0 0 0 0 0 -1 0 0 -1 0 1 0 0 0 0 0 -1 0 0 0 # for future options... 1 # one domain per statement 13 11 1 0 0 0 0 0 0 0 0 1 -1 1 -1 0 0 0 0 0 0 0 2 -4 1 1 0 0 0 0 0 0 0 0 0 1 1 -1 0 0 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 0 1 -1 1 -1 1 0 0 0 0 0 0 1 -3 1 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 1 0 -2 0 0 -1 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 1 0 0 0 -2 0 -1 0 1 0 0 0 0 0 0 -2 0 0 -1 0 1 0 0 0 0 0 -1 0 0 0 # for future options... # 3 prepare-receive stmts: 1 # one domain per statement 13 11 1 0 0 0 0 0 0 0 0 1 -1 1 -1 0 0 0 0 0 0 0 2 -3 1 1 0 0 0 0 0 0 0 0 0 1 1 -1 0 0 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 0 1 0 1 -1 1 0 0 0 0 0 0 1 -3 1 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 1 0 -2 0 0 -1 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 1 0 0 0 -2 0 -1 0 1 0 0 0 0 0 0 -1 0 0 -1 0 1 0 0 0 0 0 0 0 0 0 # for future options... 1 # one domain per statement 13 11 1 0 0 0 0 0 0 0 0 1 -1 1 -1 0 0 0 0 0 0 0 2 -3 1 1 0 0 0 0 0 0 0 0 0 1 1 -1 0 0 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 0 1 -1 1 -1 1 0 0 0 0 0 0 1 -2 1 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 1 0 -2 0 0 -1 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 1 0 0 0 -2 0 -1 0 1 0 0 0 0 0 0 -1 0 0 -1 0 1 0 0 0 0 0 -1 0 0 0 # for future options... 1 # one domain per statement 13 11 1 0 0 0 0 0 0 0 0 1 -1 1 -1 0 0 0 0 0 0 0 2 -4 1 1 0 0 0 0 0 0 0 0 0 1 1 -1 0 0 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 0 1 -1 1 -1 1 0 0 0 0 0 0 1 -3 1 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 1 0 -2 0 0 -1 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 1 0 0 0 -2 0 -1 0 1 0 0 0 0 0 0 -2 0 0 -1 0 1 0 0 0 0 0 -1 0 0 0 # for future options... # communication statement: 1 # number of domains for communication statement 6 5 1 -1 0 2 -2 1 1 0 0 0 1 1 -1 0 1 1 0 -1 1 0 1 -1 1 1 -2 1 0 1 0 -1 0 0 0 # for future options... 1 # set the iterator names coordT1 coordP1 other1 other2 other3 other4 other5 other6 # --------------------- SCATTERING -------------------- 8 # Scattering functions 7 14 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 7 18 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -2 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 7 18 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -2 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 7 18 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -2 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 7 18 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 7 18 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 7 18 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 7 12 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 # we set the scattering dimension names glT1 bl rp1 stmtType local1 local2 local3 cloog-parma-0.16.1/cloog-core/test/block.c0000644000175000017500000000020611323312273015162 00000000000000/* Generated from /home/skimo/git/cloog/test/block.cloog by CLooG 0.14.0-170-g72daac3 gmp bits in 0.00s. */ S1(); S3(0); S2(); S3(1); cloog-parma-0.16.1/cloog-core/test/lex.cloog0000644000175000017500000000024511321074700015542 00000000000000c 0 2 0 2 1 2 3 1 1 0 1 -1 10 0 0 0 1 2 3 1 1 0 1 -1 10 0 0 0 0 2 3 6 0 -1 0 0 1 0 0 0 -1 0 0 0 0 0 0 -1 0 0 3 6 0 -1 0 0 1 0 0 0 -1 0 0 -1 0 0 0 -1 0 0 0 cloog-parma-0.16.1/cloog-core/test/swim.cloog0000644000175000017500000043047111321074700015741 00000000000000c # language is C # ---------- CONTEXT ---------- # Context (no constraints on parameters) 1 8 # 1 lines, 8 columns 0 0 0 0 0 0 0 0 0 # Automatically find parameter names # ---------- STATEMENTS ---------- 125 # Number of statements 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -1 1 -1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -1 1 -1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -1 1 -1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -1 1 -1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 4 8 1 0 0 -1 0 0 0 1 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 3 8 1 1 0 0 0 0 0 -1 1 -1 0 0 0 0 0 1 1 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 9 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 0 0 -1 1 0 0 0 -1 0 0 0 0 0 1 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 7 10 1 1 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 -1 1 0 0 -1 0 0 0 0 0 1 1 0 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 1 # Statement has 1 domain 5 9 1 1 0 0 0 0 0 0 -2 1 -1 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 -1 1 0 -1 0 0 0 0 0 1 1 0 -1 0 0 0 0 0 1 0 0 0 0 # Automatically find iterator names. # ---------- SCATTERING FUNCTIONS ---------- 125 # Number of scattering functions 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -2 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -3 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -4 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -5 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -6 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -7 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -8 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -9 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -10 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -11 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -12 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -13 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -14 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -15 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -16 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -17 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -18 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -19 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -20 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -21 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -22 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -23 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -24 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -25 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -26 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -27 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -27 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -1 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -27 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -2 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -27 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -28 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -29 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -30 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -31 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -32 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 15 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -33 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -2 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -3 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -3 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -3 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -1 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -3 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -2 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -3 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -3 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -4 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -4 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -1 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -4 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -2 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -4 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -3 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -5 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -6 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -7 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -8 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -9 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -10 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -11 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -12 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -12 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -12 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -2 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -13 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -13 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -1 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -13 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -2 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -14 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -14 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -1 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -14 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -2 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -15 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -16 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -17 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -18 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -19 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -20 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -21 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -22 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -23 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -24 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -25 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -26 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -27 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -28 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -29 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -30 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -31 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -32 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -33 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -35 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -36 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -37 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -38 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -39 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -40 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -41 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -42 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -42 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -42 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -2 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -42 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -1 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -43 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -44 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -45 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -46 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -46 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -46 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -2 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -46 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -3 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -46 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -4 # Beta 3 7 18 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -46 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -5 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -47 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -47 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -1 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -47 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -2 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -47 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -3 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -47 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -4 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -47 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -5 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -48 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -48 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -1 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -48 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -2 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -48 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -3 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -48 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -4 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 17 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -48 # Beta 1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -5 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -49 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -50 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -51 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -52 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -53 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 7 16 # p0 p1 p2 p3 p4 p5 p6 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -34 # Beta 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -54 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Beta 3 1 # Set the scattering parameter names. p0 p1 p2 p3 p4 p5 p6 cloog-parma-0.16.1/cloog-core/test/stride4.c0000644000175000017500000000027011511333434015450 00000000000000/* Generated from ../../../git/cloog/test/stride4.cloog by CLooG 0.16.0-10-g13c6274 gmp bits in 0.00s. */ if ((t >= 0) && (t <= 15)) { for (i0=t;i0<=99;i0+=16) { S1(i0,t); } } cloog-parma-0.16.1/cloog-core/test/donotsimp.good.c0000644000175000017500000000130111321074700017026 00000000000000/* Generated from ../../../git/cloog/test/donotsimp.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M) { /* Scattering iterators. */ int c2, c4; /* Original iterators. */ int i, j; for (c2=1;c2<=10;c2++) { for (c4=1;c4<=c2;c4++) { S1(c2,c4) ; } for (c4=11;c4<=M;c4++) { S2(c2,c4) ; } } } cloog-parma-0.16.1/cloog-core/test/1point-2.c0000644000175000017500000000017211323312273015443 00000000000000/* Generated from ../../../git/cloog/test/1point-2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ S1(2*M,N+2) ; cloog-parma-0.16.1/cloog-core/test/lu2.cloog0000644000175000017500000000104211321074700015450 00000000000000# language: C c # parameter n 1 3 1 0 1 1 n 2 # Number of statements 1 # {c1, c2, i, j | c1=i, c2=n, 1<=i<=n; i+1<=j<=n} 6 7 0 1 0 -1 0 0 0 0 0 1 0 0 -1 0 1 0 0 1 0 0 -1 1 0 0 -1 0 1 0 1 0 0 -1 1 0 -1 1 0 0 0 -1 1 0 0 0 0 1 # {c1, c2, i, j, k | c1=k, c2=j, 1<=i<=n; i+1<=j<=n i+1<=k<=n} 8 8 0 1 0 0 0 -1 0 0 0 0 1 0 -1 0 0 0 1 0 0 1 0 0 0 -1 1 0 0 -1 0 0 1 0 1 0 0 -1 1 0 0 -1 1 0 0 0 -1 0 1 0 1 0 0 -1 0 1 0 -1 1 0 0 0 0 -1 1 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/mode.cloog0000644000175000017500000000057211321074700015701 00000000000000# language: C c # parameters n m 1 4 # n m 1 1 0 0 1 0 2 # Number of statements 1 # S2 {i, j | 0<=i<=n; 0<=j<=i} 4 6 # i j n m 1 1 1 0 0 0 0 1 -1 0 1 0 0 1 0 1 0 0 0 1 1 -1 0 0 0 0 0 0 1 # S2 {i, j | 0<=i<=n; 0<=j<=m} 4 6 # i j n m 1 1 1 0 0 0 0 1 -1 0 1 0 0 1 0 1 0 0 0 1 0 -1 0 1 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/guide.c0000644000175000017500000000031111327562503015171 00000000000000/* Generated from ../../../git/cloog/test/guide.cloog by CLooG 0.14.0-245-gd8c1718 gmp bits in 0.00s. */ if (N >= 1) { for (i=1;i<=N;i++) { S1(i); } for (i=N+1;i<=2*N;i++) { S2(i); } } cloog-parma-0.16.1/cloog-core/test/thomasset.good.c0000644000175000017500000000542411321074700017033 00000000000000/* Generated from ../../../git/cloog/test/thomasset.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.10s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j,k,p,q) { hash(2); hash(i); hash(j); hash(k); hash(p); hash(q); } void test(int n) { /* Scattering iterators. */ int c1, c2; /* Original iterators. */ int i, j, k, p, q; for (c1=0;c1<=floord(n-5,3);c1++) { for (i=max(3*c1+1,1);i<=3*c1+3;i++) { S1(i,c1) ; } } if (n == 1) { S1(1,0) ; for (k=0;k<=min(0,0);k++) { for (p=max(0,ceild(-3*k-1,3));p<=min(floord(-3*k+1,3),0);p++) { q = -k-p ; S2(1,1,k,p,-k-p) ; } } } if (n >= 2) { for (c1=max(0,ceild(n-4,3));c1<=0;c1++) { S1(1,c1) ; for (j=1;j<=min(n,3*c1-n+5);j++) { for (k=0;k<=floord(3*c1-j-n+4,3);k++) { for (p=ceild(n-2,3);p<=floord(3*c1-j-3*k+2,3);p++) { q = c1-k-p ; S2(1,j,k,p,c1-k-p) ; } } } for (i=2;i<=min(n,3*c1+3);i++) { S1(i,c1) ; } for (c2=1;c2<=n-1;c2++) { i = c2+1 ; for (j=1;j<=min(3*c1-n+5,n);j++) { for (k=0;k<=floord(3*c1-j-n+4,3);k++) { for (p=ceild(n-2,3);p<=floord(3*c1-j-3*k+2,3);p++) { q = c1-k-p ; S2(c2+1,j,k,p,c1-k-p) ; } } } } } } for (c1=max(1,ceild(n-4,3));c1<=floord(n-1,3);c1++) { for (j=1;j<=3*c1-n+5;j++) { for (k=0;k<=min(floord(3*c1-j-n+4,3),0);k++) { for (p=max(ceild(n-2,3),ceild(3*c1-j-3*k,3));p<=min(floord(3*c1-j-3*k+2,3),floord(n,3));p++) { q = c1-k-p ; S2(1,j,k,p,c1-k-p) ; } } } for (i=3*c1+1;i<=min(n,3*c1+3);i++) { S1(i,c1) ; } for (c2=1;c2<=n-1;c2++) { i = c2+1 ; for (j=1;j<=3*c1-n+5;j++) { for (k=0;k<=min(floord(3*c1-j-n+4,3),0);k++) { for (p=max(ceild(n-2,3),ceild(3*c1-j-3*k,3));p<=min(floord(3*c1-j-3*k+2,3),floord(n,3));p++) { q = c1-k-p ; S2(c2+1,j,k,p,c1-k-p) ; } } } } } if (n >= 1) { for (c1=ceild(n,3);c1<=floord(2*n+1,3);c1++) { for (c2=0;c2<=n-1;c2++) { i = c2+1 ; for (j=max(1,3*c1-n-1);j<=min(n,3*c1-n+5);j++) { for (k=max(ceild(3*c1-j-n,3),0);k<=min(floord(3*c1-j-n+4,3),0);k++) { for (p=max(ceild(n-2,3),ceild(3*c1-j-3*k,3));p<=min(floord(3*c1-j-3*k+2,3),floord(n,3));p++) { q = c1-k-p ; S2(c2+1,j,k,p,c1-k-p) ; } } } } } } } cloog-parma-0.16.1/cloog-core/test/stride3.cloog0000644000175000017500000000210211467774607016351 00000000000000 # ---------------------- CONTEXT ---------------------- c # language is C # Context (no constraints on two parameters) 1 4 # 1 lines and 4 columns # eq/in m n 1 1 0 0 0 # 0 >= 0, always true 1 # We want to set manually the parameter names m n # parameter names # --------------------- STATEMENTS -------------------- 1 # Number of statements 1 # First statement: two domains # First domain 3 5 # 3 lines and 5 columns # eq/in i m n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # i <= n 1 1 -1 0 0 # i >= m # Second domain 0 0 0 # for future options 1 # We want to set manually the iterator names i j # iterator names # --------------------- SCATTERING -------------------- 1 # Scattering functions # First function 2 7 # 2 lines and 7 columns # eq/in p1 p2 i m n 1 0 1 0 -50 0 0 0 # p1 = i 0 0 1 0 0 0 0 # p2 = 0 1 # We want to set manually the scattering dimension names p1 p2 # scattering dimension names cloog-parma-0.16.1/cloog-core/test/stride3.c0000644000175000017500000000030611467774607015474 00000000000000/* Generated from ../../../git/cloog/test/stride3.cloog by CLooG 0.14.0-291-g5879c32 gmp bits in 0.00s. */ if ((m <= n) && (n >= 1)) { for (p1=max(50,50*m);p1<=50*n;p1+=50) { S1(p1/50); } } cloog-parma-0.16.1/cloog-core/test/basic-bounds-4.good.c0000644000175000017500000000077511321074700017542 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-4.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } void test(int M) { /* Original iterators. */ int i; for (i=0;i<=M+1;i++) { S1(i) ; } } cloog-parma-0.16.1/cloog-core/test/otl.cloog0000644000175000017500000000530011361141766015560 00000000000000# created: Tue Mar 23 01:51:15 CET 2010 # ---------------------- CONTEXT ---------------------- c # language is C # Context 2 4 1 1 0 -1 1 0 1 -1 1 # set parameter names M N # --------------------- STATEMENTS -------------------- 1 1 # domains per statement 76 10 1 -5 0 0 0 0 0 2 2 -7 1 -20 0 0 0 20 20 0 0 16 1 -40 0 0 0 0 80 0 8 16 1 -4 4 0 0 0 4 0 0 4 1 -20 0 0 0 40 0 0 0 8 1 -20 0 20 0 20 0 0 0 16 1 -20 0 40 0 0 0 0 4 8 1 -20 40 0 0 0 0 0 0 16 1 -4 4 4 0 0 0 0 0 4 1 -20 0 0 0 0 20 4 4 -4 1 -10 0 0 0 10 0 2 0 2 1 -5 0 0 5 0 0 0 0 3 1 -5 5 0 0 0 0 1 0 2 1 -10 0 10 0 0 0 2 2 -2 1 0 -10 -10 10 0 0 0 2 6 1 20 -20 -20 0 0 0 0 4 16 1 0 -10 0 10 0 -10 0 2 6 1 40 -40 0 0 0 -40 0 8 32 1 0 -20 0 10 0 0 0 4 0 1 0 -10 0 0 0 0 2 4 -10 1 40 -80 0 0 0 0 0 16 8 1 0 -10 0 0 0 10 0 2 2 1 0 -5 0 0 5 0 0 0 3 1 0 -10 0 10 0 0 0 0 4 1 0 -5 5 0 0 0 0 1 1 1 20 -20 0 0 0 0 0 0 12 1 0 0 -10 10 -10 0 0 2 8 1 40 0 -40 0 -40 0 0 8 40 1 0 0 -20 10 0 0 0 2 4 1 0 0 -5 0 0 0 1 1 -2 1 40 0 -80 0 0 0 0 8 24 1 0 0 -5 0 0 5 0 0 4 1 0 0 -10 0 10 0 0 0 4 1 0 0 -10 10 0 0 0 0 2 1 0 5 -5 0 0 0 0 0 3 1 40 0 -40 0 0 0 0 0 16 1 0 0 0 -5 0 0 2 2 -6 1 0 0 0 -20 20 20 0 0 20 1 0 0 0 -40 0 80 0 8 24 1 0 20 0 -20 0 20 0 0 24 1 0 0 20 -20 20 0 0 0 20 1 0 0 0 -20 40 0 0 0 12 1 0 0 40 -20 0 0 0 4 12 1 0 40 0 -20 0 0 0 0 20 1 0 20 20 -20 0 0 0 0 24 1 0 0 0 -40 0 40 8 8 0 1 0 0 0 -20 20 0 4 0 8 1 0 0 20 -20 0 0 4 4 0 1 2 0 0 -2 0 0 0 0 2 1 0 10 0 -10 0 0 2 0 6 1 0 0 0 10 -10 -10 0 2 8 1 80 0 0 0 -80 -80 0 16 80 1 0 0 0 10 -20 0 0 4 4 1 0 0 0 0 -10 0 2 4 -8 1 120 0 0 0 -240 0 0 48 72 1 0 0 0 0 -20 20 0 4 8 1 0 0 0 10 -10 0 0 0 6 1 0 0 10 0 -10 0 0 2 4 1 0 1 0 0 -1 0 0 0 1 1 40 0 0 0 -40 0 0 0 32 1 0 0 0 10 0 -20 0 2 4 1 0 0 0 0 0 -5 1 1 -2 1 80 0 0 0 0 -160 0 16 48 1 0 0 0 0 10 -10 0 0 4 1 0 0 0 10 0 -10 0 0 2 1 0 0 5 0 0 -5 0 0 4 1 0 10 0 0 0 -10 0 0 6 1 40 0 0 0 0 -40 0 0 16 1 0 0 0 0 0 4 0 0 0 1 0 0 0 0 20 0 0 0 -8 1 0 0 0 20 0 0 0 0 -12 1 0 0 4 0 0 0 0 0 0 1 0 20 0 0 0 0 0 0 -4 1 80 0 0 0 0 0 0 0 -32 1 0 0 0 0 0 0 0 1 -4 1 0 0 0 0 0 0 1 0 -3 0 0 0 # for future options... 1 # set the iterator names outerTimeTileIter outerProcTileIter1 outerProcTileIter2 innerTimeTileIter innerProcTileIter1 innerProcTileIter2 # --------------------- SCATTERING -------------------- 1 # Scattering functions 6 16 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 # we set the scattering dimension names outerTimeTileScatter outerProcTileScatter1 outerProcTileScatter2 innerTimeTileScatter innerProcTileScatter1 innerProcTileScatter2 cloog-parma-0.16.1/cloog-core/test/min-4-1.good.c0000644000175000017500000000102211321074700016074 00000000000000/* Generated from ../../../git/cloog/test/min-4-1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } void test(int M, int N, int O) { /* Original iterators. */ int i; for (i=max(-M,-N);i<=min(O,N);i++) { S1(i) ; } } cloog-parma-0.16.1/cloog-core/test/durbin_e_s.c0000644000175000017500000000065011323312273016204 00000000000000/* Generated from ../../../git/cloog/test/durbin_e_s.cloog by CLooG 0.14.0-238-gb1cb779 gmp bits in 0.01s. */ S4(1,0,0); S7(1,0,0); S8(1,0,3); for (i=2;i<=9;i++) { S2(i,-7,0); for (j=-7;j<=i-9;j++) { S3(i,j,1); } S6(i,i-9,2); S8(i,0,3); for (j=1;j<=i-1;j++) { S5(i,j,3); } } S2(10,-7,0); for (j=-7;j<=1;j++) { S3(10,j,1); } S6(10,1,2); for (j=1;j<=9;j++) { S5(10,j,3); S1(10,j,4); } S1(10,10,4); cloog-parma-0.16.1/cloog-core/test/sor1d.cloog0000644000175000017500000001241411321074700016003 00000000000000# created: Thu Dec 17 16:41:33 CET 2009 # ---------------------- CONTEXT ---------------------- c # language is C # Context 2 4 1 1 0 0 1 0 1 0 1 # set parameter names M N # --------------------- STATEMENTS -------------------- 4 # 1 computation stmts: 1 # domains per statement 19 8 1 -100 0 2 1 0 0 -4 1 0 0 0 1 0 0 -2 1 100 0 -2 -1 0 0 103 1 0 0 0 -1 0 1 -1 1 0 0 1 0 0 0 -1 1 0 -100 1 0 0 0 0 1 -100 0 2 0 0 1 -5 1 0 0 -1 0 1 0 0 1 0 100 -1 0 0 0 99 1 100 0 -2 0 0 0 101 1 0 50 0 0 0 0 49 1 -100 200 0 0 0 1 193 1 0 -100 0 0 1 0 0 1 100 -200 0 0 0 0 101 1 100 0 0 0 0 0 99 1 -100 0 0 0 2 1 -5 1 0 0 0 0 0 1 -3 1 0 0 0 0 2 1 94 1 0 0 0 0 1 0 -1 0 0 0 # for future options... # 1 prepare-send stmts: 1 # domains per statement 57 9 1 0 -200 0 2 1 0 0 -3 1 0 0 0 2 1 0 0 -5 1 -100 0 0 2 1 0 0 -4 1 0 0 0 0 1 0 0 -3 1 0 200 0 -2 -1 0 1 197 1 0 0 0 -2 -1 2 1 -3 1 100 0 0 -2 -1 0 0 103 1 0 0 0 0 -1 0 1 -1 1 0 0 -100 1 0 0 0 1 1 0 -100 0 1 0 0 0 0 1 0 0 0 1 0 0 0 -1 1 0 -200 0 2 0 0 1 -4 1 0 0 0 2 0 0 1 -6 1 -100 0 0 2 0 0 1 -5 1 0 0 100 -1 0 0 0 98 1 0 100 0 -1 0 0 0 99 1 0 0 0 -1 0 1 0 -1 1 0 200 0 -2 0 0 1 194 1 0 0 0 -2 0 2 1 -6 1 50 0 0 -1 0 0 0 50 1 0 -1 1 0 0 0 0 -1 1 0 0 100 0 0 0 0 97 1 0 -200 200 0 0 0 1 192 1 0 0 200 0 0 0 1 190 1 -100 0 200 0 0 0 1 191 1 0 1 -1 0 0 0 0 1 1 0 0 -100 0 0 1 0 0 1 0 200 -200 0 0 0 1 196 1 0 0 -200 0 0 2 1 -4 1 50 0 -100 0 0 0 0 51 1 -100 200 0 0 0 0 2 189 1 -100 200 0 0 0 0 1 193 1 0 100 0 0 0 0 1 94 1 0 200 0 0 0 0 1 192 1 0 50 0 0 0 0 0 49 1 100 -200 0 0 0 0 1 96 1 0 -100 0 0 0 1 1 -5 1 0 -100 0 0 0 1 0 -100 1 0 -200 0 0 0 2 1 -204 1 50 -100 0 0 0 0 0 -49 1 50 0 0 0 0 0 0 49 1 100 0 0 0 0 0 1 94 1 100 0 0 0 0 0 3 284 1 50 0 0 0 0 0 1 45 1 -100 0 0 0 0 2 1 -7 1 -100 0 0 0 0 2 2 -11 1 -100 0 0 0 0 2 4 179 1 -100 0 0 0 0 2 3 -15 1 0 0 0 0 0 2 1 -8 1 0 0 0 0 0 2 3 -16 1 0 0 0 0 0 1 1 -6 1 0 0 0 0 0 0 1 -4 1 0 0 0 0 0 2 4 79 1 0 0 0 0 0 2 7 463 1 0 0 0 0 0 2 6 269 1 0 0 0 0 0 2 5 75 1 0 0 0 0 0 1 0 -2 0 0 0 # for future options... # 1 prepare-receive stmts: 1 # domains per statement 57 9 1 0 -200 0 2 1 0 0 -3 1 0 0 0 2 1 0 0 -5 1 -100 0 0 2 1 0 0 -4 1 0 0 0 0 1 0 0 -3 1 0 200 0 -2 -1 0 1 197 1 0 0 0 -2 -1 2 1 -3 1 100 0 0 -2 -1 0 0 103 1 0 0 0 0 -1 0 1 -1 1 0 0 -100 1 0 0 0 1 1 0 -100 0 1 0 0 0 0 1 0 0 0 1 0 0 0 -1 1 0 -200 0 2 0 0 1 -4 1 0 0 0 2 0 0 1 -6 1 -100 0 0 2 0 0 1 -5 1 0 0 100 -1 0 0 0 98 1 0 100 0 -1 0 0 0 99 1 0 0 0 -1 0 1 0 -1 1 0 200 0 -2 0 0 1 194 1 0 0 0 -2 0 2 1 -6 1 50 0 0 -1 0 0 0 50 1 0 -1 1 0 0 0 0 -1 1 0 0 100 0 0 0 0 97 1 0 -200 200 0 0 0 1 192 1 0 0 200 0 0 0 1 190 1 -100 0 200 0 0 0 1 191 1 0 1 -1 0 0 0 0 1 1 0 0 -100 0 0 1 0 0 1 0 200 -200 0 0 0 1 196 1 0 0 -200 0 0 2 1 -4 1 50 0 -100 0 0 0 0 51 1 -100 200 0 0 0 0 2 189 1 -100 200 0 0 0 0 1 193 1 0 100 0 0 0 0 1 94 1 0 200 0 0 0 0 1 192 1 0 50 0 0 0 0 0 49 1 100 -200 0 0 0 0 1 96 1 0 -100 0 0 0 1 1 -5 1 0 -100 0 0 0 1 0 -100 1 0 -200 0 0 0 2 1 -204 1 50 -100 0 0 0 0 0 -49 1 50 0 0 0 0 0 0 49 1 100 0 0 0 0 0 1 94 1 100 0 0 0 0 0 3 284 1 50 0 0 0 0 0 1 45 1 -100 0 0 0 0 2 1 -7 1 -100 0 0 0 0 2 2 -11 1 -100 0 0 0 0 2 4 179 1 -100 0 0 0 0 2 3 -15 1 0 0 0 0 0 2 1 -8 1 0 0 0 0 0 2 3 -16 1 0 0 0 0 0 1 1 -6 1 0 0 0 0 0 0 1 -4 1 0 0 0 0 0 2 4 79 1 0 0 0 0 0 2 7 463 1 0 0 0 0 0 2 6 269 1 0 0 0 0 0 2 5 75 1 0 0 0 0 0 1 0 -2 0 0 0 # for future options... # 1 communication stmts: 1 # domains per statement 21 5 1 200 0 3 781 1 200 0 1 391 1 200 0 4 1075 1 100 0 1 392 1 100 0 0 197 1 -200 6 5 377 1 -200 6 6 671 1 -100 3 2 190 1 -200 6 3 -13 1 -100 3 1 -5 1 0 2 3 484 1 0 1 1 95 1 0 3 1 192 1 0 3 5 873 1 0 3 2 189 1 0 6 7 1062 1 0 6 5 771 1 0 3 4 579 1 0 0 1 -3 1 0 2 1 -5 1 0 1 0 -1 0 0 0 # for future options... 1 # set the iterator names tileT1 tileP1 other1 other2 other3 other4 other5 # --------------------- SCATTERING -------------------- 4 # Scattering functions 9 17 0 1 0 -1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -2 -1 0 0 4 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 9 18 0 1 0 -1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -2 -1 0 0 4 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -2 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 9 18 0 1 0 0 0 0 0 -1 0 0 -1 0 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -2 -1 0 0 4 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 9 14 0 1 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 # we set the scattering dimension names glT1 bl rp1 vT1 vP1 stmtType otherP1 arrAcc1 arrNr1 cloog-parma-0.16.1/cloog-core/test/darte.cloog0000644000175000017500000000127011321074700016050 00000000000000# language: C c # parameters n m 1 3 # n 1 1 0 0 1 n 2 # Number of statements 1 # S1 {i, j, k | 1<=i<=n; 1<=j<=n, 1<=k<=n} 6 6 # i j k n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 0 1 0 1 0 0 1 0 -1 1 0 0 -1 1 0 0 0 0 1 # S2 {i, j, k | 1<=i<=n; 1<=j<=n, 1<=k<=n} 6 6 # i j k n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 0 1 0 1 0 0 1 0 -1 1 0 0 -1 1 0 0 0 0 0 2 # Scattering functions 3 9 # c1 c2 c3 i j k n 1 0 1 0 0 -1 1 0 0 0 0 0 1 0 -1 -1 0 0 0 0 0 0 1 -1 -1 -2 0 0 3 9 # c1 c2 c3 i j k n 1 0 1 0 0 -1 1 0 0 -1 0 0 1 0 -1 -1 0 0 -2 0 0 0 1 0 0 -1 0 0 1 t1 t2 t3 cloog-parma-0.16.1/cloog-core/test/logopar.cloog0000644000175000017500000000063411321074700016417 00000000000000# language: C c # Context 3 4 # m n 1 1 1 -1 0 # m > n 1 1 0 0 # m >= 0 1 0 1 -2 # n >= 2 1 m n 2 # Number of statements 1 3 6 # i j m n 1 1 1 0 0 0 -1 # i >= 1 1 0 -1 1 0 0 # j <= m 1 -1 1 0 0 1 # j >= i-1 0 0 0 1 4 6 # i j m n 1 1 1 0 0 0 -2 # i >= 2 1 -1 0 0 1 0 # i <= n 1 0 1 0 0 0 # j >= 0 1 0 -1 0 1 0 # j <= n 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/cholesky.c0000644000175000017500000000116311323312273015714 00000000000000/* Generated from ../../../git/cloog/test/cholesky.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.04s. */ if (n >= 1) { if (n >= 2) { S1(1) ; S3(1) ; for (c3=2;c3<=n;c3++) { S4(1,c3) ; S6(1,c3) ; } } if (n == 1) { S1(1) ; S3(1) ; } for (c1=2;c1<=n-1;c1++) { S1(c1) ; for (c3=1;c3<=c1-1;c3++) { S2(c1,c3) ; } S3(c1) ; for (c3=c1+1;c3<=n;c3++) { S4(c1,c3) ; for (c5=1;c5<=c1-1;c5++) { S5(c1,c3,c5) ; } S6(c1,c3) ; } } if (n >= 2) { S1(n) ; for (c3=1;c3<=n-1;c3++) { S2(n,c3) ; } S3(n) ; } } cloog-parma-0.16.1/cloog-core/test/basic-bounds-6.c0000644000175000017500000000017311323312273016607 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-6.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ S1(-1) ; cloog-parma-0.16.1/cloog-core/test/walters.good.c0000644000175000017500000000261211321074700016501 00000000000000/* Generated from /home/skimo/git/cloog/test/walters.cloog by CLooG 0.14.0-223-gad1f0a0 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,div36,div37,div38) { hash(1); hash(i); hash(div36); hash(div37); hash(div38); } #define S2(i,div36,div37,div38) { hash(2); hash(i); hash(div36); hash(div37); hash(div38); } #define S3(i,div36,div37,div38) { hash(3); hash(i); hash(div36); hash(div37); hash(div38); } #define S4(i,div36,div37,div38) { hash(4); hash(i); hash(div36); hash(div37); hash(div38); } void test() { /* Original iterators. */ int i, div36, div37, div38; S2(1,0,1,0); S4(1,0,1,0); S3(2,0,1,1); S4(2,0,1,1); for (i=3;i<=10;i++) { if ((i+2)%3 <= 1) { div36 = floord(i-1,3); if ((i+1)%3 <= 1) { div37 = floord(i+1,3); if ((i+1)%3 == 0) { S3(i,div36,div37,(i+1)/3); S4(i,div36,div37,(i+1)/3); } } if ((i+2)%3 == 0) { div38 = floord(i+1,3); S2(i,div36,(i+2)/3,div38); S4(i,div36,(i+2)/3,div38); } } if (i%3 == 0) { div37 = floord(i+2,3); div38 = floord(i+1,3); S1(i,i/3,div37,div38); S4(i,i/3,div37,div38); } } } cloog-parma-0.16.1/cloog-core/test/orc.good.c0000644000175000017500000000433111321074700015603 00000000000000/* Generated from ../../../git/cloog/test/orc.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.06s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j) { hash(3); hash(i); hash(j); } #define S4(i) { hash(4); hash(i); } #define S5(i) { hash(5); hash(i); } #define S6(i,j) { hash(6); hash(i); hash(j); } #define S7(i) { hash(7); hash(i); } void test() { /* Scattering iterators. */ int p1, p2; /* Original iterators. */ int i, j; S1(0) ; S2(0,0) ; for (p2=1;p2<=22;p2++) { if ((p2+1)%2 == 0) { j = (p2-1)/2 ; S3(0,(p2-1)/2) ; } if (p2%2 == 0) { S2(0,p2/2) ; } } S3(0,11) ; for (p1=2;p1<=6;p1++) { if ((p1+1)%3 == 0) { i = (p1-2)/3 ; S4((p1-2)/3) ; } if ((p1+2)%3 == 0) { i = (p1-1)/3 ; S2((p1-1)/3,0) ; } if (p1%3 == 0) { S1(p1/3) ; } for (p2=1;p2<=floord(-2*p1+68,3);p2++) { if ((p1+2)%3 == 0) { i = (p1-1)/3 ; if ((p2+1)%2 == 0) { j = (p2-1)/2 ; S3((p1-1)/3,(p2-1)/2) ; } if (p2%2 == 0) { S2((p1-1)/3,p2/2) ; } } } p2 = floord(-2*p1+71,3) ; if ((p1+2)%3 == 0) { i = (p1-1)/3 ; if ((p2+1)%2 == 0) { j = (p2-1)/2 ; S3((p1-1)/3,(p2-1)/2) ; } } } S2(2,0) ; for (p2=1;p2<=18;p2++) { if ((p2+1)%2 == 0) { j = (p2-1)/2 ; S3(2,(p2-1)/2) ; } if (p2%2 == 0) { S2(2,p2/2) ; } } S3(2,9) ; S4(2) ; S5(0) ; S6(0,0) ; for (p2=1;p2<=9;p2++) { S6(0,p2) ; } for (p1=2;p1<=42;p1++) { if ((p1+1)%3 == 0) { i = (p1-2)/3 ; S7((p1-2)/3) ; } if ((p1+2)%3 == 0) { i = (p1-1)/3 ; S6((p1-1)/3,0) ; } if (p1%3 == 0) { S5(p1/3) ; } for (p2=1;p2<=9;p2++) { if ((p1+2)%3 == 0) { i = (p1-1)/3 ; S6((p1-1)/3,p2) ; } } } S6(14,0) ; for (p2=1;p2<=9;p2++) { S6(14,p2) ; } S7(14) ; } cloog-parma-0.16.1/cloog-core/test/infinite.cloog0000644000175000017500000000052211321074700016555 00000000000000# langage c # parametres {M, N | M>=1 N >=1} 2 4 # M N 1 1 1 0 -1 1 0 1 -1 0 2 # Number of statements 1 # {i | 1<=i<=M} 0 5 # i M N 1 #1 1 0 0 -1 #1 -1 1 0 0 0 0 0 1 # {i, j | 1<=i<=N 1<=j<=M} 4 6 # i j M N 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 1 0 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/walters3.c0000644000175000017500000000031311505435152015637 00000000000000/* Generated from ../../../git/cloog/test/walters3.cloog by CLooG 0.14.0-338-g99c7504 gmp bits in 0.00s. */ for (j=2;j<=8;j++) { if (j%2 == 0) { S1(j,j/2,j/2); S2(j,j/2,j/2); } } S2(10,5,5); cloog-parma-0.16.1/cloog-core/test/classen.c0000644000175000017500000000577211406126537015545 00000000000000/* Generated from /home/skimo/git/cloog/test/classen.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.45s. */ if (m >= 1) { if (m >= 2) { S1(0,1,1,1); S2(0,1,1,1,1,1,2,1); S3(0,1,1,2,1,1,1,2); S4(0,1,2,2,1,1,2,2); S8(0,1); } if (m == 1) { S1(0,1,1,1); S8(0,1); } for (glT1=1;glT1<=2*m-4;glT1++) { if (glT1 <= m-2) { S5(glT1-1,1,glT1,1,glT1,1,glT1+1,1); S1(glT1,1,glT1+1,1); S2(glT1,1,glT1+1,1,glT1+1,1,glT1+2,1); S3(glT1,1,glT1+1,2,glT1+1,1,glT1+1,2); S4(glT1,1,glT1+2,2,glT1+1,1,glT1+2,2); } if (glT1 >= m) { S5(glT1-1,glT1-m+2,glT1,glT1-m+2,m-1,glT1-m+2,m,glT1-m+2); S6(glT1-1,glT1-m+1,glT1,glT1-m+2,m,glT1-m+1,m,glT1-m+2); S1(glT1,glT1-m+2,m,glT1-m+2); S3(glT1,glT1-m+2,glT1+1,glT1-m+3,m,glT1-m+2,m,glT1-m+3); } if (glT1 == m-1) { S5(m-2,1,m-1,1,m-1,1,m,1); S1(m-1,1,m,1); S3(m-1,1,m,2,m,1,m,2); } for (rp1=max(2,glT1-m+3);rp1<=min(glT1,m-1);rp1++) { S5(glT1-1,rp1,glT1,rp1,glT1-rp1+1,rp1,glT1-rp1+2,rp1); S6(glT1-1,rp1-1,glT1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+2,rp1); S7(glT1-1,rp1-1,glT1+1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+3,rp1); S1(glT1,rp1,glT1-rp1+2,rp1); S2(glT1,rp1,glT1+1,rp1,glT1-rp1+2,rp1,glT1-rp1+3,rp1); S3(glT1,rp1,glT1+1,rp1+1,glT1-rp1+2,rp1,glT1-rp1+2,rp1+1); S4(glT1,rp1,glT1+2,rp1+1,glT1-rp1+2,rp1,glT1-rp1+3,rp1+1); } if (glT1 <= m-2) { S6(glT1-1,glT1,glT1,glT1+1,1,glT1,1,glT1+1); S7(glT1-1,glT1,glT1+1,glT1+1,1,glT1,2,glT1+1); S1(glT1,glT1+1,1,glT1+1); S2(glT1,glT1+1,glT1+1,glT1+1,1,glT1+1,2,glT1+1); S3(glT1,glT1+1,glT1+1,glT1+2,1,glT1+1,1,glT1+2); S4(glT1,glT1+1,glT1+2,glT1+2,1,glT1+1,2,glT1+2); } if (glT1 >= m) { S5(glT1-1,m,glT1,m,glT1-m+1,m,glT1-m+2,m); S6(glT1-1,m-1,glT1,m,glT1-m+2,m-1,glT1-m+2,m); S7(glT1-1,m-1,glT1+1,m,glT1-m+2,m-1,glT1-m+3,m); S1(glT1,m,glT1-m+2,m); S2(glT1,m,glT1+1,m,glT1-m+2,m,glT1-m+3,m); } if (glT1 == m-1) { S6(m-2,m-1,m-1,m,1,m-1,1,m); S7(m-2,m-1,m,m,1,m-1,2,m); S1(m-1,m,1,m); S2(m-1,m,m,m,1,m,2,m); } for (coordP1=max(1,glT1-m+2);coordP1<=min(m,glT1+1);coordP1++) { S8(glT1,coordP1); } } if (m >= 2) { if (m >= 3) { S5(2*m-4,m-1,2*m-3,m-1,m-1,m-1,m,m-1); S6(2*m-4,m-2,2*m-3,m-1,m,m-2,m,m-1); S1(2*m-3,m-1,m,m-1); S3(2*m-3,m-1,2*m-2,m,m,m-1,m,m); } if (m == 2) { S5(0,1,1,1,1,1,2,1); S1(1,1,2,1); S3(1,1,2,2,2,1,2,2); } if (m >= 3) { S5(2*m-4,m,2*m-3,m,m-2,m,m-1,m); S6(2*m-4,m-1,2*m-3,m,m-1,m-1,m-1,m); S7(2*m-4,m-1,2*m-2,m,m-1,m-1,m,m); S1(2*m-3,m,m-1,m); } if (m == 2) { S6(0,1,1,2,1,1,1,2); S7(0,1,2,2,1,1,2,2); S1(1,2,1,2); } S2(2*m-3,m,2*m-2,m,m-1,m,m,m); for (coordP1=m-1;coordP1<=m;coordP1++) { S8(2*m-3,coordP1); } } if (m >= 2) { S5(2*m-3,m,2*m-2,m,m-1,m,m,m); S6(2*m-3,m-1,2*m-2,m,m,m-1,m,m); S1(2*m-2,m,m,m); S8(2*m-2,m); } } cloog-parma-0.16.1/cloog-core/test/equality.c0000644000175000017500000000043111323312273015725 00000000000000/* Generated from ../../../git/cloog/test/equality.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ for (i0=0;i0<=5;i0++) { for (i1=ceild(4*i0,5);i1<=floord(6*i0+20,5);i1++) { if (2*i0 == i1) { S1(i0,i1) ; } if (i1 == 4) { S2(i0,i1) ; } } } cloog-parma-0.16.1/cloog-core/test/constbound.good.c0000644000175000017500000000153411321074700017200 00000000000000/* Generated from /home/skimo/git/cloog/test/constbound.cloog by CLooG 0.14.0-170-g72daac3 64 bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } void test() { /* Scattering iterators. */ int t0, t2, t3; /* Original iterators. */ int i, j, k; for (t0=0;t0<=199;t0++) { for (t2=max(0,50*t0);t2<=50*t0+24;t2++) { for (t3=0;t3<=t2;t3++) { S1(t0,t2,t3); } } for (t2=50*t0+25;t2<=min(9999,50*t0+49);t2++) { for (t3=0;t3<=t2;t3++) { S2(t0,t2,t3); } } } } cloog-parma-0.16.1/cloog-core/test/dealII.cloog0000644000175000017500000000221611361141766016114 00000000000000# CLooG -> CLooG # This is an automatic dump of a CLooG input file from a CloogProgram data # structure. WARNING: it is highly dangerous and MAY be correct ONLY if # - it has been dumped before loop generation. # - option -noscalars is used (it removes scalar dimensions otherwise) # - option -l is at least the original scattering dimension number # ASK THE AUTHOR IF YOU *NEED* SOMETHING MORE ROBUST # Language: C c # Context (3 parameter(s)): 4 5 1 -1 0 0 4 1 1 0 0 0 1 0 -1 0 4 1 0 1 0 0 1 # Parameter name(s) T_2 T_67 T_66 # Statement number: 2 # Iteration domain of statement 1. 2 2 6 1 -1 1 0 0 -1 1 1 0 0 0 0 2 6 1 -1 0 -1 0 0 1 1 0 0 0 0 0 0 0 # For future options. # Iteration domain of statement 2. 2 3 6 1 -1 1 0 0 -1 1 1 0 0 0 0 1 -1 0 0 1 0 3 6 1 -1 0 1 0 -1 1 1 0 0 0 0 1 -1 0 0 1 0 0 0 0 # For future options. 1 # Iterator name(s) scat_0 scat_1 scat_2 git_0 # No scattering functions. 0 cloog-parma-0.16.1/cloog-core/test/walters3.good.c0000644000175000017500000000121511505435152016570 00000000000000/* Generated from ../../../git/cloog/test/walters3.cloog by CLooG 0.14.0-338-g99c7504 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(j,a,b) { hash(1); hash(j); hash(a); hash(b); } #define S2(j,a,b) { hash(2); hash(j); hash(a); hash(b); } void test() { /* Original iterators. */ int j, a, b; for (j=2;j<=8;j++) { if (j%2 == 0) { S1(j,j/2,j/2); S2(j,j/2,j/2); } } S2(10,5,5); } cloog-parma-0.16.1/cloog-core/test/isl/0000755000175000017500000000000011511607625014604 500000000000000cloog-parma-0.16.1/cloog-core/test/isl/mod4.c0000644000175000017500000000034011511333020015511 00000000000000/* Generated from ../../../git/cloog/test/isl/mod4.cloog by CLooG 0.16.0-9-g188dbd4 gmp bits in 0.00s. */ if (M%11 <= 6) { if (N%5 <= 2) { if (M >= -N) { for (i=0;i<=M+N;i++) { S1(i); } } } } cloog-parma-0.16.1/cloog-core/test/isl/mod4.cloog0000644000175000017500000000041611511333020016376 00000000000000c 1 0 4 0 1 6 7 1 0 2 2 1 0 -5 0 0 1 0 1 0 5 0 0 -1 2 1 0 0 -11 1 0 0 1 0 0 11 -1 0 6 1 1 0 0 0 0 0 1 -1 0 0 1 1 0 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/isl/mod2.cloog0000644000175000017500000000036211477111547016417 00000000000000# Language: C c # Context: 0 2 0 # Parameter name(s) # Statement number: 1 # Iteration domain of statement 1 { [i] : 0 <= i <= 3 and 0 <= i - 3*[i/3] <= 1 } 0 0 0 # For future options. 0 # Iterator name(s) # No scattering functions. 0 cloog-parma-0.16.1/cloog-core/test/isl/mod3.cloog0000644000175000017500000000102111477112645016411 00000000000000# Language: C c # Context: 2 3 1 -1 93 1 1 0 1 # Parameter name(s) h0 # Statement number: 1 # Iteration domain of statement 1 1 9 6 2 0 1 1 1 1 0 0 0 0 1 -1 0 0 0 999 1 0 0 -1 0 31 1 1 0 32 -32 999 1 0 1 0 0 0 1 0 -1 0 0 999 1 1 0 64 -32 31 1 -1 0 -64 32 31 1 0 0 1 0 0 0 0 0 # For future options. 0 # Iterator name(s) # No scattering functions. 0 cloog-parma-0.16.1/cloog-core/test/isl/mod3.c0000644000175000017500000000037111477112645015537 00000000000000/* Generated from ../../../git/cloog/test/isl/mod3.cloog by CLooG 0.14.0-325-g62da9f7 gmp bits in 0.02s. */ for (i=max(0,32*h0-1991);i<=min(999,32*h0+31);i++) { if ((63*i+32*h0+31)%64 <= 62) { for (j=0;j<=999;j++) { S1(i,j); } } } cloog-parma-0.16.1/cloog-core/test/isl/mod2.c0000644000175000017500000000024311477111547015534 00000000000000/* Generated from ../../../git/cloog/test/isl/mod.cloog by CLooG 0.14.0-325-g71fa959 gmp bits in 0.00s. */ for (i=0;i<=3;i++) { if (i%3 <= 1) { S1(i); } } cloog-parma-0.16.1/cloog-core/test/isl/mod.cloog0000644000175000017500000000042011477111547016330 00000000000000c # Context: 0 2 0 # Parameter name(s) # Statement number: 1 # Iteration domain of statement 1 4 4 1 0 1 0 1 1 0 0 1 -1 0 3 1 1 -3 0 1 -1 3 1 0 0 0 # For future options. 0 # Iterator name(s) # No scattering functions. 0 cloog-parma-0.16.1/cloog-core/test/isl/mod.c0000644000175000017500000000024311477111547015452 00000000000000/* Generated from ../../../git/cloog/test/isl/mod.cloog by CLooG 0.14.0-325-g71fa959 gmp bits in 0.00s. */ for (i=0;i<=3;i++) { if (i%3 <= 1) { S1(i); } } cloog-parma-0.16.1/cloog-core/test/gesced3.c0000644000175000017500000000040311323312273015404 00000000000000/* Generated from ../../../git/cloog/test/gesced3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ for (c1=M+1;c1<=2*M;c1++) { S1(c1-M) ; } for (c1=2*M+1;c1<=M+N;c1++) { S2(c1-2*M) ; S1(c1-M) ; } for (c1=M+N+1;c1<=2*M+N;c1++) { S2(c1-2*M) ; } cloog-parma-0.16.1/cloog-core/test/singleton.good.c0000644000175000017500000000071111321074700017020 00000000000000/* Generated from /home/skimo/git/cloog/test/singleton.cloog by CLooG 0.14.0-242-g720faff gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1() { hash(1); } #define S2() { hash(2); } void test() { S2(); S1(); } cloog-parma-0.16.1/cloog-core/test/otl.good.c0000644000175000017500000001025311361141766015631 00000000000000/* Generated from ../../../git/cloog/test/otl.cloog by CLooG 0.14.0-273-gfe7416f gmp bits in 0.24s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(outerTimeTileIter,outerProcTileIter1,outerProcTileIter2,innerTimeTileIter,innerProcTileIter1,innerProcTileIter2) { hash(1); hash(outerTimeTileIter); hash(outerProcTileIter1); hash(outerProcTileIter2); hash(innerTimeTileIter); hash(innerProcTileIter1); hash(innerProcTileIter2); } void test(int M, int N) { /* Scattering iterators. */ int outerTimeTileScatter, outerProcTileScatter1, outerProcTileScatter2, innerTimeTileScatter, innerProcTileScatter1, innerProcTileScatter2; /* Original iterators. */ int outerTimeTileIter, outerProcTileIter1, outerProcTileIter2, innerTimeTileIter, innerProcTileIter1, innerProcTileIter2; if ((M >= 3) && (N >= 4)) { for (outerTimeTileScatter=1;outerTimeTileScatter<=floord(2*M+2*N-7,5);outerTimeTileScatter++) { for (outerProcTileScatter1=max(ceild(outerTimeTileScatter,2),ceild(5*outerTimeTileScatter-M-2,5));outerProcTileScatter1<=min(min(floord(M+2*N-5,5),floord(5*outerTimeTileScatter+2*N+1,10)),outerTimeTileScatter);outerProcTileScatter1++) { for (outerProcTileScatter2=max(max(max(max(max(ceild(outerTimeTileScatter-outerProcTileScatter1-1,2),ceild(5*outerProcTileScatter1-N-1,5)),ceild(5*outerTimeTileScatter-M-N+1,5)),ceild(5*outerTimeTileScatter-N-2,10)),ceild(5*outerTimeTileScatter-N-3,15)),outerTimeTileScatter-outerProcTileScatter1-1);outerProcTileScatter2<=min(min(min(floord(M+N-2,5),floord(5*outerTimeTileScatter-5*outerProcTileScatter1+N+4,5)),floord(5*outerTimeTileScatter+N+3,10)),outerProcTileScatter1);outerProcTileScatter2++) { for (innerTimeTileScatter=max(max(max(ceild(10*outerProcTileScatter1-2*N,5),ceild(10*outerProcTileScatter2-N-2,5)),ceild(5*outerProcTileScatter1+5*outerProcTileScatter2-N-3,5)),outerTimeTileScatter);innerTimeTileScatter<=min(min(min(min(min(floord(2*M+2*N-6,5),floord(5*outerProcTileScatter1+M+3,5)),floord(5*outerProcTileScatter2+M+N,5)),floord(10*outerProcTileScatter2+N+3,5)),outerTimeTileScatter+1),outerProcTileScatter1+outerProcTileScatter2+1);innerTimeTileScatter++) { for (innerProcTileScatter1=max(max(max(max(ceild(innerTimeTileScatter,2),ceild(5*innerTimeTileScatter-M-2,5)),ceild(5*outerTimeTileScatter-M-1,5)),outerProcTileScatter1),outerTimeTileScatter-outerProcTileScatter2);innerProcTileScatter1<=min(min(min(min(min(min(min(floord(M+2*N-4,5),floord(5*outerProcTileScatter2+N+2,5)),floord(-5*outerProcTileScatter2+5*innerTimeTileScatter+N+4,5)),floord(5*outerTimeTileScatter-5*outerProcTileScatter2+N+5,5)),floord(5*innerTimeTileScatter+2*N+2,10)),floord(5*outerTimeTileScatter+2*N+3,10)),outerTimeTileScatter),outerProcTileScatter1+1);innerProcTileScatter1++) { for (innerProcTileScatter2=outerProcTileScatter2;innerProcTileScatter2<=outerProcTileScatter2;innerProcTileScatter2++) { for (outerTimeTileIter=outerTimeTileScatter;outerTimeTileIter<=outerTimeTileScatter;outerTimeTileIter++) { for (outerProcTileIter1=outerProcTileScatter1;outerProcTileIter1<=outerProcTileScatter1;outerProcTileIter1++) { for (outerProcTileIter2=outerProcTileScatter2;outerProcTileIter2<=outerProcTileScatter2;outerProcTileIter2++) { for (innerTimeTileIter=innerTimeTileScatter;innerTimeTileIter<=innerTimeTileScatter;innerTimeTileIter++) { for (innerProcTileIter1=innerProcTileScatter1;innerProcTileIter1<=innerProcTileScatter1;innerProcTileIter1++) { for (innerProcTileIter2=outerProcTileScatter2;innerProcTileIter2<=outerProcTileScatter2;innerProcTileIter2++) { S1(outerTimeTileIter,outerProcTileIter1,outerProcTileIter2,innerTimeTileIter,innerProcTileIter1,innerProcTileIter2); } } } } } } } } } } } } } } cloog-parma-0.16.1/cloog-core/test/emploi.cloog0000644000175000017500000000212311321074700016234 00000000000000# language: C c # The context (no constraints on parameters) 1 4 # 1 lines and 4 columns # m n 1 1 0 0 0 # 0 >= 0, always true 1 # We want to set the parameter names m n 2 # The number of statements 2 # First statement # The first domain 3 5 # 3 lines and 5 columns # i m n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # i <= n 1 -1 2 0 0 # i <= 2*m # The second domain 3 5 # 3 lines and 5 columns # i m n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # i <= n 1 1 -1 0 0 # i >= m 0 0 0 1 # Second statement 4 6 # 4 lines and 6 columns # i j m n 1 1 1 0 0 0 -1 # i >= 1 1 -1 0 0 1 0 # i <= n 1 0 1 0 0 -1 # j >= 1 1 0 -1 1 0 0 # j <= m 0 0 0 0 0 # Scattering functions # The first function 2 7 # 2 lines and 7 columns # c1 c2 i m n 1 0 1 0 -1 0 0 0 # c1 = i 0 0 1 0 0 0 0 # c2 = 0 # The second function 2 8 # 2 lines and 8 columns # c1 c2 i j m n 1 0 1 0 0 0 0 -1 0 # c1 = n 0 0 1 -1 -1 0 0 0 # c2 = i+j 0 cloog-parma-0.16.1/cloog-core/test/0D-3.c0000644000175000017500000000015711323312273014500 00000000000000/* Generated from ../../../git/cloog/test/0D-3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ S1() ; cloog-parma-0.16.1/cloog-core/test/walters3.cloog0000644000175000017500000000077311505435152016532 00000000000000# language: C c # parameters 1 2 1 1 1 2 1 15 5 1 -1 0 0 10 1 -1 0 0 8 1 -1 0 2 1 1 1 0 -2 0 1 -1 0 2 0 1 0 0 1 -1 1 1 -2 0 0 1 -1 2 0 1 1 1 0 0 -1 1 -1 0 0 10 0 1 -2 0 0 1 1 -2 0 0 1 -1 2 0 1 1 1 0 -2 0 1 -1 0 2 1 0 0 0 1 7 5 1 1 0 0 -1 1 -1 0 0 10 0 1 -2 0 0 1 1 -2 0 0 1 -1 2 0 1 1 1 0 -2 0 1 -1 0 2 1 0 0 0 1 j a b #-------- SCATTERING ------------- 0 # no scattering function cloog-parma-0.16.1/cloog-core/test/uday_scalars.cloog0000644000175000017500000000273111321074700017426 00000000000000# Langage: C c # Context (1 parameter) # no constraints on parameters: 1 3 1 0 1 1 # Parameter name(s) n # Statement number: 2 # Iteration domain of statement 1. 1 # 1 domain 4 6 # 4 lines and 6 columns # j l m n cst 1 1 0 0 0 0 # j >= 0 1 -1 0 0 1 0 # j <= N 0 0 1 0 0 0 # l = 0 0 0 0 1 0 0 # m = 0 0 0 0 # For future options. # Iteration domain of statement 2. 1 # 1 domain 4 6 # 4 lines and 6 columns # j l m n cst 1 0 1 0 0 0 # l >= 0 1 0 -1 0 1 0 # l <= N 0 1 0 0 0 0 # j = 0 0 0 0 1 0 0 # m = 0 0 0 0 # For future options. 1 # Iterator name(s) j l m # 1 scattering functions. 2 # First function 4 10 # p1 p2 p3 p4 j l m n cst 0 1 0 0 0 0 0 0 0 0 # p1 = 0 0 0 1 0 0 0 0 0 0 -1 # p2 = 1 0 0 0 1 0 -1 0 0 0 0 # p3 = j 0 0 0 0 1 0 0 0 0 0 # p4 = 0 # Second function 4 10 # p1 p2 p3 p4 j l m n cst 0 1 0 0 0 0 0 0 0 -1 # p1 = 1 0 0 1 0 0 0 0 0 0 0 # p2 = 0 0 0 0 1 0 0 -1 0 0 0 # p3 = l 0 0 0 0 1 0 0 0 0 -1 # p4 = 1 1 # set scattering dimension names manually p1 p2 p3 p4 cloog-parma-0.16.1/cloog-core/test/uday_scalars.c0000644000175000017500000000033611323312273016546 00000000000000/* Generated from ../../../git/cloog/test/uday_scalars.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (n >= 0) { for (p3=0;p3<=n;p3++) { S1(p3,0,0) ; } for (p3=0;p3<=n;p3++) { S2(0,p3,0) ; } } cloog-parma-0.16.1/cloog-core/test/block.good.c0000644000175000017500000000111011321074700016102 00000000000000/* Generated from /home/skimo/git/cloog/test/block.cloog by CLooG 0.14.0-170-g72daac3 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1() { hash(1); } #define S2() { hash(2); } #define S3(i) { hash(3); hash(i); } void test() { /* Scattering iterators. */ int c1; /* Original iterators. */ int i; S1(); S3(0); S2(); S3(1); } cloog-parma-0.16.1/cloog-core/test/generate_test.c0000644000175000017500000000616411321074700016730 00000000000000#include #include /* Generate code that scans part of the parameter domain of * a given cloog problem, running both a function called "good" * and a function called "test" for each value of the parameters. * These functions are assumed to call the "hash" function, * which is also generated by this program. * If for any given value of the parameters, the final hash * value computed by test is different from that computed by * good, then an error is reported. */ CloogDomain *get_param_domain(CloogOptions *options) { CloogDomain *domain; CloogProgram *program; program = cloog_program_read(stdin, options); domain = cloog_domain_copy(program->context); cloog_program_free(program); return cloog_domain_from_context(domain); } static const char preamble[] = "#include \n" "#include \n" "\n" "static unsigned h;\n" "\n" "void hash(int v)\n" "{\n" " int i;\n" " union u {\n" " int v;\n" " unsigned char c[1];\n" " } u;\n" " u.v = v;\n" " for (i = 0; i < sizeof(int); ++i) {\n" " h *= 16777619;\n" " h ^= u.c[i];\n" " }\n" "}\n" "\n" "int main()\n" "{\n" " unsigned h_good, h_test;\n"; ; static const char postamble[] = " return 0;\n" "}\n" ; static const char *call[] = {"good", "test"}; int main() { int dim; int range; int i, j; CloogState *state = cloog_state_malloc(); CloogOptions *options = cloog_options_malloc(state); CloogDomain *domain; CloogDomain *cube, *tmp; CloogProgram *p; CloogStatement *statement; cloog_int_t m, M; options->quiet = 1; domain = get_param_domain(options); dim = cloog_domain_dimension(domain); if (dim >= 8) range = 4; else if (dim >= 5) range = 6; else range = 30; cloog_int_init(m); cloog_int_init(M); cloog_int_set_si(m, 0); cloog_int_set_si(M, range); cube = cloog_domain_cube(state, dim, m, M); domain = cloog_domain_intersection(tmp = domain, cube); cloog_domain_free(tmp); cloog_domain_free(cube); p = cloog_program_malloc(); assert(p); p->names = cloog_names_malloc(); assert(p->names); p->names->nb_iterators = dim; p->names->iterators = cloog_names_generate_items(dim, "p", 0); p->language = 'c'; p->context = cloog_domain_universe(state, 0); statement = cloog_statement_alloc(state, 1); p->loop = cloog_loop_malloc(state); p->loop->domain = domain; p->loop->block = cloog_block_alloc(statement, 0, NULL, dim); p->blocklist = cloog_block_list_alloc(p->loop->block); p = cloog_program_generate(p, options); printf("%s", preamble); for (i = 0; i < dim; ++i) printf("\tint %s;\n", p->names->iterators[i]); printf("#define S1("); for (i = 0; i < dim; ++i) { if (i) printf(","); printf("p%d", i); } printf(") do {"); for (j = 0; j < 2; ++j) { printf(" h = 2166136261u;"); printf(" %s(", call[j]); for (i = 0; i < dim; ++i) { if (i) printf(", "); printf("p%d", i); } printf(");"); printf(" h_%s = h;", call[j]); } printf(" assert(h_good == h_test);"); printf(" } while (0)\n"); cloog_program_pprint(stdout, p, options); printf("%s", postamble); cloog_int_clear(m); cloog_int_clear(M); cloog_program_free(p); cloog_options_free(options); cloog_state_free(state); return 0; } cloog-parma-0.16.1/cloog-core/test/reservoir/0000755000175000017500000000000011511607626016036 500000000000000cloog-parma-0.16.1/cloog-core/test/reservoir/pingali1.cloog0000755000175000017500000000337011321074700020503 00000000000000# Language c # Context 1 4 1 0 0 1 0 # Number of statments 2 1 # { (i,j,k,l,m) | i-1 >= 0, -i+l >= 0, -j+m >= 0, k-1 >= 0, j-k-1 >= 0, 1 >= 0 } 6 7 1 1 0 0 0 0 -1 1 -1 0 0 1 0 0 1 0 -1 0 0 1 0 1 0 0 1 0 0 -1 1 0 1 -1 0 0 -1 1 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+l >= 0, 1 >= 0 } 5 6 1 1 0 0 0 -1 1 -1 0 1 0 0 1 0 1 0 0 -1 1 0 -1 0 1 0 1 0 0 0 0 1 0 0 0 0 # Scattering functions 2 8 14 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 8 13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/two.cloog0000644000175000017500000000045411321074700017605 00000000000000# Scan # D = { (i, j, k) | 0 <= i < 10, 1 <= j < 20, 2i + 3j = k, i + j + 3 = 3k } # # language: C c # parameter (none) 1 2 1 1 0 1 # Number of statements 1 6 5 # i j k 1 1 1 0 0 0 1 -1 0 0 10 1 0 1 0 -1 1 0 -1 0 20 0 2 3 -1 0 0 1 1 -1 3 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/reservoir/pingali6.good.c0000644000175000017500000000235711321074700020557 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/pingali6.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.03s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } void test(int M, int N) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; if (N >= 3) { for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { S1(1,c4,c6) ; } } } if (N >= 3) { for (c2=3;c2<=2*M;c2++) { for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { if (c2%2 == 0) { S1(c2/2,c4,c6) ; } } } for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { if ((c2+1)%2 == 0) { i = (c2-1)/2 ; S2((c2-1)/2,c4,c6) ; } } } } } if (N >= 3) { c2 = 2*M+1 ; for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { S2(M,c4,c6) ; } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/mg-psinv.good.c0000644000175000017500000000336511321074700020606 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/mg-psinv.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.05s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } #define S3(i,j,k) { hash(3); hash(i); hash(j); hash(k); } void test(int M, int N, int O) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; if ((M >= 3) && (N >= 4)) { for (c2=2;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S1(c2,2,c6) ; S2(c2,2,c6) ; } for (c4=4;c4<=2*N-3;c4++) { for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { j = (c4+1)/2 ; S1(c2,(c4+1)/2,c6) ; S2(c2,(c4+1)/2,c6) ; } } for (c6=2;c6<=M-1;c6++) { if (c4%2 == 0) { S3(c2,c4/2,c6) ; } } } c4 = 2*N-2 ; for (c6=2;c6<=M-1;c6++) { j = N-1 ; S3(c2,N-1,c6) ; } } } if ((M >= 3) && (N == 3)) { for (c2=2;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S1(c2,2,c6) ; S2(c2,2,c6) ; } for (c6=2;c6<=M-1;c6++) { S3(c2,2,c6) ; } } } if ((M >= 1) && (M <= 2) && (N >= 3)) { for (c2=2;c2<=O-1;c2++) { for (c4=3;c4<=2*N-3;c4++) { for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { j = (c4+1)/2 ; S1(c2,(c4+1)/2,c6) ; S2(c2,(c4+1)/2,c6) ; } } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam1.cloog0000644000175000017500000000174311321074700020407 00000000000000# Language c # Context 1 2 1 1 0 # Number of statments 2 1 # { (i,j) | i-1 >= 0, -i+100 >= 0, j-1 >= 0, -j+100 >= 0 } 4 4 1 1 0 -1 1 -1 0 100 1 0 1 -1 1 0 -1 100 0 0 0 1 # { (i,j) | i-1 >= 0, -i+100 >= 0, j-1 >= 0, -j+100 >= 0 } 4 4 1 1 0 -1 1 -1 0 100 1 0 1 -1 1 0 -1 100 0 0 0 0 # Scattering functions 2 6 9 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 -2 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 6 9 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 1 -1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 -2 1 0 0 0 0 0 1 0 0 -1 1 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam5.c0000644000175000017500000000057611323312273017537 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam5.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (M >= 1) { for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S2(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S3(c2,c4) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/jacobi2.c0000644000175000017500000000030311323312273017417 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/jacobi2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (c2=0;c2<=M-1;c2++) { for (c4=0;c4<=M-1;c4++) { S1(c2,c4) ; } } cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam3.good.c0000644000175000017500000000335411321074700020457 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam3.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.04s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j) { hash(3); hash(i); hash(j); } #define S4(i) { hash(4); hash(i); } void test(int M) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; for (c2=5;c2<=min(5*M,8);c2++) { if (c2%5 == 0) { S4(c2/5) ; } } for (c2=9;c2<=min(13,5*M-1);c2++) { for (c4=max(1,ceild(c2-M-3,4));c4<=floord(c2-4,5);c4++) { i = c2-4*c4-3 ; S2(c2-4*c4-3,c4) ; } if (c2%5 == 0) { S4(c2/5) ; } for (c4=max(1,ceild(c2-3*M-1,2));c4<=floord(c2-4,5);c4++) { if ((c2+c4+2)%3 == 0) { i = (c2-2*c4-1)/3 ; S3((c2-2*c4-1)/3,c4) ; } } } for (c2=14;c2<=5*M-1;c2++) { for (c4=max(2,ceild(c2-M-3,4));c4<=min(M-1,floord(c2-8,3));c4++) { for (c6=max(1,ceild(c2-2*c4-M-5,2));c6<=min(c4-1,floord(c2-3*c4-6,2));c6++) { i = c2-2*c4-2*c6-5 ; S1(c2-2*c4-2*c6-5,c4,c6) ; } } for (c4=max(ceild(c2-M-3,4),1);c4<=floord(c2-4,5);c4++) { i = c2-4*c4-3 ; S2(c2-4*c4-3,c4) ; } if (c2%5 == 0) { S4(c2/5) ; } for (c4=max(ceild(c2-3*M-1,2),1);c4<=floord(c2-4,5);c4++) { if ((c2+c4+2)%3 == 0) { i = (c2-2*c4-1)/3 ; S3((c2-2*c4-1)/3,c4) ; } } } if (M >= 2) { c2 = 5*M ; S4(M) ; } } cloog-parma-0.16.1/cloog-core/test/reservoir/mg-resid.c0000644000175000017500000000162111406126537017631 00000000000000/* Generated from /home/skimo/git/cloog/test/./reservoir/mg-resid.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.03s. */ if ((M >= 1) && (N >= 3) && (O >= 3)) { if (M >= 3) { for (c2=2;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S1(c2,2,c6); S2(c2,2,c6); } for (c4=4;c4<=2*N-3;c4++) { for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { S1(c2,(c4+1)/2,c6); S2(c2,(c4+1)/2,c6); } } for (c6=2;c6<=M-1;c6++) { if (c4%2 == 0) { S3(c2,c4/2,c6); } } } for (c6=2;c6<=M-1;c6++) { S3(c2,N-1,c6); } } } if (M <= 2) { for (c2=2;c2<=O-1;c2++) { for (c4=3;c4<=2*N-3;c4++) { for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { S1(c2,(c4+1)/2,c6); S2(c2,(c4+1)/2,c6); } } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/QR.c0000644000175000017500000000404611323312273016440 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/QR.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.21s. */ if (N >= 1) { S1(0) ; if ((M >= 1) && (N == 1)) { for (c4=0;c4<=M-1;c4++) { S2(0,c4) ; } S3(0) ; for (c4=0;c4<=M-1;c4++) { S4(0,c4) ; } S10(0) ; S5(0) ; } if ((M <= 0) && (N == 1)) { S3(0) ; S10(0) ; S5(0) ; } if ((M >= 1) && (N >= 2)) { for (c4=0;c4<=M-1;c4++) { S2(0,c4) ; } S3(0) ; for (c4=0;c4<=M-1;c4++) { S4(0,c4) ; } S10(0) ; S1(1) ; S5(0) ; } if ((M <= 0) && (N >= 2)) { S3(0) ; S10(0) ; S1(1) ; S5(0) ; } for (c2=2;c2<=min(M,N-1);c2++) { for (c4=c2-1;c4<=N-1;c4++) { S6(c2-2,c4) ; for (c6=c2-2;c6<=M-1;c6++) { S7(c2-2,c4,c6) ; } S8(c2-2,c4) ; for (c6=c2-2;c6<=M-1;c6++) { S9(c2-2,c4,c6) ; } } for (c4=c2-1;c4<=M-1;c4++) { S2(c2-1,c4) ; } S3(c2-1) ; for (c4=c2-1;c4<=M-1;c4++) { S4(c2-1,c4) ; } S10(c2-1) ; S1(c2) ; S5(c2-1) ; } if ((M >= 1) && (M <= N-2)) { for (c4=M;c4<=N-1;c4++) { S6(M-1,c4) ; S7(M-1,c4,M-1) ; S8(M-1,c4) ; S9(M-1,c4,M-1) ; } S3(M) ; S10(M) ; S1(M+1) ; S5(M) ; } for (c2=max(2,M+2);c2<=N-1;c2++) { for (c4=c2-1;c4<=N-1;c4++) { S6(c2-2,c4) ; S8(c2-2,c4) ; } S3(c2-1) ; S10(c2-1) ; S1(c2) ; S5(c2-1) ; } if ((M >= N) && (N >= 2)) { S6(N-2,N-1) ; for (c6=N-2;c6<=M-1;c6++) { S7(N-2,N-1,c6) ; } S8(N-2,N-1) ; for (c6=N-2;c6<=M-1;c6++) { S9(N-2,N-1,c6) ; } for (c4=N-1;c4<=M-1;c4++) { S2(N-1,c4) ; } S3(N-1) ; for (c4=N-1;c4<=M-1;c4++) { S4(N-1,c4) ; } S10(N-1) ; S5(N-1) ; } if ((M == N-1) && (M >= 1)) { S6(M-1,M) ; S7(M-1,M,M-1) ; S8(M-1,M) ; S9(M-1,M,M-1) ; S3(M) ; S10(M) ; S5(M) ; } if ((M <= N-2) && (N >= 2)) { S6(N-2,N-1) ; S8(N-2,N-1) ; S3(N-1) ; S10(N-1) ; S5(N-1) ; } } cloog-parma-0.16.1/cloog-core/test/reservoir/stride2.c0000644000175000017500000000027211323312273017467 00000000000000/* Generated from ../../../git/cloog/test/reservoir/stride2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ if (M >= 0) { for (c2=2;c2<=M;c2+=7) { S1(c2,(c2-2)/7) ; } } cloog-parma-0.16.1/cloog-core/test/reservoir/jacobi2.good.c0000644000175000017500000000115111321074700020346 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/jacobi2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } void test(int M) { /* Scattering iterators. */ int c2, c4; /* Original iterators. */ int i, j; for (c2=0;c2<=M-1;c2++) { for (c4=0;c4<=M-1;c4++) { S1(c2,c4) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/jacobi3.c0000644000175000017500000000120111323312273017416 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/jacobi3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ if ((M >= 1) && (N >= 3)) { for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { S1(1,c4,c6) ; } } for (c2=3;c2<=2*M;c2++) { for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { if (c2%2 == 0) { S1(c2/2,c4,c6) ; } } } for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { if ((c2+1)%2 == 0) { S2((c2-1)/2,c4,c6) ; } } } } for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { S2(M,c4,c6) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/two.good.c0000644000175000017500000000115511321074700017652 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/two.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } void test() { /* Original iterators. */ int i, j, k; for (i=0;i<=1;i++) { if ((i+1)%2 == 0) { j = (-i+3)/2 ; k = (i+9)/2 ; S1(i,(-i+3)/2,(i+9)/2) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/pingali4.c0000644000175000017500000000041011323312273017614 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/pingali4.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S2(c2,c4) ; } } cloog-parma-0.16.1/cloog-core/test/reservoir/pingali4.cloog0000755000175000017500000000223611321074700020506 00000000000000# Language c # Context 2 3 1 1 -2 1 0 1 0 # Number of statments 2 1 # { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 } 5 5 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -1 1 0 -1 1 0 1 0 0 0 1 0 0 0 1 # { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 } 5 5 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -1 1 0 -1 1 0 1 0 0 0 1 0 0 0 0 # Scattering functions 2 6 10 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 6 10 0 1 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/pingali3.c0000644000175000017500000000052711323312273017624 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/pingali3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (M >= 1) { for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { for (c6=1;c6<=M;c6++) { S2(c2,c4,c6) ; } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam6.c0000644000175000017500000000045411323312273017533 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam6.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (M >= 1) { for (c2=0;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=0;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S2(c4,c2) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/pingali4.good.c0000644000175000017500000000134711321074700020553 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/pingali4.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M) { /* Scattering iterators. */ int c2, c4; /* Original iterators. */ int i, j; for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S2(c2,c4) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/liu-zhuge1.cloog0000755000175000017500000000350411321074700020770 00000000000000# Language c # Context 1 4 1 0 0 1 0 # Number of statments 3 1 # { (i,j,k,l) | i >= 0, -i+k >= 0, j >= 0, -j+l >= 0, 1 >= 0 } 5 6 1 1 0 0 0 0 1 -1 0 1 0 0 1 0 1 0 0 0 1 0 -1 0 1 0 1 0 0 0 0 1 0 0 0 1 # { (i,j,k,l) | i >= 0, -i+k >= 0, j >= 0, -j+l >= 0, 1 >= 0 } 5 6 1 1 0 0 0 0 1 -1 0 1 0 0 1 0 1 0 0 0 1 0 -1 0 1 0 1 0 0 0 0 1 0 0 0 1 # { (i,j,k,l) | i >= 0, -i+k >= 0, j >= 0, -j+l >= 0, 1 >= 0 } 5 6 1 1 0 0 0 0 1 -1 0 1 0 0 1 0 1 0 0 0 1 0 -1 0 1 0 1 0 0 0 0 1 0 0 0 0 # Scattering functions 3 6 11 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -3 -1 0 0 4 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 6 11 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -3 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 6 11 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -3 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/fusion2.cloog0000755000175000017500000000240511321074700020362 00000000000000# Language c # Context 1 4 1 0 0 1 0 # Number of statments 2 1 # { (i,j,k,l) | i-1 >= 0, -i+l >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 } 5 6 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 1 0 0 1 0 0 0 0 1 0 0 0 1 # { (i,j,k,l) | i-1 >= 0, -i+l >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 } 5 6 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 1 0 0 1 0 0 0 0 1 0 0 0 0 # Scattering functions 2 6 11 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 6 11 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/mg-interp2.cloog0000755000175000017500000001370711321074700020770 00000000000000# Language c # Context 1 11 1 0 0 0 0 0 0 0 0 0 1 0 # Number of statments 4 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-p >= 0, -j+m-1 >= 0, k-o >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 -1 0 0 0 0 0 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-p >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 -1 0 0 0 0 0 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-o >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 # Scattering functions 4 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam2.c0000644000175000017500000000054311323312273017526 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ for (c2=1;c2<=M;c2++) { S1(c2) ; } if (N >= 2) { for (c2=1;c2<=M;c2++) { for (c4=2;c4<=N;c4++) { S2(c2,c4) ; } } } if (N >= 2) { for (c2=1;c2<=M;c2++) { for (c4=1;c4<=N-1;c4++) { S3(c2,c4) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/pingali5.good.c0000644000175000017500000000231011321074700020543 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/pingali5.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.03s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j,k) { hash(3); hash(i); hash(j); hash(k); } void test(int M) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; for (c2=3;c2<=2*M-3;c2++) { for (c4=ceild(c2+3,2);c4<=M;c4++) { for (i=ceild(c2+1,2);i<=min(c4-1,c2-1);i++) { j = c2-i ; S1(i,c2-i,c4) ; } } for (c4=max(1,c2-M);c4<=floord(c2-1,2);c4++) { i = c2-c4 ; S2(c2-c4,c4) ; } for (c4=ceild(c2+3,2);c4<=M;c4++) { for (i=ceild(c2+1,2);i<=min(c4-1,c2-1);i++) { j = c2-i ; S3(i,c2-i,c4) ; } } } for (c2=max(2*M-2,3);c2<=2*M-1;c2++) { for (c4=max(1,c2-M);c4<=floord(c2-1,2);c4++) { i = c2-c4 ; S2(c2-c4,c4) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/loechner4.c0000644000175000017500000000051611323312273017777 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/loechner4.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ if (M >= 1) { for (c2=2;c2<=2*M;c2++) { for (c4=1;c4<=M;c4++) { for (c6=1;c6<=M;c6++) { for (c8=max(1,c2-M);c8<=min(M,c2-1);c8++) { S1(c6,c4,c8,c2-c8) ; } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam3.c0000644000175000017500000000144311477113144017535 00000000000000/* Generated from ../../../git/cloog/test/reservoir/lim-lam3.cloog by CLooG 0.14.0-333-g4442dac gmp bits in 0.03s. */ S4(1); for (c2=9;c2<=min(13,5*M-1);c2++) { if (c2 <= M+7) { S2(c2-7,1); } if (c2 == 10) { S4(2); } if (c2%3 == 0) { S3((c2-3)/3,1); } } if (M == 2) { S4(2); } for (c2=14;c2<=5*M-1;c2++) { for (c4=max(2,ceild(c2-M-3,4));c4<=min(floord(c2-8,3),M-1);c4++) { for (c6=max(1,ceild(c2-2*c4-M-5,2));c6<=min(floord(c2-3*c4-6,2),c4-1);c6++) { S1(c2-2*c4-2*c6-5,c4,c6); } } for (c4=max(1,ceild(c2-M-3,4));c4<=floord(c2-4,5);c4++) { S2(c2-4*c4-3,c4); } if (c2%5 == 0) { S4(c2/5); } for (c4=max(1,ceild(c2-3*M-1,2));c4<=floord(c2-4,5);c4++) { if ((c2+c4+2)%3 == 0) { S3((c2-2*c4-1)/3,c4); } } } if (M >= 3) { S4(M); } cloog-parma-0.16.1/cloog-core/test/reservoir/fusion1.c0000644000175000017500000000034611323312273017501 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/fusion1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (c2=0;c2<=M;c2++) { S1(c2) ; } for (c2=1;c2<=M;c2++) { S2(c2) ; } for (c2=0;c2<=M;c2++) { S3(c2) ; } cloog-parma-0.16.1/cloog-core/test/reservoir/pingali6.c0000644000175000017500000000116411323312273017625 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/pingali6.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.04s. */ if (N >= 3) { for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { S1(1,c4,c6) ; } } for (c2=3;c2<=2*M;c2++) { for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { if (c2%2 == 0) { S1(c2/2,c4,c6) ; } } } for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { if ((c2+1)%2 == 0) { S2((c2-1)/2,c4,c6) ; } } } } for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { S2(M,c4,c6) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/pingali1.c0000644000175000017500000000075511323312273017625 00000000000000/* Generated from /home/skimo/git/cloog/test/./reservoir/pingali1.cloog by CLooG 0.14.0-225-g6e2d019 gmp bits in 0.01s. */ if ((M >= 1) && (N >= 1)) { if (N >= 2) { for (c2=1;c2<=M;c2++) { S2(c2,1); for (c4=3;c4<=2*N-1;c4++) { for (c6=max(1,c4-N);c6<=floord(c4-1,2);c6++) { S1(c2,c4-c6,c6); } if ((c4+1)%2 == 0) { S2(c2,(c4+1)/2); } } } } if (N == 1) { for (c2=1;c2<=M;c2++) { S2(c2,1); } } } cloog-parma-0.16.1/cloog-core/test/reservoir/jacobi3.good.c0000644000175000017500000000241211321074700020350 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/jacobi3.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.03s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } void test(int M, int N) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; if ((M >= 1) && (N >= 3)) { for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { S1(1,c4,c6) ; } } } if (N >= 3) { for (c2=3;c2<=2*M;c2++) { for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { if (c2%2 == 0) { S1(c2/2,c4,c6) ; } } } for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { if ((c2+1)%2 == 0) { i = (c2-1)/2 ; S2((c2-1)/2,c4,c6) ; } } } } } if ((M >= 1) && (N >= 3)) { c2 = 2*M+1 ; for (c4=2;c4<=N-1;c4++) { for (c6=2;c6<=N-1;c6++) { S2(M,c4,c6) ; } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/pingali2.cloog0000755000175000017500000000221611321074700020502 00000000000000# Language c # Context 1 3 1 0 1 0 # Number of statments 2 1 # { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 } 5 5 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -1 1 0 -1 1 0 1 0 0 0 1 0 0 0 1 # { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 } 5 5 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -1 1 0 -1 1 0 1 0 0 0 1 0 0 0 0 # Scattering functions 2 6 10 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 6 10 0 1 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/pingali5.cloog0000755000175000017500000000445511321074700020514 00000000000000# Language c # Context 1 3 1 0 1 0 # Number of statments 3 1 # { (i,j,k,l) | j-1 >= 0, i-j-1 >= 0, -i+k-1 >= 0, -k+l >= 0, 1 >= 0 } 5 6 1 0 1 0 0 -1 1 1 -1 0 0 -1 1 -1 0 1 0 -1 1 0 0 -1 1 0 1 0 0 0 0 1 0 0 0 1 # { (i,j,k) | -i+k >= 0, j-1 >= 0, i-j-1 >= 0, 1 >= 0 } 4 5 1 -1 0 1 0 1 0 1 0 -1 1 1 -1 0 -1 1 0 0 0 1 0 0 0 1 # { (i,j,k,l) | j-1 >= 0, i-j-1 >= 0, -i+k-1 >= 0, -k+l >= 0, 1 >= 0 } 5 6 1 0 1 0 0 -1 1 1 -1 0 0 -1 1 -1 0 1 0 -1 1 0 0 -1 1 0 1 0 0 0 0 1 0 0 0 0 # Scattering functions 3 8 13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 8 12 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 8 13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -2 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/cholesky2.c0000644000175000017500000000127611406126537020033 00000000000000/* Generated from ../../../git/cloog/test/reservoir/cholesky2.cloog by CLooG 0.14.0-283-g7c18f7a gmp bits in 0.04s. */ if (M >= 1) { if (M >= 2) { S1(1); } for (c2=2;c2<=min(3,M);c2++) { S2(1,c2); } if (M == 1) { S1(1); } for (c2=4;c2<=3*M-4;c2++) { if ((c2+1)%3 == 0) { S1((c2+1)/3); } for (c4=ceild(c2+2,3);c4<=min(M,c2-2);c4++) { for (c6=ceild(c2-c4+2,2);c6<=min(c4,c2-c4);c6++) { S3(c2-c4-c6+1,c4,c6); } } for (c4=ceild(c2+4,3);c4<=min(M,c2);c4++) { if ((c2+c4)%2 == 0) { S2((c2-c4+2)/2,c4); } } } for (c2=max(2*M,3*M-3);c2<=3*M-2;c2++) { S3(c2-2*M+1,M,M); } if (M >= 2) { S1(M); } } cloog-parma-0.16.1/cloog-core/test/reservoir/pingali2.c0000644000175000017500000000045411323312273017622 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/pingali2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ if (M >= 1) { for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S2(c2,c4) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/tang-xue1.c0000644000175000017500000000071711323312273017730 00000000000000/* Generated from ../../../git/cloog/test/reservoir/tang-xue1.cloog by CLooG 0.14.0-165-g01eb246 gmp bits in 0.01s. */ for (c2=0;c2<=9;c2++) { for (c4=max(-1,c2-9);c4<=min(4,c2+3);c4++) { for (c6=max(max(1,c2),c2-c4);c6<=min(min(9,c2+1),c2-c4+4);c6++) { for (c8=max(1,-c2+c4+c6);c8<=min(4,-c2+c4+c6+1);c8++) { if (c2%2 == 0) { if (c4%2 == 0) { S1(c2/2,(-c2+c4)/2,-c2+c6,-c4+c8); } } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/fusion1.cloog0000755000175000017500000000166511321074700020370 00000000000000# Language c # Context 2 3 1 1 -1 1 0 1 0 # Number of statments 3 1 # { (i,j) | i >= 0, -i+j >= 0, 1 >= 0 } 3 4 1 1 0 0 1 -1 1 0 1 0 0 1 0 0 0 1 # { (i,j) | i-1 >= 0, -i+j >= 0, 1 >= 0 } 3 4 1 1 0 -1 1 -1 1 0 1 0 0 1 0 0 0 1 # { (i,j) | i >= 0, -i+j >= 0, 1 >= 0 } 3 4 1 1 0 0 1 -1 1 0 1 0 0 1 0 0 0 0 # Scattering functions 3 4 7 0 1 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 4 7 0 1 0 0 0 0 -1 0 0 1 0 -1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 4 7 0 1 0 0 0 0 -2 0 0 1 0 -1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/stride.cloog0000644000175000017500000000122511321074700020263 00000000000000# # Stride-bug: # # for (i = 2; i <= N; i+=7) { # S(i); # # becomes: # # for (i = 5; i <= N; i+=7) { # S(i); # Language c # Context 1 3 1 0 1 0 # Number of statements 1 1 4 5 0 1 -7 0 -2 1 1 0 0 -2 1 -1 0 1 0 1 0 0 0 1 0 0 0 0 # Scattering functions 1 6 10 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/mg-rprj3.cloog0000755000175000017500000001437511321074700020447 00000000000000# Language c # Context 1 8 1 0 0 0 0 0 0 1 0 # Number of statments 5 1 # { (i,j,k,l,m,n,o,p,q) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l >= 0, 1 >= 0 } 7 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 -2 1 0 -1 0 0 1 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 -2 1 0 0 -1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l >= 0, 1 >= 0 } 7 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 -2 1 0 -1 0 0 1 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 -2 1 0 0 -1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 -2 1 0 -1 0 0 1 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 -2 1 0 0 -1 1 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 -2 1 0 -1 0 0 1 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 -2 1 0 0 -1 1 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 11 1 1 0 0 0 0 0 0 0 0 -2 1 -1 0 0 0 0 1 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 -2 1 0 -1 0 0 1 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 -2 1 0 0 -1 1 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 # Scattering functions 5 8 18 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 18 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 18 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 18 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 18 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam6.good.c0000644000175000017500000000144311321074700020457 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam6.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M) { /* Scattering iterators. */ int c2, c4; /* Original iterators. */ int i, j; if (M >= 1) { for (c2=0;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } } if (M >= 1) { for (c2=0;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S2(c4,c2) ; } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/mg-interp2.good.c0000644000175000017500000000274211321074700021030 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/mg-interp2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.07s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } #define S3(i,j,k) { hash(3); hash(i); hash(j); hash(k); } #define S4(i,j,k) { hash(4); hash(i); hash(j); hash(k); } void test(int M, int N, int O, int P, int Q, int R, int S, int T, int U) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; if ((M >= P+1) && (N >= Q+1)) { for (c2=1;c2<=O-1;c2++) { for (c4=Q;c4<=N-1;c4++) { for (c6=P;c6<=M-1;c6++) { S1(c2,c4,c6) ; } } } } if ((M >= 2) && (N >= Q+1)) { for (c2=1;c2<=O-1;c2++) { for (c4=Q;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S2(c2,c4,c6) ; } } } } if ((M >= P+1) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=P;c6<=M-1;c6++) { S3(c2,c4,c6) ; } } } } if ((M >= 2) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S4(c2,c4,c6) ; } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/mg-resid.good.c0000644000175000017500000000336511321074700020555 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/mg-resid.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.05s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } #define S3(i,j,k) { hash(3); hash(i); hash(j); hash(k); } void test(int M, int N, int O) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; if ((M >= 3) && (N >= 4)) { for (c2=2;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S1(c2,2,c6) ; S2(c2,2,c6) ; } for (c4=4;c4<=2*N-3;c4++) { for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { j = (c4+1)/2 ; S1(c2,(c4+1)/2,c6) ; S2(c2,(c4+1)/2,c6) ; } } for (c6=2;c6<=M-1;c6++) { if (c4%2 == 0) { S3(c2,c4/2,c6) ; } } } c4 = 2*N-2 ; for (c6=2;c6<=M-1;c6++) { j = N-1 ; S3(c2,N-1,c6) ; } } } if ((M >= 3) && (N == 3)) { for (c2=2;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S1(c2,2,c6) ; S2(c2,2,c6) ; } for (c6=2;c6<=M-1;c6++) { S3(c2,2,c6) ; } } } if ((M >= 1) && (M <= 2) && (N >= 3)) { for (c2=2;c2<=O-1;c2++) { for (c4=3;c4<=2*N-3;c4++) { for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { j = (c4+1)/2 ; S1(c2,(c4+1)/2,c6) ; S2(c2,(c4+1)/2,c6) ; } } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam2.good.c0000644000175000017500000000157311321074700020457 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j) { hash(3); hash(i); hash(j); } void test(int M, int N) { /* Scattering iterators. */ int c2, c4; /* Original iterators. */ int i, j; for (c2=1;c2<=M;c2++) { S1(c2) ; } if (N >= 2) { for (c2=1;c2<=M;c2++) { for (c4=2;c4<=N;c4++) { S2(c2,c4) ; } } } if (N >= 2) { for (c2=1;c2<=M;c2++) { for (c4=1;c4<=N-1;c4++) { S3(c2,c4) ; } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/mg-interp.cloog0000755000175000017500000005362211321074700020706 00000000000000# Language c # Context 1 11 1 0 0 0 0 0 0 0 0 0 1 0 # Number of statments 15 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-1 >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 0 0 0 0 -1 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-q >= 0, -i+n-1 >= 0, j-p >= 0, -j+m-1 >= 0, k-o >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 -1 0 0 0 0 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 -1 0 0 0 0 0 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-q >= 0, -i+n-1 >= 0, j-p >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 -1 0 0 0 0 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 -1 0 0 0 0 0 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-q >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-o >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 -1 0 0 0 0 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n,o,p,q,r,s,t) | i-q >= 0, -i+n-1 >= 0, j-1 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 14 1 1 0 0 0 0 0 0 0 -1 0 0 0 0 1 -1 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 1 0 0 0 0 0 0 0 0 0 0 -1 1 0 -1 0 0 1 0 0 0 0 0 0 0 -1 1 0 0 1 0 0 0 0 0 0 0 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 # Scattering functions 15 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -5 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -6 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 21 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam1.c0000644000175000017500000000077611406126537017545 00000000000000/* Generated from /home/skimo/git/cloog/test/./reservoir/lim-lam1.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.01s. */ S1(1,100); for (c2=-98;c2<=99;c2++) { if (c2 <= 0) { S1(1,-c2+1); } if (c2 >= 1) { S2(c2,1); } for (c4=max(2,-2*c2+3);c4<=min(199,-2*c2+200);c4++) { if (c4%2 == 0) { S1((2*c2+c4)/2,c4/2); } if ((c4+1)%2 == 0) { S2((2*c2+c4-1)/2,(c4+1)/2); } } if (c2 <= 0) { S1(c2+100,100); } if (c2 >= 1) { S2(100,-c2+101); } } S2(100,1); cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam4.cloog0000755000175000017500000000333111321074700020410 00000000000000# Language c # Context 1 3 1 0 1 0 # Number of statments 2 1 # { (i,j,k,l) | i-1 >= 0, -i+l-1 >= 0, j >= 0, k >= 0, -j-k+l-1 >= 0, 1 >= 0 } 6 6 1 1 0 0 0 -1 1 -1 0 0 1 -1 1 0 1 0 0 0 1 0 0 1 0 0 1 0 -1 -1 1 -1 1 0 0 0 0 1 0 0 0 1 # { (i,j,k,l) | i-1 >= 0, -i+l-1 >= 0, j >= 0, -j+k-1 >= 0, -k+l-1 >= 0, 1 >= 0 } 6 6 1 1 0 0 0 -1 1 -1 0 0 1 -1 1 0 1 0 0 0 1 0 -1 1 0 -1 1 0 0 -1 1 -1 1 0 0 0 0 1 0 0 0 0 # Scattering functions 2 8 13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 8 13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/tang-xue1.good.c0000644000175000017500000000200111321074700020641 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/tang-xue1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.02s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k,l) { hash(1); hash(i); hash(j); hash(k); hash(l); } void test() { /* Scattering iterators. */ int c2, c4, c6, c8; /* Original iterators. */ int i, j, k, l; for (c2=0;c2<=9;c2++) { for (c4=max(-1,c2-9);c4<=min(4,c2+3);c4++) { for (c6=max(max(c2,1),c2-c4);c6<=min(min(c2+1,9),c2-c4+4);c6++) { for (c8=max(1,-c2+c4+c6);c8<=min(4,-c2+c4+c6+1);c8++) { if (c2%2 == 0) { if ((c2+c4)%2 == 0) { j = (-c2+c4)/2 ; k = -c2+c6 ; l = -c4+c8 ; S1(c2/2,(-c2+c4)/2,-c2+c6,-c4+c8) ; } } } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/mg-rprj3.good.c0000644000175000017500000000706211321074700020505 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/mg-rprj3.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.39s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } #define S3(i,j,k) { hash(3); hash(i); hash(j); hash(k); } #define S4(i,j,k) { hash(4); hash(i); hash(j); hash(k); } #define S5(i,j,k) { hash(5); hash(i); hash(j); hash(k); } void test(int M, int N, int O, int P, int Q, int R) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; if ((M >= 4) && (N >= 4)) { for (c2=2;c2<=O-1;c2++) { for (c6=2;c6<=M;c6++) { S1(c2,2,c6) ; } for (c4=3;c4<=N-1;c4++) { for (c6=2;c6<=M;c6++) { j = c4-1 ; S2(c2,c4-1,c6) ; } j = c4-1 ; S4(c2,c4-1,2) ; for (c6=2;c6<=M-2;c6++) { j = c4-1 ; S3(c2,c4-1,c6) ; j = c4-1 ; S5(c2,c4-1,c6) ; j = c4-1 ; k = c6+1 ; S4(c2,c4-1,c6+1) ; } c6 = M-1 ; j = c4-1 ; k = M-1 ; S3(c2,c4-1,M-1) ; j = c4-1 ; k = M-1 ; S5(c2,c4-1,M-1) ; for (c6=2;c6<=M;c6++) { S1(c2,c4,c6) ; } } for (c6=2;c6<=M;c6++) { j = N-1 ; S2(c2,N-1,c6) ; } j = N-1 ; S4(c2,N-1,2) ; for (c6=2;c6<=M-2;c6++) { j = N-1 ; S3(c2,N-1,c6) ; j = N-1 ; S5(c2,N-1,c6) ; j = N-1 ; k = c6+1 ; S4(c2,N-1,c6+1) ; } c6 = M-1 ; j = N-1 ; k = M-1 ; S3(c2,N-1,M-1) ; j = N-1 ; k = M-1 ; S5(c2,N-1,M-1) ; } } if ((M >= 4) && (N == 3)) { for (c2=2;c2<=O-1;c2++) { for (c6=2;c6<=M;c6++) { S1(c2,2,c6) ; } for (c6=2;c6<=M;c6++) { S2(c2,2,c6) ; } S4(c2,2,2) ; for (c6=2;c6<=M-2;c6++) { S3(c2,2,c6) ; S5(c2,2,c6) ; k = c6+1 ; S4(c2,2,c6+1) ; } c6 = M-1 ; k = M-1 ; S3(c2,2,M-1) ; k = M-1 ; S5(c2,2,M-1) ; } } if ((M == 3) && (N == 3)) { for (c2=2;c2<=O-1;c2++) { for (c6=2;c6<=3;c6++) { S1(c2,2,c6) ; } for (c6=2;c6<=3;c6++) { S2(c2,2,c6) ; } S4(c2,2,2) ; S3(c2,2,2) ; S5(c2,2,2) ; } } if ((M == 3) && (N >= 4)) { for (c2=2;c2<=O-1;c2++) { for (c6=2;c6<=3;c6++) { S1(c2,2,c6) ; } for (c4=3;c4<=N-1;c4++) { for (c6=2;c6<=3;c6++) { j = c4-1 ; S2(c2,c4-1,c6) ; } j = c4-1 ; S4(c2,c4-1,2) ; j = c4-1 ; S3(c2,c4-1,2) ; j = c4-1 ; S5(c2,c4-1,2) ; for (c6=2;c6<=3;c6++) { S1(c2,c4,c6) ; } } for (c6=2;c6<=3;c6++) { j = N-1 ; S2(c2,N-1,c6) ; } j = N-1 ; S4(c2,N-1,2) ; j = N-1 ; S3(c2,N-1,2) ; j = N-1 ; S5(c2,N-1,2) ; } } if ((M == 2) && (N >= 4)) { for (c2=2;c2<=O-1;c2++) { S1(c2,2,2) ; for (c4=3;c4<=N-1;c4++) { j = c4-1 ; S2(c2,c4-1,2) ; S1(c2,c4,2) ; } j = N-1 ; S2(c2,N-1,2) ; } } if ((M == 2) && (N == 3)) { for (c2=2;c2<=O-1;c2++) { S1(c2,2,2) ; S2(c2,2,2) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam5.cloog0000755000175000017500000000324011321074700020410 00000000000000# Language c # Context 1 3 1 0 1 0 # Number of statments 3 1 # { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 } 5 5 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -1 1 0 -1 1 0 1 0 0 0 1 0 0 0 1 # { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 } 5 5 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -1 1 0 -1 1 0 1 0 0 0 1 0 0 0 1 # { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 } 5 5 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -1 1 0 -1 1 0 1 0 0 0 1 0 0 0 0 # Scattering functions 3 6 10 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 6 10 0 1 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 6 10 0 1 0 0 0 0 0 0 0 -2 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam5.good.c0000644000175000017500000000155011321074700020455 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam5.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j) { hash(3); hash(i); hash(j); } void test(int M) { /* Scattering iterators. */ int c2, c4; /* Original iterators. */ int i, j; for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S2(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S3(c2,c4) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/loechner5.c0000644000175000017500000000046511323312273020003 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/loechner5.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ if (M >= 1) { for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { for (c6=1;c6<=M;c6++) { for (c8=1;c8<=M;c8++) { S1(c4,c6,c2,c8) ; } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/loechner5.good.c0000644000175000017500000000134511321074700020726 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/loechner5.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.02s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k,l) { hash(1); hash(i); hash(j); hash(k); hash(l); } void test(int M) { /* Scattering iterators. */ int c2, c4, c6, c8; /* Original iterators. */ int i, j, k, l; for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { for (c6=1;c6<=M;c6++) { for (c8=1;c8<=M;c8++) { S1(c4,c6,c2,c8) ; } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/mg-interp2.c0000644000175000017500000000153611323312273020103 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/mg-interp2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.11s. */ if (O >= 2) { if ((M >= P+1) && (N >= Q+1)) { for (c2=1;c2<=O-1;c2++) { for (c4=Q;c4<=N-1;c4++) { for (c6=P;c6<=M-1;c6++) { S1(c2,c4,c6) ; } } } } if ((M >= 2) && (N >= Q+1)) { for (c2=1;c2<=O-1;c2++) { for (c4=Q;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S2(c2,c4,c6) ; } } } } if ((M >= P+1) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=P;c6<=M-1;c6++) { S3(c2,c4,c6) ; } } } } if ((M >= 2) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S4(c2,c4,c6) ; } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/pingali3.good.c0000644000175000017500000000144411321074700020550 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/pingali3.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.02s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } void test(int M) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { for (c6=1;c6<=M;c6++) { S2(c2,c4,c6) ; } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/fusion2.c0000644000175000017500000000056711323312273017507 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/fusion2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ if ((M >= 1) && (N >= 1)) { for (c4=1;c4<=M;c4++) { S1(1,c4) ; } for (c2=2;c2<=N;c2++) { for (c4=1;c4<=M;c4++) { S2(c2-1,c4) ; } for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c4=1;c4<=M;c4++) { S2(N,c4) ; } } cloog-parma-0.16.1/cloog-core/test/reservoir/mg-interp.c0000644000175000017500000001006411406126537020025 00000000000000/* Generated from /home/skimo/git/cloog/test/./reservoir/mg-interp.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.30s. */ if ((M >= 2) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S1(c2,1,c6); } if (N == 2) { for (c6=1;c6<=M-1;c6++) { S6(c2,1,c6); S7(c2,1,c6); } } if (N >= 3) { for (c6=1;c6<=M-1;c6++) { S6(c2,1,c6); S7(c2,1,c6); } } if (N == 2) { for (c6=1;c6<=M;c6++) { S3(c2,1,c6); } } if (N == 2) { for (c6=1;c6<=M-1;c6++) { S11(c2,1,c6); } } if (N >= 3) { for (c6=1;c6<=M;c6++) { S3(c2,1,c6); } for (c6=1;c6<=M;c6++) { S1(c2,2,c6); } } if (N == 3) { for (c6=1;c6<=M-1;c6++) { S6(c2,2,c6); S7(c2,2,c6); } for (c6=1;c6<=M-1;c6++) { S11(c2,1,c6); } } if (N >= 4) { for (c6=1;c6<=M-1;c6++) { S6(c2,2,c6); S7(c2,2,c6); } for (c6=1;c6<=M-1;c6++) { S11(c2,1,c6); } } for (c4=3;c4<=2*N-5;c4++) { for (c6=1;c6<=M-1;c6++) { if ((c4+1)%2 == 0) { S10(c2,(c4-1)/2,c6); } } for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { S3(c2,(c4+1)/2,c6); } } for (c6=1;c6<=M-1;c6++) { if (c4%2 == 0) { S6(c2,(c4+2)/2,c6); S7(c2,(c4+2)/2,c6); } if ((c4+1)%2 == 0) { S1(c2,(c4+3)/2,c6); } } if ((c4+1)%2 == 0) { S1(c2,(c4+3)/2,M); } for (c6=1;c6<=M-1;c6++) { if (c4%2 == 0) { S11(c2,c4/2,c6); } } } if (N >= 4) { for (c6=1;c6<=M-1;c6++) { S6(c2,N-1,c6); S7(c2,N-1,c6); } for (c6=1;c6<=M-1;c6++) { S11(c2,N-2,c6); } } if (N >= 3) { for (c6=1;c6<=M-1;c6++) { S10(c2,N-2,c6); } for (c6=1;c6<=M;c6++) { S3(c2,N-1,c6); } } if (N >= 3) { for (c6=1;c6<=M-1;c6++) { S11(c2,N-1,c6); } } for (c6=1;c6<=M-1;c6++) { S10(c2,N-1,c6); } } } if ((M == 1) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { S1(c2,1,1); for (c4=1;c4<=2*N-5;c4++) { if ((c4+1)%2 == 0) { S3(c2,(c4+1)/2,1); } if ((c4+1)%2 == 0) { S1(c2,(c4+3)/2,1); } } S3(c2,N-1,1); } } if ((M >= 2) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S2(c2,1,c6); } for (c6=1;c6<=M-1;c6++) { S8(c2,1,c6); } for (c4=3;c4<=2*N-2;c4++) { for (c6=1;c6<=M;c6++) { if (c4%2 == 0) { S2(c2,c4/2,c6); } } for (c6=1;c6<=M-1;c6++) { if (c4%2 == 0) { S8(c2,c4/2,c6); } } for (c6=1;c6<=M-1;c6++) { if ((c4+1)%2 == 0) { S9(c2,(c4-1)/2,c6); } } } for (c6=1;c6<=M-1;c6++) { S9(c2,N-1,c6); } } } if ((M == 1) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=2;c4<=2*N-2;c4++) { if (c4%2 == 0) { S2(c2,c4/2,1); } } } } if ((M >= 2) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S4(c2,c4,c6); } } } } if ((M >= 2) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S5(c2,c4,c6); } } } } if ((M >= P+1) && (N >= Q+1)) { for (c2=R;c2<=O-1;c2++) { for (c4=Q;c4<=N-1;c4++) { for (c6=P;c6<=M-1;c6++) { S12(c2,c4,c6); } } } } if ((M >= 2) && (N >= Q+1)) { for (c2=R;c2<=O-1;c2++) { for (c4=Q;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S13(c2,c4,c6); } } } } if ((M >= P+1) && (N >= 2)) { for (c2=R;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=P;c6<=M-1;c6++) { S14(c2,c4,c6); } } } } if ((M >= 2) && (N >= 2)) { for (c2=R;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S15(c2,c4,c6); } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/QR.good.c0000644000175000017500000000753611321074700017374 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/QR.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.27s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i) { hash(3); hash(i); } #define S4(i,j) { hash(4); hash(i); hash(j); } #define S5(i) { hash(5); hash(i); } #define S6(i,j) { hash(6); hash(i); hash(j); } #define S7(i,j,k) { hash(7); hash(i); hash(j); hash(k); } #define S8(i,j) { hash(8); hash(i); hash(j); } #define S9(i,j,k) { hash(9); hash(i); hash(j); hash(k); } #define S10(i) { hash(10); hash(i); } void test(int M, int N) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; if ((M <= -1) && (N >= 1)) { S1(0) ; } if ((M >= 0) && (N >= 1)) { S1(0) ; } if ((M >= 1) && (N >= 2)) { for (c4=0;c4<=M-1;c4++) { S2(0,c4) ; } S3(0) ; for (c4=0;c4<=M-1;c4++) { S4(0,c4) ; } S10(0) ; S1(1) ; S5(0) ; } if ((M <= 0) && (N >= 2)) { S3(0) ; S10(0) ; S1(1) ; S5(0) ; } if ((M >= 1) && (N == 1)) { for (c4=0;c4<=M-1;c4++) { S2(0,c4) ; } S3(0) ; for (c4=0;c4<=M-1;c4++) { S4(0,c4) ; } S10(0) ; S5(0) ; } if ((M <= 0) && (N == 1)) { S3(0) ; S10(0) ; S5(0) ; } for (c2=2;c2<=min(N-1,M);c2++) { for (c4=c2-1;c4<=N-1;c4++) { i = c2-2 ; S6(c2-2,c4) ; for (c6=c2-2;c6<=M-1;c6++) { i = c2-2 ; S7(c2-2,c4,c6) ; } i = c2-2 ; S8(c2-2,c4) ; for (c6=c2-2;c6<=M-1;c6++) { i = c2-2 ; S9(c2-2,c4,c6) ; } } for (c4=c2-1;c4<=M-1;c4++) { i = c2-1 ; S2(c2-1,c4) ; } i = c2-1 ; S3(c2-1) ; for (c4=c2-1;c4<=M-1;c4++) { i = c2-1 ; S4(c2-1,c4) ; } i = c2-1 ; S10(c2-1) ; S1(c2) ; i = c2-1 ; S5(c2-1) ; } if ((M >= 1) && (M <= N-2)) { c2 = M+1 ; for (c4=M;c4<=N-1;c4++) { i = M-1 ; S6(M-1,c4) ; c6 = M-1 ; i = M-1 ; k = M-1 ; S7(M-1,c4,M-1) ; i = M-1 ; S8(M-1,c4) ; c6 = M-1 ; i = M-1 ; k = M-1 ; S9(M-1,c4,M-1) ; } S3(M) ; S10(M) ; i = M+1 ; S1(M+1) ; S5(M) ; } if ((M >= N) && (N >= 2)) { c4 = N-1 ; i = N-2 ; j = N-1 ; S6(N-2,N-1) ; for (c6=N-2;c6<=M-1;c6++) { i = N-2 ; j = N-1 ; S7(N-2,N-1,c6) ; } i = N-2 ; j = N-1 ; S8(N-2,N-1) ; for (c6=N-2;c6<=M-1;c6++) { i = N-2 ; j = N-1 ; S9(N-2,N-1,c6) ; } for (c4=N-1;c4<=M-1;c4++) { i = N-1 ; S2(N-1,c4) ; } i = N-1 ; S3(N-1) ; for (c4=N-1;c4<=M-1;c4++) { i = N-1 ; S4(N-1,c4) ; } i = N-1 ; S10(N-1) ; i = N-1 ; S5(N-1) ; } if ((M == N-1) && (N >= 2)) { c4 = N-1 ; i = N-2 ; j = N-1 ; S6(N-2,N-1) ; c6 = N-2 ; i = N-2 ; j = N-1 ; k = N-2 ; S7(N-2,N-1,N-2) ; i = N-2 ; j = N-1 ; S8(N-2,N-1) ; c6 = N-2 ; i = N-2 ; j = N-1 ; k = N-2 ; S9(N-2,N-1,N-2) ; i = N-1 ; S3(N-1) ; i = N-1 ; S10(N-1) ; i = N-1 ; S5(N-1) ; } for (c2=max(M+2,2);c2<=N-1;c2++) { for (c4=c2-1;c4<=N-1;c4++) { i = c2-2 ; S6(c2-2,c4) ; i = c2-2 ; S8(c2-2,c4) ; } i = c2-1 ; S3(c2-1) ; i = c2-1 ; S10(c2-1) ; S1(c2) ; i = c2-1 ; S5(c2-1) ; } if ((M <= N-2) && (N >= 2)) { c4 = N-1 ; i = N-2 ; j = N-1 ; S6(N-2,N-1) ; i = N-2 ; j = N-1 ; S8(N-2,N-1) ; i = N-1 ; S3(N-1) ; i = N-1 ; S10(N-1) ; i = N-1 ; S5(N-1) ; } } cloog-parma-0.16.1/cloog-core/test/reservoir/fusion2.good.c0000644000175000017500000000170111321074700020423 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/fusion2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.02s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M, int N) { /* Scattering iterators. */ int c2, c4; /* Original iterators. */ int i, j; if ((M >= 1) && (N >= 1)) { for (c4=1;c4<=M;c4++) { S1(1,c4) ; } } if (M >= 1) { for (c2=2;c2<=N;c2++) { for (c4=1;c4<=M;c4++) { i = c2-1 ; S2(c2-1,c4) ; } for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } } if ((M >= 1) && (N >= 1)) { c2 = N+1 ; for (c4=1;c4<=M;c4++) { S2(N,c4) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/mg-psinv.c0000644000175000017500000000162111406126537017662 00000000000000/* Generated from /home/skimo/git/cloog/test/./reservoir/mg-psinv.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.02s. */ if ((M >= 1) && (N >= 3) && (O >= 3)) { if (M >= 3) { for (c2=2;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S1(c2,2,c6); S2(c2,2,c6); } for (c4=4;c4<=2*N-3;c4++) { for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { S1(c2,(c4+1)/2,c6); S2(c2,(c4+1)/2,c6); } } for (c6=2;c6<=M-1;c6++) { if (c4%2 == 0) { S3(c2,c4/2,c6); } } } for (c6=2;c6<=M-1;c6++) { S3(c2,N-1,c6); } } } if (M <= 2) { for (c2=2;c2<=O-1;c2++) { for (c4=3;c4<=2*N-3;c4++) { for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { S1(c2,(c4+1)/2,c6); S2(c2,(c4+1)/2,c6); } } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam2.cloog0000755000175000017500000000337211321074700020413 00000000000000# Language c # Context 3 4 1 1 0 -1 1 0 1 -1 1 0 0 1 0 # Number of statments 3 1 # { (i,j,k) | i-1 >= 0, -i+j >= 0, 1 >= 0 } 3 5 1 1 0 0 -1 1 -1 1 0 0 1 0 0 0 1 0 0 0 1 # { (i,j,k,l) | i-1 >= 0, -i+k >= 0, j-2 >= 0, -j+l >= 0, 1 >= 0 } 5 6 1 1 0 0 0 -1 1 -1 0 1 0 0 1 0 1 0 0 -2 1 0 -1 0 1 0 1 0 0 0 0 1 0 0 0 1 # { (i,j,k,l) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+l-1 >= 0, 1 >= 0 } 5 6 1 1 0 0 0 -1 1 -1 0 1 0 0 1 0 1 0 0 -1 1 0 -1 0 1 -1 1 0 0 0 0 1 0 0 0 0 # Scattering functions 3 6 10 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 6 11 0 1 0 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 6 11 0 1 0 0 0 0 0 0 0 0 -2 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -2 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/liu-zhuge1.c0000644000175000017500000000226511406126537020121 00000000000000/* Generated from /home/skimo/git/cloog/test/./reservoir/liu-zhuge1.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.02s. */ if ((M >= 0) && (N >= 0)) { for (c2=-4;c2<=min(-1,3*M+N-4);c2++) { for (c4=max(0,c2-3*M+4);c4<=min(N,c2+4);c4++) { if ((c2+2*c4+1)%3 == 0) { S1((c2-c4+4)/3,c4); } } } for (c2=0;c2<=3*M+N-4;c2++) { for (c4=max(0,c2-3*M);c4<=min(c2,c2-3*M+3);c4++) { if ((c2+2*c4)%3 == 0) { S2((c2-c4)/3,c4); } } for (c4=max(0,c2-3*M+4);c4<=min(N,c2);c4++) { if ((c2+2*c4)%3 == 0) { S2((c2-c4)/3,c4); } if ((c2+2*c4+1)%3 == 0) { S1((c2-c4+4)/3,c4); } } for (c4=max(c2+1,c2-3*M+4);c4<=min(N,c2+4);c4++) { if ((c2+2*c4+1)%3 == 0) { S1((c2-c4+4)/3,c4); } } for (c4=max(0,c2-3*M);c4<=min(N,c2);c4++) { if ((c2+2*c4)%3 == 0) { S3((c2-c4)/3,c4); } } } for (c2=max(0,3*M+N-3);c2<=3*M+N;c2++) { for (c4=max(0,c2-3*M);c4<=min(N,c2);c4++) { if ((c2+2*c4)%3 == 0) { S2((c2-c4)/3,c4); } } for (c4=max(0,c2-3*M);c4<=min(N,c2);c4++) { if ((c2+2*c4)%3 == 0) { S3((c2-c4)/3,c4); } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/bastoul3.c0000644000175000017500000000034011467776211017662 00000000000000/* Generated from ../../../git/cloog/test/reservoir/bastoul3.cloog by CLooG 0.14.0-308-g2713b64 gmp bits in 0.01s. */ for (i=3;i<=9;i++) { for (j=max(i-6,i-2*floord(i-1,2));j<=min(3,i-2);j+=2) { S1(i,j,(i-j)/2); } } cloog-parma-0.16.1/cloog-core/test/reservoir/pingali3.cloog0000755000175000017500000000322011321074700020477 00000000000000# Language c # Context 1 3 1 0 1 0 # Number of statments 2 1 # { (i,j,k) | i-1 >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 } 5 5 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -1 1 0 -1 1 0 1 0 0 0 1 0 0 0 1 # { (i,j,k,l) | i-1 >= 0, -i+l >= 0, j-1 >= 0, -j+l >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 } 7 6 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 0 1 0 1 0 0 1 0 -1 1 0 0 -1 1 0 1 0 0 0 0 1 0 0 0 0 # Scattering functions 2 8 12 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 8 13 0 1 0 0 0 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam1.good.c0000644000175000017500000000247211321074700020455 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.02s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test() { /* Scattering iterators. */ int c2, c4; /* Original iterators. */ int i, j; S1(1,100) ; for (c2=-98;c2<=0;c2++) { c4 = -2*c2+2 ; j = -c2+1 ; S1(1,-c2+1) ; for (c4=-2*c2+3;c4<=199;c4++) { if (c4%2 == 0) { i = (2*c2+c4)/2 ; S1((2*c2+c4)/2,c4/2) ; } if ((c4+1)%2 == 0) { i = (2*c2+c4-1)/2 ; j = (c4+1)/2 ; S2((2*c2+c4-1)/2,(c4+1)/2) ; } } i = c2+100 ; S1(c2+100,100) ; } for (c2=1;c2<=99;c2++) { S2(c2,1) ; for (c4=2;c4<=-2*c2+200;c4++) { if (c4%2 == 0) { i = (2*c2+c4)/2 ; S1((2*c2+c4)/2,c4/2) ; } if ((c4+1)%2 == 0) { i = (2*c2+c4-1)/2 ; j = (c4+1)/2 ; S2((2*c2+c4-1)/2,(c4+1)/2) ; } } c4 = -2*c2+201 ; j = -c2+101 ; S2(100,-c2+101) ; } S2(100,1) ; } cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam4.c0000644000175000017500000000075011323312273017530 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam4.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.04s. */ if (M >= 2) { S1(1,0,0) ; for (c2=2;c2<=2*M-2;c2++) { for (c4=max(-M+1,-c2+1);c4<=-1;c4++) { for (i=max(1,c2-M+1);i<=min(M-1,c2+c4);i++) { S1(i,c2+c4-i,-c4) ; } for (c6=max(-c4,c2-M+1);c6<=min(M-1,c2-1);c6++) { S2(c2-c6,c4+c6,c6) ; } } for (i=max(1,c2-M+1);i<=min(c2,M-1);i++) { S1(i,c2-i,0) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/loechner3.cloog0000755000175000017500000000163611321074700020664 00000000000000# Language c # Context 1 3 1 0 1 0 # Number of statments 1 1 # { (i,j,k,l) | -i+l >= 0, j-1 >= 0, -j+l >= 0, k-1 >= 0, i-k >= 0, 1 >= 0 } 6 6 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 0 1 0 1 0 0 1 0 -1 1 1 0 -1 0 0 1 0 0 0 0 1 0 0 0 0 # Scattering functions 1 8 13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/bastoul3.cloog0000644000175000017500000000055611321074700020533 00000000000000# Figure 4 from "Efficient code generation for automatic parallelization # and optimization". # # Language c # Context 1 2 1 1 0 # Number of statements 1 1 # i' i j 1 6 5 0 1 -1 -2 0 1 0 1 0 -1 1 0 -1 0 3 1 0 0 1 -1 1 0 0 -1 3 1 0 0 0 1 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/reservoir/liu-zhuge1.good.c0000644000175000017500000000775411321074700021046 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/liu-zhuge1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.05s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j) { hash(3); hash(i); hash(j); } void test(int M, int N) { /* Scattering iterators. */ int c2, c4; /* Original iterators. */ int i, j; if ((M >= 0) && (N >= 0)) { for (c2=-4;c2<=min(-1,3*M+N-4);c2++) { for (c4=max(0,c2-3*M+4);c4<=min(c2+4,N);c4++) { if ((c2+2*c4+1)%3 == 0) { i = (c2-c4+4)/3 ; S1((c2-c4+4)/3,c4) ; } } } } if ((M <= 1) && (M >= 0)) { for (c2=0;c2<=3*M+N-4;c2++) { for (c4=max(c2-3*M,0);c4<=c2;c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S2((c2-c4)/3,c4) ; } } for (c4=c2-3*M+4;c4<=min(c2+4,N);c4++) { if ((c2+2*c4+1)%3 == 0) { i = (c2-c4+4)/3 ; S1((c2-c4+4)/3,c4) ; } } for (c4=max(0,c2-3*M);c4<=c2;c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S3((c2-c4)/3,c4) ; } } } } for (c2=0;c2<=min(3*M-4,N-1);c2++) { for (c4=0;c4<=c2;c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S2((c2-c4)/3,c4) ; } if ((c2+2*c4+1)%3 == 0) { i = (c2-c4+4)/3 ; S1((c2-c4+4)/3,c4) ; } } for (c4=c2+1;c4<=min(c2+4,N);c4++) { if ((c2+2*c4+1)%3 == 0) { i = (c2-c4+4)/3 ; S1((c2-c4+4)/3,c4) ; } } for (c4=0;c4<=c2;c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S3((c2-c4)/3,c4) ; } } } if (M >= 2) { for (c2=3*M-3;c2<=N-1;c2++) { for (c4=max(c2-3*M,0);c4<=c2-3*M+3;c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S2((c2-c4)/3,c4) ; } } for (c4=c2-3*M+4;c4<=c2;c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S2((c2-c4)/3,c4) ; } if ((c2+2*c4+1)%3 == 0) { i = (c2-c4+4)/3 ; S1((c2-c4+4)/3,c4) ; } } for (c4=c2+1;c4<=min(c2+4,N);c4++) { if ((c2+2*c4+1)%3 == 0) { i = (c2-c4+4)/3 ; S1((c2-c4+4)/3,c4) ; } } for (c4=max(0,c2-3*M);c4<=c2;c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S3((c2-c4)/3,c4) ; } } } } if (N >= 0) { for (c2=N;c2<=3*M-4;c2++) { for (c4=0;c4<=N;c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S2((c2-c4)/3,c4) ; } if ((c2+2*c4+1)%3 == 0) { i = (c2-c4+4)/3 ; S1((c2-c4+4)/3,c4) ; } } for (c4=0;c4<=N;c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S3((c2-c4)/3,c4) ; } } } } for (c2=max(3*M-3,N);c2<=3*M+N-4;c2++) { for (c4=max(c2-3*M,0);c4<=c2-3*M+3;c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S2((c2-c4)/3,c4) ; } } for (c4=c2-3*M+4;c4<=N;c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S2((c2-c4)/3,c4) ; } if ((c2+2*c4+1)%3 == 0) { i = (c2-c4+4)/3 ; S1((c2-c4+4)/3,c4) ; } } for (c4=max(0,c2-3*M);c4<=N;c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S3((c2-c4)/3,c4) ; } } } if ((M >= 0) && (N >= 0)) { for (c2=max(3*M+N-3,0);c2<=3*M+N;c2++) { for (c4=max(0,c2-3*M);c4<=min(c2,N);c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S2((c2-c4)/3,c4) ; } } for (c4=max(0,c2-3*M);c4<=min(c2,N);c4++) { if ((c2+2*c4)%3 == 0) { i = (c2-c4)/3 ; S3((c2-c4)/3,c4) ; } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/cholesky2.cloog0000755000175000017500000000414311321074700020701 00000000000000# Language c # Context 1 3 1 0 1 0 # Number of statments 3 1 # { (i,j) | i-1 >= 0, -i+j >= 0, 1 >= 0 } 3 4 1 1 0 -1 1 -1 1 0 1 0 0 1 0 0 0 1 # { (i,j,k) | i-1 >= 0, -i+j-1 >= 0, -j+k >= 0, 1 >= 0 } 4 5 1 1 0 0 -1 1 -1 1 0 -1 1 0 -1 1 0 1 0 0 0 1 0 0 0 1 # { (i,j,k,l) | i-1 >= 0, -j+l >= 0, -i+k-1 >= 0, j-k >= 0, 1 >= 0 } 5 6 1 1 0 0 0 -1 1 0 -1 0 1 0 1 -1 0 1 0 -1 1 0 1 -1 0 0 1 0 0 0 0 1 0 0 0 0 # Scattering functions 3 8 11 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -3 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 8 12 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -2 -1 0 2 0 0 0 1 0 0 0 0 0 0 0 -2 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 8 13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/loechner4.good.c0000644000175000017500000000142411321074700020723 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/loechner4.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.02s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k,l) { hash(1); hash(i); hash(j); hash(k); hash(l); } void test(int M) { /* Scattering iterators. */ int c2, c4, c6, c8; /* Original iterators. */ int i, j, k, l; for (c2=2;c2<=2*M;c2++) { for (c4=1;c4<=M;c4++) { for (c6=1;c6<=M;c6++) { for (c8=max(1,c2-M);c8<=min(c2-1,M);c8++) { l = c2-c8 ; S1(c6,c4,c8,c2-c8) ; } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/QR.cloog0000755000175000017500000001652511321074700017327 00000000000000# Language c # Context 1 4 1 0 0 1 0 # Number of statments 10 1 # { (i,j,k) | i >= 0, -i+k-1 >= 0, 1 >= 0 } 3 5 1 1 0 0 0 1 -1 0 1 -1 1 0 0 0 1 0 0 0 1 # { (i,j,k,l) | i >= 0, -i+l-1 >= 0, -i+j >= 0, -j+k-1 >= 0, 1 >= 0 } 5 6 1 1 0 0 0 0 1 -1 0 0 1 -1 1 -1 1 0 0 0 1 0 -1 1 0 -1 1 0 0 0 0 1 0 0 0 1 # { (i,j,k) | i >= 0, -i+k-1 >= 0, 1 >= 0 } 3 5 1 1 0 0 0 1 -1 0 1 -1 1 0 0 0 1 0 0 0 1 # { (i,j,k,l) | i >= 0, -i+l-1 >= 0, -i+j >= 0, -j+k-1 >= 0, 1 >= 0 } 5 6 1 1 0 0 0 0 1 -1 0 0 1 -1 1 -1 1 0 0 0 1 0 -1 1 0 -1 1 0 0 0 0 1 0 0 0 1 # { (i,j,k) | i >= 0, -i+k-1 >= 0, 1 >= 0 } 3 5 1 1 0 0 0 1 -1 0 1 -1 1 0 0 0 1 0 0 0 1 # { (i,j,k,l) | i >= 0, -i+j-1 >= 0, -j+l-1 >= 0, 1 >= 0 } 4 6 1 1 0 0 0 0 1 -1 1 0 0 -1 1 0 -1 0 1 -1 1 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m) | i >= 0, -i+j-1 >= 0, -j+m-1 >= 0, -i+k >= 0, -k+l-1 >= 0, 1 >= 0 } 6 7 1 1 0 0 0 0 0 1 -1 1 0 0 0 -1 1 0 -1 0 0 1 -1 1 -1 0 1 0 0 0 1 0 0 -1 1 0 -1 1 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l) | i >= 0, -i+j-1 >= 0, -j+l-1 >= 0, 1 >= 0 } 4 6 1 1 0 0 0 0 1 -1 1 0 0 -1 1 0 -1 0 1 -1 1 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m) | i >= 0, -i+j-1 >= 0, -j+m-1 >= 0, -i+k >= 0, -k+l-1 >= 0, 1 >= 0 } 6 7 1 1 0 0 0 0 0 1 -1 1 0 0 0 -1 1 0 -1 0 0 1 -1 1 -1 0 1 0 0 0 1 0 0 -1 1 0 -1 1 0 0 0 0 0 1 0 0 0 1 # { (i,j,k) | i >= 0, -i+k-1 >= 0, 1 >= 0 } 3 5 1 1 0 0 0 1 -1 0 1 -1 1 0 0 0 1 0 0 0 0 # Scattering functions 10 8 12 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -5 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 8 13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 8 12 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 -2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 8 13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 0 -3 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 8 12 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 -6 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 8 13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 -2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 8 14 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 -2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 8 13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 -2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 8 14 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 -2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -3 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 8 12 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 -4 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/stride2.cloog0000644000175000017500000000126711321074700020353 00000000000000# # Stride-bug: # # for (i = 2; i <= N; i+=7) { # S(i); # # becomes: # # for (i = 5; i <= N; i+=7) { # S(i); # Language c # Context 1 3 1 0 1 0 # Number of statements 1 1 4 5 0 1 -7 0 -2 # i - 7j = 2 1 1 0 0 0 # i >= 0 1 -1 0 1 0 # i <= n 1 0 0 0 1 0 0 0 0 # Scattering functions 1 6 10 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/pingali5.c0000644000175000017500000000107311323312273017623 00000000000000/* Generated from /home/skimo/git/cloog/test/./reservoir/pingali5.cloog by CLooG 0.14.0-225-g6e2d019 gmp bits in 0.02s. */ if (M >= 2) { for (c2=3;c2<=2*M-3;c2++) { for (c4=ceild(c2+3,2);c4<=M;c4++) { for (i=ceild(c2+1,2);i<=min(c2-1,c4-1);i++) { S1(i,c2-i,c4); } } for (c4=max(1,c2-M);c4<=floord(c2-1,2);c4++) { S2(c2-c4,c4); } for (c4=ceild(c2+3,2);c4<=M;c4++) { for (i=ceild(c2+1,2);i<=min(c2-1,c4-1);i++) { S3(i,c2-i,c4); } } } for (c2=max(M+1,2*M-2);c2<=2*M-1;c2++) { S2(M,c2-M); } } cloog-parma-0.16.1/cloog-core/test/reservoir/two.c0000644000175000017500000000020111323312273016714 00000000000000/* Generated from /home/skimo/git/cloog/test/./reservoir/two.cloog by CLooG 0.14.0-225-g6e2d019 gmp bits in 0.00s. */ S1(1,1,5); cloog-parma-0.16.1/cloog-core/test/reservoir/loechner5.cloog0000755000175000017500000000254411321074700020665 00000000000000# Language c # Context 1 3 1 0 1 0 # Number of statments 1 1 # { (i,j,k,l,m) | i-1 >= 0, -i+m >= 0, j-1 >= 0, -j+m >= 0, k-1 >= 0, -k+m >= 0, l-1 >= 0, -l+m >= 0, 1 >= 0 } 9 7 1 1 0 0 0 0 -1 1 -1 0 0 0 1 0 1 0 1 0 0 0 -1 1 0 -1 0 0 1 0 1 0 0 1 0 0 -1 1 0 0 -1 0 1 0 1 0 0 0 1 0 -1 1 0 0 0 -1 1 0 1 0 0 0 0 0 1 0 0 0 0 # Scattering functions 1 10 16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/fusion1.good.c0000644000175000017500000000131211321074700020420 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/fusion1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i) { hash(2); hash(i); } #define S3(i) { hash(3); hash(i); } void test(int M) { /* Scattering iterators. */ int c2; /* Original iterators. */ int i; for (c2=0;c2<=M;c2++) { S1(c2) ; } for (c2=1;c2<=M;c2++) { S2(c2) ; } for (c2=0;c2<=M;c2++) { S3(c2) ; } } cloog-parma-0.16.1/cloog-core/test/reservoir/stride.c0000644000175000017500000000027111323312273017404 00000000000000/* Generated from ../../../git/cloog/test/reservoir/stride.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ if (M >= 2) { for (c2=2;c2<=M;c2+=7) { S1(c2,(c2-2)/7) ; } } cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam6.cloog0000755000175000017500000000221211321074700020407 00000000000000# Language c # Context 1 3 1 0 1 0 # Number of statments 2 1 # { (i,j,k) | i >= 0, -i+k >= 0, j-1 >= 0, -j+k >= 0, 1 >= 0 } 5 5 1 1 0 0 0 1 -1 0 1 0 1 0 1 0 -1 1 0 -1 1 0 1 0 0 0 1 0 0 0 1 # { (i,j,k) | i-1 >= 0, -i+k >= 0, j >= 0, -j+k >= 0, 1 >= 0 } 5 5 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 0 1 0 -1 1 0 1 0 0 0 1 0 0 0 0 # Scattering functions 2 6 10 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 6 10 0 1 0 0 0 0 0 0 0 -1 0 0 1 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam4.good.c0000644000175000017500000000204511321074700020454 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/lim-lam4.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.02s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } void test(int M) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; if (M >= 2) { S1(1,0,0) ; } for (c2=2;c2<=2*M-2;c2++) { for (c4=max(-M+1,-c2+1);c4<=-1;c4++) { for (i=max(1,c2-M+1);i<=min(c2+c4,M-1);i++) { j = c2+c4-i ; S1(i,c2+c4-i,-c4) ; } for (c6=max(-c4,c2-M+1);c6<=min(c2-1,M-1);c6++) { i = c2-c6 ; j = c4+c6 ; S2(c2-c6,c4+c6,c6) ; } } for (i=max(1,c2-M+1);i<=min(M-1,c2);i++) { j = c2-i ; S1(i,c2-i,0) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/pingali1.good.c0000644000175000017500000000212411321074700020542 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/pingali1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.02s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M, int N) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; if (N >= 2) { for (c2=1;c2<=M;c2++) { for (c4=1;c4<=2;c4++) { if ((c4+1)%2 == 0) { j = (c4+1)/2 ; S2(c2,(c4+1)/2) ; } } for (c4=3;c4<=2*N-1;c4++) { for (c6=max(1,c4-N);c6<=floord(c4-1,2);c6++) { j = c4-c6 ; S1(c2,c4-c6,c6) ; } if ((c4+1)%2 == 0) { j = (c4+1)/2 ; S2(c2,(c4+1)/2) ; } } } } if (N == 1) { for (c2=1;c2<=M;c2++) { S2(c2,1) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/loechner3.good.c0000644000175000017500000000132411321074700020721 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/loechner3.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } void test(int M) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; for (c2=1;c2<=M;c2++) { for (c4=2;c4<=c2+M;c4++) { for (c6=max(1,-c2+c4);c6<=min(M,c4-1);c6++) { k = c4-c6 ; S1(c2,c6,c4-c6) ; } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/tang-xue1.cloog0000644000175000017500000000332011321074700020600 00000000000000# # Example 1 in "Generating Efficient Tiled Code for Distributed Memory # Machines", Peiyi Tang and Jingling Xue. # # for (int i = 1; i <= 9; i++) { # for (int j = 1; j <= 4; j++) { # A[i,2*j] = A[i,2*j-2] + A[i-1,2*j-2]; # } # } # # We tile it with a tiling matrix H = [1/2 0] # [-1/2 1/2] # # We get: # # for (int i = 0; i <= 9; i += 2) { # for (int j = max(-1, -9 + i); j <= min(4, 3 + i); j++) { # for (int k = max(1, i, i-j); k <= min(4 + i -j, 1 + i, 9); k++) { # for (int l = max(-i + j + k, 1); l <= min(4, 1 -i + j + k); l++) { # if (i % 2 == 0) { # if ((i + j) % 2 == 0) { # A[k, 2 * l] = A[k, -2 + 2 * l] + A[-1 + k, -2 + 2 * l]; # } # } # } # } # } # } # # language: C c # parameter (none) 1 2 # 1 1 1 0 1 # number of statements 1 # -2i-2j -l +4 >= 0 # -k +l >= 0 # -2i -k +9 >= 0 # k >= 0 # 2i +k -1 >= 0 # k -l +1 >= 0 # -k +1 >= 0 # 2i+2j +l-1 >= 0 8 6 # i j k l 1 1 -2 -2 0 -1 4 1 0 0 -1 1 0 1 -2 0 -1 0 9 1 0 0 1 0 0 1 2 0 1 0 -1 1 0 0 1 -1 1 1 0 0 -1 0 1 1 2 2 0 1 -1 0 0 0 0 1 # Scattering functions 9 15 # alpha=[2i, 2i+2j, 2i+k, 2i+2j+l] gamma=[0, 0, 0, 0] beta=[0, 0, 0, 0, 0, 0] # c1 c2 c3 c4 c5 c6 c7 c8 c9 i j k l 1 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 2 2 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 2 0 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 2 2 0 1 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/reservoir/lim-lam3.cloog0000755000175000017500000000543011321074700020411 00000000000000# Language c # Context 2 3 1 1 -1 1 0 1 0 # Number of statments 4 1 # { (i,j,k,l) | -i+l >= 0, i-j-1 >= 0, k-1 >= 0, j-k-1 >= 0, 1 >= 0 } 5 6 1 -1 0 0 1 0 1 1 -1 0 0 -1 1 0 0 1 0 -1 1 0 1 -1 0 -1 1 0 0 0 0 1 0 0 0 1 # { (i,j,k) | -i+k >= 0, j-1 >= 0, i-j-1 >= 0, 1 >= 0 } 4 5 1 -1 0 1 0 1 0 1 0 -1 1 1 -1 0 -1 1 0 0 0 1 0 0 0 1 # { (i,j,k) | -i+k >= 0, j-1 >= 0, i-j-1 >= 0, 1 >= 0 } 4 5 1 -1 0 1 0 1 0 1 0 -1 1 1 -1 0 -1 1 0 0 0 1 0 0 0 1 # { (i,j) | i-1 >= 0, -i+j >= 0, 1 >= 0 } 3 4 1 1 0 -1 1 -1 1 0 1 0 0 1 0 0 0 0 # Scattering functions 4 8 13 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 -2 -2 0 -5 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 8 12 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 -4 0 -3 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 8 12 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -3 -2 0 -1 0 0 0 1 0 0 0 0 0 0 0 -2 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 8 11 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -5 0 0 0 0 0 1 0 0 0 0 0 0 -2 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/mg-interp.good.c0000644000175000017500000001634511321074700020752 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/mg-interp.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 1.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } #define S3(i,j,k) { hash(3); hash(i); hash(j); hash(k); } #define S4(i,j,k) { hash(4); hash(i); hash(j); hash(k); } #define S5(i,j,k) { hash(5); hash(i); hash(j); hash(k); } #define S6(i,j,k) { hash(6); hash(i); hash(j); hash(k); } #define S7(i,j,k) { hash(7); hash(i); hash(j); hash(k); } #define S8(i,j,k) { hash(8); hash(i); hash(j); hash(k); } #define S9(i,j,k) { hash(9); hash(i); hash(j); hash(k); } #define S10(i,j,k) { hash(10); hash(i); hash(j); hash(k); } #define S11(i,j,k) { hash(11); hash(i); hash(j); hash(k); } #define S12(i,j,k) { hash(12); hash(i); hash(j); hash(k); } #define S13(i,j,k) { hash(13); hash(i); hash(j); hash(k); } #define S14(i,j,k) { hash(14); hash(i); hash(j); hash(k); } #define S15(i,j,k) { hash(15); hash(i); hash(j); hash(k); } void test(int M, int N, int O, int P, int Q, int R, int S, int T, int U) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; if ((M >= 2) && (N >= 4)) { for (c2=1;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S1(c2,1,c6) ; } for (c6=1;c6<=M-1;c6++) { S6(c2,1,c6) ; S7(c2,1,c6) ; } for (c6=1;c6<=M;c6++) { S3(c2,1,c6) ; } for (c6=1;c6<=M-1;c6++) { S1(c2,2,c6) ; } S1(c2,2,M) ; for (c6=1;c6<=M-1;c6++) { S6(c2,2,c6) ; S7(c2,2,c6) ; } for (c6=1;c6<=M-1;c6++) { S11(c2,1,c6) ; } for (c4=3;c4<=2*N-5;c4++) { for (c6=1;c6<=M-1;c6++) { if ((c4+1)%2 == 0) { j = (c4-1)/2 ; S10(c2,(c4-1)/2,c6) ; } } for (c6=1;c6<=M;c6++) { if ((c4+1)%2 == 0) { j = (c4+1)/2 ; S3(c2,(c4+1)/2,c6) ; } } for (c6=1;c6<=M-1;c6++) { if (c4%2 == 0) { j = (c4+2)/2 ; S6(c2,(c4+2)/2,c6) ; S7(c2,(c4+2)/2,c6) ; } if ((c4+1)%2 == 0) { j = (c4+3)/2 ; S1(c2,(c4+3)/2,c6) ; } } if ((c4+1)%2 == 0) { j = (c4+3)/2 ; S1(c2,(c4+3)/2,M) ; } for (c6=1;c6<=M-1;c6++) { if (c4%2 == 0) { S11(c2,c4/2,c6) ; } } } c4 = 2*N-4 ; for (c6=1;c6<=M-1;c6++) { j = N-1 ; S6(c2,N-1,c6) ; S7(c2,N-1,c6) ; } for (c6=1;c6<=M-1;c6++) { j = N-2 ; S11(c2,N-2,c6) ; } c4 = 2*N-3 ; for (c6=1;c6<=M-1;c6++) { j = N-2 ; S10(c2,N-2,c6) ; } for (c6=1;c6<=M;c6++) { j = N-1 ; S3(c2,N-1,c6) ; } c4 = 2*N-2 ; for (c6=1;c6<=M-1;c6++) { j = N-1 ; S11(c2,N-1,c6) ; } c4 = 2*N-1 ; for (c6=1;c6<=M-1;c6++) { j = N-1 ; S10(c2,N-1,c6) ; } } } if ((M >= 2) && (N == 3)) { for (c2=1;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S1(c2,1,c6) ; } for (c6=1;c6<=M-1;c6++) { S6(c2,1,c6) ; S7(c2,1,c6) ; } for (c6=1;c6<=M;c6++) { S3(c2,1,c6) ; } for (c6=1;c6<=M-1;c6++) { S1(c2,2,c6) ; } S1(c2,2,M) ; for (c6=1;c6<=M-1;c6++) { S6(c2,2,c6) ; S7(c2,2,c6) ; } for (c6=1;c6<=M-1;c6++) { S11(c2,1,c6) ; } for (c6=1;c6<=M-1;c6++) { S10(c2,1,c6) ; } for (c6=1;c6<=M;c6++) { S3(c2,2,c6) ; } for (c6=1;c6<=M-1;c6++) { S11(c2,2,c6) ; } for (c6=1;c6<=M-1;c6++) { S10(c2,2,c6) ; } } } if ((M >= 2) && (N == 2)) { for (c2=1;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S1(c2,1,c6) ; } for (c6=1;c6<=M-1;c6++) { S6(c2,1,c6) ; S7(c2,1,c6) ; } for (c6=1;c6<=M;c6++) { S3(c2,1,c6) ; } for (c6=1;c6<=M-1;c6++) { S11(c2,1,c6) ; } for (c6=1;c6<=M-1;c6++) { S10(c2,1,c6) ; } } } if ((M == 1) && (N >= 3)) { for (c2=1;c2<=O-1;c2++) { for (c4=-1;c4<=0;c4++) { if ((c4+1)%2 == 0) { j = (c4+3)/2 ; S1(c2,(c4+3)/2,1) ; } } for (c4=1;c4<=2*N-5;c4++) { if ((c4+1)%2 == 0) { j = (c4+1)/2 ; S3(c2,(c4+1)/2,1) ; } if ((c4+1)%2 == 0) { j = (c4+3)/2 ; S1(c2,(c4+3)/2,1) ; } } for (c4=2*N-4;c4<=2*N-3;c4++) { if ((c4+1)%2 == 0) { j = (c4+1)/2 ; S3(c2,(c4+1)/2,1) ; } } } } if ((M == 1) && (N == 2)) { for (c2=1;c2<=O-1;c2++) { S1(c2,1,1) ; S3(c2,1,1) ; } } if ((M >= 2) && (N >= 3)) { for (c2=1;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S2(c2,1,c6) ; } for (c6=1;c6<=M-1;c6++) { S8(c2,1,c6) ; } for (c4=3;c4<=2*N-2;c4++) { for (c6=1;c6<=M;c6++) { if (c4%2 == 0) { S2(c2,c4/2,c6) ; } } for (c6=1;c6<=M-1;c6++) { if (c4%2 == 0) { S8(c2,c4/2,c6) ; } } for (c6=1;c6<=M-1;c6++) { if ((c4+1)%2 == 0) { j = (c4-1)/2 ; S9(c2,(c4-1)/2,c6) ; } } } c4 = 2*N-1 ; for (c6=1;c6<=M-1;c6++) { j = N-1 ; S9(c2,N-1,c6) ; } } } if ((M >= 2) && (N == 2)) { for (c2=1;c2<=O-1;c2++) { for (c6=1;c6<=M;c6++) { S2(c2,1,c6) ; } for (c6=1;c6<=M-1;c6++) { S8(c2,1,c6) ; } for (c6=1;c6<=M-1;c6++) { S9(c2,1,c6) ; } } } if ((M == 1) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=2;c4<=2*N-2;c4++) { if (c4%2 == 0) { S2(c2,c4/2,1) ; } } } } if ((M >= 2) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S4(c2,c4,c6) ; } } } } if ((M >= 2) && (N >= 2)) { for (c2=1;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S5(c2,c4,c6) ; } } } } if ((M >= P+1) && (N >= Q+1)) { for (c2=R;c2<=O-1;c2++) { for (c4=Q;c4<=N-1;c4++) { for (c6=P;c6<=M-1;c6++) { S12(c2,c4,c6) ; } } } } if ((M >= 2) && (N >= Q+1)) { for (c2=R;c2<=O-1;c2++) { for (c4=Q;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S13(c2,c4,c6) ; } } } } if ((M >= P+1) && (N >= 2)) { for (c2=R;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=P;c6<=M-1;c6++) { S14(c2,c4,c6) ; } } } } if ((M >= 2) && (N >= 2)) { for (c2=R;c2<=O-1;c2++) { for (c4=1;c4<=N-1;c4++) { for (c6=1;c6<=M-1;c6++) { S15(c2,c4,c6) ; } } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/mg-resid.cloog0000755000175000017500000000615211321074700020507 00000000000000# Language c # Context 1 5 1 0 0 0 1 0 # Number of statments 3 1 # { (i,j,k,l,m,n) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 } 7 8 1 1 0 0 0 0 0 -2 1 -1 0 0 0 0 1 -1 1 0 1 0 0 0 0 -2 1 0 -1 0 0 1 0 -1 1 0 0 1 0 0 0 -1 1 0 0 -1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 } 7 8 1 1 0 0 0 0 0 -2 1 -1 0 0 0 0 1 -1 1 0 1 0 0 0 0 -2 1 0 -1 0 0 1 0 -1 1 0 0 1 0 0 0 -1 1 0 0 -1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 8 1 1 0 0 0 0 0 -2 1 -1 0 0 0 0 1 -1 1 0 1 0 0 0 0 -2 1 0 -1 0 0 1 0 -1 1 0 0 1 0 0 0 -2 1 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 1 0 0 0 0 # Scattering functions 3 8 15 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 15 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 15 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/mg-rprj3.c0000644000175000017500000000205111406126537017561 00000000000000/* Generated from /home/skimo/git/cloog/test/./reservoir/mg-rprj3.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.10s. */ if ((M >= 2) && (N >= 3) && (O >= 3)) { if (M >= 3) { for (c2=2;c2<=O-1;c2++) { for (c6=2;c6<=M;c6++) { S1(c2,2,c6); } for (c4=3;c4<=N-1;c4++) { for (c6=2;c6<=M;c6++) { S2(c2,c4-1,c6); } S4(c2,c4-1,2); for (c6=2;c6<=M-2;c6++) { S3(c2,c4-1,c6); S5(c2,c4-1,c6); S4(c2,c4-1,c6+1); } S3(c2,c4-1,M-1); S5(c2,c4-1,M-1); for (c6=2;c6<=M;c6++) { S1(c2,c4,c6); } } for (c6=2;c6<=M;c6++) { S2(c2,N-1,c6); } S4(c2,N-1,2); for (c6=2;c6<=M-2;c6++) { S3(c2,N-1,c6); S5(c2,N-1,c6); S4(c2,N-1,c6+1); } S3(c2,N-1,M-1); S5(c2,N-1,M-1); } } if (M == 2) { for (c2=2;c2<=O-1;c2++) { S1(c2,2,2); for (c4=3;c4<=N-1;c4++) { S2(c2,c4-1,2); S1(c2,c4,2); } S2(c2,N-1,2); } } } cloog-parma-0.16.1/cloog-core/test/reservoir/loechner4.cloog0000755000175000017500000000254411321074700020664 00000000000000# Language c # Context 1 3 1 0 1 0 # Number of statments 1 1 # { (i,j,k,l,m) | i-1 >= 0, -i+m >= 0, j-1 >= 0, -j+m >= 0, k-1 >= 0, -k+m >= 0, l-1 >= 0, -l+m >= 0, 1 >= 0 } 9 7 1 1 0 0 0 0 -1 1 -1 0 0 0 1 0 1 0 1 0 0 0 -1 1 0 -1 0 0 1 0 1 0 0 1 0 0 -1 1 0 0 -1 0 1 0 1 0 0 0 1 0 -1 1 0 0 0 -1 1 0 1 0 0 0 0 0 1 0 0 0 0 # Scattering functions 1 10 16 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/jacobi3.cloog0000755000175000017500000000371511321074700020314 00000000000000# Language c # Context 1 4 1 0 0 1 0 # Number of statments 2 1 # { (i,j,k,l,m) | i-1 >= 0, -i+l >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+m-1 >= 0, 1 >= 0 } 7 7 1 1 0 0 0 0 -1 1 -1 0 0 1 0 0 1 0 1 0 0 0 -2 1 0 -1 0 0 1 -1 1 0 0 1 0 0 -2 1 0 0 -1 0 1 -1 1 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m) | i-1 >= 0, -i+l >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+m-1 >= 0, 1 >= 0 } 7 7 1 1 0 0 0 0 -1 1 -1 0 0 1 0 0 1 0 1 0 0 0 -2 1 0 -1 0 0 1 -1 1 0 0 1 0 0 -2 1 0 0 -1 0 1 -1 1 0 0 0 0 0 1 0 0 0 0 # Scattering functions 2 8 14 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 8 14 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -2 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/pingali6.cloog0000755000175000017500000000376711321074700020522 00000000000000# Language c # Context 3 4 1 1 0 -1 1 0 1 -1 1 0 0 1 0 # Number of statments 2 1 # { (i,j,k,l,m) | i-1 >= 0, -i+l >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+m-1 >= 0, 1 >= 0 } 7 7 1 1 0 0 0 0 -1 1 -1 0 0 1 0 0 1 0 1 0 0 0 -2 1 0 -1 0 0 1 -1 1 0 0 1 0 0 -2 1 0 0 -1 0 1 -1 1 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m) | i-1 >= 0, -i+l >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+m-1 >= 0, 1 >= 0 } 7 7 1 1 0 0 0 0 -1 1 -1 0 0 1 0 0 1 0 1 0 0 0 -2 1 0 -1 0 0 1 -1 1 0 0 1 0 0 -2 1 0 0 -1 0 1 -1 1 0 0 0 0 0 1 0 0 0 0 # Scattering functions 2 8 14 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 8 14 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -2 0 0 0 0 -1 0 0 0 1 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/jacobi2.cloog0000755000175000017500000000121411321074700020303 00000000000000# Language c # Context 2 3 1 1 -1 1 0 1 0 # Number of statments 1 1 # { (i,j,k) | i >= 0, -i+k-1 >= 0, j >= 0, -j+k-1 >= 0, 1 >= 0 } 5 5 1 1 0 0 0 1 -1 0 1 -1 1 0 1 0 0 1 0 -1 1 -1 1 0 0 0 1 0 0 0 0 # Scattering functions 1 6 10 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/mg-psinv.cloog0000755000175000017500000000615211321074700020540 00000000000000# Language c # Context 1 5 1 0 0 0 1 0 # Number of statments 3 1 # { (i,j,k,l,m,n) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 } 7 8 1 1 0 0 0 0 0 -2 1 -1 0 0 0 0 1 -1 1 0 1 0 0 0 0 -2 1 0 -1 0 0 1 0 -1 1 0 0 1 0 0 0 -1 1 0 0 -1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-1 >= 0, -k+l >= 0, 1 >= 0 } 7 8 1 1 0 0 0 0 0 -2 1 -1 0 0 0 0 1 -1 1 0 1 0 0 0 0 -2 1 0 -1 0 0 1 0 -1 1 0 0 1 0 0 0 -1 1 0 0 -1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 # { (i,j,k,l,m,n) | i-2 >= 0, -i+n-1 >= 0, j-2 >= 0, -j+m-1 >= 0, k-2 >= 0, -k+l-1 >= 0, 1 >= 0 } 7 8 1 1 0 0 0 0 0 -2 1 -1 0 0 0 0 1 -1 1 0 1 0 0 0 0 -2 1 0 -1 0 0 1 0 -1 1 0 0 1 0 0 0 -2 1 0 0 -1 1 0 0 -1 1 0 0 0 0 0 0 1 0 0 0 0 # Scattering functions 3 8 15 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 15 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 8 15 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 cloog-parma-0.16.1/cloog-core/test/reservoir/loechner3.c0000644000175000017500000000044211323312273017774 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/loechner3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (M >= 1) { for (c2=1;c2<=M;c2++) { for (c4=2;c4<=c2+M;c4++) { for (c6=max(1,-c2+c4);c6<=min(M,c4-1);c6++) { S1(c2,c6,c4-c6) ; } } } } cloog-parma-0.16.1/cloog-core/test/reservoir/pingali2.good.c0000644000175000017500000000134711321074700020551 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/pingali2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M) { /* Scattering iterators. */ int c2, c4; /* Original iterators. */ int i, j; for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S1(c2,c4) ; } } for (c2=1;c2<=M;c2++) { for (c4=1;c4<=M;c4++) { S2(c2,c4) ; } } } cloog-parma-0.16.1/cloog-core/test/reservoir/cholesky2.good.c0000644000175000017500000000337711321074700020754 00000000000000/* Generated from ../../../git/cloog/test/./reservoir/cholesky2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.05s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j,k) { hash(3); hash(i); hash(j); hash(k); } void test(int M) { /* Scattering iterators. */ int c2, c4, c6; /* Original iterators. */ int i, j, k; for (c2=2;c2<=min(3,3*M-4);c2++) { if ((c2+1)%3 == 0) { i = (c2+1)/3 ; S1((c2+1)/3) ; } for (c4=ceild(c2+4,3);c4<=min(c2,M);c4++) { if ((c2+c4)%2 == 0) { i = (c2-c4+2)/2 ; S2((c2-c4+2)/2,c4) ; } } } for (c2=4;c2<=3*M-4;c2++) { if ((c2+1)%3 == 0) { i = (c2+1)/3 ; S1((c2+1)/3) ; } for (c4=ceild(c2+2,3);c4<=min(c2-2,M);c4++) { for (c6=ceild(c2-c4+2,2);c6<=min(c2-c4,c4);c6++) { i = c2-c4-c6+1 ; S3(c2-c4-c6+1,c4,c6) ; } } for (c4=ceild(c2+4,3);c4<=min(M,c2);c4++) { if ((c2+c4)%2 == 0) { i = (c2-c4+2)/2 ; S2((c2-c4+2)/2,c4) ; } } } for (c2=max(2,3*M-3);c2<=min(3,3*M-2);c2++) { if ((c2+1)%3 == 0) { i = (c2+1)/3 ; S1((c2+1)/3) ; } } for (c2=max(3*M-3,4);c2<=3*M-2;c2++) { if ((c2+1)%3 == 0) { i = (c2+1)/3 ; S1((c2+1)/3) ; } for (c4=ceild(c2+2,3);c4<=min(M,c2-2);c4++) { for (c6=ceild(c2-c4+2,2);c6<=min(c2-c4,c4);c6++) { i = c2-c4-c6+1 ; S3(c2-c4-c6+1,c4,c6) ; } } } if (M >= 1) { c2 = 3*M-1 ; S1(M) ; } } cloog-parma-0.16.1/cloog-core/test/yosr.cloog0000644000175000017500000000155011321074700015746 00000000000000# language: C c # One parameter : n 1 3 # n 1 1 0 1 # We want to set the parameter names... 1 # and 'n' is the name of the unique parameter n 2 # Number of statements: 2. 1 # {i, j | 1<=i<=n-1; i+1<=j<=n} 4 5 # i j n 1 1 1 0 0 -1 1 -1 0 1 -1 1 -1 1 0 -1 1 0 -1 1 0 0 0 0 1 # {i, j, k | 1<=i<=n-1; i+1<=j<=n i+1<=k<=n} 6 6 # i j k n 1 1 1 0 0 0 -1 1 -1 0 0 1 -1 1 -1 1 0 0 -1 1 0 -1 0 1 0 1 -1 0 1 0 -1 1 0 0 -1 1 0 0 0 0 # We want to let CLooG set the iterator names. 0 2 # Scattering functions 1 6 # c1 i j n 1 0 1 -1 0 0 0 1 7 # c1 i j k n 1 0 1 0 0 -1 0 0 1 proc 2 # Scattering functions 3 8 # c1 c2 c3 i j n 1 0 1 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 3 9 # c1 c2 c3 i j k n 1 0 1 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 0 0 -1 0 0 0 cloog-parma-0.16.1/cloog-core/test/mode.good.c0000644000175000017500000000203711321074700015745 00000000000000/* Generated from ../../../git/cloog/test/mode.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M, int N) { /* Original iterators. */ int i, j; for (i=0;i<=min(M,N-1);i++) { for (j=0;j<=i;j++) { S1(i,j) ; S2(i,j) ; } for (j=i+1;j<=N;j++) { S2(i,j) ; } } if ((M >= N) && (N >= 0)) { for (j=0;j<=N;j++) { S1(N,j) ; S2(N,j) ; } } if (N >= 0) { for (i=N+1;i<=M;i++) { for (j=0;j<=N;j++) { S1(i,j) ; S2(i,j) ; } for (j=N+1;j<=i;j++) { S1(i,j) ; } } } if (N <= -1) { for (i=0;i<=M;i++) { for (j=0;j<=i;j++) { S1(i,j) ; } } } } cloog-parma-0.16.1/cloog-core/test/forwardsub-1-1-2.good.c0000644000175000017500000000137511321074700017636 00000000000000/* Generated from ../../../git/cloog/test/forwardsub-1-1-2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j) { hash(3); hash(i); hash(j); } #define S4(i,j) { hash(4); hash(i); hash(j); } void test(int M) { /* Original iterators. */ int i, j; S3(1,1) ; S1(2,1) ; S4(2,2) ; for (i=3;i<=M;i++) { S1(i,1) ; for (j=2;j<=i-1;j++) { S2(i,j) ; } S4(i,i) ; } } cloog-parma-0.16.1/cloog-core/test/gauss.good.c0000644000175000017500000000157011321074700016144 00000000000000/* Generated from ../../../git/cloog/test/gauss.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } void test(int M) { /* Scattering iterators. */ int c1, c2; /* Original iterators. */ int i, j, k; if (M >= 2) { for (c2=2;c2<=M;c2++) { for (j=2;j<=M;j++) { S2(1,j,c2) ; } } } for (c1=2;c1<=M-1;c1++) { for (c2=c1+1;c2<=M;c2++) { for (j=1;j<=c1-1;j++) { S1(c1,j,c2) ; } for (j=c1+1;j<=M;j++) { S2(c1,j,c2) ; } } } } cloog-parma-0.16.1/cloog-core/test/cholesky2.c0000644000175000017500000000226111477113144016004 00000000000000/* Generated from ../../../git/cloog/test/cholesky2.cloog by CLooG 0.14.0-333-g4442dac gmp bits in 0.04s. */ if (M >= 1) { for (c2=1;c2<=M-1;c2++) { S1(c2); for (c3=c2+1;c3<=M;c3++) { S4(c2,c3); } } S1(M); if (M >= 3) { S3(1); } if (M <= 2) { S3(1); } if (M >= 3) { S6(1,2); for (c2=3;c2<=M;c2++) { S6(1,c2); for (i=2;i<=c2-1;i++) { S5(i,c2,1); } } } if (M == 2) { S6(1,2); } for (c1=3;c1<=3*M-7;c1++) { if ((c1+2)%3 == 0) { S3((c1+2)/3); } if (c1%3 == 0) { S2((c1+3)/3,c1/3); } if ((c1+1)%3 == 0) { S6((c1+1)/3,(c1+4)/3); } if (c1%3 == 0) { S2((c1+6)/3,c1/3); } for (c2=ceild(c1+7,3);c2<=M;c2++) { if ((c1+1)%3 == 0) { S6((c1+1)/3,c2); } if (c1%3 == 0) { S2(c2,c1/3); } if ((c1+1)%3 == 0) { for (i=ceild(c1+4,3);i<=c2-1;i++) { S5(i,c2,(c1+1)/3); } } } } if (M >= 3) { for (c2=M-1;c2<=M;c2++) { S2(c2,M-2); } } if (M >= 3) { S3(M-1); } if (M >= 3) { S6(M-1,M); } if (M >= 2) { S2(M,M-1); } if (M >= 2) { S3(M); } } cloog-parma-0.16.1/cloog-core/test/iftest.c0000644000175000017500000000024011327562503015373 00000000000000/* Generated from ../../../git/cloog/test/iftest.cloog by CLooG 0.14.0-245-gd8c1718 gmp bits in 0.00s. */ if (n >= 1) { for (i=1;i<=n;i++) { S1(i); } } cloog-parma-0.16.1/cloog-core/test/singleton.cloog0000644000175000017500000000011111321074700016744 00000000000000c 0 2 0 2 1 0 2 0 0 0 1 0 2 0 0 0 0 2 1 3 0 -1 0 1 3 0 -1 -1 0 cloog-parma-0.16.1/cloog-core/test/orc.c0000644000175000017500000000144411406126537014670 00000000000000/* Generated from /home/skimo/git/cloog/test/orc.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.02s. */ S1(0); for (p2=0;p2<=22;p2++) { if (p2%2 == 0) { S2(0,p2/2); S3(0,p2/2); } } for (p1=2;p1<=6;p1++) { if ((p1+1)%3 == 0) { S4((p1-2)/3); } if (p1%3 == 0) { S1(p1/3); } if (p1 == 4) { for (p2=0;p2<=20;p2++) { if (p2%2 == 0) { S2(1,p2/2); S3(1,p2/2); } } } } for (p2=0;p2<=18;p2++) { if (p2%2 == 0) { S2(2,p2/2); S3(2,p2/2); } } S4(2); S5(0); for (p2=0;p2<=9;p2++) { S6(0,p2); } for (p1=2;p1<=42;p1++) { if ((p1+1)%3 == 0) { S7((p1-2)/3); } if (p1%3 == 0) { S5(p1/3); } for (p2=0;p2<=9;p2++) { if ((p1+2)%3 == 0) { S6((p1-1)/3,p2); } } } for (p2=0;p2<=9;p2++) { S6(14,p2); } S7(14); cloog-parma-0.16.1/cloog-core/test/lu.c0000644000175000017500000000065111323312273014514 00000000000000/* Generated from ../../../git/cloog/test/lu.cloog by CLooG 0.14.0-238-gb1cb779 gmp bits in 0.01s. */ if (n >= 2) { for (j=2;j<=n;j++) { S1(1,j); } for (c1=2;c1<=n-1;c1++) { for (c2=2;c2<=n;c2++) { for (i=1;i<=min(c1-1,c2-1);i++) { S2(i,c2,c1); } } for (j=c1+1;j<=n;j++) { S1(c1,j); } } for (c2=2;c2<=n;c2++) { for (i=1;i<=c2-1;i++) { S2(i,c2,n); } } } cloog-parma-0.16.1/cloog-core/test/levenshtein-1-2-3f.f0000644000175000017500000000120011323312273017215 00000000000000! Generated from ../../../git/cloog/test/levenshtein-1-2-3f.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.11s. S1(0,0) S2(1,0) S3(1,1) DO i=2, N S2(i,0) DO j=1, i-1 S6(i,j) END DO S3(i,i) END DO S7(N+1,0) DO j=1, N S6(N+1,j) S8(N+1,j) END DO DO i=N+2, 2*M-N-2 j = FLOOR(REAL(i-N-1)/REAL(2)) S7(i,j) IF (MOD(i+N, 2) == 0) THEN S5(i,(i-N)/2) S8(i,(i-N)/2) END IF DO j=CEILING(REAL(i-N+1)/REAL(2)), FLOOR(REAL(i+N-1)/REAL(2)) S6(i,j) S8(i,j) END DO IF (MOD(i+N, 2) == 0) THEN S4(i,(i+N)/2) S8(i,(i+N)/2) END IF END DO DO i=2*M-N-1, 2*M-2 DO j=i-M+1, M-1 S6(i,j) END DO END DO cloog-parma-0.16.1/cloog-core/test/gesced3.cloog0000644000175000017500000000061111321074700016264 00000000000000# language: C c # parametres {n | n>=m m>=2} 2 4 # m n 1 1 -1 1 0 1 1 0 -2 0 2 # Number of statements 1 # {i | 1<=i<=n} 2 5 # i m n 1 1 1 0 0 -1 1 -1 0 1 0 0 0 0 1 # {i | 1<=i<=n} 2 5 # i m n 1 1 1 0 0 -1 1 -1 0 1 0 0 0 0 0 2 # Et les instructions de chunking (sol triviale)... 1 6 # c1 i m n 1 0 1 -1 -1 0 0 1 6 # c1 i m n 1 0 1 -1 -2 0 0 0 cloog-parma-0.16.1/cloog-core/test/otl.c0000644000175000017500000000630311406126537014702 00000000000000/* Generated from ../../../git/cloog/test/otl.cloog by CLooG 0.14.0-278-gcf1f323 gmp bits in 0.26s. */ if ((M >= 3) && (N >= 4)) { for (outerTimeTileScatter=1;outerTimeTileScatter<=floord(2*M+2*N-7,5);outerTimeTileScatter++) { for (outerProcTileScatter1=max(ceild(outerTimeTileScatter,2),ceild(5*outerTimeTileScatter-M-2,5));outerProcTileScatter1<=min(min(floord(M+2*N-5,5),floord(5*outerTimeTileScatter+2*N+1,10)),outerTimeTileScatter);outerProcTileScatter1++) { for (outerProcTileScatter2=max(max(max(max(ceild(outerTimeTileScatter-outerProcTileScatter1-1,2),ceild(5*outerProcTileScatter1-N-1,5)),ceild(5*outerTimeTileScatter-M-N+1,5)),ceild(5*outerTimeTileScatter-N-2,10)),outerTimeTileScatter-outerProcTileScatter1-1);outerProcTileScatter2<=min(min(min(floord(M+N-2,5),floord(5*outerTimeTileScatter-5*outerProcTileScatter1+N+4,5)),floord(5*outerTimeTileScatter+N+3,10)),outerProcTileScatter1);outerProcTileScatter2++) { for (innerTimeTileScatter=max(max(max(ceild(10*outerProcTileScatter1-2*N,5),ceild(10*outerProcTileScatter2-N-2,5)),ceild(5*outerProcTileScatter1+5*outerProcTileScatter2-N-3,5)),outerTimeTileScatter);innerTimeTileScatter<=min(min(min(min(min(floord(2*M+2*N-6,5),floord(5*outerProcTileScatter1+M+3,5)),floord(5*outerProcTileScatter2+M+N,5)),floord(10*outerProcTileScatter2+N+3,5)),outerTimeTileScatter+1),outerProcTileScatter1+outerProcTileScatter2+1);innerTimeTileScatter++) { for (innerProcTileScatter1=max(max(max(max(ceild(innerTimeTileScatter,2),ceild(5*innerTimeTileScatter-M-2,5)),ceild(5*outerTimeTileScatter-M-1,5)),outerProcTileScatter1),outerTimeTileScatter-outerProcTileScatter2);innerProcTileScatter1<=min(min(min(min(min(min(min(floord(M+2*N-4,5),floord(5*outerProcTileScatter2+N+2,5)),floord(-5*outerProcTileScatter2+5*innerTimeTileScatter+N+4,5)),floord(5*outerTimeTileScatter-5*outerProcTileScatter2+N+5,5)),floord(5*innerTimeTileScatter+2*N+2,10)),floord(5*outerTimeTileScatter+2*N+3,10)),outerTimeTileScatter),outerProcTileScatter1+1);innerProcTileScatter1++) { for (innerProcTileScatter2=outerProcTileScatter2;innerProcTileScatter2<=outerProcTileScatter2;innerProcTileScatter2++) { for (outerTimeTileIter=outerTimeTileScatter;outerTimeTileIter<=outerTimeTileScatter;outerTimeTileIter++) { for (outerProcTileIter1=outerProcTileScatter1;outerProcTileIter1<=outerProcTileScatter1;outerProcTileIter1++) { for (outerProcTileIter2=outerProcTileScatter2;outerProcTileIter2<=outerProcTileScatter2;outerProcTileIter2++) { for (innerTimeTileIter=innerTimeTileScatter;innerTimeTileIter<=innerTimeTileScatter;innerTimeTileIter++) { for (innerProcTileIter1=innerProcTileScatter1;innerProcTileIter1<=innerProcTileScatter1;innerProcTileIter1++) { for (innerProcTileIter2=outerProcTileScatter2;innerProcTileIter2<=outerProcTileScatter2;innerProcTileIter2++) { S1(outerTimeTileIter,outerProcTileIter1,outerProcTileIter2,innerTimeTileIter,innerProcTileIter1,innerProcTileIter2); } } } } } } } } } } } } } cloog-parma-0.16.1/cloog-core/test/vasilache.cloog0000644000175000017500000002607511321074700016722 00000000000000# A SCoP from matmul (matmul.B.main.scop1.cloog) to check normalization # # Options: # cloog -f 8 -l 9 vasilache.cloog # # Correct: # S1; # S2; # for (p0=0;p0<=N-1;p0++) { # for (p1=0;p1<=N-1;p1++) { # S4(i = p0,j = p1); # S5(i = p0,j = p1); # } # } # for (p0=0;p0<=N-1;p0++) { # for (p1=0;p1<=N-1;p1++) { # for (p2=0;p2<=floord(N-1,32);p2++) { # S7(i = p0,j = p1,k = p2,l = 32*p2); # for (p3=32*p2+1;p3<=min(N-1,32*p2+31);p3++) { # S6(i = p0,j = p1,k = p2,l = p3-1); # S7(i = p0,j = p1,k = p2,l = p3); # } # if (p2 >= ceild(N-32,32)) { # S6(i = p0,j = p1,k = p2,l = N-1); # } # if (p2 <= floord(N-33,32)) { # S6(i = p0,j = p1,k = p2,l = 32*p2+31); # } # } # } # } # S8; # # # NOT correct: # S1 ; # S2 ; # for (p1=0;p1<=N-1;p1++) { # for (p3=0;p3<=N-1;p3++) { # S4(i = p1,j = p3) ; # S5(i = p1,j = p3) ; # } # } # for (p1=0;p1<=N-1;p1++) { # for (p3=0;p3<=N-1;p3++) { # for (p5=0;p5<=floord(N-1,32);p5++) { # if (p5 <= 0) { # S7(i = p1,j = p3,k = p5,l = 0) ; # } # p7 = 32*p5 ; # l = 32*p5 ; # S7(i = p1,j = p3,k = p5) ; # for (p7=max(32*p5+1,1);p7<=min(32*p5+31,N-1);p7++) { # l = p7-1 ; # S6(i = p1,j = p3,k = p5) ; # S7(i = p1,j = p3,k = p5,l = p7) ; # } # if (p5 >= ceild(N-32,32)) { # l = N-1 ; # S6(i = p1,j = p3,k = p5) ; # } # p7 = 32*p5+32 ; # l = 32*p5+31 ; # S6(i = p1,j = p3,k = p5) ; # } # } # } # S8 ; c # language is C # ---------- CONTEXT ---------- # Context (constraints on parameters) 2 4 # 1 lines, 4 columns 1 -1 0 3 1 0 1 -100 0 # Automatically find parameter names # ---------- STATEMENTS ---------- 8 # Number of statements 1 # Statement has a non resticted domain 1 4 1 0 0 0 0 0 0 1 # Statement has a non resticted domain 1 4 1 0 0 0 0 0 0 1 # Statement has 1 domain 1 4 1 1 0 -79 0 0 0 1 # Statement has 1 domain 4 6 1 1 0 0 0 0 1 -1 0 0 1 -1 1 0 1 0 0 0 1 0 -1 0 1 -1 0 0 0 1 # Statement has 1 domain 4 6 1 1 0 0 0 0 1 -1 0 0 1 -1 1 0 1 0 0 0 1 0 -1 0 1 -1 0 0 0 1 # Statement has 1 domain 8 8 1 1 0 0 0 0 0 0 1 -1 0 0 0 0 1 -1 1 0 1 0 0 0 0 0 1 0 -1 0 0 0 1 -1 1 0 0 0 1 0 0 0 1 0 0 0 -1 0 1 -1 1 0 0 -32 1 0 0 0 1 0 0 32 -1 0 0 31 0 0 0 1 # Statement has 1 domain 8 8 1 1 0 0 0 0 0 0 1 -1 0 0 0 0 1 -1 1 0 1 0 0 0 0 0 1 0 -1 0 0 0 1 -1 1 0 0 0 1 0 0 0 1 0 0 0 -1 0 1 -1 1 0 0 -32 1 0 0 0 1 0 0 32 -1 0 0 31 0 0 0 1 # Statement has a non resticted domain 1 4 1 0 0 0 0 0 0 0 # Automatically find iterator names. # ---------- SCATTERING FUNCTIONS ---------- 8 # Number of scattering functions 9 13 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 # Beta 4 9 13 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 -1 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 # Beta 4 9 13 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 -2 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 # Beta 4 9 15 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -3 # Beta 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 4 9 15 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -3 # Beta 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -1 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 4 9 17 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4 # Beta 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 -1 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 4 9 17 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -4 # Beta 0 0 0 1 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 # Beta 4 9 13 # p0 p1 p2 p3 p4 p5 p6 p7 p8 0 1 0 0 0 0 0 0 0 0 0 0 -5 # Beta 0 0 0 1 0 0 0 0 0 0 0 0 0 0 # Alpha & Gamma 1 0 0 0 1 0 0 0 0 0 0 0 0 0 # Beta 1 0 0 0 0 1 0 0 0 0 0 0 0 0 # Alpha & Gamma 2 0 0 0 0 0 1 0 0 0 0 0 0 0 # Beta 2 0 0 0 0 0 0 1 0 0 0 0 0 0 # Alpha & Gamma 3 0 0 0 0 0 0 0 1 0 0 0 0 0 # Beta 3 0 0 0 0 0 0 0 0 1 0 0 0 0 # Alpha & Gamma 4 0 0 0 0 0 0 0 0 0 1 0 0 0 # Beta 4 1 # Set the scattering parameter names. p0 p1 p2 p3 p4 p5 p6 p7 p8 cloog-parma-0.16.1/cloog-core/test/nul_basic2.cloog0000644000175000017500000000133511321074700016774 00000000000000# Optimal code is in fact : # # for (i=0;i<=M;i+=2) { # S1 ; # } # language: C c # parameter n 1 3 # n 1 1 1 -2 1 n 2 # Number of statements 1 # {i, j | i=2*j; 1<=i<=n} 3 5 # i j n 1 0 1 -2 0 0 1 1 0 0 -1 1 -1 0 1 0 0 0 0 1 # {i, j | i=4*j; 1<=i<=n} 3 5 # i j n 1 0 1 -4 0 0 1 1 0 0 -1 1 -1 0 1 0 0 0 0 0 0 # Scattering functions 5 10 # t1 t2 t3 t4 t5 i j n 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 5 10 # t1 t2 t3 t4 t5 i j n 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/vivien.good.c0000644000175000017500000004353111321074700016325 00000000000000/* Generated from ../../../git/cloog/test/vivien.cloog by CLooG 0.14.0-76-gef19709 gmp bits in 0.78s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i) { hash(3); hash(i); } #define S4(i,j) { hash(4); hash(i); hash(j); } #define S5(i,j,k) { hash(5); hash(i); hash(j); hash(k); } #define S6(i,j) { hash(6); hash(i); hash(j); } void test(int n) { /* Scattering iterators. */ int p1, p2, p3; /* Original iterators. */ int i, j, k; for (p1=-54*n+4;p1<=min(4,4*n+1);p1++) { if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } } if (n >= 1) { S3(1) ; } if (n >= 2) { S4(1,2) ; S1(2) ; S6(1,2) ; } for (p1=max(-54*n+4,4*n+2);p1<=6;p1++) { if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } } for (p1=7;p1<=min(min(2*n+2,9),floord(4*n+12,3));p1++) { for (p2=ceild(-p1+2,4);p2<=-1;p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } if (p1%2 == 0) { j = (p1-2)/2 ; S6(1,(p1-2)/2) ; } if ((p1+1)%2 == 0) { i = (p1-3)/2 ; S2((p1-3)/2,1) ; } } for (p1=2*n+3;p1<=min(9,4*n-2);p1++) { for (p2=ceild(-p1+2,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } if (n >= 4) { S4(2,3) ; S4(1,4) ; S5(2,3,1) ; S6(2,3) ; S1(4) ; S6(1,4) ; } if (n == 3) { S4(2,3) ; S5(2,3,1) ; S6(2,3) ; S1(4) ; } for (p1=11;p1<=min(12,2*n+2);p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p2=ceild(-p1+6,4);p2<=-1;p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } if (p1%2 == 0) { j = (p1-4)/2 ; S6(2,(p1-4)/2) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } if (p1%2 == 0) { j = (p1-2)/2 ; S6(1,(p1-2)/2) ; } if ((p1+1)%2 == 0) { i = (p1-3)/2 ; S2((p1-3)/2,1) ; } for (p2=2;p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } if (n == 4) { S2(4,1) ; S2(3,2) ; } if (n == 5) { S3(3) ; S2(5,1) ; S2(4,2) ; } if (n >= 6) { S3(3) ; S2(5,1) ; S2(4,2) ; } if ((n <= 4) && (n >= 4)) { p1 = 2*n+4 ; for (p2=ceild(-n-1,2);p2<=-2;p2++) { j = p2+n+2 ; S4(-p2,p2+n+2) ; } for (p2=ceild(-n+1,2);p2<=-1;p2++) { for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; j = p2+n+1 ; S5(-p2+1,p2+n+1,p3) ; } } S6(2,n) ; i = n+1 ; S1(n+1) ; } for (p1=14;p1<=2*n+2;p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } p2 = floord(-p1+9,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } for (p2=ceild(-p1+10,4);p2<=-1;p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } if (p1%2 == 0) { j = (p1-4)/2 ; S6(2,(p1-4)/2) ; } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } if (p1%2 == 0) { j = (p1-2)/2 ; S6(1,(p1-2)/2) ; } if ((p1+1)%2 == 0) { i = (p1-3)/2 ; S2((p1-3)/2,1) ; } for (p2=2;p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } if ((n <= 4) && (n >= 4)) { S3(3) ; for (p2=-n+6;p2<=2;p2++) { i = -p2+6 ; S2(-p2+6,p2) ; } } if (n >= 7) { p1 = 2*n+3 ; if ((n+1)%2 == 0) { i = (n+1)/2 ; S3((n+1)/2) ; } S2(n,1) ; for (p2=2;p2<=floord(n,2);p2++) { i = -p2+n+1 ; S2(-p2+n+1,p2) ; } } if ((n <= 6) && (n >= 6)) { p1 = 2*n+3 ; if ((n+1)%2 == 0) { i = (n+1)/2 ; S3((n+1)/2) ; } S2(n,1) ; for (p2=2;p2<=floord(n,2);p2++) { i = -p2+n+1 ; S2(-p2+n+1,p2) ; } } if (n >= 7) { p1 = 2*n+4 ; for (p2=ceild(-n-1,2);p2<=floord(-2*n+1,4);p2++) { j = p2+n+2 ; S4(-p2,p2+n+2) ; } for (p2=ceild(-n+1,2);p2<=floord(-2*n+5,4);p2++) { j = p2+n+2 ; S4(-p2,p2+n+2) ; for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; j = p2+n+1 ; S5(-p2+1,p2+n+1,p3) ; } } for (p2=ceild(-n+3,2);p2<=-2;p2++) { j = p2+n+2 ; S4(-p2,p2+n+2) ; i = -p2+2 ; j = p2+n ; S6(-p2+2,p2+n) ; for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; j = p2+n+1 ; S5(-p2+1,p2+n+1,p3) ; } } j = n-1 ; S6(3,n-1) ; S5(2,n,1) ; S6(2,n) ; i = n+1 ; S1(n+1) ; } if ((n <= 5) && (n >= 5)) { p1 = 2*n+4 ; for (p2=ceild(-n-1,2);p2<=floord(-2*n+1,4);p2++) { j = p2+n+2 ; S4(-p2,p2+n+2) ; } for (p2=ceild(-n+1,2);p2<=-2;p2++) { j = p2+n+2 ; S4(-p2,p2+n+2) ; for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; j = p2+n+1 ; S5(-p2+1,p2+n+1,p3) ; } } for (p2=-1;p2<=floord(-2*n+5,4);p2++) { for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; j = p2+n+1 ; S5(-p2+1,p2+n+1,p3) ; } } for (p2=ceild(-n+3,2);p2<=-1;p2++) { i = -p2+2 ; j = p2+n ; S6(-p2+2,p2+n) ; for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; j = p2+n+1 ; S5(-p2+1,p2+n+1,p3) ; } } S6(2,n) ; i = n+1 ; S1(n+1) ; } if ((n <= 6) && (n >= 6)) { p1 = 2*n+4 ; for (p2=ceild(-n-1,2);p2<=floord(-2*n+1,4);p2++) { j = p2+n+2 ; S4(-p2,p2+n+2) ; } for (p2=ceild(-n+1,2);p2<=-2;p2++) { j = p2+n+2 ; S4(-p2,p2+n+2) ; for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; j = p2+n+1 ; S5(-p2+1,p2+n+1,p3) ; } } j = n-1 ; S6(3,n-1) ; S5(2,n,1) ; S6(2,n) ; i = n+1 ; S1(n+1) ; } for (p1=2*n+5;p1<=min(4*n-10,2*n+58);p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } p2 = floord(-p1+9,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } p2 = floord(-p1+2*n+2,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } for (p2=ceild(-p1+2*n+3,2);p2<=min(floord(-p1+2*n+4,2),-1);p2++) { i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=max(4*n-9,2*n+5);p1<=min(4*n-8,2*n+58);p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } p2 = floord(-p1+2*n+2,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } for (p2=ceild(-p1+2*n+3,2);p2<=min(floord(-p1+2*n+4,2),-1);p2++) { i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=max(4*n-7,2*n+5);p1<=min(4*n-6,2*n+58);p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } for (p2=ceild(-p1+2*n+1,2);p2<=floord(-p1+9,4);p2++) { for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n+2,2);p2++) { i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } for (p2=ceild(-p1+2*n+3,2);p2<=min(floord(-p1+2*n+4,2),-1);p2++) { i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=max(max(4*n-5,14),2*n+5);p1<=min(4*n-2,2*n+58);p1++) { for (p2=ceild(-p1+2,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } } for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+6,4));p2<=floord(-p1+2*n+2,2);p2++) { for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } for (p2=max(ceild(-p1+10,4),ceild(-p1+2*n+3,2));p2<=min(floord(-p1+2*n+4,2),-1);p2++) { i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } if ((n >= 2) && (n <= 29)) { p1 = 4*n-1 ; p2 = n-1 ; j = n-1 ; S2(n,n-1) ; } for (p1=2*n+59;p1<=4*n-10;p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } p2 = floord(-p1+9,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } p2 = floord(-p1+2*n+2,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } p2 = floord(-p1+2*n+4,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=max(4*n-9,2*n+59);p1<=4*n-8;p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } p2 = floord(-p1+2*n+2,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } p2 = floord(-p1+2*n+4,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=max(4*n-7,2*n+59);p1<=4*n-6;p1++) { p2 = floord(-p1+5,4) ; if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p2=ceild(-p1+6,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } for (p2=ceild(-p1+2*n+1,2);p2<=floord(-p1+9,4);p2++) { for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n+2,2);p2++) { i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } p2 = floord(-p1+2*n+4,2) ; i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=max(4*n-5,2*n+59);p1<=4*n-2;p1++) { for (p2=ceild(-p1+2,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { j = (p1+2*p2)/2 ; S4(-p2,(p1+2*p2)/2) ; } } for (p2=max(ceild(-p1+2*n+1,2),ceild(-p1+6,4));p2<=floord(-p1+2*n+2,2);p2++) { for (p3=1;p3<=-p2;p3++) { i = -p2+1 ; if (p1%2 == 0) { j = (p1+2*p2-2)/2 ; S5(-p2+1,(p1+2*p2-2)/2,p3) ; } } } for (p2=max(ceild(-p1+10,4),ceild(-p1+2*n+3,2));p2<=floord(-p1+2*n+4,2);p2++) { i = -p2+2 ; if (p1%2 == 0) { j = (p1+2*p2-4)/2 ; S6(-p2+2,(p1+2*p2-4)/2) ; } } if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { i = (p1-2*p2-1)/2 ; S2((p1-2*p2-1)/2,p2) ; } } } for (p1=max(4*n,7);p1<=min(4*n+1,2*n+58);p1++) { if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } } if (n >= 30) { p1 = 4*n-1 ; p2 = n-1 ; j = n-1 ; S2(n,n-1) ; } for (p1=max(max(-54*n+4,4*n+2),7);p1<=2*n+58;p1++) { if (p1%2 == 0) { i = (p1-2)/2 ; S1((p1-2)/2) ; } } for (p1=max(4*n,2*n+59);p1<=4*n+1;p1++) { if ((p1+3)%4 == 0) { i = (p1-1)/4 ; S3((p1-1)/4) ; } } } cloog-parma-0.16.1/cloog-core/test/thomasset.c0000644000175000017500000000203711467774607016131 00000000000000/* Generated from /home/skimo/git/cloog/test/thomasset.cloog by CLooG 0.14.0-292-g2bfd6ac gmp bits in 0.04s. */ if (n >= 1) { for (c1=0;c1<=floord(n-4,3);c1++) { for (i=3*c1+1;i<=3*c1+3;i++) { S1(i,c1); } } c1 = floord(n-1,3); if (c1 >= ceild(n-2,3)) { if (c1 == 0) { S1(1,0); for (j=1;j<=n;j++) { S2(1,j,0,0,0); } } if (c1 >= 1) { for (j=1;j<=2;j++) { S2(1,j,0,c1,0); } } for (i=max(2,3*c1+1);i<=n;i++) { S1(i,c1); } } if (3*c1 == n-3) { for (i=n-2;i<=n;i++) { if (n%3 == 0) { S1(i,(n-3)/3); } } } if (c1 >= ceild(n-2,3)) { for (c2=1;c2<=n-1;c2++) { for (j=1;j<=2;j++) { S2(c2+1,j,0,c1,0); } } } for (c1=ceild(n,3);c1<=floord(2*n,3);c1++) { for (c2=0;c2<=n-1;c2++) { for (j=max(1,3*c1-n);j<=min(n,3*c1-n+4);j++) { p = max(ceild(3*c1-j,3),ceild(n-2,3)); if (p <= min(floord(n,3),floord(3*c1-j+2,3))) { S2(c2+1,j,0,p,c1-p); } } } } } cloog-parma-0.16.1/cloog-core/test/iftest2.good.c0000644000175000017500000000125511321074700016402 00000000000000/* Generated from ../../../git/cloog/test/iftest2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } void test(int M, int N) { /* Original iterators. */ int i, j; if (M >= 1) { for (i=1;i<=N;i++) { for (j=1;j<=M;j++) { if (i <= 2*M) { S1(i,j) ; } if (i >= max(M,2*M+1)) { S1(i,j) ; } } } } } cloog-parma-0.16.1/cloog-core/test/equality2.cloog0000644000175000017500000000514611321074700016676 00000000000000c # Context (0 parameter(s)): 1 2 1 1 1 # Parameter name(s) # Statement number: 2 # Iteration domain of statement 2. 1 13 13 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -2 -998 0 0 0 1 0 0 0 0 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 0 0 0 -2 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 -500 0 0 0 0 0 0 0 1 0 0 0 -2 1 0 0 0 0 0 0 0 0 0 1 0 -2 1 0 0 0 0 0 0 0 0 0 0 1 -1 0 1 0 0 0 0 0 0 0 1 0 0 0 -1 1 0 0 0 0 0 0 0 -1 0 0 0 10000 1 0 0 0 0 0 0 0 0 0 0 1 -1 1 0 0 0 0 0 0 0 0 0 0 -1 9 0 0 0 # For future options. # Iteration domain of statement 3. 1 17 17 0 1 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1 -999 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -2 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -2 -998 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 -1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 -2 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 -1 -500 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 -2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 10000 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 9 0 0 0 # For future options. 1 # Iterator name(s) i0 i1 i2 i3 i4 i5 i6 i7 i8 i9 i10 i11 i12 i13 i14 # No scattering functions. 0 cloog-parma-0.16.1/cloog-core/test/byu98-1-2-3.c0000644000175000017500000000064311406126537015522 00000000000000/* Generated from /home/skimo/git/cloog/test/byu98-1-2-3.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.01s. */ for (i=2;i<=3;i++) { for (j=-i+6;j<=6;j++) { S1(i,j); } } for (i=4;i<=7;i++) { if (i == 4) { for (j=3;j<=4;j++) { S1(i,j); } } if (i >= 6) { S2(i,-i+9); } if (i <= 5) { S1(i,-i+9); S2(i,-i+9); } for (j=max(-i+10,i-1);j<=6;j++) { S1(i,j); } } S2(8,1); cloog-parma-0.16.1/cloog-core/test/stride4.cloog0000644000175000017500000000064711511333434016341 00000000000000# Language: C c # Context: 1 0 3 0 0 0 1 1 # Parameter name(s) t # Statement number: 1 # Iteration domain of statement 1. 1 6 6 2 0 1 1 0 1 0 16 -1 0 0 0 1 0 -1 0 1 1 0 0 0 0 1 -1 0 0 0 99 1 0 0 0 1 0 1 0 0 0 -1 15 0 0 0 # For future options. 1 # Iterator name(s) i0 i1 # No scattering functions. 0 cloog-parma-0.16.1/cloog-core/test/lineality-1-2.cloog0000644000175000017500000000064011321074700017240 00000000000000# language: C c # Context # {M | 2<=M} 2 3 # M 1 1 1 -2 1 0 1 0 2 # Number of statements 1 # {i,j,M | 1<=i<=M; 1<=j<=M} 5 5 # i j M 1 1 1 0 0 -1 1 0 1 0 -1 1 -1 0 1 0 1 0 -1 1 0 1 0 0 0 1 0 0 0 1 # {i,j,M | i=j; 1<=j<=M} 4 5 # i j M 1 0 1 -1 0 0 1 0 1 0 -1 1 0 -1 1 0 1 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/square+triangle-1-1-2-3.c0000644000175000017500000000044111406126537017775 00000000000000/* Generated from /home/skimo/git/cloog/test/square+triangle-1-1-2-3.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.00s. */ for (j=1;j<=M;j++) { S1(1,j); } for (i=2;i<=M;i++) { S1(i,1); for (j=2;j<=i;j++) { S1(i,j); S2(i,j); } for (j=i+1;j<=M;j++) { S1(i,j); } } cloog-parma-0.16.1/cloog-core/test/union.cloog0000644000175000017500000000020711477121367016116 00000000000000c 2 1 3 1 1 -1 1 3 1 -1 -1 0 1 1 2 4 1 1 0 0 1 -1 0 100 0 0 0 0 1 2 2 5 0 -1 1 0 0 1 0 0 -1 10 2 5 0 -1 -1 0 0 1 0 0 1 -11 0 cloog-parma-0.16.1/cloog-core/test/walters.cloog0000644000175000017500000000264611321074700016442 00000000000000# language: C c # parameters 1 2 1 1 1 4 # S1: sub1 1 18 6 1 1 0 0 0 -1 1 -1 0 0 0 10 1 -1 3 0 0 2 1 1 -3 0 0 0 1 0 1 0 0 -1 1 -1 3 0 0 0 1 1 0 -3 0 2 1 -1 0 3 0 0 1 1 0 0 -3 1 1 -1 0 0 3 1 1 1 0 0 0 -1 1 -1 0 0 0 10 1 1 -3 0 0 0 1 -1 3 0 0 2 1 1 0 -3 0 2 1 -1 0 3 0 0 1 1 0 0 -3 1 1 -1 0 0 3 1 0 0 0 # S2: sub2 1 17 6 1 1 0 0 0 -1 1 -1 0 0 0 10 1 -1 0 3 0 0 1 1 0 -3 0 2 1 -1 0 3 0 -2 1 1 -3 0 0 0 1 -1 3 0 0 2 1 1 0 0 -3 1 1 -1 0 0 3 1 1 1 0 0 0 -1 1 -1 0 0 0 10 1 1 -3 0 0 0 1 -1 3 0 0 2 1 1 0 -3 0 2 1 -1 0 3 0 0 1 1 0 0 -3 1 1 -1 0 0 3 1 0 0 0 # S3: sub3 1 18 6 1 -1 0 0 0 10 1 1 0 0 0 -1 1 -1 0 0 3 1 1 1 0 0 -3 1 1 0 0 0 1 -1 1 -1 0 0 3 -1 1 1 -3 0 0 0 1 -1 3 0 0 2 1 1 0 -3 0 2 1 -1 0 3 0 0 1 1 0 0 0 -1 1 -1 0 0 0 10 1 1 -3 0 0 0 1 -1 3 0 0 2 1 1 0 -3 0 2 1 -1 0 3 0 0 1 1 0 0 -3 1 1 -1 0 0 3 1 0 0 0 # S4: enclosing 1 8 6 1 1 0 0 0 -1 1 -1 0 0 0 10 1 1 -3 0 0 0 1 -1 3 0 0 2 1 1 0 -3 0 2 1 -1 0 3 0 0 1 1 0 0 -3 1 1 -1 0 0 3 1 0 0 0 1 i div36 div37 div38 0 0 cloog-parma-0.16.1/cloog-core/test/guide.cloog0000644000175000017500000000136711321074700016055 00000000000000# Language is C c # The context (no constraints on parameters) 1 4 # 1 lines and 4 columns # m n 1 1 0 0 0 # 0 >= 0, always true 0 # CLooG will set parameters names automatically 2 # The number of statements 2 # First statement # The first domain 3 5 # 3 lines and 5 columns # i m n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # i <= n 1 -1 2 0 0 # i <= 2*m # The second domain 3 5 # 3 lines and 5 columns # i m n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # i <= n 1 1 -1 0 0 # i >= m 0 0 0 1 # Second statement 2 5 # 4 lines and 6 columns # i m n 1 1 1 0 -1 -1 # i >= 1 1 -1 0 2 0 # i <= n 0 0 0 0 # CLooG will set iterators names automatically 0 cloog-parma-0.16.1/cloog-core/test/iftestf.f0000644000175000017500000000023611327562503015551 00000000000000! Generated from ../../../git/cloog/test/iftestf.cloog by CLooG 0.14.0-245-gd8c1718 gmp bits in 0.00s. IF (n >= 1) THEN DO i=1, n S1(i) END DO END IF cloog-parma-0.16.1/cloog-core/test/byu98-1-2-3.cloog0000644000175000017500000000163611321074700016374 00000000000000# Here is the result given by an old CLooG (the same was given up to 0.12.2), # the difference with the new constant spreading technique of 0.14.0 is # one of the most beautiful. # # /* Generated by CLooG v0.10.7 */ # for (i=2;i<=3;i++) { # for (j=-i+6;j<=6;j++) { # S1 ; # } # } # for (j=4-1;j<=-(4)+8;j++) { # S1(i = 4) ; # } # j = -(4)+9 ; # S1(i = 4) ; # S2(i = 4) ; # for (j=-(4)+10;j<=6;j++) { # S1(i = 4) ; # } # S1(i = 5,j = 4) ; # S2(i = 5,j = 4) ; # for (j=5;j<=6;j++) { # S1(i = 5) ; # } # for (i=6;i<=7;i++) { # j = -i+9 ; # S2 ; # for (j=i-1;j<=6;j++) { # S1 ; # } # } # S2(i = 8,j = 1) ; # language: C c # Context #{ | 1>=0} 1 2 1 1 0 2 # Number of statements 1 # {i,j | (-j+6,2)<=i<=j+1; 3<=j<=6} 5 4 # i j 1 1 1 1 -6 1 1 0 -2 1 0 1 -3 1 0 -1 6 1 -1 1 1 0 0 0 1 # {i,j | i=-j+9; 1<=j<=5} 3 4 0 1 1 -9 1 0 1 -1 1 0 -1 5 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/donotsimp.cloog0000644000175000017500000000167411321074700016775 00000000000000# Language c # Context # {n>=20} 1 3 1 1 -20 0 # Number of statments 2 1 # {i,j | 0<=i<=10 1<=j<=i} 4 5 1 1 0 0 -1 1 -1 0 0 10 1 0 1 0 -1 1 1 -1 0 0 0 0 0 1 # {i,j | 0<=i<=10 11<=j<=n} 4 5 1 1 0 0 -1 1 -1 0 0 10 1 0 1 0 -11 1 0 -1 1 0 0 0 0 0 # Scattering functions 2 5 10 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 5 10 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 0 1 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/rectangle.cloog0000644000175000017500000000046011321074700016715 00000000000000# language: C c # parameter {n | n>= 0} 1 3 # n 1 1 1 0 1 n 1 # Number of statements: 1 # {ii, i | 0<=i<=n 0<=j<=n} 4 5 # i j n 1 1 1 0 0 0 1 -1 0 1 0 1 0 1 0 0 1 0 -1 1 0 0 0 0 0 1 # Scattering functions 1 6 # c1 j i n 1 0 1 -1 -1 0 0 0 cloog-parma-0.16.1/cloog-core/test/basic-bounds-3.cloog0000644000175000017500000000025011321074700017457 00000000000000# language: C c # Context 2 3 # M 1 1 1 0 1 0 1 0 1 # Number of statements 1 # 3 4 # i M 1 1 1 0 0 1 -1 1 0 1 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/multi-stride.c0000644000175000017500000000016011323312273016511 00000000000000/* Generated from ../../../git/cloog/test/multi-stride.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ cloog-parma-0.16.1/cloog-core/test/stride.cloog0000644000175000017500000000021711321074700016243 00000000000000c 0 2 0 2 1 1 3 0 -1 25 -1 0 0 1 3 4 1 1 0 -3 1 -1 0 100 0 1 -3 0 0 0 0 0 2 2 5 0 -1 0 1 0 0 0 -1 0 0 2 6 0 -1 0 1 0 0 0 0 -1 0 1 0 0 cloog-parma-0.16.1/cloog-core/test/stride.good.c0000644000175000017500000000120411321074700016306 00000000000000/* Generated from stride.cloog by CLooG 0.14.0-200-g26bdb56 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test() { /* Scattering iterators. */ int c1, c2; /* Original iterators. */ int i, j; for (c1=3;c1<=100;c1++) { if (c1 == 25) { S1(25); } if (c1%3 == 0) { S2(c1,c1/3); } } } cloog-parma-0.16.1/cloog-core/test/levenshtein-1-2-3.cloog0000644000175000017500000000355211321074700017737 00000000000000# language: C c # Context # {length,width | width+2<=length; 1<=width} 3 4 # M N 1 1 1 -1 -2 1 0 1 -1 1 0 0 1 0 8 # Number of statements 1 # {t1,t2,length,width | t1=0; t2=0; width+2<=length; 1<=width} 5 6 # i j M N 1 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 -1 -2 1 0 0 0 1 -1 1 0 0 0 0 1 0 0 0 1 # {t1,t2,length,width | 1<=t1<=width; t2=0; width+2<=length} 5 6 # i j M N 1 0 0 1 0 0 0 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 0 1 -1 -2 1 0 0 0 0 1 0 0 0 1 # {t1,t2,length,width | t1=t2; 1<=t2<=width; width+2<=length} 5 6 # i j M N 1 0 1 -1 0 0 0 1 0 1 0 0 -1 1 0 -1 0 1 0 1 0 0 1 -1 -2 1 0 0 0 0 1 0 0 0 1 # {t1,t2,length,width | t1=2t2-width; width+1<=t2<=length-1; 1<=width} 5 6 # i j M N 1 0 1 -2 0 1 0 1 0 1 0 -1 -1 1 0 -1 1 0 -1 1 0 0 0 1 -1 1 0 0 0 0 1 0 0 0 1 # {t1,t2,length,width | t1=2t2+width; 1<=t2<=length-width-1; 1<=width} 5 6 # i j M N 1 0 1 -2 0 -1 0 1 0 1 0 0 -1 1 0 -1 1 -1 -1 1 0 0 0 1 -1 1 0 0 0 0 1 0 0 0 1 # {t1,t2,length,width | (2t2-width+1,t2+1)<=t1<=(t2+length-1,2t2+width-1); 1<=t2<=length-1; width+2<=length} 8 6 # i j M N 1 1 1 -2 0 1 -1 1 1 -1 0 0 -1 1 -1 1 1 0 -1 1 -1 2 0 1 -1 1 0 1 0 0 -1 1 0 -1 1 0 -1 1 0 0 1 -1 -2 1 0 0 0 0 1 0 0 0 1 # {t1,t2,length,width | (width+1,2t2+width+1)<=t1<=(2length-width-2,2t2+width+2); width+2<=length; 1<=width} 6 6 # i j M N 1 1 1 0 0 -1 -1 1 1 -2 0 -1 -1 1 -1 0 2 -1 -2 1 -1 2 0 1 2 1 0 0 1 -1 -2 1 0 0 0 1 -1 0 0 0 1 # {t1,t2,length,width | (width+1,2t2-width)<=t1<=(2t2+width,2length-width-2); width+2<=length; 1<=width} 7 6 # i j M N 1 1 1 0 0 -1 -1 1 1 -2 0 1 0 1 -1 2 0 1 0 1 -1 0 2 -1 -2 1 0 0 1 -1 -2 1 0 0 0 1 -1 1 0 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/yosrf.cloog0000644000175000017500000000155211321074700016116 00000000000000# language: FORTRAN f # One parameter : n 1 3 # n 1 1 0 1 # We want to set the parameter names... 1 # and 'n' is the name of the unique parameter n 2 # Number of statements: 2. 1 # {i, j | 1<=i<=n-1; i+1<=j<=n} 4 5 # i j n 1 1 1 0 0 -1 1 -1 0 1 -1 1 -1 1 0 -1 1 0 -1 1 0 0 0 0 1 # {i, j, k | 1<=i<=n-1; i+1<=j<=n i+1<=k<=n} 6 6 # i j k n 1 1 1 0 0 0 -1 1 -1 0 0 1 -1 1 -1 1 0 0 -1 1 0 -1 0 1 0 1 -1 0 1 0 -1 1 0 0 -1 1 0 0 0 0 # We want to let CLooG set the iterator names. 0 2 # Scattering functions 1 6 # c1 i j n 1 0 1 -1 0 0 0 1 7 # c1 i j k n 1 0 1 0 0 -1 0 0 1 proc 2 # Scattering functions 3 8 # c1 c2 c3 i j n 1 0 1 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 3 9 # c1 c2 c3 i j k n 1 0 1 0 0 0 0 -1 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 0 0 -1 0 0 0 cloog-parma-0.16.1/cloog-core/test/vivien.cloog0000644000175000017500000000573111321074700016257 00000000000000# Context c # output in language C # no constraints on parameters 1 3 # 1 line and 3 columns # n 1 1 0 0 # 0 >= 0 always true 1 # Setting manually the parameter' sname n # The name # -------------------- Statements ------------------ 6 # Number of statements 1 # First statement: 1 domain # First domain 2 4 # 2 lines and 4 columns # i n 1 1 1 27 -1 # i >= 1 1 -1 1 28 # n >= i 0 0 0 1 # Second statement: 1 domain # First domain 4 5 # 4 lines and 5 columns # i k n 1 1 1 29 0 -1 # i >= 1 1 -1 0 1 0 # n >= i 1 0 1 0 -1 # k >= 1 1 1 -1 0 -1 # k <= i-1 0 0 0 1 # Third statement: 1 domain # First domain 2 4 # 2 lines and 4 columns # i n 1 1 1 0 -1 # i >= 1 1 -1 1 0 # n >= i 0 0 0 1 # Fourth statement: 1 domain # First domain 4 5 # 4 lines and 5 columns # i j n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # n >= i 1 -1 1 0 -1 # j >= i+1 1 0 -1 1 0 # j <= n 0 0 0 1 # Fifth statement: 1 domain # First domain 6 6 # 6 lines and 6 columns # i j k n 1 1 1 0 0 0 -1 # i >= 1 1 -1 0 0 1 0 # n >= i 1 -1 1 0 0 -1 # j >= i+1 1 0 -1 0 1 0 # j <= n 1 0 0 1 0 -1 # k >= 1 1 1 0 -1 0 -1 # k <= i-1 0 0 0 1 # Sixth statement: 1 domain # First domain 4 5 # 4 lines and 5 columns # i j n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # n >= i 1 -1 1 0 -1 # j >= i+1 1 0 -1 1 0 # j <= n 0 0 0 1 # We manually set the iterator names i j k # ------------------------ Scattering ------------------- 6 # Number of scattering functions # First function 3 7 # 3 lines and 7 columns # p1 p2 p3 i n 1 0 1 0 0 -2 0 -2 # p1 = 2i+2 0 0 1 0 0 0 0 # p2 = 0 0 0 0 1 0 0 0 # p3 = 0 # Second function 3 8 # 3 lines and 8 columns # p1 p2 p3 i j n 1 0 1 0 0 -2 -2 0 -1 # p1 = 2i+2j+1 0 0 1 0 0 -1 0 0 # p2 = j 0 0 0 1 0 0 0 0 # p3 = 0 # Third function 3 7 # 3 lines and 7 columns # p1 p2 p3 i n 1 0 1 0 0 -4 0 -1 # p1 = 4i+1 0 0 1 0 0 0 0 # p2 = 0 0 0 0 1 0 0 0 # p3 = 0 # Fourth function 3 8 # 3 lines and 8 columns # p1 p2 p3 i j n 1 0 1 0 0 -2 -2 0 0 # p1 = 2i+2j 0 0 1 0 1 0 0 0 # p2 = -i 0 0 0 1 0 0 0 0 # p3 = 0 # Fifth function 3 9 # 3 lines and 9 columns # p1 p2 p3 i j k n 1 0 1 0 0 -2 -2 0 0 0 # p1 = 2i+2j 0 0 1 0 1 0 0 0 -1 # p2 = -i+1 0 0 0 1 0 0 -1 0 0 # p3 = k # Sixth function 3 8 # 3 lines and 8 columns # p1 p2 p3 i j n 1 0 1 0 0 -2 -2 0 0 # p1 = 2i+2j 0 0 1 0 1 0 0 -2 # p2 = -i+2 0 0 0 1 0 0 0 0 # p3 = 0 1 # Manually set the scattering dimensions p1 p2 p3 cloog-parma-0.16.1/cloog-core/test/equality.cloog0000644000175000017500000000054411321074700016611 00000000000000# Language: C c # Context (0 parameter(s)): 1 2 1 1 1 # Parameter name(s) # Statement number: 2 # Iteration domain of statement 1. 1 3 4 0 2 -1 0 1 1 0 0 1 -1 0 5 0 0 0 # For future options. # Iteration domain of statement 2. 1 3 4 0 0 -1 4 1 1 0 0 1 -1 0 5 0 0 0 # For future options. 1 # Iterator name(s) i0 i1 # No scattering functions. 0 cloog-parma-0.16.1/cloog-core/test/test.c0000644000175000017500000000055511406126537015066 00000000000000/* Generated from /home/skimo/git/cloog/test/test.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.01s. */ for (i=1;i<=2;i++) { for (j=1;j<=M;j++) { S1(i,j); } } for (i=3;i<=N;i++) { for (j=1;j<=min(M,i-1);j++) { S1(i,j); } if (i >= M+1) { S2(i,i); } if (i <= M) { S1(i,i); S2(i,i); } for (j=i+1;j<=M;j++) { S1(i,j); } } cloog-parma-0.16.1/cloog-core/test/infinite2.cloog0000644000175000017500000000052111321074700016636 00000000000000# langage c # parametres {M, N | M>=1 N >=1} 2 4 # M N 1 1 1 0 -1 1 0 1 -1 0 2 # Number of statements 1 # {i | 1<=i<=M} 1 5 # i M N 1 1 1 0 0 -1 #1 -1 1 0 0 0 0 0 1 # {i, j | 1<=i<=N 1<=j<=M} 4 6 # i j M N 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 1 0 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/double.good.c0000644000175000017500000000131211321074700016266 00000000000000/* Generated from ../../../git/cloog/test/double.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j) { hash(3); hash(i); hash(j); } #define S4(i) { hash(4); hash(i); } void test(int M, int N) { /* Original iterators. */ int i, j; for (i=0;i<=M;i++) { S1(i) ; for (j=0;j<=N;j++) { S2(i,j) ; S3(i,j) ; } S4(i) ; } } cloog-parma-0.16.1/cloog-core/test/guide.good.c0000644000175000017500000000122311321074700016112 00000000000000/* Generated from ../../../git/cloog/test/guide.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i) { hash(2); hash(i); } void test(int M, int N) { /* Original iterators. */ int i; for (i=1;i<=N;i++) { if (i >= M) { S1(i) ; } if (i <= min(2*M,M-1)) { S1(i) ; } } for (i=N+1;i<=2*N;i++) { S2(i) ; } } cloog-parma-0.16.1/cloog-core/test/constbound.c0000644000175000017500000000052011323312273016245 00000000000000/* Generated from /home/skimo/git/cloog/test/constbound.cloog by CLooG 0.14.0-170-g72daac3 gmp bits in 0.01s. */ for (t0=0;t0<=199;t0++) { for (t2=50*t0;t2<=50*t0+24;t2++) { for (t3=0;t3<=t2;t3++) { S1(t0,t2,t3); } } for (t2=50*t0+25;t2<=50*t0+49;t2++) { for (t3=0;t3<=t2;t3++) { S2(t0,t2,t3); } } } cloog-parma-0.16.1/cloog-core/test/no_lindep.cloog0000644000175000017500000000032111321074700016714 00000000000000# language C c # 2 parameters 1 4 1 0 0 0 0 # 1 statement 1 # 1 domain # i=n+2 1 1 5 0 -1 0 1 2 0 0 0 0 # 1 scattering function # c1=M+1 # c2=N 1 2 7 0 -1 0 0 1 0 1 0 0 -1 0 0 1 0 0 cloog-parma-0.16.1/cloog-core/test/forwardsub-3-1-2.good.c0000644000175000017500000000172711321074700017641 00000000000000/* Generated from ../../../git/cloog/test/forwardsub-3-1-2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j) { hash(3); hash(i); hash(j); } #define S4(i,j) { hash(4); hash(i); hash(j); } void test(int M) { /* Original iterators. */ int i, j; S3(2,1) ; S1(3,1) ; S1(4,1) ; S4(4,2) ; for (i=5;i<=M+1;i++) { S1(i,1) ; for (j=2;j<=floord(i-1,2);j++) { S2(i,j) ; } if (i%2 == 0) { S4(i,i/2) ; } } for (i=M+2;i<=2*M-1;i++) { for (j=i-M;j<=floord(i-1,2);j++) { S2(i,j) ; } if (i%2 == 0) { S4(i,i/2) ; } } i = 2*M ; S4(2*M,M) ; } cloog-parma-0.16.1/cloog-core/test/basic-bounds-3.good.c0000644000175000017500000000077311321074700017537 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-3.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } void test(int M) { /* Original iterators. */ int i; for (i=0;i<=M;i++) { S1(i) ; } } cloog-parma-0.16.1/cloog-core/test/classen.good.c0000644000175000017500000002654711321074700016465 00000000000000/* Generated from ../../../git/cloog/test/classen.cloog by CLooG 0.14.0-76-gfd78716 gmp bits in 1.73s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(coordT1,coordP1,other1,other2) { hash(1); hash(coordT1); hash(coordP1); hash(other1); hash(other2); } #define S2(coordT1,coordP1,other1,other2,other3,other4,other5,other6) { hash(2); hash(coordT1); hash(coordP1); hash(other1); hash(other2); hash(other3); hash(other4); hash(other5); hash(other6); } #define S3(coordT1,coordP1,other1,other2,other3,other4,other5,other6) { hash(3); hash(coordT1); hash(coordP1); hash(other1); hash(other2); hash(other3); hash(other4); hash(other5); hash(other6); } #define S4(coordT1,coordP1,other1,other2,other3,other4,other5,other6) { hash(4); hash(coordT1); hash(coordP1); hash(other1); hash(other2); hash(other3); hash(other4); hash(other5); hash(other6); } #define S5(coordT1,coordP1,other1,other2,other3,other4,other5,other6) { hash(5); hash(coordT1); hash(coordP1); hash(other1); hash(other2); hash(other3); hash(other4); hash(other5); hash(other6); } #define S6(coordT1,coordP1,other1,other2,other3,other4,other5,other6) { hash(6); hash(coordT1); hash(coordP1); hash(other1); hash(other2); hash(other3); hash(other4); hash(other5); hash(other6); } #define S7(coordT1,coordP1,other1,other2,other3,other4,other5,other6) { hash(7); hash(coordT1); hash(coordP1); hash(other1); hash(other2); hash(other3); hash(other4); hash(other5); hash(other6); } #define S8(coordT1,coordP1) { hash(8); hash(coordT1); hash(coordP1); } void test(int m) { /* Scattering iterators. */ int glT1, rp1, local1, local2; /* Original iterators. */ int coordT1, coordP1, other1, other2, other3, other4, other5, other6; if (m >= 2) { S1(0,1,1,1) ; S2(0,1,1,1,1,1,2,1) ; S3(0,1,1,2,1,1,1,2) ; S4(0,1,2,2,1,1,2,2) ; S8(0,1) ; } if (m == 1) { S1(0,1,1,1) ; S8(0,1) ; } if (m >= 3) { S5(0,1,1,1,1,1,2,1) ; S1(1,1,2,1) ; S2(1,1,2,1,2,1,3,1) ; S3(1,1,2,2,2,1,2,2) ; S4(1,1,3,2,2,1,3,2) ; S6(0,1,1,2,1,1,1,2) ; S7(0,1,2,2,1,1,2,2) ; S1(1,2,1,2) ; S2(1,2,2,2,1,2,2,2) ; S3(1,2,2,3,1,2,1,3) ; S4(1,2,3,3,1,2,2,3) ; for (coordP1=1;coordP1<=2;coordP1++) { S8(1,coordP1) ; } } for (glT1=2;glT1<=m-2;glT1++) { coordT1 = glT1-1 ; other5 = glT1+1 ; S5(glT1-1,1,glT1,1,glT1,1,glT1+1,1) ; other1 = glT1+1 ; S1(glT1,1,glT1+1,1) ; local1 = glT1+1 ; other1 = glT1+1 ; other3 = glT1+1 ; other5 = glT1+2 ; S2(glT1,1,glT1+1,1,glT1+1,1,glT1+2,1) ; other3 = glT1+1 ; other5 = glT1+1 ; S3(glT1,1,glT1+1,2,glT1+1,1,glT1+1,2) ; other1 = glT1+2 ; other3 = glT1+1 ; other5 = glT1+2 ; S4(glT1,1,glT1+2,2,glT1+1,1,glT1+2,2) ; for (rp1=2;rp1<=glT1;rp1++) { local1 = glT1-rp1+1 ; coordT1 = glT1-1 ; other3 = glT1-rp1+1 ; other5 = glT1-rp1+2 ; S5(glT1-1,rp1,glT1,rp1,glT1-rp1+1,rp1,glT1-rp1+2,rp1) ; local1 = glT1-rp1+2 ; local2 = rp1-1 ; coordT1 = glT1-1 ; coordP1 = rp1-1 ; other3 = glT1-rp1+2 ; other4 = rp1-1 ; other5 = glT1-rp1+2 ; S6(glT1-1,rp1-1,glT1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+2,rp1) ; other1 = glT1+1 ; other3 = glT1-rp1+2 ; other4 = rp1-1 ; other5 = glT1-rp1+3 ; S7(glT1-1,rp1-1,glT1+1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+3,rp1) ; other1 = glT1-rp1+2 ; S1(glT1,rp1,glT1-rp1+2,rp1) ; local1 = glT1-rp1+2 ; other1 = glT1+1 ; other3 = glT1-rp1+2 ; other5 = glT1-rp1+3 ; S2(glT1,rp1,glT1+1,rp1,glT1-rp1+2,rp1,glT1-rp1+3,rp1) ; other2 = rp1+1 ; other3 = glT1-rp1+2 ; other5 = glT1-rp1+2 ; other6 = rp1+1 ; S3(glT1,rp1,glT1+1,rp1+1,glT1-rp1+2,rp1,glT1-rp1+2,rp1+1) ; other1 = glT1+2 ; other2 = rp1+1 ; other3 = glT1-rp1+2 ; other5 = glT1-rp1+3 ; other6 = rp1+1 ; S4(glT1,rp1,glT1+2,rp1+1,glT1-rp1+2,rp1,glT1-rp1+3,rp1+1) ; } rp1 = glT1+1 ; coordT1 = glT1-1 ; other2 = glT1+1 ; other6 = glT1+1 ; S6(glT1-1,glT1,glT1,glT1+1,1,glT1,1,glT1+1) ; other1 = glT1+1 ; other2 = glT1+1 ; other6 = glT1+1 ; S7(glT1-1,glT1,glT1+1,glT1+1,1,glT1,2,glT1+1) ; coordP1 = glT1+1 ; other2 = glT1+1 ; S1(glT1,glT1+1,1,glT1+1) ; local2 = glT1+1 ; coordP1 = glT1+1 ; other1 = glT1+1 ; other2 = glT1+1 ; other4 = glT1+1 ; other6 = glT1+1 ; S2(glT1,glT1+1,glT1+1,glT1+1,1,glT1+1,2,glT1+1) ; other2 = glT1+2 ; other4 = glT1+1 ; other6 = glT1+2 ; S3(glT1,glT1+1,glT1+1,glT1+2,1,glT1+1,1,glT1+2) ; other1 = glT1+2 ; other2 = glT1+2 ; other4 = glT1+1 ; other6 = glT1+2 ; S4(glT1,glT1+1,glT1+2,glT1+2,1,glT1+1,2,glT1+2) ; for (coordP1=1;coordP1<=glT1+1;coordP1++) { S8(glT1,coordP1) ; } } if (m >= 3) { glT1 = m-1 ; local1 = m-1 ; coordT1 = m-2 ; other1 = m-1 ; other3 = m-1 ; S5(m-2,1,m-1,1,m-1,1,m,1) ; coordT1 = m-1 ; S1(m-1,1,m,1) ; coordT1 = m-1 ; S3(m-1,1,m,2,m,1,m,2) ; for (rp1=2;rp1<=m-1;rp1++) { local1 = -rp1+m ; coordT1 = m-2 ; other1 = m-1 ; other3 = -rp1+m ; other5 = -rp1+m+1 ; S5(m-2,rp1,m-1,rp1,-rp1+m,rp1,-rp1+m+1,rp1) ; local1 = -rp1+m+1 ; local2 = rp1-1 ; coordT1 = m-2 ; coordP1 = rp1-1 ; other1 = m-1 ; other3 = -rp1+m+1 ; other4 = rp1-1 ; other5 = -rp1+m+1 ; S6(m-2,rp1-1,m-1,rp1,-rp1+m+1,rp1-1,-rp1+m+1,rp1) ; other3 = -rp1+m+1 ; other4 = rp1-1 ; other5 = -rp1+m+2 ; S7(m-2,rp1-1,m,rp1,-rp1+m+1,rp1-1,-rp1+m+2,rp1) ; coordT1 = m-1 ; other1 = -rp1+m+1 ; S1(m-1,rp1,-rp1+m+1,rp1) ; local1 = -rp1+m+1 ; coordT1 = m-1 ; other3 = -rp1+m+1 ; other5 = -rp1+m+2 ; S2(m-1,rp1,m,rp1,-rp1+m+1,rp1,-rp1+m+2,rp1) ; other2 = rp1+1 ; other3 = -rp1+m+1 ; other5 = -rp1+m+1 ; other6 = rp1+1 ; S3(m-1,rp1,m,rp1+1,-rp1+m+1,rp1,-rp1+m+1,rp1+1) ; other1 = m+1 ; other2 = rp1+1 ; other3 = -rp1+m+1 ; other5 = -rp1+m+2 ; other6 = rp1+1 ; S4(m-1,rp1,m+1,rp1+1,-rp1+m+1,rp1,-rp1+m+2,rp1+1) ; } local2 = m-1 ; coordT1 = m-2 ; coordP1 = m-1 ; other1 = m-1 ; other4 = m-1 ; S6(m-2,m-1,m-1,m,1,m-1,1,m) ; other4 = m-1 ; S7(m-2,m-1,m,m,1,m-1,2,m) ; coordT1 = m-1 ; S1(m-1,m,1,m) ; coordT1 = m-1 ; S2(m-1,m,m,m,1,m,2,m) ; coordT1 = m-1 ; for (coordP1=1;coordP1<=m;coordP1++) { S8(m-1,coordP1) ; } } for (glT1=m;glT1<=2*m-4;glT1++) { rp1 = glT1-m+2 ; local1 = m-1 ; local2 = glT1-m+2 ; coordT1 = glT1-1 ; coordP1 = glT1-m+2 ; other2 = glT1-m+2 ; other3 = m-1 ; other4 = glT1-m+2 ; other6 = glT1-m+2 ; S5(glT1-1,glT1-m+2,glT1,glT1-m+2,m-1,glT1-m+2,m,glT1-m+2) ; local2 = glT1-m+1 ; coordT1 = glT1-1 ; coordP1 = glT1-m+1 ; other2 = glT1-m+2 ; other4 = glT1-m+1 ; other6 = glT1-m+2 ; S6(glT1-1,glT1-m+1,glT1,glT1-m+2,m,glT1-m+1,m,glT1-m+2) ; coordP1 = glT1-m+2 ; other2 = glT1-m+2 ; S1(glT1,glT1-m+2,m,glT1-m+2) ; local2 = glT1-m+2 ; coordP1 = glT1-m+2 ; other1 = glT1+1 ; other2 = glT1-m+3 ; other4 = glT1-m+2 ; other6 = glT1-m+3 ; S3(glT1,glT1-m+2,glT1+1,glT1-m+3,m,glT1-m+2,m,glT1-m+3) ; for (rp1=glT1-m+3;rp1<=m-1;rp1++) { local1 = glT1-rp1+1 ; coordT1 = glT1-1 ; other3 = glT1-rp1+1 ; other5 = glT1-rp1+2 ; S5(glT1-1,rp1,glT1,rp1,glT1-rp1+1,rp1,glT1-rp1+2,rp1) ; local1 = glT1-rp1+2 ; local2 = rp1-1 ; coordT1 = glT1-1 ; coordP1 = rp1-1 ; other3 = glT1-rp1+2 ; other4 = rp1-1 ; other5 = glT1-rp1+2 ; S6(glT1-1,rp1-1,glT1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+2,rp1) ; other1 = glT1+1 ; other3 = glT1-rp1+2 ; other4 = rp1-1 ; other5 = glT1-rp1+3 ; S7(glT1-1,rp1-1,glT1+1,rp1,glT1-rp1+2,rp1-1,glT1-rp1+3,rp1) ; other1 = glT1-rp1+2 ; S1(glT1,rp1,glT1-rp1+2,rp1) ; local1 = glT1-rp1+2 ; other1 = glT1+1 ; other3 = glT1-rp1+2 ; other5 = glT1-rp1+3 ; S2(glT1,rp1,glT1+1,rp1,glT1-rp1+2,rp1,glT1-rp1+3,rp1) ; other2 = rp1+1 ; other3 = glT1-rp1+2 ; other5 = glT1-rp1+2 ; other6 = rp1+1 ; S3(glT1,rp1,glT1+1,rp1+1,glT1-rp1+2,rp1,glT1-rp1+2,rp1+1) ; other1 = glT1+2 ; other2 = rp1+1 ; other3 = glT1-rp1+2 ; other5 = glT1-rp1+3 ; other6 = rp1+1 ; S4(glT1,rp1,glT1+2,rp1+1,glT1-rp1+2,rp1,glT1-rp1+3,rp1+1) ; } local1 = glT1-m+1 ; coordT1 = glT1-1 ; other3 = glT1-m+1 ; other5 = glT1-m+2 ; S5(glT1-1,m,glT1,m,glT1-m+1,m,glT1-m+2,m) ; local1 = glT1-m+2 ; local2 = m-1 ; coordT1 = glT1-1 ; coordP1 = m-1 ; other3 = glT1-m+2 ; other4 = m-1 ; other5 = glT1-m+2 ; S6(glT1-1,m-1,glT1,m,glT1-m+2,m-1,glT1-m+2,m) ; other1 = glT1+1 ; other3 = glT1-m+2 ; other4 = m-1 ; other5 = glT1-m+3 ; S7(glT1-1,m-1,glT1+1,m,glT1-m+2,m-1,glT1-m+3,m) ; other1 = glT1-m+2 ; S1(glT1,m,glT1-m+2,m) ; local1 = glT1-m+2 ; other1 = glT1+1 ; other3 = glT1-m+2 ; other5 = glT1-m+3 ; S2(glT1,m,glT1+1,m,glT1-m+2,m,glT1-m+3,m) ; for (coordP1=glT1-m+2;coordP1<=m;coordP1++) { S8(glT1,coordP1) ; } } if (m >= 3) { glT1 = 2*m-3 ; rp1 = m-1 ; local1 = m-1 ; local2 = m-1 ; coordT1 = 2*m-4 ; coordP1 = m-1 ; other1 = 2*m-3 ; other2 = m-1 ; other3 = m-1 ; other4 = m-1 ; other6 = m-1 ; S5(2*m-4,m-1,2*m-3,m-1,m-1,m-1,m,m-1) ; local2 = m-2 ; coordT1 = 2*m-4 ; coordP1 = m-2 ; other1 = 2*m-3 ; other2 = m-1 ; other4 = m-2 ; other6 = m-1 ; S6(2*m-4,m-2,2*m-3,m-1,m,m-2,m,m-1) ; coordT1 = 2*m-3 ; coordP1 = m-1 ; other2 = m-1 ; S1(2*m-3,m-1,m,m-1) ; local2 = m-1 ; coordT1 = 2*m-3 ; coordP1 = m-1 ; other1 = 2*m-2 ; other4 = m-1 ; S3(2*m-3,m-1,2*m-2,m,m,m-1,m,m) ; local1 = m-2 ; coordT1 = 2*m-4 ; other1 = 2*m-3 ; other3 = m-2 ; other5 = m-1 ; S5(2*m-4,m,2*m-3,m,m-2,m,m-1,m) ; local1 = m-1 ; local2 = m-1 ; coordT1 = 2*m-4 ; coordP1 = m-1 ; other1 = 2*m-3 ; other3 = m-1 ; other4 = m-1 ; other5 = m-1 ; S6(2*m-4,m-1,2*m-3,m,m-1,m-1,m-1,m) ; other1 = 2*m-2 ; other3 = m-1 ; other4 = m-1 ; S7(2*m-4,m-1,2*m-2,m,m-1,m-1,m,m) ; coordT1 = 2*m-3 ; other1 = m-1 ; S1(2*m-3,m,m-1,m) ; local1 = m-1 ; coordT1 = 2*m-3 ; other1 = 2*m-2 ; other3 = m-1 ; S2(2*m-3,m,2*m-2,m,m-1,m,m,m) ; coordT1 = 2*m-3 ; for (coordP1=m-1;coordP1<=m;coordP1++) { S8(2*m-3,coordP1) ; } } if (m == 2) { S5(0,1,1,1,1,1,2,1) ; S1(1,1,2,1) ; S3(1,1,2,2,2,1,2,2) ; S6(0,1,1,2,1,1,1,2) ; S7(0,1,2,2,1,1,2,2) ; S1(1,2,1,2) ; S2(1,2,2,2,1,2,2,2) ; for (coordP1=1;coordP1<=2;coordP1++) { S8(1,coordP1) ; } } if (m >= 2) { glT1 = 2*m-2 ; local1 = m-1 ; coordT1 = 2*m-3 ; other1 = 2*m-2 ; other3 = m-1 ; S5(2*m-3,m,2*m-2,m,m-1,m,m,m) ; local2 = m-1 ; coordT1 = 2*m-3 ; coordP1 = m-1 ; other1 = 2*m-2 ; other4 = m-1 ; S6(2*m-3,m-1,2*m-2,m,m,m-1,m,m) ; coordT1 = 2*m-2 ; S1(2*m-2,m,m,m) ; coordT1 = 2*m-2 ; S8(2*m-2,m) ; } } cloog-parma-0.16.1/cloog-core/test/byu98-1-2-3.good.c0000644000175000017500000000153411321074700016437 00000000000000/* Generated from ../../../git/cloog/test/byu98-1-2-3.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test() { /* Original iterators. */ int i, j; for (i=2;i<=3;i++) { for (j=-i+6;j<=6;j++) { S1(i,j) ; } } for (j=3;j<=4;j++) { S1(4,j) ; } S1(4,5) ; S2(4,5) ; S1(4,6) ; S1(5,4) ; S2(5,4) ; for (j=5;j<=6;j++) { S1(5,j) ; } for (i=6;i<=7;i++) { j = -i+9 ; S2(i,-i+9) ; for (j=i-1;j<=6;j++) { S1(i,j) ; } } S2(8,1) ; } cloog-parma-0.16.1/cloog-core/test/tiling.c0000644000175000017500000000031211323312273015354 00000000000000/* Generated from ../../../git/cloog/test/tiling.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (ii=0;ii<=floord(n,10);ii++) { for (i=10*ii;i<=min(n,10*ii+9);i++) { S1(ii,i) ; } } cloog-parma-0.16.1/cloog-core/test/multi-mm-1.cloog0000644000175000017500000000055611321074700016656 00000000000000# language: C c # Context #{M,N|M>N} 3 4 # M N 1 1 1 -1 0 1 0 1 -1 1 0 0 1 0 2 # Number of statements 1 # 4 6 # i j M N 1 1 0 1 0 0 0 1 1 -1 0 0 0 1 -1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 # 5 6 # i j M N 1 1 0 1 0 0 0 1 1 -1 0 0 0 1 -1 0 1 0 0 1 0 -1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/merge.cloog0000644000175000017500000000026411321074700016052 00000000000000c 0 2 0 3 1 1 3 0 -1 0 0 0 0 1 2 3 1 1 -2 1 -1 10 0 0 0 1 2 3 1 1 0 1 -1 10 0 0 0 0 3 2 5 0 1 0 -1 0 0 0 1 0 0 2 5 0 1 0 -1 0 0 0 1 0 -1 2 5 0 1 0 -1 0 0 0 1 0 -2 0 cloog-parma-0.16.1/cloog-core/test/min-3-1.good.c0000644000175000017500000000106511321074700016102 00000000000000/* Generated from ../../../git/cloog/test/min-3-1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } void test(int M) { /* Original iterators. */ int i, j; for (i=0;i<=min(10,M);i++) { for (j=0;j<=min(10,M);j++) { S1(i,j) ; } } } cloog-parma-0.16.1/cloog-core/test/basic-bounds-5.c0000644000175000017500000000022011323312273016577 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-5.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ j = floord(M+1,2) ; S1(1,j) ; cloog-parma-0.16.1/cloog-core/test/gesced.good.c0000644000175000017500000000175011321074700016254 00000000000000/* Generated from ../../../git/cloog/test/gesced.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.02s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j) { hash(3); hash(i); hash(j); } void test(int M, int N) { /* Scattering iterators. */ int c1; /* Original iterators. */ int i, j; for (c1=1;c1<=N;c1++) { S1(c1) ; } for (c1=N+1;c1<=2*N;c1++) { for (i=1;i<=N;i++) { j = c1-N ; S2(i,c1-N) ; } } for (c1=2*N+1;c1<=M+N;c1++) { for (i=1;i<=N;i++) { j = c1-2*N ; S3(i,c1-2*N) ; j = c1-N ; S2(i,c1-N) ; } } for (c1=M+N+1;c1<=M+2*N;c1++) { for (i=1;i<=N;i++) { j = c1-2*N ; S3(i,c1-2*N) ; } } } cloog-parma-0.16.1/cloog-core/test/constant.c0000644000175000017500000000054011477113144015730 00000000000000/* Generated from ../../../git/cloog/test/constant.cloog by CLooG 0.14.0-333-g4442dac gmp bits in 0.01s. */ for (c2=0;c2<=min(1023,M+1024);c2++) { S1(c2); S3(c2); } for (c2=max(0,M+1025);c2<=1023;c2++) { S2(c2); S3(c2); } for (c1=0;c1<=min(1023,M+1024);c1++) { S4(c1); S6(c1); } for (c1=max(0,M+1025);c1<=1023;c1++) { S5(c1); S6(c1); } cloog-parma-0.16.1/cloog-core/test/gesced.c0000644000175000017500000000061011323312273015321 00000000000000/* Generated from ../../../git/cloog/test/gesced.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.05s. */ for (c1=1;c1<=N;c1++) { S1(c1) ; } for (c1=N+1;c1<=2*N;c1++) { for (i=1;i<=N;i++) { S2(i,c1-N) ; } } for (c1=2*N+1;c1<=M+N;c1++) { for (i=1;i<=N;i++) { S3(i,c1-2*N) ; S2(i,c1-N) ; } } for (c1=M+N+1;c1<=M+2*N;c1++) { for (i=1;i<=N;i++) { S3(i,c1-2*N) ; } } cloog-parma-0.16.1/cloog-core/test/lineality-2-1-2.c0000644000175000017500000000050111406126537016524 00000000000000/* Generated from /home/skimo/git/cloog/test/lineality-2-1-2.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.00s. */ for (i=1;i<=M;i++) { for (j=1;j<=min(M,i+1);j++) { S1(i,j); } if (i >= M-1) { S2(i,i+2); } if (i <= M-2) { S1(i,i+2); S2(i,i+2); } for (j=i+3;j<=M;j++) { S1(i,j); } } cloog-parma-0.16.1/cloog-core/test/4-param.c0000644000175000017500000000053211323312273015333 00000000000000/* Generated from ../../../git/cloog/test/4-param.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.18s. */ for (i=m;i<=min(n,p-1);i++) { S1(i) ; } for (i=p;i<=min(q,m-1);i++) { S2(i) ; } for (i=max(m,p);i<=min(n,q);i++) { S1(i) ; S2(i) ; } for (i=max(max(m,p),q+1);i<=n;i++) { S1(i) ; } for (i=max(max(m,p),n+1);i<=q;i++) { S2(i) ; } cloog-parma-0.16.1/cloog-core/test/dot.c0000644000175000017500000000031211323312273014654 00000000000000/* Generated from ../../../git/cloog/test/dot.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (j=1;j<=M;j++) { S1(0,j) ; } for (i=1;i<=N;i++) { for (j=1;j<=M;j++) { S2(i,j) ; } } cloog-parma-0.16.1/cloog-core/test/donotsimp.c0000644000175000017500000000034611323312273016111 00000000000000/* Generated from ../../../git/cloog/test/donotsimp.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ for (c2=1;c2<=10;c2++) { for (c4=1;c4<=c2;c4++) { S1(c2,c4) ; } for (c4=11;c4<=M;c4++) { S2(c2,c4) ; } } cloog-parma-0.16.1/cloog-core/test/lu.cloog0000644000175000017500000000110211321074700015363 00000000000000# language: C c # parameter n 1 3 # n 1 1 0 1 1 n 2 # Number of statements 1 # {i, j | 1<=i<=n; i+1<=j<=n} 4 5 # i j n 1 1 1 0 0 -1 1 -1 0 1 0 1 -1 1 0 -1 1 0 -1 1 0 0 0 0 1 # {i, j, k | 1<=i<=n; i+1<=j<=n i+1<=k<=n} 6 6 # i j k n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 -1 1 0 0 -1 1 0 -1 0 1 0 1 -1 0 1 0 -1 1 0 0 -1 1 0 0 0 0 0 2 # Scattering functions # Et les instructions de chunking... 2 7 # c1 c2 i j n 1 0 1 0 -1 0 0 0 0 0 1 0 0 -1 0 2 8 # c1 c2 i j k n 1 0 1 0 0 0 -1 0 0 0 0 1 0 -1 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/gauss.cloog0000644000175000017500000000170711321074700016100 00000000000000# language: C c # parameter n 1 3 # n 1 1 0 1 0 2 # Number of statements 1 # {i, j, k | 1<=i<=n; 1<=j<=i-1 i+1<=k<=n} 6 6 # i j k n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 1 -1 0 0 -1 1 -1 0 1 0 -1 1 0 0 -1 1 0 0 0 0 1 # {i, j, k | 1<=i<=n; i+1<=j<=n i+1<=k<=n} 6 6 # i j k n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 -1 1 0 0 -1 1 0 -1 0 1 0 1 -1 0 1 0 -1 1 0 0 -1 1 0 0 0 0 0 2 # Scattering functions # Et les instructions de chunking... 2 8 # c1 c2 i j k n 1 0 1 0 -1 0 0 0 0 0 0 1 0 0 -1 0 0 2 8 # c1 c2 i j k n 1 0 1 0 -1 0 0 0 0 0 0 1 0 0 -1 0 0 0 2 # Et les instructions de chunking... 1 7 # c1 i j k n 1 0 1 0 0 0 -1 2 1 7 # c1 i j k n 1 0 1 -1 0 0 0 1 0 2 # Et les instructions de chunking... 2 8 # c1 c2 i j k n 1 0 1 0 -1 0 0 0 0 0 0 1 0 0 -1 0 0 2 8 # c1 c2 i j k n 1 0 1 0 -1 0 0 0 0 0 0 1 0 0 -1 0 0 0 cloog-parma-0.16.1/cloog-core/test/iftest2.c0000644000175000017500000000032211327562503015456 00000000000000/* Generated from ../../../git/cloog/test/iftest2.cloog by CLooG 0.14.0-245-gd8c1718 gmp bits in 0.00s. */ if ((M >= 1) && (N >= 1)) { for (i=1;i<=N;i++) { for (j=1;j<=M;j++) { S1(i,j); } } } cloog-parma-0.16.1/cloog-core/test/0D-2.c0000644000175000017500000000020111323312273014465 00000000000000/* Generated from ../../../git/cloog/test/0D-2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ if (M >= 0) { S1() ; } cloog-parma-0.16.1/cloog-core/test/0D-1.c0000644000175000017500000000015711323312273014476 00000000000000/* Generated from ../../../git/cloog/test/0D-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ S1() ; cloog-parma-0.16.1/cloog-core/test/largeur.cloog0000644000175000017500000000043511321074700016414 00000000000000# language: C c # parameters {n | n>= 0} 1 3 1 1 0 0 1 # Number of statements 1 # {i, j | 1<=i<=n i<=j<=n} 4 5 1 1 0 0 -1 1 -1 0 1 0 1 -1 1 0 0 1 0 -1 1 0 0 0 0 0 1 # Scattering functions # Et les instructions de chunking... 2 7 0 1 0 0 -1 0 0 0 0 1 -1 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/rectangle.c0000644000175000017500000000030711323312273016036 00000000000000/* Generated from ../../../git/cloog/test/rectangle.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (c1=0;c1<=2*n;c1++) { for (i=max(0,c1-n);i<=min(c1,n);i++) { S1(i,c1-i) ; } } cloog-parma-0.16.1/cloog-core/test/uday_scalars.good.c0000644000175000017500000000125611321074700017475 00000000000000/* Generated from ../../../git/cloog/test/uday_scalars.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(j,l,m) { hash(1); hash(j); hash(l); hash(m); } #define S2(j,l,m) { hash(2); hash(j); hash(l); hash(m); } void test(int n) { /* Scattering iterators. */ int p3; /* Original iterators. */ int j, l, m; for (p3=0;p3<=n;p3++) { S1(p3,0,0) ; } for (p3=0;p3<=n;p3++) { S2(0,p3,0) ; } } cloog-parma-0.16.1/cloog-core/test/equality.good.c0000644000175000017500000000132111321074700016651 00000000000000/* Generated from ../../../git/cloog/test/equality.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i0,i1) { hash(1); hash(i0); hash(i1); } #define S2(i0,i1) { hash(2); hash(i0); hash(i1); } void test() { /* Original iterators. */ int i0, i1; for (i0=0;i0<=5;i0++) { for (i1=ceild(4*i0,5);i1<=floord(6*i0+20,5);i1++) { if (2*i0 == i1) { S1(i0,i1) ; } if (i1 == 4) { S2(i0,i1) ; } } } } cloog-parma-0.16.1/cloog-core/test/dot2.c0000644000175000017500000000043611323312273014745 00000000000000/* Generated from ../../../git/cloog/test/dot2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ for (i=1;i<=min(M,N);i++) { S1(i) ; for (j=1;j<=M;j++) { S2(i,j) ; } } for (i=N+1;i<=M;i++) { S1(i) ; } for (i=M+1;i<=N;i++) { for (j=1;j<=M;j++) { S2(i,j) ; } } cloog-parma-0.16.1/cloog-core/test/tiling.good.c0000644000175000017500000000111611321074700016304 00000000000000/* Generated from ../../../git/cloog/test/tiling.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(ii,i) { hash(1); hash(ii); hash(i); } void test(int n) { /* Original iterators. */ int ii, i; for (ii=0;ii<=floord(n,10);ii++) { for (i=max(10*ii,0);i<=min(10*ii+9,n);i++) { S1(ii,i) ; } } } cloog-parma-0.16.1/cloog-core/test/gesced.cloog0000644000175000017500000000123111321074700016200 00000000000000# language: C c # parameters {n, m | n<=m n>=2 m>=2} 3 4 # m n 1 1 1 -1 0 1 1 0 -2 1 0 1 -2 0 3 # Number of statements 1 # {i | 1<=i<=n} 2 5 # i m n 1 1 1 0 0 -1 1 -1 0 1 0 0 0 0 1 # {i, j | 1<=i<=n 1<=j<=m} 4 6 # i j m n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 1 0 0 0 0 0 1 # {i, j | 1<=i<=n 1<=j<=m} 4 6 # i j m n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 1 0 0 0 0 0 0 3 # Scattering functions # Et les instructions de chunking (prog init)... 1 6 # c1 i m n 1 0 1 -1 0 0 0 1 7 # c1 i j m n 1 0 1 0 -1 0 -1 0 1 7 # c1 i j m n 1 0 1 0 -1 0 -2 0 0 cloog-parma-0.16.1/cloog-core/test/block2.c0000644000175000017500000000025311467775010015261 00000000000000/* Generated from /home/skimo/git/cloog/test/block2.cloog by CLooG 0.14.0-302-g309b32c gmp bits in 0.01s. */ for (c0=0;c0<=9;c0++) { S1(c0,1); S3(c0,1); S2(c0,1); } cloog-parma-0.16.1/cloog-core/test/vivien.c0000644000175000017500000000754511467774607015433 00000000000000/* Generated from /home/skimo/git/cloog/test/vivien.cloog by CLooG 0.14.0-292-g2bfd6ac gmp bits in 0.12s. */ if (n >= 0) { for (p1=-54*n+4;p1<=4;p1++) { if (p1%2 == 0) { S1((p1-2)/2); } } if (n >= 1) { S3(1); } if (n <= 1) { S1(2); } if (n >= 2) { S4(1,2); S1(2); S6(1,2); } for (p1=7;p1<=min(9,4*n-2);p1++) { if (p1 == 8) { S4(1,3); } if (p1 == 8) { S1(3); } if (p1 == 8) { S6(1,3); } if (p1 == 9) { S3(2); } if ((p1+1)%2 == 0) { S2((p1-3)/2,1); } } for (p1=10;p1<=min(2*n+58,4*n-2);p1++) { p2 = ceild(-p1+2,4); if (p2 <= min(floord(-p1+2*n,2),floord(-p1+5,4))) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } } if (p1 >= 4*n-4) { if (p1%2 == 0) { for (p3=1;p3<=floord(p1-2*n-2,2);p3++) { S5((p1-2*n)/2,n,p3); } } } p2 = ceild(-p1+6,4); if (p2 <= min(floord(-p1+2*n,2),floord(-p1+9,4))) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=ceild(-p1+10,4);p2<=min(-1,floord(-p1+2*n,2));p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } if ((p1 >= 2*n+4) && (p1 <= 4*n-6)) { if (p1%2 == 0) { S6((p1-2*n+2)/2,n-1); for (p3=1;p3<=floord(p1-2*n-2,2);p3++) { S5((p1-2*n)/2,n,p3); } } } if (p1 >= 2*n+6) { if (p1%2 == 0) { S6((p1-2*n)/2,n); } } if (p1 <= 2*n+4) { if (p1%2 == 0) { S6(2,(p1-4)/2); } if ((p1+3)%4 == 0) { S3((p1-1)/4); } if (p1%2 == 0) { S1((p1-2)/2); } } if (p1 >= 2*n+5) { if ((p1+3)%4 == 0) { S3((p1-1)/4); } if (p1%2 == 0) { S1((p1-2)/2); } } if (p1 <= 2*n+2) { if (p1%2 == 0) { S6(1,(p1-2)/2); } } for (p2=max(1,ceild(p1-2*n-1,2));p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { S2((p1-2*p2-1)/2,p2); } } } if ((n >= 2) && (n <= 29)) { S2(n,n-1); } if ((n >= 2) && (n <= 29)) { S1(2*n-1); } if ((n >= 2) && (n <= 28)) { S3(n); } for (p1=max(7,4*n+2);p1<=2*n+58;p1++) { if (p1%2 == 0) { S1((p1-2)/2); } } for (p1=2*n+59;p1<=4*n-2;p1++) { p2 = ceild(-p1+2,4); if (p2 <= min(floord(-p1+2*n,2),floord(-p1+5,4))) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } } if (p1 >= 4*n-4) { if (p1%2 == 0) { for (p3=1;p3<=floord(p1-2*n-2,2);p3++) { S5((p1-2*n)/2,n,p3); } } } p2 = ceild(-p1+6,4); if (p2 <= min(floord(-p1+2*n,2),floord(-p1+9,4))) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } if (p1 <= 4*n-6) { if (p1%2 == 0) { S6((p1-2*n+2)/2,n-1); for (p3=1;p3<=floord(p1-2*n-2,2);p3++) { S5((p1-2*n)/2,n,p3); } } } if (p1%2 == 0) { S6((p1-2*n)/2,n); } if ((p1+3)%4 == 0) { S3((p1-1)/4); } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { S2((p1-2*p2-1)/2,p2); } } } if (n >= 30) { S2(n,n-1); } if (n >= 29) { S3(n); } } cloog-parma-0.16.1/cloog-core/test/lineality-1-2.good.c0000644000175000017500000000145711321074700017315 00000000000000/* Generated from ../../../git/cloog/test/lineality-1-2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M) { /* Original iterators. */ int i, j; S1(1,1) ; S2(1,1) ; for (j=2;j<=M;j++) { S1(1,j) ; } for (i=2;i<=M-1;i++) { for (j=1;j<=i-1;j++) { S1(i,j) ; } S1(i,i) ; S2(i,i) ; for (j=i+1;j<=M;j++) { S1(i,j) ; } } for (j=1;j<=M-1;j++) { S1(M,j) ; } S1(M,M) ; S2(M,M) ; } cloog-parma-0.16.1/cloog-core/test/min-4-1.cloog0000644000175000017500000000041611321074700016034 00000000000000# language: C c # Context # {L,M,N|} 1 5 # L M N 1 1 0 0 0 1 0 1 # Number of statements 1 # {i|-L,-M <= i <= M, N} 5 6 # i L M N 1 1 1 1 0 0 0 1 1 0 1 0 0 1 -1 0 1 0 0 1 -1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/forwardsub-2-1-2-3.cloog0000644000175000017500000000144511321074700017727 00000000000000# language: C c # Context #{M | 3<=M} 2 3 # M 1 1 1 -3 1 0 1 0 4 # Number of statements 1 #{i,j,k | i=1; j=1; 2<=k<=M; 3<=M} 6 6 # i j k M 1 0 1 0 0 0 -1 0 0 1 0 0 -1 1 0 0 0 1 -3 1 0 0 -1 1 0 1 0 0 1 0 -2 1 0 0 0 0 1 0 0 0 1 #{i,j,k | 2<=i<=k-1; j=1; k<=M} 5 6 # i j k M 1 0 0 1 0 0 -1 1 -1 0 1 0 -1 1 1 0 0 0 -2 1 0 0 -1 1 0 1 0 0 0 0 1 0 0 0 1 #{i,j | i=1; j=0; 3<=M} 4 5 # i j M 1 0 1 0 0 -1 0 0 1 0 0 1 0 0 1 -3 1 0 0 0 1 0 0 0 1 #{i,j | 2<=i<=M; j=0; 3<=M} 4 5 # i j M 1 0 0 1 0 0 1 1 0 0 -2 1 0 0 1 -3 1 -1 0 1 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/param-split.good.c0000644000175000017500000000114611364353162017263 00000000000000/* Generated from ../../../git/cloog/test/param-split.cloog by CLooG 0.14.0-277-gce2ba57 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i) { hash(2); hash(i); } void test(int M) { /* Original iterators. */ int i; if (M >= 0) { S1(0); S2(0); } for (i=1;i<=M;i++) { S1(i); } if (M <= -1) { S2(0); } } cloog-parma-0.16.1/cloog-core/test/yosr.good.c0000644000175000017500000000165511321074700016022 00000000000000/* Generated from ../../../git/cloog/test/yosr.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } void test(int n) { /* Scattering iterators. */ int proc; /* Original iterators. */ int i, j, k; if (n >= 2) { for (j=2;j<=n;j++) { S1(1,j) ; } } for (proc=2;proc<=n-1;proc++) { for (i=1;i<=proc-1;i++) { for (j=i+1;j<=n;j++) { S2(i,j,proc) ; } } for (j=proc+1;j<=n;j++) { S1(proc,j) ; } } if (n >= 2) { for (i=1;i<=n-1;i++) { for (j=i+1;j<=n;j++) { S2(i,j,n) ; } } } } cloog-parma-0.16.1/cloog-core/test/gauss.c0000644000175000017500000000060611323312273015216 00000000000000/* Generated from ../../../git/cloog/test/gauss.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.03s. */ if (M >= 2) { for (c2=2;c2<=M;c2++) { for (j=2;j<=M;j++) { S2(1,j,c2) ; } } for (c1=2;c1<=M-1;c1++) { for (c2=c1+1;c2<=M;c2++) { for (j=1;j<=c1-1;j++) { S1(c1,j,c2) ; } for (j=c1+1;j<=M;j++) { S2(c1,j,c2) ; } } } } cloog-parma-0.16.1/cloog-core/test/forwardsub-2-1-2-3.good.c0000644000175000017500000000145511321074700017776 00000000000000/* Generated from ../../../git/cloog/test/forwardsub-2-1-2-3.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } #define S3(i,j) { hash(3); hash(i); hash(j); } #define S4(i,j) { hash(4); hash(i); hash(j); } void test(int M) { /* Original iterators. */ int i, j, k; S3(1,0) ; for (k=2;k<=M;k++) { S1(1,1,k) ; } for (i=2;i<=M-1;i++) { S4(i,0) ; for (k=i+1;k<=M;k++) { S2(i,1,k) ; } } S4(M,0) ; } cloog-parma-0.16.1/cloog-core/test/union.good.c0000644000175000017500000000136311477121367016170 00000000000000/* Generated from ../../../git/cloog/test/union.cloog by CLooG 0.14.0-277-g62f7d82 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } void test(int M) { /* Scattering iterators. */ int c1; /* Original iterators. */ int i; if (M <= -1) { for (c1=0;c1<=100;c1++) { S1(c1); } } if (M >= 1) { if (M >= 11) { for (c1=-100;c1<=0;c1++) { S1(-c1); } } if (M <= 10) { for (c1=0;c1<=100;c1++) { S1(c1); } } } } cloog-parma-0.16.1/cloog-core/test/nul_basic1.cloog0000644000175000017500000000042111321074700016766 00000000000000# Optimal code is in fact : # # for (i=0;i<=M;i+=2) { # S1 ; # } # language: C c # parameter n 1 3 # n 1 1 0 1 0 1 # Number of statements 1 # {i, j | i=2*j; 0<=i<=n} 3 5 # i j n 1 0 1 -2 0 0 1 1 0 0 0 1 -1 0 1 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/test.cloog0000644000175000017500000000056611321074700015737 00000000000000# language: C c # parameters {m, n | 4<=m<=n} 2 4 # m n 1 1 -1 1 0 1 1 0 -4 0 2 # Number of statements 1 # {i, j | 1<=i<=n 1<=j<=m} 4 6 # i j m n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 1 0 0 0 0 0 1 # {i, j | i=j 3<=j<=N} 3 6 # i j m n 1 0 1 -1 0 0 0 1 0 1 0 0 -3 1 0 -1 0 1 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/thomasset.cloog0000644000175000017500000000161111321074700016757 00000000000000# language: C c 1 3 1 0 0 # 0 >= 0 1 n # ------------- STATEMENTS ------------- 2 # Number of statements # ax:Z 1 # The domain is made of one polyhedron 4 5 # 4 lines and 5 columns # i j n 1 -1 0 1 0 1 1 0 0 -1 1 1 -3 0 -1 1 -1 3 0 3 0 0 0 # future options # ax:P 1 # The domain is made of one polyhedron 10 8 # 10 lines and 8 columns # i j k p q n 1 -1 0 0 0 0 1 0 1 0 -1 0 0 0 1 0 1 0 1 0 0 0 0 -1 1 1 0 0 0 0 0 -1 1 0 1 0 0 -3 0 0 1 0 -1 0 0 3 0 2 1 0 0 0 -3 0 1 0 1 0 0 0 3 0 -1 2 1 0 0 -3 0 0 0 1 1 0 0 3 0 0 0 1 0 0 0 # future options 1 # Iterator Names i j k p q # ------------- SCATTERING ------------- 2 # nb scattering functions # Scattering for ax:Z 2 7 # 2 lines and 7 columns # c1 c2 i j n 0 1 0 0 -1 0 0 0 0 1 0 0 0 0 # Scattering for ax:P 2 10 # 2 lines and 10 columns # c1 c2 i j k p q n 0 1 0 0 0 -1 -1 -1 0 0 0 0 1 -1 0 0 0 0 0 1 0 # Scattering Function Names cloog-parma-0.16.1/cloog-core/test/darte.good.c0000644000175000017500000002540111321074700016120 00000000000000/* Generated from ../../../git/cloog/test/darte.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.27s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } void test(int n) { /* Scattering iterators. */ int t1, t2, t3; /* Original iterators. */ int i, j, k; if (n >= 1) { t1 = -n+1 ; t2 = n+1 ; for (t3=n+3;t3<=3*n+1;t3++) { if ((t3+n+1)%2 == 0) { k = (t3-n-1)/2 ; S1(1,n,(t3-n-1)/2) ; } } } if ((n >= 2) && (n <= 2)) { t1 = -n+2 ; for (t2=-n+4;t2<=3*n-2;t2++) { for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t2+n)%2 == 0) { i = (t2-n+2)/2 ; j = (t2+n-2)/2 ; if ((t3+n)%2 == 0) { k = (-t2+t3)/2 ; S1((t2-n+2)/2,(t2+n-2)/2,(-t2+t3)/2) ; } } } } t2 = n+3 ; for (t3=1;t3<=n;t3++) { S2(1,n,t3) ; } } if (n >= 3) { t1 = -n+2 ; for (t2=n;t2<=n+2;t2++) { for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t2+n)%2 == 0) { i = (t2-n+2)/2 ; j = (t2+n-2)/2 ; if ((t3+n)%2 == 0) { k = (-t2+t3)/2 ; S1((t2-n+2)/2,(t2+n-2)/2,(-t2+t3)/2) ; } } } } t2 = n+3 ; for (t3=1;t3<=n;t3++) { S2(1,n,t3) ; } } for (t1=ceild(-2*n+5,2);t1<=min(-n+6,-1);t1++) { for (t2=-t1+2;t2<=-t1+4;t2++) { for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } } for (t2=-t1+5;t2<=t1+2*n;t2++) { for (t3=1;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } } for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } } t2 = t1+2*n+1 ; for (t3=1;t3<=n;t3++) { i = t1+n-1 ; S2(t1+n-1,n,t3) ; } } if (n == 2) { for (t3=5;t3<=7;t3++) { if ((t3+1)%2 == 0) { k = (t3-3)/2 ; S1(2,1,(t3-3)/2) ; } } for (t2=4;t2<=6;t2++) { for (t3=1;t3<=2;t3++) { if (t2%2 == 0) { i = (t2-2)/2 ; j = (t2-2)/2 ; S2((t2-2)/2,(t2-2)/2,t3) ; } } } } for (t1=-n+7;t1<=-1;t1++) { for (t2=-t1+2;t2<=-t1+4;t2++) { for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } } for (t2=-t1+5;t2<=n-2;t2++) { for (t3=1;t3<=t2+1;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } } for (t3=t2+2;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } for (t3=n+1;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } } for (t2=n-1;t2<=t1+2*n;t2++) { for (t3=1;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } } for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } } t2 = t1+2*n+1 ; for (t3=1;t3<=n;t3++) { i = t1+n-1 ; S2(t1+n-1,n,t3) ; } } if (n >= 3) { for (t1=0;t1<=min(1,-n+6);t1++) { for (t2=t1+2;t2<=-t1+4;t2++) { for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } } for (t2=-t1+5;t2<=-t1+2*n;t2++) { for (t3=1;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } } for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } } for (t2=-t1+2*n+1;t2<=t1+2*n+1;t2++) { for (t3=1;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } } } } } for (t1=max(-n+7,0);t1<=1;t1++) { for (t2=t1+2;t2<=-t1+4;t2++) { for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } } for (t2=-t1+5;t2<=n-2;t2++) { for (t3=1;t3<=t2+1;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } } for (t3=t2+2;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } for (t3=n+1;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } } for (t2=n-1;t2<=-t1+2*n;t2++) { for (t3=1;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } } for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } } for (t2=-t1+2*n+1;t2<=t1+2*n+1;t2++) { for (t3=1;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } } } } for (t1=2;t1<=n-5;t1++) { t2 = t1+2 ; for (t3=t1+4;t3<=t1+2*n+2;t3++) { i = t1+1 ; if ((t1+t3)%2 == 0) { k = (-t1+t3-2)/2 ; S1(t1+1,1,(-t1+t3-2)/2) ; } } for (t2=t1+3;t2<=n-2;t2++) { for (t3=1;t3<=t2+1;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } } for (t3=t2+2;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } for (t3=n+1;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } } for (t2=n-1;t2<=-t1+2*n;t2++) { for (t3=1;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } } for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } } for (t2=-t1+2*n+1;t2<=-t1+2*n+3;t2++) { for (t3=1;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } } } } for (t1=max(2,n-4);t1<=floord(2*n-3,2);t1++) { t2 = t1+2 ; for (t3=t1+4;t3<=t1+2*n+2;t3++) { i = t1+1 ; if ((t1+t3)%2 == 0) { k = (-t1+t3-2)/2 ; S1(t1+1,1,(-t1+t3-2)/2) ; } } for (t2=t1+3;t2<=-t1+2*n;t2++) { for (t3=1;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } } for (t3=t2+2;t3<=t2+2*n;t3++) { if ((t1+t2)%2 == 0) { i = (t1+t2)/2 ; j = (-t1+t2)/2 ; if ((t1+t3)%2 == 0) { k = (-t2+t3)/2 ; S1((t1+t2)/2,(-t1+t2)/2,(-t2+t3)/2) ; } } } } for (t2=-t1+2*n+1;t2<=-t1+2*n+3;t2++) { for (t3=1;t3<=n;t3++) { if ((t1+t2+1)%2 == 0) { i = (t1+t2-3)/2 ; j = (-t1+t2-1)/2 ; S2((t1+t2-3)/2,(-t1+t2-1)/2,t3) ; } } } } if (n >= 3) { t1 = n-1 ; t2 = n+1 ; for (t3=n+3;t3<=3*n+1;t3++) { if ((t3+n+1)%2 == 0) { k = (t3-n-1)/2 ; S1(n,1,(t3-n-1)/2) ; } } for (t2=n+2;t2<=n+4;t2++) { for (t3=1;t3<=n;t3++) { if ((t2+n)%2 == 0) { i = (t2+n-4)/2 ; j = (t2-n)/2 ; S2((t2+n-4)/2,(t2-n)/2,t3) ; } } } } if (n >= 1) { t2 = n+3 ; for (t3=1;t3<=n;t3++) { S2(n,1,t3) ; } } } cloog-parma-0.16.1/cloog-core/test/block.cloog0000644000175000017500000000032211321074700016040 00000000000000c 0 2 0 3 1 0 2 0 0 0 1 0 2 0 0 0 1 2 3 1 1 0 1 -1 1 0 0 0 0 3 2 4 0 -1 0 0 # c1 = 0 0 0 -1 0 # c2 = 0 2 4 0 -1 0 1 # c1 = 1 0 0 -1 0 # c2 = 0 2 5 0 -1 0 1 0 # c1 = i 0 0 -1 0 1 # c2 = 1 0 cloog-parma-0.16.1/cloog-core/test/Makefile.in0000644000175000017500000007177311511607563016022 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # /**-------------------------------------------------------------------** # ** CLooG ** # **-------------------------------------------------------------------** # ** makefile ** # **-------------------------------------------------------------------** # ** First version: march 6th 2003 ** # **-------------------------------------------------------------------**/ # # makefile for checking. #/***************************************************************************** # * CLooG : the Chunky Loop Generator (experimental) * # ***************************************************************************** # * * # * Copyright (C) 2003 Cedric Bastoul * # * * # * This library is free software; you can redistribute it and/or * # * modify it under the terms of the GNU Lesser General Public * # * License as published by the Free Software Foundation; either * # * version 2.1 of the License, or (at your option) any later version. * # * * # * This library is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * # * Lesser General Public License for more details. * # * * # * You should have received a copy of the GNU Lesser General Public * # * License along with this library; if not, write to the Free Software * # * Foundation, Inc., 51 Franklin Street, Fifth Floor, * # * Boston, MA 02110-1301 USA * # * * # * CLooG, the Chunky Loop Generator * # * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * # * This file has been written with the help of the Bart Kienhuis's checking * # * makefile for PipLib. * # * * # *****************************************************************************/ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = $(am__EXEEXT_1) subdir = test DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_submodule.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @NO_ISL_FALSE@am__EXEEXT_1 = generate_test$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) am_generate_test_OBJECTS = generate_test.$(OBJEXT) generate_test_OBJECTS = $(am_generate_test_OBJECTS) generate_test_LDADD = $(LDADD) generate_test_DEPENDENCIES = ../libcloog-isl.la DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/autoconf/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(generate_test_SOURCES) DIST_SOURCES = $(generate_test_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITS = @BITS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CD = @CD@ CFLAGS = @CFLAGS@ CFLAGS_WARN = @CFLAGS_WARN@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GIT_INDEX = @GIT_INDEX@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ISL_CPPFLAGS = @ISL_CPPFLAGS@ ISL_LDFLAGS = @ISL_LDFLAGS@ ISL_LIBS = @ISL_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEXI2DVI = @TEXI2DVI@ VERSION = @VERSION@ VERSION_MAJOR = @VERSION_MAJOR@ VERSION_MINOR = @VERSION_MINOR@ VERSION_REVISION = @VERSION_REVISION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ versioninfo = @versioninfo@ @NO_ISL_FALSE@GENERATE_TEST = generate_test @NO_ISL_TRUE@GENERATE_TEST = INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include LDADD = ../libcloog-isl.la generate_test_SOURCES = generate_test.c ROOT = .. FINITE_CLOOGTEST_C = \ 0D-1 \ 0D-2 \ 0D-3 \ 1point-1 \ 1point-2 \ 4-param \ basic-bounds-1 \ basic-bounds-2 \ basic-bounds-3 \ basic-bounds-4 \ basic-bounds-5 \ basic-bounds-6 \ block \ block2 \ byu98-1-2-3 \ cholesky \ cholesky2 \ classen \ classen2 \ constant \ constbound \ darte \ dealII \ donotsimp \ dot \ dot2 \ double \ durbin_e_s \ emploi \ esced \ ex1 \ forwardsub-1-1-2 \ forwardsub-2-1-2-3 \ forwardsub-3-1-2 \ gauss \ gesced \ gesced2 \ gesced3 \ guide \ iftest \ iftest2 \ largeur \ levenshtein-1-2-3 \ lex \ lineality-1-2 \ lineality-2-1-2 \ logo \ logopar \ lu \ lu2 \ lub \ lux \ min-1-1 \ min-2-1 \ min-3-1 \ min-4-1 \ mode \ multi-mm-1 \ no_lindep \ orc \ rectangle \ singleton \ square+triangle-1-1-2-3 \ swim \ test \ thomasset \ tiling \ uday_scalars \ union \ vivien \ vivien2 \ walters \ walters2 \ walters3 \ wavefront \ yosr \ yosr2 \ ./non_optimal/nul_complex1 \ ./non_optimal/usvd_e_t \ ./non_optimal/youcef \ ./reservoir/cholesky2 \ ./reservoir/fusion1 \ ./reservoir/fusion2 \ ./reservoir/jacobi2 \ ./reservoir/jacobi3 \ ./reservoir/lim-lam1 \ ./reservoir/lim-lam2 \ ./reservoir/lim-lam3 \ ./reservoir/lim-lam4 \ ./reservoir/lim-lam5 \ ./reservoir/lim-lam6 \ ./reservoir/liu-zhuge1 \ ./reservoir/loechner3 \ ./reservoir/loechner4 \ ./reservoir/loechner5 \ ./reservoir/mg-interp2 \ ./reservoir/mg-interp \ ./reservoir/mg-psinv \ ./reservoir/mg-resid \ ./reservoir/mg-rprj3 \ ./reservoir/pingali1 \ ./reservoir/pingali2 \ ./reservoir/pingali3 \ ./reservoir/pingali4 \ ./reservoir/pingali5 \ ./reservoir/pingali6 \ ./reservoir/QR \ ./reservoir/tang-xue1 \ ./reservoir/two CLOOG_ISL_TEST_C = \ isl/mod \ isl/mod2 \ isl/mod3 \ isl/mod4 CLOOGTEST_C = \ infinite \ infinite2 \ infinite3 \ infinite4 \ $(FINITE_CLOOGTEST_C) \ $(CLOOG_ISL_TEST_C) # ./reservoir/long \ # faber CLOOGTEST_FORTRAN = \ dartef \ iftestf \ levenshtein-1-2-3f \ yosrf CLOOGTEST_STRIDED = \ basic-bounds-2 \ mod4 \ nul_basic1 \ nul_basic2 \ nul_lcpc \ multi-stride \ multi-stride2 \ stride3 \ stride4 \ reservoir/bastoul3 \ reservoir/stride \ reservoir/stride2 SPECIAL_TESTS = \ vasilache \ merge \ equality \ equality2 \ otl \ param-split \ stride \ stride2 \ sor1d SPECIAL_OPTIONS = \ 'vasilache -f 8 -l 9' \ 'merge -f -1' \ 'equality -f -1 -l 2 -override' \ 'equality2 -f -1 -l 4 -esp 1 -override' \ 'otl -block 1 -esp 0 -otl 0' \ 'param-split -f -1' \ 'stride -f -1 -strides 1' \ 'stride2 -f -1 -strides 1' \ 'sor1d -f -1' EXTRA_DIST = \ $(CLOOGTEST_C:%=%.cloog) \ $(CLOOGTEST_C:%=%.c) \ $(FINITE_CLOOGTEST_C:%=%.good.c) \ $(CLOOGTEST_FORTRAN:%=%.cloog) \ $(CLOOGTEST_FORTRAN:%=%.f) \ $(CLOOGTEST_STRIDED:%=%.cloog) \ $(CLOOGTEST_STRIDED:%=%.c) \ $(SPECIAL_TESTS:%=%.cloog) \ $(SPECIAL_TESTS:%=%.c) \ $(SPECIAL_TESTS:%=%.good.c) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list generate_test$(EXEEXT): $(generate_test_OBJECTS) $(generate_test_DEPENDENCIES) @rm -f generate_test$(EXEEXT) $(LINK) $(generate_test_OBJECTS) $(generate_test_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/generate_test.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am FORCE: ../libcloog-isl.la: FORCE cd ..; $(MAKE) $(AM_MAKEFLAGS) libcloog-isl.la generate: @echo " /*-----------------------------------------------*" @echo " * Generate files *" @echo " *-----------------------------------------------*/" @for x in $(CLOOGTEST_C) ; do \ echo "Generate $$x.c" ; \ $(top_builddir)/cloog $(srcdir)/$$x.cloog -o $(srcdir)/$$x.c ; \ done ; \ for x in $(CLOOGTEST_FORTRAN) ; do \ echo "Generate $$x.f" ; \ $(top_builddir)/cloog $(srcdir)/$$x.cloog -o $(srcdir)/$$x.f ; \ done ; \ for x in $(CLOOGTEST_STRIDED) ; do \ echo "Generate $$x.c" ; \ $(top_builddir)/cloog $(srcdir)/$$x.cloog \ -strides 1 -o $(srcdir)/$$x.c ; \ done ; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo "Generate file $$x ($$options)" ; \ $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \ $$options > $(srcdir)/$$x.c ; \ done; done generate_good: @for x in $(FINITE_CLOOGTEST_C) ; do \ echo "Generate $$x.good.c" ; \ $(top_builddir)/cloog$(EXEEXT) -callable 1 $(srcdir)/$$x.cloog -o $(srcdir)/$$x.good.c ; \ done; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo "Generate $$x.good.c ($$options)" ; \ $(top_builddir)/cloog$(EXEEXT) -callable 1 $$options $(srcdir)/$$x.cloog -o $(srcdir)/$$x.good.c ; \ done; done valgrind: @echo " /*-----------------------------------------------*" @echo " * Checking files by Valgrind *" @echo " *-----------------------------------------------*/" for x in $(CLOOGTEST_C) ; do \ echo "Valgrinding $$x.c" ; \ valgrind $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog ; \ done ; \ for x in $(CLOOGTEST_FORTRAN) ; do \ echo "Valgrinding $$x.f" ; \ valgrind $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog ; \ done test_run: generate_test$(EXEEXT) @echo " /*-----------------------------------------------*" @echo " * Testing CLooG *" @echo " *-----------------------------------------------*/" @failedtest=0 ; \ echo "--- Testing C files... (correct output)" ; \ for x in $(FINITE_CLOOGTEST_C) ; do \ echo -n "Verify file $$x... " ; \ echo -n "generating... " ; \ $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $(srcdir)/$$x.cloog > test_test.c ; \ ./generate_test$(EXEEXT) < $(srcdir)/$$x.cloog > test_main.c; \ echo -n "compiling... " ; \ $(COMPILE) -c test_test.c; \ $(COMPILE) -Dtest=good -c $(srcdir)/$$x.good.c -o test_good.o; \ $(LINK) test_main.c test_test.o test_good.o > /dev/null; \ echo -n "comparing... " ; \ ./test_run$(EXEEXT); \ result=$$?; \ if test "$$result" -ne "0" ; then \ failedtest=`expr $$failedtest + 1` ; \ fi; \ $(RM) $@; \ echo; \ done; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo -n "Verify file $$x ($$options)... " ; \ echo -n "generating... " ; \ $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $$options $(srcdir)/$$x.cloog > test_test.c ; \ ./generate_test$(EXEEXT) < $(srcdir)/$$x.cloog > test_main.c; \ echo -n "compiling... " ; \ $(COMPILE) -c test_test.c; \ $(COMPILE) -Dtest=good -c $(srcdir)/$$x.good.c -o test_good.o; \ $(LINK) test_main.c test_test.o test_good.o > /dev/null; \ echo -n "comparing... " ; \ ./test_run$(EXEEXT); \ result=$$?; \ if test "$$result" -ne "0" ; then \ failedtest=`expr $$failedtest + 1` ; \ fi; \ $(RM) $@; \ echo; \ done; done; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo -n "Verify file $$x ($$options -sh 1)... " ; \ echo -n "generating... " ; \ $(top_builddir)/cloog$(EXEEXT) -q -callable 1 $$options -sh 1 $(srcdir)/$$x.cloog > test_test.c ; \ ./generate_test$(EXEEXT) < $(srcdir)/$$x.cloog > test_main.c; \ echo -n "compiling... " ; \ $(COMPILE) -c test_test.c; \ $(COMPILE) -Dtest=good -c $(srcdir)/$$x.good.c -o test_good.o; \ $(LINK) test_main.c test_test.o test_good.o > /dev/null; \ echo -n "comparing... " ; \ ./test_run$(EXEEXT); \ result=$$?; \ if test "$$result" -ne "0" ; then \ failedtest=`expr $$failedtest + 1` ; \ fi; \ $(RM) $@; \ echo; \ done; done; \ if [ $$failedtest != 0 ] ; then \ echo "$$failedtest tests failed" ; \ else \ echo "CLooG works correctly :-) !" ; \ fi test: @echo " /*-----------------------------------------------*" @echo " * Testing CLooG *" @echo " *-----------------------------------------------*/" @failedtest=0 ; \ echo "--- Testing C files... (expected output)" ; \ for x in $(CLOOGTEST_C) ; do \ echo "Verify file $$x" ; \ $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done ; \ echo "--- Testing FORTRAN files..." ; \ for x in $(CLOOGTEST_FORTRAN) ; do \ echo "Verify file $$x" ; \ $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.f ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done ; \ echo "--- Testing STRIDED files..." ; \ for x in $(CLOOGTEST_STRIDED) ; do \ echo "Verify file $$x" ; \ $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \ -strides 1 > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done ; \ echo "--- Testing SPECIAL OPTIONS files..." ; \ for line in $(SPECIAL_OPTIONS); do echo $$line | while read x options; do \ echo "Verify file $$x ($$options)" ; \ $(top_builddir)/cloog$(EXEEXT) $(srcdir)/$$x.cloog \ $$options > ttemp ; \ diff -u -w --ignore-matching-lines='CLooG' ttemp $(srcdir)/$$x.c ; \ result=$$?; \ if [ "$$result" -ne "0" ] ; then \ echo "!!! Error: $$x is not the same" ; \ failedtest=`expr $$failedtest + 1` ; \ else \ echo "$$x passed" ; \ fi ; \ done; done; \ rm ttemp ; \ if [ $$failedtest != 0 ] ; then \ echo "$$failedtest tests failed" ; \ else \ echo "CLooG works correctly :-) !" ; \ fi # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: cloog-parma-0.16.1/cloog-core/test/cholesky2.cloog0000644000175000017500000000256311321074700016662 00000000000000# language: C c # parameter n 1 3 # n 1 1 0 1 0 6 # Number of statements 1 # S1 {i | 1<=i<=n} 2 4 # i n 1 1 1 0 -1 1 -1 1 0 0 0 0 1 # S2 {i, j | 1<=i<=n; 1<=j<=i-1} 4 5 # i j n 1 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -1 1 1 -1 0 -1 0 0 0 1 # S3 {i | 1<=i<=n} 2 4 # i n 1 1 1 0 -1 1 -1 1 0 0 0 0 1 # S4 {i, j | 1<=i<=n; i+1<=j<=n} 4 5 # i j n 1 1 1 0 0 -1 1 -1 0 1 0 1 -1 1 0 -1 1 0 -1 1 0 0 0 0 1 # S5 {i, j, k | 1<=i<=n; i+1<=j<=n 1<=k<=i-1} 6 6 # i j k n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 -1 1 0 0 -1 1 0 -1 0 1 0 1 0 0 1 0 -1 1 1 0 -1 0 -1 0 0 0 1 # S6 {i, j | 1<=i<=n; i+1<=j<=n} 4 5 # i j n 1 1 1 0 0 -1 1 -1 0 1 0 1 -1 1 0 -1 1 0 -1 1 0 0 0 0 0 6 # Scattering functions # Et les instructions de chunking (parallele)... 3 7 # c1 c2 c3 i n 1 0 1 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 1 0 0 0 3 8 # c1 c2 c3 i j n 1 0 1 0 0 0 -3 0 0 0 0 1 0 -1 0 0 0 0 0 0 1 0 0 0 0 3 7 # c1 c2 c3 i n 1 0 1 0 0 -3 0 2 0 0 1 0 0 0 0 0 0 0 1 0 0 0 3 8 # c1 c2 c3 i j n 1 0 1 0 0 0 0 0 0 0 0 1 0 -1 0 0 0 0 0 0 1 0 -1 0 0 3 9 # c1 c2 c3 i j k n 1 0 1 0 0 0 0 -3 0 1 0 0 1 0 0 -1 0 0 0 0 0 0 1 0 0 -1 0 0 3 8 # c1 c2 c3 i j n 1 0 1 0 0 -3 0 0 1 0 0 1 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/multi-stride2.c0000644000175000017500000000024511323312273016577 00000000000000/* Generated from ../../../git/cloog/test/multi-stride2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ for (i=5;i<=100;i+=6) { S1(i,(i-1)/2,(i-2)/3) ; } cloog-parma-0.16.1/cloog-core/test/constant.cloog0000644000175000017500000000431311477113144016613 00000000000000# CLooG -> CLooG # This is an automatic dump of a CLooG input file from a CloogInput data # structure. # Language: C c # Context: 0 3 0 # Parameter name(s) # Statement number: 6 # Iteration domain of statement 1 (Stmt_if.then). 1 3 4 1 0 0 1 1 1 0 0 1 -1 0 1023 1 -1 1 1024 0 0 0 # For future options. # Iteration domain of statement 2 (Stmt_if.else). 1 3 4 1 0 0 1 1 1 0 0 1 -1 0 1023 1 1 -1 -1025 0 0 0 # For future options. # Iteration domain of statement 3 (Stmt_if.end). 1 2 4 1 0 0 1 1 1 0 0 1 -1 0 1023 0 0 0 # For future options. # Iteration domain of statement 1 (Stmt_if.then). 1 3 4 1 0 0 1 1 1 0 0 1 -1 0 1023 1 -1 1 1024 0 0 0 # For future options. # Iteration domain of statement 2 (Stmt_if.else). 1 3 4 1 0 0 1 1 1 0 0 1 -1 0 1023 1 1 -1 -1025 0 0 0 # For future options. # Iteration domain of statement 3 (Stmt_if.end). 1 2 4 1 0 0 1 1 1 0 0 1 -1 0 1023 0 0 0 # For future options. 0 # Iterator name(s) # --------------------- SCATTERING -------------------- 6 # Scattering functions # Scattering of statement 1 (Stmt_if.then). 1 3 7 3 1 0 1 0 0 0 1 0 0 0 0 0 1 0 -1 0 0 0 1 0 0 0 0 1 # Scattering of statement 2 (Stmt_if.else). 1 3 7 3 1 0 1 0 0 0 1 0 0 -1 0 0 1 0 -1 0 0 0 1 0 0 0 0 1 # Scattering of statement 3 (Stmt_if.end). 1 3 7 3 1 0 1 0 0 0 1 0 0 -2 0 0 1 0 -1 0 0 0 1 0 0 0 0 1 # Scattering of statement 1 (Stmt_if.then). 1 3 7 3 1 0 1 0 0 0 1 0 0 0 0 1 0 0 -1 0 0 0 0 1 0 0 0 0 # Scattering of statement 2 (Stmt_if.else). 1 3 7 3 1 0 1 0 0 0 1 0 0 -1 0 1 0 0 -1 0 0 0 0 1 0 0 0 0 # Scattering of statement 3 (Stmt_if.end). 1 3 7 3 1 0 1 0 0 0 1 0 0 -2 0 1 0 0 -1 0 0 0 0 1 0 0 0 0 0 # Scattering dimension name(s) cloog-parma-0.16.1/cloog-core/test/dartef.cloog0000644000175000017500000000127611321074700016224 00000000000000# language: FORTRAN f # parameters n m 1 3 # n 1 1 0 0 1 n 2 # Number of statements 1 # S1 {i, j, k | 1<=i<=n; 1<=j<=n, 1<=k<=n} 6 6 # i j k n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 0 1 0 1 0 0 1 0 -1 1 0 0 -1 1 0 0 0 0 1 # S2 {i, j, k | 1<=i<=n; 1<=j<=n, 1<=k<=n} 6 6 # i j k n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 0 1 0 1 0 0 1 0 -1 1 0 0 -1 1 0 0 0 0 0 2 # Scattering functions 3 9 # c1 c2 c3 i j k n 1 0 1 0 0 -1 1 0 0 0 0 0 1 0 -1 -1 0 0 0 0 0 0 1 -1 -1 -2 0 0 3 9 # c1 c2 c3 i j k n 1 0 1 0 0 -1 1 0 0 -1 0 0 1 0 -1 -1 0 0 -2 0 0 0 1 0 0 -1 0 0 1 t1 t2 t3 cloog-parma-0.16.1/cloog-core/test/block2.good.c0000644000175000017500000000125311467775010016211 00000000000000/* Generated from /home/skimo/git/cloog/test/block2.cloog by CLooG 0.14.0-302-g309b32c gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j) { hash(3); hash(i); hash(j); } void test() { /* Scattering iterators. */ int c0, c1; /* Original iterators. */ int i, j; for (c0=0;c0<=9;c0++) { S1(c0,1); S3(c0,1); S2(c0,1); } } cloog-parma-0.16.1/cloog-core/test/walters2.good.c0000644000175000017500000000133511321074700016564 00000000000000/* Generated from /home/skimo/git/cloog/test/walters2.cloog by CLooG 0.14.0-227-g08f253a gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(j,i) { hash(1); hash(j); hash(i); } #define S2(j,i) { hash(2); hash(j); hash(i); } void test() { /* Original iterators. */ int j, i; for (i=0;i<=51;i++) { S2(0,i); } for (j=1;j<=24;j++) { S2(j,0); for (i=1;i<=50;i++) { S1(j,i); } S2(j,51); } for (i=0;i<=51;i++) { if (i >= 0) { S2(25,i); } } } cloog-parma-0.16.1/cloog-core/test/forwardsub-3-1-2.c0000644000175000017500000000064211323312273016707 00000000000000/* Generated from ../../../git/cloog/test/forwardsub-3-1-2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ S3(2,1) ; S1(3,1) ; S1(4,1) ; S4(4,2) ; for (i=5;i<=M+1;i++) { S1(i,1) ; for (j=2;j<=floord(i-1,2);j++) { S2(i,j) ; } if (i%2 == 0) { S4(i,i/2) ; } } for (i=M+2;i<=2*M-1;i++) { for (j=i-M;j<=floord(i-1,2);j++) { S2(i,j) ; } if (i%2 == 0) { S4(i,i/2) ; } } S4(2*M,M) ; cloog-parma-0.16.1/cloog-core/test/square+triangle-1-1-2-3.good.c0000644000175000017500000000147711321074700020724 00000000000000/* Generated from ../../../git/cloog/test/square+triangle-1-1-2-3.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M) { /* Original iterators. */ int i, j; for (j=1;j<=M;j++) { S1(1,j) ; } for (i=2;i<=M-1;i++) { S1(i,1) ; for (j=2;j<=i;j++) { S1(i,j) ; S2(i,j) ; } for (j=i+1;j<=M;j++) { S1(i,j) ; } } if (M >= 2) { S1(M,1) ; for (j=2;j<=M;j++) { S1(M,j) ; S2(M,j) ; } } } cloog-parma-0.16.1/cloog-core/test/stride2.cloog0000644000175000017500000000021711321074700016325 00000000000000c 0 2 0 2 1 1 3 0 -1 27 -1 0 0 1 3 4 1 1 0 -3 1 -1 0 100 0 1 -3 0 0 0 0 0 2 2 5 0 -1 0 1 0 0 0 -1 0 0 2 6 0 -1 0 1 0 0 0 0 -1 0 1 0 0 cloog-parma-0.16.1/cloog-core/test/min-2-1.c0000644000175000017500000000043411323312273015153 00000000000000/* Generated from ../../../git/cloog/test/min-2-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if ((M >= 0) && (N >= 1)) { for (i=1;i<=N;i++) { for (j=0;j<=min(min(M,i),-i+N);j++) { for (k=0;k<=min(min(M,i),-i+N);k++) { S1(i,j,k) ; } } } } cloog-parma-0.16.1/cloog-core/test/lu2.c0000644000175000017500000000065111323312273014576 00000000000000/* Generated from ../../../git/cloog/test/lu2.cloog by CLooG 0.14.0-238-gb1cb779 gmp bits in 0.01s. */ if (n >= 2) { for (l=2;l<=n;l++) { S1(1,n,1,l); } for (i=2;i<=n-1;i++) { for (j=2;j<=n;j++) { for (k=1;k<=min(i-1,j-1);k++) { S2(i,j,k,j,i); } } for (l=i+1;l<=n;l++) { S1(i,n,i,l); } } for (j=2;j<=n;j++) { for (k=1;k<=j-1;k++) { S2(n,j,k,j,n); } } } cloog-parma-0.16.1/cloog-core/test/equality2.c0000644000175000017500000000076511323312273016021 00000000000000/* Generated from ../../../git/cloog/test/equality2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.07s. */ for (i0=1;i0<=10000;i0++) { for (i1=1000;i1<=1016;i1++) { for (i2=1;i2<=min(-2*i1+2033,2*i1-1999);i2++) { if (2*i1 == i2+1999) { S2(i0,i1,i2,1,i0,2*i1-1000,1,2,i0,i1-499,2*i1-1999,i0,2*i1-1999,i1-999,i1-999) ; } if (i2 == 1) { if (i1%2 == 0) { S1(i0,i1,i2,2,i0,(i1+2)/2,i1-999,i0,i1-999,(i1-998)/2,(i1-998)/2) ; } } } } } cloog-parma-0.16.1/cloog-core/test/min-3-1.cloog0000644000175000017500000000036111321074700016032 00000000000000# language: C c # Context 2 3 # M 1 1 1 0 1 0 1 0 1 # Number of statements 1 # 7 5 # i j M 1 1 1 0 0 0 1 -1 0 1 0 1 -1 0 0 10 1 0 1 0 0 1 0 -1 1 0 1 0 -1 0 10 1 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/stride.c0000644000175000017500000000027011323312273015363 00000000000000/* Generated from stride.cloog by CLooG 0.14.0-200-g26bdb56 gmp bits in 0.01s. */ for (c1=3;c1<=100;c1++) { if (c1 == 25) { S1(25); } if (c1%3 == 0) { S2(c1,c1/3); } } cloog-parma-0.16.1/cloog-core/test/gesced2.cloog0000644000175000017500000000214711321074700016271 00000000000000# language: C c # parameters {n | n>=16} 1 3 # n 1 1 1 -16 0 2 # Number of statements 1 # {i, j | 1<=i<=n 5<=j<=n-10} 4 5 # i j n 1 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -5 1 0 -1 1 -10 0 0 0 1 # {i, j | 1<=i<=n 5<=j<=n-10} 4 5 # i j n 1 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -5 1 0 -1 1 -10 0 0 0 0 2 # Scattering functions # Et les instructions de chunking (sol triviale)... 2 7 # c1 c2 i j n 1 0 1 0 -1 0 0 0 0 0 1 0 -1 0 0 2 7 # c1 c2 i j n 1 0 1 0 0 -1 0 0 0 0 1 -1 1 0 0 0 # Et les instructions de chunking (sol aux inverse)... 2 7 # c1 c2 i j n 1 0 1 0 -10 -3 0 -5 0 0 1 -4 -1 0 5 2 7 # c1 c2 i j n 1 0 1 0 -9 -4 0 -15 0 0 1 -5 0 0 0 0 2 # Et les instructions de chunking (sol aux egalites)... 2 7 # c1 c2 i j n 1 0 1 0 1 -2 0 -30 0 0 1 -1 1 0 30 2 7 # c1 c2 i j n 1 0 1 0 -1 1 0 15 0 0 1 1 -2 0 -30 0 # Et les instructions de chunking (sol triviale)... 2 7 # c1 c2 i j n 1 0 1 0 -1 0 0 0 0 0 1 0 -1 0 5 2 7 # c1 c2 i j n 1 0 1 0 0 -1 0 -10 0 0 1 -1 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/classen2.good.c0000644000175000017500000000550711361141766016553 00000000000000/* Generated from ../../../git/cloog/test/classen2.cloog by CLooG 0.14.0-271-gaa1e292 gmp bits in 0.13s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(compIter1,compIter2,compIter3,compIter4,compIter5,compIter6) { hash(1); hash(compIter1); hash(compIter2); hash(compIter3); hash(compIter4); hash(compIter5); hash(compIter6); } void test(int outerTimeTileScatter, int outerProcTileScatter1, int outerProcTileScatter2, int M, int N) { /* Scattering iterators. */ int compScatter1, compScatter2, compScatter3; /* Original iterators. */ int compIter1, compIter2, compIter3, compIter4, compIter5, compIter6; if ((M >= 2) && (N >= 3) && (outerProcTileScatter1 >= outerProcTileScatter2) && (5*outerProcTileScatter1 <= M+2*N-4) && (5*outerProcTileScatter1 <= 5*outerProcTileScatter2+N+2) && (outerProcTileScatter2 >= 0) && (5*outerProcTileScatter2 <= M+N-2) && (outerTimeTileScatter >= outerProcTileScatter1) && (outerTimeTileScatter <= 2*outerProcTileScatter1) && (outerTimeTileScatter <= outerProcTileScatter1+outerProcTileScatter2+1) && (5*outerTimeTileScatter <= 2*M+2*N-6) && (5*outerTimeTileScatter <= 5*outerProcTileScatter1+M+2) && (5*outerTimeTileScatter >= 10*outerProcTileScatter1-2*N-2) && (5*outerTimeTileScatter <= 5*outerProcTileScatter2+M+N) && (5*outerTimeTileScatter >= 10*outerProcTileScatter2-N-3) && (5*outerTimeTileScatter <= 10*outerProcTileScatter2+N+3) && (5*outerTimeTileScatter >= 5*outerProcTileScatter1+5*outerProcTileScatter2-N-4)) { for (compScatter1=max(max(max(max(max(4,5*outerTimeTileScatter),5*outerProcTileScatter2+1),5*outerProcTileScatter1+5*outerProcTileScatter2-N),10*outerProcTileScatter1-2*N+2),10*outerProcTileScatter2-N+1);compScatter1<=min(min(min(min(min(5*outerTimeTileScatter+4,2*M+2*N-6),5*outerProcTileScatter1+M+2),5*outerProcTileScatter1+5*outerProcTileScatter2+5),5*outerProcTileScatter2+M+N),10*outerProcTileScatter2+N+3);compScatter1++) { for (compScatter2=max(max(max(max(ceild(compScatter1+4,2),5*outerProcTileScatter1),5*outerProcTileScatter2+1),compScatter1-M+2),compScatter1-5*outerProcTileScatter2-1);compScatter2<=min(min(min(min(floord(compScatter1+2*N-2,2),compScatter1),5*outerProcTileScatter1+4),compScatter1-5*outerProcTileScatter2+N),5*outerProcTileScatter2+N+2);compScatter2++) { for (compScatter3=max(max(5*outerProcTileScatter2,compScatter1-compScatter2+3),compScatter2-N+2);compScatter3<=min(min(compScatter2-1,5*outerProcTileScatter2+4),compScatter1-compScatter2+N);compScatter3++) { S1(compScatter1-compScatter2+1,-compScatter1+compScatter2+compScatter3-2,compScatter2-compScatter3,compScatter1,compScatter2,compScatter3); } } } } } cloog-parma-0.16.1/cloog-core/test/basic-bounds-6.good.c0000644000175000017500000000073211321074700017535 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-6.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } void test() { /* Original iterators. */ int i; S1(-1) ; } cloog-parma-0.16.1/cloog-core/test/forwardsub-1-1-2.cloog0000644000175000017500000000130611321074700017562 00000000000000# language: C c # Context #{N | 3<=N} 2 3 # M 1 1 1 -3 1 0 1 0 4 # Number of statements 1 #{t1,t2 | 2<=t1<=N; t2=1; 3<=N} 5 5 # i j M 1 0 0 1 0 -1 1 0 0 1 -3 1 -1 0 1 0 1 1 0 0 -2 1 0 0 0 1 0 0 0 1 #{t1,t2 | t2+1<=t1<=N; 2<=t2} 4 5 # i j M 1 1 1 -1 0 -1 1 0 1 0 -2 1 -1 0 1 0 1 0 0 0 1 0 0 0 1 #{t1,t2 | t1=1; t2=1; 3<=N} 4 5 # i j M 1 0 1 0 0 -1 0 0 1 0 -1 1 0 0 1 -3 1 0 0 0 1 0 0 0 1 #{t1,t2 | t1=t2; 2<=t2<=N; 3<=N} 4 5 # i j M 1 0 1 -1 0 0 1 0 0 1 -3 1 0 -1 1 0 1 0 1 0 -2 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/non_optimal/0000755000175000017500000000000011511607626016335 500000000000000cloog-parma-0.16.1/cloog-core/test/non_optimal/usvd_e_t.cloog0000644000175000017500000001316011321074700021101 00000000000000# language: C c # Context 0 2 0 # parameter names 26 # Number of statements 1 4 5 # i j k 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 1 -1 0 0 4 0 0 0 1 5 5 # i j k 1 0 0 0 1 0 1 1 0 0 0 1 -1 0 0 4 1 0 1 0 0 1 0 -1 0 4 0 0 0 1 4 5 # i j k 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 -4 1 -1 0 0 8 0 0 0 1 4 5 # i j k 1 0 0 0 1 1 1 -1 0 0 8 1 0 1 0 -1 1 1 -1 0 -4 0 0 0 1 4 5 # i j k 1 0 0 0 1 0 1 1 0 0 -4 1 0 -1 0 4 1 -1 1 0 4 0 0 0 1 4 5 # i j k 1 0 0 0 1 0 1 -1 0 0 8 1 0 1 0 4 1 1 -1 0 -9 0 0 0 1 4 5 # i j k 1 0 0 0 1 0 1 1 0 0 -5 1 0 -1 0 0 1 -1 1 0 9 0 0 0 1 5 5 # i j k 1 0 0 0 1 0 1 1 0 0 -3 1 -1 0 0 7 1 0 1 0 -7 1 0 -1 0 11 0 0 0 1 4 5 # i j k 1 0 0 1 0 -4 0 0 0 1 0 1 1 0 0 -7 1 -1 0 0 10 0 0 0 1 4 5 # i j k 1 0 0 1 0 -4 0 0 0 1 0 1 1 0 0 -7 1 -1 0 0 10 0 0 0 1 5 5 # i j k 1 0 1 -1 0 -3 1 0 -1 0 7 1 0 1 0 -4 1 0 0 -1 4 1 0 -1 1 4 0 0 0 1 5 5 # i j k 1 0 1 -1 0 -2 1 0 1 0 -5 1 0 -1 0 8 1 0 0 -1 4 1 0 -1 1 5 0 0 0 1 5 5 # i j k 1 1 -1 0 0 10 1 0 1 0 -4 1 0 0 -1 4 1 -1 0 1 7 1 1 -1 0 -4 0 0 0 1 5 5 # i j k 1 1 1 0 0 -8 1 0 -1 0 4 1 0 0 -1 0 1 -1 0 1 12 1 -1 1 0 6 0 0 0 1 5 5 # i j k 1 1 -1 0 0 10 1 0 1 0 -1 1 0 -1 0 5 1 0 0 1 -4 1 1 0 -1 -4 0 0 0 1 5 5 # i j k 1 0 1 0 -1 -6 1 0 0 -1 4 1 0 1 0 -4 1 0 0 1 -1 1 0 -1 1 4 0 0 0 1 5 5 # i j k 1 0 1 0 -1 -6 1 0 0 1 -1 1 0 1 0 -4 1 0 0 -1 4 1 0 -1 1 4 0 0 0 1 5 5 # i j k 1 1 -1 0 0 10 1 0 1 0 -1 1 0 0 1 -4 1 1 0 -1 -4 1 1 -1 0 -5 0 0 0 1 5 5 # i j k 1 1 1 0 0 -8 1 0 1 0 -1 1 0 0 -1 0 1 -1 0 1 10 1 1 -1 0 -6 0 0 0 1 5 5 # i j k 1 1 1 0 0 -8 1 0 -1 0 4 1 0 0 1 4 1 0 0 -1 0 1 -1 1 0 6 0 0 0 1 5 5 # i j k 1 0 1 0 -1 -7 1 0 0 -1 3 1 0 1 0 -4 1 0 -1 0 8 1 0 0 1 0 0 0 0 1 5 5 # i j k 1 0 1 0 -1 -7 1 0 0 1 0 1 0 1 0 -5 1 0 -1 0 9 1 0 0 -1 3 0 0 0 1 5 5 # i j k 1 1 -1 0 0 9 1 0 1 0 -4 1 0 -1 0 8 1 0 0 1 0 1 1 0 -1 -7 0 0 0 1 5 5 # i j k 1 1 1 0 0 -8 1 0 1 0 -4 1 0 -1 0 8 1 0 0 -1 3 1 -1 0 1 7 0 0 0 1 5 5 # i j k 1 0 0 0 1 -4 1 1 0 0 -10 1 -1 0 0 14 1 0 1 0 -1 1 0 -1 0 5 0 0 0 1 5 5 # i j k 1 0 0 0 1 -3 1 1 0 0 -10 1 -1 0 0 14 1 0 1 0 -1 1 0 -1 0 5 0 0 0 0 # iterator names 0 # scattering functions 0 # scattering dimension names cloog-parma-0.16.1/cloog-core/test/non_optimal/nul_complex1.c0000644000175000017500000000050111323312273021013 00000000000000/* Generated from ../../../git/cloog/test/./non_optimal/nul_complex1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ if (n >= 0) { for (c1=0;c1<=5*n;c1++) { for (c2=max(ceild(2*c1,3),c1-n);c2<=min(floord(2*c1+2*n,3),c1);c2++) { if (c2%2 == 0) { S1((-2*c1+3*c2)/2,c1-c2) ; } } } } cloog-parma-0.16.1/cloog-core/test/non_optimal/nul_complex1.cloog0000644000175000017500000000053511321074700021701 00000000000000# Optimal code is in fact : # # for (i=0;i<=M;i+=2) { # S1 ; # } # language: C c # parameter n 1 3 # n 1 1 0 1 1 n 1 # Number of statements 1 # {i | 0<=i<=n} 4 5 # i j n 1 1 1 0 0 0 1 -1 0 1 0 1 0 1 0 0 1 0 -1 1 0 0 0 0 0 1 # Scattering functions 2 7 # c1 c2 i j n 1 0 1 0 -2 -3 0 0 0 0 1 -2 -2 0 0 0 cloog-parma-0.16.1/cloog-core/test/non_optimal/usvd_e_t.good.c0000644000175000017500000001735511321074700021161 00000000000000/* Generated from ../../../git/cloog/test/./non_optimal/usvd_e_t.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.36s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } #define S3(i,j,k) { hash(3); hash(i); hash(j); hash(k); } #define S4(i,j,k) { hash(4); hash(i); hash(j); hash(k); } #define S5(i,j,k) { hash(5); hash(i); hash(j); hash(k); } #define S6(i,j,k) { hash(6); hash(i); hash(j); hash(k); } #define S7(i,j,k) { hash(7); hash(i); hash(j); hash(k); } #define S8(i,j,k) { hash(8); hash(i); hash(j); hash(k); } #define S9(i,j,k) { hash(9); hash(i); hash(j); hash(k); } #define S10(i,j,k) { hash(10); hash(i); hash(j); hash(k); } #define S11(i,j,k) { hash(11); hash(i); hash(j); hash(k); } #define S12(i,j,k) { hash(12); hash(i); hash(j); hash(k); } #define S13(i,j,k) { hash(13); hash(i); hash(j); hash(k); } #define S14(i,j,k) { hash(14); hash(i); hash(j); hash(k); } #define S15(i,j,k) { hash(15); hash(i); hash(j); hash(k); } #define S16(i,j,k) { hash(16); hash(i); hash(j); hash(k); } #define S17(i,j,k) { hash(17); hash(i); hash(j); hash(k); } #define S18(i,j,k) { hash(18); hash(i); hash(j); hash(k); } #define S19(i,j,k) { hash(19); hash(i); hash(j); hash(k); } #define S20(i,j,k) { hash(20); hash(i); hash(j); hash(k); } #define S21(i,j,k) { hash(21); hash(i); hash(j); hash(k); } #define S22(i,j,k) { hash(22); hash(i); hash(j); hash(k); } #define S23(i,j,k) { hash(23); hash(i); hash(j); hash(k); } #define S24(i,j,k) { hash(24); hash(i); hash(j); hash(k); } #define S25(i,j,k) { hash(25); hash(i); hash(j); hash(k); } #define S26(i,j,k) { hash(26); hash(i); hash(j); hash(k); } void test() { /* Original iterators. */ int i, j, k; for (i=0;i<=2;i++) { S1(i,0,0) ; S2(i,0,0) ; for (j=1;j<=4;j++) { S2(i,j,0) ; } } S1(3,0,0) ; S2(3,0,0) ; for (j=1;j<=4;j++) { S2(3,j,0) ; } for (j=7;j<=11;j++) { S8(3,j,0) ; } S1(4,0,0) ; S2(4,0,0) ; S3(4,0,0) ; S5(4,0,0) ; for (j=1;j<=4;j++) { S2(4,j,0) ; S5(4,j,0) ; } for (j=7;j<=11;j++) { S8(4,j,0) ; } S6(5,-4,0) ; S7(5,-4,0) ; for (j=-3;j<=-1;j++) { S7(5,j,0) ; } S3(5,0,0) ; S7(5,0,0) ; S4(5,1,-1) ; S5(5,1,0) ; for (j=2;j<=4;j++) { S5(5,j,0) ; } for (j=7;j<=11;j++) { S8(5,j,0) ; } S6(6,-4,0) ; S6(6,-3,0) ; S7(6,-3,0) ; for (j=-2;j<=-1;j++) { S7(6,j,0) ; } S3(6,0,0) ; S7(6,0,0) ; S4(6,1,-1) ; S4(6,2,-1) ; S5(6,2,0) ; for (j=3;j<=4;j++) { S5(6,j,0) ; } for (j=7;j<=11;j++) { S8(6,j,0) ; } for (j=-4;j<=-3;j++) { S6(7,j,0) ; } S6(7,-2,0) ; S7(7,-2,0) ; S7(7,-1,0) ; S3(7,0,0) ; S7(7,0,0) ; for (j=1;j<=2;j++) { S4(7,j,-1) ; } S4(7,3,-1) ; S5(7,3,0) ; S5(7,4,0) ; S9(7,4,0) ; S10(7,4,0) ; S11(7,4,0) ; S21(7,4,0) ; S23(7,4,0) ; S11(7,4,1) ; S16(7,4,1) ; S17(7,4,1) ; for (k=2;k<=4;k++) { S11(7,4,k) ; } S12(7,5,0) ; S21(7,5,0) ; S22(7,5,0) ; S23(7,5,0) ; S12(7,5,1) ; S16(7,5,1) ; S17(7,5,1) ; for (k=2;k<=4;k++) { S12(7,5,k) ; } S21(7,6,0) ; S22(7,6,0) ; S23(7,6,0) ; for (j=7;j<=8;j++) { S8(7,j,0) ; S21(7,j,0) ; S22(7,j,0) ; S23(7,j,0) ; } S8(7,9,0) ; S22(7,9,0) ; for (j=10;j<=11;j++) { S8(7,j,0) ; } for (j=-4;j<=-2;j++) { S6(8,j,0) ; } S6(8,-1,0) ; S7(8,-1,0) ; S3(8,0,0) ; S7(8,0,0) ; S19(8,1,-2) ; S4(8,1,-1) ; S19(8,1,-1) ; S19(8,1,0) ; S15(8,1,4) ; S18(8,1,4) ; for (k=-4;k<=-3;k++) { S14(8,2,k) ; S20(8,2,k) ; } S14(8,2,-2) ; S19(8,2,-2) ; S20(8,2,-2) ; S4(8,2,-1) ; S14(8,2,-1) ; S19(8,2,-1) ; S20(8,2,-1) ; S14(8,2,0) ; S19(8,2,0) ; S20(8,2,0) ; S15(8,2,4) ; S18(8,2,4) ; for (k=-4;k<=-2;k++) { S14(8,3,k) ; S20(8,3,k) ; } S4(8,3,-1) ; S14(8,3,-1) ; S20(8,3,-1) ; S14(8,3,0) ; S20(8,3,0) ; S15(8,3,4) ; S18(8,3,4) ; for (k=-4;k<=-2;k++) { S14(8,4,k) ; S20(8,4,k) ; } S4(8,4,-1) ; S14(8,4,-1) ; S20(8,4,-1) ; S5(8,4,0) ; S9(8,4,0) ; S10(8,4,0) ; S14(8,4,0) ; S20(8,4,0) ; S23(8,4,0) ; S13(8,4,1) ; S21(8,4,1) ; S23(8,4,1) ; S24(8,4,1) ; S13(8,4,2) ; S16(8,4,2) ; S17(8,4,2) ; S24(8,4,2) ; S13(8,4,3) ; S24(8,4,3) ; S13(8,4,4) ; S15(8,4,4) ; S23(8,5,0) ; S11(8,5,1) ; S21(8,5,1) ; S22(8,5,1) ; S23(8,5,1) ; S24(8,5,1) ; S11(8,5,2) ; S16(8,5,2) ; S17(8,5,2) ; S24(8,5,2) ; S11(8,5,3) ; S24(8,5,3) ; S11(8,5,4) ; S15(8,5,4) ; S23(8,6,0) ; S12(8,6,1) ; S21(8,6,1) ; S22(8,6,1) ; S23(8,6,1) ; S24(8,6,1) ; S12(8,6,2) ; S16(8,6,2) ; S17(8,6,2) ; S24(8,6,2) ; S12(8,6,3) ; S24(8,6,3) ; S12(8,6,4) ; for (j=7;j<=8;j++) { S23(8,j,0) ; S21(8,j,1) ; S22(8,j,1) ; S23(8,j,1) ; S24(8,j,1) ; for (k=2;k<=3;k++) { S24(8,j,k) ; } } S22(8,9,1) ; S7(9,0,0) ; for (j=1;j<=2;j++) { for (k=-1;k<=0;k++) { S19(9,j,k) ; } for (k=4;k<=5;k++) { S15(9,j,k) ; S18(9,j,k) ; } } S20(9,3,-4) ; for (k=-3;k<=-2;k++) { S14(9,3,k) ; S20(9,3,k) ; } for (k=-1;k<=0;k++) { S14(9,3,k) ; S19(9,3,k) ; S20(9,3,k) ; } for (k=4;k<=5;k++) { S15(9,3,k) ; S18(9,3,k) ; } S20(9,4,-4) ; for (k=-3;k<=-1;k++) { S14(9,4,k) ; S20(9,4,k) ; } S9(9,4,0) ; S10(9,4,0) ; S14(9,4,0) ; S20(9,4,0) ; S23(9,4,0) ; S23(9,4,1) ; S13(9,4,2) ; S21(9,4,2) ; S23(9,4,2) ; S24(9,4,2) ; S13(9,4,3) ; S16(9,4,3) ; S17(9,4,3) ; S24(9,4,3) ; S13(9,4,4) ; S15(9,4,4) ; S18(9,4,4) ; S15(9,4,5) ; S18(9,4,5) ; for (k=0;k<=1;k++) { S23(9,5,k) ; } S13(9,5,2) ; S21(9,5,2) ; S22(9,5,2) ; S23(9,5,2) ; S24(9,5,2) ; S13(9,5,3) ; S16(9,5,3) ; S17(9,5,3) ; S24(9,5,3) ; S13(9,5,4) ; S15(9,5,4) ; S15(9,5,5) ; for (k=0;k<=1;k++) { S23(9,6,k) ; } S11(9,6,2) ; S21(9,6,2) ; S22(9,6,2) ; S23(9,6,2) ; S24(9,6,2) ; S11(9,6,3) ; S16(9,6,3) ; S17(9,6,3) ; S24(9,6,3) ; S11(9,6,4) ; for (k=0;k<=1;k++) { S23(9,7,k) ; } S12(9,7,2) ; S21(9,7,2) ; S22(9,7,2) ; S23(9,7,2) ; S24(9,7,2) ; S12(9,7,3) ; S16(9,7,3) ; S17(9,7,3) ; S24(9,7,3) ; S12(9,7,4) ; for (k=0;k<=1;k++) { S23(9,8,k) ; } S21(9,8,2) ; S22(9,8,2) ; S23(9,8,2) ; S24(9,8,2) ; S24(9,8,3) ; S22(9,9,2) ; for (j=1;j<=3;j++) { S19(10,j,0) ; S26(10,j,3) ; S15(10,j,4) ; S18(10,j,4) ; S25(10,j,4) ; for (k=5;k<=6;k++) { S15(10,j,k) ; S18(10,j,k) ; } } for (k=-4;k<=-3;k++) { S20(10,4,k) ; } for (k=-2;k<=-1;k++) { S14(10,4,k) ; S20(10,4,k) ; } S9(10,4,0) ; S10(10,4,0) ; S14(10,4,0) ; S19(10,4,0) ; S20(10,4,0) ; S13(10,4,3) ; S21(10,4,3) ; S24(10,4,3) ; S26(10,4,3) ; S13(10,4,4) ; S15(10,4,4) ; S16(10,4,4) ; S17(10,4,4) ; S18(10,4,4) ; S25(10,4,4) ; for (k=5;k<=6;k++) { S15(10,4,k) ; S18(10,4,k) ; } S13(10,5,3) ; S21(10,5,3) ; S22(10,5,3) ; S24(10,5,3) ; S26(10,5,3) ; S13(10,5,4) ; S15(10,5,4) ; S16(10,5,4) ; S17(10,5,4) ; S18(10,5,4) ; S25(10,5,4) ; for (k=5;k<=6;k++) { S15(10,5,k) ; S18(10,5,k) ; } S13(10,6,3) ; S21(10,6,3) ; S22(10,6,3) ; S24(10,6,3) ; S13(10,6,4) ; S16(10,6,4) ; S17(10,6,4) ; S11(10,7,3) ; S21(10,7,3) ; S22(10,7,3) ; S24(10,7,3) ; S11(10,7,4) ; S16(10,7,4) ; S17(10,7,4) ; S12(10,8,3) ; S21(10,8,3) ; S22(10,8,3) ; S24(10,8,3) ; S12(10,8,4) ; S16(10,8,4) ; S17(10,8,4) ; S22(10,9,3) ; for (i=11;i<=14;i++) { for (j=1;j<=5;j++) { S26(i,j,3) ; S25(i,j,4) ; } } } cloog-parma-0.16.1/cloog-core/test/non_optimal/nul_complex1.good.c0000644000175000017500000000137611321074700021753 00000000000000/* Generated from ../../../git/cloog/test/./non_optimal/nul_complex1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } void test(int n) { /* Scattering iterators. */ int c1, c2; /* Original iterators. */ int i, j; for (c1=0;c1<=5*n;c1++) { for (c2=max(c1-n,ceild(2*c1,3));c2<=min(c1,floord(2*c1+2*n,3));c2++) { if (c2%2 == 0) { i = (-2*c1+3*c2)/2 ; j = c1-c2 ; S1((-2*c1+3*c2)/2,c1-c2) ; } } } } cloog-parma-0.16.1/cloog-core/test/non_optimal/usvd_e_t.c0000644000175000017500000001137311323312273020226 00000000000000/* Generated from ../../../git/cloog/test/non_optimal/usvd_e_t.cloog by CLooG 0.14.0-238-gb1cb779 gmp bits in 0.11s. */ for (i=0;i<=2;i++) { S1(i,0,0); for (j=0;j<=4;j++) { S2(i,j,0); } } S1(3,0,0); for (j=0;j<=4;j++) { S2(3,j,0); } for (j=7;j<=11;j++) { S8(3,j,0); } S1(4,0,0); S2(4,0,0); S3(4,0,0); S5(4,0,0); for (j=1;j<=4;j++) { S2(4,j,0); S5(4,j,0); } for (j=7;j<=11;j++) { S8(4,j,0); } for (i=5;i<=6;i++) { for (j=-4;j<=i-9;j++) { S6(i,j,0); } for (j=i-9;j<=-1;j++) { S7(i,j,0); } S3(i,0,0); S7(i,0,0); for (j=1;j<=i-4;j++) { S4(i,j,-1); } for (j=i-4;j<=4;j++) { S5(i,j,0); } for (j=7;j<=11;j++) { S8(i,j,0); } } for (j=-4;j<=-2;j++) { S6(7,j,0); } for (j=-2;j<=-1;j++) { S7(7,j,0); } S3(7,0,0); S7(7,0,0); for (j=1;j<=3;j++) { S4(7,j,-1); } for (j=3;j<=4;j++) { S5(7,j,0); } S9(7,4,0); S10(7,4,0); S11(7,4,0); S21(7,4,0); S23(7,4,0); S11(7,4,1); S16(7,4,1); S17(7,4,1); for (k=2;k<=4;k++) { S11(7,4,k); } S12(7,5,0); S21(7,5,0); S22(7,5,0); S23(7,5,0); S12(7,5,1); S16(7,5,1); S17(7,5,1); for (k=2;k<=4;k++) { S12(7,5,k); } S21(7,6,0); S22(7,6,0); S23(7,6,0); for (j=7;j<=8;j++) { S8(7,j,0); S21(7,j,0); S22(7,j,0); S23(7,j,0); } S8(7,9,0); S22(7,9,0); for (j=10;j<=11;j++) { S8(7,j,0); } for (j=-4;j<=-1;j++) { S6(8,j,0); } S7(8,-1,0); S3(8,0,0); S7(8,0,0); S19(8,1,-2); S4(8,1,-1); S19(8,1,-1); S19(8,1,0); S15(8,1,4); S18(8,1,4); for (k=-4;k<=-3;k++) { S14(8,2,k); S20(8,2,k); } S14(8,2,-2); S19(8,2,-2); S20(8,2,-2); S4(8,2,-1); S14(8,2,-1); S19(8,2,-1); S20(8,2,-1); S14(8,2,0); S19(8,2,0); S20(8,2,0); S15(8,2,4); S18(8,2,4); for (k=-4;k<=-2;k++) { S14(8,3,k); S20(8,3,k); } S4(8,3,-1); S14(8,3,-1); S20(8,3,-1); S14(8,3,0); S20(8,3,0); S15(8,3,4); S18(8,3,4); for (k=-4;k<=-2;k++) { S14(8,4,k); S20(8,4,k); } S4(8,4,-1); S14(8,4,-1); S20(8,4,-1); S5(8,4,0); S9(8,4,0); S10(8,4,0); S14(8,4,0); S20(8,4,0); S23(8,4,0); S13(8,4,1); S21(8,4,1); S23(8,4,1); S24(8,4,1); S13(8,4,2); S16(8,4,2); S17(8,4,2); S24(8,4,2); S13(8,4,3); S24(8,4,3); S13(8,4,4); S15(8,4,4); S23(8,5,0); S11(8,5,1); S21(8,5,1); S22(8,5,1); S23(8,5,1); S24(8,5,1); S11(8,5,2); S16(8,5,2); S17(8,5,2); S24(8,5,2); S11(8,5,3); S24(8,5,3); S11(8,5,4); S15(8,5,4); S23(8,6,0); S12(8,6,1); S21(8,6,1); S22(8,6,1); S23(8,6,1); S24(8,6,1); S12(8,6,2); S16(8,6,2); S17(8,6,2); S24(8,6,2); S12(8,6,3); S24(8,6,3); S12(8,6,4); for (j=7;j<=8;j++) { S23(8,j,0); S21(8,j,1); S22(8,j,1); S23(8,j,1); for (k=1;k<=3;k++) { S24(8,j,k); } } S22(8,9,1); S7(9,0,0); for (j=1;j<=2;j++) { for (k=-1;k<=0;k++) { S19(9,j,k); } for (k=4;k<=5;k++) { S15(9,j,k); S18(9,j,k); } } S20(9,3,-4); for (k=-3;k<=-2;k++) { S14(9,3,k); S20(9,3,k); } for (k=-1;k<=0;k++) { S14(9,3,k); S19(9,3,k); S20(9,3,k); } for (k=4;k<=5;k++) { S15(9,3,k); S18(9,3,k); } S20(9,4,-4); for (k=-3;k<=-1;k++) { S14(9,4,k); S20(9,4,k); } S9(9,4,0); S10(9,4,0); S14(9,4,0); S20(9,4,0); for (k=0;k<=1;k++) { S23(9,4,k); } S13(9,4,2); S21(9,4,2); S23(9,4,2); S24(9,4,2); S13(9,4,3); S16(9,4,3); S17(9,4,3); S24(9,4,3); S13(9,4,4); for (k=4;k<=5;k++) { S15(9,4,k); S18(9,4,k); } for (k=0;k<=1;k++) { S23(9,5,k); } S13(9,5,2); S21(9,5,2); S22(9,5,2); S23(9,5,2); S24(9,5,2); S13(9,5,3); S16(9,5,3); S17(9,5,3); S24(9,5,3); S13(9,5,4); for (k=4;k<=5;k++) { S15(9,5,k); } for (k=0;k<=1;k++) { S23(9,6,k); } S11(9,6,2); S21(9,6,2); S22(9,6,2); S23(9,6,2); S24(9,6,2); S11(9,6,3); S16(9,6,3); S17(9,6,3); S24(9,6,3); S11(9,6,4); for (k=0;k<=1;k++) { S23(9,7,k); } S12(9,7,2); S21(9,7,2); S22(9,7,2); S23(9,7,2); S24(9,7,2); S12(9,7,3); S16(9,7,3); S17(9,7,3); S24(9,7,3); S12(9,7,4); for (k=0;k<=1;k++) { S23(9,8,k); } S21(9,8,2); S22(9,8,2); S23(9,8,2); for (k=2;k<=3;k++) { S24(9,8,k); } S22(9,9,2); for (j=1;j<=3;j++) { S19(10,j,0); S26(10,j,3); S15(10,j,4); S18(10,j,4); S25(10,j,4); for (k=5;k<=6;k++) { S15(10,j,k); S18(10,j,k); } } for (k=-4;k<=-3;k++) { S20(10,4,k); } for (k=-2;k<=-1;k++) { S14(10,4,k); S20(10,4,k); } S9(10,4,0); S10(10,4,0); S14(10,4,0); S19(10,4,0); S20(10,4,0); S13(10,4,3); S21(10,4,3); S24(10,4,3); S26(10,4,3); S13(10,4,4); S15(10,4,4); S16(10,4,4); S17(10,4,4); S18(10,4,4); S25(10,4,4); for (k=5;k<=6;k++) { S15(10,4,k); S18(10,4,k); } S13(10,5,3); S21(10,5,3); S22(10,5,3); S24(10,5,3); S26(10,5,3); S13(10,5,4); S15(10,5,4); S16(10,5,4); S17(10,5,4); S18(10,5,4); S25(10,5,4); for (k=5;k<=6;k++) { S15(10,5,k); S18(10,5,k); } S13(10,6,3); S21(10,6,3); S22(10,6,3); S24(10,6,3); S13(10,6,4); S16(10,6,4); S17(10,6,4); S11(10,7,3); S21(10,7,3); S22(10,7,3); S24(10,7,3); S11(10,7,4); S16(10,7,4); S17(10,7,4); S12(10,8,3); S21(10,8,3); S22(10,8,3); S24(10,8,3); S12(10,8,4); S16(10,8,4); S17(10,8,4); S22(10,9,3); for (i=11;i<=14;i++) { for (j=1;j<=5;j++) { S26(i,j,3); S25(i,j,4); } } cloog-parma-0.16.1/cloog-core/test/non_optimal/youcef.good.c0000644000175000017500000000143111321074700020627 00000000000000/* Generated from ../../../git/cloog/test/./non_optimal/youcef.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i,j) { hash(3); hash(i); hash(j); } void test() { /* Original iterators. */ int i, j; for (i=0;i<=3;i++) { S1(i,i) ; S2(i,i) ; for (j=i+1;j<=4;j++) { S2(i,j) ; } S2(i,5) ; S3(i,5) ; } S1(4,4) ; S2(4,4) ; S2(4,5) ; S3(4,5) ; S1(5,5) ; S2(5,5) ; S3(5,5) ; } cloog-parma-0.16.1/cloog-core/test/non_optimal/youcef.cloog0000644000175000017500000000070311321074700020562 00000000000000# Optimal code is in fact : # # for (i=0;i<=M;i++) { # S1 ; # for (j=0;j<=N;j++) { # S2 ; # } # S3 ; # } # language: C c # parameters {M, N | M>=1 N >=1} 0 2 0 3 # Number of statements 1 # {i | 0<=i<=5 i==j} 3 4 1 1 0 0 1 -1 0 5 0 1 -1 0 0 0 0 1 # {i | 0<=i<=5 i<=j<=5} 4 4 1 1 0 0 1 -1 0 5 1 -1 1 0 1 0 -1 5 0 0 0 1 # {i | 0<=i<=5 j==5} 3 4 1 1 0 0 1 -1 0 5 0 0 1 -5 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/non_optimal/youcef.c0000644000175000017500000000031311323312273017700 00000000000000/* Generated from ../../../git/cloog/test/non_optimal/youcef.cloog by CLooG 0.14.0-238-gb1cb779 gmp bits in 0.00s. */ for (i=0;i<=5;i++) { S1(i,i); for (j=i;j<=5;j++) { S2(i,j); } S3(i,5); } cloog-parma-0.16.1/cloog-core/test/dot2.good.c0000644000175000017500000000132511321074700015670 00000000000000/* Generated from ../../../git/cloog/test/dot2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M, int N) { /* Original iterators. */ int i, j; for (i=1;i<=min(M,N);i++) { S1(i) ; for (j=1;j<=M;j++) { S2(i,j) ; } } for (i=N+1;i<=M;i++) { S1(i) ; } for (i=M+1;i<=N;i++) { for (j=1;j<=M;j++) { S2(i,j) ; } } } cloog-parma-0.16.1/cloog-core/test/nul_lcpc.c0000644000175000017500000000050711323312273015673 00000000000000/* Generated from ../../../git/cloog/test/nul_lcpc.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.03s. */ for (i=1;i<=6;i+=2) { for (j=1;j<=i;j++) { S1(i,(i-1)/2,j) ; S2(i,(i-1)/2,j) ; } for (j=i+1;j<=p;j++) { S1(i,(i-1)/2,j) ; } } for (i=7;i<=m;i+=2) { for (j=1;j<=p;j++) { S1(i,(i-1)/2,j) ; } } cloog-parma-0.16.1/cloog-core/test/infinite2.c0000644000175000017500000000032611323312273015762 00000000000000/* Generated from ../../../git/cloog/test/infinite2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (i=1;i<=N;i++) { S1(i) ; for (j=1;j<=M;j++) { S2(i,j) ; } } for (i=N+1;;i++) { S1(i) ; } cloog-parma-0.16.1/cloog-core/test/basic-bounds-5.cloog0000644000175000017500000000030711321074700017464 00000000000000# language: C c # Context 1 3 # M 1 1 0 1 0 1 # Number of statements 1 # {i,j,N | i=1; 2j-1<=N<=2j} 3 5 # i j M 1 0 1 0 0 -1 1 0 2 -1 0 1 0 -2 1 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/multi-mm-1.good.c0000644000175000017500000000137311321074700016722 00000000000000/* Generated from ../../../git/cloog/test/multi-mm-1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M, int N) { /* Original iterators. */ int i, j; for (i=0;i<=N;i++) { for (j=0;j<=i;j++) { S1(i,j) ; S2(i,j) ; } } for (i=N+1;i<=M;i++) { for (j=0;j<=N;j++) { S1(i,j) ; S2(i,j) ; } for (j=N+1;j<=i;j++) { S1(i,j) ; } } } cloog-parma-0.16.1/cloog-core/test/iftest.good.c0000644000175000017500000000110711321074700016314 00000000000000/* Generated from ../../../git/cloog/test/iftest.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } void test(int m, int n) { /* Original iterators. */ int i; for (i=1;i<=n;i++) { if (i <= 2*m) { S1(i) ; } if (i >= max(m,2*m+1)) { S1(i) ; } } } cloog-parma-0.16.1/cloog-core/test/basic-bounds-2.good.c0000644000175000017500000000073111321074700017530 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } void test() { /* Original iterators. */ int i; S1(0) ; } cloog-parma-0.16.1/cloog-core/test/min-1-1.good.c0000644000175000017500000000113311321074700016074 00000000000000/* Generated from ../../../git/cloog/test/min-1-1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } void test(int M, int N) { /* Original iterators. */ int i, j; if (M >= 0) { for (i=1;i<=N;i++) { for (j=0;j<=min(min(i,-i+N),M);j++) { S1(i,j) ; } } } } cloog-parma-0.16.1/cloog-core/test/vasilache.c0000644000175000017500000000113411323312273016030 00000000000000/* Generated from ../../../git/cloog/test/vasilache.cloog by CLooG 0.14.0-162-g1e599e0 gmp bits in 0.03s. */ S1(); S2(); for (p1=0;p1<=N-1;p1++) { for (p3=0;p3<=N-1;p3++) { S4(p1,p3); S5(p1,p3); } } for (p1=0;p1<=N-1;p1++) { for (p3=0;p3<=N-1;p3++) { for (p5=0;p5<=floord(N-1,32);p5++) { S7(p1,p3,p5,32*p5); for (p7=32*p5+1;p7<=min(N-1,32*p5+31);p7++) { S6(p1,p3,p5,p7-1); S7(p1,p3,p5,p7); } if (p5 <= floord(N-33,32)) { S6(p1,p3,p5,32*p5+31); } if (p5 >= ceild(N-32,32)) { S6(p1,p3,p5,N-1); } } } } S8(); cloog-parma-0.16.1/cloog-core/test/1point-1.good.c0000644000175000017500000000076611321074700016400 00000000000000/* Generated from ../../../git/cloog/test/1point-1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } void test(int M) { /* Original iterators. */ int i, j; i = 2*M ; S1(2*M,M) ; } cloog-parma-0.16.1/cloog-core/test/infinite.c0000644000175000017500000000036311323312273015701 00000000000000/* Generated from ../../../git/cloog/test/infinite.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ for (;i<=0;i++) { S1(i) ; } for (i=1;i<=N;i++) { S1(i) ; for (j=1;j<=M;j++) { S2(i,j) ; } } for (i=N+1;;i++) { S1(i) ; } cloog-parma-0.16.1/cloog-core/test/dot.cloog0000644000175000017500000000061411321074700015540 00000000000000# language: C c # parameters {M, N | M>=1 N >=1} 2 4 1 1 0 -1 1 0 1 -1 0 2 # Number of statements 1 # {i, j | i=0 0<=i<=N 1<=j<=M} 5 6 0 1 0 0 0 0 1 1 0 0 0 0 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 1 0 0 0 0 0 1 # {i, j | i>=1 0<=i<=N 1<=j<=M} 5 6 1 1 0 0 0 -1 1 1 0 0 0 0 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 1 0 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/lex.good.c0000644000175000017500000000111311321074700015603 00000000000000/* Generated from /home/skimo/git/cloog/test/lex.cloog by CLooG 0.14.0-234-g330f397 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i) { hash(2); hash(i); } void test() { /* Scattering iterators. */ int c1; /* Original iterators. */ int i; for (c1=0;c1<=10;c1++) { S2(c1); S1(c1); } } cloog-parma-0.16.1/cloog-core/test/largeur.c0000644000175000017500000000031611323312273015533 00000000000000/* Generated from ../../../git/cloog/test/largeur.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ if (M >= 1) { for (c1=1;c1<=M;c1++) { for (c2=1;c2<=c1;c2++) { S1(c2,c1) ; } } } cloog-parma-0.16.1/cloog-core/test/iftest.cloog0000644000175000017500000000077211321074700016255 00000000000000# language: C c # The context (no constraints on parameters) 1 4 # 1 lines and 4 columns # m n 1 1 0 0 0 1 m n 1 # The number of statements 2 # First statement # The first domain 3 5 # 3 lines and 5 columns # i m n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # i <= n 1 1 -1 0 0 # i >= m # The second domain 3 5 # 3 lines and 5 columns # i m n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # i <= n 1 -1 2 0 0 # i <= 2*m 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/equality2.good.c0000644000175000017500000000243011321074700016735 00000000000000/* Generated from ../../../git/cloog/test/equality2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.05s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10) { hash(1); hash(i0); hash(i1); hash(i2); hash(i3); hash(i4); hash(i5); hash(i6); hash(i7); hash(i8); hash(i9); hash(i10); } #define S2(i0,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12,i13,i14) { hash(2); hash(i0); hash(i1); hash(i2); hash(i3); hash(i4); hash(i5); hash(i6); hash(i7); hash(i8); hash(i9); hash(i10); hash(i11); hash(i12); hash(i13); hash(i14); } void test() { /* Original iterators. */ int i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14; for (i0=1;i0<=10000;i0++) { for (i1=1000;i1<=1016;i1++) { for (i2=1;i2<=min(-2*i1+2033,2*i1-1999);i2++) { if (2*i1 == i2+1999) { S2(i0,i1,i2,1,i0,2*i1-1000,1,2,i0,i1-499,2*i1-1999,i0,2*i1-1999,i1-999,i1-999) ; } if (i2 == 1) { if (i1%2 == 0) { S1(i0,i1,i2,2,i0,(i1+2)/2,i1-999,i0,i1-999,(i1-998)/2,(i1-998)/2) ; } } } } } } cloog-parma-0.16.1/cloog-core/test/ex1.cloog0000644000175000017500000000052611321074700015451 00000000000000# language: C c # parameters {n} 1 3 # n 1 1 1 -25 1 n 2 # Number of statements 1 # {i | 0<=i<=n, 0<=j<=n-15} 4 5 # i j n 1 1 1 0 0 0 1 -1 0 1 0 1 0 1 0 0 1 0 -1 1 -15 0 0 0 1 # {i | 15<=i<=n, 10<=j<=n} 4 5 # i j n 1 1 1 0 0 -15 1 -1 0 1 0 1 0 1 0 -10 1 0 -1 1 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/1point-2.cloog0000644000175000017500000000030611321074700016321 00000000000000# language: C c # Context #{M,N | } 1 4 # M N 1 1 0 0 1 0 1 # Number of statements 1 # 3 6 # i j M N 1 0 1 0 -2 0 0 0 2 -2 -4 2 4 1 0 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/lub.c0000644000175000017500000000044211323312273014654 00000000000000/* Generated from ../../../git/cloog/test/lub.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.02s. */ if (M >= 2) { for (i=1;i<=M-1;i++) { for (j=i+1;j<=M;j++) { S1(i,j) ; for (k=i+1;k<=M;k++) { S2(i,j,k) ; S3(i,j,k) ; } S4(i,j) ; } } } cloog-parma-0.16.1/cloog-core/test/infinite3.cloog0000644000175000017500000000052111321074700016637 00000000000000# langage c # parametres {M, N | M>=1 N >=1} 2 4 # M N 1 1 1 0 -1 1 0 1 -1 0 2 # Number of statements 1 # {i | 1<=i<=M} 1 5 # i M N 1 #1 1 0 0 -1 1 -1 1 0 0 0 0 0 1 # {i, j | 1<=i<=N 1<=j<=M} 4 6 # i j M N 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 1 0 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/basic-bounds-1.cloog0000644000175000017500000000021511321074700017456 00000000000000# language: C c # Context 1 2 1 1 0 1 # Number of statements 1 # 3 3 # i 1 1 1 0 1 -1 2 1 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/no_lindep.good.c0000644000175000017500000000104711321074700016770 00000000000000/* Generated from ../../../git/cloog/test/no_lindep.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } void test(int M, int N) { /* Scattering iterators. */ int c1, c2; /* Original iterators. */ int i; c1 = M+1 ; i = N+2 ; S1(N+2) ; } cloog-parma-0.16.1/cloog-core/test/singleton.c0000644000175000017500000000017411323312273016076 00000000000000/* Generated from /home/skimo/git/cloog/test/singleton.cloog by CLooG 0.14.0-242-g720faff gmp bits in 0.00s. */ S2(); S1(); cloog-parma-0.16.1/cloog-core/test/square+triangle-1-1-2-3.cloog0000644000175000017500000000055011321074700020645 00000000000000# language: C c # Context # {M | M >= 1} 2 3 # M 1 1 1 -1 1 0 1 0 2 # Number of statements 1 # {i, j | 1<=i<=M; 1<=j<=M} 5 5 # i j M 1 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -1 1 0 -1 1 0 1 0 0 0 1 0 0 0 1 # {i, j | 2<=j<=i<=M} 4 5 # i j M 1 1 0 1 0 -2 1 1 -1 0 0 1 -1 0 1 0 1 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/multi-mm-1.c0000644000175000017500000000035611406126537016005 00000000000000/* Generated from /home/skimo/git/cloog/test/multi-mm-1.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.00s. */ for (i=0;i<=M;i++) { for (j=0;j<=min(N,i);j++) { S1(i,j); S2(i,j); } for (j=N+1;j<=i;j++) { S1(i,j); } } cloog-parma-0.16.1/cloog-core/test/yosr2.cloog0000644000175000017500000000136111321074700016030 00000000000000# language: C c # parameter n 1 3 # n 1 1 1 -2 0 4 # Number of statements 1 # S2 {k, l | 1<=k<=n; 1<=l<=k-1} 4 5 # k l n 1 1 1 0 0 -1 1 -1 0 1 0 1 0 1 0 -1 1 1 -1 0 -1 0 0 0 1 # S3 {k | 1<=k<=n} 2 4 # k n 1 1 1 0 -1 1 -1 1 0 0 0 0 1 # S5 {k, i, m | 1<=k<=n; k+1<=i<=n 1<=m<=k-1} 6 6 # k i m n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 -1 1 0 0 -1 1 0 -1 0 1 0 1 0 0 1 0 -1 1 1 0 -1 0 -1 0 0 0 1 # S4 {k, i | 1<=k<=n; k+1<=i<=n} 4 5 # k i n 1 1 1 0 0 -1 1 -1 0 1 0 1 -1 1 0 -1 1 0 -1 1 0 0 0 0 0 4 # Scattering functions 1 6 # c1 k l n 1 0 1 -1 0 0 0 1 5 # c1 k n 1 0 1 0 0 0 1 7 # c1 k i m n 1 0 1 -1 0 0 0 0 1 6 # c1 k i n 1 0 1 0 -1 0 0 1 proc cloog-parma-0.16.1/cloog-core/test/basic-bounds-3.c0000644000175000017500000000022311323312273016600 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (i=0;i<=M;i++) { S1(i) ; } cloog-parma-0.16.1/cloog-core/test/lineality-2-1-2.cloog0000644000175000017500000000055611321074700017405 00000000000000# language: C c # Context # {M | 2<=M} 2 3 # M 1 1 1 -2 1 0 1 0 2 # Number of statements 1 # {i,j,M | 1<=i<=M; 1<=j<=M} 5 5 # i j M 1 1 1 0 0 -1 1 0 1 0 -1 1 -1 0 1 0 1 0 -1 1 0 1 0 0 0 1 0 0 0 1 # {i,j,M | i=j-2; 3<=j<=M+2} 4 5 # i j M 1 0 1 -1 0 2 1 0 1 0 -3 1 0 -1 1 2 1 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/durbin_e_s.good.c0000644000175000017500000000330211321074700017126 00000000000000/* Generated from ../../../git/cloog/test/durbin_e_s.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.05s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j,k) { hash(1); hash(i); hash(j); hash(k); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } #define S3(i,j,k) { hash(3); hash(i); hash(j); hash(k); } #define S4(i,j,k) { hash(4); hash(i); hash(j); hash(k); } #define S5(i,j,k) { hash(5); hash(i); hash(j); hash(k); } #define S6(i,j,k) { hash(6); hash(i); hash(j); hash(k); } #define S7(i,j,k) { hash(7); hash(i); hash(j); hash(k); } #define S8(i,j,k) { hash(8); hash(i); hash(j); hash(k); } void test() { /* Original iterators. */ int i, j, k; S4(1,0,0) ; S7(1,0,0) ; S8(1,0,3) ; S2(2,-7,0) ; S3(2,-7,1) ; S6(2,-7,2) ; S8(2,0,3) ; S5(2,1,3) ; S2(3,-7,0) ; S3(3,-7,1) ; S3(3,-6,1) ; S6(3,-6,2) ; S8(3,0,3) ; for (j=1;j<=2;j++) { S5(3,j,3) ; } for (i=4;i<=8;i++) { S2(i,-7,0) ; S3(i,-7,1) ; for (j=-6;j<=i-10;j++) { S3(i,j,1) ; } j = i-9 ; S3(i,i-9,1) ; S6(i,i-9,2) ; S8(i,0,3) ; for (j=1;j<=i-1;j++) { S5(i,j,3) ; } } S2(9,-7,0) ; S3(9,-7,1) ; for (j=-6;j<=-1;j++) { S3(9,j,1) ; } S3(9,0,1) ; S6(9,0,2) ; S8(9,0,3) ; for (j=1;j<=8;j++) { S5(9,j,3) ; } S2(10,-7,0) ; S3(10,-7,1) ; for (j=-6;j<=0;j++) { S3(10,j,1) ; } S3(10,1,1) ; S6(10,1,2) ; S5(10,1,3) ; S1(10,1,4) ; for (j=2;j<=9;j++) { S5(10,j,3) ; S1(10,j,4) ; } S1(10,10,4) ; } cloog-parma-0.16.1/cloog-core/test/nul_basic2.c0000644000175000017500000000027211323312273016114 00000000000000/* Generated from ../../../git/cloog/test/nul_basic2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (i=2;i<=n;i+=2) { if (i%4 == 0) { S2(i,i/4) ; } S1(i,i/2) ; } cloog-parma-0.16.1/cloog-core/test/double.c0000644000175000017500000000035411323312273015346 00000000000000/* Generated from ../../../git/cloog/test/double.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if (M >= 0) { for (i=0;i<=M;i++) { S1(i) ; for (j=0;j<=N;j++) { S2(i,j) ; S3(i,j) ; } S4(i) ; } } cloog-parma-0.16.1/cloog-core/test/infinite3.c0000644000175000017500000000050111323312273015756 00000000000000/* Generated from ../../../git/cloog/test/infinite3.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.03s. */ for (;i<=0;i++) { S1(i) ; } for (i=1;i<=min(M,N);i++) { S1(i) ; for (j=1;j<=M;j++) { S2(i,j) ; } } for (i=N+1;i<=M;i++) { S1(i) ; } for (i=M+1;i<=N;i++) { for (j=1;j<=M;j++) { S2(i,j) ; } } cloog-parma-0.16.1/cloog-core/test/ex1.good.c0000644000175000017500000000142411321074700015515 00000000000000/* Generated from ../../../git/cloog/test/ex1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int n) { /* Original iterators. */ int i, j; for (i=0;i<=14;i++) { for (j=0;j<=n-15;j++) { S1(i,j) ; } } for (i=15;i<=n;i++) { for (j=0;j<=9;j++) { S1(i,j) ; } for (j=10;j<=n-15;j++) { S1(i,j) ; S2(i,j) ; } for (j=n-14;j<=n;j++) { S2(i,j) ; } } } cloog-parma-0.16.1/cloog-core/test/esced.cloog0000644000175000017500000000045111321074700016034 00000000000000# language: C c # parameters {n, m | n<=m} 1 4 #1 1 -1 0 1 0 0 1 1 n m 2 # Number of statements 1 # {i | 1<=i<=n} 2 5 1 1 0 0 -1 1 -1 0 1 0 0 0 0 1 # {i, j | 1<=i<=n 1<=j<=m} 4 6 1 1 0 0 0 -1 1 -1 0 0 1 0 1 0 1 0 0 -1 1 0 -1 1 0 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/min-1-1.c0000644000175000017500000000034411323312273015152 00000000000000/* Generated from ../../../git/cloog/test/min-1-1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ if ((M >= 0) && (N >= 1)) { for (i=1;i<=N;i++) { for (j=0;j<=min(min(M,i),-i+N);j++) { S1(i,j) ; } } } cloog-parma-0.16.1/cloog-core/test/basic-bounds-2.c0000644000175000017500000000017211323312273016602 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-2.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ S1(0) ; cloog-parma-0.16.1/cloog-core/test/walters.c0000644000175000017500000000066111406126537015566 00000000000000/* Generated from ../../../git/cloog/test/walters.cloog by CLooG 0.14.0-278-gcf1f323 gmp bits in 0.02s. */ S2(1,0,1,0); S4(1,0,1,0); S3(2,0,1,1); S4(2,0,1,1); for (i=3;i<=10;i++) { if ((i+1)%3 == 0) { S3(i,(i-2)/3,(i+1)/3,(i+1)/3); } if ((i+2)%3 == 0) { S2(i,(i-1)/3,(i+2)/3,(i-1)/3); } if (i%3 == 0) { S1(i,i/3,i/3,i/3); } div36 = floord(i,3); div37 = floord(i+2,3); S4(i,div36,div37,i-div36-div37); } cloog-parma-0.16.1/cloog-core/test/vivien2.c0000644000175000017500000000620611467774607015506 00000000000000/* Generated from /home/skimo/git/cloog/test/vivien2.cloog by CLooG 0.14.0-292-g2bfd6ac gmp bits in 0.10s. */ for (p1=-54*n+4;p1<=4;p1++) { if (p1%2 == 0) { S1((p1-2)/2); } } S3(1); S4(1,2); S1(2); S6(1,2); for (p1=7;p1<=9;p1++) { if (p1 == 8) { S4(1,3); } if (p1 == 8) { S1(3); } if (p1 == 8) { S6(1,3); } if (p1 == 9) { S3(2); } if ((p1+1)%2 == 0) { S2((p1-3)/2,1); } } for (p1=10;p1<=2*n+58;p1++) { p2 = ceild(-p1+2,4); if (p2 <= min(floord(-p1+2*n,2),floord(-p1+5,4))) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } } if (p1 >= 4*n-4) { if (p1%2 == 0) { for (p3=1;p3<=floord(p1-2*n-2,2);p3++) { S5((p1-2*n)/2,n,p3); } } } p2 = ceild(-p1+6,4); if (p2 <= min(floord(-p1+2*n,2),floord(-p1+9,4))) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=ceild(-p1+10,4);p2<=min(-1,floord(-p1+2*n,2));p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } if ((p1 >= 2*n+4) && (p1 <= 4*n-6)) { if (p1%2 == 0) { S6((p1-2*n+2)/2,n-1); for (p3=1;p3<=floord(p1-2*n-2,2);p3++) { S5((p1-2*n)/2,n,p3); } } } if (p1 >= 2*n+6) { if (p1%2 == 0) { S6((p1-2*n)/2,n); } } if (p1 <= 2*n+4) { if (p1%2 == 0) { S6(2,(p1-4)/2); } if ((p1+3)%4 == 0) { S3((p1-1)/4); } if (p1%2 == 0) { S1((p1-2)/2); } } if (p1 >= 2*n+5) { if ((p1+3)%4 == 0) { S3((p1-1)/4); } if (p1%2 == 0) { S1((p1-2)/2); } } if (p1 <= 2*n+2) { if (p1%2 == 0) { S6(1,(p1-2)/2); } } for (p2=max(1,ceild(p1-2*n-1,2));p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { S2((p1-2*p2-1)/2,p2); } } } for (p1=2*n+59;p1<=4*n-2;p1++) { p2 = ceild(-p1+2,4); if (p2 <= min(floord(-p1+2*n,2),floord(-p1+5,4))) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } } if (p1 >= 4*n-4) { if (p1%2 == 0) { for (p3=1;p3<=floord(p1-2*n-2,2);p3++) { S5((p1-2*n)/2,n,p3); } } } p2 = ceild(-p1+6,4); if (p2 <= min(floord(-p1+2*n,2),floord(-p1+9,4))) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } for (p2=ceild(-p1+10,4);p2<=floord(-p1+2*n,2);p2++) { if (p1%2 == 0) { S4(-p2,(p1+2*p2)/2); } if (p1%2 == 0) { S6(-p2+2,(p1+2*p2-4)/2); } for (p3=1;p3<=-p2;p3++) { if (p1%2 == 0) { S5(-p2+1,(p1+2*p2-2)/2,p3); } } } if (p1 <= 4*n-6) { if (p1%2 == 0) { S6((p1-2*n+2)/2,n-1); for (p3=1;p3<=floord(p1-2*n-2,2);p3++) { S5((p1-2*n)/2,n,p3); } } } if (p1%2 == 0) { S6((p1-2*n)/2,n); } if ((p1+3)%4 == 0) { S3((p1-1)/4); } for (p2=ceild(p1-2*n-1,2);p2<=floord(p1-3,4);p2++) { if ((p1+1)%2 == 0) { S2((p1-2*p2-1)/2,p2); } } } S2(n,n-1); S3(n); cloog-parma-0.16.1/cloog-core/test/sor1d.good.c0000644000175000017500000000360511321074700016053 00000000000000/* Generated from /home/skimo/git/cloog/test/sor1d.cloog by CLooG 0.14.0-226-g3fc65ac gmp bits in 0.04s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(tileT1,tileP1,other1,other2) { hash(1); hash(tileT1); hash(tileP1); hash(other1); hash(other2); } #define S2(tileT1,tileP1,other1,other2,other3) { hash(2); hash(tileT1); hash(tileP1); hash(other1); hash(other2); hash(other3); } #define S3(tileT1,tileP1,other1,other2,other3) { hash(3); hash(tileT1); hash(tileP1); hash(other1); hash(other2); hash(other3); } #define S4(tileT1) { hash(4); hash(tileT1); } void test(int M, int N) { /* Scattering iterators. */ int glT1, rp1, vT1, vP1, otherP1, arrAcc1; /* Original iterators. */ int tileT1, tileP1, other1, other2, other3; if ((M >= 1) && (N >= 3)) { for (glT1=-1;glT1<=floord(3*M+N-5,100);glT1++) { for (rp1=max(max(0,ceild(100*glT1-2*M-N+5,100)),ceild(100*glT1-N-193,300));rp1<=min(min(min(min(floord(glT1+1,2),floord(M,100)),floord(100*glT1+99,100)),floord(50*glT1+51,150)),floord(100*glT1+N+98,300));rp1++) { for (vT1=max(max(max(max(0,100*glT1-100*rp1),100*rp1-1),200*rp1-3),200*rp1-N+1);vT1<=min(min(2*M+N-5,100*glT1-100*rp1+99),200*rp1+N+193);vT1++) { if (rp1 >= max(1,ceild(vT1-N+7,200))) { S3(glT1-rp1,rp1-1,rp1,100*rp1-1,-200*rp1+vT1+6); } for (vP1=max(max(1,ceild(vT1-N+5,2)),100*rp1);vP1<=min(min(floord(vT1+2,2),M),100*rp1+99);vP1++) { S1(glT1-rp1,rp1,vP1,vT1-2*vP1+4); if ((rp1 <= min(floord(M-100,100),floord(vT1-197,200))) && (100*rp1 == vP1-99)) { S2(glT1-rp1,rp1,rp1+1,100*rp1+99,-200*rp1+vT1-194); } } } } S4(glT1); } } } cloog-parma-0.16.1/cloog-core/test/dealII.c0000644000175000017500000000055711361141766015241 00000000000000/* Generated from ../../../git/cloog/test/dealII.cloog by CLooG 0.14.0-270-g7ee1261 gmp bits in 0.01s. */ for (scat_0=0;scat_0<=min(T_66,T_2-1);scat_0++) { S1(scat_0); S2(scat_0); } if ((T_2 == 0) && (T_67 == 0)) { S1(0); } for (scat_0=max(0,T_66+1);scat_0<=T_2-1;scat_0++) { S1(scat_0); } for (scat_0=T_2;scat_0<=min(T_66,T_67-1);scat_0++) { S2(scat_0); } cloog-parma-0.16.1/cloog-core/test/1point-2.good.c0000644000175000017500000000101311321074700016363 00000000000000/* Generated from ../../../git/cloog/test/1point-2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } void test(int M, int N) { /* Original iterators. */ int i, j; i = 2*M ; j = N+2 ; S1(2*M,N+2) ; } cloog-parma-0.16.1/cloog-core/test/swim.c0000644000175000017500000002747211323312273015065 00000000000000/* Generated from ../../../git/cloog/test/swim.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.51s. */ if (M == 1) { S1() ; S2() ; S3() ; S4() ; S5() ; S6() ; S7() ; S8() ; S9() ; S10() ; S11() ; S12() ; S13() ; S14() ; S15() ; S16() ; S17() ; S18() ; S19() ; S20() ; S21() ; S22() ; S23() ; S24() ; S25() ; S26() ; S27() ; for (p1=1;p1<=N;p1++) { for (p3=1;p3<=N;p3++) { S28(p1,p3) ; S29(p1,p3) ; S30(p1,p3) ; } S31(p1) ; } S32() ; S33() ; S34() ; if (O <= 1) { S35() ; } S36() ; S37() ; if ((N >= 1) && (Q >= 1) && (R >= 1)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S40(p1,p3,p5) ; S41(p1,p3,p5) ; S42(p1,p3,p5) ; S43(p1,p3,p5) ; } } for (p3=1;p3<=Q;p3++) { S44(p1,p3) ; S45(p1,p3) ; S46(p1,p3) ; S47(p1,p3) ; } for (p3=1;p3<=R;p3++) { S48(p1,p3) ; S49(p1,p3) ; S50(p1,p3) ; S51(p1,p3) ; } S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S59(p1,p3,p5) ; S60(p1,p3,p5) ; S61(p1,p3,p5) ; } } for (p3=1;p3<=Q;p3++) { S62(p1,p3) ; S63(p1,p3) ; S64(p1,p3) ; } for (p3=1;p3<=R;p3++) { S65(p1,p3) ; S66(p1,p3) ; S67(p1,p3) ; } S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; for (p3=1;p3<=N;p3++) { for (p5=1;p5<=N;p5++) { S95(p1,p3,p5) ; S96(p1,p3,p5) ; S97(p1,p3,p5) ; } S98(p1,p3) ; } S99(p1) ; S100(p1) ; S101(p1) ; for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S102(p1,p3,p5) ; S103(p1,p3,p5) ; S104(p1,p3,p5) ; S105(p1,p3,p5) ; S106(p1,p3,p5) ; S107(p1,p3,p5) ; } } for (p3=1;p3<=Q;p3++) { S108(p1,p3) ; S109(p1,p3) ; S110(p1,p3) ; S111(p1,p3) ; S112(p1,p3) ; S113(p1,p3) ; } for (p3=1;p3<=R;p3++) { S114(p1,p3) ; S115(p1,p3) ; S116(p1,p3) ; S117(p1,p3) ; S118(p1,p3) ; S119(p1,p3) ; } S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((N <= 0) && (Q >= 1) && (R >= 1)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S40(p1,p3,p5) ; S41(p1,p3,p5) ; S42(p1,p3,p5) ; S43(p1,p3,p5) ; } } for (p3=1;p3<=Q;p3++) { S44(p1,p3) ; S45(p1,p3) ; S46(p1,p3) ; S47(p1,p3) ; } for (p3=1;p3<=R;p3++) { S48(p1,p3) ; S49(p1,p3) ; S50(p1,p3) ; S51(p1,p3) ; } S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S59(p1,p3,p5) ; S60(p1,p3,p5) ; S61(p1,p3,p5) ; } } for (p3=1;p3<=Q;p3++) { S62(p1,p3) ; S63(p1,p3) ; S64(p1,p3) ; } for (p3=1;p3<=R;p3++) { S65(p1,p3) ; S66(p1,p3) ; S67(p1,p3) ; } S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; S99(p1) ; S100(p1) ; S101(p1) ; for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S102(p1,p3,p5) ; S103(p1,p3,p5) ; S104(p1,p3,p5) ; S105(p1,p3,p5) ; S106(p1,p3,p5) ; S107(p1,p3,p5) ; } } for (p3=1;p3<=Q;p3++) { S108(p1,p3) ; S109(p1,p3) ; S110(p1,p3) ; S111(p1,p3) ; S112(p1,p3) ; S113(p1,p3) ; } for (p3=1;p3<=R;p3++) { S114(p1,p3) ; S115(p1,p3) ; S116(p1,p3) ; S117(p1,p3) ; S118(p1,p3) ; S119(p1,p3) ; } S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((N >= 1) && (Q <= 0) && (R >= 1)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; for (p3=1;p3<=R;p3++) { S48(p1,p3) ; S49(p1,p3) ; S50(p1,p3) ; S51(p1,p3) ; } S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; for (p3=1;p3<=R;p3++) { S65(p1,p3) ; S66(p1,p3) ; S67(p1,p3) ; } S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; for (p3=1;p3<=N;p3++) { for (p5=1;p5<=N;p5++) { S95(p1,p3,p5) ; S96(p1,p3,p5) ; S97(p1,p3,p5) ; } S98(p1,p3) ; } S99(p1) ; S100(p1) ; S101(p1) ; for (p3=1;p3<=R;p3++) { S114(p1,p3) ; S115(p1,p3) ; S116(p1,p3) ; S117(p1,p3) ; S118(p1,p3) ; S119(p1,p3) ; } S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((N <= 0) && (Q <= 0) && (R >= 1)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; for (p3=1;p3<=R;p3++) { S48(p1,p3) ; S49(p1,p3) ; S50(p1,p3) ; S51(p1,p3) ; } S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; for (p3=1;p3<=R;p3++) { S65(p1,p3) ; S66(p1,p3) ; S67(p1,p3) ; } S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; S99(p1) ; S100(p1) ; S101(p1) ; for (p3=1;p3<=R;p3++) { S114(p1,p3) ; S115(p1,p3) ; S116(p1,p3) ; S117(p1,p3) ; S118(p1,p3) ; S119(p1,p3) ; } S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((N >= 1) && (Q >= 1) && (R <= 0)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; for (p3=1;p3<=Q;p3++) { S44(p1,p3) ; S45(p1,p3) ; S46(p1,p3) ; S47(p1,p3) ; } S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; for (p3=1;p3<=Q;p3++) { S62(p1,p3) ; S63(p1,p3) ; S64(p1,p3) ; } S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; for (p3=1;p3<=N;p3++) { for (p5=1;p5<=N;p5++) { S95(p1,p3,p5) ; S96(p1,p3,p5) ; S97(p1,p3,p5) ; } S98(p1,p3) ; } S99(p1) ; S100(p1) ; S101(p1) ; for (p3=1;p3<=Q;p3++) { S108(p1,p3) ; S109(p1,p3) ; S110(p1,p3) ; S111(p1,p3) ; S112(p1,p3) ; S113(p1,p3) ; } S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((N <= 0) && (Q >= 1) && (R <= 0)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; for (p3=1;p3<=Q;p3++) { S44(p1,p3) ; S45(p1,p3) ; S46(p1,p3) ; S47(p1,p3) ; } S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; for (p3=1;p3<=Q;p3++) { S62(p1,p3) ; S63(p1,p3) ; S64(p1,p3) ; } S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; S99(p1) ; S100(p1) ; S101(p1) ; for (p3=1;p3<=Q;p3++) { S108(p1,p3) ; S109(p1,p3) ; S110(p1,p3) ; S111(p1,p3) ; S112(p1,p3) ; S113(p1,p3) ; } S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((N >= 1) && (Q <= 0) && (R <= 0)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; for (p3=1;p3<=N;p3++) { for (p5=1;p5<=N;p5++) { S95(p1,p3,p5) ; S96(p1,p3,p5) ; S97(p1,p3,p5) ; } S98(p1,p3) ; } S99(p1) ; S100(p1) ; S101(p1) ; S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((N <= 0) && (Q <= 0) && (R <= 0)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; S99(p1) ; S100(p1) ; S101(p1) ; S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } } cloog-parma-0.16.1/cloog-core/test/infinite4.c0000644000175000017500000000020711323312273015762 00000000000000/* Generated from ../../../git/cloog/test/infinite4.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.00s. */ for (;;i++) { S1(i) ; } cloog-parma-0.16.1/cloog-core/test/swim.good.c0000644000175000017500000004273711321074700016013 00000000000000/* Generated from ../../../git/cloog/test/swim.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.70s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1() { hash(1); } #define S2() { hash(2); } #define S3() { hash(3); } #define S4() { hash(4); } #define S5() { hash(5); } #define S6() { hash(6); } #define S7() { hash(7); } #define S8() { hash(8); } #define S9() { hash(9); } #define S10() { hash(10); } #define S11() { hash(11); } #define S12() { hash(12); } #define S13() { hash(13); } #define S14() { hash(14); } #define S15() { hash(15); } #define S16() { hash(16); } #define S17() { hash(17); } #define S18() { hash(18); } #define S19() { hash(19); } #define S20() { hash(20); } #define S21() { hash(21); } #define S22() { hash(22); } #define S23() { hash(23); } #define S24() { hash(24); } #define S25() { hash(25); } #define S26() { hash(26); } #define S27() { hash(27); } #define S28(i,j) { hash(28); hash(i); hash(j); } #define S29(i,j) { hash(29); hash(i); hash(j); } #define S30(i,j) { hash(30); hash(i); hash(j); } #define S31(i) { hash(31); hash(i); } #define S32() { hash(32); } #define S33() { hash(33); } #define S34() { hash(34); } #define S35() { hash(35); } #define S36() { hash(36); } #define S37() { hash(37); } #define S38(i) { hash(38); hash(i); } #define S39(i) { hash(39); hash(i); } #define S40(i,j,k) { hash(40); hash(i); hash(j); hash(k); } #define S41(i,j,k) { hash(41); hash(i); hash(j); hash(k); } #define S42(i,j,k) { hash(42); hash(i); hash(j); hash(k); } #define S43(i,j,k) { hash(43); hash(i); hash(j); hash(k); } #define S44(i,j) { hash(44); hash(i); hash(j); } #define S45(i,j) { hash(45); hash(i); hash(j); } #define S46(i,j) { hash(46); hash(i); hash(j); } #define S47(i,j) { hash(47); hash(i); hash(j); } #define S48(i,j) { hash(48); hash(i); hash(j); } #define S49(i,j) { hash(49); hash(i); hash(j); } #define S50(i,j) { hash(50); hash(i); hash(j); } #define S51(i,j) { hash(51); hash(i); hash(j); } #define S52(i) { hash(52); hash(i); } #define S53(i) { hash(53); hash(i); } #define S54(i) { hash(54); hash(i); } #define S55(i) { hash(55); hash(i); } #define S56(i) { hash(56); hash(i); } #define S57(i) { hash(57); hash(i); } #define S58(i) { hash(58); hash(i); } #define S59(i,j,k) { hash(59); hash(i); hash(j); hash(k); } #define S60(i,j,k) { hash(60); hash(i); hash(j); hash(k); } #define S61(i,j,k) { hash(61); hash(i); hash(j); hash(k); } #define S62(i,j) { hash(62); hash(i); hash(j); } #define S63(i,j) { hash(63); hash(i); hash(j); } #define S64(i,j) { hash(64); hash(i); hash(j); } #define S65(i,j) { hash(65); hash(i); hash(j); } #define S66(i,j) { hash(66); hash(i); hash(j); } #define S67(i,j) { hash(67); hash(i); hash(j); } #define S68(i) { hash(68); hash(i); } #define S69(i) { hash(69); hash(i); } #define S70(i) { hash(70); hash(i); } #define S71(i) { hash(71); hash(i); } #define S72(i) { hash(72); hash(i); } #define S73(i) { hash(73); hash(i); } #define S74(i) { hash(74); hash(i); } #define S75(i) { hash(75); hash(i); } #define S76(i) { hash(76); hash(i); } #define S77(i) { hash(77); hash(i); } #define S78(i) { hash(78); hash(i); } #define S79(i) { hash(79); hash(i); } #define S80(i) { hash(80); hash(i); } #define S81(i) { hash(81); hash(i); } #define S82(i) { hash(82); hash(i); } #define S83(i) { hash(83); hash(i); } #define S84(i) { hash(84); hash(i); } #define S85(i) { hash(85); hash(i); } #define S86(i) { hash(86); hash(i); } #define S87(i) { hash(87); hash(i); } #define S88(i) { hash(88); hash(i); } #define S89(i) { hash(89); hash(i); } #define S90(i) { hash(90); hash(i); } #define S91(i) { hash(91); hash(i); } #define S92(i) { hash(92); hash(i); } #define S93(i) { hash(93); hash(i); } #define S94(i) { hash(94); hash(i); } #define S95(i,j,k) { hash(95); hash(i); hash(j); hash(k); } #define S96(i,j,k) { hash(96); hash(i); hash(j); hash(k); } #define S97(i,j,k) { hash(97); hash(i); hash(j); hash(k); } #define S98(i,j) { hash(98); hash(i); hash(j); } #define S99(i) { hash(99); hash(i); } #define S100(i) { hash(100); hash(i); } #define S101(i) { hash(101); hash(i); } #define S102(i,j,k) { hash(102); hash(i); hash(j); hash(k); } #define S103(i,j,k) { hash(103); hash(i); hash(j); hash(k); } #define S104(i,j,k) { hash(104); hash(i); hash(j); hash(k); } #define S105(i,j,k) { hash(105); hash(i); hash(j); hash(k); } #define S106(i,j,k) { hash(106); hash(i); hash(j); hash(k); } #define S107(i,j,k) { hash(107); hash(i); hash(j); hash(k); } #define S108(i,j) { hash(108); hash(i); hash(j); } #define S109(i,j) { hash(109); hash(i); hash(j); } #define S110(i,j) { hash(110); hash(i); hash(j); } #define S111(i,j) { hash(111); hash(i); hash(j); } #define S112(i,j) { hash(112); hash(i); hash(j); } #define S113(i,j) { hash(113); hash(i); hash(j); } #define S114(i,j) { hash(114); hash(i); hash(j); } #define S115(i,j) { hash(115); hash(i); hash(j); } #define S116(i,j) { hash(116); hash(i); hash(j); } #define S117(i,j) { hash(117); hash(i); hash(j); } #define S118(i,j) { hash(118); hash(i); hash(j); } #define S119(i,j) { hash(119); hash(i); hash(j); } #define S120(i) { hash(120); hash(i); } #define S121(i) { hash(121); hash(i); } #define S122(i) { hash(122); hash(i); } #define S123(i) { hash(123); hash(i); } #define S124(i) { hash(124); hash(i); } #define S125(i) { hash(125); hash(i); } void test(int M, int N, int O, int P, int Q, int R) { /* Scattering iterators. */ int p1, p3, p5; /* Original iterators. */ int i, j, k; if (M == 1) { S1() ; S2() ; S3() ; S4() ; S5() ; S6() ; S7() ; S8() ; S9() ; S10() ; S11() ; S12() ; S13() ; S14() ; S15() ; S16() ; S17() ; S18() ; S19() ; S20() ; S21() ; S22() ; S23() ; S24() ; S25() ; S26() ; S27() ; } if (M == 1) { for (p1=1;p1<=N;p1++) { for (p3=1;p3<=N;p3++) { S28(p1,p3) ; S29(p1,p3) ; S30(p1,p3) ; } S31(p1) ; } } if (M == 1) { S32() ; S33() ; S34() ; } if ((M == 1) && (O <= 1)) { S35() ; } if (M == 1) { S36() ; S37() ; } if ((M == 1) && (N >= 1) && (Q >= 1) && (R >= 1)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S40(p1,p3,p5) ; S41(p1,p3,p5) ; S42(p1,p3,p5) ; S43(p1,p3,p5) ; } } for (p3=1;p3<=Q;p3++) { S44(p1,p3) ; S45(p1,p3) ; S46(p1,p3) ; S47(p1,p3) ; } for (p3=1;p3<=R;p3++) { S48(p1,p3) ; S49(p1,p3) ; S50(p1,p3) ; S51(p1,p3) ; } S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S59(p1,p3,p5) ; S60(p1,p3,p5) ; S61(p1,p3,p5) ; } } for (p3=1;p3<=Q;p3++) { S62(p1,p3) ; S63(p1,p3) ; S64(p1,p3) ; } for (p3=1;p3<=R;p3++) { S65(p1,p3) ; S66(p1,p3) ; S67(p1,p3) ; } S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; for (p3=1;p3<=N;p3++) { for (p5=1;p5<=N;p5++) { S95(p1,p3,p5) ; S96(p1,p3,p5) ; S97(p1,p3,p5) ; } S98(p1,p3) ; } S99(p1) ; S100(p1) ; S101(p1) ; for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S102(p1,p3,p5) ; S103(p1,p3,p5) ; S104(p1,p3,p5) ; S105(p1,p3,p5) ; S106(p1,p3,p5) ; S107(p1,p3,p5) ; } } for (p3=1;p3<=Q;p3++) { S108(p1,p3) ; S109(p1,p3) ; S110(p1,p3) ; S111(p1,p3) ; S112(p1,p3) ; S113(p1,p3) ; } for (p3=1;p3<=R;p3++) { S114(p1,p3) ; S115(p1,p3) ; S116(p1,p3) ; S117(p1,p3) ; S118(p1,p3) ; S119(p1,p3) ; } S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((M == 1) && (N <= 0) && (Q >= 1) && (R >= 1)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S40(p1,p3,p5) ; S41(p1,p3,p5) ; S42(p1,p3,p5) ; S43(p1,p3,p5) ; } } for (p3=1;p3<=Q;p3++) { S44(p1,p3) ; S45(p1,p3) ; S46(p1,p3) ; S47(p1,p3) ; } for (p3=1;p3<=R;p3++) { S48(p1,p3) ; S49(p1,p3) ; S50(p1,p3) ; S51(p1,p3) ; } S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S59(p1,p3,p5) ; S60(p1,p3,p5) ; S61(p1,p3,p5) ; } } for (p3=1;p3<=Q;p3++) { S62(p1,p3) ; S63(p1,p3) ; S64(p1,p3) ; } for (p3=1;p3<=R;p3++) { S65(p1,p3) ; S66(p1,p3) ; S67(p1,p3) ; } S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; S99(p1) ; S100(p1) ; S101(p1) ; for (p3=1;p3<=Q;p3++) { for (p5=1;p5<=R;p5++) { S102(p1,p3,p5) ; S103(p1,p3,p5) ; S104(p1,p3,p5) ; S105(p1,p3,p5) ; S106(p1,p3,p5) ; S107(p1,p3,p5) ; } } for (p3=1;p3<=Q;p3++) { S108(p1,p3) ; S109(p1,p3) ; S110(p1,p3) ; S111(p1,p3) ; S112(p1,p3) ; S113(p1,p3) ; } for (p3=1;p3<=R;p3++) { S114(p1,p3) ; S115(p1,p3) ; S116(p1,p3) ; S117(p1,p3) ; S118(p1,p3) ; S119(p1,p3) ; } S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((M == 1) && (N >= 1) && (Q <= 0) && (R >= 1)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; for (p3=1;p3<=R;p3++) { S48(p1,p3) ; S49(p1,p3) ; S50(p1,p3) ; S51(p1,p3) ; } S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; for (p3=1;p3<=R;p3++) { S65(p1,p3) ; S66(p1,p3) ; S67(p1,p3) ; } S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; for (p3=1;p3<=N;p3++) { for (p5=1;p5<=N;p5++) { S95(p1,p3,p5) ; S96(p1,p3,p5) ; S97(p1,p3,p5) ; } S98(p1,p3) ; } S99(p1) ; S100(p1) ; S101(p1) ; for (p3=1;p3<=R;p3++) { S114(p1,p3) ; S115(p1,p3) ; S116(p1,p3) ; S117(p1,p3) ; S118(p1,p3) ; S119(p1,p3) ; } S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((M == 1) && (N <= 0) && (Q <= 0) && (R >= 1)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; for (p3=1;p3<=R;p3++) { S48(p1,p3) ; S49(p1,p3) ; S50(p1,p3) ; S51(p1,p3) ; } S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; for (p3=1;p3<=R;p3++) { S65(p1,p3) ; S66(p1,p3) ; S67(p1,p3) ; } S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; S99(p1) ; S100(p1) ; S101(p1) ; for (p3=1;p3<=R;p3++) { S114(p1,p3) ; S115(p1,p3) ; S116(p1,p3) ; S117(p1,p3) ; S118(p1,p3) ; S119(p1,p3) ; } S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((M == 1) && (N >= 1) && (Q <= 0) && (R <= 0)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; for (p3=1;p3<=N;p3++) { for (p5=1;p5<=N;p5++) { S95(p1,p3,p5) ; S96(p1,p3,p5) ; S97(p1,p3,p5) ; } S98(p1,p3) ; } S99(p1) ; S100(p1) ; S101(p1) ; S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((M == 1) && (N <= 0) && (Q <= 0) && (R <= 0)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; S99(p1) ; S100(p1) ; S101(p1) ; S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((M == 1) && (N >= 1) && (Q >= 1) && (R <= 0)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; for (p3=1;p3<=Q;p3++) { S44(p1,p3) ; S45(p1,p3) ; S46(p1,p3) ; S47(p1,p3) ; } S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; for (p3=1;p3<=Q;p3++) { S62(p1,p3) ; S63(p1,p3) ; S64(p1,p3) ; } S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; for (p3=1;p3<=N;p3++) { for (p5=1;p5<=N;p5++) { S95(p1,p3,p5) ; S96(p1,p3,p5) ; S97(p1,p3,p5) ; } S98(p1,p3) ; } S99(p1) ; S100(p1) ; S101(p1) ; for (p3=1;p3<=Q;p3++) { S108(p1,p3) ; S109(p1,p3) ; S110(p1,p3) ; S111(p1,p3) ; S112(p1,p3) ; S113(p1,p3) ; } S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } if ((M == 1) && (N <= 0) && (Q >= 1) && (R <= 0)) { for (p1=2;p1<=P;p1++) { S38(p1) ; S39(p1) ; for (p3=1;p3<=Q;p3++) { S44(p1,p3) ; S45(p1,p3) ; S46(p1,p3) ; S47(p1,p3) ; } S52(p1) ; S53(p1) ; S54(p1) ; S55(p1) ; S56(p1) ; S57(p1) ; S58(p1) ; for (p3=1;p3<=Q;p3++) { S62(p1,p3) ; S63(p1,p3) ; S64(p1,p3) ; } S68(p1) ; S69(p1) ; S70(p1) ; S71(p1) ; S72(p1) ; S73(p1) ; S74(p1) ; S75(p1) ; S76(p1) ; S77(p1) ; S78(p1) ; S79(p1) ; S80(p1) ; S81(p1) ; S82(p1) ; S83(p1) ; S84(p1) ; S85(p1) ; S86(p1) ; S87(p1) ; S88(p1) ; S89(p1) ; S90(p1) ; S91(p1) ; S92(p1) ; S93(p1) ; S94(p1) ; S99(p1) ; S100(p1) ; S101(p1) ; for (p3=1;p3<=Q;p3++) { S108(p1,p3) ; S109(p1,p3) ; S110(p1,p3) ; S111(p1,p3) ; S112(p1,p3) ; S113(p1,p3) ; } S120(p1) ; S121(p1) ; S122(p1) ; S123(p1) ; S124(p1) ; S125(p1) ; } } } cloog-parma-0.16.1/cloog-core/test/basic-bounds-1.good.c0000644000175000017500000000076611321074700017537 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-1.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } void test() { /* Original iterators. */ int i; for (i=0;i<=2;i++) { S1(i) ; } } cloog-parma-0.16.1/cloog-core/test/basic-bounds-2.cloog0000644000175000017500000000021511321074700017457 00000000000000# language: C c # Context 1 2 1 1 0 1 # Number of statements 1 # 3 3 # i 1 1 3 0 1 -3 2 1 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/1point-1.cloog0000644000175000017500000000030711321074700016321 00000000000000# language: C c # Context #{M | } 1 3 # M 1 1 0 1 0 1 # Number of statements 1 #{i, j | i=2N; i=2j} 3 5 # i j M 1 0 1 0 -2 0 0 1 -2 0 0 1 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/ex1.c0000644000175000017500000000052311323312273014567 00000000000000/* Generated from ../../../git/cloog/test/ex1.cloog by CLooG 0.14.0-136-gb91ef26 gmp bits in 0.01s. */ for (i=0;i<=14;i++) { for (j=0;j<=n-15;j++) { S1(i,j) ; } } for (i=15;i<=n;i++) { for (j=0;j<=9;j++) { S1(i,j) ; } for (j=10;j<=n-15;j++) { S1(i,j) ; S2(i,j) ; } for (j=n-14;j<=n;j++) { S2(i,j) ; } } cloog-parma-0.16.1/cloog-core/test/lub.cloog0000644000175000017500000000126611321074700015540 00000000000000# language: C c # parameter n 1 3 # n 1 1 0 1 0 4 # Number of statements 1 # {i, j | 1<=i<=n; i+1<=j<=n} 4 5 # i j n 1 1 1 0 0 -1 1 -1 0 1 0 1 -1 1 0 -1 1 0 -1 1 0 0 0 0 1 # {i, j, k | 1<=i<=n; i+1<=j<=n i+1<=k<=n} 6 6 # i j k n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 -1 1 0 0 -1 1 0 -1 0 1 0 1 -1 0 1 0 -1 1 0 0 -1 1 0 0 0 0 1 # {i, j, k | 1<=i<=n; i+1<=j<=n i+1<=k<=n} 6 6 # i j k n 1 1 1 0 0 0 -1 1 -1 0 0 1 0 1 -1 1 0 0 -1 1 0 -1 0 1 0 1 -1 0 1 0 -1 1 0 0 -1 1 0 0 0 0 1 # {i, j | 1<=i<=n; i+1<=j<=n} 4 5 # i j n 1 1 1 0 0 -1 1 -1 0 1 0 1 -1 1 0 -1 1 0 -1 1 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/constbound.cloog0000644000175000017500000000105311321074700017126 00000000000000# CLooG script generated automatically by PLUTO # language: C c # Context 0 2 1 # Number of statements 2 1 # of domains 6 5 1 0 1 0 0 1 0 -1 0 9999 1 0 0 1 0 1 0 1 -1 0 1 -50 1 0 0 1 50 -1 0 24 0 0 0 1 6 5 1 0 1 0 0 1 0 -1 0 9999 1 0 0 1 0 1 0 1 -1 0 1 -50 1 0 -25 1 50 -1 0 49 0 0 0 0 # of scattering functions 2 4 9 0 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 -1 0 0 0 0 0 0 1 0 0 -1 0 4 9 0 1 0 0 0 -1 0 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 1 0 0 -1 0 0 0 0 0 0 1 0 0 -1 0 # we will set the scattering dimension names 4 t0 t1 t2 t3 cloog-parma-0.16.1/cloog-core/test/gesced2.c0000644000175000017500000000101611406126537015414 00000000000000/* Generated from /home/skimo/git/cloog/test/gesced2.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.03s. */ for (c1=1;c1<=4;c1++) { for (c2=5;c2<=M-10;c2++) { S1(c1,c2); } } for (c1=5;c1<=M-10;c1++) { for (c2=-c1+1;c2<=4;c2++) { S2(c1+c2,c1); } for (c2=5;c2<=min(M-10,-c1+M);c2++) { S1(c1,c2); S2(c1+c2,c1); } for (c2=-c1+M+1;c2<=M-10;c2++) { S1(c1,c2); } for (c2=M-9;c2<=-c1+M;c2++) { S2(c1+c2,c1); } } for (c1=M-9;c1<=M;c1++) { for (c2=5;c2<=M-10;c2++) { S1(c1,c2); } } cloog-parma-0.16.1/cloog-core/test/basic-bounds-5.good.c0000644000175000017500000000100411321074700017525 00000000000000/* Generated from ../../../git/cloog/test/basic-bounds-5.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } void test(int M) { /* Original iterators. */ int i, j; j = floord(M+1,2) ; S1(1,j) ; } cloog-parma-0.16.1/cloog-core/test/lux.cloog0000644000175000017500000000104111321074700015555 00000000000000# language: C c # parameter n 1 3 1 0 1 0 2 # Number of statements 1 # {c1, c2, i, j | c1=i, c2=n, 1<=i<=n; i+1<=j<=n} 6 7 0 1 -1 0 0 0 0 0 0 0 1 0 -1 0 1 0 1 0 0 0 -1 1 0 -1 0 0 1 0 1 0 -1 0 1 0 -1 1 0 0 0 -1 1 0 0 0 0 1 # {c1, c2, i, j, k | c1=k, c2=j, 1<=i<=n; i+1<=j<=n i+1<=k<=n} 8 8 0 1 0 0 0 -1 0 0 0 0 0 -1 1 0 0 0 1 0 1 0 0 0 0 -1 1 0 -1 0 0 0 1 0 1 0 -1 1 0 0 0 -1 1 0 0 -1 0 0 1 0 1 0 -1 0 0 1 0 -1 1 0 0 0 0 -1 1 0 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/0D-2.cloog0000644000175000017500000000004411321074700015351 00000000000000c 0 3 0 1 1 1 3 1 1 0 0 0 0 0 0 cloog-parma-0.16.1/cloog-core/test/dot.good.c0000644000175000017500000000120011321074700015576 00000000000000/* Generated from ../../../git/cloog/test/dot.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j) { hash(2); hash(i); hash(j); } void test(int M, int N) { /* Original iterators. */ int i, j; for (j=1;j<=M;j++) { S1(0,j) ; } for (i=1;i<=N;i++) { for (j=1;j<=M;j++) { S2(i,j) ; } } } cloog-parma-0.16.1/cloog-core/test/double.cloog0000644000175000017500000000145111321074700016224 00000000000000# language: C c # parameters n m 1 4 # n m 1 1 0 1 0 0 4 # Number of statements 1 # S1 {i | 0<=i<=n} 2 5 # i n m 1 1 1 0 0 0 1 -1 1 0 0 0 0 0 1 # S2 {i, j | 0<=i<=n; 0<=j<=m} 4 6 # i j n m 1 1 1 0 0 0 0 1 -1 0 1 0 0 1 0 1 0 0 0 1 0 -1 0 1 0 0 0 0 1 # S3 {i, j | 0<=i<=n; 0<=j<=m} 4 6 # i j n m 1 1 1 0 0 0 0 1 -1 0 1 0 0 1 0 1 0 0 0 1 0 -1 0 1 0 0 0 0 1 # S4 {i | 0<=i<=n} 2 5 # i n m 1 1 1 0 0 0 1 -1 1 0 0 0 0 0 0 0 # Scattering functions 2 7 # c1 C2 i n m 1 0 1 0 -1 0 0 0 0 0 1 0 0 0 -1 2 8 # c1 C2 i j n m 1 0 1 0 -1 0 0 0 0 0 0 1 0 0 0 0 -2 2 8 # c1 C2 i j n m 1 0 1 0 -1 0 0 0 0 0 0 1 0 0 0 0 -3 2 7 # c1 C2 i n m 1 0 1 0 -1 0 0 0 0 0 1 0 0 0 -4 0 cloog-parma-0.16.1/cloog-core/test/forwardsub-3-1-2.cloog0000644000175000017500000000133011321074700017561 00000000000000# language: C c # Context #{N | 3<=N} 2 3 # M 1 1 1 -3 1 0 1 0 4 # Number of statements 1 #{t1,i | 3<=t1<=N+1; i=1; 3<=N} 5 5 # i j M 1 0 0 1 0 -1 1 0 0 1 -3 1 -1 0 1 1 1 1 0 0 -3 1 0 0 0 1 0 0 0 1 #{t1,i | 2i+1<=t1<=i+N; 2<=i} 4 5 # i j M 1 1 1 -2 0 -1 1 0 1 0 -2 1 -1 1 1 0 1 0 0 0 1 0 0 0 1 #{t1,i | t1=2; i=1; 3<=N} 4 5 # i j M 1 0 1 0 0 -2 0 0 1 0 -1 1 0 0 1 -3 1 0 0 0 1 0 0 0 1 #{t1,i | t1=2i; 2<=i<=N; 3<=N} 5 5 # i j M 1 0 1 -2 0 0 1 0 0 1 -3 1 0 -1 1 0 1 0 1 0 -2 1 0 0 0 1 0 0 0 0 0 # Scattering functions cloog-parma-0.16.1/cloog-core/test/yosr2.good.c0000644000175000017500000000200711321074700016074 00000000000000/* Generated from ../../../git/cloog/test/yosr2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.01s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i) { hash(2); hash(i); } #define S3(i,j,k) { hash(3); hash(i); hash(j); hash(k); } #define S4(i,j) { hash(4); hash(i); hash(j); } void test(int M) { /* Scattering iterators. */ int proc; /* Original iterators. */ int i, j, k; for (i=1;i<=M;i++) { S2(i) ; } for (proc=2;proc<=M-1;proc++) { for (i=1;i<=proc-1;i++) { S4(i,proc) ; } for (j=1;j<=proc-1;j++) { S1(proc,j) ; } for (j=proc+1;j<=M;j++) { for (k=1;k<=proc-1;k++) { S3(proc,j,k) ; } } } for (i=1;i<=M-1;i++) { S4(i,M) ; } for (j=1;j<=M-1;j++) { S1(M,j) ; } } cloog-parma-0.16.1/cloog-core/test/wavefront.good.c0000644000175000017500000000127311321074700017035 00000000000000/* Generated from ../../../git/cloog/test/wavefront.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.00s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } void test(int n, int m) { /* Scattering iterators. */ int c1, c2; /* Original iterators. */ int i, j; if ((n >= 1) && (m >= 1)) { for (c1=2;c1<=n+m;c1++) { for (c2=max(1,c1-m);c2<=min(n,c1-1);c2++) { j = c1-c2 ; S1(c2,c1-c2) ; } } } } cloog-parma-0.16.1/cloog-core/test/cholesky2.good.c0000644000175000017500000000446211321074700016730 00000000000000/* Generated from ../../../git/cloog/test/cholesky2.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.11s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) { hash(1); hash(i); } #define S2(i,j) { hash(2); hash(i); hash(j); } #define S3(i) { hash(3); hash(i); } #define S4(i,j) { hash(4); hash(i); hash(j); } #define S5(i,j,k) { hash(5); hash(i); hash(j); hash(k); } #define S6(i,j) { hash(6); hash(i); hash(j); } void test(int M) { /* Scattering iterators. */ int c1, c2, c3; /* Original iterators. */ int i, j, k; if (M >= 2) { for (c2=1;c2<=M-1;c2++) { S1(c2) ; for (c3=c2+1;c3<=M;c3++) { S4(c2,c3) ; } } S1(M) ; } if (M == 1) { S1(1) ; } if (M >= 2) { S3(1) ; } if (M >= 3) { S6(1,2) ; for (c2=3;c2<=M;c2++) { S6(1,c2) ; for (i=2;i<=c2-1;i++) { S5(i,c2,1) ; } } } if (M == 2) { S6(1,2) ; } for (c1=3;c1<=3*M-7;c1++) { if ((c1+2)%3 == 0) { i = (c1+2)/3 ; S3((c1+2)/3) ; } if (c1%3 == 0) { c2 = (c1+3)/3 ; i = (c1+3)/3 ; S2((c1+3)/3,c1/3) ; } c2 = floord(c1+6,3) ; if ((c1+1)%3 == 0) { i = (c1+1)/3 ; S6((c1+1)/3,c2) ; } if (c1%3 == 0) { S2(c2,c1/3) ; } for (c2=ceild(c1+7,3);c2<=M;c2++) { if ((c1+1)%3 == 0) { i = (c1+1)/3 ; S6((c1+1)/3,c2) ; } if (c1%3 == 0) { S2(c2,c1/3) ; } if ((c1+1)%3 == 0) { c3 = (c1+1)/3 ; for (i=ceild(c1+4,3);i<=c2-1;i++) { k = (c1+1)/3 ; S5(i,c2,(c1+1)/3) ; } } } } for (c1=max(3*M-6,3);c1<=3*M-4;c1++) { if ((c1+2)%3 == 0) { i = (c1+2)/3 ; S3((c1+2)/3) ; } if (c1%3 == 0) { c2 = (c1+3)/3 ; i = (c1+3)/3 ; S2((c1+3)/3,c1/3) ; } for (c2=ceild(c1+4,3);c2<=M;c2++) { if ((c1+1)%3 == 0) { i = (c1+1)/3 ; S6((c1+1)/3,c2) ; } if (c1%3 == 0) { S2(c2,c1/3) ; } } } if (M >= 2) { c1 = 3*M-3 ; j = M-1 ; S2(M,M-1) ; } if (M >= 1) { c1 = 3*M-2 ; S3(M) ; } } cloog-parma-0.16.1/cloog-core/test/lu.good.c0000644000175000017500000000174511321074700015446 00000000000000/* Generated from ../../../git/cloog/test/lu.cloog by CLooG 0.14.0-72-gefe2fc2 gmp bits in 0.02s. */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d)) #define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i,j) { hash(1); hash(i); hash(j); } #define S2(i,j,k) { hash(2); hash(i); hash(j); hash(k); } void test(int n) { /* Scattering iterators. */ int c1, c2; /* Original iterators. */ int i, j, k; if (n >= 2) { for (j=2;j<=n;j++) { S1(1,j) ; } } for (c1=2;c1<=n-1;c1++) { for (c2=2;c2<=n-1;c2++) { for (i=1;i<=min(c2-1,c1-1);i++) { S2(i,c2,c1) ; } } for (i=1;i<=c1-1;i++) { S2(i,n,c1) ; } for (j=c1+1;j<=n;j++) { S1(c1,j) ; } } if (n >= 2) { for (c2=2;c2<=n;c2++) { for (i=1;i<=c2-1;i++) { S2(i,c2,n) ; } } } } cloog-parma-0.16.1/cloog-core/test/mode.c0000644000175000017500000000071611406126537015032 00000000000000/* Generated from /home/skimo/git/cloog/test/mode.cloog by CLooG 0.14.0-284-ga90f184 gmp bits in 0.00s. */ if (M >= 0) { if (N >= 0) { for (i=0;i<=M;i++) { for (j=0;j<=min(N,i);j++) { S1(i,j); S2(i,j); } for (j=N+1;j<=i;j++) { S1(i,j); } for (j=i+1;j<=N;j++) { S2(i,j); } } } if (N <= -1) { for (i=0;i<=M;i++) { for (j=0;j<=i;j++) { S1(i,j); } } } } cloog-parma-0.16.1/cloog-core/source/0000755000175000017500000000000011511607625014336 500000000000000cloog-parma-0.16.1/cloog-core/source/mp_get_memory_functions.c0000644000175000017500000000056511321074700021352 00000000000000#include void mp_get_memory_functions( void *(**alloc_func_ptr) (size_t), void *(**realloc_func_ptr) (void *, size_t, size_t), void (**free_func_ptr) (void *, size_t)) { if (alloc_func_ptr) *alloc_func_ptr = __gmp_allocate_func; if (realloc_func_ptr) *realloc_func_ptr = __gmp_reallocate_func; if (free_func_ptr) *free_func_ptr = __gmp_free_func; } cloog-parma-0.16.1/cloog-core/source/version.c.in0000644000175000017500000000055411470010453016507 00000000000000#include "version.h" #include "cloog/version.h" #define CLOOG_BITS "@BITS@" const char *cloog_version(void) { return "CLooG "CLOOG_HEAD" "CLOOG_BITS" bits"; } int cloog_version_major(void) { return CLOOG_VERSION_MAJOR; } int cloog_version_minor(void) { return CLOOG_VERSION_MINOR; } int cloog_version_revision(void) { return CLOOG_VERSION_REVISION; } cloog-parma-0.16.1/cloog-core/source/statement.c0000644000175000017500000002373311467774607016455 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** statement.c ** **-------------------------------------------------------------------** ** First version: november 4th 2001 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ /* CAUTION: the english used for comments is probably the worst you ever read, * please feel free to correct and improve it ! */ # include # include # include # include "../include/cloog/cloog.h" /****************************************************************************** * Memory leaks hunting * ******************************************************************************/ /** * These functions and global variables are devoted to memory leaks hunting: we * want to know at each moment how many CloogStatement structures had been * allocated (cloog_statement_allocated) and how many had been freed * (cloog_statement_freed). Each time a CloogStatement structure is allocated, * a call to the function cloog_statement_leak_up() must be carried out, and * respectively cloog_statement_leak_down() when a CloogStatement structure is * freed. The special variable cloog_statement_max gives the maximal number of * CloogStatement structures simultaneously alive (i.e. allocated and * non-freed) in memory. * - July 3rd->11th 2003: first version (memory leaks hunt and correction). */ static void cloog_statement_leak_up(CloogState *state) { state->statement_allocated++; if ((state->statement_allocated - state->statement_freed) > state->statement_max) state->statement_max = state->statement_allocated - state->statement_freed ; } static void cloog_statement_leak_down(CloogState *state) { state->statement_freed++; } /****************************************************************************** * Structure display function * ******************************************************************************/ /** * cloog_domain_print_structure : * this function is a human-friendly way to display the CloogDomain data * structure, it includes an indentation level (level) in order to work with * others print_structure functions. * - June 16th 2005: first version. */ void cloog_statement_print_structure(file, statement, level) FILE * file ; CloogStatement * statement ; int level ; { int i ; if (statement != NULL) { /* Go to the right level. */ for (i=0; inumber) ; statement = statement->next ; while (statement != NULL) { for (i=0; inumber) ; statement = statement->next ; } } else { for (i=0; istate); next = statement->next ; /* free(statement->usr) ; Actually, this is user's job ! */ free(statement->name); free(statement) ; statement = next ; } } /****************************************************************************** * Processing functions * ******************************************************************************/ /** * cloog_statement_malloc function: * This function allocates the memory space for a CloogStatement structure and * sets its fields with default values. Then it returns a pointer to the * allocated space. * - November 21th 2005: first version. */ CloogStatement *cloog_statement_malloc(CloogState *state) { CloogStatement * statement ; /* Memory allocation for the CloogStatement structure. */ statement = (CloogStatement *)malloc(sizeof(CloogStatement)) ; if (statement == NULL) cloog_die("memory overflow.\n"); cloog_statement_leak_up(state); /* We set the various fields with default values. */ statement->state = state; statement->number = 0; statement->name = NULL; statement->usr = NULL ; /* To fill it is actually user's job ! */ statement->next = NULL ; return statement ; } /** * cloog_statement_alloc function: * This function allocates the memory space for a CloogStatement structure and * sets its fields with those given as input. Then it returns a pointer to the * allocated space. * - number is the statement number. ** * - September 9th 2002: first version. * - March 17th 2003: fix for the usr field in CloogStatement structure. * - April 16th 2005: adaptation to new CloogStatement structure (with * number), cloog_statement_read becomes * cloog_statement_alloc sincethere is nothing more to * read on a file. * - November 21th 2005: use of cloog_statement_malloc. */ CloogStatement *cloog_statement_alloc(CloogState *state, int number) { CloogStatement * statement ; /* Memory allocation and initialization of the structure. */ statement = cloog_statement_malloc(state); statement->number = number ; return statement ; } /** * cloog_statement_copy function: * This function returns a copy of the CloogStatement structure given as input. * - October 28th 2001: first version (in loop.c). * - March 17th 2003: fix for the usr field in CloogStatement structure. * - April 16th 2005: adaptation to new CloogStatement struct (with number). */ CloogStatement * cloog_statement_copy(CloogStatement * source) { CloogStatement * statement, * temp, * now = NULL ; statement = NULL ; while (source != NULL) { cloog_statement_leak_up(source->state); temp = (CloogStatement *)malloc(sizeof(CloogStatement)) ; if (temp == NULL) cloog_die("memory overflow.\n"); temp->state = source->state; temp->number = source->number ; temp->name = source->name ? strdup(source->name) : NULL; temp->usr = source->usr ; temp->next = NULL ; if (statement == NULL) { statement = temp ; now = statement ; } else { now->next = temp ; now = now->next ; } source = source->next ; } return(statement) ; } /** * cloog_statement_add function: * This function adds a CloogStatement structure (statement) at a given place * (now) of a NULL terminated list of CloogStatement structures. The beginning * of this list is (start). This function updates (now) to (loop), and * updates (start) if the added element is the first one -that is when (start) * is NULL-. * - March 27th 2004: first version. */ void cloog_statement_add(start, now, statement) CloogStatement ** start, ** now, * statement ; { if (*start == NULL) { *start = statement ; *now = *start ; } else { (*now)->next = statement ; *now = (*now)->next ; } } cloog-parma-0.16.1/cloog-core/source/cloog.c0000644000175000017500000001142611321074700015520 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** cloog.c ** **-------------------------------------------------------------------** ** First version: october 25th 2001, CLooG's birth date ! ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ # include # include # include "../include/cloog/cloog.h" int main(int argv, char * argc[]) { CloogProgram * program ; CloogOptions * options ; CloogState *state; FILE * input, * output ; state = cloog_state_malloc(); /* Options and input/output file setting. */ cloog_options_read(state, argv, argc, &input, &output, &options); /* Reading the program informations. */ program = cloog_program_read(input,options) ; fclose(input) ; /* Generating and printing the code. */ program = cloog_program_generate(program,options) ; if (options->structure) cloog_program_print(stdout,program) ; cloog_program_pprint(output,program,options) ; cloog_program_free(program) ; /* Printing the allocation statistics if asked. */ if (options->leaks) { fprintf(output,"/* Domains : allocated=%5d, freed=%5d, max=%5d. */\n", state->domain_allocated, state->domain_freed, state->domain_max); fprintf(output,"/* Loops : allocated=%5d, freed=%5d, max=%5d. */\n", state->loop_allocated, state->loop_freed, state->loop_max); fprintf(output,"/* Statements : allocated=%5d, freed=%5d, max=%5d. */\n", state->statement_allocated, state->statement_freed, state->statement_max); fprintf(output,"/* Blocks : allocated=%5d, freed=%5d, max=%5d. */\n", state->block_allocated, state->block_freed, state->block_max); } /* Inform the user in case of a problem with the allocation statistics. */ if ((state->domain_allocated != state->domain_freed) || (state->loop_allocated != state->loop_freed) || (state->statement_allocated != state->statement_freed) || (state->block_allocated != state->block_freed)) { cloog_msg(options, CLOOG_INFO, "an internal problem has been detected (it should have" " no\n consequence on the correctness of the output)." " Please send (if\n you can) your input file, the first line " "given by typing 'cloog -v'\n and your full command " "line call to CLooG including options to\n . Thank you for your participation to get\n" " CLooG better and safer.\n") ; } cloog_options_free(options) ; cloog_state_free(state); fclose(output) ; return 0; } cloog-parma-0.16.1/cloog-core/source/matrix.c0000644000175000017500000001346611477123124015736 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** cloogmatrix.c ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ #include #include #include #include "../include/cloog/cloog.h" /** * cloog_matrix_alloc: * Allocate a CloogMatrix data structure with NbRows rows and NbColumns columns. * All values are initialized to 0. * This method returns a pointer to the data structure if successful or a NULL * pointer otherwise. */ CloogMatrix *cloog_matrix_alloc(unsigned NbRows, unsigned NbColumns) { CloogMatrix *matrix; cloog_int_t **p, *q; int i, j; matrix = (CloogMatrix *)malloc(sizeof(CloogMatrix)); if (!matrix) return NULL; matrix->NbRows = NbRows; matrix->NbColumns = NbColumns; if (!NbRows || !NbColumns) { matrix->p = NULL; matrix->p_Init = NULL; return matrix; } p = (cloog_int_t **)malloc(NbRows * sizeof(cloog_int_t *)); if (p == NULL) { free (matrix); return NULL; } q = (cloog_int_t *)malloc(NbRows * NbColumns * sizeof(cloog_int_t)); if (q == NULL) { free (matrix); free (p); return NULL; } matrix->p = p; matrix->p_Init = q; for (i = 0; i < NbRows; i++) { *p++ = q; for (j = 0; j < NbColumns; j++) { cloog_int_init(*(q+j)); cloog_int_set_si(*(q+j), 0); } q += NbColumns; } return matrix; } /** * cloog_matrix_free: * Free matrix. */ void cloog_matrix_free(CloogMatrix * matrix) { int i; cloog_int_t *p; int size = matrix->NbRows * matrix->NbColumns; p = matrix->p_Init; for (i = 0; i < size; i++) cloog_int_clear(*p++); if (matrix) { free(matrix->p_Init); free(matrix->p); free(matrix); } } /** * Print the elements of CloogMatrix M to file, with each row prefixed * by prefix and suffixed by suffix. */ void cloog_matrix_print_structure(FILE *file, CloogMatrix *M, const char *prefix, const char *suffix) { int i, j; for (i = 0; i < M->NbRows; ++i) { fprintf(file, "%s", prefix); for (j = 0; j < M->NbColumns; ++j) { cloog_int_print(file, M->p[i][j]); fprintf(file, " "); } fprintf(file, "%s\n", suffix); } } /** * cloog_matrix_print function: * This function prints the content of a CloogMatrix structure (matrix) into a * file (foo, possibly stdout). */ void cloog_matrix_print(FILE* foo, CloogMatrix* m) { if (!m) fprintf(foo, "(null)\n"); fprintf(foo, "%d %d\n", m->NbRows, m->NbColumns); cloog_matrix_print_structure(foo, m, "", ""); fflush(foo); } static char *next_line(FILE *input, char *line, unsigned len) { char *p; do { if (!(p = fgets(line, len, input))) return NULL; while (isspace(*p) && *p != '\n') ++p; } while (*p == '#' || *p == '\n'); return p; } CloogMatrix *cloog_matrix_read(FILE *input) { unsigned n_row, n_col; char line[1024]; if (!next_line(input, line, sizeof(line))) cloog_die("Input error.\n"); if (sscanf(line, "%u %u", &n_row, &n_col) != 2) cloog_die("Input error.\n"); return cloog_matrix_read_of_size(input, n_row, n_col); } /** * Read a matrix in PolyLib format from input. */ CloogMatrix *cloog_matrix_read_of_size(FILE *input, unsigned n_row, unsigned n_col) { CloogMatrix *M; int i, j; char line[1024]; char val[1024]; char *p; M = cloog_matrix_alloc(n_row, n_col); if (!M) cloog_die("memory overflow.\n"); for (i = 0; i < n_row; ++i) { int offset; int n; p = next_line(input, line, sizeof(line)); if (!p) cloog_die("Input error.\n"); for (j = 0; j < n_col; ++j) { n = sscanf(p, "%s%n", val, &offset); if (!n) cloog_die("Input error.\n"); cloog_int_read(M->p[i][j], val); p += offset; } } return M; } cloog-parma-0.16.1/cloog-core/source/pprint.c0000644000175000017500000003176511467774607015771 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** pprint.c ** **-------------------------------------------------------------------** ** First version: october 26th 2001 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ /* CAUTION: the english used for comments is probably the worst you ever read, * please feel free to correct and improve it ! */ /* June 22nd 2005: General adaptation for GMP. * October 26th 2005: General adaptation from CloogDomain to Matrix data * structure for all constraint systems. * October 27th 2005: General adaptation from CloogEqual to Matrix data * structure for equality spreading. */ # include # include # include #include # include "../include/cloog/cloog.h" static void pprint_name(FILE *dst, struct clast_name *n); static void pprint_term(struct cloogoptions *i, FILE *dst, struct clast_term *t); static void pprint_sum(struct cloogoptions *opt, FILE *dst, struct clast_reduction *r); static void pprint_binary(struct cloogoptions *i, FILE *dst, struct clast_binary *b); static void pprint_minmax_f(struct cloogoptions *info, FILE *dst, struct clast_reduction *r); static void pprint_minmax_c(struct cloogoptions *info, FILE *dst, struct clast_reduction *r); static void pprint_reduction(struct cloogoptions *i, FILE *dst, struct clast_reduction *r); static void pprint_expr(struct cloogoptions *i, FILE *dst, struct clast_expr *e); static void pprint_equation(struct cloogoptions *i, FILE *dst, struct clast_equation *eq); static void pprint_assignment(struct cloogoptions *i, FILE *dst, struct clast_assignment *a); static void pprint_user_stmt(struct cloogoptions *options, FILE *dst, struct clast_user_stmt *u); static void pprint_guard(struct cloogoptions *options, FILE *dst, int indent, struct clast_guard *g); static void pprint_for(struct cloogoptions *options, FILE *dst, int indent, struct clast_for *f); static void pprint_stmt_list(struct cloogoptions *options, FILE *dst, int indent, struct clast_stmt *s); void pprint_name(FILE *dst, struct clast_name *n) { fprintf(dst, "%s", n->name); } /** * This function returns a string containing the printing of a value (possibly * an iterator or a parameter with its coefficient or a constant). * - val is the coefficient or constant value, * - name is a string containing the name of the iterator or of the parameter, */ void pprint_term(struct cloogoptions *i, FILE *dst, struct clast_term *t) { if (t->var) { int group = t->var->type == clast_expr_red && ((struct clast_reduction*) t->var)->n > 1; if (cloog_int_is_one(t->val)) ; else if (cloog_int_is_neg_one(t->val)) fprintf(dst, "-"); else { cloog_int_print(dst, t->val); fprintf(dst, "*"); } if (group) fprintf(dst, "("); pprint_expr(i, dst, t->var); if (group) fprintf(dst, ")"); } else cloog_int_print(dst, t->val); } void pprint_sum(struct cloogoptions *opt, FILE *dst, struct clast_reduction *r) { int i; struct clast_term *t; assert(r->n >= 1); assert(r->elts[0]->type == clast_expr_term); t = (struct clast_term *) r->elts[0]; pprint_term(opt, dst, t); for (i = 1; i < r->n; ++i) { assert(r->elts[i]->type == clast_expr_term); t = (struct clast_term *) r->elts[i]; if (cloog_int_is_pos(t->val)) fprintf(dst, "+"); pprint_term(opt, dst, t); } } void pprint_binary(struct cloogoptions *i, FILE *dst, struct clast_binary *b) { const char *s1 = NULL, *s2 = NULL, *s3 = NULL; int group = b->LHS->type == clast_expr_red && ((struct clast_reduction*) b->LHS)->n > 1; if (i->language == LANGUAGE_FORTRAN) { switch (b->type) { case clast_bin_fdiv: s1 = "FLOOR(REAL(", s2 = ")/REAL(", s3 = "))"; break; case clast_bin_cdiv: s1 = "CEILING(REAL(", s2 = ")/REAL(", s3 = "))"; break; case clast_bin_div: if (group) s1 = "(", s2 = ")/", s3 = ""; else s1 = "", s2 = "/", s3 = ""; break; case clast_bin_mod: s1 = "MOD(", s2 = ", ", s3 = ")"; break; } } else { switch (b->type) { case clast_bin_fdiv: s1 = "floord(", s2 = ",", s3 = ")"; break; case clast_bin_cdiv: s1 = "ceild(", s2 = ",", s3 = ")"; break; case clast_bin_div: if (group) s1 = "(", s2 = ")/", s3 = ""; else s1 = "", s2 = "/", s3 = ""; break; case clast_bin_mod: if (group) s1 = "(", s2 = ")%", s3 = ""; else s1 = "", s2 = "%", s3 = ""; break; } } fprintf(dst, "%s", s1); pprint_expr(i, dst, b->LHS); fprintf(dst, "%s", s2); cloog_int_print(dst, b->RHS); fprintf(dst, "%s", s3); } void pprint_minmax_f(struct cloogoptions *info, FILE *dst, struct clast_reduction *r) { int i; if (r->n == 0) return; fprintf(dst, r->type == clast_red_max ? "MAX(" : "MIN("); pprint_expr(info, dst, r->elts[0]); for (i = 1; i < r->n; ++i) { fprintf(dst, ","); pprint_expr(info, dst, r->elts[i]); } fprintf(dst, ")"); } void pprint_minmax_c(struct cloogoptions *info, FILE *dst, struct clast_reduction *r) { int i; for (i = 1; i < r->n; ++i) fprintf(dst, r->type == clast_red_max ? "max(" : "min("); if (r->n > 0) pprint_expr(info, dst, r->elts[0]); for (i = 1; i < r->n; ++i) { fprintf(dst, ","); pprint_expr(info, dst, r->elts[i]); fprintf(dst, ")"); } } void pprint_reduction(struct cloogoptions *i, FILE *dst, struct clast_reduction *r) { switch (r->type) { case clast_red_sum: pprint_sum(i, dst, r); break; case clast_red_min: case clast_red_max: if (r->n == 1) { pprint_expr(i, dst, r->elts[0]); break; } if (i->language == LANGUAGE_FORTRAN) pprint_minmax_f(i, dst, r); else pprint_minmax_c(i, dst, r); break; default: assert(0); } } void pprint_expr(struct cloogoptions *i, FILE *dst, struct clast_expr *e) { if (!e) return; switch (e->type) { case clast_expr_name: pprint_name(dst, (struct clast_name*) e); break; case clast_expr_term: pprint_term(i, dst, (struct clast_term*) e); break; case clast_expr_red: pprint_reduction(i, dst, (struct clast_reduction*) e); break; case clast_expr_bin: pprint_binary(i, dst, (struct clast_binary*) e); break; default: assert(0); } } void pprint_equation(struct cloogoptions *i, FILE *dst, struct clast_equation *eq) { pprint_expr(i, dst, eq->LHS); if (eq->sign == 0) fprintf(dst, " == "); else if (eq->sign > 0) fprintf(dst, " >= "); else fprintf(dst, " <= "); pprint_expr(i, dst, eq->RHS); } void pprint_assignment(struct cloogoptions *i, FILE *dst, struct clast_assignment *a) { if (a->LHS) fprintf(dst, "%s = ", a->LHS); pprint_expr(i, dst, a->RHS); } void pprint_user_stmt(struct cloogoptions *options, FILE *dst, struct clast_user_stmt *u) { struct clast_stmt *t; if (u->statement->name) fprintf(dst, "%s", u->statement->name); else fprintf(dst, "S%d", u->statement->number); fprintf(dst, "("); for (t = u->substitutions; t; t = t->next) { assert(CLAST_STMT_IS_A(t, stmt_ass)); pprint_assignment(options, dst, (struct clast_assignment *)t); if (t->next) fprintf(dst, ","); } fprintf(dst, ")"); if (options->language != LANGUAGE_FORTRAN) fprintf(dst, ";"); fprintf(dst, "\n"); } void pprint_guard(struct cloogoptions *options, FILE *dst, int indent, struct clast_guard *g) { int k; if (options->language == LANGUAGE_FORTRAN) fprintf(dst,"IF "); else fprintf(dst,"if "); if (g->n > 1) fprintf(dst,"("); for (k = 0; k < g->n; ++k) { if (k > 0) { if (options->language == LANGUAGE_FORTRAN) fprintf(dst," .AND. "); else fprintf(dst," && "); } fprintf(dst,"("); pprint_equation(options, dst, &g->eq[k]); fprintf(dst,")"); } if (g->n > 1) fprintf(dst,")"); if (options->language == LANGUAGE_FORTRAN) fprintf(dst," THEN\n"); else fprintf(dst," {\n"); pprint_stmt_list(options, dst, indent + INDENT_STEP, g->then); fprintf(dst, "%*s", indent, ""); if (options->language == LANGUAGE_FORTRAN) fprintf(dst,"END IF\n"); else fprintf(dst,"}\n"); } void pprint_for(struct cloogoptions *options, FILE *dst, int indent, struct clast_for *f) { if (options->language == LANGUAGE_FORTRAN) fprintf(dst, "DO "); else fprintf(dst, "for ("); if (f->LB) { fprintf(dst, "%s=", f->iterator); pprint_expr(options, dst, f->LB); } else if (options->language == LANGUAGE_FORTRAN) cloog_die("unbounded loops not allowed in FORTRAN.\n"); if (options->language == LANGUAGE_FORTRAN) fprintf(dst,", "); else fprintf(dst,";"); if (f->UB) { if (options->language != LANGUAGE_FORTRAN) fprintf(dst,"%s<=", f->iterator); pprint_expr(options, dst, f->UB); } else if (options->language == LANGUAGE_FORTRAN) cloog_die("unbounded loops not allowed in FORTRAN.\n"); if (options->language == LANGUAGE_FORTRAN) { if (cloog_int_gt_si(f->stride, 1)) cloog_int_print(dst, f->stride); fprintf(dst,"\n"); } else { if (cloog_int_gt_si(f->stride, 1)) { fprintf(dst,";%s+=", f->iterator); cloog_int_print(dst, f->stride); fprintf(dst, ") {\n"); } else fprintf(dst, ";%s++) {\n", f->iterator); } pprint_stmt_list(options, dst, indent + INDENT_STEP, f->body); fprintf(dst, "%*s", indent, ""); if (options->language == LANGUAGE_FORTRAN) fprintf(dst,"END DO\n") ; else fprintf(dst,"}\n") ; } void pprint_stmt_list(struct cloogoptions *options, FILE *dst, int indent, struct clast_stmt *s) { for ( ; s; s = s->next) { if (CLAST_STMT_IS_A(s, stmt_root)) continue; fprintf(dst, "%*s", indent, ""); if (CLAST_STMT_IS_A(s, stmt_ass)) { pprint_assignment(options, dst, (struct clast_assignment *) s); if (options->language != LANGUAGE_FORTRAN) fprintf(dst, ";"); fprintf(dst, "\n"); } else if (CLAST_STMT_IS_A(s, stmt_user)) { pprint_user_stmt(options, dst, (struct clast_user_stmt *) s); } else if (CLAST_STMT_IS_A(s, stmt_for)) { pprint_for(options, dst, indent, (struct clast_for *) s); } else if (CLAST_STMT_IS_A(s, stmt_guard)) { pprint_guard(options, dst, indent, (struct clast_guard *) s); } else if (CLAST_STMT_IS_A(s, stmt_block)) { fprintf(dst, "{\n"); pprint_stmt_list(options, dst, indent + INDENT_STEP, ((struct clast_block *)s)->body); fprintf(dst, "%*s", indent, ""); fprintf(dst, "}\n"); } else { assert(0); } } } /****************************************************************************** * Pretty Printing (dirty) functions * ******************************************************************************/ void clast_pprint(FILE *foo, struct clast_stmt *root, int indent, CloogOptions *options) { pprint_stmt_list(options, foo, indent, root); } cloog-parma-0.16.1/cloog-core/source/block.c0000644000175000017500000003143011321074700015504 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** block.c ** **-------------------------------------------------------------------** ** First version: june 11th 2005 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ /* CAUTION: the english used for comments is probably the worst you ever read, * please feel free to correct and improve it ! */ # include # include # include "../include/cloog/cloog.h" /****************************************************************************** * Memory leaks hunting * ******************************************************************************/ /** * These functions and global variables are devoted to memory leaks hunting: we * want to know at each moment how many CloogBlock structures had been allocated * (cloog_block_allocated) and how many had been freed (cloog_block_freed). * Each time a CloogBlock structure is allocated, a call to the function * cloog_block_leak_up() must be carried out, and respectively * cloog_block_leak_down() when a CloogBlock structure is freed. The special * variable cloog_block_max gives the maximal number of CloogBlock structures * simultaneously alive (i.e. allocated and non-freed) in memory. * - June 11th 2005: first version. */ static void cloog_block_leak_up(CloogState *state) { state->block_allocated++; if ((state->block_allocated - state->block_freed) > state->block_max) state->block_max = state->block_allocated - state->block_freed; } static void cloog_block_leak_down(CloogState *state) { state->block_freed++; } /****************************************************************************** * Structure display function * ******************************************************************************/ /** * cloog_domain_print_structure : * this function is a human-friendly way to display the CloogDomain data * structure, it includes an indentation level (level) in order to work with * others print_structure functions. * - June 16th 2005: first version. */ void cloog_block_print_structure(FILE * file, CloogBlock * block, int level) { int i ; /* Go to the right level. */ for (i=0; istatement,level+1) ; /* A blank line. */ for (i=0; inb_scaldims == 0) fprintf(file,"No scalar dimensions\n") ; else { fprintf(file,"Scalar dimensions (%d):",block->nb_scaldims) ; for (i = 0; i < block->nb_scaldims; i++) { fprintf(file, " "); cloog_int_print(file, block->scaldims[i]); } fprintf(file,"\n") ; } /* A blank line. */ for (i=0; idepth) ; /* A blank line. */ for (i=0; iblock,1) ; blocklist = blocklist->next ; i++ ; } } /****************************************************************************** * Memory deallocation function * ******************************************************************************/ /** * cloog_block_free function: * This function frees the allocated memory for a CloogStatement structure. * - June 11th 2005: first version. * - June 30th 2005: scaldims field management. */ void cloog_block_free(CloogBlock * block) { int i ; if (block != NULL) { block->references -- ; if (block->references == 0) { cloog_block_leak_down(block->state); if (block->scaldims != NULL) { for (i=0;inb_scaldims;i++) cloog_int_clear(block->scaldims[i]); free(block->scaldims) ; } if (block->statement) cloog_statement_free(block->statement); free(block) ; } } } /** * cloog_block_list_free function: * This function frees the allocated memory for a CloogBlockList structure. * - June 11th 2005: first version. */ void cloog_block_list_free(CloogBlockList * blocklist) { CloogBlockList * temp ; while (blocklist != NULL) { temp = blocklist->next ; cloog_block_free(blocklist->block) ; free(blocklist) ; blocklist = temp ; } } /****************************************************************************** * Processing functions * ******************************************************************************/ /** * cloog_block_malloc function: * This function allocates the memory space for a CloogBlock structure and * sets its fields with default values. Then it returns a pointer to the * allocated space. * - November 21th 2005: first version. */ CloogBlock *cloog_block_malloc(CloogState *state) { CloogBlock * block ; /* Memory allocation for the CloogBlock structure. */ block = (CloogBlock *)malloc(sizeof(CloogBlock)) ; if (block == NULL) cloog_die("memory overflow.\n"); cloog_block_leak_up(state); /* We set the various fields with default values. */ block->state = state; block->statement = NULL ; block->nb_scaldims = 0 ; block->scaldims = NULL ; block->depth = 0 ; block->references = 1 ; block->usr = NULL; return block ; } /** * cloog_block_alloc function: * This function allocates the memory space for a CloogBlock structure and * sets its fields with those given as input. Then it returns a pointer to the * allocated space. The two parameters nb_scaldims and scaldims are for internal * service, put to respectively 0 and NULL if you don't know what they are * useful for ! * - statement is the statement list of the block, * - scattering is the scattering function for the block (NULL if unsure !), * - nb_scaldims is the number of scalar dimensions (0 if unsure !), * - scaldims is the array with the scalar dimensions values (NULL if unsure !), * - depth is the original block depth (the number of outer loops). ** * - June 11th 2005: first version. * - June 30th 2005: addition of the nb_scaldims and scaldims parameters. * - November 21th 2005: use of cloog_block_malloc. */ CloogBlock *cloog_block_alloc(CloogStatement *statement, int nb_scaldims, cloog_int_t *scaldims, int depth) { CloogBlock * block ; /* Block allocation. */ block = cloog_block_malloc(statement->state); block->statement = statement ; block->nb_scaldims = nb_scaldims ; block->scaldims = scaldims ; block->depth = depth ; block->references = 1 ; return block ; } /** * cloog_block_list_malloc function: * This function allocates the memory space for a CloogBlockList structure and * sets its fields with default values. Then it returns a pointer to the * allocated space. * - November 21th 2005: first version. */ CloogBlockList * cloog_block_list_malloc() { CloogBlockList * blocklist ; /* Memory allocation for the CloogBlock structure. */ blocklist = (CloogBlockList *)malloc(sizeof(CloogBlockList)) ; if (blocklist == NULL) cloog_die("memory overflow.\n"); /* We set the various fields with default values. */ blocklist->block = NULL ; blocklist->next = NULL ; return blocklist ; } /** * cloog_block_list_alloc function: * This function allocates the memory space for a CloogBlockList structure and * sets its fields with those given as input. Then it returns a pointer to the * allocated space. * - block is the block element of the list node, ** * - June 11th 2005: first version. * - November 21th 2005: use of cloog_block_list_malloc. */ CloogBlockList * cloog_block_list_alloc(CloogBlock * block) { CloogBlockList * blocklist ; /* Block list node allocation. */ blocklist = cloog_block_list_malloc() ; blocklist->block = block ; blocklist->block->references ++ ; /* The block has a new reference to it. */ blocklist->next = NULL ; return blocklist ; } /** * cloog_block_copy function: * This function returns a copy of a CloogBlock structure 'block'. To save * memory this is not a memory copy but we increment a counter of active * references inside the structure, then return a pointer to that structure. */ CloogBlock * cloog_block_copy(CloogBlock * block) { if (block == NULL) return NULL ; block->references ++ ; return block ; } /** * cloog_block_merge function: * this function adds at the end of the statement list of the block 'block', * the statement list of the block 'merged'. Then the CloogBlock structure * of 'merged' is freed (obviously not its statement list that is now * included in 'block'). * - June 11th 2005: first version. */ void cloog_block_merge(CloogBlock * block, CloogBlock * merged) { CloogStatement * statement ; if ((block == NULL) || (merged == NULL)) return ; if (block->statement != NULL) { statement = block->statement ; while (statement->next != NULL) statement = statement->next ; statement->next = merged->statement ; } else block->statement = merged->statement ; merged->statement = NULL; cloog_block_free(merged); } cloog-parma-0.16.1/cloog-core/source/loop.c0000644000175000017500000023175511511332565015406 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** loop.c ** **-------------------------------------------------------------------** ** First version: october 26th 2001 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ /* CAUTION: the english used for comments is probably the worst you ever read, * please feel free to correct and improve it ! */ # include # include # include "../include/cloog/cloog.h" #define ALLOC(type) (type*)malloc(sizeof(type)) /****************************************************************************** * Memory leaks hunting * ******************************************************************************/ /** * These functions and global variables are devoted to memory leaks hunting: we * want to know at each moment how many CloogLoop structures had been allocated * (cloog_loop_allocated) and how many had been freed (cloog_loop_freed). * Each time a CloogLoog structure is allocated, a call to the function * cloog_loop_leak_up() must be carried out, and respectively * cloog_loop_leak_down() when a CloogLoop structure is freed. The special * variable cloog_loop_max gives the maximal number of CloogLoop structures * simultaneously alive (i.e. allocated and non-freed) in memory. * - July 3rd->11th 2003: first version (memory leaks hunt and correction). */ static void cloog_loop_leak_up(CloogState *state) { state->loop_allocated++; if ((state->loop_allocated - state->loop_freed) > state->loop_max) state->loop_max = state->loop_allocated - state->loop_freed; } static void cloog_loop_leak_down(CloogState *state) { state->loop_freed++; } /****************************************************************************** * Structure display function * ******************************************************************************/ /** * cloog_loop_print_structure function: * Displays a loop structure in a way that trends to be understandable without * falling in a deep depression or, for the lucky ones, getting a headache... * Written by Olivier Chorier, Luc Marchaud, Pierre Martin and Romain Tartiere. * - April 24th 2005: Initial version. * - May 21rd 2005: - New parameter `F' for destination file (ie stdout), * - Minor tweaks. * - May 26th 2005: Memory leak hunt. * - June 2nd 2005: (Ced) Integration and minor fixes. * -June 22nd 2005: (Ced) Adaptation for GMP. */ void cloog_loop_print_structure(FILE * file, CloogLoop * loop, int level) { int i, j, first=1 ; if (loop) { /* Go to the right level. */ for (i=0; idomain, level+1, "CloogDomain"); /* Print the stride. */ for(j=0; j<=level; j++) fprintf(file,"|\t") ; if (loop->stride) { fprintf(file, "Stride: "); cloog_int_print(file, loop->stride->stride); fprintf(file, "\n"); fprintf(file, "Offset: "); cloog_int_print(file, loop->stride->offset); fprintf(file, "\n"); } /* A blank line. */ for(j=0; j<=level+1; j++) fprintf(file,"|\t") ; fprintf(file,"\n") ; /* Print the block. */ cloog_block_print_structure(file,loop->block,level+1) ; /* A blank line. */ for (i=0; i<=level+1; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; /* Print inner if any. */ if (loop->inner) cloog_loop_print_structure(file,loop->inner,level+1) ; /* And let's go for the next one. */ loop = loop->next ; /* One more time something that is here only for a better look. */ if (!loop) { /* Two blank lines if this is the end of the linked list. */ for (j=0; j<2; j++) { for (i=0; i<=level; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; } } else { /* A special blank line if the is a next loop. */ for (i=0; i<=level; i++) fprintf(file,"|\t") ; fprintf(file,"V\n") ; } } } /** * cloog_loop_print function: * This function prints the content of a CloogLoop structure (start) into a * file (file, possibly stdout). * - June 2nd 2005: Now this very old function (probably as old as CLooG) is * only a frontend to cloog_loop_print_structure, with a quite * better human-readable representation. */ void cloog_loop_print(FILE * file, CloogLoop * loop) { cloog_loop_print_structure(file,loop,0) ; } /****************************************************************************** * Memory deallocation function * ******************************************************************************/ /** * cloog_loop_free function: * This function frees the allocated memory for a CloogLoop structure (loop), * and frees its inner loops and its next loops. * - June 22nd 2005: Adaptation for GMP. */ void cloog_loop_free(CloogLoop * loop) { CloogLoop * next ; while (loop != NULL) { cloog_loop_leak_down(loop->state); next = loop->next ; cloog_domain_free(loop->domain) ; cloog_domain_free(loop->unsimplified); cloog_block_free(loop->block) ; if (loop->inner != NULL) cloog_loop_free(loop->inner) ; cloog_stride_free(loop->stride); free(loop) ; loop = next ; } } /** * cloog_loop_free_parts function: * This function frees the allocated memory for some parts of a CloogLoop * structure (loop), each other argument is a boolean having to be set to 1 if * we want to free the corresponding part, 0 otherwise. This function applies * the same freeing policy to its inner ans next loops recursively. * - July 3rd 2003: first version. * - June 22nd 2005: Adaptation for GMP. */ void cloog_loop_free_parts(loop, domain, block, inner, next) CloogLoop * loop ; int domain, block, inner, next ; { CloogLoop * follow ; while (loop != NULL) { cloog_loop_leak_down(loop->state); follow = loop->next ; if (domain) cloog_domain_free(loop->domain) ; if (block) cloog_block_free(loop->block) ; if ((inner) && (loop->inner != NULL)) cloog_loop_free_parts(loop->inner,domain,block,inner,1) ; cloog_stride_free(loop->stride); free(loop) ; if (next) loop = follow ; else loop = NULL ; } } /****************************************************************************** * Reading functions * ******************************************************************************/ /** * Construct a CloogLoop structure from a given iteration domain * and statement number. */ CloogLoop *cloog_loop_from_domain(CloogState *state, CloogDomain *domain, int number) { int nb_iterators; CloogLoop * loop ; CloogStatement * statement ; /* Memory allocation and information reading for the first domain: */ loop = cloog_loop_malloc(state); /* domain. */ loop->domain = domain; if (loop->domain != NULL) nb_iterators = cloog_domain_dimension(loop->domain); else nb_iterators = 0 ; /* included statement block. */ statement = cloog_statement_alloc(state, number + 1); loop->block = cloog_block_alloc(statement, 0, NULL, nb_iterators); return loop ; } /** * cloog_loop_read function: * This function reads loop data from a file (foo, possibly stdin) and * returns a pointer to a CloogLoop structure containing the read information. * This function can be used only for input file reading, when one loop is * associated with one statement. * - number is the statement block number carried by the loop (-1 if none). * - nb_parameters is the number of parameters. ** * - September 9th 2002: first version. * - April 16th 2005: adaptation to new CloogStatement struct (with number). * - June 11th 2005: adaptation to new CloogBlock structure. * - June 22nd 2005: Adaptation for GMP. */ CloogLoop *cloog_loop_read(CloogState *state, FILE *foo, int number, int nb_parameters) { int op1, op2, op3; char s[MAX_STRING]; CloogDomain *domain; domain = cloog_domain_union_read(state, foo, nb_parameters); /* To read that stupid "0 0 0" line. */ while (fgets(s,MAX_STRING,foo) == 0) ; while ((*s=='#' || *s=='\n') || (sscanf(s," %d %d %d",&op1,&op2,&op3)<3)) fgets(s,MAX_STRING,foo) ; return cloog_loop_from_domain(state, domain, number); } /****************************************************************************** * Processing functions * ******************************************************************************/ /** * cloog_loop_malloc function: * This function allocates the memory space for a CloogLoop structure and * sets its fields with default values. Then it returns a pointer to the * allocated space. * - November 21th 2005: first version. */ CloogLoop *cloog_loop_malloc(CloogState *state) { CloogLoop * loop ; /* Memory allocation for the CloogLoop structure. */ loop = (CloogLoop *)malloc(sizeof(CloogLoop)) ; if (loop == NULL) cloog_die("memory overflow.\n"); cloog_loop_leak_up(state); /* We set the various fields with default values. */ loop->state = state; loop->domain = NULL ; loop->unsimplified = NULL; loop->block = NULL ; loop->usr = NULL; loop->inner = NULL ; loop->next = NULL ; loop->otl = 0; loop->stride = NULL; return loop ; } /** * cloog_loop_alloc function: * This function allocates the memory space for a CloogLoop structure and * sets its fields with those given as input. Then it returns a pointer to the * allocated space. * - October 27th 2001: first version. * - June 22nd 2005: Adaptation for GMP. * - November 21th 2005: use of cloog_loop_malloc. */ CloogLoop *cloog_loop_alloc(CloogState *state, CloogDomain *domain, int otl, CloogStride *stride, CloogBlock *block, CloogLoop *inner, CloogLoop *next) { CloogLoop * loop ; loop = cloog_loop_malloc(state); loop->domain = domain ; loop->block = block ; loop->inner = inner ; loop->next = next ; loop->otl = otl; loop->stride = cloog_stride_copy(stride); return(loop) ; } /** * cloog_loop_add function: * This function adds a CloogLoop structure (loop) at a given place (now) of a * NULL terminated list of CloogLoop structures. The beginning of this list * is (start). This function updates (now) to (loop), and updates (start) if the * added element is the first one -that is when (start) is NULL-. * - October 28th 2001: first version. */ void cloog_loop_add(CloogLoop ** start, CloogLoop ** now, CloogLoop * loop) { if (*start == NULL) { *start = loop ; *now = *start ; } else { (*now)->next = loop ; *now = (*now)->next ; } } /** * cloog_loop_add function: * This function adds a CloogLoop structure (loop) at a given place (now) of a * NULL terminated list of CloogLoop structures. The beginning of this list * is (start). This function updates (now) to the end of the loop list (loop), * and updates (start) if the added element is the first one -that is when * (start) is NULL-. * - September 9th 2005: first version. */ void cloog_loop_add_list(CloogLoop ** start, CloogLoop ** now, CloogLoop * loop) { if (*start == NULL) { *start = loop ; *now = *start ; } else { (*now)->next = loop ; *now = (*now)->next ; } while ((*now)->next != NULL) *now = (*now)->next ; } /** * cloog_loop_copy function: * This function returns a copy of the CloogLoop structure given as input. In * fact, there is just new allocations for the CloogLoop structures, but their * contents are the same. * - October 28th 2001: first version. * - July 3rd->11th 2003: memory leaks hunt and correction. */ CloogLoop * cloog_loop_copy(CloogLoop * source) { CloogLoop * loop ; CloogBlock * block ; CloogDomain * domain ; loop = NULL ; if (source != NULL) { domain = cloog_domain_copy(source->domain) ; block = cloog_block_copy(source->block) ; loop = cloog_loop_alloc(source->state, domain, source->otl, source->stride, block, NULL, NULL); loop->usr = source->usr; loop->inner = cloog_loop_copy(source->inner) ; loop->next = cloog_loop_copy(source->next) ; } return(loop) ; } /** * cloog_loop_add_disjoint function: * This function adds some CloogLoop structures at a given place (now) of a * NULL terminated list of CloogLoop structures. The beginning of this list * is (start). (loop) can be an union of polyhedra, this function separates the * union into a list of *disjoint* polyhedra then adds the list. This function * updates (now) to the end of the list and updates (start) if first added * element is the first of the principal list -that is when (start) is NULL-. * (loop) can be freed by this function, basically when its domain is actually * a union of polyhedra, but don't worry, all the useful data are now stored * inside the list (start). We do not use PolyLib's Domain_Disjoint function, * since the number of union components is often higher (thus code size too). * - October 28th 2001: first version. * - November 14th 2001: bug correction (this one was hard to find !). * - July 3rd->11th 2003: memory leaks hunt and correction. * - June 22nd 2005: Adaptation for GMP. * - October 27th 2005: (debug) included blocks were not copied for new loops. */ void cloog_loop_add_disjoint(start, now, loop) CloogLoop ** start, ** now, * loop ; { CloogLoop * sep, * inner ; CloogDomain *domain, *seen, *temp, *rest; CloogBlock * block ; if (cloog_domain_isconvex(loop->domain)) cloog_loop_add(start,now,loop) ; else { domain = cloog_domain_simplify_union(loop->domain); loop->domain = NULL ; /* We separate the first element of the rest of the union. */ domain = cloog_domain_cut_first(domain, &rest); /* This first element is the first of the list of disjoint polyhedra. */ sep = cloog_loop_alloc(loop->state, domain, 0, NULL, loop->block, loop->inner, NULL); cloog_loop_add(start,now,sep) ; seen = cloog_domain_copy(domain); while (!cloog_domain_isempty(domain = rest)) { temp = cloog_domain_cut_first(domain, &rest); domain = cloog_domain_difference(temp, seen); cloog_domain_free(temp); if (cloog_domain_isempty(domain)) { cloog_domain_free(domain); continue; } /* Each new loop will have its own life, for instance we can free its * inner loop and included block. Then each one must have its own copy * of both 'inner' and 'block'. */ inner = cloog_loop_copy(loop->inner) ; block = cloog_block_copy(loop->block) ; sep = cloog_loop_alloc(loop->state, cloog_domain_copy(domain), 0, NULL, block, inner, NULL); /* domain can be an union too. If so: recursion. */ if (cloog_domain_isconvex(domain)) cloog_loop_add(start,now,sep) ; else cloog_loop_add_disjoint(start,now,sep) ; if (cloog_domain_isempty(rest)) { cloog_domain_free(domain); break; } seen = cloog_domain_union(seen, domain); } cloog_domain_free(rest); cloog_domain_free(seen); cloog_loop_free_parts(loop,0,0,0,0) ; } } /** * cloog_loop_disjoint function: * This function returns a list of loops such that each loop with non-convex * domain in the input list (loop) is separated into several loops where the * domains are the components of the union of *disjoint* polyhedra equivalent * to the original non-convex domain. See cloog_loop_add_disjoint comments * for more details. * - September 16th 2005: first version. */ CloogLoop * cloog_loop_disjoint(CloogLoop * loop) { CloogLoop *res=NULL, * now=NULL, * next ; /* Because this is often the case, don't waste time ! */ if (loop && !loop->next && cloog_domain_isconvex(loop->domain)) return loop ; while (loop != NULL) { next = loop->next ; loop->next = NULL ; cloog_loop_add_disjoint(&res,&now,loop) ; loop = next ; } return res ; } /** * cloog_loop_restrict function: * This function returns the (loop) in the context of (context): it makes the * intersection between the (loop) domain and the (context), then it returns * a pointer to a new loop, with this intersection as domain. ** * - October 27th 2001: first version. * - June 15th 2005: a memory leak fixed (domain was not freed when empty). * - June 22nd 2005: Adaptation for GMP. */ CloogLoop *cloog_loop_restrict(CloogLoop *loop, CloogDomain *context) { int new_dimension ; CloogDomain * domain, * extended_context, * new_domain ; CloogLoop * new_loop ; domain = loop->domain ; if (cloog_domain_dimension(domain) > cloog_domain_dimension(context)) { new_dimension = cloog_domain_dimension(domain); extended_context = cloog_domain_extend(context, new_dimension); new_domain = cloog_domain_intersection(extended_context,loop->domain) ; cloog_domain_free(extended_context) ; } else new_domain = cloog_domain_intersection(context,loop->domain) ; if (cloog_domain_isempty(new_domain)) { cloog_domain_free(new_domain) ; return(NULL) ; } else { new_loop = cloog_loop_alloc(loop->state, new_domain, 0, NULL, loop->block, loop->inner, NULL); return(new_loop) ; } } /** * Call cloog_loop_restrict on each loop in the list "loop" and return * the concatenated result. */ CloogLoop *cloog_loop_restrict_all(CloogLoop *loop, CloogDomain *context) { CloogLoop *next; CloogLoop *res = NULL; CloogLoop **res_next = &res; for (; loop; loop = next) { next = loop->next; *res_next = cloog_loop_restrict(loop, context); if (*res_next) { res_next = &(*res_next)->next; cloog_loop_free_parts(loop, 1, 0, 0, 0); } else { loop->next = NULL; cloog_loop_free(loop); } } return res; } /** * Restrict the domains of the inner loops of each loop l in the given * list of loops to the domain of the loop l. If the domains of all * inner loops of a given loop l turn out to be empty, then remove l * from the list. */ CloogLoop *cloog_loop_restrict_inner(CloogLoop *loop) { CloogLoop *next; CloogLoop *res; CloogLoop **res_next = &res; for (; loop; loop = next) { next = loop->next; loop->inner = cloog_loop_restrict_all(loop->inner, loop->domain); if (loop->inner) { *res_next = loop; res_next = &(*res_next)->next; } else { loop->next = NULL; cloog_loop_free(loop); } } *res_next = NULL; return res; } /** * cloog_loop_project function: * This function returns the projection of (loop) on the (level) first * dimensions (outer loops). It makes the projection of the (loop) domain, * then it returns a pointer to a new loop, with this projection as domain. ** * - October 27th 2001: first version. * - July 3rd->11th 2003: memory leaks hunt and correction. * - June 22nd 2005: Adaptation for GMP. */ CloogLoop * cloog_loop_project(CloogLoop * loop, int level) { CloogDomain * new_domain ; CloogLoop * new_loop, * copy ; copy = cloog_loop_alloc(loop->state, loop->domain, loop->otl, loop->stride, loop->block, loop->inner, NULL); if (cloog_domain_dimension(loop->domain) == level) new_domain = cloog_domain_copy(loop->domain) ; else new_domain = cloog_domain_project(loop->domain, level); new_loop = cloog_loop_alloc(loop->state, new_domain, 0, NULL, NULL, copy, NULL); return(new_loop) ; } /** * Call cloog_loop_project on each loop in the list "loop" and return * the concatenated result. */ CloogLoop *cloog_loop_project_all(CloogLoop *loop, int level) { CloogLoop *next; CloogLoop *res = NULL; CloogLoop **res_next = &res; for (; loop; loop = next) { next = loop->next; *res_next = cloog_loop_project(loop, level); res_next = &(*res_next)->next; cloog_loop_free_parts(loop, 0, 0, 0, 0); } return res; } /** * cloog_loop_concat function: * This function returns a pointer to the concatenation of the * CloogLoop lists given as input. * - October 28th 2001: first version. */ CloogLoop * cloog_loop_concat(CloogLoop * a, CloogLoop * b) { CloogLoop * loop, * temp ; loop = a ; temp = loop ; if (loop != NULL) { while (temp->next != NULL) temp = temp->next ; temp->next = b ; } else loop = b ; return(loop) ; } /** * cloog_loop_combine: * Combine consecutive loops with identical domains into * a single loop with the concatenation of their inner loops * as inner loop. */ CloogLoop *cloog_loop_combine(CloogLoop *loop) { CloogLoop *first, *second; for (first = loop; first; first = first->next) { while (first->next) { if (!cloog_domain_lazy_equal(first->domain, first->next->domain)) break; second = first->next; first->inner = cloog_loop_concat(first->inner, second->inner); first->next = second->next; cloog_loop_free_parts(second, 1, 0, 0, 0); } } return loop; } /** * Remove loops from list that have an empty domain. */ CloogLoop *cloog_loop_remove_empty_domain_loops(CloogLoop *loop) { CloogLoop *l, *res, *next, **res_next; res = NULL; res_next = &res; for (l = loop; l; l = next) { next = l->next; if (cloog_domain_isempty(l->domain)) cloog_loop_free_parts(l, 1, 1, 1, 0); else { *res_next = l; res_next = &(*res_next)->next; } } *res_next = NULL; return res; } CloogLoop *cloog_loop_decompose_inner(CloogLoop *loop, int level, int scalar, int *scaldims, int nb_scattdims); /* For each loop with only one inner loop, replace the domain * of the loop with the projection of the domain of the inner * loop. To increase the number of loops with a single inner * we first decompose the inner loops into strongly connected * components. */ CloogLoop *cloog_loop_specialize(CloogLoop *loop, int level, int scalar, int *scaldims, int nb_scattdims) { int dim; CloogDomain *domain; CloogLoop *l; loop = cloog_loop_decompose_inner(loop, level, scalar, scaldims, nb_scattdims); for (l = loop; l; l = l->next) { if (l->inner->next) continue; if (!cloog_domain_isconvex(l->inner->domain)) continue; dim = cloog_domain_dimension(l->domain); domain = cloog_domain_project(l->inner->domain, dim); if (cloog_domain_isconvex(domain)) { cloog_domain_free(l->domain); l->domain = domain; } else { cloog_domain_free(domain); } } return cloog_loop_remove_empty_domain_loops(loop); } /** * cloog_loop_separate function: * This function implements the Quillere algorithm for separation of multiple * loops: for a given set of polyhedra (loop), it computes a set of disjoint * polyhedra such that the unions of these sets are equal, and returns this set. * - October 28th 2001: first version. * - November 14th 2001: elimination of some unused blocks. * - August 13th 2002: (debug) in the case of union of polyhedra for one * loop, redundant constraints are fired. * - July 3rd->11th 2003: memory leaks hunt and correction. * - June 22nd 2005: Adaptation for GMP. * - October 16th 2005: Removal of the non-shared constraint elimination when * there is only one loop in the list (seems to work * without now, DomainSimplify may have been improved). * The problem was visible with test/iftest2.cloog. */ CloogLoop * cloog_loop_separate(CloogLoop * loop) { int lazy_equal=0, disjoint = 0; CloogLoop * new_loop, * new_inner, * res, * now, * temp, * Q, * inner, * old /*, * previous, * next*/ ; CloogDomain *UQ, *domain; if (loop == NULL) return NULL ; loop = cloog_loop_combine(loop); if (loop->next == NULL) return cloog_loop_disjoint(loop) ; UQ = cloog_domain_copy(loop->domain) ; domain = cloog_domain_copy(loop->domain) ; res = cloog_loop_alloc(loop->state, domain, 0, NULL, loop->block, loop->inner, NULL); old = loop ; while((loop = loop->next) != NULL) { temp = NULL ; /* For all Q, add Q-loop associated with the blocks of Q alone, * and Q inter loop associated with the blocks of Q and loop. */ for (Q = res; Q; Q = Q->next) { /* Add (Q inter loop). */ if ((disjoint = cloog_domain_lazy_disjoint(Q->domain,loop->domain))) domain = NULL ; else { if ((lazy_equal = cloog_domain_lazy_equal(Q->domain,loop->domain))) domain = cloog_domain_copy(Q->domain) ; else domain = cloog_domain_intersection(Q->domain,loop->domain) ; if (!cloog_domain_isempty(domain)) { new_inner = cloog_loop_concat(cloog_loop_copy(Q->inner), cloog_loop_copy(loop->inner)) ; new_loop = cloog_loop_alloc(loop->state, domain, 0, NULL, NULL, new_inner, NULL); cloog_loop_add_disjoint(&temp,&now,new_loop) ; } else { disjoint = 1; cloog_domain_free(domain); } } /* Add (Q - loop). */ if (disjoint) domain = cloog_domain_copy(Q->domain) ; else { if (lazy_equal) domain = cloog_domain_empty(Q->domain); else domain = cloog_domain_difference(Q->domain,loop->domain) ; } if (!cloog_domain_isempty(domain)) { new_loop = cloog_loop_alloc(loop->state, domain, 0, NULL, NULL, Q->inner, NULL); cloog_loop_add_disjoint(&temp,&now,new_loop) ; } else { cloog_domain_free(domain) ; /* If Q->inner is no more useful, we can free it. */ inner = Q->inner ; Q->inner = NULL ; cloog_loop_free(inner) ; } } /* Add loop-UQ associated with the blocks of loop alone.*/ if (cloog_domain_lazy_disjoint(loop->domain,UQ)) domain = cloog_domain_copy(loop->domain) ; else { if (cloog_domain_lazy_equal(loop->domain,UQ)) domain = cloog_domain_empty(UQ); else domain = cloog_domain_difference(loop->domain,UQ) ; } if (!cloog_domain_isempty(domain)) { new_loop = cloog_loop_alloc(loop->state, domain, 0, NULL, NULL, loop->inner, NULL); cloog_loop_add_disjoint(&temp,&now,new_loop) ; } else { cloog_domain_free(domain) ; /* If loop->inner is no more useful, we can free it. */ cloog_loop_free(loop->inner) ; } loop->inner = NULL ; if (loop->next != NULL) UQ = cloog_domain_union(UQ, cloog_domain_copy(loop->domain)); else cloog_domain_free(UQ); cloog_loop_free_parts(res,1,0,0,1) ; res = temp ; } cloog_loop_free_parts(old,1,0,0,1) ; return(res) ; } static CloogDomain *bounding_domain(CloogDomain *dom, CloogOptions *options) { if (options->sh) return cloog_domain_simple_convex(dom); else return cloog_domain_convex(dom); } /** * cloog_loop_merge function: * This function is the 'soft' version of loop_separate if we are looking for * a code much simpler (and less efficicient). This function returns the new * CloogLoop list. * - October 29th 2001: first version. * - July 3rd->11th 2003: memory leaks hunt and correction. * - June 22nd 2005: Adaptation for GMP. */ CloogLoop *cloog_loop_merge(CloogLoop *loop, int level, CloogOptions *options) { CloogLoop *res, *new_inner, *old; CloogDomain *new_domain, *temp; if (loop == NULL) return loop; if (loop->next == NULL && cloog_domain_isconvex(loop->domain)) return loop; old = loop; temp = loop->domain; loop->domain = NULL; new_inner = loop->inner; for (loop = loop->next; loop; loop = loop->next) { temp = cloog_domain_union(temp, loop->domain); loop->domain = NULL; new_inner = cloog_loop_concat(new_inner, loop->inner); } new_domain = bounding_domain(temp, options); if (level > 0 && !cloog_domain_is_bounded(new_domain, level) && cloog_domain_is_bounded(temp, level)) { CloogDomain *splitter, *t2; cloog_domain_free(new_domain); splitter = cloog_domain_bound_splitter(temp, level); res = NULL; while (!cloog_domain_isconvex(splitter)) { CloogDomain *first, *rest; first = cloog_domain_cut_first(splitter, &rest); splitter = rest; t2 = cloog_domain_intersection(first, temp); cloog_domain_free(first); new_domain = bounding_domain(t2, options); cloog_domain_free(t2); if (cloog_domain_isempty(new_domain)) { cloog_domain_free(new_domain); continue; } res = cloog_loop_alloc(old->state, new_domain, 0, NULL, NULL, cloog_loop_copy(new_inner), res); } t2 = cloog_domain_intersection(splitter, temp); cloog_domain_free(splitter); new_domain = bounding_domain(t2, options); cloog_domain_free(t2); if (cloog_domain_isempty(new_domain)) { cloog_domain_free(new_domain); cloog_loop_free(new_inner); } else res = cloog_loop_alloc(old->state, new_domain, 0, NULL, NULL, new_inner, res); } else { res = cloog_loop_alloc(old->state, new_domain, 0, NULL, NULL, new_inner, NULL); } cloog_domain_free(temp); cloog_loop_free_parts(old, 0, 0, 0, 1); return res; } static int cloog_loop_count(CloogLoop *loop) { int nb_loops; for (nb_loops = 0; loop; loop = loop->next) nb_loops++; return nb_loops; } /** * cloog_loop_sort function: * Adaptation from LoopGen 0.4 by F. Quillere. This function sorts a list of * parameterized disjoint polyhedra, in order to not have lexicographic order * violation (see Quillere paper). * - September 16th 2005: inclusion of cloog_loop_number (October 29th 2001). */ CloogLoop *cloog_loop_sort(CloogLoop *loop, int level) { CloogLoop *res, *now, **loop_array; CloogDomain **doms; int i, nb_loops=0, * permut ; /* There is no need to sort the parameter domains. */ if (!level) return loop; /* We will need to know how many loops are in the list. */ nb_loops = cloog_loop_count(loop); /* If there is only one loop, it's the end. */ if (nb_loops == 1) return(loop) ; /* We have to allocate memory for some useful components: * - loop_array: the loop array, * - doms: the array of domains to sort, * - permut: will give us a possible sort (maybe not the only one). */ loop_array = (CloogLoop **)malloc(nb_loops*sizeof(CloogLoop *)) ; doms = (CloogDomain **)malloc(nb_loops*sizeof(CloogDomain *)); permut = (int *)malloc(nb_loops*sizeof(int)) ; /* We fill up the loop and domain arrays. */ for (i=0;inext) { loop_array[i] = loop ; doms[i] = loop_array[i]->domain; } /* cloog_domain_sort will fill up permut. */ cloog_domain_sort(doms, nb_loops, level, permut); /* With permut and loop_array we build the sorted list. */ res = NULL ; for (i=0;inext = NULL ; cloog_loop_add(&res,&now,loop_array[permut[i]-1]) ; } free(permut) ; free(doms); free(loop_array) ; return res; } /** * cloog_loop_nest function: * This function changes the loop list in such a way that we have no more than * one dimension added by level. It returns an equivalent loop list with * this property. * - October 29th 2001: first version. * - July 3rd->11th 2003: memory leaks hunt and correction. * - June 22nd 2005: Adaptation for GMP. * - November 21th 2005: (debug) now OK when cloog_loop_restrict returns NULL. */ CloogLoop *cloog_loop_nest(CloogLoop *loop, CloogDomain *context, int level) { int l ; CloogLoop * p, * temp, * res, * now, * next ; CloogDomain * new_domain ; loop = cloog_loop_disjoint(loop); res = NULL ; /* Each domain is changed by its intersection with the context. */ while (loop != NULL) { p = cloog_loop_restrict(loop, context); next = loop->next ; if (p != NULL) { cloog_loop_free_parts(loop,1,0,0,0) ; temp = cloog_loop_alloc(p->state, p->domain, 0, NULL, p->block, p->inner, NULL); /* If the intersection dimension is too big, we make projections smaller * and smaller, and each projection includes the preceding projection * (thus, in the target list, dimensions are added one by one). */ if (cloog_domain_dimension(p->domain) >= level) for (l = cloog_domain_dimension(p->domain); l >= level; l--) { new_domain = cloog_domain_project(p->domain, l); temp = cloog_loop_alloc(p->state, new_domain, 0, NULL, NULL, temp, NULL); } /* p is no more useful (but its content yes !). */ cloog_loop_free_parts(p,0,0,0,0) ; cloog_loop_add(&res,&now,temp) ; } else cloog_loop_free_parts(loop,1,1,1,0) ; loop = next ; } return(res) ; } /* Check if the domains of the inner loops impose a stride constraint * on the given level. * The core of the search is implemented in cloog_domain_list_stride. * Here, we simply construct a list of domains to pass to this function * and if a stride is found, we adjust the lower bounds by calling * cloog_domain_stride_lower_bound. */ static int cloog_loop_variable_offset_stride(CloogLoop *loop, int level) { CloogDomainList *list = NULL; CloogLoop *inner; CloogStride *stride; for (inner = loop->inner; inner; inner = inner->next) { CloogDomainList *entry = ALLOC(CloogDomainList); entry->domain = cloog_domain_copy(inner->domain); entry->next = list; list = entry; } stride = cloog_domain_list_stride(list, level); cloog_domain_list_free(list); if (!stride) return 0; loop->stride = stride; loop->domain = cloog_domain_stride_lower_bound(loop->domain, level, stride); return 1; } /** * cloog_loop_stride function: * This function will find the stride of a loop for the iterator at the column * number 'level' in the constraint matrix. It will update the lower bound of * the iterator accordingly. Basically, the function will try to find in the * inner loops a common condition on this iterator for the inner loop iterators * to be integral. For instance, let us consider a loop with the iterator i, * the iteration domain -4<=i<=n, and its two inner loops with the iterator j. * The first inner loop has the constraint 3j=i, and the second one has the * constraint 6j=i. Then the common constraint on i for j to be integral is * i%3=0, the stride for i is 3. Lastly, we have to find the new lower bound * for i: the first value satisfying the common constraint: -3. At the end, the * iteration domain for i is -3<=i<=n and the stride for i is 3. * * The algorithm implemented in this function only allows for strides * on loops with a lower bound that has a constant remainder on division * by the stride. Before initiating this procedure, we first check * if we can find a stride with a lower bound with a variable offset in * cloog_loop_variable_offset_stride. * * - loop is the loop including the iteration domain of the considered iterator, * - level is the column number of the iterator in the matrix of contraints. ** * - June 29th 2003: first version (work in progress since June 26th 2003). * - July 14th 2003: simpler version. * - June 22nd 2005: Adaptation for GMP (from S. Verdoolaege's 0.12.1 version). */ void cloog_loop_stride(CloogLoop * loop, int level) { int first_search ; cloog_int_t stride, ref_offset, offset, potential; CloogLoop * inner ; if (!cloog_domain_can_stride(loop->domain, level)) return; if (cloog_loop_variable_offset_stride(loop, level)) return; cloog_int_init(stride); cloog_int_init(ref_offset); cloog_int_init(offset); cloog_int_init(potential); cloog_int_set_si(ref_offset, 0); cloog_int_set_si(offset, 0); /* Default stride. */ cloog_int_set_si(stride, 1); first_search = 1 ; inner = loop->inner ; while (inner != NULL) { /* If the minimun stride has not been found yet, find the stride. */ if ((first_search) || (!cloog_int_is_one(stride))) { cloog_domain_stride(inner->domain, level, &potential, &offset); if (!cloog_int_is_one(potential) && (!first_search)) { /* Offsets must be the same for common stride. */ cloog_int_gcd(stride, potential, stride); if (!cloog_int_is_zero(stride)) { cloog_int_fdiv_r(offset, offset, stride); cloog_int_fdiv_r(ref_offset, ref_offset, stride); } if (cloog_int_ne(offset,ref_offset)) cloog_int_set_si(stride, 1); } else { cloog_int_set(stride, potential); cloog_int_set(ref_offset, offset); } first_search = 0 ; } inner = inner->next ; } if (cloog_int_is_zero(stride)) cloog_int_set_si(stride, 1); /* Update the values if necessary. */ if (!cloog_int_is_one(stride)) { /* Update the stride value. */ if (!cloog_int_is_zero(offset)) cloog_int_sub(offset, stride, offset); loop->stride = cloog_stride_alloc(stride, offset); loop->domain = cloog_domain_stride_lower_bound(loop->domain, level, loop->stride); } cloog_int_clear(stride); cloog_int_clear(ref_offset); cloog_int_clear(offset); cloog_int_clear(potential); } void cloog_loop_otl(CloogLoop *loop, int level) { if (cloog_domain_is_otl(loop->domain, level)) loop->otl = 1; } /** * cloog_loop_stop function: * This function implements the 'stop' option : each domain of each loop * in the list 'loop' is replaced by 'context'. 'context' should be the * domain of the outer loop. By using this method, there are no more dimensions * to scan and the simplification step will automaticaly remove the domains * since they are the same as the corresponding contexts. The effect of this * function is to stop the code generation at the level this function is called, * the resulting code do not consider the next dimensions. * - January 11th 2005: first version. */ CloogLoop * cloog_loop_stop(CloogLoop * loop, CloogDomain * context) { if (loop == NULL) return NULL ; else { cloog_domain_free(loop->domain) ; loop->domain = cloog_domain_copy(context) ; loop->next = cloog_loop_stop(loop->next, context) ; } return loop ; } static int level_is_constant(int level, int scalar, int *scaldims, int nb_scattdims) { return level && (level+scalar <= nb_scattdims) && (scaldims[level+scalar-1]); } /** * Compare the constant dimensions of loops 'l1' and 'l2' starting at 'scalar' * and return -1 if the vector of constant dimensions of 'l1' is smaller * than that of 'l2', 0 if they are the same and +1 if that of 'l1' is * greater than that of 'l2'. * This function should be called on the innermost loop (the loop * containing a block). * \param l1 Loop to be compared with l2. * \param l2 Loop to be compared with l1. * \param level Current non-scalar dimension. * \param scaldims Boolean array saying whether a dimension is scalar or not. * \param nb_scattdims Size of the scaldims array. * \param scalar Current scalar dimension. * \return -1 if (l1 < l2), 0 if (l1 == l2) and +1 if (l1 > l2) */ int cloog_loop_constant_cmp(CloogLoop *l1, CloogLoop *l2, int level, int *scaldims, int nb_scattdims, int scalar) { CloogBlock *b1, *b2; b1 = l1->block; b2 = l2->block; while (level_is_constant(level, scalar, scaldims, nb_scattdims)) { int cmp = cloog_int_cmp(b1->scaldims[scalar], b2->scaldims[scalar]); if (cmp) return cmp; scalar++; } return 0; } /** * cloog_loop_scalar_gt function: * This function returns 1 if loop 'l1' is greater than loop 'l2' for the * scalar dimension vector that begins at dimension 'scalar', 0 otherwise. What * we want to know is whether a loop is scheduled before another one or not. * This function solves the problem when the considered dimension for scheduling * is a scalar dimension. Since there may be a succession of scalar dimensions, * this function will reason about the vector of scalar dimension that begins * at dimension 'level+scalar' and finish to the first non-scalar dimension. * \param l1 Loop to be compared with l2. * \param l2 Loop to be compared with l1. * \param level Current non-scalar dimension. * \param scaldims Boolean array saying whether a dimension is scalar or not. * \param nb_scattdims Size of the scaldims array. * \param scalar Current scalar dimension. * \return 1 if (l1 > l2), 0 otherwise. ** * - September 9th 2005: first version. * - October 15nd 2007: now "greater than" instead of "greater or equal". */ int cloog_loop_scalar_gt(l1, l2, level, scaldims, nb_scattdims, scalar) CloogLoop * l1, * l2 ; int level, * scaldims, nb_scattdims, scalar ; { return cloog_loop_constant_cmp(l1, l2, level, scaldims, nb_scattdims, scalar) > 0; } /** * cloog_loop_scalar_eq function: * This function returns 1 if loop 'l1' is equal to loop 'l2' for the scalar * dimension vector that begins at dimension 'scalar', 0 otherwise. What we want * to know is whether two loops are scheduled for the same time or not. * This function solves the problem when the considered dimension for scheduling * is a scalar dimension. Since there may be a succession of scalar dimensions, * this function will reason about the vector of scalar dimension that begins * at dimension 'level+scalar' and finish to the first non-scalar dimension. * - l1 and l2 are the loops to compare, * - level is the current non-scalar dimension, * - scaldims is the boolean array saying whether a dimension is scalar or not, * - nb_scattdims is the size of the scaldims array, * - scalar is the current scalar dimension. ** * - September 9th 2005 : first version. */ int cloog_loop_scalar_eq(l1, l2, level, scaldims, nb_scattdims, scalar) CloogLoop * l1, * l2 ; int level, * scaldims, nb_scattdims, scalar ; { return cloog_loop_constant_cmp(l1, l2, level, scaldims, nb_scattdims, scalar) == 0; } /** * cloog_loop_scalar_sort function: * This function sorts a linked list of loops (loop) with respect to the * scalar dimension vector that begins at dimension 'scalar'. Since there may * be a succession of scalar dimensions, this function will reason about the * vector of scalar dimension that begins at dimension 'level+scalar' and * finish to the first non-scalar dimension. * \param loop Loop list to sort. * \param level Current non-scalar dimension. * \param scaldims Boolean array saying whether a dimension is scalar or not. * \param nb_scattdims Size of the scaldims array. * \param scalar Current scalar dimension. * \return A pointer to the sorted list. ** * - July 2nd 2005: first developments. * - September 2nd 2005: first version. * - October 15nd 2007: complete rewrite to remove bugs, now a bubble sort. */ CloogLoop * cloog_loop_scalar_sort(loop, level, scaldims, nb_scattdims, scalar) CloogLoop * loop ; int level, * scaldims, nb_scattdims, scalar ; { int ok ; CloogLoop **current; do { ok = 1; for (current = &loop; (*current)->next; current = &(*current)->next) { CloogLoop *next = (*current)->next; if (cloog_loop_scalar_gt(*current,next,level,scaldims,nb_scattdims,scalar)) { ok = 0; (*current)->next = next->next; next->next = *current; *current = next; } } } while (!ok); return loop ; } /** * cloog_loop_generate_backtrack function: * adaptation from LoopGen 0.4 by F. Quillere. This function implements the * backtrack of the Quillere et al. algorithm (see the Quillere paper). * It eliminates unused iterations of the current level for the new one. See the * example called linearity-1-1 example with and without this part for an idea. * - October 26th 2001: first version in cloog_loop_generate_general. * - July 31th 2002: (debug) no more parasite loops (REALLY hard !). * - October 30th 2005: extraction from cloog_loop_generate_general. */ CloogLoop *cloog_loop_generate_backtrack(CloogLoop *loop, int level, CloogOptions *options) { CloogDomain * domain ; CloogLoop * now, * now2, * next, * next2, * end, * temp, * l, * inner, * new_loop ; temp = loop ; loop = NULL ; while (temp != NULL) { l = NULL ; inner = temp->inner ; while (inner != NULL) { next = inner->next ; /* This 'if' and its first part is the debug of july 31th 2002. */ if (inner->block != NULL) { end = cloog_loop_alloc(temp->state, inner->domain, 0, NULL, inner->block, NULL, NULL); domain = cloog_domain_copy(temp->domain) ; new_loop = cloog_loop_alloc(temp->state, domain, 0, NULL, NULL, end, NULL); } else new_loop = cloog_loop_project(inner, level); cloog_loop_free_parts(inner,0,0,0,0) ; cloog_loop_add(&l,&now2,new_loop) ; inner = next ; } temp->inner = NULL ; if (l != NULL) { l = cloog_loop_separate(l) ; l = cloog_loop_sort(l, level); while (l != NULL) { l->stride = cloog_stride_copy(l->stride); cloog_loop_add(&loop,&now,l) ; l = l->next ; } } next2 = temp->next ; cloog_loop_free_parts(temp,1,0,0,0) ; temp = next2 ; } return loop ; } /** * Return 1 if we need to continue recursing to the specified level. */ int cloog_loop_more(CloogLoop *loop, int level, int scalar, int nb_scattdims) { return level + scalar <= nb_scattdims || cloog_domain_dimension(loop->domain) >= level; } /** * Return 1 if the domains of all loops in the given linked list * have a fixed value at the given level. * In principle, there would be no need to check that the fixed value is * the same for each of these loops because this function is only * called on a component. However, not all backends perform a proper * decomposition into components. */ int cloog_loop_is_constant(CloogLoop *loop, int level) { cloog_int_t c1, c2; int r = 1; cloog_int_init(c1); cloog_int_init(c2); if (!cloog_domain_lazy_isconstant(loop->domain, level - 1, &c1)) r = 0; for (loop = loop->next; r && loop; loop = loop->next) { if (!cloog_domain_lazy_isconstant(loop->domain, level - 1, &c2)) r = 0; else if (cloog_int_ne(c1, c2)) r = 0; } cloog_int_clear(c1); cloog_int_clear(c2); return r; } /** * Assuming all domains in the given linked list of loop * have a fixed values at level, return a single loop with * a domain corresponding to this fixed value and with as * list of inner loops the concatenation of all inner loops * in the original list. */ CloogLoop *cloog_loop_constant(CloogLoop *loop, int level) { CloogLoop *res, *inner, *tmp; CloogDomain *domain, *context, *t; if (!loop) return loop; inner = loop->inner; for (tmp = loop->next; tmp; tmp = tmp->next) inner = cloog_loop_concat(inner, tmp->inner); domain = cloog_domain_copy(loop->domain); domain = cloog_domain_simple_convex(t = domain); cloog_domain_free(t); context = cloog_domain_project(domain, level - 1); context = cloog_domain_extend(t = context, level); cloog_domain_free(t); domain = cloog_domain_simplify(t = domain, context); cloog_domain_free(t); cloog_domain_free(context); res = cloog_loop_alloc(loop->state, domain, 0, NULL, NULL, inner, NULL); cloog_loop_free_parts(loop, 1, 0, 0, 1); return res; } CloogLoop *cloog_loop_generate_restricted_or_stop(CloogLoop *loop, CloogDomain *context, int level, int scalar, int *scaldims, int nb_scattdims, CloogOptions *options); /** * cloog_loop_generate_general function: * Adaptation from LoopGen 0.4 by F. Quillere. This function implements the * Quillere algorithm for polyhedron scanning from step 3 to 5. * (see the Quillere paper). * - loop is the loop for which we have to generate a scanning code, * - level is the current non-scalar dimension, * - scalar is the current scalar dimension, * - scaldims is the boolean array saying whether a dimension is scalar or not, * - nb_scattdims is the size of the scaldims array, * - options are the general code generation options. ** * - October 26th 2001: first version. * - July 3rd->11th 2003: memory leaks hunt and correction. * - June 22nd 2005: Adaptation for GMP. * - September 2nd 2005: The function have been cutted out in two pieces: * cloog_loop_generate and this one, in order to handle * the scalar dimension case more efficiently with * cloog_loop_generate_scalar. * - November 15th 2005: (debug) the result of the cloog_loop_generate call may * be a list of polyhedra (especially if stop option is * used): cloog_loop_add_list instead of cloog_loop_add. */ CloogLoop *cloog_loop_generate_general(CloogLoop *loop, int level, int scalar, int *scaldims, int nb_scattdims, CloogOptions *options) { CloogLoop * res, * now, * temp, * l, * new_loop, * inner, * now2, * end, * next, * into ; CloogDomain * domain ; int separate = 0; /* 3. Separate all projections into disjoint polyhedra. */ if (level > 0 && cloog_loop_is_constant(loop, level)) res = cloog_loop_constant(loop, level); else if ((options->f > level+scalar) || (options->f < 0)) res = cloog_loop_merge(loop, level, options); else { res = cloog_loop_separate(loop); separate = 1; } /* 3b. -correction- sort the loops to determine their textual order. */ res = cloog_loop_sort(res, level); res = cloog_loop_restrict_inner(res); if (separate) res = cloog_loop_specialize(res, level, scalar, scaldims, nb_scattdims); /* 4. Recurse for each loop with the current domain as context. */ temp = res ; res = NULL ; if (!level || (level+scalar < options->l) || (options->l < 0)) while(temp != NULL) { if (level && options->strides) cloog_loop_stride(temp, level); if (level && options->otl) cloog_loop_otl(temp, level); inner = temp->inner ; domain = temp->domain ; into = NULL ; while (inner != NULL) { /* 4b. -ced- recurse for each sub-list of non terminal loops. */ if (cloog_loop_more(inner, level + 1, scalar, nb_scattdims)) { end = inner; while ((end->next != NULL) && cloog_loop_more(end->next, level + 1, scalar, nb_scattdims)) end = end->next ; next = end->next ; end->next = NULL ; l = cloog_loop_generate_restricted_or_stop(inner, domain, level + 1, scalar, scaldims, nb_scattdims, options); if (l != NULL) cloog_loop_add_list(&into,&now,l) ; inner = next ; } else { cloog_loop_add(&into,&now,inner) ; inner = inner->next ; } } next = temp->next ; temp->next = NULL ; temp->inner = into ; cloog_loop_add(&res,&now2,temp) ; temp = next ; } else while (temp != NULL) { next = temp->next ; l = cloog_loop_nest(temp->inner, temp->domain, level+1); new_loop = cloog_loop_alloc(temp->state, temp->domain, 0, NULL, NULL, l, NULL); temp->inner = NULL ; temp->next = NULL ; cloog_loop_free_parts(temp,0,0,0,0) ; cloog_loop_add(&res,&now,new_loop) ; temp = next ; } /* 5. eliminate unused iterations of the current level for the new one. See * the example called linearity-1-1 example with and without this part * for an idea. */ if (options->backtrack && level && ((level+scalar < options->l) || (options->l < 0)) && ((options->f <= level+scalar) && !(options->f < 0))) res = cloog_loop_generate_backtrack(res, level, options); /* Pray for my new paper to be accepted somewhere since the following stuff * is really amazing :-) ! * Far long later: The paper has been accepted to PACT 2004 :-))). But there * are still some bugs and I have no time to fix them. Thus now you have to * pray for me to get an academic position for that really amazing stuff :-) ! * Later again: OK, I get my academic position, but still I have not enough * time to fix and clean this part... Pray again :-) !!! */ /* res = cloog_loop_unisolate(res,level) ;*/ return(res) ; } CloogLoop *cloog_loop_generate_restricted(CloogLoop *loop, int level, int scalar, int *scaldims, int nb_scattdims, CloogOptions *options); /** * cloog_loop_generate_scalar function: * This function applies the simplified code generation scheme in the trivial * case of scalar dimensions. When dealing with scalar dimensions, there is * no need of costly polyhedral operations for separation or sorting: sorting * is a question of comparing scalar vectors and separation amounts to consider * only loops with the same scalar vector for the next step of the code * generation process. This function achieves the separation/sorting process * for the vector of scalar dimension that begins at dimension 'level+scalar' * and finish to the first non-scalar dimension. * - loop is the loop for which we have to generate a scanning code, * - level is the current non-scalar dimension, * - scalar is the current scalar dimension, * - scaldims is the boolean array saying whether a dimension is scalar or not, * - nb_scattdims is the size of the scaldims array, * - options are the general code generation options. ** * - September 2nd 2005: First version. */ CloogLoop *cloog_loop_generate_scalar(CloogLoop *loop, int level, int scalar, int *scaldims, int nb_scattdims, CloogOptions *options) { CloogLoop * res, * now, * temp, * l, * end, * next, * ref ; int scalar_new; /* We sort the loop list with respect to the current scalar vector. */ res = cloog_loop_scalar_sort(loop,level,scaldims,nb_scattdims,scalar) ; scalar_new = scalar + scaldims[level + scalar - 1]; temp = res ; res = NULL ; while (temp != NULL) { /* Then we will appy the general code generation process to each sub-list * of loops with the same scalar vector. */ end = temp ; ref = temp ; while((end->next != NULL) && cloog_loop_more(end->next, level, scalar_new, nb_scattdims) && cloog_loop_scalar_eq(ref,end->next,level,scaldims,nb_scattdims,scalar)) end = end->next ; next = end->next ; end->next = NULL ; /* For the next dimension, scalar value is updated by adding the scalar * vector size, which is stored at scaldims[level+scalar-1]. */ if (cloog_loop_more(temp, level, scalar_new, nb_scattdims)) { l = cloog_loop_generate_restricted(temp, level, scalar_new, scaldims, nb_scattdims, options); if (l != NULL) cloog_loop_add_list(&res, &now, l); } else cloog_loop_add(&res, &now, temp); temp = next ; } return res ; } /* Compare loop with the next loop based on their constant dimensions. * The result is < 0, == 0 or > 0 depending on whether the constant * dimensions of loop are lexicographically smaller, equal or greater * than those of loop->next. * If loop is the last in the list, then it is assumed to be smaller * than the "next" one. */ static int cloog_loop_next_scal_cmp(CloogLoop *loop) { int i; int nb_scaldims; if (!loop->next) return -1; nb_scaldims = loop->block->nb_scaldims; if (loop->next->block->nb_scaldims < nb_scaldims) nb_scaldims = loop->next->block->nb_scaldims; for (i = 0; i < nb_scaldims; ++i) { int cmp = cloog_int_cmp(loop->block->scaldims[i], loop->next->block->scaldims[i]); if (cmp) return cmp; } return loop->block->nb_scaldims - loop->next->block->nb_scaldims; } /* Check whether the globally constant dimensions of a and b * have the same value for all globally constant dimensions * that are situated before any (locally) non-constant dimension. */ static int cloog_loop_equal_prefix(CloogLoop *a, CloogLoop *b, int *scaldims, int nb_scattdims) { int i; int cst = 0; int dim = 0; for (i = 0; i < nb_scattdims; ++i) { if (!scaldims[i]) { dim++; continue; } if (!cloog_int_eq(a->block->scaldims[cst], b->block->scaldims[cst])) break; cst++; } for (i = i + 1; i < nb_scattdims; ++i) { if (scaldims[i]) continue; if (!cloog_domain_lazy_isconstant(a->domain, dim, NULL)) return 0; /* No need to check that dim is also constant in b and that the * constant values are equal. That will happen during the check * whether the two domains are equal. */ dim++; } return 1; } /* Try to block adjacent loops in the loop list "loop". * We only attempt blocking if the constant dimensions of the loops * in the least are (not necessarily strictly) increasing. * Then we look for a sublist such that the first (begin) has constant * dimensions strictly larger than the previous loop in the complete * list and such that the loop (end) after the last loop in the sublist * has constant dimensions strictly larger than the last loop in the sublist. * Furthermore, all loops in the sublist should have the same domain * (with globally constant dimensions removed) and the difference * (if any) in constant dimensions may only occur after all the * (locally) constant dimensions. * If we find such a sublist, then the blocks of all but the first * are merged into the block of the first. * * Note that this function can only be called before the global * blocklist has been created because it may otherwise modify and destroy * elements on that list. */ CloogLoop *cloog_loop_block(CloogLoop *loop, int *scaldims, int nb_scattdims) { CloogLoop *begin, *end, *l; int begin_after_previous; int end_after_previous; if (!loop->next) return loop; for (begin = loop; begin; begin = begin->next) { if (!begin->block || !begin->block->scaldims) return loop; if (cloog_loop_next_scal_cmp(begin) > 0) return loop; } begin_after_previous = 1; for (begin = loop; begin; begin = begin->next) { if (!begin_after_previous) { begin_after_previous = cloog_loop_next_scal_cmp(begin) < 0; continue; } end_after_previous = cloog_loop_next_scal_cmp(begin) < 0; for (end = begin->next; end; end = end->next) { if (!cloog_loop_equal_prefix(begin, end, scaldims, nb_scattdims)) break; if (!cloog_domain_lazy_equal(begin->domain, end->domain)) break; end_after_previous = cloog_loop_next_scal_cmp(end) < 0; } if (end != begin->next && end_after_previous) { for (l = begin->next; l != end; l = begin->next) { cloog_block_merge(begin->block, l->block); begin->next = l->next; cloog_loop_free_parts(l, 1, 0, 1, 0); } } begin_after_previous = cloog_loop_next_scal_cmp(begin) < 0; } return loop; } /** * Check whether for any fixed iteration of the outer loops, * there is an iteration of loop1 that is lexicographically greater * than an iteration of loop2. * Return 1 if there exists (or may exist) such a pair. * Return 0 if all iterations of loop1 are lexicographically smaller * than the iterations of loop2. * If no iteration is lexicographically greater, but if there are * iterations that are equal to iterations of loop2, then return "def". * This is useful for ensuring that such statements are not reordered. * Some users, including the test_run target in test, expect * the statements at a given point to be run in the original order. * Passing the value "0" for "def" would allow such statements to be reordered * and would allow for the detection of more components. */ int cloog_loop_follows(CloogLoop *loop1, CloogLoop *loop2, int level, int scalar, int *scaldims, int nb_scattdims, int def) { int dim1, dim2; dim1 = cloog_domain_dimension(loop1->domain); dim2 = cloog_domain_dimension(loop2->domain); while ((level <= dim1 && level <= dim2) || level_is_constant(level, scalar, scaldims, nb_scattdims)) { if (level_is_constant(level, scalar, scaldims, nb_scattdims)) { int cmp = cloog_loop_constant_cmp(loop1, loop2, level, scaldims, nb_scattdims, scalar); if (cmp > 0) return 1; if (cmp < 0) return 0; scalar += scaldims[level + scalar - 1]; } else { int follows = cloog_domain_follows(loop1->domain, loop2->domain, level); if (follows > 0) return 1; if (follows < 0) return 0; level++; } } return def; } /* Structure for representing the nodes in the graph being traversed * using Tarjan's algorithm. * index represents the order in which nodes are visited. * min_index is the index of the root of a (sub)component. * on_stack indicates whether the node is currently on the stack. */ struct cloog_loop_sort_node { int index; int min_index; int on_stack; }; /* Structure for representing the graph being traversed * using Tarjan's algorithm. * len is the number of nodes * node is an array of nodes * stack contains the nodes on the path from the root to the current node * sp is the stack pointer * index is the index of the last node visited * order contains the elements of the components separated by -1 * op represents the current position in order */ struct cloog_loop_sort { int len; struct cloog_loop_sort_node *node; int *stack; int sp; int index; int *order; int op; }; /* Allocate and initialize cloog_loop_sort structure. */ static struct cloog_loop_sort *cloog_loop_sort_alloc(int len) { struct cloog_loop_sort *s; int i; s = (struct cloog_loop_sort *)malloc(sizeof(struct cloog_loop_sort)); assert(s); s->len = len; s->node = (struct cloog_loop_sort_node *) malloc(len * sizeof(struct cloog_loop_sort_node)); assert(s->node); for (i = 0; i < len; ++i) s->node[i].index = -1; s->stack = (int *)malloc(len * sizeof(int)); assert(s->stack); s->order = (int *)malloc(2 * len * sizeof(int)); assert(s->order); s->sp = 0; s->index = 0; s->op = 0; return s; } /* Free cloog_loop_sort structure. */ static void cloog_loop_sort_free(struct cloog_loop_sort *s) { free(s->node); free(s->stack); free(s->order); free(s); } /* Check whether for any fixed iteration of the outer loops, * there is an iteration of loop1 that is lexicographically greater * than an iteration of loop2, where the iteration domains are * available in the inner loops of the arguments. * * By using this functions to detect components, we ensure that * two CloogLoops appear in the same component if some iterations of * each loop should be executed before some iterations of the other loop. * Since we also want two CloogLoops that have exactly the same * iteration domain at the current level to be placed in the same component, * we first check if these domains are indeed the same. */ static int inner_loop_follows(CloogLoop *loop1, CloogLoop *loop2, int level, int scalar, int *scaldims, int nb_scattdims, int def) { int f; f = cloog_domain_lazy_equal(loop1->domain, loop2->domain); if (!f) f = cloog_loop_follows(loop1->inner, loop2->inner, level, scalar, scaldims, nb_scattdims, def); return f; } /* Perform Tarjan's algorithm for computing the strongly connected components * in the graph with the individual CloogLoops as vertices. * Two CloopLoops appear in the same component if they both (indirectly) * "follow" each other, where the following relation is determined * by the follows function. */ static void cloog_loop_components_tarjan(struct cloog_loop_sort *s, CloogLoop **loop_array, int i, int level, int scalar, int *scaldims, int nb_scattdims, int (*follows)(CloogLoop *loop1, CloogLoop *loop2, int level, int scalar, int *scaldims, int nb_scattdims, int def)) { int j; s->node[i].index = s->index; s->node[i].min_index = s->index; s->node[i].on_stack = 1; s->index++; s->stack[s->sp++] = i; for (j = s->len - 1; j >= 0; --j) { int f; if (j == i) continue; if (s->node[j].index >= 0 && (!s->node[j].on_stack || s->node[j].index > s->node[i].min_index)) continue; f = follows(loop_array[i], loop_array[j], level, scalar, scaldims, nb_scattdims, i > j); if (!f) continue; if (s->node[j].index < 0) { cloog_loop_components_tarjan(s, loop_array, j, level, scalar, scaldims, nb_scattdims, follows); if (s->node[j].min_index < s->node[i].min_index) s->node[i].min_index = s->node[j].min_index; } else if (s->node[j].index < s->node[i].min_index) s->node[i].min_index = s->node[j].index; } if (s->node[i].index != s->node[i].min_index) return; do { j = s->stack[--s->sp]; s->node[j].on_stack = 0; s->order[s->op++] = j; } while (j != i); s->order[s->op++] = -1; } static int qsort_index_cmp(const void *p1, const void *p2) { return *(int *)p1 - *(int *)p2; } /* Sort the elements of the component starting at list. * The list is terminated by a -1. */ static void sort_component(int *list) { int len; for (len = 0; list[len] != -1; ++len) ; qsort(list, len, sizeof(int), qsort_index_cmp); } /* Given an array of indices "list" into the "loop_array" array, * terminated by -1, construct a linked list of the corresponding * entries and put the result in *res. * The value returned is the number of CloogLoops in the (linked) list */ static int extract_component(CloogLoop **loop_array, int *list, CloogLoop **res) { int i = 0; sort_component(list); while (list[i] != -1) { *res = loop_array[list[i]]; res = &(*res)->next; ++i; } *res = NULL; return i; } /** * Call cloog_loop_generate_scalar or cloog_loop_generate_general * on each of the strongly connected components in the list of CloogLoops * pointed to by "loop". * * We use Tarjan's algorithm to find the strongly connected components. * Note that this algorithm also topologically sorts the components. * * The components are treated separately to avoid spurious separations. * The concatentation of the results may contain successive loops * with the same bounds, so we try to combine such loops. */ CloogLoop *cloog_loop_generate_components(CloogLoop *loop, int level, int scalar, int *scaldims, int nb_scattdims, CloogOptions *options) { int i, nb_loops; CloogLoop *tmp; CloogLoop *res, **res_next; CloogLoop **loop_array; struct cloog_loop_sort *s; if (level == 0 || !loop->next) return cloog_loop_generate_general(loop, level, scalar, scaldims, nb_scattdims, options); nb_loops = cloog_loop_count(loop); loop_array = (CloogLoop **)malloc(nb_loops * sizeof(CloogLoop *)); assert(loop_array); for (i = 0, tmp = loop; i < nb_loops; i++, tmp = tmp->next) loop_array[i] = tmp; s = cloog_loop_sort_alloc(nb_loops); for (i = nb_loops - 1; i >= 0; --i) { if (s->node[i].index >= 0) continue; cloog_loop_components_tarjan(s, loop_array, i, level, scalar, scaldims, nb_scattdims, &inner_loop_follows); } i = 0; res = NULL; res_next = &res; while (nb_loops) { int n = extract_component(loop_array, &s->order[i], &tmp); i += n + 1; nb_loops -= n; *res_next = cloog_loop_generate_general(tmp, level, scalar, scaldims, nb_scattdims, options); while (*res_next) res_next = &(*res_next)->next; } cloog_loop_sort_free(s); free(loop_array); res = cloog_loop_combine(res); return res; } /* For each loop in the list "loop", decompose the list of * inner loops into strongly connected components and put * the components into separate loops at the top level. */ CloogLoop *cloog_loop_decompose_inner(CloogLoop *loop, int level, int scalar, int *scaldims, int nb_scattdims) { CloogLoop *l, *tmp; CloogLoop **loop_array; int i, n_loops, max_loops = 0; struct cloog_loop_sort *s; for (l = loop; l; l = l->next) { n_loops = cloog_loop_count(l->inner); if (max_loops < n_loops) max_loops = n_loops; } if (max_loops <= 1) return loop; loop_array = (CloogLoop **)malloc(max_loops * sizeof(CloogLoop *)); assert(loop_array); for (l = loop; l; l = l->next) { int n; for (i = 0, tmp = l->inner; tmp; i++, tmp = tmp->next) loop_array[i] = tmp; n_loops = i; if (n_loops <= 1) continue; s = cloog_loop_sort_alloc(n_loops); for (i = n_loops - 1; i >= 0; --i) { if (s->node[i].index >= 0) continue; cloog_loop_components_tarjan(s, loop_array, i, level, scalar, scaldims, nb_scattdims, &cloog_loop_follows); } n = extract_component(loop_array, s->order, &l->inner); n_loops -= n; i = n + 1; while (n_loops) { CloogLoop *inner; n = extract_component(loop_array, &s->order[i], &inner); n_loops -= n; i += n + 1; tmp = cloog_loop_alloc(l->state, cloog_domain_copy(l->domain), l->otl, l->stride, l->block, inner, l->next); l->next = tmp; l = tmp; } cloog_loop_sort_free(s); } free(loop_array); return loop; } CloogLoop *cloog_loop_generate_restricted(CloogLoop *loop, int level, int scalar, int *scaldims, int nb_scattdims, CloogOptions *options) { /* To save both time and memory, we switch here depending on whether the * current dimension is scalar (simplified processing) or not (general * processing). */ if (level_is_constant(level, scalar, scaldims, nb_scattdims)) return cloog_loop_generate_scalar(loop, level, scalar, scaldims, nb_scattdims, options); /* * 2. Compute the projection of each polyhedron onto the outermost * loop variable and the parameters. */ loop = cloog_loop_project_all(loop, level); return cloog_loop_generate_components(loop, level, scalar, scaldims, nb_scattdims, options); } CloogLoop *cloog_loop_generate_restricted_or_stop(CloogLoop *loop, CloogDomain *context, int level, int scalar, int *scaldims, int nb_scattdims, CloogOptions *options) { /* If the user asked to stop code generation at this level, let's stop. */ if ((options->stop >= 0) && (level+scalar >= options->stop+1)) return cloog_loop_stop(loop,context) ; return cloog_loop_generate_restricted(loop, level, scalar, scaldims, nb_scattdims, options); } /** * cloog_loop_generate function: * Adaptation from LoopGen 0.4 by F. Quillere. This function implements the * Quillere algorithm for polyhedron scanning from step 1 to 2. * (see the Quillere paper). * - loop is the loop for which we have to generate a scanning code, * - context is the context of the current loop (constraints on parameter and/or * on outer loop counters), * - level is the current non-scalar dimension, * - scalar is the current scalar dimension, * - scaldims is the boolean array saying whether a dimension is scalar or not, * - nb_scattdims is the size of the scaldims array, * - options are the general code generation options. ** * - October 26th 2001: first version. * - July 3rd->11th 2003: memory leaks hunt and correction. * - June 15th 2005: a memory leak fixed (loop was not entirely freed when * the result of cloog_loop_restrict was NULL). * - June 22nd 2005: Adaptation for GMP. * - September 2nd 2005: The function have been cutted out in two pieces: * cloog_loop_generate and this one, in order to handle * the scalar dimension case more efficiently with * cloog_loop_generate_scalar. * - November 15th 2005: (debug) Condition for stop option no more take care of * further scalar dimensions. */ CloogLoop *cloog_loop_generate(CloogLoop *loop, CloogDomain *context, int level, int scalar, int *scaldims, int nb_scattdims, CloogOptions *options) { /* 1. Replace each polyhedron by its intersection with the context. */ loop = cloog_loop_restrict_all(loop, context); if (!loop) return NULL; return cloog_loop_generate_restricted_or_stop(loop, context, level, scalar, scaldims, nb_scattdims, options); } /* * Internal function for simplifying a single loop in a list of loops. * See cloog_loop_simplify. */ static CloogLoop *loop_simplify(CloogLoop *loop, CloogDomain *context, int level, int nb_scattdims, CloogOptions *options) { int domain_dim; CloogBlock * new_block ; CloogLoop *simplified, *inner; CloogDomain * domain, * simp, * inter, * extended_context ; if (!cloog_domain_isconvex(loop->domain)) loop->domain = cloog_domain_simplify_union(loop->domain); domain = loop->domain ; domain_dim = cloog_domain_dimension(domain); extended_context = cloog_domain_extend(context, domain_dim); inter = cloog_domain_intersection(domain,extended_context) ; simp = cloog_domain_simplify(domain, extended_context); cloog_domain_free(extended_context) ; /* If the constraint system is never true, go to the next one. */ if (cloog_domain_never_integral(simp)) { cloog_loop_free(loop->inner); cloog_domain_free(inter); cloog_domain_free(simp); return NULL; } inner = cloog_loop_simplify(loop->inner, inter, level+1, nb_scattdims, options); if ((inner == NULL) && (loop->block == NULL)) { cloog_domain_free(inter); cloog_domain_free(simp); return NULL; } new_block = cloog_block_copy(loop->block) ; simplified = cloog_loop_alloc(loop->state, simp, loop->otl, loop->stride, new_block, inner, NULL); /* Only save the domains, if their level is still a scattering level. */ if (options->save_domains && level <= nb_scattdims) simplified->unsimplified = inter; else cloog_domain_free(inter); return(simplified) ; } /** * cloog_loop_simplify function: * This function implements the part 6. of the Quillere algorithm, it * recursively simplifies each loop in the context of the preceding loop domain. * It returns a pointer to the simplified loop list. * The cloog_domain_simplify (DomainSimplify) behaviour is really bad with * polyhedra union and some really awful sidesteppings were written, I plan * to solve that... * - October 31th 2001: first version. * - July 3rd->11th 2003: memory leaks hunt and correction. * - April 16th 2005: a memory leak fixed (extended_context was not freed). * - June 15th 2005: a memory leak fixed (loop was not conveniently freed * when the constraint system is never true). * - October 27th 2005: - this function called before cloog_loop_fast_simplify * is now the official cloog_loop_simplify function in * replacement of a slower and more complex one (after * deep changes in the pretty printer). * - we use cloog_loop_disjoint to fix the problem when * simplifying gives a union of polyhedra (before, it * was under the responsibility of the pretty printer). */ CloogLoop *cloog_loop_simplify(CloogLoop *loop, CloogDomain *context, int level, int nb_scattdims, CloogOptions *options) { CloogLoop *now; CloogLoop *res = NULL; CloogLoop **next = &res; for (now = loop; now; now = now->next) { *next = loop_simplify(now, context, level, nb_scattdims, options); now->inner = NULL; /* For loop integrity. */ cloog_domain_free(now->domain); now->domain = NULL; if (*next) next = &(*next)->next; } cloog_loop_free(loop); /* Examples like test/iftest2.cloog give unions of polyhedra after * simplifying, thus we have to make them disjoint. Another good reason to * put the simplifying step in the Quillere backtrack. */ res = cloog_loop_disjoint(res); return res; } /** * cloog_loop_scatter function: * This function add the scattering (scheduling) informations in a loop. */ void cloog_loop_scatter(CloogLoop * loop, CloogScattering *scatt) { loop->domain = cloog_domain_scatter(loop->domain, scatt); } cloog-parma-0.16.1/cloog-core/source/input.c0000644000175000017500000001106711511332642015560 00000000000000#include #include #include #include "../include/cloog/cloog.h" #define ALLOC(type) (type*)malloc(sizeof(type)) static char *next_line(FILE *input, char *line, unsigned len) { char *p; do { if (!(p = fgets(line, len, input))) return NULL; while (isspace(*p) && *p != '\n') ++p; } while (*p == '#' || *p == '\n'); return p; } /** * Read input from a .cloog file, putting most of the information * in the returned CloogInput. The chosen language is put in * options->language. */ CloogInput *cloog_input_read(FILE *file, CloogOptions *options) { char line[MAX_STRING]; char language; CloogDomain *context; CloogUnionDomain *ud; int nb_par; /* First of all, we read the language to use. */ if (!next_line(file, line, sizeof(line))) cloog_die("Input error.\n"); if (sscanf(line, "%c", &language) != 1) cloog_die("Input error.\n"); if (language == 'f') options->language = LANGUAGE_FORTRAN; else options->language = LANGUAGE_C; /* We then read the context data. */ context = cloog_domain_read_context(options->state, file); nb_par = cloog_domain_parameter_dimension(context); ud = cloog_union_domain_read(file, nb_par, options); return cloog_input_alloc(context, ud); } /** * Create a CloogInput from a CloogDomain context and a CloogUnionDomain. */ CloogInput *cloog_input_alloc(CloogDomain *context, CloogUnionDomain *ud) { CloogInput *input; input = ALLOC(CloogInput); if (!input) cloog_die("memory overflow.\n"); input->context = context; input->ud = ud; return input; } void cloog_input_free(CloogInput *input) { cloog_domain_free(input->context); cloog_union_domain_free(input->ud); free(input); } static void print_names(FILE *file, CloogUnionDomain *ud, enum cloog_dim_type type, const char *name) { int i; fprintf(file, "\n%d # %s name(s)\n", ud->name[type] ? 1 : 0, name); if (!ud->name[type]) return; for (i = 0; i < ud->n_name[type]; i++) fprintf(file, "%s ", ud->name[type][i]); fprintf(file, "\n"); } /** * Dump the .cloog description of a CloogInput and a CloogOptions data structure * into a file. The generated .cloog file will contain the same information as * the data structures. The file can be used to run the cloog program on the * example. */ void cloog_input_dump_cloog(FILE *file, CloogInput *input, CloogOptions *opt) { int i, num_statements; CloogUnionDomain *ud = input->ud; CloogNamedDomainList *ndl = ud->domain; fprintf(file, "# CLooG -> CLooG\n" "# This is an automatic dump of a CLooG input file from a " "CloogInput data\n" "# structure.\n\n"); /* Language. */ if (opt->language == LANGUAGE_FORTRAN) { fprintf(file, "# Language: FORTRAN\n"); fprintf(file, "f\n\n"); } else { fprintf(file, "# Language: C\n"); fprintf(file, "c\n\n"); } /* Context. */ fprintf(file, "# Context:\n"); cloog_domain_print_constraints(file, input->context, 1); print_names(file, ud, CLOOG_PARAM, "Parameter"); /* Statement number. */ i = 0; while (ndl != NULL) { i++; ndl = ndl->next; } num_statements = i; fprintf(file, "\n# Statement number:\n%d\n\n", num_statements); /* Iteration domains. */ i = 1; ndl = ud->domain; while (ndl != NULL) { fprintf(file, "# Iteration domain of statement %d (%s).\n", i, ndl->name); cloog_domain_print_constraints(file, ndl->domain, 1); fprintf(file,"\n0 0 0 # For future options.\n\n"); i++; ndl = ndl->next; } print_names(file, ud, CLOOG_ITER, "Iterator"); /* Exit, if no scattering is supplied. */ if (!ud->domain || !ud->domain->scattering) { fprintf(file, "# No scattering functions.\n0\n\n"); return; } /* Scattering relations. */ fprintf(file, "# --------------------- SCATTERING --------------------\n"); fprintf(file, "%d # Scattering functions\n", num_statements); i = 1; ndl = ud->domain; while (ndl != NULL) { fprintf(file, "\n# Scattering of statement %d (%s).\n", i, ndl->name); cloog_scattering_print_constraints(file, ndl->scattering); i++; ndl = ndl->next; } print_names(file, ud, CLOOG_SCAT, "Scattering dimension"); } cloog-parma-0.16.1/cloog-core/source/clast.c0000644000175000017500000016023611511333434015532 00000000000000#include #include #include #include "../include/cloog/cloog.h" #define ALLOC(type) (type*)malloc(sizeof(type)) #define ALLOCN(type,n) (type*)malloc((n)*sizeof(type)) /** * CloogInfos structure: * this structure contains all the informations necessary for pretty printing, * they come from the original CloogProgram structure (language, names), from * genereral options (options) or are built only for pretty printing (stride). * This structure is mainly there to reduce the number of function parameters, * since most pprint.c functions need most of its field. */ struct clooginfos { CloogState *state; /**< State. */ CloogStride **stride; int stride_level; /**< Number of valid entries in stride array. */ int nb_scattdims ; /**< Scattering dimension number. */ int * scaldims ; /**< Boolean array saying whether a given * scattering dimension is scalar or not. */ CloogNames * names ; /**< Names of iterators and parameters. */ CloogOptions * options ; /**< Options on CLooG's behaviour. */ CloogEqualities *equal; /**< Matrix of equalities. */ } ; typedef struct clooginfos CloogInfos ; static int clast_expr_cmp(struct clast_expr *e1, struct clast_expr *e2); static int clast_term_cmp(struct clast_term *t1, struct clast_term *t2); static int clast_binary_cmp(struct clast_binary *b1, struct clast_binary *b2); static int clast_reduction_cmp(struct clast_reduction *r1, struct clast_reduction *r2); static struct clast_expr *clast_expr_copy(struct clast_expr *e); static int clast_equal_add(CloogEqualities *equal, CloogConstraintSet *constraints, int level, CloogConstraint *constraint, CloogInfos *infos); static struct clast_stmt *clast_equal(int level, CloogInfos *infos); static struct clast_expr *clast_minmax(CloogConstraintSet *constraints, int level, int max, int guard, int lower_bound, CloogInfos *infos); static void insert_guard(CloogConstraintSet *constraints, int level, struct clast_stmt ***next, CloogInfos *infos); static int insert_modulo_guard(CloogConstraint *upper, CloogConstraint *lower, int level, struct clast_stmt ***next, CloogInfos *infos); static int insert_equation(CloogDomain *domain, CloogConstraint *upper, CloogConstraint *lower, int level, struct clast_stmt ***next, CloogInfos *infos); static int insert_for(CloogDomain *domain, CloogConstraintSet *constraints, int level, int otl, struct clast_stmt ***next, CloogInfos *infos); static void insert_block(CloogDomain *domain, CloogBlock *block, int level, struct clast_stmt ***next, CloogInfos *infos); static void insert_loop(CloogLoop * loop, int level, struct clast_stmt ***next, CloogInfos *infos); struct clast_name *new_clast_name(const char *name) { struct clast_name *n = malloc(sizeof(struct clast_name)); n->expr.type = clast_expr_name; n->name = name; return n; } struct clast_term *new_clast_term(cloog_int_t c, struct clast_expr *v) { struct clast_term *t = malloc(sizeof(struct clast_term)); t->expr.type = clast_expr_term; cloog_int_init(t->val); cloog_int_set(t->val, c); t->var = v; return t; } struct clast_binary *new_clast_binary(enum clast_bin_type t, struct clast_expr *lhs, cloog_int_t rhs) { struct clast_binary *b = malloc(sizeof(struct clast_binary)); b->expr.type = clast_expr_bin; b->type = t; b->LHS = lhs; cloog_int_init(b->RHS); cloog_int_set(b->RHS, rhs); return b; } struct clast_reduction *new_clast_reduction(enum clast_red_type t, int n) { int i; struct clast_reduction *r; r = malloc(sizeof(struct clast_reduction)+(n-1)*sizeof(struct clast_expr *)); r->expr.type = clast_expr_red; r->type = t; r->n = n; for (i = 0; i < n; ++i) r->elts[i] = NULL; return r; } static void free_clast_root(struct clast_stmt *s); const struct clast_stmt_op stmt_root = { free_clast_root }; static void free_clast_root(struct clast_stmt *s) { struct clast_root *r = (struct clast_root *)s; assert(CLAST_STMT_IS_A(s, stmt_root)); cloog_names_free(r->names); free(r); } struct clast_root *new_clast_root(CloogNames *names) { struct clast_root *r = malloc(sizeof(struct clast_root)); r->stmt.op = &stmt_root; r->stmt.next = NULL; r->names = cloog_names_copy(names); return r; } static void free_clast_assignment(struct clast_stmt *s); const struct clast_stmt_op stmt_ass = { free_clast_assignment }; static void free_clast_assignment(struct clast_stmt *s) { struct clast_assignment *a = (struct clast_assignment *)s; assert(CLAST_STMT_IS_A(s, stmt_ass)); free_clast_expr(a->RHS); free(a); } struct clast_assignment *new_clast_assignment(const char *lhs, struct clast_expr *rhs) { struct clast_assignment *a = malloc(sizeof(struct clast_assignment)); a->stmt.op = &stmt_ass; a->stmt.next = NULL; a->LHS = lhs; a->RHS = rhs; return a; } static void free_clast_user_stmt(struct clast_stmt *s); const struct clast_stmt_op stmt_user = { free_clast_user_stmt }; static void free_clast_user_stmt(struct clast_stmt *s) { struct clast_user_stmt *u = (struct clast_user_stmt *)s; assert(CLAST_STMT_IS_A(s, stmt_user)); cloog_domain_free(u->domain); cloog_statement_free(u->statement); cloog_clast_free(u->substitutions); free(u); } struct clast_user_stmt *new_clast_user_stmt(CloogDomain *domain, CloogStatement *stmt, struct clast_stmt *subs) { struct clast_user_stmt *u = malloc(sizeof(struct clast_user_stmt)); u->stmt.op = &stmt_user; u->stmt.next = NULL; u->domain = cloog_domain_copy(domain); u->statement = cloog_statement_copy(stmt); u->substitutions = subs; return u; } static void free_clast_block(struct clast_stmt *b); const struct clast_stmt_op stmt_block = { free_clast_block }; static void free_clast_block(struct clast_stmt *s) { struct clast_block *b = (struct clast_block *)s; assert(CLAST_STMT_IS_A(s, stmt_block)); cloog_clast_free(b->body); free(b); } struct clast_block *new_clast_block() { struct clast_block *b = malloc(sizeof(struct clast_block)); b->stmt.op = &stmt_block; b->stmt.next = NULL; b->body = NULL; return b; } static void free_clast_for(struct clast_stmt *s); const struct clast_stmt_op stmt_for = { free_clast_for }; static void free_clast_for(struct clast_stmt *s) { struct clast_for *f = (struct clast_for *)s; assert(CLAST_STMT_IS_A(s, stmt_for)); cloog_domain_free(f->domain); free_clast_expr(f->LB); free_clast_expr(f->UB); cloog_int_clear(f->stride); cloog_clast_free(f->body); free(f); } struct clast_for *new_clast_for(CloogDomain *domain, const char *it, struct clast_expr *LB, struct clast_expr *UB, CloogStride *stride) { struct clast_for *f = malloc(sizeof(struct clast_for)); f->stmt.op = &stmt_for; f->stmt.next = NULL; f->domain = cloog_domain_copy(domain); f->iterator = it; f->LB = LB; f->UB = UB; f->body = NULL; cloog_int_init(f->stride); if (stride) cloog_int_set(f->stride, stride->stride); else cloog_int_set_si(f->stride, 1); return f; } static void free_clast_guard(struct clast_stmt *s); const struct clast_stmt_op stmt_guard = { free_clast_guard }; static void free_clast_guard(struct clast_stmt *s) { int i; struct clast_guard *g = (struct clast_guard *)s; assert(CLAST_STMT_IS_A(s, stmt_guard)); cloog_clast_free(g->then); for (i = 0; i < g->n; ++i) { free_clast_expr(g->eq[i].LHS); free_clast_expr(g->eq[i].RHS); } free(g); } struct clast_guard *new_clast_guard(int n) { int i; struct clast_guard *g = malloc(sizeof(struct clast_guard) + (n-1) * sizeof(struct clast_equation)); g->stmt.op = &stmt_guard; g->stmt.next = NULL; g->then = NULL; g->n = n; for (i = 0; i < n; ++i) { g->eq[i].LHS = NULL; g->eq[i].RHS = NULL; } return g; } void free_clast_name(struct clast_name *n) { free(n); } void free_clast_term(struct clast_term *t) { cloog_int_clear(t->val); free_clast_expr(t->var); free(t); } void free_clast_binary(struct clast_binary *b) { cloog_int_clear(b->RHS); free_clast_expr(b->LHS); free(b); } void free_clast_reduction(struct clast_reduction *r) { int i; for (i = 0; i < r->n; ++i) free_clast_expr(r->elts[i]); free(r); } void free_clast_expr(struct clast_expr *e) { if (!e) return; switch (e->type) { case clast_expr_name: free_clast_name((struct clast_name*) e); break; case clast_expr_term: free_clast_term((struct clast_term*) e); break; case clast_expr_red: free_clast_reduction((struct clast_reduction*) e); break; case clast_expr_bin: free_clast_binary((struct clast_binary*) e); break; default: assert(0); } } void free_clast_stmt(struct clast_stmt *s) { assert(s->op); assert(s->op->free); s->op->free(s); } void cloog_clast_free(struct clast_stmt *s) { struct clast_stmt *next; while (s) { next = s->next; free_clast_stmt(s); s = next; } } static int clast_name_cmp(struct clast_name *n1, struct clast_name *n2) { return n1->name == n2->name ? 0 : strcmp(n1->name, n2->name); } static int clast_term_cmp(struct clast_term *t1, struct clast_term *t2) { int c; if (!t1->var && t2->var) return -1; if (t1->var && !t2->var) return 1; c = clast_expr_cmp(t1->var, t2->var); if (c) return c; return cloog_int_cmp(t1->val, t2->val); } static int clast_binary_cmp(struct clast_binary *b1, struct clast_binary *b2) { int c; if (b1->type != b2->type) return b1->type - b2->type; if ((c = cloog_int_cmp(b1->RHS, b2->RHS))) return c; return clast_expr_cmp(b1->LHS, b2->LHS); } static int clast_reduction_cmp(struct clast_reduction *r1, struct clast_reduction *r2) { int i; int c; if (r1->n == 1 && r2->n == 1) return clast_expr_cmp(r1->elts[0], r2->elts[0]); if (r1->type != r2->type) return r1->type - r2->type; if (r1->n != r2->n) return r1->n - r2->n; for (i = 0; i < r1->n; ++i) if ((c = clast_expr_cmp(r1->elts[i], r2->elts[i]))) return c; return 0; } static int clast_expr_cmp(struct clast_expr *e1, struct clast_expr *e2) { if (!e1 && !e2) return 0; if (!e1) return -1; if (!e2) return 1; if (e1->type != e2->type) return e1->type - e2->type; switch (e1->type) { case clast_expr_name: return clast_name_cmp((struct clast_name*) e1, (struct clast_name*) e2); case clast_expr_term: return clast_term_cmp((struct clast_term*) e1, (struct clast_term*) e2); case clast_expr_bin: return clast_binary_cmp((struct clast_binary*) e1, (struct clast_binary*) e2); case clast_expr_red: return clast_reduction_cmp((struct clast_reduction*) e1, (struct clast_reduction*) e2); default: assert(0); } } int clast_expr_equal(struct clast_expr *e1, struct clast_expr *e2) { return clast_expr_cmp(e1, e2) == 0; } /** * Return 1 is both expressions are constant terms and e1 is bigger than e2. */ int clast_expr_is_bigger_constant(struct clast_expr *e1, struct clast_expr *e2) { struct clast_term *t1, *t2; struct clast_reduction *r; if (!e1 || !e2) return 0; if (e1->type == clast_expr_red) { r = (struct clast_reduction *)e1; return r->n == 1 && clast_expr_is_bigger_constant(r->elts[0], e2); } if (e2->type == clast_expr_red) { r = (struct clast_reduction *)e2; return r->n == 1 && clast_expr_is_bigger_constant(e1, r->elts[0]); } if (e1->type != clast_expr_term || e2->type != clast_expr_term) return 0; t1 = (struct clast_term *)e1; t2 = (struct clast_term *)e2; if (t1->var || t2->var) return 0; return cloog_int_gt(t1->val, t2->val); } static int qsort_expr_cmp(const void *p1, const void *p2) { return clast_expr_cmp(*(struct clast_expr **)p1, *(struct clast_expr **)p2); } static void clast_reduction_sort(struct clast_reduction *r) { qsort(&r->elts[0], r->n, sizeof(struct clast_expr *), qsort_expr_cmp); } static int qsort_eq_cmp(const void *p1, const void *p2) { struct clast_equation *eq1 = (struct clast_equation *)p1; struct clast_equation *eq2 = (struct clast_equation *)p2; int cmp; cmp = clast_expr_cmp(eq1->LHS, eq2->LHS); if (cmp) return cmp; cmp = clast_expr_cmp(eq1->RHS, eq2->RHS); if (cmp) return cmp; return eq1->sign - eq2->sign; } /** * Sort equations in a clast_guard. */ static void clast_guard_sort(struct clast_guard *g) { qsort(&g->eq[0], g->n, sizeof(struct clast_equation), qsort_eq_cmp); } /** * Construct a (deep) copy of an expression clast. */ static struct clast_expr *clast_expr_copy(struct clast_expr *e) { if (!e) return NULL; switch (e->type) { case clast_expr_name: { struct clast_name* n = (struct clast_name*) e; return &new_clast_name(n->name)->expr; } case clast_expr_term: { struct clast_term* t = (struct clast_term*) e; return &new_clast_term(t->val, clast_expr_copy(t->var))->expr; } case clast_expr_red: { int i; struct clast_reduction *r = (struct clast_reduction*) e; struct clast_reduction *r2 = new_clast_reduction(r->type, r->n); for (i = 0; i < r->n; ++i) r2->elts[i] = clast_expr_copy(r->elts[i]); return &r2->expr; } case clast_expr_bin: { struct clast_binary *b = (struct clast_binary*) e; return &new_clast_binary(b->type, clast_expr_copy(b->LHS), b->RHS)->expr; } default: assert(0); } } /****************************************************************************** * Equalities spreading functions * ******************************************************************************/ /** * clast_equal_allow function: * This function checks whether the options allow us to spread the equality or * not. It returns 1 if so, 0 otherwise. * - equal is the matrix of equalities, * - level is the column number in equal of the element which is 'equal to', * - line is the line number in equal of the constraint we want to study, * - the infos structure gives the user all options on code printing and more. ** * - October 27th 2005: first version (extracted from old pprint_equal_add). */ static int clast_equal_allow(CloogEqualities *equal, int level, int line, CloogInfos *infos) { if (level < infos->options->fsp) return 0 ; if ((cloog_equal_type(equal, level) == EQTYPE_EXAFFINE) && !infos->options->esp) return 0 ; return 1 ; } /** * clast_equal_add function: * This function updates the row (level-1) of the equality matrix (equal) with * the row that corresponds to the row (line) of the matrix (matrix). It returns * 1 if the row can be updated, 0 otherwise. * - equal is the matrix of equalities, * - matrix is the matrix of constraints, * - level is the column number in matrix of the element which is 'equal to', * - line is the line number in matrix of the constraint we want to study, * - the infos structure gives the user all options on code printing and more. */ static int clast_equal_add(CloogEqualities *equal, CloogConstraintSet *constraints, int level, CloogConstraint *constraint, CloogInfos *infos) { cloog_equal_add(equal, constraints, level, constraint, infos->names->nb_parameters); return clast_equal_allow(equal, level, level-1, infos); } /** * clast_equal function: * This function prints the substitution data of a statement into a clast_stmt. * Using this function instead of pprint_equal is useful for generating * a compilable pseudo-code by using preprocessor macro for each statement. * By opposition to pprint_equal, the result is less human-readable. For * instance this function will print (i,i+3,k,3) where pprint_equal would * return (j=i+3,l=3). * - level is the number of loops enclosing the statement, * - the infos structure gives the user all options on code printing and more. ** * - March 12th 2004: first version. * - November 21th 2005: (debug) now works well with GMP version. */ static struct clast_stmt *clast_equal(int level, CloogInfos *infos) { int i ; struct clast_expr *e; struct clast_stmt *a = NULL; struct clast_stmt **next = &a; CloogEqualities *equal = infos->equal; CloogConstraint *equal_constraint; for (i=infos->names->nb_scattering;inames); cloog_constraint_release(equal_constraint); } else { e = &new_clast_term(infos->state->one, &new_clast_name( cloog_names_name_at_level(infos->names, i+1))->expr)->expr; } *next = &new_clast_assignment(NULL, e)->stmt; next = &(*next)->next; } return a; } /** * clast_bound_from_constraint function: * This function returns a clast_expr containing the printing of the * 'right part' of a constraint according to an element. * For instance, for the constraint -3*i + 2*j - M >=0 and the element j, * we have j >= (3*i + M)/2. As we are looking for integral solutions, this * function should return 'ceild(3*i+M,2)'. * - matrix is the polyhedron containing all the constraints, * - line_num is the line number in domain of the constraint we want to print, * - level is the column number in domain of the element we want to use, * - names structure gives the user some options about code printing, * the number of parameters in domain (nb_par), and the arrays of iterator * names and parameters (iters and params). ** * - November 2nd 2001: first version. * - June 27th 2003: 64 bits version ready. */ struct clast_expr *clast_bound_from_constraint(CloogConstraint *constraint, int level, CloogNames *names) { int i, sign, nb_elts=0, len; cloog_int_t *line, numerator, denominator, temp, division; struct clast_expr *e = NULL; struct cloog_vec *line_vector; len = cloog_constraint_total_dimension(constraint) + 2; line_vector = cloog_vec_alloc(len); line = line_vector->p; cloog_constraint_copy_coefficients(constraint, line+1); cloog_int_init(temp); cloog_int_init(numerator); cloog_int_init(denominator); if (!cloog_int_is_zero(line[level])) { struct clast_reduction *r; /* Maybe we need to invert signs in such a way that the element sign is>0.*/ sign = -cloog_int_sgn(line[level]); for (i = 1, nb_elts = 0; i <= len - 1; ++i) if (i != level && !cloog_int_is_zero(line[i])) nb_elts++; r = new_clast_reduction(clast_red_sum, nb_elts); nb_elts = 0; /* First, we have to print the iterators and the parameters. */ for (i = 1; i <= len - 2; i++) { struct clast_expr *v; if (i == level || cloog_int_is_zero(line[i])) continue; v = cloog_constraint_variable_expr(constraint, i, names); if (sign == -1) cloog_int_neg(temp,line[i]); else cloog_int_set(temp,line[i]); r->elts[nb_elts++] = &new_clast_term(temp, v)->expr; } if (sign == -1) { cloog_int_neg(numerator, line[len - 1]); cloog_int_set(denominator, line[level]); } else { cloog_int_set(numerator, line[len - 1]); cloog_int_neg(denominator, line[level]); } /* Finally, the constant, and the final printing. */ if (nb_elts) { if (!cloog_int_is_zero(numerator)) r->elts[nb_elts++] = &new_clast_term(numerator, NULL)->expr; if (!cloog_int_is_one(line[level]) && !cloog_int_is_neg_one(line[level])) { if (!cloog_constraint_is_equality(constraint)) { if (cloog_int_is_pos(line[level])) e = &new_clast_binary(clast_bin_cdiv, &r->expr, denominator)->expr; else e = &new_clast_binary(clast_bin_fdiv, &r->expr, denominator)->expr; } else e = &new_clast_binary(clast_bin_div, &r->expr, denominator)->expr; } else e = &r->expr; } else { free_clast_reduction(r); if (cloog_int_is_zero(numerator)) e = &new_clast_term(numerator, NULL)->expr; else { if (!cloog_int_is_one(denominator)) { if (!cloog_constraint_is_equality(constraint)) { /* useful? */ if (cloog_int_is_divisible_by(numerator, denominator)) { cloog_int_divexact(temp, numerator, denominator); e = &new_clast_term(temp, NULL)->expr; } else { cloog_int_init(division); cloog_int_tdiv_q(division, numerator, denominator); if (cloog_int_is_neg(numerator)) { if (cloog_int_is_pos(line[level])) { /* nb<0 need max */ e = &new_clast_term(division, NULL)->expr; } else { /* nb<0 need min */ cloog_int_sub_ui(temp, division, 1); e = &new_clast_term(temp, NULL)->expr; } } else { if (cloog_int_is_pos(line[level])) { /* nb>0 need max */ cloog_int_add_ui(temp, division, 1); e = &new_clast_term(temp, NULL)->expr; } else /* nb>0 need min */ e = &new_clast_term(division, NULL)->expr; } cloog_int_clear(division); } } else e = &new_clast_binary(clast_bin_div, &new_clast_term(numerator, NULL)->expr, denominator)->expr; } else e = &new_clast_term(numerator, NULL)->expr; } } } cloog_vec_free(line_vector); cloog_int_clear(temp); cloog_int_clear(numerator); cloog_int_clear(denominator); return e; } /* Temporary structure for communication between clast_minmax and * its cloog_constraint_set_foreach_constraint callback functions. */ struct clast_minmax_data { int level; int max; int guard; int lower_bound; CloogInfos *infos; int n; struct clast_reduction *r; }; /* Should constraint "c" be considered by clast_minmax? */ static int valid_bound(CloogConstraint *c, struct clast_minmax_data *d) { if (d->max && !cloog_constraint_is_lower_bound(c, d->level - 1)) return 0; if (!d->max && !cloog_constraint_is_upper_bound(c, d->level - 1)) return 0; if (cloog_constraint_is_equality(c)) return 0; if (d->guard && cloog_constraint_involves(c, d->guard - 1)) return 0; return 1; } /* Increment n for each bound that should be considered by clast_minmax. */ static int count_bounds(CloogConstraint *c, void *user) { struct clast_minmax_data *d = (struct clast_minmax_data *) user; if (!valid_bound(c, d)) return 0; d->n++; return 0; } /* Update the given lower bound based on stride information. * In some backends, the lower bounds are updated from within * cloog_loop_stride, but other backends leave the updating to * this function. In the later case, the original lower bound * is known to be a constant. * If the bound turns out not to be a constant, we know we * are in the former case and nothing needs to be done. * If the bound has already been updated and it just happens * to be a constant, then this function performs an identity * operation on the constant. */ static void update_lower_bound(struct clast_expr *expr, int level, CloogStride *stride) { struct clast_term *t; if (stride->constraint) return; if (expr->type != clast_expr_term) return; t = (struct clast_term *)expr; if (t->var) return; cloog_int_sub(t->val, t->val, stride->offset); cloog_int_cdiv_q(t->val, t->val, stride->stride); cloog_int_mul(t->val, t->val, stride->stride); cloog_int_add(t->val, t->val, stride->offset); } /* Add all relevant bounds to r->elts and update lower bounds * based on stride information. */ static int collect_bounds(CloogConstraint *c, void *user) { struct clast_minmax_data *d = (struct clast_minmax_data *) user; if (!valid_bound(c, d)) return 0; d->r->elts[d->n] = clast_bound_from_constraint(c, d->level, d->infos->names); if (d->lower_bound && d->infos->stride[d->level - 1]) { update_lower_bound(d->r->elts[d->n], d->level, d->infos->stride[d->level - 1]); } d->n++; return 0; } /** * clast_minmax function: * This function returns a clast_expr containing the printing of a minimum or a * maximum of the 'right parts' of all constraints according to an element. * For instance consider the constraints: * -3*i +2*j -M >= 0 * 2*i +j >= 0 * -i -j +2*M >= 0 * if we are looking for the minimum for the element j, the function should * return 'max(ceild(3*i+M,2),-2*i)'. * - constraints is the constraints, * - level is the column number in domain of the element we want to use, * - max is a boolean set to 1 if we are looking for a maximum, 0 for a minimum, * - guard is set to 0 if there is no guard, and set to the level of the element * with a guard otherwise (then the function gives the max or the min only * for the constraint where the guarded coefficient is 0), * - lower is set to 1 if the maximum is to be used a lower bound on a loop * - the infos structure gives the user some options about code printing, * the number of parameters in domain (nb_par), and the arrays of iterator * names and parameters (iters and params). ** * - November 2nd 2001: first version. */ static struct clast_expr *clast_minmax(CloogConstraintSet *constraints, int level, int max, int guard, int lower_bound, CloogInfos *infos) { struct clast_minmax_data data = { level, max, guard, lower_bound, infos }; data.n = 0; cloog_constraint_set_foreach_constraint(constraints, count_bounds, &data); if (!data.n) return NULL; data.r = new_clast_reduction(max ? clast_red_max : clast_red_min, data.n); data.n = 0; cloog_constraint_set_foreach_constraint(constraints, collect_bounds, &data); clast_reduction_sort(data.r); return &data.r->expr; } /** * Insert modulo guards defined by existentially quantified dimensions, * not involving the given level. * * This function is called from within insert_guard. * Any constraint used in constructing a modulo guard is removed * from the constraint set to avoid insert_guard * adding a duplicate (pair of) constraint(s). */ static void insert_extra_modulo_guards(CloogConstraintSet *constraints, int level, struct clast_stmt ***next, CloogInfos *infos) { int i; int nb_iter; int total_dim; CloogConstraint *upper, *lower; total_dim = cloog_constraint_set_total_dimension(constraints); nb_iter = cloog_constraint_set_n_iterators(constraints, infos->names->nb_parameters); for (i = total_dim - infos->names->nb_parameters; i >= nb_iter + 1; i--) { if (cloog_constraint_is_valid(upper = cloog_constraint_set_defining_equality(constraints, i))) { if (!level || (nb_iter < level) || !cloog_constraint_involves(upper, level-1)) { insert_modulo_guard(upper, cloog_constraint_invalid(), i, next, infos); cloog_constraint_clear(upper); } cloog_constraint_release(upper); } else if (cloog_constraint_is_valid(upper = cloog_constraint_set_defining_inequalities(constraints, i, &lower, infos->names->nb_parameters))) { if (!level || (nb_iter < level) || !cloog_constraint_involves(upper, level-1)) { insert_modulo_guard(upper, lower, i, next, infos); cloog_constraint_clear(upper); cloog_constraint_clear(lower); } cloog_constraint_release(upper); cloog_constraint_release(lower); } } } static int clear_lower_bound_at_level(CloogConstraint *c, void *user) { int level = *(int *)user; if (cloog_constraint_is_lower_bound(c, level - 1)) cloog_constraint_clear(c); return 0; } static int clear_upper_bound_at_level(CloogConstraint *c, void *user) { int level = *(int *)user; if (cloog_constraint_is_upper_bound(c, level - 1)) cloog_constraint_clear(c); return 0; } /* Temporary structure for communication between insert_guard and * its cloog_constraint_set_foreach_constraint callback function. */ struct clast_guard_data { int level; CloogInfos *infos; int n; int i; int nb_iter; CloogConstraintSet *copy; struct clast_guard *g; }; static int guard_count_bounds(CloogConstraint *c, void *user) { struct clast_guard_data *d = (struct clast_guard_data *) user; d->n++; return 0; } /* Insert a guard, if necesessary, for constraint j. */ static int insert_guard_constraint(CloogConstraint *j, void *user) { struct clast_guard_data *d = (struct clast_guard_data *) user; int minmax = -1; struct clast_expr *v; struct clast_term *t; if (!cloog_constraint_involves(j, d->i - 1)) return 0; if (d->level && d->nb_iter >= d->level && cloog_constraint_involves(j, d->level - 1)) return 0; v = cloog_constraint_variable_expr(j, d->i, d->infos->names); d->g->eq[d->n].LHS = &(t = new_clast_term(d->infos->state->one, v))->expr; if (!d->level || cloog_constraint_is_equality(j)) { /* put the "denominator" in the LHS */ cloog_constraint_coefficient_get(j, d->i - 1, &t->val); cloog_constraint_coefficient_set(j, d->i - 1, d->infos->state->one); if (cloog_int_is_neg(t->val)) { cloog_int_neg(t->val, t->val); cloog_constraint_coefficient_set(j, d->i - 1, d->infos->state->negone); } if (d->level || cloog_constraint_is_equality(j)) d->g->eq[d->n].sign = 0; else if (cloog_constraint_is_lower_bound(j, d->i - 1)) d->g->eq[d->n].sign = 1; else d->g->eq[d->n].sign = -1; d->g->eq[d->n].RHS = clast_bound_from_constraint(j, d->i, d->infos->names); } else { int guarded; if (cloog_constraint_is_lower_bound(j, d->i - 1)) { minmax = 1; d->g->eq[d->n].sign = 1; } else { minmax = 0; d->g->eq[d->n].sign = -1; } guarded = (d->nb_iter >= d->level) ? d->level : 0 ; d->g->eq[d->n].RHS = clast_minmax(d->copy, d->i, minmax, guarded, 0, d->infos); } d->n++; /* 'elimination' of the current constraint, this avoid to use one * constraint more than once. The current line is always eliminated, * and the next lines if they are in a min or a max. */ cloog_constraint_clear(j); if (minmax == -1) return 0; if (minmax == 1) cloog_constraint_set_foreach_constraint(d->copy, clear_lower_bound_at_level, &d->i); else if (minmax == 0) cloog_constraint_set_foreach_constraint(d->copy, clear_upper_bound_at_level, &d->i); return 0; } /** * insert_guard function: * This function inserts a guard in the clast. * A guard on an element (level) is : * -> the conjunction of all the existing constraints where the coefficient of * this element is 0 if the element is an iterator, * -> the conjunction of all the existing constraints if the element isn't an * iterator. * For instance, considering these constraints and the element j: * -3*i +2*j -M >= 0 * 2*i +M >= 0 * this function should return 'if (2*i+M>=0) {'. * - matrix is the polyhedron containing all the constraints, * - level is the column number of the element in matrix we want to use, * - the infos structure gives the user some options about code printing, * the number of parameters in matrix (nb_par), and the arrays of iterator * names and parameters (iters and params). ** * - November 3rd 2001: first version. * - November 14th 2001: a lot of 'purifications'. * - July 31th 2002: (debug) some guard parts are no more redundants. * - August 12th 2002: polyhedra union ('or' conditions) are now supported. * - October 27th 2005: polyhedra union ('or' conditions) are no more supported * (the need came from loop_simplify that may result in * domain unions, now it should be fixed directly in * cloog_loop_simplify). */ static void insert_guard(CloogConstraintSet *constraints, int level, struct clast_stmt ***next, CloogInfos *infos) { int total_dim; struct clast_guard_data data = { level, infos, 0 }; if (!constraints) return; data.copy = cloog_constraint_set_copy(constraints); insert_extra_modulo_guards(data.copy, level, next, infos); cloog_constraint_set_foreach_constraint(constraints, guard_count_bounds, &data); data.g = new_clast_guard(data.n); data.n = 0; /* Well, it looks complicated because I wanted to have a particular, more * readable, ordering, obviously this function may be far much simpler ! */ data.nb_iter = cloog_constraint_set_n_iterators(constraints, infos->names->nb_parameters); /* We search for guard parts. */ total_dim = cloog_constraint_set_total_dimension(constraints); for (data.i = 1; data.i <= total_dim; data.i++) cloog_constraint_set_foreach_constraint(data.copy, insert_guard_constraint, &data); cloog_constraint_set_free(data.copy); data.g->n = data.n; if (data.n) { clast_guard_sort(data.g); **next = &data.g->stmt; *next = &data.g->then; } else free_clast_stmt(&data.g->stmt); } /** * Check if the constant "cst" satisfies the modulo guard that * would be introduced by insert_computed_modulo_guard. * The constant is assumed to have been reduced prior to calling * this function. */ static int constant_modulo_guard_is_satisfied(CloogConstraint *lower, cloog_int_t bound, cloog_int_t cst) { if (cloog_constraint_is_valid(lower)) return cloog_int_le(cst, bound); else return cloog_int_is_zero(cst); } /** * Insert a modulo guard "r % mod == 0" or "r % mod <= bound", * depending on whether lower represents a valid constraint. */ static void insert_computed_modulo_guard(struct clast_reduction *r, CloogConstraint *lower, cloog_int_t mod, cloog_int_t bound, struct clast_stmt ***next) { struct clast_expr *e; struct clast_guard *g; e = &new_clast_binary(clast_bin_mod, &r->expr, mod)->expr; g = new_clast_guard(1); if (!cloog_constraint_is_valid(lower)) { g->eq[0].LHS = e; cloog_int_set_si(bound, 0); g->eq[0].RHS = &new_clast_term(bound, NULL)->expr; g->eq[0].sign = 0; } else { g->eq[0].LHS = e; g->eq[0].RHS = &new_clast_term(bound, NULL)->expr; g->eq[0].sign = -1; } **next = &g->stmt; *next = &g->then; } /* Try and eliminate coefficients from a modulo constraint based on * stride information of an earlier level. * The modulo of the constraint being constructed is "m". * The stride information at level "level" is given by "stride" * and indicated that the iterator i at level "level" is equal to * some expression modulo stride->stride. * If stride->stride is a multiple of "m' then i is also equal to * the expression modulo m and so we can eliminate the coefficient of i. * * If stride->constraint is NULL, then i has a constant value modulo m, stored * stride->offset. We simply multiply this constant with the coefficient * of i and add the result to the constant term, reducing it modulo m. * * If stride->constraint is not NULL, then it is a constraint of the form * * e + k i = s a * * with s equal to stride->stride, e an expression in terms of the * parameters and earlier iterators and a some arbitrary expression * in terms of existentially quantified variables. * stride->factor is a value f such that f * k = -1 mod s. * Adding stride->constraint f * c times to the current modulo constraint, * with c the coefficient of i eliminates i in favor of parameters and * earlier variables. */ static void eliminate_using_stride_constraint(cloog_int_t *line, int len, int nb_iter, CloogStride *stride, int level, cloog_int_t m) { if (!stride) return; if (!cloog_int_is_divisible_by(stride->stride, m)) return; if (stride->constraint) { int i, s_len; cloog_int_t t, v; cloog_int_init(t); cloog_int_init(v); cloog_int_mul(t, line[level], stride->factor); for (i = 1; i < level; ++i) { cloog_constraint_coefficient_get(stride->constraint, i - 1, &v); cloog_int_addmul(line[i], t, v); cloog_int_fdiv_r(line[i], line[i], m); } s_len = cloog_constraint_total_dimension(stride->constraint)+2; for (i = nb_iter + 1; i <= len - 2; ++i) { cloog_constraint_coefficient_get(stride->constraint, i - (len - s_len) - 1, &v); cloog_int_addmul(line[i], t, v); cloog_int_fdiv_r(line[i], line[i], m); } cloog_constraint_constant_get(stride->constraint, &v); cloog_int_addmul(line[len - 1], t, v); cloog_int_fdiv_r(line[len - 1], line[len - 1], m); cloog_int_clear(v); cloog_int_clear(t); } else { cloog_int_addmul(line[len - 1], line[level], stride->offset); cloog_int_fdiv_r(line[len - 1], line[len - 1], m); } cloog_int_set_si(line[level], 0); } /* Temporary structure for communication between insert_modulo_guard and * its cloog_constraint_set_foreach_constraint callback function. */ struct clast_modulo_guard_data { CloogConstraint *lower; int level; struct clast_stmt ***next; CloogInfos *infos; int empty; cloog_int_t val, bound; }; /* Insert a modulo guard for constraint c. * The constraint may be either an equality or an inequality. * Since this function returns -1, it is only called on a single constraint. * In case of an inequality, the constraint is usually an upper bound * on d->level. However, if this variable is an existentially * quantified variable, the upper bound constraint may get removed * as trivially holding and then this function is called with * a lower bound instead. In this case, we need to adjust the constraint * based on the sum of the constant terms of the lower and upper bound * stored in d->bound. */ static int insert_modulo_guard_constraint(CloogConstraint *c, void *user) { struct clast_modulo_guard_data *d = (struct clast_modulo_guard_data *) user; int level = d->level; CloogInfos *infos = d->infos; int i, nb_elts = 0, len, len2, nb_iter, nb_par; int constant; struct cloog_vec *line_vector; cloog_int_t *line; len = cloog_constraint_total_dimension(c) + 2; len2 = cloog_equal_total_dimension(infos->equal) + 2; nb_par = infos->names->nb_parameters; nb_iter = len - 2 - nb_par; line_vector = cloog_vec_alloc(len); line = line_vector->p; cloog_constraint_copy_coefficients(c, line + 1); if (cloog_int_is_pos(line[level])) { cloog_seq_neg(line + 1, line + 1, len - 1); if (!cloog_constraint_is_equality(c)) cloog_int_add(line[len - 1], line[len - 1], d->bound); } cloog_int_neg(line[level], line[level]); assert(cloog_int_is_pos(line[level])); nb_elts = 0; for (i = 1; i <= len-1; ++i) { if (i == level) continue; cloog_int_fdiv_r(line[i], line[i], line[level]); if (cloog_int_is_zero(line[i])) continue; if (i == len-1) continue; nb_elts++; } if (nb_elts || !cloog_int_is_zero(line[len-1])) { struct clast_reduction *r; const char *name; r = new_clast_reduction(clast_red_sum, nb_elts + 1); nb_elts = 0; /* First, the modulo guard : the iterators... */ i = level - 1; if (i > infos->stride_level) i = infos->stride_level; for (; i >= 1; --i) eliminate_using_stride_constraint(line, len, nb_iter, infos->stride[i - 1], i, line[level]); for (i=1;i<=nb_iter;i++) { if (i == level || cloog_int_is_zero(line[i])) continue; name = cloog_names_name_at_level(infos->names, i); r->elts[nb_elts++] = &new_clast_term(line[i], &new_clast_name(name)->expr)->expr; } /* ...the parameters... */ for (i=nb_iter+1;i<=len-2;i++) { if (cloog_int_is_zero(line[i])) continue; name = infos->names->parameters[i-nb_iter-1] ; r->elts[nb_elts++] = &new_clast_term(line[i], &new_clast_name(name)->expr)->expr; } constant = nb_elts == 0; /* ...the constant. */ if (!cloog_int_is_zero(line[len-1])) r->elts[nb_elts++] = &new_clast_term(line[len-1], NULL)->expr; /* our initial computation may have been an overestimate */ r->n = nb_elts; if (constant) { d->empty = !constant_modulo_guard_is_satisfied(d->lower, d->bound, line[len - 1]); free_clast_reduction(r); } else insert_computed_modulo_guard(r, d->lower, line[level], d->bound, d->next); } cloog_vec_free(line_vector); return -1; } /** * insert_modulo_guard: * This function inserts a modulo guard corresponding to an equality * or a pair of inequalities. * Returns 0 if the modulo guard is discovered to be unsatisfiable. * * See insert_equation. * - matrix is the polyhedron containing all the constraints, * - upper and lower are the line numbers of the constraint in matrix * we want to print; in particular, if we want to print an equality, * then lower == -1 and upper is the row of the equality; if we want * to print an inequality, then upper is the row of the upper bound * and lower in the row of the lower bound * - level is the column number of the element in matrix we want to use, * - the infos structure gives the user some options about code printing, * the number of parameters in matrix (nb_par), and the arrays of iterator * names and parameters (iters and params). */ static int insert_modulo_guard(CloogConstraint *upper, CloogConstraint *lower, int level, struct clast_stmt ***next, CloogInfos *infos) { int nb_par; CloogConstraintSet *set; struct clast_modulo_guard_data data = { lower, level, next, infos, 0 }; cloog_int_init(data.val); cloog_constraint_coefficient_get(upper, level-1, &data.val); if (cloog_int_is_one(data.val) || cloog_int_is_neg_one(data.val)) { cloog_int_clear(data.val); return 1; } nb_par = infos->names->nb_parameters; cloog_int_init(data.bound); /* Check if would be emitting the redundant constraint mod(e,m) <= m-1 */ if (cloog_constraint_is_valid(lower)) { cloog_constraint_constant_get(upper, &data.val); cloog_constraint_constant_get(lower, &data.bound); cloog_int_add(data.bound, data.val, data.bound); cloog_constraint_coefficient_get(lower, level-1, &data.val); cloog_int_sub_ui(data.val, data.val, 1); if (cloog_int_eq(data.val, data.bound)) { cloog_int_clear(data.val); cloog_int_clear(data.bound); return 1; } } if (cloog_constraint_needs_reduction(upper, level)) { set = cloog_constraint_set_for_reduction(upper, lower); set = cloog_constraint_set_reduce(set, level, infos->equal, nb_par, &data.bound); cloog_constraint_set_foreach_constraint(set, insert_modulo_guard_constraint, &data); cloog_constraint_set_free(set); } else insert_modulo_guard_constraint(upper, &data); cloog_int_clear(data.val); cloog_int_clear(data.bound); return !data.empty; } /** * We found an equality or a pair of inequalities identifying * a loop with a single iteration, but the user wants us to generate * a loop anyway, so we do it here. */ static int insert_equation_as_loop(CloogDomain *domain, CloogConstraint *upper, CloogConstraint *lower, int level, struct clast_stmt ***next, CloogInfos *infos) { const char *iterator = cloog_names_name_at_level(infos->names, level); struct clast_expr *e1, *e2; struct clast_for *f; e2 = clast_bound_from_constraint(upper, level, infos->names); if (!cloog_constraint_is_valid(lower)) e1 = clast_expr_copy(e2); else e1 = clast_bound_from_constraint(lower, level, infos->names); f = new_clast_for(domain, iterator, e1, e2, infos->stride[level-1]); **next = &f->stmt; *next = &f->body; cloog_constraint_release(lower); cloog_constraint_release(upper); return 1; } /** * insert_equation function: * This function inserts an equality * constraint according to an element in the clast. * Returns 1 if the calling function should recurse into inner loops. * * An equality can be preceded by a 'modulo guard'. * For instance, consider the constraint i -2*j = 0 and the * element j: pprint_equality should return 'if(i%2==0) { j = i/2 ;'. * - matrix is the polyhedron containing all the constraints, * - num is the line number of the constraint in matrix we want to print, * - level is the column number of the element in matrix we want to use, * - the infos structure gives the user some options about code printing, * the number of parameters in matrix (nb_par), and the arrays of iterator * names and parameters (iters and params). ** * - November 13th 2001: first version. * - June 26th 2003: simplification of the modulo guards (remove parts such as * modulo is 0, compare vivien or vivien2 with a previous * version for an idea). * - June 29th 2003: non-unit strides support. * - July 14th 2003: (debug) no more print the constant in the modulo guard when * it was previously included in a stride calculation. */ static int insert_equation(CloogDomain *domain, CloogConstraint *upper, CloogConstraint *lower, int level, struct clast_stmt ***next, CloogInfos *infos) { struct clast_expr *e; struct clast_assignment *ass; if (!infos->options->otl) return insert_equation_as_loop(domain, upper, lower, level, next, infos); if (!insert_modulo_guard(upper, lower, level, next, infos)) { cloog_constraint_release(lower); cloog_constraint_release(upper); return 0; } if (cloog_constraint_is_valid(lower) || !clast_equal_add(infos->equal, NULL, level, upper, infos)) { /* Finally, the equality. */ /* If we have to make a block by dimension, we start the block. Function * pprint knows if there is an equality, if this is the case, it checks * for the same following condition to close the brace. */ if (infos->options->block) { struct clast_block *b = new_clast_block(); **next = &b->stmt; *next = &b->body; } e = clast_bound_from_constraint(upper, level, infos->names); ass = new_clast_assignment(cloog_names_name_at_level(infos->names, level), e); **next = &ass->stmt; *next = &(**next)->next; } cloog_constraint_release(lower); cloog_constraint_release(upper); return 1; } /** * Insert a loop that is executed exactly once as an assignment. * In particular, the loop * * for (i = e; i <= e; ++i) { * S; * } * * is generated as * * i = e; * S; * */ static void insert_otl_for(CloogConstraintSet *constraints, int level, struct clast_expr *e, struct clast_stmt ***next, CloogInfos *infos) { const char *iterator; iterator = cloog_names_name_at_level(infos->names, level); if (!clast_equal_add(infos->equal, constraints, level, cloog_constraint_invalid(), infos)) { struct clast_assignment *ass; if (infos->options->block) { struct clast_block *b = new_clast_block(); **next = &b->stmt; *next = &b->body; } ass = new_clast_assignment(iterator, e); **next = &ass->stmt; *next = &(**next)->next; } else { free_clast_expr(e); } } /** * Insert a loop that is executed at most once as an assignment followed * by a guard. In particular, the loop * * for (i = e1; i <= e2; ++i) { * S; * } * * is generated as * * i = e1; * if (i <= e2) { * S; * } * */ static void insert_guarded_otl_for(CloogConstraintSet *constraints, int level, struct clast_expr *e1, struct clast_expr *e2, struct clast_stmt ***next, CloogInfos *infos) { const char *iterator; struct clast_assignment *ass; struct clast_guard *guard; iterator = cloog_names_name_at_level(infos->names, level); if (infos->options->block) { struct clast_block *b = new_clast_block(); **next = &b->stmt; *next = &b->body; } ass = new_clast_assignment(iterator, e1); **next = &ass->stmt; *next = &(**next)->next; guard = new_clast_guard(1); guard->eq[0].sign = -1; guard->eq[0].LHS = &new_clast_term(infos->state->one, &new_clast_name(iterator)->expr)->expr; guard->eq[0].RHS = e2; **next = &guard->stmt; *next = &guard->then; } /** * insert_for function: * This function inserts a for loop in the clast. * Returns 1 if the calling function should recurse into inner loops. * * A loop header according to an element is the conjunction of a minimum and a * maximum on a given element (they give the loop bounds). * For instance, considering these constraints and the element j: * i + j -9*M >= 0 * -j +5*M >= 0 * j -4*M >= 0 * this function should return 'for (j=max(-i+9*M,4*M),j<=5*M;j++) {'. * - constraints contains all constraints, * - level is the column number of the element in matrix we want to use, * - otl is set if the loop is executed at most once, * - the infos structure gives the user some options about code printing, * the number of parameters in matrix (nb_par), and the arrays of iterator * names and parameters (iters and params). */ static int insert_for(CloogDomain *domain, CloogConstraintSet *constraints, int level, int otl, struct clast_stmt ***next, CloogInfos *infos) { const char *iterator; struct clast_expr *e1; struct clast_expr *e2; e1 = clast_minmax(constraints, level, 1, 0, 1, infos); e2 = clast_minmax(constraints, level, 0, 0, 0, infos); if (clast_expr_is_bigger_constant(e1, e2)) { free_clast_expr(e1); free_clast_expr(e2); return 0; } /* If min and max are not equal there is a 'for' else, there is a '='. * In the special case e1 = e2 = NULL, this is an infinite loop * so this is not a '='. */ if (e1 && e2 && infos->options->otl && clast_expr_equal(e1, e2)) { free_clast_expr(e2); insert_otl_for(constraints, level, e1, next, infos); } else if (otl) { insert_guarded_otl_for(constraints, level, e1, e2, next, infos); } else { struct clast_for *f; iterator = cloog_names_name_at_level(infos->names, level); f = new_clast_for(domain, iterator, e1, e2, infos->stride[level-1]); **next = &f->stmt; *next = &f->body; } return 1; } /** * insert_block function: * This function inserts a statement block. * - block is the statement block, * - level is the number of loops enclosing the statement, * - the infos structure gives the user some options about code printing, * the number of parameters in domain (nb_par), and the arrays of iterator * names and parameters (iters and params). ** * - September 21th 2003: first version (pick from pprint function). */ static void insert_block(CloogDomain *domain, CloogBlock *block, int level, struct clast_stmt ***next, CloogInfos *infos) { CloogStatement * statement ; struct clast_stmt *subs; if (!block) return; for (statement = block->statement; statement; statement = statement->next) { CloogStatement *s_next = statement->next; subs = clast_equal(level,infos); statement->next = NULL; **next = &new_clast_user_stmt(domain, statement, subs)->stmt; statement->next = s_next; *next = &(**next)->next; } } /** * insert_loop function: * This function converts the content of a CloogLoop structure (loop) into a * clast_stmt (inserted at **next). * The iterator (level) of * the current loop is given by 'level': this is the column number of the * domain corresponding to the current loop iterator. The data of a loop are * written in this order: * 1. The guard of the loop, i.e. each constraint in the domain that does not * depend on the iterator (when the entry in the column 'level' is 0). * 2. The iteration domain of the iterator, given by the constraints in the * domain depending on the iterator, i.e.: * * an equality if the iterator has only one value (possibly preceded by * a guard verifying if this value is integral), *OR* * * a loop from the minimum possible value of the iterator to the maximum * possible value. * 3. The included statement block. * 4. The inner loops (recursive call). * 5. The following loops (recursive call). * - level is the recursion level or the iteration level that we are printing, * - the infos structure gives the user some options about code printing, * the number of parameters in domain (nb_par), and the arrays of iterator * names and parameters (iters and params). ** * - November 2nd 2001: first version. * - March 6th 2003: infinite domain support. * - April 19th 2003: (debug) NULL loop support. * - June 29th 2003: non-unit strides support. * - April 28th 2005: (debug) level is level+equality when print statement! * - June 16th 2005: (debug) the N. Vasilache normalization step has been * added to avoid iteration duplication (see DaeGon Kim * bug in cloog_program_generate). Try vasilache.cloog * with and without the call to cloog_polylib_matrix_normalize, * using -f 8 -l 9 options for an idea. * - September 15th 2005: (debug) don't close equality braces when unnecessary. * - October 16th 2005: (debug) scalar value is saved for next loops. */ static void insert_loop(CloogLoop * loop, int level, struct clast_stmt ***next, CloogInfos *infos) { int equality = 0; CloogConstraintSet *constraints, *temp; struct clast_stmt **top = *next; CloogConstraint *i, *j; int empty_loop = 0; /* It can happen that loop be NULL when an input polyhedron is empty. */ if (loop == NULL) return; /* The constraints do not always have a shape that allows us to generate code from it, * thus we normalize it, we also simplify it with the equalities. */ temp = cloog_domain_constraints(loop->domain); cloog_constraint_set_normalize(temp,level); constraints = cloog_constraint_set_simplify(temp,infos->equal,level, infos->names->nb_parameters); cloog_constraint_set_free(temp); if (level) { infos->stride[level - 1] = loop->stride; infos->stride_level++; } /* First of all we have to print the guard. */ insert_guard(constraints,level, next, infos); if (level && cloog_constraint_set_contains_level(constraints, level, infos->names->nb_parameters)) { /* We scan all the constraints to know in which case we are : * [[if] equation] or [for]. */ if (cloog_constraint_is_valid(i = cloog_constraint_set_defining_equality(constraints, level))) { empty_loop = !insert_equation(loop->unsimplified, i, cloog_constraint_invalid(), level, next, infos); equality = 1 ; } else if (cloog_constraint_is_valid(i = cloog_constraint_set_defining_inequalities(constraints, level, &j, infos->names->nb_parameters))) { empty_loop = !insert_equation(loop->unsimplified, i, j, level, next, infos); } else empty_loop = !insert_for(loop->unsimplified, constraints, level, loop->otl, next, infos); } if (!empty_loop) { /* Finally, if there is an included statement block, print it. */ insert_block(loop->unsimplified, loop->block, level+equality, next, infos); /* Go to the next level. */ if (loop->inner != NULL) insert_loop(loop->inner, level+1, next, infos); } if (level) { cloog_equal_del(infos->equal,level); infos->stride_level--; } cloog_constraint_set_free(constraints); /* Go to the next loop on the same level. */ while (*top) top = &(*top)->next; if (loop->next != NULL) insert_loop(loop->next, level, &top,infos); } struct clast_stmt *cloog_clast_create(CloogProgram *program, CloogOptions *options) { CloogInfos *infos = ALLOC(CloogInfos); int nb_levels; struct clast_stmt *root = &new_clast_root(program->names)->stmt; struct clast_stmt **next = &root->next; infos->state = options->state; infos->names = program->names; infos->options = options; infos->scaldims = program->scaldims; infos->nb_scattdims = program->nb_scattdims; /* Allocation for the array of strides, there is a +1 since the statement can * be included inside an external loop without iteration domain. */ nb_levels = program->names->nb_scattering+program->names->nb_iterators+1; infos->stride = ALLOCN(CloogStride *, nb_levels); infos->stride_level = 0; infos->equal = cloog_equal_alloc(nb_levels, nb_levels, program->names->nb_parameters); insert_loop(program->loop, 0, &next, infos); cloog_equal_free(infos->equal); free(infos->stride); free(infos); return root; } struct clast_stmt *cloog_clast_create_from_input(CloogInput *input, CloogOptions *options) { CloogProgram *program; struct clast_stmt *root; program = cloog_program_alloc(input->context, input->ud, options); free(input); program = cloog_program_generate(program, options); root = cloog_clast_create(program, options); cloog_program_free(program); return root; } cloog-parma-0.16.1/cloog-core/source/isl/0000755000175000017500000000000011511607625015125 500000000000000cloog-parma-0.16.1/cloog-core/source/isl/constraints.c0000644000175000017500000005636411511333020017557 00000000000000#include #include #include #include #include #include #define ALLOC(type) (type*)malloc(sizeof(type)) #define ALLOCN(type,n) (type*)malloc((n)*sizeof(type)) CloogConstraintSet *cloog_constraint_set_from_isl_basic_set(struct isl_basic_set *bset) { return (CloogConstraintSet *)bset; } CloogConstraint *cloog_constraint_from_isl_constraint(struct isl_constraint *constraint) { return (CloogConstraint *)constraint; } isl_basic_set *cloog_constraints_set_to_isl(CloogConstraintSet *constraints) { return (isl_basic_set *)constraints; } /****************************************************************************** * Memory leaks hunting * ******************************************************************************/ void cloog_constraint_set_free(CloogConstraintSet *constraints) { isl_basic_set_free(cloog_constraints_set_to_isl(constraints)); } int cloog_constraint_set_contains_level(CloogConstraintSet *constraints, int level, int nb_parameters) { isl_basic_set *bset; bset = cloog_constraints_set_to_isl(constraints); return isl_basic_set_dim(bset, isl_dim_set) >= level; } struct cloog_isl_dim { enum isl_dim_type type; int pos; }; static struct cloog_isl_dim basic_set_cloog_dim_to_isl_dim( __isl_keep isl_basic_set *bset, int pos) { enum isl_dim_type types[] = { isl_dim_set, isl_dim_div, isl_dim_param }; int i; struct cloog_isl_dim ci_dim; for (i = 0; i < 3; ++i) { unsigned dim = isl_basic_set_dim(bset, types[i]); if (pos < dim) { ci_dim.type = types[i]; ci_dim.pos = pos; return ci_dim; } pos -= dim; } assert(0); } static struct cloog_isl_dim set_cloog_dim_to_isl_dim( CloogConstraintSet *constraints, int pos) { isl_basic_set *bset; bset = cloog_constraints_set_to_isl(constraints); return basic_set_cloog_dim_to_isl_dim(bset, pos); } /* Check if the variable at position level is defined by an * equality. If so, return the row number. Otherwise, return -1. */ CloogConstraint *cloog_constraint_set_defining_equality( CloogConstraintSet *constraints, int level) { struct isl_constraint *c; struct cloog_isl_dim dim; isl_basic_set *bset; bset = cloog_constraints_set_to_isl(constraints); dim = set_cloog_dim_to_isl_dim(constraints, level - 1); if (isl_basic_set_has_defining_equality(bset, dim.type, dim.pos, &c)) return cloog_constraint_from_isl_constraint(c); else return NULL; } /* Check if the variable (e) at position level is defined by a * pair of inequalities * + -m e + + k1 >= 0 * <-a, i> + m e + <-b, p> + k2 >= 0 * with 0 <= k1 + k2 < m * If so return the row number of the upper bound and set *lower * to the row number of the lower bound. If not, return -1. * * If the variable at position level occurs in any other constraint, * then we currently return -1. The modulo guard that we would generate * would still be correct, but we would also need to generate * guards corresponding to the other constraints, and this has not * been implemented yet. */ CloogConstraint *cloog_constraint_set_defining_inequalities( CloogConstraintSet *constraints, int level, CloogConstraint **lower, int nb_par) { struct isl_constraint *u; struct isl_constraint *l; struct isl_constraint *c; struct cloog_isl_dim dim; struct isl_basic_set *bset; bset = cloog_constraints_set_to_isl(constraints); dim = set_cloog_dim_to_isl_dim(constraints, level - 1); if (!isl_basic_set_has_defining_inequalities(bset, dim.type, dim.pos, &l, &u)) return cloog_constraint_invalid(); for (c = isl_basic_set_first_constraint(isl_basic_set_copy(bset)); c; c = isl_constraint_next(c)) { if (isl_constraint_is_equal(c, l)) continue; if (isl_constraint_is_equal(c, u)) continue; *lower = cloog_constraint_from_isl_constraint(c); if (cloog_constraint_involves(*lower, level-1)) { isl_constraint_free(l); isl_constraint_free(u); *lower = NULL; isl_constraint_free(c); return NULL; } } *lower = cloog_constraint_from_isl_constraint(l); return cloog_constraint_from_isl_constraint(u); } int cloog_constraint_set_total_dimension(CloogConstraintSet *constraints) { isl_basic_set *bset; bset = cloog_constraints_set_to_isl(constraints); return isl_basic_set_total_dim(bset); } int cloog_constraint_set_n_iterators(CloogConstraintSet *constraints, int n_par) { isl_basic_set *bset; bset = cloog_constraints_set_to_isl(constraints); return isl_basic_set_dim(bset, isl_dim_set); } /****************************************************************************** * Equalities spreading functions * ******************************************************************************/ /* Equalities are stored inside a Matrix data structure called "equal". * This matrix has (nb_scattering + nb_iterators + 1) rows (i.e. total * dimensions + 1, the "+ 1" is because a statement can be included inside an * external loop without iteration domain), and (nb_scattering + nb_iterators + * nb_parameters + 2) columns (all unknowns plus the scalar plus the equality * type). The ith row corresponds to the equality "= 0" for the ith dimension * iterator. The first column gives the equality type (0: no equality, then * EQTYPE_* -see pprint.h-). At each recursion of pprint, if an equality for * the current level is found, the corresponding row is updated. Then the * equality if it exists is used to simplify expressions (e.g. if we have * "i+1" while we know that "i=2", we simplify it in "3"). At the end of * the pprint call, the corresponding row is reset to zero. */ CloogEqualities *cloog_equal_alloc(int n, int nb_levels, int nb_parameters) { int i; CloogEqualities *equal = ALLOC(CloogEqualities); equal->total_dim = nb_levels - 1 + nb_parameters; equal->n = n; equal->constraints = ALLOCN(CloogConstraintSet *, n); equal->types = ALLOCN(int, n); for (i = 0; i < n; ++i) { equal->constraints[i] = NULL; equal->types[i] = EQTYPE_NONE; } return equal; } int cloog_equal_total_dimension(CloogEqualities *equal) { return equal->total_dim; } void cloog_equal_free(CloogEqualities *equal) { int i; isl_basic_set *bset; for (i = 0; i < equal->n; ++i) { bset = cloog_constraints_set_to_isl(equal->constraints[i]); isl_basic_set_free(bset); } free(equal->constraints); free(equal->types); free(equal); } int cloog_equal_count(CloogEqualities *equal) { return equal->n; } /** * cloog_constraint_equal_type function : * This function returns the type of the equality in the constraint (line) of * (constraints) for the element (level). An equality is 'constant' iff all * other factors are null except the constant one. It is a 'pure item' iff * it is equal or opposite to a single variable or parameter. * Otherwise it is an 'affine expression'. * For instance: * i = -13 is constant, i = j, j = -M are pure items, * j = 2*M, i = j+1, 2*j = M are affine expressions. * * - constraints is the matrix of constraints, * - level is the column number in equal of the element which is 'equal to', */ static int cloog_constraint_equal_type(CloogConstraint *cc, int level) { int i; isl_int c; int type = EQTYPE_NONE; struct isl_constraint *constraint = &cc->isl; isl_int_init(c); isl_constraint_get_constant(constraint, &c); if (!isl_int_is_zero(c)) type = EQTYPE_CONSTANT; isl_constraint_get_coefficient(constraint, isl_dim_set, level - 1, &c); if (!isl_int_is_one(c) && !isl_int_is_negone(c)) type = EQTYPE_EXAFFINE; for (i = 0; i < isl_constraint_dim(constraint, isl_dim_param); ++i) { isl_constraint_get_coefficient(constraint, isl_dim_param, i, &c); if (isl_int_is_zero(c)) continue; if ((!isl_int_is_one(c) && !isl_int_is_negone(c)) || type != EQTYPE_NONE) { type = EQTYPE_EXAFFINE; break; } type = EQTYPE_PUREITEM; } for (i = 0; i < isl_constraint_dim(constraint, isl_dim_set); ++i) { if (i == level - 1) continue; isl_constraint_get_coefficient(constraint, isl_dim_set, i, &c); if (isl_int_is_zero(c)) continue; if ((!isl_int_is_one(c) && !isl_int_is_negone(c)) || type != EQTYPE_NONE) { type = EQTYPE_EXAFFINE; break; } type = EQTYPE_PUREITEM; } for (i = 0; i < isl_constraint_dim(constraint, isl_dim_div); ++i) { isl_constraint_get_coefficient(constraint, isl_dim_div, i, &c); if (isl_int_is_zero(c)) continue; if ((!isl_int_is_one(c) && !isl_int_is_negone(c)) || type != EQTYPE_NONE) { type = EQTYPE_EXAFFINE; break; } type = EQTYPE_PUREITEM; } isl_int_clear(c); if (type == EQTYPE_NONE) type = EQTYPE_CONSTANT; return type; } int cloog_equal_type(CloogEqualities *equal, int level) { return equal->types[level-1]; } /** * cloog_equal_add function: * This function updates the row (level-1) of the equality matrix (equal) with * the row that corresponds to the row (line) of the matrix (matrix). * - equal is the matrix of equalities, * - matrix is the matrix of constraints, * - level is the column number in matrix of the element which is 'equal to', * - line is the line number in matrix of the constraint we want to study, * - the infos structure gives the user all options on code printing and more. ** * line is set to an invalid constraint for equalities that CLooG itself has * discovered because the lower and upper bound of a loop happened to be equal. * This situation shouldn't happen in the isl port since isl should * have found the equality itself. */ void cloog_equal_add(CloogEqualities *equal, CloogConstraintSet *matrix, int level, CloogConstraint *line, int nb_par) { struct isl_basic_set *bset; unsigned nparam; assert(cloog_constraint_is_valid(line)); equal->types[level-1] = cloog_constraint_equal_type(line, level); bset = isl_basic_set_from_constraint(isl_constraint_copy(&line->isl)); nparam = isl_basic_set_n_param(bset); bset = isl_basic_set_extend(bset, nparam, equal->total_dim - nparam, 0, 0, 0); bset = isl_basic_set_finalize(bset); equal->constraints[level-1] = cloog_constraint_set_from_isl_basic_set(bset); } /** * cloog_equal_del function : * This function reset the equality corresponding to the iterator (level) * in the equality matrix (equal). * - July 2nd 2002: first version. */ void cloog_equal_del(CloogEqualities *equal, int level) { isl_basic_set *bset; bset = cloog_constraints_set_to_isl(equal->constraints[level - 1]); equal->types[level-1] = EQTYPE_NONE; isl_basic_set_free(bset); equal->constraints[level-1] = NULL; } /****************************************************************************** * Processing functions * ******************************************************************************/ /** * Function cloog_constraint_set_normalize: * This function will modify the constraint system in such a way that when * there is an equality depending on the element at level 'level', there are * no more (in)equalities depending on this element. * * The simplified form of isl automatically satisfies this condition. */ void cloog_constraint_set_normalize(CloogConstraintSet *matrix, int level) { } /** * cloog_constraint_set_copy function: * this functions builds and returns a "hard copy" (not a pointer copy) of a * CloogConstraintSet data structure. */ CloogConstraintSet *cloog_constraint_set_copy(CloogConstraintSet *constraints) { isl_basic_set *bset; bset = cloog_constraints_set_to_isl(constraints); return cloog_constraint_set_from_isl_basic_set(isl_basic_set_dup(bset)); } /** * cloog_constraint_set_simplify function: * this function simplify all constraints inside the matrix "matrix" thanks to * an equality matrix "equal" that gives for some elements of the affine * constraint an equality with other elements, preferably constants. * For instance, if a row of the matrix contains i+j+3>=0 and the equality * matrix gives i=n and j=2, the constraint is simplified to n+3>=0. The * simplified constraints are returned back inside a new simplified matrix. * - matrix is the set of constraints to simplify, * - equal is the matrix of equalities, * - level is a level we don't want to simplify (-1 if none), * - nb_par is the number of parameters of the program. ** * isl should have performed these simplifications already in isl_set_gist. */ CloogConstraintSet *cloog_constraint_set_simplify(CloogConstraintSet *matrix, CloogEqualities *equal, int level, int nb_par) { return cloog_constraint_set_copy(matrix); } static struct cloog_isl_dim constraint_cloog_dim_to_isl_dim( CloogConstraint *constraint, int pos) { enum isl_dim_type types[] = { isl_dim_set, isl_dim_div, isl_dim_param }; int i; struct cloog_isl_dim ci_dim; for (i = 0; i < 3; ++i) { unsigned dim = isl_constraint_dim(&constraint->isl, types[i]); if (pos < dim) { ci_dim.type = types[i]; ci_dim.pos = pos; return ci_dim; } pos -= dim; } assert(0); } static struct clast_expr *div_expr(CloogConstraint *constraint, int pos, CloogNames *names) { int i, nb_elts; unsigned dim = cloog_constraint_total_dimension(constraint); cloog_int_t c; struct clast_reduction *r; struct clast_expr *e = NULL; struct isl_div *div; div = isl_constraint_div(&constraint->isl, pos); cloog_int_init(c); for (i = 0, nb_elts = 0; i < dim; ++i) { struct cloog_isl_dim dim; dim = constraint_cloog_dim_to_isl_dim(constraint, i); isl_div_get_coefficient(div, dim.type, dim.pos, &c); if (!cloog_int_is_zero(c)) ++nb_elts; } isl_div_get_constant(div, &c); if (!cloog_int_is_zero(c)) ++nb_elts; r = new_clast_reduction(clast_red_sum, nb_elts); for (i = 0, nb_elts = 0; i < dim; ++i) { struct clast_expr *v; struct cloog_isl_dim dim; dim = constraint_cloog_dim_to_isl_dim(constraint, i); isl_div_get_coefficient(div, dim.type, dim.pos, &c); if (cloog_int_is_zero(c)) continue; v = cloog_constraint_variable_expr(constraint, 1 + i, names); r->elts[nb_elts++] = &new_clast_term(c, v)->expr; } isl_div_get_constant(div, &c); if (!cloog_int_is_zero(c)) r->elts[nb_elts++] = &new_clast_term(c, NULL)->expr; isl_div_get_denominator(div, &c); e = &new_clast_binary(clast_bin_fdiv, &r->expr, c)->expr; cloog_int_clear(c); isl_div_free(div); return e; } /** * Return clast_expr corresponding to the variable "level" (1 based) in * the given constraint. */ struct clast_expr *cloog_constraint_variable_expr(CloogConstraint *constraint, int level, CloogNames *names) { struct cloog_isl_dim dim; const char *name; assert(constraint); dim = constraint_cloog_dim_to_isl_dim(constraint, level - 1); if (dim.type == isl_dim_div) return div_expr(constraint, dim.pos, names); if (dim.type == isl_dim_set) name = cloog_names_name_at_level(names, level); else name = names->parameters[dim.pos]; return &new_clast_name(name)->expr; } /** * Return true if constraint c involves variable v (zero-based). */ int cloog_constraint_involves(CloogConstraint *constraint, int v) { isl_int c; int res; isl_int_init(c); cloog_constraint_coefficient_get(constraint, v, &c); res = !isl_int_is_zero(c); isl_int_clear(c); return res; } int cloog_constraint_is_lower_bound(CloogConstraint *constraint, int v) { isl_int c; int res; isl_int_init(c); cloog_constraint_coefficient_get(constraint, v, &c); res = isl_int_is_pos(c); isl_int_clear(c); return res; } int cloog_constraint_is_upper_bound(CloogConstraint *constraint, int v) { isl_int c; int res; isl_int_init(c); cloog_constraint_coefficient_get(constraint, v, &c); res = isl_int_is_neg(c); isl_int_clear(c); return res; } int cloog_constraint_is_equality(CloogConstraint *constraint) { return isl_constraint_is_equality(&constraint->isl); } void cloog_constraint_clear(CloogConstraint *constraint) { isl_constraint_clear(&constraint->isl); } void cloog_constraint_coefficient_get(CloogConstraint *constraint, int var, cloog_int_t *val) { struct cloog_isl_dim dim; if (!constraint) return; dim = constraint_cloog_dim_to_isl_dim(constraint, var); isl_constraint_get_coefficient(&constraint->isl, dim.type, dim.pos, val); } void cloog_constraint_coefficient_set(CloogConstraint *constraint, int var, cloog_int_t val) { struct cloog_isl_dim dim; assert(constraint); dim = constraint_cloog_dim_to_isl_dim(constraint, var); isl_constraint_set_coefficient(&constraint->isl, dim.type, dim.pos, val); } void cloog_constraint_constant_get(CloogConstraint *constraint, cloog_int_t *val) { isl_constraint_get_constant(&constraint->isl, val); } /** * Copy the coefficient of constraint c into dst in PolyLib order, * i.e., first the coefficients of the variables, then the coefficients * of the parameters and finally the constant. */ void cloog_constraint_copy_coefficients(CloogConstraint *constraint, cloog_int_t *dst) { int i; unsigned dim; dim = isl_constraint_dim(&constraint->isl, isl_dim_all); for (i = 0; i < dim; ++i) cloog_constraint_coefficient_get(constraint, i, dst+i); cloog_constraint_constant_get(constraint, dst+dim); } CloogConstraint *cloog_constraint_invalid(void) { return NULL; } int cloog_constraint_is_valid(CloogConstraint *constraint) { return constraint != NULL; } int cloog_constraint_total_dimension(CloogConstraint *constraint) { return isl_constraint_dim(&constraint->isl, isl_dim_all); } /** * Check whether there is any need for the constraint "upper" on * "level" to get reduced. * In case of the isl backend, there should be no need to do so * if the level corresponds to an existentially quantified variable. * Moreover, the way reduction is performed does not work for such * variables since its position might chance during the construction * of a set for reduction. */ int cloog_constraint_needs_reduction(CloogConstraint *upper, int level) { isl_basic_set *bset; struct cloog_isl_dim dim; bset = isl_basic_set_from_constraint(isl_constraint_copy(&upper->isl)); dim = basic_set_cloog_dim_to_isl_dim(bset, level - 1); isl_basic_set_free(bset); return dim.type == isl_dim_set; } /** * Create a CloogConstraintSet containing enough information to perform * a reduction on the upper equality (in this case lower is an invalid * CloogConstraint) or the pair of inequalities upper and lower * from within insert_modulo_guard. * In the isl backend, we return a CloogConstraintSet containing both * bounds, as the stride may change during the reduction and we may * need to recompute the bound on the modulo expression. */ CloogConstraintSet *cloog_constraint_set_for_reduction(CloogConstraint *upper, CloogConstraint *lower) { struct isl_basic_set *bset; bset = isl_basic_set_from_constraint(isl_constraint_copy(&upper->isl)); if (cloog_constraint_is_valid(lower)) bset = isl_basic_set_add_constraint(bset, isl_constraint_copy(&lower->isl)); return cloog_constraint_set_from_isl_basic_set(bset); } static int add_constant_term(CloogConstraint *c, void *user) { isl_int *bound = (isl_int *)user; isl_int v; isl_int_init(v); cloog_constraint_constant_get(c, &v); isl_int_add(*bound, *bound, v); isl_int_clear(v); return 0; } /** * Reduce the modulo guard expressed by "constraints" using equalities * found in outer nesting levels (stored in "equal"). * The modulo guard may be an equality or a pair of inequalities. * In case of a pair of inequalities, *bound contains the bound on the * corresponding modulo expression. If any reduction is performed * then this bound is recomputed. * * "level" may not correspond to an existentially quantified variable. * * We first check if there are any equalities we can use. If not, * there is again nothing to reduce. * For the actual reduction, we use isl_basic_set_gist, but this * function will only perform the reduction we want hear if the * the variable that imposes the modulo constraint has been projected * out (i.e., turned into an existentially quantified variable). * After the call to isl_basic_set_gist, we need to move the * existential variable back into the position where the calling * function expects it (assuming there are any constraints left). * We do this by adding equality between the given dimension and * the existentially quantified variable. */ CloogConstraintSet *cloog_constraint_set_reduce(CloogConstraintSet *constraints, int level, CloogEqualities *equal, int nb_par, cloog_int_t *bound) { int j; isl_ctx *ctx; struct isl_basic_set *eq; struct isl_basic_map *id; struct cloog_isl_dim dim; struct isl_constraint *c; struct isl_div *div; unsigned constraints_dim; int pos; isl_basic_set *bset; bset = cloog_constraints_set_to_isl(constraints); ctx = isl_basic_set_get_ctx(bset); dim = set_cloog_dim_to_isl_dim(constraints, level - 1); assert(dim.type == isl_dim_set); eq = NULL; for (j = 0; j < level - 1; ++j) { isl_basic_set *bset_j; if (equal->types[j] != EQTYPE_EXAFFINE) continue; bset_j = cloog_constraints_set_to_isl(equal->constraints[j]); if (!eq) eq = isl_basic_set_copy(bset_j); else eq = isl_basic_set_intersect(eq, isl_basic_set_copy(bset_j)); } if (!eq) return constraints; id = isl_basic_map_identity(isl_basic_set_get_dim(bset)); id = isl_basic_map_remove_dims(id, isl_dim_out, dim.pos, 1); bset = isl_basic_set_apply(bset, isl_basic_map_copy(id)); bset = isl_basic_set_apply(bset, isl_basic_map_reverse(id)); constraints_dim = isl_basic_set_dim(bset, isl_dim_set); eq = isl_basic_set_remove_dims(eq, isl_dim_set, constraints_dim, isl_basic_set_dim(eq, isl_dim_set) - constraints_dim); bset = isl_basic_set_gist(bset, eq); if (isl_basic_set_dim(bset, isl_dim_div) != 1) return cloog_constraint_set_from_isl_basic_set(bset); div = isl_basic_set_div(isl_basic_set_copy(bset), 0); c = isl_equality_alloc(isl_basic_set_get_dim(bset)); c = isl_constraint_add_div(c, div, &pos); isl_constraint_set_coefficient(c, isl_dim_set, dim.pos, ctx->one); isl_constraint_set_coefficient(c, isl_dim_div, pos, ctx->negone); bset = isl_basic_set_add_constraint(bset, c); isl_int_set_si(*bound, 0); constraints = cloog_constraint_set_from_isl_basic_set(bset); cloog_constraint_set_foreach_constraint(constraints, add_constant_term, bound); return cloog_constraint_set_from_isl_basic_set(bset); } CloogConstraint *cloog_constraint_copy(CloogConstraint *constraint) { return cloog_constraint_from_isl_constraint( isl_constraint_copy(&constraint->isl)); } void cloog_constraint_release(CloogConstraint *constraint) { isl_constraint_free(&constraint->isl); } struct cloog_isl_foreach { int (*fn)(CloogConstraint *constraint, void *user); void *user; }; static int cloog_isl_foreach_cb(__isl_take isl_constraint *c, void *user) { struct cloog_isl_foreach *data = (struct cloog_isl_foreach *)user; int ret; if (isl_constraint_is_div_constraint(c)) { isl_constraint_free(c); return 0; } ret = data->fn(cloog_constraint_from_isl_constraint(c), data->user); isl_constraint_free(c); return ret; } int cloog_constraint_set_foreach_constraint(CloogConstraintSet *constraints, int (*fn)(CloogConstraint *constraint, void *user), void *user) { struct cloog_isl_foreach data = { fn, user }; isl_basic_set *bset; bset = cloog_constraints_set_to_isl(constraints); return isl_basic_set_foreach_constraint(bset, cloog_isl_foreach_cb, &data); } CloogConstraint *cloog_equal_constraint(CloogEqualities *equal, int j) { isl_basic_set *bset; bset = cloog_constraints_set_to_isl(equal->constraints[j]); return cloog_constraint_from_isl_constraint( isl_basic_set_first_constraint(isl_basic_set_copy(bset))); } cloog-parma-0.16.1/cloog-core/source/isl/backend.c0000644000175000017500000000137211321074700016572 00000000000000#include /** * Allocate and initialize full state. */ CloogState *cloog_state_malloc(void) { return cloog_isl_state_malloc(NULL); } /** * Allocate and initialize full state for isl backend. */ CloogState *cloog_isl_state_malloc(struct isl_ctx *ctx) { CloogState *state; int allocated = !ctx; state = cloog_core_state_malloc(); if (!ctx) ctx = isl_ctx_alloc(); state->backend = isl_alloc_type(ctx, CloogBackend); state->backend->ctx = ctx; state->backend->ctx_allocated = allocated; return state; } /** * Free state and backend independent parts. */ void cloog_state_free(CloogState *state) { if (state->backend->ctx_allocated) isl_ctx_free(state->backend->ctx); free(state->backend); cloog_core_state_free(state); } cloog-parma-0.16.1/cloog-core/source/isl/domain.c0000644000175000017500000013463211511331422016456 00000000000000#include #include #include #include #include #include #include #include #include CloogDomain *cloog_domain_from_isl_set(struct isl_set *set) { set = isl_set_detect_equalities(set); set = isl_set_compute_divs(set); return (CloogDomain *)set; } __isl_give isl_set *isl_set_from_cloog_domain(CloogDomain *domain) { return (isl_set *)domain; } CloogScattering *cloog_scattering_from_isl_map(struct isl_map *map) { return (CloogScattering *)map; } __isl_give isl_map *isl_map_from_cloog_scattering(CloogScattering *scattering) { return (isl_map *)scattering; } /** * Returns true if each scattering dimension is defined in terms * of the original iterators. */ int cloog_scattering_fully_specified(CloogScattering *scattering, CloogDomain *domain) { isl_map *map = isl_map_from_cloog_scattering(scattering); return isl_map_is_single_valued(map); } CloogConstraintSet *cloog_domain_constraints(CloogDomain *domain) { isl_basic_set *bset; isl_set *set = isl_set_from_cloog_domain(domain); assert(isl_set_n_basic_set(set) == 1); bset = isl_set_copy_basic_set(set); return cloog_constraint_set_from_isl_basic_set(bset); } void cloog_domain_print_constraints(FILE *foo, CloogDomain *domain, int print_number) { isl_basic_set *bset; isl_set *set = isl_set_from_cloog_domain(domain); if (print_number) isl_set_print(set, foo, 0, ISL_FORMAT_EXT_POLYLIB); else { assert(isl_set_n_basic_set(set) == 1); bset = isl_set_copy_basic_set(set); isl_basic_set_print(bset, foo, 0, NULL, NULL, ISL_FORMAT_POLYLIB); isl_basic_set_free(bset); } } void cloog_scattering_print_constraints(FILE *foo, CloogScattering *scattering) { isl_map *map = isl_map_from_cloog_scattering(scattering); isl_map_print(map, foo, 0, ISL_FORMAT_EXT_POLYLIB); } void cloog_domain_free(CloogDomain * domain) { isl_set *set = isl_set_from_cloog_domain(domain); isl_set_free(set); } void cloog_scattering_free(CloogScattering *scatt) { isl_map *map = isl_map_from_cloog_scattering(scatt); isl_map_free(map); } CloogDomain * cloog_domain_copy(CloogDomain * domain) { isl_set *set = isl_set_from_cloog_domain(domain); return cloog_domain_from_isl_set(isl_set_copy(set)); } /** * cloog_domain_convex function: * Computes the convex hull of domain. */ CloogDomain *cloog_domain_convex(CloogDomain *domain) { isl_set *set = isl_set_from_cloog_domain(domain); set = isl_set_from_basic_set(isl_set_convex_hull(isl_set_copy(set))); return cloog_domain_from_isl_set(set); } /** * cloog_domain_simple_convex: * Given a list (union) of polyhedra, this function returns a "simple" * convex hull of this union. In particular, the constraints of the * the returned polyhedron consist of (parametric) lower and upper * bounds on individual variables and constraints that appear in the * original polyhedra. */ CloogDomain *cloog_domain_simple_convex(CloogDomain *domain) { struct isl_basic_set *hull; isl_set *set = isl_set_from_cloog_domain(domain); unsigned dim = isl_set_dim(set, isl_dim_set); if (cloog_domain_isconvex(domain)) return cloog_domain_copy(domain); if (dim == 0) return cloog_domain_convex(domain); hull = isl_set_bounded_simple_hull(isl_set_copy(set)); return cloog_domain_from_isl_set(isl_set_from_basic_set(hull)); } /** * cloog_domain_simplify function: * Given two polyhedral domains (dom1) and (dom2), * this function finds the largest domain set (or the smallest list * of non-redundant constraints), that when intersected with polyhedral * domain (dom2) equals (dom1)intersect(dom2). The output is a new CloogDomain * structure with a polyhedral domain with the "redundant" constraints removed. * NB: the second domain is required not to be a union. */ CloogDomain *cloog_domain_simplify(CloogDomain *dom1, CloogDomain *dom2) { isl_set *set1 = isl_set_from_cloog_domain(dom1); isl_set *set2 = isl_set_from_cloog_domain(dom2); set1 = isl_set_gist(isl_set_copy(set1), isl_set_copy(set2)); return cloog_domain_from_isl_set(set1); } /** * cloog_domain_union function: * This function returns a new polyhedral domain which is the union of * two polyhedral domains (dom1) U (dom2). * Frees dom1 and dom2; */ CloogDomain *cloog_domain_union(CloogDomain *dom1, CloogDomain *dom2) { isl_set *set1 = isl_set_from_cloog_domain(dom1); isl_set *set2 = isl_set_from_cloog_domain(dom2); set1 = isl_set_union(set1, set2); return cloog_domain_from_isl_set(set1); } /** * cloog_domain_intersection function: * This function returns a new polyhedral domain which is the intersection of * two polyhedral domains (dom1) \cap (dom2). */ CloogDomain *cloog_domain_intersection(CloogDomain *dom1, CloogDomain *dom2) { isl_set *set1 = isl_set_from_cloog_domain(dom1); isl_set *set2 = isl_set_from_cloog_domain(dom2); set1 = isl_set_intersect(isl_set_copy(set1), isl_set_copy(set2)); return cloog_domain_from_isl_set(set1); } /** * cloog_domain_difference function: * Returns the set difference domain \ minus. */ CloogDomain *cloog_domain_difference(CloogDomain *domain, CloogDomain *minus) { isl_set *set1 = isl_set_from_cloog_domain(domain); isl_set *set2 = isl_set_from_cloog_domain(minus); set1 = isl_set_subtract(isl_set_copy(set1), isl_set_copy(set2)); return cloog_domain_from_isl_set(set1); } /** * cloog_domain_sort function: * This function topologically sorts (nb_doms) domains. Here (doms) is an * array of pointers to CloogDomains, (nb_doms) is the number of domains, * (level) is the level to consider for partial ordering (nb_par) is the * parameter space dimension, (permut) if not NULL, is an array of (nb_doms) * integers that contains a permutation specification after call in order to * apply the topological sorting. */ void cloog_domain_sort(CloogDomain **doms, unsigned nb_doms, unsigned level, int *permut) { int i, j, k, cmp; struct isl_ctx *ctx; unsigned char **follows; isl_set *set_i, *set_j; isl_basic_set *bset_i, *bset_j; if (!nb_doms) return; set_i = isl_set_from_cloog_domain(doms[0]); ctx = isl_set_get_ctx(set_i); for (i = 0; i < nb_doms; i++) { set_i = isl_set_from_cloog_domain(doms[i]); assert(isl_set_n_basic_set(set_i) == 1); } follows = isl_alloc_array(ctx, unsigned char *, nb_doms); assert(follows); for (i = 0; i < nb_doms; ++i) { follows[i] = isl_alloc_array(ctx, unsigned char, nb_doms); assert(follows[i]); for (j = 0; j < nb_doms; ++j) follows[i][j] = 0; } for (i = 1; i < nb_doms; ++i) { for (j = 0; j < i; ++j) { if (follows[i][j] || follows[j][i]) continue; set_i = isl_set_from_cloog_domain(doms[i]); set_j = isl_set_from_cloog_domain(doms[j]); bset_i = isl_set_copy_basic_set(set_i); bset_j = isl_set_copy_basic_set(set_j); cmp = isl_basic_set_compare_at(bset_i, bset_j, level-1); isl_basic_set_free(bset_i); isl_basic_set_free(bset_j); if (!cmp) continue; if (cmp > 0) { follows[i][j] = 1; for (k = 0; k < i; ++k) follows[i][k] |= follows[j][k]; } else { follows[j][i] = 1; for (k = 0; k < i; ++k) follows[k][i] |= follows[k][j]; } } } for (i = 0, j = 0; i < nb_doms; j = (j + 1) % nb_doms) { for (k = 0; k < nb_doms; ++k) if (follows[j][k]) break; if (k < nb_doms) continue; for (k = 0; k < nb_doms; ++k) follows[k][j] = 0; follows[j][j] = 1; permut[i] = 1 + j; ++i; } for (i = 0; i < nb_doms; ++i) free(follows[i]); free(follows); } /** * Check whether there is or may be any value of dom1 at the given level * that is greater than or equal to a value of dom2 at the same level. * * Return * 1 is there is or may be a greater-than pair. * 0 if there is no greater-than pair, but there may be an equal-to pair * -1 if there is definitely no such pair */ int cloog_domain_follows(CloogDomain *dom1, CloogDomain *dom2, unsigned level) { isl_set *set1 = isl_set_from_cloog_domain(dom1); isl_set *set2 = isl_set_from_cloog_domain(dom2); int follows; follows = isl_set_follows_at(set1, set2, level - 1); assert(follows >= -1); return follows; } /** * cloog_domain_empty function: * Returns an empty domain of the same dimensions as template. */ CloogDomain *cloog_domain_empty(CloogDomain *template) { isl_set *set = isl_set_from_cloog_domain(template); return cloog_domain_from_isl_set(isl_set_empty_like(set)); } /** * Return 1 if the specified dimension has both an upper and a lower bound. */ int cloog_domain_is_bounded(CloogDomain *dom, unsigned level) { isl_set *set = isl_set_from_cloog_domain(dom); return isl_set_dim_is_bounded(set, isl_dim_set, level - 1); } /****************************************************************************** * Structure display function * ******************************************************************************/ /** * cloog_domain_print_structure : * this function is a more human-friendly way to display the CloogDomain data * structure, it only shows the constraint system and includes an indentation * level (level) in order to work with others print_structure functions. */ void cloog_domain_print_structure(FILE *file, CloogDomain *domain, int level, const char *name) { int i ; isl_set *set = isl_set_from_cloog_domain(domain); /* Go to the right level. */ for (i = 0; i < level; i++) fprintf(file, "|\t"); if (!set) { fprintf(file, "+-- Null CloogDomain\n"); return; } fprintf(file, "+-- %s\n", name); for (i = 0; i < level+1; ++i) fprintf(file, "|\t"); isl_set_print(set, file, 0, ISL_FORMAT_ISL); fprintf(file, "\n"); } /****************************************************************************** * Memory deallocation function * ******************************************************************************/ void cloog_domain_list_free(CloogDomainList *list) { CloogDomainList *next; for ( ; list; list = next) { next = list->next; cloog_domain_free(list->domain); free(list); } } /** * cloog_scattering_list_free function: * This function frees the allocated memory for a CloogScatteringList structure. */ void cloog_scattering_list_free(CloogScatteringList *list) { while (list != NULL) { CloogScatteringList *temp = list->next; isl_map *map = isl_map_from_cloog_scattering(list->scatt); isl_map_free(map); free(list); list = temp; } } /****************************************************************************** * Reading function * ******************************************************************************/ /** * cloog_domain_read_context function: * Read parameter domain. */ CloogDomain *cloog_domain_read_context(CloogState *state, FILE *input) { struct isl_ctx *ctx = state->backend->ctx; isl_set *set; set = isl_set_read_from_file(ctx, input, 0); set = isl_set_move_dims(set, isl_dim_param, 0, isl_dim_set, 0, isl_set_dim(set, isl_dim_set)); return cloog_domain_from_isl_set(set); } /** * cloog_domain_from_context * Reinterpret context by turning parameters into variables. */ CloogDomain *cloog_domain_from_context(CloogDomain *context) { isl_set *set = isl_set_from_cloog_domain(context); set = isl_set_move_dims(set, isl_dim_set, 0, isl_dim_param, 0, isl_set_dim(set, isl_dim_param)); return cloog_domain_from_isl_set(set); } /** * cloog_domain_union_read function: * This function reads a union of polyhedra into a file (input) and * returns a pointer to a CloogDomain containing the read information. */ CloogDomain *cloog_domain_union_read(CloogState *state, FILE *input, int nb_parameters) { struct isl_ctx *ctx = state->backend->ctx; struct isl_set *set; set = isl_set_read_from_file(ctx, input, nb_parameters); return cloog_domain_from_isl_set(set); } /** * cloog_domain_read_scattering function: * This function reads in a scattering function from the file input. * * We try to read the scattering relation as a map, but if it is * specified in the original PolyLib format, then isl_map_read_from_file * will treat the input as a set return a map with zero input dimensions. * In this case, we need to decompose the set into a map from * scattering dimensions to domain dimensions and then invert the * resulting map. */ CloogScattering *cloog_domain_read_scattering(CloogDomain *domain, FILE *input) { isl_set *set = isl_set_from_cloog_domain(domain); isl_ctx *ctx = isl_set_get_ctx(set); struct isl_map *scat; unsigned nparam; unsigned dim; unsigned n_scat; dim = isl_set_dim(set, isl_dim_set); nparam = isl_set_dim(set, isl_dim_param); scat = isl_map_read_from_file(ctx, input, nparam); if (isl_map_dim(scat, isl_dim_in) != dim) { n_scat = isl_map_dim(scat, isl_dim_out) - dim; scat = isl_map_move_dims(scat, isl_dim_in, 0, isl_dim_out, n_scat, dim); } return cloog_scattering_from_isl_map(scat); } /****************************************************************************** * CloogMatrix Reading function * ******************************************************************************/ /** * isl_constraint_read_from_matrix: * Convert a single line of a matrix to a isl_constraint. * Returns a pointer to the constraint if successful; NULL otherwise. */ static struct isl_constraint *isl_constraint_read_from_matrix( struct isl_dim *dim, cloog_int_t *row) { struct isl_constraint *constraint; int j; int nvariables = isl_dim_size(dim, isl_dim_set); int nparam = isl_dim_size(dim, isl_dim_param); if (cloog_int_is_zero(row[0])) constraint = isl_equality_alloc(dim); else constraint = isl_inequality_alloc(dim); for (j = 0; j < nvariables; ++j) isl_constraint_set_coefficient(constraint, isl_dim_out, j, row[1 + j]); for (j = 0; j < nparam; ++j) isl_constraint_set_coefficient(constraint, isl_dim_param, j, row[1 + nvariables + j]); isl_constraint_set_constant(constraint, row[1 + nvariables + nparam]); return constraint; } /** * isl_basic_set_read_from_matrix: * Convert matrix to basic_set. The matrix contains nparam parameter columns. * Returns a pointer to the basic_set if successful; NULL otherwise. */ static struct isl_basic_set *isl_basic_set_read_from_matrix(struct isl_ctx *ctx, CloogMatrix* matrix, int nparam) { struct isl_dim *dim; struct isl_basic_set *bset; int i; unsigned nrows, ncolumns; nrows = matrix->NbRows; ncolumns = matrix->NbColumns; int nvariables = ncolumns - 2 - nparam; dim = isl_dim_set_alloc(ctx, nparam, nvariables); bset = isl_basic_set_universe(isl_dim_copy(dim)); for (i = 0; i < nrows; ++i) { cloog_int_t *row = matrix->p[i]; struct isl_constraint *constraint = isl_constraint_read_from_matrix(isl_dim_copy(dim), row); bset = isl_basic_set_add_constraint(bset, constraint); } isl_dim_free(dim); return bset; } /** * cloog_domain_from_cloog_matrix: * Create a CloogDomain containing the constraints described in matrix. * nparam is the number of parameters contained in the domain. * Returns a pointer to the CloogDomain if successful; NULL otherwise. */ CloogDomain *cloog_domain_from_cloog_matrix(CloogState *state, CloogMatrix *matrix, int nparam) { struct isl_ctx *ctx = state->backend->ctx; struct isl_basic_set *bset; bset = isl_basic_set_read_from_matrix(ctx, matrix, nparam); return cloog_domain_from_isl_set(isl_set_from_basic_set(bset)); } /** * cloog_scattering_from_cloog_matrix: * Create a CloogScattering containing the constraints described in matrix. * nparam is the number of parameters contained in the domain. * Returns a pointer to the CloogScattering if successful; NULL otherwise. */ CloogScattering *cloog_scattering_from_cloog_matrix(CloogState *state, CloogMatrix *matrix, int nb_scat, int nb_par) { struct isl_ctx *ctx = state->backend->ctx; struct isl_basic_set *bset; struct isl_basic_map *scat; struct isl_dim *dims; unsigned dim; bset = isl_basic_set_read_from_matrix(ctx, matrix, nb_par); dim = isl_basic_set_n_dim(bset) - nb_scat; dims = isl_dim_alloc(ctx, nb_par, nb_scat, dim); scat = isl_basic_map_from_basic_set(bset, dims); scat = isl_basic_map_reverse(scat); return cloog_scattering_from_isl_map(isl_map_from_basic_map(scat)); } /****************************************************************************** * Processing functions * ******************************************************************************/ /** * cloog_domain_isempty function: */ int cloog_domain_isempty(CloogDomain *domain) { isl_set *set = isl_set_from_cloog_domain(domain); return isl_set_is_empty(set); } /** * cloog_domain_universe function: * This function returns the complete dim-dimensional space. */ CloogDomain *cloog_domain_universe(CloogState *state, unsigned dim) { struct isl_dim *dims; struct isl_basic_set *bset; dims = isl_dim_set_alloc(state->backend->ctx, 0, dim); bset = isl_basic_set_universe(dims); return cloog_domain_from_isl_set(isl_set_from_basic_set(bset)); } /** * cloog_domain_project function: * This function returns the projection of * (domain) on the (level) first dimensions (i.e. outer loops). */ CloogDomain *cloog_domain_project(CloogDomain *domain, int level) { isl_set *set = isl_set_from_cloog_domain(domain); set = isl_set_remove_dims(isl_set_copy(set), isl_dim_set, level, isl_set_n_dim(set) - level); set = isl_set_compute_divs(set); if (level > 0) set = isl_set_remove_divs_involving_dims(set, isl_dim_set, level - 1, 1); return cloog_domain_from_isl_set(set); } /** * cloog_domain_extend function: * This function returns the (domain) given as input with (dim) * dimensions and (nb_par) parameters. * This function does not free (domain), and returns a new CloogDomain. */ CloogDomain *cloog_domain_extend(CloogDomain *domain, int dim) { isl_set *set = isl_set_from_cloog_domain(domain); set = isl_set_extend(isl_set_copy(set), isl_set_n_param(set), dim); return cloog_domain_from_isl_set(set); } /** * cloog_domain_never_integral function: * For us, an equality like 3*i -4 = 0 is always false since 4%3 != 0. * There is no need to check for such constraints explicitly for the isl * backend. */ int cloog_domain_never_integral(CloogDomain * domain) { isl_set *set = isl_set_from_cloog_domain(domain); return isl_set_is_empty(set); } /** * Check whether the loop at "level" is executed at most once. * We construct a map that maps all remaining variables to this iterator * and check whether this map is single valued. * * Alternatively, we could have mapped the domain through a mapping * [p] -> { [..., i] -> [..., i'] : i' > i } * and then taken the intersection of the original domain and the transformed * domain. If this intersection is empty, then the corresponding * loop is executed at most once. */ int cloog_domain_is_otl(CloogDomain *domain, int level) { int otl; isl_set *set = isl_set_from_cloog_domain(domain); isl_map *map; map = isl_map_from_domain(isl_set_copy(set)); map = isl_map_move_dims(map, isl_dim_out, 0, isl_dim_in, level - 1, 1); otl = isl_map_is_single_valued(map); isl_map_free(map); return otl; } /** * cloog_domain_stride function: * This function finds the stride imposed to unknown with the column number * 'strided_level' in order to be integral. For instance, if we have a * constraint like -i - 2j + 2k = 0, and we consider k, then k can be integral * only if (i + 2j)%2 = 0. Then only if i%2 = 0. Then k imposes a stride 2 to * the unknown i. The function returns the imposed stride in a parameter field. * - domain is the set of constraint we have to consider, * - strided_level is the column number of the unknown for which a stride have * to be found, * - looking_level is the column number of the unknown that impose a stride to * the first unknown. * - stride is the stride that is returned back as a function parameter. * - offset is the value of the constant c if the condition is of the shape * (i + c)%s = 0, s being the stride. */ void cloog_domain_stride(CloogDomain *domain, int strided_level, cloog_int_t *stride, cloog_int_t *offset) { isl_set *set = isl_set_from_cloog_domain(domain); isl_set_dim_residue_class(set, strided_level - 1, stride, offset); if (!isl_int_is_zero(*offset)) isl_int_sub(*offset, *stride, *offset); return; } struct cloog_can_stride { int level; int can_stride; }; static int constraint_can_stride(__isl_take isl_constraint *c, void *user) { struct cloog_can_stride *ccs = (struct cloog_can_stride *)user; int i; isl_int v; unsigned n_div; isl_int_init(v); isl_constraint_get_coefficient(c, isl_dim_set, ccs->level - 1, &v); if (isl_int_is_pos(v)) { n_div = isl_constraint_dim(c, isl_dim_div); for (i = 0; i < n_div; ++i) { isl_constraint_get_coefficient(c, isl_dim_div, i, &v); if (!isl_int_is_zero(v)) break; } if (i < n_div) ccs->can_stride = 0; } isl_int_clear(v); isl_constraint_free(c); return 0; } static int basic_set_can_stride(__isl_take isl_basic_set *bset, void *user) { struct cloog_can_stride *ccs = (struct cloog_can_stride *)user; int r; r = isl_basic_set_foreach_constraint(bset, constraint_can_stride, ccs); isl_basic_set_free(bset); return r; } /** * Return 1 if CLooG is allowed to perform stride detection on level "level" * and 0 otherwise. * Currently, stride detection is only allowed when none of the lower * bound constraints involve any existentially quantified variables. * The reason is that the current isl interface does not make it * easy to construct an integer division that depends on other integer * divisions. * By not allowing existentially quantified variables in the constraints, * we can ignore them in cloog_domain_stride_lower_bound. */ int cloog_domain_can_stride(CloogDomain *domain, int level) { struct cloog_can_stride ccs = { level, 1 }; isl_set *set = isl_set_from_cloog_domain(domain); int r; r = isl_set_foreach_basic_set(set, basic_set_can_stride, &ccs); assert(r == 0); return ccs.can_stride; } struct cloog_stride_lower { int level; CloogStride *stride; isl_set *set; isl_basic_set *bounds; }; /* If the given constraint is a lower bound on csl->level, then add * a lower bound to csl->bounds that makes sure that the remainder * of the smallest value on division by csl->stride is equal to csl->offset. * * In particular, the given lower bound is of the form * * a i + f >= 0 * * where f may depend on the parameters and other iterators. * The stride is s and the offset is d. * The lower bound -f/a may not satisfy the above condition. In fact, * it may not even be integral. We want to round this value of i up * to the nearest value that satisfies the condition and add the corresponding * lower bound constraint. This nearest value is obtained by rounding * i - d up to the nearest multiple of s. * That is, we first subtract d * * i' = -f/a - d * * then we round up to the nearest multiple of s * * i'' = s * ceil(i'/s) * * and finally, we add d again * * i''' = i'' + d * * and impose the constraint i >= i'''. * * We find * * i'' = s * ceil((-f - a * d)/(a * s)) = - s * floor((f + a * d)/(a * s)) * * i >= - s * floor((f + a * d)/(a * s)) + d * * or * i + s * floor((f + a * d)/(a * s)) - d >= 0 */ static int constraint_stride_lower(__isl_take isl_constraint *c, void *user) { struct cloog_stride_lower *csl = (struct cloog_stride_lower *)user; int i; isl_int v; isl_int t; isl_constraint *bound; isl_div *div; int pos; unsigned nparam, nvar; isl_int_init(v); isl_constraint_get_coefficient(c, isl_dim_set, csl->level - 1, &v); if (!isl_int_is_pos(v)) { isl_int_clear(v); isl_constraint_free(c); return 0; } isl_int_init(t); nparam = isl_constraint_dim(c, isl_dim_param); nvar = isl_constraint_dim(c, isl_dim_set); bound = isl_inequality_alloc(isl_basic_set_get_dim(csl->bounds)); div = isl_div_alloc(isl_basic_set_get_dim(csl->bounds)); isl_int_mul(t, v, csl->stride->stride); isl_div_set_denominator(div, t); for (i = 0; i < nparam; ++i) { isl_constraint_get_coefficient(c, isl_dim_param, i, &t); isl_div_set_coefficient(div, isl_dim_param, i, t); } for (i = 0; i < nvar; ++i) { if (i == csl->level - 1) continue; isl_constraint_get_coefficient(c, isl_dim_set, i, &t); isl_div_set_coefficient(div, isl_dim_set, i, t); } isl_constraint_get_constant(c, &t); isl_int_addmul(t, v, csl->stride->offset); isl_div_set_constant(div, t); bound = isl_constraint_add_div(bound, div, &pos); isl_int_set_si(t, 1); isl_constraint_set_coefficient(bound, isl_dim_set, csl->level - 1, t); isl_constraint_set_coefficient(bound, isl_dim_div, pos, csl->stride->stride); isl_int_neg(t, csl->stride->offset); isl_constraint_set_constant(bound, t); csl->bounds = isl_basic_set_add_constraint(csl->bounds, bound); isl_int_clear(v); isl_int_clear(t); isl_constraint_free(c); return 0; } /* This functions performs essentially the same operation as * constraint_stride_lower, the only difference being that the offset d * is not a constant, but an affine expression in terms of the parameters * and earlier variables. In particular the affine expression is equal * to the coefficients of stride->constraint multiplied by stride->factor. * As in constraint_stride_lower, we add an extra bound * * i + s * floor((f + a * d)/(a * s)) - d >= 0 * * for each lower bound * * a i + f >= 0 * * where d is not the aforementioned affine expression. */ static int constraint_stride_lower_c(__isl_take isl_constraint *c, void *user) { struct cloog_stride_lower *csl = (struct cloog_stride_lower *)user; int i; isl_int v; isl_int t, u; isl_constraint *bound; isl_constraint *csl_c; isl_div *div; int pos; unsigned nparam, nvar; isl_int_init(v); isl_constraint_get_coefficient(c, isl_dim_set, csl->level - 1, &v); if (!isl_int_is_pos(v)) { isl_int_clear(v); isl_constraint_free(c); return 0; } csl_c = &csl->stride->constraint->isl; isl_int_init(t); isl_int_init(u); nparam = isl_constraint_dim(c, isl_dim_param); nvar = isl_constraint_dim(c, isl_dim_set); bound = isl_inequality_alloc(isl_basic_set_get_dim(csl->bounds)); div = isl_div_alloc(isl_basic_set_get_dim(csl->bounds)); isl_int_mul(t, v, csl->stride->stride); isl_div_set_denominator(div, t); for (i = 0; i < nparam; ++i) { isl_constraint_get_coefficient(c, isl_dim_param, i, &t); isl_constraint_get_coefficient(csl_c, isl_dim_param, i, &u); isl_int_mul(u, u, csl->stride->factor); isl_int_addmul(t, v, u); isl_div_set_coefficient(div, isl_dim_param, i, t); isl_int_neg(u, u); isl_constraint_set_coefficient(bound, isl_dim_param, i, u); } for (i = 0; i < nvar; ++i) { if (i == csl->level - 1) continue; isl_constraint_get_coefficient(c, isl_dim_set, i, &t); isl_constraint_get_coefficient(csl_c, isl_dim_set, i, &u); isl_int_mul(u, u, csl->stride->factor); isl_int_addmul(t, v, u); isl_div_set_coefficient(div, isl_dim_set, i, t); isl_int_neg(u, u); isl_constraint_set_coefficient(bound, isl_dim_set, i, u); } isl_constraint_get_constant(c, &t); isl_constraint_get_constant(csl_c, &u); isl_int_mul(u, u, csl->stride->factor); isl_int_addmul(t, v, u); isl_div_set_constant(div, t); isl_int_neg(u, u); isl_constraint_set_constant(bound, u); bound = isl_constraint_add_div(bound, div, &pos); isl_int_set_si(t, 1); isl_constraint_set_coefficient(bound, isl_dim_set, csl->level - 1, t); isl_constraint_set_coefficient(bound, isl_dim_div, pos, csl->stride->stride); csl->bounds = isl_basic_set_add_constraint(csl->bounds, bound); isl_int_clear(u); isl_int_clear(t); isl_int_clear(v); isl_constraint_free(c); return 0; } static int basic_set_stride_lower(__isl_take isl_basic_set *bset, void *user) { struct cloog_stride_lower *csl = (struct cloog_stride_lower *)user; int r; csl->bounds = isl_basic_set_universe_like(bset); if (csl->stride->constraint) r = isl_basic_set_foreach_constraint(bset, &constraint_stride_lower_c, csl); else r = isl_basic_set_foreach_constraint(bset, &constraint_stride_lower, csl); bset = isl_basic_set_intersect(bset, csl->bounds); csl->set = isl_set_union(csl->set, isl_set_from_basic_set(bset)); return r; } /** * Update the lower bounds at level "level" to the given stride information. * That is, make sure that the remainder on division by "stride" * is equal to "offset". */ CloogDomain *cloog_domain_stride_lower_bound(CloogDomain *domain, int level, CloogStride *stride) { struct cloog_stride_lower csl; isl_set *set = isl_set_from_cloog_domain(domain); int r; csl.stride = stride; csl.level = level; csl.set = isl_set_empty_like(set); r = isl_set_foreach_basic_set(set, basic_set_stride_lower, &csl); assert(r == 0); cloog_domain_free(domain); return cloog_domain_from_isl_set(csl.set); } /** * cloog_domain_lazy_equal function: * This function returns 1 if the domains given as input are the same, 0 if it * is unable to decide. */ int cloog_domain_lazy_equal(CloogDomain *d1, CloogDomain *d2) { isl_set *set1 = isl_set_from_cloog_domain(d1); isl_set *set2 = isl_set_from_cloog_domain(d2); return isl_set_fast_is_equal(set1, set2); } struct cloog_bound_split { isl_set *set; int level; int lower; int upper; }; static int constraint_bound_split(__isl_take isl_constraint *c, void *user) { struct cloog_bound_split *cbs = (struct cloog_bound_split *)user; isl_int v; int i; int handle = 0; isl_int_init(v); isl_constraint_get_coefficient(c, isl_dim_set, cbs->level - 1, &v); if (!cbs->lower && isl_int_is_pos(v)) cbs->lower = handle = 1; else if (!cbs->upper && isl_int_is_neg(v)) cbs->upper = handle = 1; if (handle) { for (i = 0; i < isl_set_dim(cbs->set, isl_dim_param); ++i) { isl_constraint_get_coefficient(c, isl_dim_param, i, &v); if (isl_int_is_zero(v)) continue; cbs->set = isl_set_split_dims(cbs->set, isl_dim_param, i, 1); } } isl_int_clear(v); isl_constraint_free(c); return (cbs->lower && cbs->upper) ? -1 : 0; } static int basic_set_bound_split(__isl_take isl_basic_set *bset, void *user) { struct cloog_bound_split *cbs = (struct cloog_bound_split *)user; int r; cbs->lower = 0; cbs->upper = 0; r = isl_basic_set_foreach_constraint(bset, constraint_bound_split, cbs); isl_basic_set_free(bset); return ((!cbs->lower || !cbs->upper) && r < 0) ? -1 : 0; } /** * Return a union of sets S_i such that the convex hull of "dom", * when intersected with one the sets S_i, will have an upper and * lower bound for the dimension at "level" (provided "dom" itself * has such bounds for the dimensions). * * We currently take a very simple approach. For each of the basic * sets in "dom" we pick a lower and an upper bound and split the * range of any parameter involved in these two bounds in a * nonnegative and a negative part. This ensures that the symbolic * constant in these two constraints are themselves bounded and * so there will be at least one upper and one lower bound * in the convex hull. */ CloogDomain *cloog_domain_bound_splitter(CloogDomain *dom, int level) { struct cloog_bound_split cbs; isl_set *set = isl_set_from_cloog_domain(dom); int r; cbs.level = level; cbs.set = isl_set_universe_like(set); r = isl_set_foreach_basic_set(set, basic_set_bound_split, &cbs); assert(r == 0); return cloog_domain_from_isl_set(cbs.set); } /** * cloog_scattering_lazy_block function: * This function returns 1 if the two scattering functions s1 and s2 given * as input are the same (except possibly for the final dimension, where we * allow a difference of 1), assuming that the domains on which this * scatterings are applied are the same. * In fact this function answers the question "can I * safely consider the two domains as only one with two statements (a block) ?". * - s1 and s2 are the two domains to check for blocking, * - scattering is the linked list of all domains, * - scattdims is the total number of scattering dimentions. */ int cloog_scattering_lazy_block(CloogScattering *s1, CloogScattering *s2, CloogScatteringList *scattering, int scattdims) { int i; struct isl_dim *dim; struct isl_map *rel; struct isl_set *delta; isl_map *map1 = isl_map_from_cloog_scattering(s1); isl_map *map2 = isl_map_from_cloog_scattering(s2); int fixed, block; isl_int cst; unsigned n_scat; n_scat = isl_map_dim(map1, isl_dim_out); if (n_scat != isl_map_dim(map2, isl_dim_out)) return 0; dim = isl_map_get_dim(map1); dim = isl_dim_domain(dim); rel = isl_map_identity(dim); rel = isl_map_apply_domain(rel, isl_map_copy(map1)); rel = isl_map_apply_range(rel, isl_map_copy(map2)); delta = isl_map_deltas(rel); isl_int_init(cst); for (i = 0; i < n_scat; ++i) { fixed = isl_set_fast_dim_is_fixed(delta, i, &cst); if (fixed != 1) break; if (i+1 < n_scat && !isl_int_is_zero(cst)) break; if (!isl_int_is_zero(cst) && !isl_int_is_one(cst)) break; } block = i >= n_scat; isl_int_clear(cst); isl_set_free(delta); return block; } /** * cloog_domain_lazy_disjoint function: * This function returns 1 if the domains given as input are disjoint, 0 if it * is unable to decide. */ int cloog_domain_lazy_disjoint(CloogDomain *d1, CloogDomain *d2) { isl_set *set1 = isl_set_from_cloog_domain(d1); isl_set *set2 = isl_set_from_cloog_domain(d2); return isl_set_fast_is_disjoint(set1, set2); } /** * cloog_scattering_list_lazy_same function: * This function returns 1 if two domains in the list are the same, 0 if it * is unable to decide. */ int cloog_scattering_list_lazy_same(CloogScatteringList *list) { CloogScatteringList *one, *other; isl_map *one_map, *other_map; for (one = list; one; one = one->next) { one_map = isl_map_from_cloog_scattering(one->scatt); for (other = one->next; other; other = other->next) { other_map = isl_map_from_cloog_scattering(other->scatt); if (isl_map_fast_is_equal(one_map, other_map)) return 1; } } return 0; } int cloog_domain_dimension(CloogDomain * domain) { isl_set *set = isl_set_from_cloog_domain(domain); return isl_set_dim(set, isl_dim_set); } int cloog_domain_parameter_dimension(CloogDomain *domain) { isl_set *set = isl_set_from_cloog_domain(domain); return isl_set_dim(set, isl_dim_param); } int cloog_scattering_dimension(CloogScattering *scatt, CloogDomain *domain) { isl_map *map = isl_map_from_cloog_scattering(scatt); return isl_map_dim(map, isl_dim_out); } int cloog_domain_isconvex(CloogDomain * domain) { isl_set *set = isl_set_from_cloog_domain(domain); return isl_set_n_basic_set(set) <= 1; } /** * cloog_domain_cut_first function: * This function splits off and returns the first convex set in the * union "domain". The remainder of the union is returned in rest. * The original "domain" itself is destroyed and may not be used * after a call to this function. */ CloogDomain *cloog_domain_cut_first(CloogDomain *domain, CloogDomain **rest) { isl_set *set = isl_set_from_cloog_domain(domain); struct isl_basic_set *first; first = isl_set_copy_basic_set(set); set = isl_set_drop_basic_set(set, first); *rest = cloog_domain_from_isl_set(set); return cloog_domain_from_isl_set(isl_set_from_basic_set(first)); } /** * Given a union domain, try to find a simpler representation * using fewer sets in the union. * The original "domain" itself is destroyed and may not be used * after a call to this function. */ CloogDomain *cloog_domain_simplify_union(CloogDomain *domain) { isl_set *set = isl_set_from_cloog_domain(domain); return cloog_domain_from_isl_set(isl_set_coalesce(set)); } /** * cloog_scattering_lazy_isscalar function: * this function returns 1 if the scattering dimension 'dimension' in the * scattering 'scatt' is constant. * If value is not NULL, then it is set to the constant value of dimension. */ int cloog_scattering_lazy_isscalar(CloogScattering *scatt, int dimension, cloog_int_t *value) { isl_map *map = isl_map_from_cloog_scattering(scatt); return isl_map_fast_is_fixed(map, isl_dim_out, dimension, value); } /** * cloog_domain_lazy_isconstant function: * this function returns 1 if the dimension 'dimension' in the * domain 'domain' is constant. * If value is not NULL, then it is set to the constant value of dimension. */ int cloog_domain_lazy_isconstant(CloogDomain *domain, int dimension, cloog_int_t *value) { isl_set *set = isl_set_from_cloog_domain(domain); return isl_set_fast_dim_is_fixed(set, dimension, value); } /** * cloog_scattering_erase_dimension function: * this function returns a CloogDomain structure builds from 'domain' where * we removed the dimension 'dimension' and every constraint involving this * dimension. */ CloogScattering *cloog_scattering_erase_dimension(CloogScattering *scattering, int dimension) { isl_map *map = isl_map_from_cloog_scattering(scattering); map = isl_map_remove_dims(isl_map_copy(map), isl_dim_out, dimension, 1); return cloog_scattering_from_isl_map(map); } /** * cloog_domain_cube: * Construct and return a dim-dimensional cube, with values ranging * between min and max in each dimension. */ CloogDomain *cloog_domain_cube(CloogState *state, int dim, cloog_int_t min, cloog_int_t max) { int i; struct isl_basic_set *cube; struct isl_basic_set *interval; struct isl_basic_set_list *list; if (dim == 0) return cloog_domain_universe(state, dim); interval = isl_basic_set_interval(state->backend->ctx, min, max); list = isl_basic_set_list_alloc(state->backend->ctx, dim); for (i = 0; i < dim; ++i) list = isl_basic_set_list_add(list, isl_basic_set_copy(interval)); isl_basic_set_free(interval); cube = isl_basic_set_product(list); return cloog_domain_from_isl_set(isl_set_from_basic_set(cube)); } /** * cloog_domain_scatter function: * This function add the scattering (scheduling) informations to a domain. */ CloogDomain *cloog_domain_scatter(CloogDomain *domain, CloogScattering *scatt) { isl_set *set = isl_set_from_cloog_domain(domain); isl_map *map = isl_map_from_cloog_scattering(scatt); map = isl_map_reverse(isl_map_copy(map)); map = isl_map_intersect_range(map, set); return cloog_domain_from_isl_set(isl_set_from_map(map)); } static int add_domain_from_map(__isl_take isl_map *map, void *user) { isl_dim *dim; const char *name; CloogDomain *domain; CloogScattering *scat; CloogUnionDomain **ud = (CloogUnionDomain **)user; dim = isl_map_get_dim(map); name = isl_dim_get_tuple_name(dim, isl_dim_in); domain = cloog_domain_from_isl_set(isl_map_domain(isl_map_copy(map))); scat = cloog_scattering_from_isl_map(map); *ud = cloog_union_domain_add_domain(*ud, name, domain, scat, NULL); isl_dim_free(dim); return 0; } /** * Construct a CloogUnionDomain from an isl_union_map representing * a global scattering function. The input is a mapping from different * spaces (different tuple names and possibly different dimensions) * to a common space. The iteration domains are set to the domains * in each space. The statement names are set to the names of the * spaces. The parameter names of the result are set to those of * the input, but the iterator and scattering dimension names are * left unspecified. */ CloogUnionDomain *cloog_union_domain_from_isl_union_map( __isl_take isl_union_map *umap) { int i; int nparam; isl_dim *dim; CloogUnionDomain *ud; dim = isl_union_map_get_dim(umap); nparam = isl_dim_size(dim, isl_dim_param); ud = cloog_union_domain_alloc(nparam); for (i = 0; i < nparam; ++i) { const char *s = isl_dim_get_name(dim, isl_dim_param, i); ud = cloog_union_domain_set_name(ud, CLOOG_PARAM, i, s); } isl_dim_free(dim); if (isl_union_map_foreach_map(umap, &add_domain_from_map, &ud) < 0) { isl_union_map_free(umap); cloog_union_domain_free(ud); assert(0); } isl_union_map_free(umap); return ud; } static int count_same_name(__isl_keep isl_dim *dim, enum isl_dim_type type, unsigned pos, const char *name) { enum isl_dim_type t; unsigned p, s; int count = 0; int len = strlen(name); for (t = isl_dim_param; t <= type && t <= isl_dim_out; ++t) { s = t == type ? pos : isl_dim_size(dim, t); for (p = 0; p < s; ++p) { const char *n = isl_dim_get_name(dim, t, p); if (n && !strncmp(n, name, len)) count++; } } return count; } static int add_domain(__isl_take isl_set *set, void *user) { int i, nvar; isl_ctx *ctx; isl_dim *dim; char buffer[20]; const char *name; CloogDomain *domain; CloogUnionDomain **ud = (CloogUnionDomain **)user; ctx = isl_set_get_ctx(set); dim = isl_set_get_dim(set); name = isl_dim_get_tuple_name(dim, isl_dim_set); set = isl_set_flatten(set); set = isl_set_set_tuple_name(set, NULL); domain = cloog_domain_from_isl_set(set); *ud = cloog_union_domain_add_domain(*ud, name, domain, NULL, NULL); nvar = isl_dim_size(dim, isl_dim_set); for (i = 0; i < nvar; ++i) { char *long_name = NULL; int n; name = isl_dim_get_name(dim, isl_dim_set, i); if (!name) { snprintf(buffer, sizeof(buffer), "i%d", i); name = buffer; } n = count_same_name(dim, isl_dim_set, i, name); if (n) { int size = strlen(name) + 10; long_name = isl_alloc_array(ctx, char, size); if (!long_name) cloog_die("memory overflow.\n"); snprintf(long_name, size, "%s_%d", name, n); name = long_name; } *ud = cloog_union_domain_set_name(*ud, CLOOG_ITER, i, name); free(long_name); } isl_dim_free(dim); return 0; } /** * Construct a CloogUnionDomain from an isl_union_set. * The statement names are set to the names of the * spaces. The parameter and iterator names of the result are set to those of * the input, but the scattering dimension names are left unspecified. */ CloogUnionDomain *cloog_union_domain_from_isl_union_set( __isl_take isl_union_set *uset) { int i; int nparam; isl_dim *dim; CloogUnionDomain *ud; dim = isl_union_set_get_dim(uset); nparam = isl_dim_size(dim, isl_dim_param); ud = cloog_union_domain_alloc(nparam); for (i = 0; i < nparam; ++i) { const char *s = isl_dim_get_name(dim, isl_dim_param, i); ud = cloog_union_domain_set_name(ud, CLOOG_PARAM, i, s); } isl_dim_free(dim); if (isl_union_set_foreach_set(uset, &add_domain, &ud) < 0) { isl_union_set_free(uset); cloog_union_domain_free(ud); assert(0); } isl_union_set_free(uset); return ud; } /* Computes x, y and g such that g = gcd(a,b) and a*x+b*y = g */ static void Euclid(cloog_int_t a, cloog_int_t b, cloog_int_t *x, cloog_int_t *y, cloog_int_t *g) { cloog_int_t c, d, e, f, tmp; cloog_int_init(c); cloog_int_init(d); cloog_int_init(e); cloog_int_init(f); cloog_int_init(tmp); cloog_int_abs(c, a); cloog_int_abs(d, b); cloog_int_set_si(e, 1); cloog_int_set_si(f, 0); while (cloog_int_is_pos(d)) { cloog_int_tdiv_q(tmp, c, d); cloog_int_mul(tmp, tmp, f); cloog_int_sub(e, e, tmp); cloog_int_tdiv_q(tmp, c, d); cloog_int_mul(tmp, tmp, d); cloog_int_sub(c, c, tmp); cloog_int_swap(c, d); cloog_int_swap(e, f); } cloog_int_set(*g, c); if (cloog_int_is_zero(a)) cloog_int_set_si(*x, 0); else if (cloog_int_is_pos(a)) cloog_int_set(*x, e); else cloog_int_neg(*x, e); if (cloog_int_is_zero(b)) cloog_int_set_si(*y, 0); else { cloog_int_mul(tmp, a, *x); cloog_int_sub(tmp, c, tmp); cloog_int_divexact(*y, tmp, b); } cloog_int_clear(c); cloog_int_clear(d); cloog_int_clear(e); cloog_int_clear(f); cloog_int_clear(tmp); } /* Construct a CloogStride from the given constraint for the given level, * if possible. * We first compute the gcd of the coefficients of the existentially * quantified variables and then remove any common factors it has * with the coefficient at the given level. * The result is the value of the stride and if it is not one, * the it is possible to construct a CloogStride. * The constraint leading to the stride is stored in the CloogStride * as well a value (factor) such that the product of this value * and the coefficient at the given level is equal to -1 modulo the stride. */ static CloogStride *construct_stride(isl_constraint *c, int level) { int i, n, sign; isl_int v, m, gcd, stride, factor; CloogStride *s; if (!c) return NULL; isl_int_init(v); isl_int_init(m); isl_int_init(gcd); isl_int_init(factor); isl_int_init(stride); isl_constraint_get_coefficient(c, isl_dim_set, level - 1, &v); sign = isl_int_sgn(v); isl_int_abs(m, v); isl_int_set_si(gcd, 0); n = isl_constraint_dim(c, isl_dim_div); for (i = 0; i < n; ++i) { isl_constraint_get_coefficient(c, isl_dim_div, i, &v); isl_int_gcd(gcd, gcd, v); } isl_int_gcd(v, m, gcd); isl_int_divexact(stride, gcd, v); if (isl_int_is_zero(stride) || isl_int_is_one(stride)) s = NULL; else { Euclid(m, stride, &factor, &v, &gcd); if (sign > 0) isl_int_neg(factor, factor); c = isl_constraint_copy(c); s = cloog_stride_alloc_from_constraint(stride, cloog_constraint_from_isl_constraint(c), factor); } isl_int_clear(stride); isl_int_clear(factor); isl_int_clear(gcd); isl_int_clear(m); isl_int_clear(v); return s; } struct cloog_isl_find_stride_data { int level; CloogStride *stride; }; /* Check if the given constraint can be used to derive * a stride on the iterator identified by data->level. * We first check that there are some existentially quantified variables * and that the coefficient at data->level is non-zero. * Then we call construct_stride for further checks and the actual * construction of the CloogStride. */ static int find_stride(__isl_take isl_constraint *c, void *user) { struct cloog_isl_find_stride_data *data; int n; isl_int v; data = (struct cloog_isl_find_stride_data *)user; if (data->stride) { isl_constraint_free(c); return 0; } n = isl_constraint_dim(c, isl_dim_div); if (n == 0) { isl_constraint_free(c); return 0; } isl_int_init(v); isl_constraint_get_coefficient(c, isl_dim_set, data->level - 1, &v); if (!isl_int_is_zero(v)) data->stride = construct_stride(c, data->level); isl_int_clear(v); isl_constraint_free(c); return 0; } /* Check if the given list of domains has a common stride on the given level. * If so, return a pointer to a CloogStride object. If not, return NULL. * * We project out all later variables, take the union and compute * the affine hull of the union. Then we check the (equality) * constraints in this affine hull for imposing a stride. */ CloogStride *cloog_domain_list_stride(CloogDomainList *list, int level) { struct cloog_isl_find_stride_data data = { level, NULL }; isl_set *set; isl_basic_set *aff; int first = level; int n; int r; set = isl_set_from_cloog_domain(list->domain); n = isl_set_dim(set, isl_dim_set) - first; set = isl_set_project_out(isl_set_copy(set), isl_dim_set, first, n); for (list = list->next; list; list = list->next) { isl_set *set_i = isl_set_from_cloog_domain(list->domain); n = isl_set_dim(set_i, isl_dim_set) - first; set_i = isl_set_project_out(isl_set_copy(set_i), isl_dim_set, first, n); set = isl_set_union(set, set_i); } aff = isl_set_affine_hull(set); r = isl_basic_set_foreach_constraint(aff, &find_stride, &data); assert(r == 0); isl_basic_set_free(aff); return data.stride; } cloog-parma-0.16.1/cloog-core/source/options.c0000644000175000017500000004266511477112024016125 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** options.c ** **-------------------------------------------------------------------** ** First version: april 19th 2003 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ #include # include # include # include # include "../include/cloog/cloog.h" /****************************************************************************** * Error reporting functions * ******************************************************************************/ void cloog_vmsg(CloogOptions *options, enum cloog_msg_type type, const char *msg, va_list ap) { const char *type_msg; if (options && options->quiet && (type == CLOOG_WARNING || type == CLOOG_INFO)) return; switch(type) { case CLOOG_WARNING: type_msg = "WARNING"; break; case CLOOG_INFO: type_msg = "INFO"; break; case CLOOG_ERROR: default: type_msg = "ERROR"; break; } fprintf(stderr, "[CLooG] %s: ", type_msg); vfprintf(stderr, msg, ap); } /** * Print message to stderr. * @param msg printf format string */ void cloog_msg(CloogOptions *options, enum cloog_msg_type type, const char *msg, ...) { va_list args; va_start(args, msg); cloog_vmsg(options, type, msg, args); va_end(args); } /** * Print error message to stderr and exit. * @param msg printf format string */ void cloog_die(const char *msg, ...) { va_list args; va_start(args, msg); cloog_vmsg(NULL, CLOOG_ERROR, msg, args); va_end(args); exit(1); } /****************************************************************************** * Structure display function * ******************************************************************************/ /** * cloog_option_print function: * This function prints the content of a CloogOptions structure (program) into * a file (foo, possibly stdout). * - April 19th 2003: first version. */ void cloog_options_print(FILE * foo, CloogOptions * options) { fprintf(foo,"Options:\n") ; fprintf(foo,"OPTIONS FOR LOOP GENERATION\n") ; fprintf(foo,"l = %3d,\n",options->l) ; fprintf(foo,"f = %3d,\n",options->f) ; fprintf(foo,"stop = %3d,\n",options->stop) ; fprintf(foo,"strides = %3d,\n",options->strides) ; fprintf(foo,"sh = %3d,\n",options->sh); fprintf(foo,"OPTIONS FOR PRETTY PRINTING\n") ; fprintf(foo,"esp = %3d,\n",options->esp) ; fprintf(foo,"fsp = %3d,\n",options->fsp) ; fprintf(foo,"otl = %3d.\n",options->otl) ; fprintf(foo,"block = %3d.\n",options->block) ; fprintf(foo,"compilable = %3d.\n",options->compilable) ; fprintf(foo,"callable = %3d.\n",options->callable) ; fprintf(foo,"UNDOCUMENTED OPTIONS FOR THE AUTHOR ONLY\n") ; fprintf(foo,"leaks = %3d.\n",options->leaks) ; fprintf(foo,"backtrack = %3d.\n",options->backtrack); fprintf(foo,"override = %3d.\n",options->override) ; fprintf(foo,"structure = %3d.\n",options->structure) ; fprintf(foo,"noscalars = %3d.\n",options->noscalars) ; fprintf(foo,"noblocks = %3d.\n",options->noblocks) ; fprintf(foo,"nosimplify = %3d.\n",options->nosimplify) ; } /****************************************************************************** * Memory deallocation function * ******************************************************************************/ /** * cloog_options_free function: * This function frees the allocated memory for a CloogOptions structure. * - April 19th 2003: first version. */ void cloog_options_free(CloogOptions *options) { free(options); } /****************************************************************************** * Processing functions * ******************************************************************************/ /** * cloog_options_help function: * This function displays the quick help when the user set the option -help * while calling cloog. Prints are cutted to respect the 509 characters * limitation of the ISO C 89 compilers. * - August 5th 2002: first version. */ void cloog_options_help() { printf( "Usage: cloog [ options | file ] ...\n" "Options for code generation:\n" " -l Last loop depth to optimize (-1: infinity)\n" " (default setting: -1).\n" " -f First loop depth to start loop separation (-1: " "infinity)\n (default setting: 1).\n") ; printf( " -stop Loop depth to stop code generation (-1: infinity)" "\n (default setting: -1).\n" " -strides Handle non-unit strides (1) or not (0)\n" " (default setting: 0).\n") ; printf( "\nOptions for pretty printing:\n" " -otl Simplify loops running one time (1) or not (0)\n" " (default setting: 1).\n") ; printf( " -esp Allow complex equalities spreading (1) or not (0)\n" " (default setting: 0).\n"); printf( " -fsp First level to begin the spreading\n" " (default setting: 1).\n" " -block Make a new statement block per iterator in C\n" " programs (1) or not (0) (default setting: 0).\n") ; printf( " -compilable Compilable code by using preprocessor (not 0) or" "\n not (0), number being the value of the parameters" "\n (default setting: 0).\n" " -callable Testable code by using preprocessor (not 0) or" "\n not (0) (default setting: 0).\n"); printf( "\nGeneral options:\n" " -o Name of the output file; 'stdout' is a special\n" " value: when used, output is standard output\n" " (default setting: stdout).\n" " -v, --version Display the version information (and more).\n" " -q, --quiet Don't print any informational messages.\n" " -h, --help Display this information.\n\n") ; printf( "The special value 'stdin' for 'file' makes CLooG to read data on\n" "standard input.\n\n" "For bug reporting or any suggestions, please send an email to the author\n" ".\n") ; } /** * cloog_options_version function: * This function displays some version informations when the user set the * option -version while calling cloog. Prints are cutted to respect the 509 * characters limitation of the ISO C 89 compilers. * - August 5th 2002: first version. */ void cloog_options_version() { printf("%s The Chunky Loop Generator\n", cloog_version()); printf( "-----\n" "This is a loop generator for scanning Z-polyhedra. It is based on the " "work of\nF. Quillere and C. Bastoul on high level code generation and of " "the PolyLib Team\non polyhedral computation. This program is distributed " "under the terms of the\nGNU Lesser General Public License " "(details at http://www.gnu.org/licenses/lgpl-2.1.html).\n" "-----\n") ; printf( "It would be fair to refer the following paper in any publication " "resulting from\nthe use of this software or its library:\n" "@InProceedings{Bas04,\n" "author = {Cedric Bastoul},\n" "title = {Code Generation in the Polyhedral Model Is Easier Than You " "Think},\n" "booktitle = {PACT'13 IEEE International Conference on Parallel " "Architecture\n and Compilation Techniques},\n" "pages = {7--16},\n" "month = {september},\n" "year = 2004,\n" "address = {Juan-les-Pins}\n" "}\n" "-----\n" "For any information, please ask the author at " ".\n") ; } /** * cloog_options_set function: * This function sets the value of an option thanks to the user's calling line. * - option is the value to set, * - argc are the elements of the user's calling line, * - number is the number of the element corresponding to the considered option, * this function adds 1 to number to pass away the option value. ** * - August 5th 2002: first version. * - June 29th 2003: (debug) lack of argument now detected. */ void cloog_options_set(int * option, int argv, char ** argc, int * number) { char ** endptr ; if (*number+1 >= argv) cloog_die("an option lacks of argument.\n"); endptr = NULL ; *option = strtol(argc[*number+1],endptr,10) ; if (endptr != NULL) cloog_die("value '%s' for option '%s' is not valid.\n", argc[*number+1], argc[*number]); *number = *number + 1 ; } /** * cloog_options_malloc function: * This functions allocate the memory space for a CLoogOptions structure and * fill its fields with the defaults values. It returns a pointer to the * allocated CloogOptions structure. * - April 19th 2003: first version. * - November 21th 2005: name changed (before it was cloog_options_init). */ CloogOptions *cloog_options_malloc(CloogState *state) { CloogOptions * options ; /* Memory allocation for the CloogOptions structure. */ options = (CloogOptions *)malloc(sizeof(CloogOptions)) ; if (options == NULL) cloog_die("memory overflow.\n"); options->state = state; /* We set the various fields with default values. */ /* OPTIONS FOR LOOP GENERATION */ options->l = -1 ; /* Last level to optimize: infinity. */ options->f = 1 ; /* First level to optimize: the first. */ options->stop = -1 ; /* Generate all the code. */ options->strides = 0 ; /* Generate a code with unit strides. */ options->sh = 0; /* Compute actual convex hull. */ options->name = ""; /* OPTIONS FOR PRETTY PRINTING */ options->esp = 1 ; /* We don't want Equality SPreading.*/ options->fsp = 1 ; /* The First level to SPread is the first. */ options->otl = 1 ; /* We want to fire One Time Loops. */ options->block = 0 ; /* We don't want to force statement blocks. */ options->compilable = 0 ; /* No compilable code. */ options->callable = 0 ; /* No callable code. */ options->quiet = 0; /* Do print informational messages. */ options->language = LANGUAGE_C; /* The default output language is C. */ options->save_domains = 0; /* Don't save domains. */ /* UNDOCUMENTED OPTIONS FOR THE AUTHOR ONLY */ options->leaks = 0 ; /* I don't want to print allocation statistics.*/ options->backtrack = 0; /* Perform backtrack in Quillere's algorithm.*/ options->override = 0 ; /* I don't want to override CLooG decisions.*/ options->structure = 0 ; /* I don't want to print internal structure.*/ options->noblocks = 0 ; /* I do want to make statement blocks.*/ options->noscalars = 0 ; /* I do want to use scalar dimensions.*/ options->nosimplify = 0 ; /* I do want to simplify polyhedra.*/ return options ; } /** * cloog_options_read function: * This functions reads all the options and the input/output files thanks * the the user's calling line elements (in argc). It fills a CloogOptions * structure and the FILE structure corresponding to input and output files. * - August 5th 2002: first version. * - April 19th 2003: now in options.c and support of the CloogOptions structure. */ void cloog_options_read(CloogState *state, int argc, char **argv, FILE **input, FILE **output, CloogOptions **options) { int i, infos=0, input_is_set=0 ; /* CloogOptions structure allocation and initialization. */ *options = cloog_options_malloc(state); /* The default output is the standard output. */ *output = stdout ; for (i=1;il,argc,argv,&i) ; else if (strcmp(argv[i],"-f") == 0) cloog_options_set(&(*options)->f,argc,argv,&i) ; else if (strcmp(argv[i],"-stop") == 0) cloog_options_set(&(*options)->stop,argc,argv,&i) ; else if (strcmp(argv[i],"-strides") == 0) cloog_options_set(&(*options)->strides,argc,argv,&i) ; else if (strcmp(argv[i],"-sh") == 0) cloog_options_set(&(*options)->sh,argc,argv,&i) ; else if (strcmp(argv[i],"-otl") == 0) cloog_options_set(&(*options)->otl,argc,argv,&i) ; else if (strcmp(argv[i],"-esp") == 0) cloog_options_set(&(*options)->esp,argc,argv,&i) ; else if (strcmp(argv[i],"-fsp") == 0) cloog_options_set(&(*options)->fsp,argc,argv,&i) ; else if (strcmp(argv[i],"-block") == 0) cloog_options_set(&(*options)->block,argc,argv,&i) ; else if (strcmp(argv[i],"-compilable") == 0) cloog_options_set(&(*options)->compilable, argc, argv, &i); else if (strcmp(argv[i], "-callable") == 0) cloog_options_set(&(*options)->callable, argc, argv, &i); else if (strcmp(argv[i],"-loopo") == 0) /* Special option for the LooPo team ! */ { (*options)->esp = 0 ; (*options)->block = 1 ; } else if (strcmp(argv[i],"-bipbip") == 0)/* Special option for the author only !*/ (*options)->backtrack = 0; else if (strcmp(argv[i],"-leaks") == 0) (*options)->leaks = 1 ; else if (strcmp(argv[i],"-nobacktrack") == 0) (*options)->backtrack = 0; else if (strcmp(argv[i], "-backtrack") == 0) (*options)->backtrack = 1; else if (strcmp(argv[i],"-override") == 0) (*options)->override = 1 ; else if (strcmp(argv[i],"-noblocks") == 0) (*options)->noblocks = 1 ; else if (strcmp(argv[i],"-noscalars") == 0) (*options)->noscalars = 1 ; else if (strcmp(argv[i],"-nosimplify") == 0) (*options)->nosimplify = 1 ; else if ((strcmp(argv[i],"-struct") == 0) || (strcmp(argv[i],"-structure") == 0)) (*options)->structure = 1 ; else if ((strcmp(argv[i],"--help") == 0) || (strcmp(argv[i],"-h") == 0)) { cloog_options_help() ; infos = 1 ; } else if ((strcmp(argv[i],"--version") == 0) || (strcmp(argv[i],"-v") == 0)) { cloog_options_version() ; infos = 1 ; } else if ((strcmp(argv[i],"--quiet") == 0) || (strcmp(argv[i],"-q") == 0)) (*options)->quiet = 1; else if (strcmp(argv[i],"-o") == 0) { if (i+1 >= argc) cloog_die("no output name for -o option.\n"); /* stdout is a special value, when used, we set output to standard * output. */ if (strcmp(argv[i+1],"stdout") == 0) *output = stdout ; else { *output = fopen(argv[i+1],"w") ; if (*output == NULL) cloog_die("can't create output file %s.\n", argv[i+1]); } i ++ ; } else cloog_msg(*options, CLOOG_WARNING, "unknown %s option.\n", argv[i]); } else { if (!input_is_set) { input_is_set = 1 ; (*options)->name = argv[i] ; /* stdin is a special value, when used, we set input to standard input. */ if (strcmp(argv[i],"stdin") == 0) *input = stdin ; else { *input = fopen(argv[i],"r") ; if (*input == NULL) cloog_die("%s file does not exist.\n", argv[i]); } } else cloog_die("multiple input files.\n"); } if (!input_is_set) { if (!infos) cloog_die("no input file (-h for help).\n"); exit(1) ; } } cloog-parma-0.16.1/cloog-core/source/version.c0000644000175000017500000000055111511607567016115 00000000000000#include "version.h" #include "cloog/version.h" #define CLOOG_BITS "gmp" const char *cloog_version(void) { return "CLooG "CLOOG_HEAD" "CLOOG_BITS" bits"; } int cloog_version_major(void) { return CLOOG_VERSION_MAJOR; } int cloog_version_minor(void) { return CLOOG_VERSION_MINOR; } int cloog_version_revision(void) { return CLOOG_VERSION_REVISION; } cloog-parma-0.16.1/cloog-core/source/matrix/0000755000175000017500000000000011511607625015642 500000000000000cloog-parma-0.16.1/cloog-core/source/matrix/constraintset.c0000644000175000017500000011020411511333441020614 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** constraintset.c ** **-------------------------------------------------------------------** ** First version: april 17th 2005 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ /* CAUTION: the english used for comments is probably the worst you ever read, * please feel free to correct and improve it ! */ # include # include # include #include #include #define ALLOC(type) (type*)malloc(sizeof(type)) #define ALLOCN(type,n) (type*)malloc((n)*sizeof(type)) CloogConstraint *cloog_constraint_first(CloogConstraintSet *constraints); CloogConstraint *cloog_constraint_next(CloogConstraint *constraint); CloogConstraintSet *cloog_constraint_set_from_cloog_matrix(CloogMatrix *M) { return (CloogConstraintSet *)M; } void cloog_constraint_set_free(CloogConstraintSet *constraints) { cloog_matrix_free(&constraints->M); } int cloog_constraint_set_contains_level(CloogConstraintSet *constraints, int level, int nb_parameters) { return constraints->M.NbColumns - 2 - nb_parameters >= level; } /* Check if the variable at position level is defined by an * equality. If so, return the row number. Otherwise, return -1. * * If there is an equality, we can print it directly -no ambiguity-. * PolyLib can give more than one equality, we use just the first one * (this is a PolyLib problem, but all equalities are equivalent). */ CloogConstraint *cloog_constraint_set_defining_equality(CloogConstraintSet *constraints, int level) { CloogConstraint *constraint = ALLOC(CloogConstraint); int i; constraint->set = constraints; for (i = 0; i < constraints->M.NbRows; i++) if (cloog_int_is_zero(constraints->M.p[i][0]) && !cloog_int_is_zero(constraints->M.p[i][level])) { constraint->line = &constraints->M.p[i]; return constraint; } free(constraint); return cloog_constraint_invalid(); } /* Check if the variable (e) at position level is defined by a * pair of inequalities * + -m e + + k1 >= 0 * <-a, i> + m e + <-b, p> + k2 >= 0 * with 0 <= k1 + k2 < m * If so return the row number of the upper bound and set *lower * to the row number of the lower bound. If not, return -1. * * If the variable at position level occurs in any other constraint, * then we currently return -1. The modulo guard that we would generate * would still be correct, but we would also need to generate * guards corresponding to the other constraints, and this has not * been implemented yet. */ CloogConstraint *cloog_constraint_set_defining_inequalities(CloogConstraintSet *constraints, int level, CloogConstraint **lower, int nb_par) { int i, j, k; cloog_int_t m; CloogMatrix *matrix = &constraints->M; unsigned len = matrix->NbColumns - 2; unsigned nb_iter = len - nb_par; CloogConstraint *constraint; for (i = 0; i < matrix->NbRows; i++) { if (cloog_int_is_zero(matrix->p[i][level])) continue; if (cloog_int_is_zero(matrix->p[i][0])) return cloog_constraint_invalid(); if (cloog_int_is_one(matrix->p[i][level])) return cloog_constraint_invalid(); if (cloog_int_is_neg_one(matrix->p[i][level])) return cloog_constraint_invalid(); if (cloog_seq_first_non_zero(matrix->p[i]+level+1, (1+nb_iter)-(level+1)) != -1) return cloog_constraint_invalid(); for (j = i+1; j < matrix->NbRows; ++j) { if (cloog_int_is_zero(matrix->p[j][level])) continue; if (cloog_int_is_zero(matrix->p[j][0])) return cloog_constraint_invalid(); if (cloog_int_is_one(matrix->p[j][level])) return cloog_constraint_invalid(); if (cloog_int_is_neg_one(matrix->p[j][level])) return cloog_constraint_invalid(); if (cloog_seq_first_non_zero(matrix->p[j]+level+1, (1+nb_iter)-(level+1)) != -1) return cloog_constraint_invalid(); cloog_int_init(m); cloog_int_add(m, matrix->p[i][1+len], matrix->p[j][1+len]); if (cloog_int_is_neg(m) || cloog_int_abs_ge(m, matrix->p[i][level])) { cloog_int_clear(m); return cloog_constraint_invalid(); } cloog_int_clear(m); if (!cloog_seq_is_neg(matrix->p[i]+1, matrix->p[j]+1, len)) return cloog_constraint_invalid(); for (k = j+1; k < matrix->NbRows; ++k) if (!cloog_int_is_zero(matrix->p[k][level])) return cloog_constraint_invalid(); *lower = ALLOC(CloogConstraint); constraint = ALLOC(CloogConstraint); (*lower)->set = constraints; constraint->set = constraints; if (cloog_int_is_pos(matrix->p[i][level])) { (*lower)->line = &matrix->p[i]; constraint->line = &matrix->p[j]; } else { (*lower)->line = &matrix->p[j]; constraint->line = &matrix->p[i]; } return constraint; } } return cloog_constraint_invalid(); } int cloog_constraint_set_total_dimension(CloogConstraintSet *constraints) { return constraints->M.NbColumns - 2; } int cloog_constraint_set_n_iterators(CloogConstraintSet *constraint, int nb_par) { return cloog_constraint_set_total_dimension(constraint) - nb_par; } int cloog_equal_total_dimension(CloogEqualities *equal) { return cloog_constraint_set_total_dimension(equal->constraints); } int cloog_constraint_total_dimension(CloogConstraint *constraint) { return cloog_constraint_set_total_dimension(constraint->set); } /****************************************************************************** * Equalities spreading functions * ******************************************************************************/ /* Equalities are stored inside a CloogMatrix data structure called "equal". * This matrix has (nb_scattering + nb_iterators + 1) rows (i.e. total * dimensions + 1, the "+ 1" is because a statement can be included inside an * external loop without iteration domain), and (nb_scattering + nb_iterators + * nb_parameters + 2) columns (all unknowns plus the scalar plus the equality * type). The ith row corresponds to the equality "= 0" for the ith dimension * iterator. The first column gives the equality type (0: no equality, then * EQTYPE_* -see pprint.h-). At each recursion of pprint, if an equality for * the current level is found, the corresponding row is updated. Then the * equality if it exists is used to simplify expressions (e.g. if we have * "i+1" while we know that "i=2", we simplify it in "3"). At the end of * the pprint call, the corresponding row is reset to zero. */ CloogEqualities *cloog_equal_alloc(int n, int nb_levels, int nb_parameters) { int i; CloogEqualities *equal = ALLOC(CloogEqualities); equal->constraints = cloog_constraint_set_from_cloog_matrix( cloog_matrix_alloc(n, nb_levels + nb_parameters + 1)); equal->types = ALLOCN(int, n); for (i = 0; i < n; ++i) equal->types[i] = EQTYPE_NONE; return equal; } void cloog_equal_free(CloogEqualities *equal) { cloog_matrix_free(&equal->constraints->M); free(equal->types); free(equal); } int cloog_equal_count(CloogEqualities *equal) { return equal->constraints->M.NbRows; } CloogConstraintSet *cloog_equal_constraints(CloogEqualities *equal) { return equal->constraints; } /** * cloog_constraint_equal_type function : * This function returns the type of the equality in the constraint (line) of * (constraints) for the element (level). An equality is 'constant' iff all * other factors are null except the constant one. It is a 'pure item' iff * it is equal or opposite to a single variable or parameter. * Otherwise it is an 'affine expression'. * For instance: * i = -13 is constant, i = j, j = -M are pure items, * j = 2*M, i = j+1, 2*j = M are affine expressions. * * - constraints is the matrix of constraints, * - level is the column number in equal of the element which is 'equal to', ** * - July 3rd 2002: first version, called pprint_equal_isconstant. * - July 6th 2002: adaptation for the 3 types. * - June 15th 2005: (debug) expr = domain->Constraint[line] was evaluated * before checking if line != ONE_TIME_LOOP. Since * ONE_TIME_LOOP is -1, an invalid read was possible. * - October 19th 2005: Removal of the once-time-loop specific processing. */ static int cloog_constraint_equal_type(CloogConstraint *constraint, int level) { int i, one=0 ; cloog_int_t *expr; expr = *constraint->line; if (!cloog_int_is_one(expr[level]) && !cloog_int_is_neg_one(expr[level])) return EQTYPE_EXAFFINE; /* There is only one non null factor, and it must be +1 or -1 for * iterators or parameters. */ for (i = 1;i <= constraint->set->M.NbColumns-2; i++) if (!cloog_int_is_zero(expr[i]) && (i != level)) { if ((!cloog_int_is_one(expr[i]) && !cloog_int_is_neg_one(expr[i])) || (one != 0)) return EQTYPE_EXAFFINE ; else one = 1 ; } /* if the constant factor is non null, it must be alone. */ if (one != 0) { if (!cloog_int_is_zero(expr[constraint->set->M.NbColumns-1])) return EQTYPE_EXAFFINE ; } else return EQTYPE_CONSTANT ; return EQTYPE_PUREITEM ; } int cloog_equal_type(CloogEqualities *equal, int level) { return equal->types[level-1]; } /** * cloog_equal_update function: * this function updates a matrix of equalities where each row corresponds to * the equality "=0" of an affine expression such that the entry at column * "row" (="level") is not zero. This matrix is upper-triangular, except the * row number "level-1" which has to be updated for the matrix to be triangular. * This function achieves the processing. * - equal is the matrix to be updated, * - level gives the row that has to be updated (it is actually row "level-1"), * - nb_par is the number of parameters of the program. ** * - September 20th 2005: first version. */ static void cloog_equal_update(CloogEqualities *equal, int level, int nb_par) { int i, j ; cloog_int_t gcd, factor_level, factor_outer, temp_level, temp_outer; cloog_int_init(gcd); cloog_int_init(temp_level); cloog_int_init(temp_outer); cloog_int_init(factor_level); cloog_int_init(factor_outer); /* For each previous level, */ for (i=level-2;i>=0;i--) { /* if the corresponding iterator is inside the current equality and is equal * to something, */ if (!cloog_int_is_zero(equal->constraints->M.p[level-1][i+1]) && equal->types[i]) { /* Compute the Greatest Common Divisor. */ cloog_int_gcd(gcd, equal->constraints->M.p[level-1][i+1], equal->constraints->M.p[i][i+1]); /* Compute the factors to apply to each row vector element. */ cloog_int_divexact(factor_level, equal->constraints->M.p[i][i+1], gcd); cloog_int_divexact(factor_outer, equal->constraints->M.p[level-1][i+1], gcd); /* Now update the row 'level'. */ /* - the iterators, up to level, */ for (j = 1; j <= level; j++) { cloog_int_mul(temp_level, factor_level, equal->constraints->M.p[level-1][j]); cloog_int_mul(temp_outer, factor_outer, equal->constraints->M.p[i][j]); cloog_int_sub(equal->constraints->M.p[level-1][j], temp_level, temp_outer); } /* - between last useful iterator (level) and the first parameter, the * matrix is sparse (full of zeroes), we just do nothing there. * - the parameters and the scalar. */ for (j = 0; j < nb_par + 1; j++) { cloog_int_mul(temp_level,factor_level, equal->constraints->M.p[level-1] [equal->constraints->M.NbColumns-j-1]); cloog_int_mul(temp_outer,factor_outer, equal->constraints->M.p[i][equal->constraints->M.NbColumns-j-1]); cloog_int_sub(equal->constraints->M.p[level-1] [equal->constraints->M.NbColumns-j-1], temp_level,temp_outer) ; } } } /* Normalize (divide by GCD of all elements) the updated equality. */ cloog_seq_normalize(&(equal->constraints->M.p[level-1][1]), equal->constraints->M.NbColumns-1); cloog_int_clear(gcd); cloog_int_clear(temp_level); cloog_int_clear(temp_outer); cloog_int_clear(factor_level); cloog_int_clear(factor_outer); } /** * cloog_equal_add function: * This function updates the row (level-1) of the equality matrix (equal) with * the row that corresponds to the row (line) of the matrix (matrix). * - equal is the matrix of equalities, * - matrix is the matrix of constraints, * - level is the column number in matrix of the element which is 'equal to', * - line is the line number in matrix of the constraint we want to study, * - the infos structure gives the user all options on code printing and more. ** * - July 2nd 2002: first version. * - October 19th 2005: Addition of the once-time-loop specific processing. */ void cloog_equal_add(CloogEqualities *equal, CloogConstraintSet *constraints, int level, CloogConstraint *line, int nb_par) { int j; CloogConstraint *i = cloog_constraint_invalid(); CloogMatrix *matrix = &constraints->M; /* If we are in the case of a loop running once, this means that the equality * comes from an inequality. Here we find this inequality. */ if (!cloog_constraint_is_valid(line)) { for (i = cloog_constraint_first(constraints); cloog_constraint_is_valid(i); i = cloog_constraint_next(i)) if ((!cloog_int_is_zero(i->line[0][0]))&& (!cloog_int_is_zero(i->line[0][level]))) { line = i ; /* Since in once-time-loops, equalities derive from inequalities, we * may have to offset the values. For instance if we have 2i>=3, the * equality is in fact i=2. This may happen when the level coefficient is * not 1 or -1 and the scalar value is not zero. In any other case (e.g., * if the inequality is an expression including outer loop counters or * parameters) the once time loop would not have been detected * because of floord and ceild functions. */ if (cloog_int_ne_si(i->line[0][level],1) && cloog_int_ne_si(i->line[0][level],-1) && !cloog_int_is_zero(i->line[0][matrix->NbColumns-1])) { cloog_int_t denominator; cloog_int_init(denominator); cloog_int_abs(denominator, i->line[0][level]); cloog_int_fdiv_q(i->line[0][matrix->NbColumns-1], i->line[0][matrix->NbColumns-1], denominator); cloog_int_set_si(i->line[0][level], cloog_int_sgn(i->line[0][level])); cloog_int_clear(denominator); } break ; } } assert(cloog_constraint_is_valid(line)); /* We update the line of equal corresponding to level: * - the first element gives the equality type, */ equal->types[level-1] = cloog_constraint_equal_type(line, level); /* - the other elements corresponding to the equality itself * (the iterators up to level, then the parameters and the scalar). */ for (j=1;j<=level;j++) cloog_int_set(equal->constraints->M.p[level-1][j], line->line[0][j]); for (j = 0; j < nb_par + 1; j++) cloog_int_set(equal->constraints->M.p[level-1][equal->constraints->M.NbColumns-j-1], line->line[0][line->set->M.NbColumns-j-1]); if (cloog_constraint_is_valid(i)) cloog_constraint_release(line); cloog_equal_update(equal, level, nb_par); } /** * cloog_equal_del function : * This function reset the equality corresponding to the iterator (level) * in the equality matrix (equal). * - July 2nd 2002: first version. */ void cloog_equal_del(CloogEqualities *equal, int level) { equal->types[level-1] = EQTYPE_NONE; } /****************************************************************************** * Processing functions * ******************************************************************************/ /** * Function cloog_constraint_set_normalize: * This function will modify the constraint system in such a way that when * there is an equality depending on the element at level 'level', there are * no more (in)equalities depending on this element. For instance, try * test/valilache.cloog with options -f 8 -l 9, with and without the call * to this function. At a given moment, for the level L we will have * 32*P=L && L>=1 (P is a lower level), this constraint system cannot be * translated directly into a source code. Thus, we normalize the domain to * remove L from the inequalities. In our example, this leads to * 32*P=L && 32*P>=1, that can be transated to the code * if (P>=1) { L=32*P ; ... }. This function solves the DaeGon Kim bug. * WARNING: Remember that if there is another call to Polylib after a call to * this function, we have to recall this function. * -June 16th 2005: first version (adaptation from URGent June-7th-2005 by * N. Vasilache). * - June 21rd 2005: Adaptation for GMP. * - November 4th 2005: Complete rewriting, simpler and faster. It is no more an * adaptation from URGent. */ void cloog_constraint_set_normalize(CloogConstraintSet *constraints, int level) { int ref, i, j ; cloog_int_t factor_i, factor_ref, temp_i, temp_ref, gcd; CloogMatrix *matrix = &constraints->M; if (matrix == NULL) return ; /* Don't "normalize" the constant term. */ if (level == matrix->NbColumns-1) return; /* Let us find an equality for the current level that can be propagated. */ for (ref=0;refNbRows;ref++) if (cloog_int_is_zero(matrix->p[ref][0]) && !cloog_int_is_zero(matrix->p[ref][level])) { cloog_int_init(gcd); cloog_int_init(temp_i); cloog_int_init(temp_ref); cloog_int_init(factor_i); cloog_int_init(factor_ref); /* Row "ref" is the reference equality, now let us find a row to simplify.*/ for (i=ref+1;iNbRows;i++) if (!cloog_int_is_zero(matrix->p[i][level])) { /* Now let us set to 0 the "level" coefficient of row "j" using "ref". * First we compute the factors to apply to each row vector element. */ cloog_int_gcd(gcd, matrix->p[ref][level], matrix->p[i][level]); cloog_int_divexact(factor_i, matrix->p[ref][level], gcd); cloog_int_divexact(factor_ref, matrix->p[i][level], gcd); /* Maybe we are simplifying an inequality: factor_i must not be <0. */ if (cloog_int_is_neg(factor_i)) { cloog_int_abs(factor_i, factor_i); cloog_int_neg(factor_ref, factor_ref); } /* Now update the vector. */ for (j=1;jNbColumns;j++) { cloog_int_mul(temp_i, factor_i, matrix->p[i][j]); cloog_int_mul(temp_ref, factor_ref, matrix->p[ref][j]); cloog_int_sub(matrix->p[i][j], temp_i, temp_ref); } /* Normalize (divide by GCD of all elements) the updated vector. */ cloog_seq_normalize(&(matrix->p[i][1]), matrix->NbColumns-1); } cloog_int_clear(gcd); cloog_int_clear(temp_i); cloog_int_clear(temp_ref); cloog_int_clear(factor_i); cloog_int_clear(factor_ref); break ; } } /** * cloog_constraint_set_copy function: * this functions builds and returns a "hard copy" (not a pointer copy) of a * CloogMatrix data structure. * - October 26th 2005: first version. */ CloogConstraintSet *cloog_constraint_set_copy(CloogConstraintSet *constraints) { int i, j ; CloogMatrix *copy; CloogMatrix *matrix = &constraints->M; copy = cloog_matrix_alloc(matrix->NbRows, matrix->NbColumns); for (i=0;iNbRows;i++) for (j=0;jNbColumns;j++) cloog_int_set(copy->p[i][j], matrix->p[i][j]); return cloog_constraint_set_from_cloog_matrix(copy); } /** * cloog_equal_vector_simplify function: * this function simplify an affine expression with its coefficients in * "vector" of length "length" thanks to an equality matrix "equal" that gives * for some elements of the affine expression an equality with other elements, * preferably constants. For instance, if the vector contains i+j+3 and the * equality matrix gives i=n and j=2, the vector is simplified to n+3 and is * returned in a new vector. * - vector is the array of affine expression coefficients * - equal is the matrix of equalities, * - length is the vector length, * - level is a level we don't want to simplify (-1 if none), * - nb_par is the number of parameters of the program. ** * - September 20th 2005: first version. * - November 2nd 2005: (debug) we are simplifying inequalities, thus we are * not allowed to multiply the vector by a negative * constant.Problem found after a report of Michael * Classen. */ struct cloog_vec *cloog_equal_vector_simplify(CloogEqualities *equal, cloog_int_t *vector, int length, int level, int nb_par) { int i, j ; cloog_int_t gcd, factor_vector, factor_equal, temp_vector, temp_equal; struct cloog_vec *simplified; simplified = cloog_vec_alloc(length); cloog_seq_cpy(simplified->p, vector, length); cloog_int_init(gcd); cloog_int_init(temp_vector); cloog_int_init(temp_equal); cloog_int_init(factor_vector); cloog_int_init(factor_equal); /* For each non-null coefficient in the vector, */ for (i=length-nb_par-2;i>0;i--) if (i != level) { /* if the coefficient in not null, and there exists a useful equality */ if ((!cloog_int_is_zero(simplified->p[i])) && equal->types[i-1]) { /* Compute the Greatest Common Divisor. */ cloog_int_gcd(gcd, simplified->p[i], equal->constraints->M.p[i-1][i]); /* Compute the factors to apply to each row vector element. */ cloog_int_divexact(factor_vector, equal->constraints->M.p[i-1][i], gcd); cloog_int_divexact(factor_equal, simplified->p[i], gcd); /* We are simplifying an inequality: factor_vector must not be <0. */ if (cloog_int_is_neg(factor_vector)) { cloog_int_abs(factor_vector, factor_vector); cloog_int_neg(factor_equal, factor_equal); } /* Now update the vector. */ /* - the iterators, up to the current level, */ for (j=1;j<=length-nb_par-2;j++) { cloog_int_mul(temp_vector, factor_vector, simplified->p[j]); cloog_int_mul(temp_equal, factor_equal, equal->constraints->M.p[i-1][j]); cloog_int_sub(simplified->p[j], temp_vector, temp_equal); } /* - between last useful iterator (i) and the first parameter, the equal * matrix is sparse (full of zeroes), we just do nothing there. * - the parameters and the scalar. */ for (j = 0; j < nb_par + 1; j++) { cloog_int_mul(temp_vector, factor_vector, simplified->p[length-1-j]); cloog_int_mul(temp_equal,factor_equal, equal->constraints->M.p[i-1][equal->constraints->M.NbColumns-j-1]); cloog_int_sub(simplified->p[length-1-j],temp_vector,temp_equal) ; } } } /* Normalize (divide by GCD of all elements) the updated vector. */ cloog_seq_normalize(&simplified->p[1], length - 1); cloog_int_clear(gcd); cloog_int_clear(temp_vector); cloog_int_clear(temp_equal); cloog_int_clear(factor_vector); cloog_int_clear(factor_equal); return simplified ; } /** * cloog_constraint_set_simplify function: * this function simplify all constraints inside the matrix "matrix" thanks to * an equality matrix "equal" that gives for some elements of the affine * constraint an equality with other elements, preferably constants. * For instance, if a row of the matrix contains i+j+3>=0 and the equality * matrix gives i=n and j=2, the constraint is simplified to n+3>=0. The * simplified constraints are returned back inside a new simplified matrix. * - matrix is the set of constraints to simplify, * - equal is the matrix of equalities, * - level is a level we don't want to simplify (-1 if none), * - nb_par is the number of parameters of the program. ** * - November 4th 2005: first version. */ CloogConstraintSet *cloog_constraint_set_simplify(CloogConstraintSet *constraints, CloogEqualities *equal, int level, int nb_par) { int i, j, k ; struct cloog_vec *vector; CloogMatrix *simplified; CloogMatrix *matrix = &constraints->M; if (matrix == NULL) return NULL ; /* The simplified matrix is such that each row has been simplified thanks * tho the "equal" matrix. We allocate the memory for the simplified matrix, * then for each row of the original matrix, we compute the simplified * vector and we copy its content into the according simplified row. */ simplified = cloog_matrix_alloc(matrix->NbRows, matrix->NbColumns); for (i=0;iNbRows;i++) { vector = cloog_equal_vector_simplify(equal, matrix->p[i], matrix->NbColumns, level, nb_par); for (j=0;jNbColumns;j++) cloog_int_set(simplified->p[i][j], vector->p[j]); cloog_vec_free(vector); } /* After simplification, it may happen that few constraints are the same, * we remove them here by replacing them with 0=0 constraints. */ for (i=0;iNbRows;i++) for (j=i+1;jNbRows;j++) { for (k=0;kNbColumns;k++) if (cloog_int_ne(simplified->p[i][k],simplified->p[j][k])) break ; if (k == matrix->NbColumns) { for (k=0;kNbColumns;k++) cloog_int_set_si(simplified->p[j][k],0); } } return cloog_constraint_set_from_cloog_matrix(simplified); } /** * Return clast_expr corresponding to the variable "level" (1 based) in * the given constraint. */ struct clast_expr *cloog_constraint_variable_expr(CloogConstraint *constraint, int level, CloogNames *names) { int total_dim, nb_iter; const char *name; total_dim = cloog_constraint_total_dimension(constraint); nb_iter = total_dim - names->nb_parameters; if (level <= nb_iter) name = cloog_names_name_at_level(names, level); else name = names->parameters[level - (nb_iter+1)] ; return &new_clast_name(name)->expr; } /** * Return true if constraint c involves variable v (zero-based). */ int cloog_constraint_involves(CloogConstraint *constraint, int v) { return !cloog_int_is_zero(constraint->line[0][1+v]); } int cloog_constraint_is_lower_bound(CloogConstraint *constraint, int v) { return cloog_int_is_pos(constraint->line[0][1+v]); } int cloog_constraint_is_upper_bound(CloogConstraint *constraint, int v) { return cloog_int_is_neg(constraint->line[0][1+v]); } int cloog_constraint_is_equality(CloogConstraint *constraint) { return cloog_int_is_zero(constraint->line[0][0]); } void cloog_constraint_clear(CloogConstraint *constraint) { int k; for (k = 1; k <= constraint->set->M.NbColumns - 2; k++) cloog_int_set_si(constraint->line[0][k], 0); } void cloog_constraint_coefficient_get(CloogConstraint *constraint, int var, cloog_int_t *val) { cloog_int_set(*val, constraint->line[0][1+var]); } void cloog_constraint_coefficient_set(CloogConstraint *constraint, int var, cloog_int_t val) { cloog_int_set(constraint->line[0][1+var], val); } void cloog_constraint_constant_get(CloogConstraint *constraint, cloog_int_t *val) { cloog_int_set(*val, constraint->line[0][constraint->set->M.NbColumns-1]); } /** * Copy the coefficient of constraint c into dst in PolyLib order, * i.e., first the coefficients of the variables, then the coefficients * of the parameters and finally the constant. */ void cloog_constraint_copy_coefficients(CloogConstraint *constraint, cloog_int_t *dst) { cloog_seq_cpy(dst, constraint->line[0]+1, constraint->set->M.NbColumns-1); } CloogConstraint *cloog_constraint_invalid(void) { return NULL; } int cloog_constraint_is_valid(CloogConstraint *constraint) { return constraint != NULL; } /** * Check whether there is any need for the constraint "upper" on * "level" to get reduced. * Yes. */ int cloog_constraint_needs_reduction(CloogConstraint *upper, int level) { return 1; } /** * Create a CloogConstraintSet containing enough information to perform * a reduction on the upper equality (in this case lower is an invalid * CloogConstraint) or the pair of inequalities upper and lower * from within insert_modulo_guard. * In the PolyLib backend, we return a CloogConstraintSet containting only * the upper bound. The reduction will not change the stride so there * will be no need to recompute the bound on the modulo expression. */ CloogConstraintSet *cloog_constraint_set_for_reduction(CloogConstraint *upper, CloogConstraint *lower) { CloogConstraintSet *set; set = cloog_constraint_set_from_cloog_matrix( cloog_matrix_alloc(1, upper->set->M.NbColumns)); cloog_seq_cpy(set->M.p[0], upper->line[0], set->M.NbColumns); return set; } /* Computes x, y and g such that g = gcd(a,b) and a*x+b*y = g */ static void Euclid(cloog_int_t a, cloog_int_t b, cloog_int_t *x, cloog_int_t *y, cloog_int_t *g) { cloog_int_t c, d, e, f, tmp; cloog_int_init(c); cloog_int_init(d); cloog_int_init(e); cloog_int_init(f); cloog_int_init(tmp); cloog_int_abs(c, a); cloog_int_abs(d, b); cloog_int_set_si(e, 1); cloog_int_set_si(f, 0); while (cloog_int_is_pos(d)) { cloog_int_tdiv_q(tmp, c, d); cloog_int_mul(tmp, tmp, f); cloog_int_sub(e, e, tmp); cloog_int_tdiv_q(tmp, c, d); cloog_int_mul(tmp, tmp, d); cloog_int_sub(c, c, tmp); cloog_int_swap(c, d); cloog_int_swap(e, f); } cloog_int_set(*g, c); if (cloog_int_is_zero(a)) cloog_int_set_si(*x, 0); else if (cloog_int_is_pos(a)) cloog_int_set(*x, e); else cloog_int_neg(*x, e); if (cloog_int_is_zero(b)) cloog_int_set_si(*y, 0); else { cloog_int_mul(tmp, a, *x); cloog_int_sub(tmp, c, tmp); cloog_int_divexact(*y, tmp, b); } cloog_int_clear(c); cloog_int_clear(d); cloog_int_clear(e); cloog_int_clear(f); cloog_int_clear(tmp); } /** * Reduce the modulo guard expressed by "contraints" using equalities * found in outer nesting levels (stored in "equal"). * The modulo guard may be an equality or a pair of inequalities. * In case of a pair of inequalities, "constraints" only contains the * upper bound and *bound contains the bound on the * corresponding modulo expression. The bound is left untouched by * this function. */ CloogConstraintSet *cloog_constraint_set_reduce(CloogConstraintSet *constraints, int level, CloogEqualities *equal, int nb_par, cloog_int_t *bound) { int i, j, k, len, len2, nb_iter; struct cloog_vec *line_vector2; cloog_int_t *line, *line2, val, x, y, g; len = constraints->M.NbColumns; len2 = cloog_equal_total_dimension(equal) + 2; nb_iter = len - 2 - nb_par; cloog_int_init(val); cloog_int_init(x); cloog_int_init(y); cloog_int_init(g); line_vector2 = cloog_vec_alloc(len2); line2 = line_vector2->p; line = constraints->M.p[0]; if (cloog_int_is_pos(line[level])) cloog_seq_neg(line+1, line+1, len-1); cloog_int_neg(line[level], line[level]); assert(cloog_int_is_pos(line[level])); for (i = nb_iter; i >= 1; --i) { if (i == level) continue; cloog_int_fdiv_r(line[i], line[i], line[level]); if (cloog_int_is_zero(line[i])) continue; /* Look for an earlier variable that is also a multiple of line[level] * and check whether we can use the corresponding affine expression * to "reduce" the modulo guard, where reduction means that we eliminate * a variable, possibly at the expense of introducing other variables * with smaller index. */ for (j = level-1; j >= 0; --j) { CloogConstraint *equal_constraint; if (cloog_equal_type(equal, j+1) != EQTYPE_EXAFFINE) continue; equal_constraint = cloog_equal_constraint(equal, j); cloog_constraint_coefficient_get(equal_constraint, j, &val); if (!cloog_int_is_divisible_by(val, line[level])) { cloog_constraint_release(equal_constraint); continue; } cloog_constraint_coefficient_get(equal_constraint, i-1, &val); if (cloog_int_is_divisible_by(val, line[level])) { cloog_constraint_release(equal_constraint); continue; } for (k = j; k > i; --k) { cloog_constraint_coefficient_get(equal_constraint, k-1, &val); if (cloog_int_is_zero(val)) continue; if (!cloog_int_is_divisible_by(val, line[level])) break; } if (k > i) { cloog_constraint_release(equal_constraint); continue; } cloog_constraint_coefficient_get(equal_constraint, i-1, &val); Euclid(val, line[level], &x, &y, &g); if (!cloog_int_is_divisible_by(val, line[i])) { cloog_constraint_release(equal_constraint); continue; } cloog_int_divexact(val, line[i], g); cloog_int_neg(val, val); cloog_int_mul(val, val, x); cloog_int_set_si(y, 1); /* Add (equal->p[j][i])^{-1} * line[i] times the equality */ cloog_constraint_copy_coefficients(equal_constraint, line2+1); cloog_seq_combine(line+1, y, line+1, val, line2+1, i); cloog_seq_combine(line+len-nb_par-1, y, line+len-nb_par-1, val, line2+len2-nb_par-1, nb_par+1); cloog_constraint_release(equal_constraint); break; } } cloog_vec_free(line_vector2); cloog_int_clear(val); cloog_int_clear(x); cloog_int_clear(y); cloog_int_clear(g); /* Make sure the line is not inverted again in the calling function. */ cloog_int_neg(line[level], line[level]); return constraints; } CloogConstraint *cloog_constraint_first(CloogConstraintSet *constraints) { CloogConstraint *c; if (constraints->M.NbRows == 0) return cloog_constraint_invalid(); c = ALLOC(CloogConstraint); c->set = constraints; c->line = &constraints->M.p[0]; return c; } CloogConstraint *cloog_constraint_next(CloogConstraint *constraint) { constraint->line++; if (constraint->line == constraint->set->M.p + constraint->set->M.NbRows) { cloog_constraint_release(constraint); return NULL; } return constraint; } CloogConstraint *cloog_constraint_copy(CloogConstraint *constraint) { CloogConstraint *c = ALLOC(CloogConstraint); c->set = constraint->set; c->line = constraint->line; return c; } void cloog_constraint_release(CloogConstraint *constraint) { free(constraint); } int cloog_constraint_set_foreach_constraint(CloogConstraintSet *constraints, int (*fn)(CloogConstraint *constraint, void *user), void *user) { CloogConstraint *c; for (c = cloog_constraint_first(constraints); cloog_constraint_is_valid(c); c = cloog_constraint_next(c)) if (fn(c, user) < 0) { cloog_constraint_release(c); return -1; } return 0; } CloogConstraint *cloog_equal_constraint(CloogEqualities *equal, int j) { CloogConstraint *c = ALLOC(CloogConstraint); c->set = equal->constraints; c->line = &equal->constraints->M.p[j]; return c; } cloog-parma-0.16.1/cloog-core/source/state.c0000644000175000017500000000205211321074700015530 00000000000000#include #include "../include/cloog/cloog.h" /** * Allocate state and initialize backend independent part. */ CloogState *cloog_core_state_malloc(void) { CloogState *state; state = (CloogState *)malloc(sizeof(CloogState)); if (!state) cloog_die("memory overflow.\n"); state->backend = NULL; cloog_int_init(state->zero); cloog_int_set_si(state->zero, 0); cloog_int_init(state->one); cloog_int_set_si(state->one, 1); cloog_int_init(state->negone); cloog_int_set_si(state->negone, -1); state->block_allocated = 0; state->block_freed = 0; state->block_max = 0; state->domain_allocated = 0; state->domain_freed = 0; state->domain_max = 0; state->loop_allocated = 0; state->loop_freed = 0; state->loop_max = 0; state->statement_allocated = 0; state->statement_freed = 0; state->statement_max = 0; return state; } /** * Free state. */ void cloog_core_state_free(CloogState *state) { cloog_int_clear(state->zero); cloog_int_clear(state->one); cloog_int_clear(state->negone); free(state); } cloog-parma-0.16.1/cloog-core/source/program.c0000644000175000017500000010750111505435152016072 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** program.c ** **-------------------------------------------------------------------** ** First version: october 25th 2001 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ /* CAUTION: the english used for comments is probably the worst you ever read, * please feel free to correct and improve it ! */ # include # include #include # include # include # include # include # include # include "../include/cloog/cloog.h" #ifdef CLOOG_RUSAGE # include #endif #define ALLOC(type) (type*)malloc(sizeof(type)) /****************************************************************************** * Structure display function * ******************************************************************************/ /** * cloog_program_print function: * this function is a human-friendly way to display the CloogProgram data * structure, it shows all the different fields and includes an indentation * level (level) in order to work with others print_structure functions. * - July 1st 2005: first version based on the old cloog_program_print function. */ void cloog_program_print_structure(file, program, level) FILE * file ; CloogProgram * program ; int level ; { int i, j ; /* Go to the right level. */ for (i=0; ilanguage) ; /* A blank line. */ for (i=0; i<=level+1; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; /* Print the scattering dimension number. */ for (i=0; i<=level; i++) fprintf(file,"|\t") ; fprintf(file,"Scattering dimension number: %d\n",program->nb_scattdims) ; /* A blank line. */ for (i=0; i<=level+1; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; /* Print the scalar scattering dimension informations. */ for (i=0; i<=level; i++) fprintf(file,"|\t") ; if (program->scaldims != NULL) { fprintf(file,"Scalar dimensions:") ; for (i=0;inb_scattdims;i++) fprintf(file," %d:%d ",i,program->scaldims[i]) ; fprintf(file,"\n") ; } else fprintf(file,"No scalar scattering dimensions\n") ; /* A blank line. */ for (i=0; i<=level+1; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; /* Print the parameter and the iterator names. */ cloog_names_print_structure(file,program->names,level+1) ; /* A blank line. */ for (i=0; i<=level+1; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; /* Print the context. */ cloog_domain_print_structure(file, program->context, level+1, "Context"); /* Print the loop. */ cloog_loop_print_structure(file,program->loop,level+1) ; /* One more time something that is here only for a better look. */ for (j=0; j<2; j++) { for (i=0; i<=level; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; } } /** * cloog_program_dump_cloog function: * This function dumps a CloogProgram structure supposed to be completely * filled in a CLooG input file (foo possibly stdout) such as CLooG can * rebuild almost exactly the data structure from the input file. * * If the scattering is already applied, the scattering parameter is supposed to * be NULL. In this case the number of scattering functions is lost, since they * are included inside the iteration domains. This can only lead to a less * beautiful pretty printing. * * In case the scattering is not yet applied it can be passed to this function * and will be included in the CLooG input file dump. */ void cloog_program_dump_cloog(FILE * foo, CloogProgram * program, CloogScatteringList *scattering) { int i; CloogLoop * loop ; CloogScatteringList *tmp_scatt; fprintf(foo, "# CLooG -> CLooG\n" "# This is an automatic dump of a CLooG input file from a CloogProgram data\n" "# structure. WARNING: it is highly dangerous and MAY be correct ONLY if\n" "# - it has been dumped before loop generation.\n" "# - option -noscalars is used (it removes scalar dimensions otherwise)\n" "# - option -l is at least the original scattering dimension number\n" "# ASK THE AUTHOR IF YOU *NEED* SOMETHING MORE ROBUST\n") ; /* Language. */ if (program->language == 'c') fprintf(foo,"# Language: C\n") ; else fprintf(foo,"# Language: FORTRAN\n") ; fprintf(foo,"%c\n\n",program->language) ; /* Context. */ fprintf(foo, "# Context (%d parameter(s)):\n", program->names->nb_parameters); cloog_domain_print_constraints(foo, program->context, 0); fprintf(foo,"1 # Parameter name(s)\n") ; for (i=0;inames->nb_parameters;i++) fprintf(foo,"%s ",program->names->parameters[i]) ; /* Statement number. */ i = 0 ; loop = program->loop ; while (loop != NULL) { i++ ; loop = loop->next ; } fprintf(foo,"\n\n# Statement number:\n%d\n\n",i) ; /* Iteration domains. */ i = 1 ; loop = program->loop ; while (loop != NULL) { /* Name of the domain. */ fprintf(foo,"# Iteration domain of statement %d.\n",i) ; cloog_domain_print_constraints(foo, loop->domain, 1); fprintf(foo,"0 0 0 # For future options.\n\n") ; i++ ; loop = loop->next ; } fprintf(foo,"\n1 # Iterator name(s)\n") ; /* Scattering already applied? In this case print the scattering names as * additional iterator names. */ if (!scattering) for (i = 0; i < program->names->nb_scattering; i++) fprintf(foo, "%s ", program->names->scattering[i]); for (i=0;inames->nb_iterators;i++) fprintf(foo,"%s ",program->names->iterators[i]); fprintf(foo,"\n\n") ; /* Exit, if scattering is already applied. */ if (!scattering) { fprintf(foo, "# No scattering functions.\n0\n\n"); return; } /* Scattering relations. */ fprintf(foo, "# --------------------- SCATTERING --------------------\n"); i = 0; for (tmp_scatt = scattering; tmp_scatt; tmp_scatt = tmp_scatt->next) i++; fprintf(foo, "%d # Scattering functions", i); for (tmp_scatt = scattering; tmp_scatt; tmp_scatt = tmp_scatt->next) cloog_scattering_print_constraints(foo, tmp_scatt->scatt); fprintf(foo, "\n1 # Scattering dimension name(s)\n"); for (i = 0; i < program->names->nb_scattering; i++) fprintf(foo, "%s ", program->names->scattering[i]); } /** * cloog_program_print function: * This function prints the content of a CloogProgram structure (program) into a * file (file, possibly stdout). * - July 1st 2005: Now this very old function (probably as old as CLooG) is * only a frontend to cloog_program_print_structure, with a * quite better human-readable representation. */ void cloog_program_print(FILE * file, CloogProgram * program) { cloog_program_print_structure(file,program,0) ; } static void print_comment(FILE *file, CloogOptions *options, const char *fmt, ...) { va_list args; va_start(args, fmt); if (options->language == LANGUAGE_FORTRAN) { fprintf(file, "! "); vfprintf(file, fmt, args); fprintf(file, "\n"); } else { fprintf(file, "/* "); vfprintf(file, fmt, args); fprintf(file, " */\n"); } } static void print_macros(FILE *file) { fprintf(file, "/* Useful macros. */\n") ; fprintf(file, "#define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d))\n"); fprintf(file, "#define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d))\n"); fprintf(file, "#define max(x,y) ((x) > (y) ? (x) : (y))\n") ; fprintf(file, "#define min(x,y) ((x) < (y) ? (x) : (y))\n\n") ; } static void print_declarations(FILE *file, int n, char **names) { int i; fprintf(file, " int %s", names[0]); for (i = 1; i < n; i++) fprintf(file, ", %s", names[i]); fprintf(file, ";\n"); } static void print_iterator_declarations(FILE *file, CloogProgram *program, CloogOptions *options) { CloogNames *names = program->names; if (names->nb_scattering) { fprintf(file, " /* Scattering iterators. */\n"); print_declarations(file, names->nb_scattering, names->scattering); } if (names->nb_iterators) { fprintf(file, " /* Original iterators. */\n"); print_declarations(file, names->nb_iterators, names->iterators); } } static void print_callable_preamble(FILE *file, CloogProgram *program, CloogOptions *options) { int j; CloogBlockList *blocklist; CloogBlock *block; CloogStatement *statement; fprintf(file, "extern void hash(int);\n\n"); print_macros(file); for (blocklist = program->blocklist; blocklist; blocklist = blocklist->next) { block = blocklist->block; for (statement = block->statement; statement; statement = statement->next) { fprintf(file, "#define S%d(", statement->number); if (block->depth > 0) { fprintf(file, "%s", program->names->iterators[0]); for(j = 1; j < block->depth; j++) fprintf(file, ",%s", program->names->iterators[j]); } fprintf(file,") { hash(%d);", statement->number); for(j = 0; j < block->depth; j++) fprintf(file, " hash(%s);", program->names->iterators[j]); fprintf(file, " }\n"); } } fprintf(file, "\nvoid test("); if (program->names->nb_parameters > 0) { fprintf(file, "int %s", program->names->parameters[0]); for(j = 1; j < program->names->nb_parameters; j++) fprintf(file, ", int %s", program->names->parameters[j]); } fprintf(file, ")\n{\n"); print_iterator_declarations(file, program, options); } static void print_callable_postamble(FILE *file, CloogProgram *program) { fprintf(file, "}\n"); } /** * cloog_program_pprint function: * This function prints the content of a CloogProgram structure (program) into a * file (file, possibly stdout), in a C-like language. * - June 22nd 2005: Adaptation for GMP. */ void cloog_program_pprint(file, program, options) FILE * file ; CloogProgram * program ; CloogOptions * options ; { int i, j, nb_scattering, indentation=0 ; CloogStatement * statement ; CloogBlockList * blocklist ; CloogBlock * block ; struct clast_stmt *root; if (program->language == 'f') options->language = LANGUAGE_FORTRAN ; else options->language = LANGUAGE_C ; #ifdef CLOOG_RUSAGE print_comment(file, options, "Generated from %s by %s in %.2fs.", options->name, cloog_version(), options->time); #else print_comment(file, options, "Generated from %s by %s.", options->name, cloog_version()); #endif #ifdef CLOOG_MEMORY print_comment(file, options, "CLooG asked for %d KBytes.", options->memory); cloog_msg(CLOOG_INFO, "%.2fs and %dKB used for code generation.\n", options->time,options->memory); #endif /* If the option "compilable" is set, we provide the whole stuff to generate * a compilable code. This code just do nothing, but now the user can edit * the source and set the statement macros and parameters values. */ nb_scattering = program->nb_scattdims ; if (options->compilable && (program->language == 'c')) { /* The headers. */ fprintf(file,"/* DON'T FORGET TO USE -lm OPTION TO COMPILE. */\n\n") ; fprintf(file,"/* Useful headers. */\n") ; fprintf(file,"#include \n") ; fprintf(file,"#include \n") ; fprintf(file,"#include \n\n") ; /* The value of parameters. */ fprintf(file,"/* Parameter value. */\n") ; for (i = 1; i <= program->names->nb_parameters; i++) fprintf(file, "#define PARVAL%d %d\n", i, options->compilable); /* The macros. */ print_macros(file); /* The statement macros. */ fprintf(file,"/* Statement macros (please set). */\n") ; blocklist = program->blocklist ; while (blocklist != NULL) { block = blocklist->block ; statement = block->statement ; while (statement != NULL) { fprintf(file,"#define S%d(",statement->number) ; if (block->depth > 0) { fprintf(file,"%s",program->names->iterators[0]) ; for(j=1;jdepth;j++) fprintf(file,",%s",program->names->iterators[j]) ; } fprintf(file,") {total++;") ; if (block->depth > 0) { fprintf(file, " printf(\"S%d %%d", statement->number); for(j=1;jdepth;j++) fprintf(file, " %%d"); fprintf(file,"\\n\",%s",program->names->iterators[0]) ; for(j=1;jdepth;j++) fprintf(file,",%s",program->names->iterators[j]) ; fprintf(file,");") ; } fprintf(file,"}\n") ; statement = statement->next ; } blocklist = blocklist->next ; } /* The iterator and parameter declaration. */ fprintf(file,"\nint main() {\n") ; print_iterator_declarations(file, program, options); if (program->names->nb_parameters > 0) { fprintf(file," /* Parameters. */\n") ; fprintf(file, " int %s=PARVAL1",program->names->parameters[0]); for(i=2;i<=program->names->nb_parameters;i++) fprintf(file, ", %s=PARVAL%d", program->names->parameters[i-1], i); fprintf(file,";\n"); } fprintf(file," int total=0;\n"); fprintf(file,"\n") ; /* And we adapt the identation. */ indentation += 2 ; } else if (options->callable && program->language == 'c') { print_callable_preamble(file, program, options); indentation += 2; } root = cloog_clast_create(program, options); clast_pprint(file, root, indentation, options); cloog_clast_free(root); /* The end of the compilable code in case of 'compilable' option. */ if (options->compilable && (program->language == 'c')) { fprintf(file, "\n printf(\"Number of integral points: %%d.\\n\",total);"); fprintf(file, "\n return 0;\n}\n"); } else if (options->callable && program->language == 'c') print_callable_postamble(file, program); } /****************************************************************************** * Memory deallocation function * ******************************************************************************/ /** * cloog_program_free function: * This function frees the allocated memory for a CloogProgram structure. */ void cloog_program_free(CloogProgram * program) { cloog_names_free(program->names) ; cloog_loop_free(program->loop) ; cloog_domain_free(program->context) ; cloog_block_list_free(program->blocklist) ; if (program->scaldims != NULL) free(program->scaldims) ; free(program) ; } /****************************************************************************** * Reading function * ******************************************************************************/ static void cloog_program_construct_block_list(CloogProgram *p) { CloogLoop *loop; CloogBlockList **next = &p->blocklist; for (loop = p->loop; loop; loop = loop->next) { *next = cloog_block_list_alloc(loop->block); next = &(*next)->next; } } /** * Construct a CloogProgram structure from a given context and * union domain representing the iteration domains and scattering functions. */ CloogProgram *cloog_program_alloc(CloogDomain *context, CloogUnionDomain *ud, CloogOptions *options) { int i; char prefix[] = "c"; CloogScatteringList * scatteringl; CloogNames *n; CloogProgram * p ; /* Memory allocation for the CloogProgram structure. */ p = cloog_program_malloc() ; if (options->language == LANGUAGE_FORTRAN) p->language = 'f'; else p->language = 'c'; p->names = n = cloog_names_alloc(); /* We then read the context data. */ p->context = context; n->nb_parameters = ud->n_name[CLOOG_PARAM]; /* First part of the CloogNames structure: the parameter names. */ if (ud->name[CLOOG_PARAM]) { n->parameters = ud->name[CLOOG_PARAM]; ud->name[CLOOG_PARAM] = NULL; } else n->parameters = cloog_names_generate_items(n->nb_parameters, NULL, FIRST_PARAMETER); n->nb_iterators = ud->n_name[CLOOG_ITER]; if (ud->name[CLOOG_ITER]) { n->iterators = ud->name[CLOOG_ITER]; ud->name[CLOOG_ITER] = NULL; } else n->iterators = cloog_names_generate_items(n->nb_iterators, NULL, FIRST_ITERATOR); if (ud->domain) { CloogNamedDomainList *l; CloogLoop **next = &p->loop; CloogScatteringList **next_scat = &scatteringl; scatteringl = NULL; for (i = 0, l = ud->domain; l; ++i, l = l->next) { *next = cloog_loop_from_domain(options->state, l->domain, i); l->domain = NULL; (*next)->block->statement->name = l->name; (*next)->block->statement->usr = l->usr; l->name = NULL; if (l->scattering) { *next_scat = ALLOC(CloogScatteringList); (*next_scat)->scatt = l->scattering; l->scattering = NULL; (*next_scat)->next = NULL; next_scat = &(*next_scat)->next; } next = &(*next)->next; } if (scatteringl != NULL) { p->nb_scattdims = cloog_scattering_dimension(scatteringl->scatt, p->loop->domain); n->nb_scattering = p->nb_scattdims; if (ud->name[CLOOG_SCAT]) { n->scattering = ud->name[CLOOG_SCAT]; ud->name[CLOOG_SCAT] = NULL; } else n->scattering = cloog_names_generate_items(n->nb_scattering, prefix, -1); /* The boolean array for scalar dimensions is created and set to 0. */ p->scaldims = (int *)malloc(p->nb_scattdims*(sizeof(int))) ; if (p->scaldims == NULL) cloog_die("memory overflow.\n"); for (i=0;inb_scattdims;i++) p->scaldims[i] = 0 ; /* We try to find blocks in the input problem to reduce complexity. */ if (!options->noblocks) cloog_program_block(p, scatteringl, options); if (!options->noscalars) cloog_program_extract_scalars(p, scatteringl, options); cloog_program_scatter(p, scatteringl, options); cloog_scattering_list_free(scatteringl); if (!options->noblocks) p->loop = cloog_loop_block(p->loop, p->scaldims, p->nb_scattdims); } else { p->nb_scattdims = 0 ; p->scaldims = NULL ; } cloog_names_scalarize(p->names,p->nb_scattdims,p->scaldims) ; cloog_program_construct_block_list(p); } else { p->loop = NULL ; p->blocklist = NULL ; p->scaldims = NULL ; } cloog_union_domain_free(ud); return(p) ; } /** * cloog_program_read function: * This function read the informations to put in a CloogProgram structure from * a file (file, possibly stdin). It returns a pointer to a CloogProgram * structure containing the read informations. * - October 25th 2001: first version. * - September 9th 2002: - the big reading function is now split in several * functions (one per read data structure). * - adaptation to the new file format with naming. */ CloogProgram *cloog_program_read(FILE *file, CloogOptions *options) { CloogInput *input; CloogProgram *p; input = cloog_input_read(file, options); p = cloog_program_alloc(input->context, input->ud, options); free(input); return p; } /****************************************************************************** * Processing functions * ******************************************************************************/ /** * cloog_program_malloc function: * This function allocates the memory space for a CloogProgram structure and * sets its fields with default values. Then it returns a pointer to the * allocated space. * - November 21th 2005: first version. */ CloogProgram * cloog_program_malloc() { CloogProgram * program ; /* Memory allocation for the CloogProgram structure. */ program = (CloogProgram *)malloc(sizeof(CloogProgram)) ; if (program == NULL) cloog_die("memory overflow.\n"); /* We set the various fields with default values. */ program->language = 'c' ; program->nb_scattdims = 0 ; program->context = NULL ; program->loop = NULL ; program->names = NULL ; program->blocklist = NULL ; program->scaldims = NULL ; program->usr = NULL; return program ; } /** * cloog_program_generate function: * This function calls the Quillere algorithm for loop scanning. (see the * Quillere paper) and calls the loop simplification function. * - depth is the loop depth we want to optimize (guard free as possible), * the first loop depth is 1 and anegative value is the infinity depth. * - sep_level is the level number where we want to start loop separation. ** * - October 26th 2001: first version. * - April 19th 2005: some basic fixes and memory usage feature. * - April 29th 2005: (bug fix, bug found by DaeGon Kim) see case 2 below. */ CloogProgram * cloog_program_generate(program, options) CloogProgram * program ; CloogOptions * options ; { #ifdef CLOOG_RUSAGE float time; struct rusage start, end ; #endif CloogLoop * loop ; #ifdef CLOOG_MEMORY char status_path[MAX_STRING_VAL] ; FILE * status ; /* We initialize the memory need to 0. */ options->memory = 0 ; #endif if (options->override) { cloog_msg(options, CLOOG_WARNING, "you are using -override option, be aware that the " "generated\n code may be incorrect.\n") ; } else { /* Playing with options may be dangerous, here are two possible issues : * 1. Using -l option less than scattering dimension number may lead to * an illegal target code (since the scattering is not respected), if * it is the case, we set -l depth to the first acceptable value. */ if ((program->nb_scattdims > options->l) && (options->l >= 0)) { cloog_msg(options, CLOOG_WARNING, "-l depth is less than the scattering dimension number " "(the \n generated code may be incorrect), it has been " "automaticaly set\n to this value (use option -override " "to override).\n") ; options->l = program->nb_scattdims ; } /* 2. Using -f option greater than one while -l depth is greater than the * scattering dimension number may lead to iteration duplication (try * test/daegon_lu_osp.cloog with '-f 3' to test) because of the step 4b * of the cloog_loop_generate function, if it is the case, we set -l to * the first acceptable value. */ if (((options->f > 1) || (options->f < 0)) && ((options->l > program->nb_scattdims) || (options->l < 0))) { cloog_msg(options, CLOOG_WARNING, "-f depth is more than one, -l depth has been " "automaticaly set\n to the scattering dimension number " "(target code may have\n duplicated iterations), -l depth " "has been automaticaly set to\n this value (use option " "-override to override).\n") ; options->l = program->nb_scattdims ; } } #ifdef CLOOG_RUSAGE getrusage(RUSAGE_SELF, &start) ; #endif if (program->loop != NULL) { loop = program->loop ; /* Here we go ! */ loop = cloog_loop_generate(loop, program->context, 0, 0, program->scaldims, program->nb_scattdims, options); #ifdef CLOOG_MEMORY /* We read into the status file of the process how many memory it uses. */ sprintf(status_path,"/proc/%d/status",getpid()) ; status = fopen(status_path, "r") ; while (fscanf(status,"%s",status_path) && strcmp(status_path,"VmData:")!=0); fscanf(status,"%d",&(options->memory)) ; fclose(status) ; #endif if ((!options->nosimplify) && (program->loop != NULL)) loop = cloog_loop_simplify(loop, program->context, 0, program->nb_scattdims, options); program->loop = loop ; } #ifdef CLOOG_RUSAGE getrusage(RUSAGE_SELF, &end) ; /* We calculate the time spent in code generation. */ time = (end.ru_utime.tv_usec - start.ru_utime.tv_usec)/(float)(MEGA) ; time += (float)(end.ru_utime.tv_sec - start.ru_utime.tv_sec) ; options->time = time ; #endif return program ; } /** * cloog_program_block function: * this function gives a last chance to the lazy user to consider statement * blocks instead of some statement lists where the whole list may be * considered as a single statement from a code generation point of view. * For instance two statements with the same iteration domain and the same * scattering functions may be considered as a block. This function is lazy * and can only find very simple forms of trivial blocks (see * cloog_domain_lazy_block function for more details). The useless loops and * scattering functions are removed and freed while the statement list of * according blocks are filled. * - program is the whole program structure (befaore applying scattering), * - scattering is the list of scattering functions. ** * - April 30th 2005: first attempt. * - June 10-11th 2005: first working version. */ void cloog_program_block(CloogProgram *program, CloogScatteringList *scattering, CloogOptions *options) { int blocked_reference=0, blocked=0, nb_blocked=0 ; CloogLoop * reference, * start, * loop ; CloogScatteringList * scatt_reference, * scatt_loop, * scatt_start; if ((program->loop == NULL) || (program->loop->next == NULL)) return ; /* The process will use three variables for the linked list : * - 'start' is the starting point of a new block, * - 'reference' is the node of the block used for the block checking, * - 'loop' is the candidate to be inserted inside the block. * At the beginning of the process, the linked lists are as follow: * O------>O------>O------>O------>NULL * | | * start loop * reference */ reference = program->loop ; start = program->loop ; loop = reference->next ; scatt_reference = scattering ; scatt_start = scattering ; scatt_loop = scattering->next ; while (loop != NULL) { if (cloog_domain_lazy_equal(reference->domain,loop->domain) && cloog_scattering_lazy_block(scatt_reference->scatt, scatt_loop->scatt, scattering,program->nb_scattdims)) { /* If we find a block we update the links: * +---------------+ * | v * O O------>O------>O------>NULL * | | * start loop * reference */ blocked = 1 ; nb_blocked ++ ; cloog_block_merge(start->block,loop->block); /* merge frees loop->block */ loop->block = NULL ; start->next = loop->next ; scatt_start->next = scatt_loop->next ; } else { /* If we didn't find a block, the next start of a block is updated: * O------>O------>O------>O------>NULL * | | * reference start * loop */ blocked= 0 ; start = loop ; scatt_start = scatt_loop ; } /* If the reference node has been included into a block, we can free it. */ if (blocked_reference) { reference->next = NULL ; cloog_loop_free(reference) ; cloog_scattering_free(scatt_reference->scatt); free(scatt_reference) ; } /* The reference and the loop are now updated for the next try, the * starting position depends on the previous step. * O ? O------>O------>O------>NULL * | | * reference loop */ reference = loop ; loop = loop->next ; scatt_reference = scatt_loop ; scatt_loop = scatt_loop->next ; /* We mark the new reference as being blocked or not, if will be freed * during the next while loop execution. */ if (blocked) blocked_reference = 1 ; else blocked_reference = 0 ; } /* We free the last blocked reference if any (since in the while loop it was * freed during the next loop execution, it was not possible to free the * last one inside). */ if (blocked_reference) { reference->next = NULL ; cloog_loop_free(reference) ; cloog_scattering_free(scatt_reference->scatt); free(scatt_reference) ; } if (nb_blocked != 0) cloog_msg(options, CLOOG_INFO, "%d domains have been blocked.\n", nb_blocked); } /** * cloog_program_extract_scalars function: * this functions finds and removes the dimensions of the scattering functions * when they are scalar (i.e. of the shape "dim + scalar = 0") for all * scattering functions. The reason is that the processing of such dimensions * is trivial and do not need neither a row and a column in the matrix * representation of the domain (this will save memory) neither the full * Quillere processing (this will save time). The scalar dimensions data are * dispatched in the CloogProgram structure (the boolean vector scaldims will * say which original dimensions are scalar or not) and to the CloogBlock * structures (each one has a scaldims vector that contains the scalar values). * - June 14th 2005: first developments. * - June 30th 2005: first version. */ void cloog_program_extract_scalars(CloogProgram *program, CloogScatteringList *scattering, CloogOptions *options) { int i, j, scalar, current, nb_scaldims=0 ; CloogScatteringList *start; CloogScattering *old; CloogLoop *loop; CloogBlock * block ; start = scattering ; for (i=0;inb_scattdims;i++) { scalar = 1 ; scattering = start ; while (scattering != NULL) { if (!cloog_scattering_lazy_isscalar(scattering->scatt, i, NULL)) { scalar = 0 ; break ; } scattering = scattering->next ; } if (scalar) { nb_scaldims ++ ; program->scaldims[i] = 1 ; } } /* If there are no scalar dimensions, we can continue directly. */ if (!nb_scaldims) return ; /* Otherwise, in each block, we have to put the number of scalar dimensions, * and to allocate the memory for the scalar values. */ for (loop = program->loop; loop; loop = loop->next) { block = loop->block; block->nb_scaldims = nb_scaldims ; block->scaldims = (cloog_int_t *)malloc(nb_scaldims*sizeof(cloog_int_t)); for (i=0;iscaldims[i]); } /* Then we have to fill these scalar values, so we can erase those dimensions * from the scattering functions. It's easier to begin with the last one, * since there would be an offset otherwise (if we remove the i^th dimension, * then the next one is not the (i+1)^th but still the i^th...). */ current = nb_scaldims - 1 ; for (i=program->nb_scattdims-1;i>=0;i--) if (program->scaldims[i]) { scattering = start ; for (loop = program->loop; loop; loop = loop->next) { block = loop->block; if (!cloog_scattering_lazy_isscalar(scattering->scatt, i, &block->scaldims[current])) { /* We should have found a scalar value: if not, there is an error. */ cloog_die("dimension %d is not scalar as expected.\n", i); } scattering = scattering->next ; } scattering = start ; while (scattering != NULL) { old = scattering->scatt; scattering->scatt = cloog_scattering_erase_dimension(old, i); cloog_scattering_free(old); scattering = scattering->next ; } current-- ; } /* We postprocess the scaldims array in such a way that each entry is how * many scalar dimensions follows + 1 (the current one). This will make * some other processing easier (e.g. knowledge of some offsets). */ for (i=0;inb_scattdims-1;i++) { if (program->scaldims[i]) { j = i + 1 ; while ((j < program->nb_scattdims) && program->scaldims[j]) { program->scaldims[i] ++ ; j ++ ; } } } if (nb_scaldims != 0) cloog_msg(options, CLOOG_INFO, "%d dimensions (over %d) are scalar.\n", nb_scaldims,program->nb_scattdims) ; } /** * cloog_program_scatter function: * This function adds the scattering (scheduling) informations in a program. * If names is NULL, this function create names itself such that the i^th * name is ci. * - November 6th 2001: first version. */ void cloog_program_scatter(CloogProgram *program, CloogScatteringList *scattering, CloogOptions *options) { int scattering_dim, scattering_dim2, not_enough_constraints=0 ; CloogLoop * loop ; if ((program != NULL) && (scattering != NULL)) { loop = program->loop ; /* We compute the scattering dimension and check it is >=0. */ scattering_dim = cloog_scattering_dimension(scattering->scatt, loop->domain); if (scattering_dim < 0) cloog_die("scattering has not enough dimensions.\n"); if (!cloog_scattering_fully_specified(scattering->scatt, loop->domain)) not_enough_constraints ++ ; /* The scattering dimension may have been modified by scalar extraction. */ scattering_dim = cloog_scattering_dimension(scattering->scatt, loop->domain); /* Finally we scatter all loops. */ cloog_loop_scatter(loop, scattering->scatt); loop = loop->next ; scattering = scattering->next ; while ((loop != NULL) && (scattering != NULL)) { scattering_dim2 = cloog_scattering_dimension(scattering->scatt, loop->domain); if (scattering_dim2 != scattering_dim) cloog_die("scattering dimensions are not the same.\n") ; if (!cloog_scattering_fully_specified(scattering->scatt, loop->domain)) not_enough_constraints ++ ; cloog_loop_scatter(loop, scattering->scatt); loop = loop->next ; scattering = scattering->next ; } if ((loop != NULL) || (scattering != NULL)) cloog_msg(options, CLOOG_WARNING, "there is not a scattering for each statement.\n"); if (not_enough_constraints) cloog_msg(options, CLOOG_WARNING, "not enough constraints for " "%d scattering function(s).\n",not_enough_constraints) ; } } cloog-parma-0.16.1/cloog-core/source/stride.c0000644000175000017500000000251411511332712015706 00000000000000#include #include #define ALLOC(type) (type*)malloc(sizeof(type)) CloogStride *cloog_stride_malloc() { CloogStride *s; s = ALLOC(CloogStride); if (!s) cloog_die("memory overflow.\n"); s->references = 1; cloog_int_init(s->stride); cloog_int_init(s->offset); cloog_int_init(s->factor); s->constraint = cloog_constraint_invalid(); return s; } CloogStride *cloog_stride_alloc(cloog_int_t stride, cloog_int_t offset) { CloogStride *s = cloog_stride_malloc(); cloog_int_set(s->stride, stride); cloog_int_set(s->offset, offset); cloog_int_set_si(s->factor, 0); return s; } CloogStride *cloog_stride_alloc_from_constraint(cloog_int_t stride, CloogConstraint *constraint, cloog_int_t factor) { CloogStride *s = cloog_stride_malloc(); cloog_int_set(s->stride, stride); cloog_int_set(s->factor, factor); cloog_int_set_si(s->offset, -1); s->constraint = constraint; return s; } CloogStride *cloog_stride_copy(CloogStride *stride) { if (!stride) return stride; stride->references++; return stride; } void cloog_stride_free(CloogStride *stride) { if (!stride) return; stride->references--; if (stride->references > 0) return; cloog_int_clear(stride->stride); cloog_int_clear(stride->offset); cloog_int_clear(stride->factor); cloog_constraint_release(stride->constraint); free(stride); } cloog-parma-0.16.1/cloog-core/source/names.c0000644000175000017500000004314411467774607015552 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** names.c ** **-------------------------------------------------------------------** ** First version: august 1st 2002 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2002-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ /* CAUTION: the english used for comments is probably the worst you ever read, * please feel free to correct and improve it ! */ # include # include # include # include "../include/cloog/cloog.h" /****************************************************************************** * Structure display function * ******************************************************************************/ /** * cloog_names_print function: * this function is a human-friendly way to display the CloogNames data * structure, it shows all the different fields and includes an indentation * level (level) in order to work with others print_structure functions. * - July 1st 2005: first version based on the old cloog_names_print function, * it was the first modification in this file since two years ! */ void cloog_names_print_structure(FILE * file, CloogNames * names, int level) { int i ; /* Go to the right level. */ for (i=0; inb_scalars) ; /* A blank line. */ for (i=0; i<=level+1; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; /* Print the scalar iterators. */ for (i=0; i<=level; i++) fprintf(file,"|\t") ; if (names->nb_scalars > 0) { fprintf(file,"+-- Scalar iterator strings:") ; for (i=0;inb_scalars;i++) fprintf(file," %s",names->scalars[i]) ; fprintf(file,"\n") ; } else fprintf(file,"+-- No scalar string\n") ; /* A blank line. */ for (i=0; i<=level+1; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; /* Print the scattering dimension number. */ for (i=0; i<=level; i++) fprintf(file,"|\t") ; fprintf(file,"Scattering dimension number: %d\n",names->nb_scattering) ; /* A blank line. */ for (i=0; i<=level+1; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; /* Print the scattering iterators. */ for (i=0; i<=level; i++) fprintf(file,"|\t") ; if (names->nb_scattering > 0) { fprintf(file,"+-- Scattering strings ----:") ; for (i=0;inb_scattering;i++) fprintf(file," %s",names->scattering[i]) ; fprintf(file,"\n") ; } else fprintf(file,"+-- No scattering string\n") ; /* A blank line. */ for (i=0; i<=level+1; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; /* Print the iterator number. */ for (i=0; i<=level; i++) fprintf(file,"|\t") ; fprintf(file,"Iterator number -----------: %d\n",names->nb_iterators) ; /* A blank line. */ for (i=0; i<=level+1; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; /* Print the iterators. */ for (i=0; i<=level; i++) fprintf(file,"|\t") ; if (names->nb_iterators > 0) { fprintf(file,"+-- Iterator strings ------:") ; for (i=0;inb_iterators;i++) fprintf(file," %s",names->iterators[i]) ; fprintf(file,"\n") ; } else fprintf(file,"+-- No iterators\n") ; /* A blank line. */ for (i=0; i<=level+1; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; /* Print the parameter number. */ for (i=0; i<=level; i++) fprintf(file,"|\t") ; fprintf(file,"Parameter number ----------: %d\n",names->nb_parameters) ; /* A blank line. */ for (i=0; i<=level+1; i++) fprintf(file,"|\t") ; fprintf(file,"\n") ; /* Print the parameters. */ for (i=0; i<=level; i++) fprintf(file,"|\t") ; if (names->nb_parameters > 0) { fprintf(file,"+-- Parameter strings -----:") ; for (i=0;inb_parameters;i++) fprintf(file," %s",names->parameters[i]) ; fprintf(file,"\n") ; } else fprintf(file,"No parameters\n") ; } else fprintf(file,"+-- No CloogNames\n") ; fprintf(file, "Number of active references: %d\n", names->references); } /** * cloog_names_print function: * This function prints the content of a CloogNames structure (names) into a * file (file, possibly stdout). * - July 1st 2005: Now this function is only a frontend to * cloog_program_print_structure, with a quite better * human-readable representation. */ void cloog_names_print(FILE * file, CloogNames * names) { cloog_names_print_structure(file,names,0) ; } /****************************************************************************** * Memory deallocation function * ******************************************************************************/ /** * cloog_names_free function: * This function decrements the number of active references to * a CloogNames structure and frees the allocated memory for this structure * if the count drops to zero. */ void cloog_names_free(CloogNames * names) { int i ; if (--names->references) return; if (names->scalars != NULL) { for (i=0;inb_scalars;i++) free(names->scalars[i]) ; free(names->scalars) ; } if (names->scattering != NULL) { for (i=0;inb_scattering;i++) free(names->scattering[i]) ; free(names->scattering) ; } if (names->iterators != NULL) { for (i=0;inb_iterators;i++) free(names->iterators[i]) ; free(names->iterators) ; } if (names->parameters != NULL) { for (i=0;inb_parameters;i++) free(names->parameters[i]) ; free(names->parameters) ; } free(names) ; } /** * cloog_names_copy function: * As usual in CLooG, "copy" means incrementing the reference count. */ CloogNames *cloog_names_copy(CloogNames *names) { names->references++; return names; } /****************************************************************************** * Reading functions * ******************************************************************************/ /** * cloog_names_read_strings function: * This function reads names data from a file (file, possibly stdin). It first * reads the naming option to know if whether it can read the names from the * file. If not, NULL is returned. Otherwise, the names are stored * into an array of strings, and a pointer to this array is returned. * - nb_items is the number of names the function will have to read if the * naming option is set to read. */ char ** cloog_names_read_strings(FILE *file, int nb_items) { int i, option, n ; char s[MAX_STRING], str[MAX_STRING], * c, **names = NULL; /* We first read name option. */ while (fgets(s,MAX_STRING,file) == 0) ; while ((*s=='#' || *s=='\n') || (sscanf(s," %d",&option)<1)) fgets(s,MAX_STRING,file) ; /* If there is no item to read, then return NULL. */ if (nb_items == 0) return NULL ; /* If option is to read them in the file, then we do it and put them into * the array. */ if (option) { /* Memory allocation. */ names = (char **)malloc(nb_items*sizeof(char *)) ; if (names == NULL) cloog_die("memory overflow.\n"); for (i=0;inb_scalars = 0 ; names->nb_scattering = 0 ; names->nb_iterators = 0 ; names->nb_parameters = 0 ; names->scalars = NULL ; names->scattering = NULL ; names->iterators = NULL ; names->parameters = NULL ; names->references = 1; return names ; } /** * cloog_names_alloc function: * This function allocates the memory space for a CloogNames structure and * sets its fields with those given as input. Then it returns a pointer to the * allocated space. * - July 7th 2005: first version. * - September 11th 2005: addition of both scalar and scattering informations. * - November 21th 2005: use of cloog_names_malloc. */ CloogNames * cloog_names_alloc() { CloogNames * names ; /* Memory allocation for the CloogNames structure. */ names = cloog_names_malloc() ; names->nb_scalars = 0; names->nb_scattering = 0; names->nb_iterators = 0; names->nb_parameters = 0; names->scalars = NULL; names->scattering = NULL; names->iterators = NULL; names->parameters = NULL; return names ; } /** * cloog_names_generate_items function: * This function returns a pointer to an array of strings with entries set * based on the function's parameters. * - nb_items will be the number of entries in the string array. * - prefix is the name prefix of each item or NULL. * If not NULL, then the remainder of the name will be an integer * in the range [0, nb_items-1]. * - first_item is the name of the first item (if prefix == NULL), * the nb_items-1 following items will be the nb_items-1 * following letters in ASCII code. ** * - September 9th 2002 : first version, extracted from cloog_names_generate. */ char ** cloog_names_generate_items(int nb_items, char * prefix, char first_item) { int i ; char ** names ; if (nb_items == 0) return NULL ; names = (char **)malloc(nb_items*sizeof(char *)) ; if (names == NULL) cloog_die("memory overflow.\n"); for (i=0;inb_scalars = nb_scalars ; names->nb_scattering = nb_scattering ; names->nb_parameters = nb_parameters ; names->nb_iterators = nb_iterators ; names->scalars = cloog_names_generate_items(nb_scalars, NULL,first_s); names->scattering = cloog_names_generate_items(nb_scattering,NULL,first_t); names->parameters = cloog_names_generate_items(nb_parameters,NULL,first_p); names->iterators = cloog_names_generate_items(nb_iterators, NULL,first_i); return names ; } /* Lastly we update the CLoogNames structure: the iterators corresponding to * scalar dimensions have to be removed since these dimensions have been * erased and do not need to be print. We copy all the iterator names except * the scalar ones in a new string array. * - September 12th 2005: first version. */ void cloog_names_scalarize(CloogNames * names, int nb_scattdims, int * scaldims) { int nb_scalars, nb_scattering, i, current_scalar, current_scattering ; char ** scalars, ** scattering ; if (!nb_scattdims || (scaldims == NULL)) return ; nb_scalars = 0 ; for (i=0;inb_scattering - nb_scalars ; scattering = (char **)malloc(nb_scattering * sizeof(char *)) ; if (scattering == NULL) cloog_die("memory overflow.\n"); scalars = (char **)malloc(nb_scalars * sizeof(char *)) ; if (scalars == NULL) cloog_die("memory overflow.\n"); current_scalar = 0 ; current_scattering = 0 ; for (i=0;iscattering[i] ; current_scattering ++ ; } else { scalars[current_scalar] = names->scattering[i] ; current_scalar ++ ; } } free(names->scattering) ; names->scattering = scattering ; names->scalars = scalars ; names->nb_scattering = nb_scattering ; names->nb_scalars = nb_scalars ; } /** * Return the name at a given level (starting at one). * May be a scattering dimension or an iterator of the original domain. */ const char *cloog_names_name_at_level(CloogNames *names, int level) { if (level <= names->nb_scattering) return names->scattering[level - 1]; else return names->iterators[level - names->nb_scattering - 1]; } cloog-parma-0.16.1/cloog-core/source/int.c0000644000175000017500000000632311477111547015224 00000000000000#include #include "../include/cloog/cloog.h" #define ALLOC(type) (type*)malloc(sizeof(type)) #define ALLOCN(type,n) (type*)malloc((n)*sizeof(type)) #if defined(CLOOG_INT_INT) || \ defined(CLOOG_INT_LONG) || \ defined(CLOOG_INT_LONG_LONG) cloog_int_t cloog_gcd(cloog_int_t a, cloog_int_t b) { while (a) { cloog_int_t t = b % a; b = a; a = t; } if (b < 0) b = -b; return b; } #endif struct cloog_vec *cloog_vec_alloc(unsigned size) { int i; struct cloog_vec *vec; vec = ALLOC(struct cloog_vec); if (!vec) return NULL; vec->p = ALLOCN(cloog_int_t, size); if (!vec->p) goto error; vec->size = size; for (i = 0; i < size; ++i) cloog_int_init(vec->p[i]); return vec; error: free(vec); return NULL; } void cloog_vec_free(struct cloog_vec *vec) { int i; if (!vec) return; for (i = 0; i < vec->size; ++i) cloog_int_clear(vec->p[i]); free(vec->p); free(vec); } void cloog_vec_dump(struct cloog_vec *vec) { int i; for (i = 0; i < vec->size; ++i) { cloog_int_print(stderr, vec->p[i]); fprintf(stderr, " "); } fprintf(stderr, "\n"); } int cloog_seq_first_non_zero(cloog_int_t *p, unsigned len) { int i; for (i = 0; i < len; ++i) if (!cloog_int_is_zero(p[i])) return i; return -1; } void cloog_seq_neg(cloog_int_t *dst, cloog_int_t *src, unsigned len) { int i; for (i = 0; i < len; ++i) cloog_int_neg(dst[i], src[i]); } void cloog_seq_cpy(cloog_int_t *dst, cloog_int_t *src, unsigned len) { int i; for (i = 0; i < len; ++i) cloog_int_set(dst[i], src[i]); } static void cloog_seq_scale_down(cloog_int_t *dst, cloog_int_t *src, cloog_int_t m, unsigned len) { int i; for (i = 0; i < len; ++i) cloog_int_divexact(dst[i], src[i], m); } void cloog_seq_combine(cloog_int_t *dst, cloog_int_t m1, cloog_int_t *src1, cloog_int_t m2, cloog_int_t *src2, unsigned len) { int i; cloog_int_t tmp; cloog_int_init(tmp); for (i = 0; i < len; ++i) { cloog_int_mul(tmp, m1, src1[i]); cloog_int_addmul(tmp, m2, src2[i]); cloog_int_set(dst[i], tmp); } cloog_int_clear(tmp); } static int cloog_seq_abs_min_non_zero(cloog_int_t *p, unsigned len) { int i, min = cloog_seq_first_non_zero(p, len); if (min < 0) return -1; for (i = min + 1; i < len; ++i) { if (cloog_int_is_zero(p[i])) continue; if (cloog_int_abs_lt(p[i], p[min])) min = i; } return min; } void cloog_seq_gcd(cloog_int_t *p, unsigned len, cloog_int_t *gcd) { int i, min = cloog_seq_abs_min_non_zero(p, len); if (min < 0) { cloog_int_set_si(*gcd, 0); return; } cloog_int_abs(*gcd, p[min]); for (i = 0; cloog_int_cmp_si(*gcd, 1) > 0 && i < len; ++i) { if (i == min) continue; if (cloog_int_is_zero(p[i])) continue; cloog_int_gcd(*gcd, *gcd, p[i]); } } int cloog_seq_is_neg(cloog_int_t *p1, cloog_int_t *p2, unsigned len) { int i; for (i = 0; i < len; ++i) { if (cloog_int_abs_ne(p1[i], p2[i])) return 0; if (cloog_int_is_zero(p1[i])) continue; if (cloog_int_eq(p1[i], p2[i])) return 0; } return 1; } void cloog_seq_normalize(cloog_int_t *p, unsigned len) { cloog_int_t gcd; if (len == 0) return; cloog_int_init(gcd); cloog_seq_gcd(p, len, &gcd); if (!cloog_int_is_zero(gcd) && !cloog_int_is_one(gcd)) cloog_seq_scale_down(p, p, gcd, len); cloog_int_clear(gcd); } cloog-parma-0.16.1/cloog-core/source/union_domain.c0000644000175000017500000001541011477113144017101 00000000000000#include #include #include #include "../include/cloog/cloog.h" #define ALLOC(type) (type*)malloc(sizeof(type)) #define ALLOCN(type,n) (type*)malloc((n)*sizeof(type)) void cloog_named_domain_list_free(CloogNamedDomainList *list) { while (list != NULL) { CloogNamedDomainList *temp = list->next; cloog_domain_free(list->domain); cloog_scattering_free(list->scattering); free(list->name); free(list); list = temp; } } CloogUnionDomain *cloog_union_domain_alloc(int nb_par) { CloogUnionDomain *ud; ud = ALLOC(CloogUnionDomain); if (!ud) cloog_die("memory overflow.\n"); ud->domain = NULL; ud->next_domain = &ud->domain; ud->n_name[CLOOG_PARAM] = nb_par; ud->n_name[CLOOG_ITER] = 0; ud->n_name[CLOOG_SCAT] = 0; ud->name[CLOOG_PARAM] = NULL; ud->name[CLOOG_ITER] = NULL; ud->name[CLOOG_SCAT] = NULL; return ud; } void cloog_union_domain_free(CloogUnionDomain *ud) { int i; int j; if (!ud) return; for (i = 0; i < 3; ++i) { if (!ud->name[i]) continue; for (j = 0; j < ud->n_name[i]; ++i) free(ud->name[i][j]); free(ud->name[i]); } cloog_named_domain_list_free(ud->domain); free(ud); } /** * Add a domain with scattering function to the union of domains. * name may be NULL and is duplicated if it is not. * domain and scattering are taken over by the CloogUnionDomain. * scattering may be NULL. */ CloogUnionDomain *cloog_union_domain_add_domain(CloogUnionDomain *ud, const char *name, CloogDomain *domain, CloogScattering *scattering, void *usr) { CloogNamedDomainList *named; int n; if (!ud) return NULL; named = ALLOC(CloogNamedDomainList); if (!named) cloog_die("memory overflow.\n"); if (ud->name[CLOOG_ITER]) cloog_die("iterator names must be set after adding domains.\n"); if (ud->name[CLOOG_SCAT]) cloog_die("scattering names must be set after adding domains.\n"); n = cloog_domain_dimension(domain); if (n > ud->n_name[CLOOG_ITER]) ud->n_name[CLOOG_ITER] = n; if (scattering) { n = cloog_scattering_dimension(scattering, domain); if (n > ud->n_name[CLOOG_SCAT]) ud->n_name[CLOOG_SCAT] = n; } named->domain = domain; named->scattering = scattering; named->name = name ? strdup(name) : NULL; named->usr = usr; named->next = NULL; *ud->next_domain = named; ud->next_domain = &named->next; return ud; } /** * Set the name of parameter, iterator or scattering dimension * at the specified position. The name is duplicated. */ CloogUnionDomain *cloog_union_domain_set_name(CloogUnionDomain *ud, enum cloog_dim_type type, int index, const char *name) { int i; if (!ud) return ud; if (type != CLOOG_PARAM && type != CLOOG_ITER && type != CLOOG_SCAT) cloog_die("invalid dim type\n"); if (index < 0 || index >= ud->n_name[type]) cloog_die("index out of range\n"); if (!ud->name[type]) { ud->name[type] = ALLOCN(char *, ud->n_name[type]); if (!ud->name[type]) cloog_die("memory overflow.\n"); for (i = 0; i < ud->n_name[type]; ++i) ud->name[type][i] = NULL; } free(ud->name[type][index]); ud->name[type][index] = strdup(name); if (!ud->name[type][index]) cloog_die("memory overflow.\n"); return ud; } static char *next_line(FILE *input, char *line, unsigned len) { char *p; do { if (!(p = fgets(line, len, input))) return NULL; while (isspace(*p) && *p != '\n') ++p; } while (*p == '#' || *p == '\n'); return p; } /** * cloog_scattering_list_read * Read in a list of scattering functions for the nb_statements * domains in loop. */ static CloogScatteringList *cloog_scattering_list_read(FILE * foo, CloogDomain **domain, int nb_statements, int nb_parameters) { int nb_scat = 0; char s[MAX_STRING]; CloogScatteringList *list = NULL, **next = &list; /* We read first the number of scattering functions in the list. */ do { if (!fgets(s, MAX_STRING, foo)) break; } while ((*s=='#' || *s=='\n') || (sscanf(s, " %d", &nb_scat) < 1)); if (nb_scat == 0) return NULL; if (nb_scat != nb_statements) cloog_die("wrong number of scattering functions.\n"); while (nb_scat--) { *next = (CloogScatteringList *)malloc(sizeof(CloogScatteringList)); (*next)->scatt = cloog_domain_read_scattering(*domain, foo); (*next)->next = NULL; next = &(*next)->next; domain++; } return list; } static CloogUnionDomain *set_names_from_list(CloogUnionDomain *ud, enum cloog_dim_type type, int n, char **names) { int i; if (!names) return ud; for (i = 0; i < n; ++i) { ud = cloog_union_domain_set_name(ud, type, i, names[i]); free(names[i]); } free(names); return ud; } /** * Fill up a CloogUnionDomain from information in a CLooG input file. * The language and the context are assumed to have been read from * the input file already. */ CloogUnionDomain *cloog_union_domain_read(FILE *file, int nb_par, CloogOptions *options) { int op1, op2, op3; char line[MAX_STRING]; CloogDomain **domain; CloogUnionDomain *ud; CloogScatteringList *scatteringl; int i; int n_iter = -1; int n_dom; char **names; ud = cloog_union_domain_alloc(nb_par); names = cloog_names_read_strings(file, nb_par); ud = set_names_from_list(ud, CLOOG_PARAM, nb_par, names); /* We read the number of statements. */ if (!next_line(file, line, sizeof(line))) cloog_die("Input error.\n"); if (sscanf(line, "%d", &n_dom) != 1) cloog_die("Input error.\n"); domain = ALLOCN(CloogDomain *, n_dom); if (!domain) cloog_die("memory overflow.\n"); for (i = 0; i < n_dom; ++i) { int dim; domain[i] = cloog_domain_union_read(options->state, file, nb_par); dim = cloog_domain_dimension(domain[i]); if (dim > n_iter) n_iter = dim; /* To read that stupid "0 0 0" line. */ if (!next_line(file, line, sizeof(line))) cloog_die("Input error.\n"); if (sscanf(line, " %d %d %d", &op1, &op2, &op3) != 3) cloog_die("Input error.\n"); } /* Reading of the iterator names. */ names = cloog_names_read_strings(file, n_iter); /* Reading and putting the scattering data in program structure. */ scatteringl = cloog_scattering_list_read(file, domain, n_dom, nb_par); if (scatteringl) { CloogScatteringList *is, *next; if (cloog_scattering_list_lazy_same(scatteringl)) cloog_msg(options, CLOOG_WARNING, "some scattering functions are similar.\n"); for (i = 0, is = scatteringl; i < n_dom; ++i, is = next) { next = is->next; ud = cloog_union_domain_add_domain(ud, NULL, domain[i], is->scatt, NULL); free(is); } } else { for (i = 0; i < n_dom; ++i) ud = cloog_union_domain_add_domain(ud, NULL, domain[i], NULL, NULL); } ud = set_names_from_list(ud, CLOOG_ITER, n_iter, names); if (scatteringl) { int n_scat = ud->n_name[CLOOG_SCAT]; names = cloog_names_read_strings(file, n_scat); ud = set_names_from_list(ud, CLOOG_SCAT, n_scat, names); } free(domain); return ud; } cloog-parma-0.16.1/cloog-core/README0000644000175000017500000002176311321074700013636 00000000000000# # /**-------------------------------------------------------------------** # ** CLooG ** # **-------------------------------------------------------------------** # ** The Chunky Loop Generator ** # **-------------------------------------------------------------------** # ** First version of this file: january 22th 2002 ** # **-------------------------------------------------------------------**/ # For complete informations about this software, how to build and use it, please see the postscript file in the ./doc subdirectory (a pdf version is available in the web site). Overview : I. Description II. Building CLooG III. Options IV. Running CLooG V. General Questions # **-------------------------------------------------------------------** # ** I. Description ** # **-------------------------------------------------------------------**/ CLooG is a software which generates loops for scanning Z-polyhedra. That is, CLooG finds the code or pseudo-code where each integral point of one or more parametrized polyhedron or parametrized polyhedra union is reached. CLooG is designed to avoid control overhead and to produce a very efficient code. Its input is some data on the polyhedra to scan, basically the system of affine inequalities that define them, and a context that defines some properties known on the parameters if any. The output is the pseudo scanning code. Many facilities are provided to generate a near-to-be-compileable code, and every useful functions to generate the code may be called from the CLooG library. INPUT | OUTPUT (fortunately not exactly the input, | (the real one, with default options) check test/readme.cloog for the | real input for that problem !) | | j^ i>=2 | | | j<=n+2-i | | |\ | i<=n | | | \ | | m-+-****---+-j<=m | for (i=2;i<=n;i++) { | ***** | | for (j=2;j<=min(m,-i+n+2);j++) { | ****** | ==> S1 ; | *******| | } 2-+-********-j>=2 | } | | |\ | 0-+-+------+--->i | | | | | 0 2 n | | Context : n>=2 | m>=2 | System : 2<=i<=n | 2<=j<=m | j<=n+2-i | # **-------------------------------------------------------------------** # ** II. Building CLooG ** # **-------------------------------------------------------------------**/ If you obtained CLooG from the git repository, then you first need to obtain the submodules and create a configure script. ./get_submodules.sh ./autogen.sh The first step is only needed if you plan on using the isl backend. The configure shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a Makefile. The file configure.in is used to create configure by a program called autoconf. You only need configure.in if you want to change it or regenerate configure using a newer version of autoconf. The simplest way to compile this package is: cd to the directory containing the package's source code and type ./configure to configure the package for your system (while running, configure prints some messages telling which features it is checking for). To compile the package, type make to install the program and/or the library, type make install you can remove the program binaries and object files from the source code directory by typing make clean To also remove the files that configure created (so you can compile the package for a different kind of computer) type make distclean # **-------------------------------------------------------------------** # ** III. Options ** # **-------------------------------------------------------------------**/ By default, make will install the package's files in /usr/local/bin, /usr/local/lib, etc. You can specify an installation prefix other than /usr/local by giving onfigure the option --prefix=PATH. By default, configure will use the isl that comes bundled with CLooG. Using the --with-isl option of configure the user can specify that "no" isl, a previously installed ("system") isl or a "build" isl should be used. In the latter case, the user should also specify the build location using --with-isl-builddir=PATH. In case of an installed isl, the installation location can be specified using the --with-isl-prefix=PATH and --with-isl-exec-prefix=PATH options of configure. By default, configure will seek the PolyLib in standard locations. If necessary, you can specify the PolyLib's path by giving configure the option --with-polylib-prefix=PATH and/or --with-polylib-exec-prefix=PATH. By default, configure will seek the GMP library in standard locations. If necessary, you can specify the GMP's path by giving configure the option --with-gmp-prefix=PATH and/or --with-gmp-exec-prefix=PATH. By default, when using the PolyLib backend, CLooG and its library are built using 64 bits integer representation. You can choose to specify explicitly others integer representations by using: --with-bits=32 for 32 bits integers, --with-bits=64 for 64 bits integers (default), --with-bits=gmp for multiple precision integers. # **-------------------------------------------------------------------** # ** IV. Running CLooG ** # **-------------------------------------------------------------------**/ To run CLooG, simply type 'cloog', optionally followed by the name of an input file. You can type 'cloog -h' or 'cloog --help' for some help. For more informations, please check the ./doc subdirectory. # **-------------------------------------------------------------------** # ** V. General Questions ** # **-------------------------------------------------------------------**/ 1. What does CLooG means ? CLooG is the Chunky LOOp Generator, Chunky is an automatic loop optimizer for data locality. CLooG is a completely independent part of the Chunky project. Pronounce 'CLooG' as 'klug', which means 'sly' in german :-). 2. CLooG do not compile, what should I do ? CLooG should compile everywhere (assuming that PolyLib is still there), thus there is a problem or the documentation is not clear, in both case it is necessary to ask the author(s) ! 3. I need a feature that CLooG do not implement, what should I do ? There are two ways. First, CLooG is a LGPL software and library. So you are welcome to improve it yourself ;-) ! Many project have been successful, it is -maybe- a sign that this is not too hard to put your hands inside the source. Second, just ask the author(s) :-) ! Maybe a lot of people would be interessed by such feature, maybe many people asked for it before, maybe it's trivial to implement (and even)... Please just never hesitate to ask the author(s) ! 4. I implemented a cool feature, can I submit it ? Obviously you are welcome to send the author(s) any improvement. But obviously we are quite careful with readability, correctness and stability, and the author(s) will read, check and check again any contribution before including it. Thus, it can take time... There are few basic rules to write contributions: - (1) Do never change the indentation of any part of the code that is not yours. - (2) Do never send codes that use more than 80 columns. - (3) Do never send codes without a lot of comments in (bad or good) english. - (4) Do never send codes with obscure and/or non-english variable names. - (5) Use C89, just C, only C (note: "//" comments are not C89, variable declaration elsewhere than at the beginning of a block, is not C89). - (6) Read doc/SubmittingPatches Please understand that in order to live for a long time, and to be used in many projects the very first priority for CLooG is to be readable and documented. 5. Is CLooG bug free ? No, who can ? ClooG is a complex program, and we do not pretend it to be bug free. Nevertheless because it has been tested and tested, we are fairly sure that CLooG results with default options have good chances to be satisfactory. If you find a result that looks strange, inadequate or incorrect, please send: - (1) The input file to the author(s). - (2) The output. - (3) The first line given by typing 'cloog -v'. - (4) All your command line options to achieve the result. We will try to explain the result or to fix the problem as soon as possible. 6. How can I contact the author(s) ? Just send a mail to cloog-development@googlegroups.com cloog-parma-0.16.1/cloog-core/configure.in0000644000175000017500000001766011511607414015275 00000000000000 dnl /**-------------------------------------------------------------------** dnl ** CLooG ** dnl **-------------------------------------------------------------------** dnl ** configure.in ** dnl **-------------------------------------------------------------------** dnl ** First version: august 7th 2002 ** dnl **-------------------------------------------------------------------**/ dnl dnl Input file for autoconf to build a configuration shellscript. dnl To build the configure script from the CLooG's top-level directory, use dnl autoconf -l autoconf autoconf/configure.in > configure dnl if it doesn't work (invalid option -l) try -I instead dnl autoconf -I autoconf autoconf/configure.in > configure dnl /************************************************************************** dnl * CLooG : the Chunky Loop Generator (experimental) * dnl *************************************************************************** dnl * * dnl * Copyright (C) 2001 Cedric Bastoul * dnl * * dnl * This library is free software; you can redistribute it and/or * dnl * modify it under the terms of the GNU Lesser General Public * dnl * License as published by the Free Software Foundation; either * dnl * version 2.1 of the License, or (at your option) any later version. * dnl * * dnl * This library is distributed in the hope that it will be useful, * dnl * but WITHOUT ANY WARRANTY; without even the implied warranty of * dnl * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * dnl * Lesser General Public License for more details. * dnl * * dnl * You should have received a copy of the GNU Lesser General Public * dnl * License along with this library; if not, write to the Free Software * dnl * Foundation, Inc., 51 Franklin Street, Fifth Floor, * dnl * Boston, MA 02110-1301 USA * dnl * * dnl * CLooG, the Chunky Loop Generator * dnl * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * dnl * * dnl ***************************************************************************/ AC_PREREQ(2.13) AC_INIT(source/cloog.c) AC_CONFIG_AUX_DIR(autoconf) AC_CONFIG_MACRO_DIR([m4]) VERSION_MAJOR=0 VERSION_MINOR=16 VERSION_REVISION=1 AC_SUBST(versioninfo) versioninfo=1:1:0 AM_INIT_AUTOMAKE(cloog, "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}") dnl /************************************************************************** dnl * Checking * dnl **************************************************************************/ dnl Checks for programs. AC_PROG_CC AC_PROG_LN_S AC_PROG_MAKE_SET AC_CHECK_PROG(CD, cd) dnl Configure needs an empty install.sh file with this, i HATE that... AC_PROG_INSTALL AC_PROG_LIBTOOL AC_CHECK_PROG(TEXI2DVI, texi2dvi, texi2dvi, []) AM_CONDITIONAL(HAVE_TEXI2DVI, test -n "$TEXI2DVI") AX_CC_MAXOPT AC_SUBST(CFLAGS_WARN) AX_CFLAGS_WARN_ALL(CFLAGS_WARN) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_SIZE_T dnl Checks for header files. AC_HEADER_STDC dnl Checks for library functions. AC_CHECK_FUNCS(strtol) dnl /************************************************************************** dnl * Option setting * dnl **************************************************************************/ AC_CHECK_HEADERS([sys/resource.h], [AC_DEFINE([CLOOG_RUSAGE], [], [Print time required to generate code])]) AX_SUBMODULE(isl,no|system|build|bundled,bundled) BITS="gmp" dnl /************************************************************************** dnl * Where is GMP? * dnl **************************************************************************/ AX_SUBMODULE(gmp,system,system) need_get_memory_functions=false case "$with_gmp" in system) if test "x$with_gmp_prefix" != "x"; then CPPFLAGS="-I$with_gmp_prefix/include $CPPFLAGS" fi if test "$with_gmp_exec_prefix" != "yes" ; then LDFLAGS="-L$with_gmp_exec_prefix/lib $LDFLAGS" fi AC_CHECK_HEADER(gmp.h, [], [AC_MSG_ERROR(Can't find gmp headers.)]) AC_CHECK_LIB(gmp, __gmpz_init, [LIBS="$LIBS -lgmp"], [AC_MSG_ERROR(Can't find gmp library.)]) AC_CHECK_DECLS(mp_get_memory_functions,[],[ need_get_memory_functions=true ],[#include ]) ;; esac AM_CONDITIONAL(NEED_GET_MEMORY_FUNCTIONS, test x$need_get_memory_functions = xtrue) dnl /************************************************************************** dnl * Where is isl? * dnl **************************************************************************/ AC_SUBST(ISL_CPPFLAGS) AC_SUBST(ISL_LDFLAGS) AC_SUBST(ISL_LIBS) case "$with_isl" in bundled) ISL_CPPFLAGS="-I$srcdir/isl/include -Iisl/include" ;; build) ISL_CPPFLAGS="-I$isl_srcdir/include -I$with_isl_builddir/include" ISL_LIBS="$with_isl_builddir/libisl.la" ;; system) if test "x$with_isl_prefix" != "x"; then ISL_CPPFLAGS="-I$with_isl_prefix/include" fi if test "x$with_isl_exec_prefix" != "x"; then ISL_LDFLAGS="-L$with_isl_exec_prefix/lib" fi ISL_LIBS="-lisl" esac AM_CONDITIONAL(BUNDLED_ISL, test $with_isl = bundled) AM_CONDITIONAL(NO_ISL, test $with_isl = no) AC_DEFINE([CLOOG_INT_GMP], 1, [Use arbitrary precision integers]) AC_SUBST(GIT_INDEX) if test -f $srcdir/.git/HEAD; then GIT_INDEX="\$(top_srcdir)/.git/index" fi dnl /************************************************************************** dnl * Substitutions * dnl **************************************************************************/ dnl Substitutions to do in Makefile.in. AC_SUBST(CC) AC_SUBST(LN_S) AC_SUBST(prefix) AC_SUBST(exec_prefix) AC_SUBST(INSTALL) AC_SUBST(BITS) AC_SUBST(VERSION_MAJOR) AC_SUBST(VERSION_MINOR) AC_SUBST(VERSION_REVISION) PACKAGE_NAME="cloog-isl" PACKAGE_CFLAGS="-DCLOOG_INT_GMP=1" AX_CREATE_PKGCONFIG_INFO AC_CONFIG_FILES(Makefile test/Makefile) AC_CONFIG_FILES(autoconf/Doxyfile) AC_CONFIG_FILES(doc/Makefile) AC_CONFIG_FILES(source/version.c) AC_CONFIG_FILES(include/cloog/version.h) AC_CONFIG_FILES([genversion.sh], [chmod +x genversion.sh]) AC_CONFIG_COMMANDS([version.h], [echo '#define CLOOG_HEAD "'`./genversion.sh`'"' > version.h]) AC_CONFIG_COMMANDS([doc/gitversion.texi], [echo '@set VERSION '`./genversion.sh`'' > doc/gitversion.texi]) if test $with_isl = bundled; then AC_CONFIG_SUBDIRS(isl) fi AC_CONFIG_COMMANDS_POST([ ac_configure_args="$ac_configure_args $cloog_configure_args" ]) AC_OUTPUT echo " /*-----------------------------------------------*" echo " * CLooG configuration is OK *" echo " *-----------------------------------------------*/" echo "It appears that your system is OK to start CLooG compilation. You need" echo "now to type \"make\". After compilation, you should check CLooG by typing" echo "\"make check\". If no problem occur, you can type \"make uninstall\" if" echo "you are upgrading an old version. Lastly type \"make install\" to install" echo "CLooG on your system (log as root if necessary)." cloog-parma-0.16.1/cloog-core/configure0000755000175000017500000155435111511607563014704 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.65. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= PACKAGE_URL= ac_unique_file="source/cloog.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" enable_option_checking=no ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS subdirs pkgconfig_libfile pkgconfig_libdir VERSION_REVISION VERSION_MINOR VERSION_MAJOR BITS INSTALL GIT_INDEX NO_ISL_FALSE NO_ISL_TRUE BUNDLED_ISL_FALSE BUNDLED_ISL_TRUE ISL_LIBS ISL_LDFLAGS ISL_CPPFLAGS NEED_GET_MEMORY_FUNCTIONS_FALSE NEED_GET_MEMORY_FUNCTIONS_TRUE CFLAGS_WARN PRTDIAG HAVE_TEXI2DVI_FALSE HAVE_TEXI2DVI_TRUE TEXI2DVI CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL RANLIB AR OBJDUMP NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED host_os host_vendor host_cpu host build_os build_vendor build_cpu build LIBTOOL CD LN_S am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM versioninfo target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_gnu_ld enable_libtool_lock enable_portable_binary with_gcc_arch with_isl with_isl_prefix with_isl_exec_prefix with_isl_builddir with_gmp with_gmp_prefix with_gmp_exec_prefix with_gmp_builddir ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' ac_subdirs_all='isl' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error "unrecognized option: \`$ac_option' Try \`$0 --help' for more information." ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-portable-binary disable compiler optimizations that would produce unportable binaries Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-gcc-arch= use architecture for gcc -march/-mtune, instead of guessing --with-isl=no|system|build|bundled Which isl to use --with-isl-prefix=DIR Prefix of isl installation --with-isl-exec-prefix=DIR Exec prefix of isl installation --with-isl-builddir=DIR Location of isl builddir --with-gmp=system Which gmp to use --with-gmp-prefix=DIR Prefix of gmp installation --with-gmp-exec-prefix=DIR Exec prefix of gmp installation --with-gmp-builddir=DIR Location of gmp builddir Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.65 Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_func # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_type # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_header_mongrel # ac_fn_c_check_decl LINENO SYMBOL VAR # ------------------------------------ # Tests whether SYMBOL is declared, setting cache variable VAR accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5 $as_echo_n "checking whether $2 is declared... " >&6; } if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $2 (void) $2; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} } # ac_fn_c_check_decl cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.65. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in autoconf "$srcdir"/autoconf; do for ac_t in install-sh install.sh shtool; do if test -f "$ac_dir/$ac_t"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/$ac_t -c" break 2 fi done done if test -z "$ac_aux_dir"; then as_fn_error "cannot find install-sh, install.sh, or shtool in autoconf \"$srcdir\"/autoconf" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. VERSION_MAJOR=0 VERSION_MINOR=16 VERSION_REVISION=1 versioninfo=1:1:0 am__api_version='1.11' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test "${ac_cv_path_mkdir+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=cloog VERSION="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}" cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "no acceptable C compiler found in \$PATH See \`config.log' for more details." "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { as_fn_set_status 77 as_fn_error "C compiler cannot create executables See \`config.log' for more details." "$LINENO" 5; }; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "cannot compute suffix of object files: cannot compile See \`config.log' for more details." "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi # Extract the first word of "cd", so it can be a program name with args. set dummy cd; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$CD"; then ac_cv_prog_CD="$CD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CD="" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CD=$ac_cv_prog_CD if test -n "$CD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CD" >&5 $as_echo "$CD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.2.8' macro_revision='1.3169' ltmain="$ac_aux_dir/ltmain.sh" # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if test "${ac_cv_build+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if test "${ac_cv_host+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`print -r -- -n 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if test "${ac_cv_path_SED+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if test "${ac_cv_path_FGREP+set}" = set; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if test "${lt_cv_path_LD+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test "${lt_cv_path_NM+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if test "${lt_cv_nm_interface+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if test "${lt_cv_apple_cc_single_mod+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if test "${lt_cv_ld_force_load+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " eval as_val=\$$as_ac_Header if test "x$as_val" = x""yes; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if test "${lt_cv_objdir+set}" = set; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' lt_prog_compiler_pic='-Xcompiler -fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 $as_echo "$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test "${lt_cv_prog_compiler_static_works+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld='-rpath $libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_flag_spec_ld='+b $libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if test "${lt_cv_prog_compiler__b+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo(void) {} _ACEOF if ac_fn_c_try_link "$LINENO"; then : archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if test "${lt_cv_archive_cmds_need_lc+set}" = set; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[123]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if test "${lt_cv_shlibpath_overrides_runpath+set}" = set; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) void fnord () __attribute__((visibility("default"))); #endif void fnord () { int i=42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) void fnord () __attribute__((visibility("default"))); #endif void fnord () { int i=42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: # Extract the first word of "texi2dvi", so it can be a program name with args. set dummy texi2dvi; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_TEXI2DVI+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$TEXI2DVI"; then ac_cv_prog_TEXI2DVI="$TEXI2DVI" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_TEXI2DVI="texi2dvi" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi TEXI2DVI=$ac_cv_prog_TEXI2DVI if test -n "$TEXI2DVI"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEXI2DVI" >&5 $as_echo "$TEXI2DVI" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -n "$TEXI2DVI"; then HAVE_TEXI2DVI_TRUE= HAVE_TEXI2DVI_FALSE='#' else HAVE_TEXI2DVI_TRUE='#' HAVE_TEXI2DVI_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler vendor" >&5 $as_echo_n "checking for C compiler vendor... " >&6; } if test "${ax_cv_c_compiler_vendor+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_cv_c_compiler_vendor=unknown # note: don't check for gcc first since some other compilers define __GNUC__ for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ pathscale:__PATHCC__,__PATHSCALE__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #if !($vencpp) thisisanerror; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_c_compiler_vendor=`echo $ventest | cut -d: -f1`; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_compiler_vendor" >&5 $as_echo "$ax_cv_c_compiler_vendor" >&6; } # Check whether --enable-portable-binary was given. if test "${enable_portable_binary+set}" = set; then : enableval=$enable_portable_binary; acx_maxopt_portable=$withval else acx_maxopt_portable=no fi # Try to determine "good" native compiler flags if none specified via CFLAGS if test "$ac_test_CFLAGS" != "set"; then CFLAGS="" case $ax_cv_c_compiler_vendor in dec) CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host" if test "x$acx_maxopt_portable" = xno; then CFLAGS="$CFLAGS -arch host" fi;; sun) CFLAGS="-native -fast -xO5 -dalign" if test "x$acx_maxopt_portable" = xyes; then CFLAGS="$CFLAGS -xarch=generic" fi;; hp) CFLAGS="+Oall +Optrs_ansi +DSnative" if test "x$acx_maxopt_portable" = xyes; then CFLAGS="$CFLAGS +DAportable" fi;; ibm) if test "x$acx_maxopt_portable" = xno; then xlc_opt="-qarch=auto -qtune=auto" else xlc_opt="-qtune=auto" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $xlc_opt" >&5 $as_echo_n "checking whether C compiler accepts $xlc_opt... " >&6; } ax_save_FLAGS=$CFLAGS CFLAGS="$xlc_opt" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval `$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh`=yes else eval `$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh`=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then CFLAGS="-O3 -qansialias -w $xlc_opt" else CFLAGS="-O3 -qansialias -w" echo "******************************************************" echo "* You seem to have the IBM C compiler. It is *" echo "* recommended for best performance that you use: *" echo "* *" echo "* CFLAGS=-O3 -qarch=xxx -qtune=xxx -qansialias -w *" echo "* ^^^ ^^^ *" echo "* where xxx is pwr2, pwr3, 604, or whatever kind of *" echo "* CPU you have. (Set the CFLAGS environment var. *" echo "* and re-run configure.) For more info, man cc. *" echo "******************************************************" fi ;; intel) CFLAGS="-O3 -ansi_alias" if test "x$acx_maxopt_portable" = xno; then icc_archflag=unknown icc_flags="" case $host_cpu in i686*|x86_64*) # icc accepts gcc assembly syntax, so these should work: ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 0 output" >&5 $as_echo_n "checking for x86 cpuid 0 output... " >&6; } if test "${ax_cv_gcc_x86_cpuid_0+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ax_cv_gcc_x86_cpuid_0=unknown else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int op = 0, eax, ebx, ecx, edx; FILE *f; __asm__("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (op)); f = fopen("conftest_cpuid", "w"); if (!f) return 1; fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx); fclose(f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid else ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0" >&5 $as_echo "$ax_cv_gcc_x86_cpuid_0" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 1 output" >&5 $as_echo_n "checking for x86 cpuid 1 output... " >&6; } if test "${ax_cv_gcc_x86_cpuid_1+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ax_cv_gcc_x86_cpuid_1=unknown else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int op = 1, eax, ebx, ecx, edx; FILE *f; __asm__("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (op)); f = fopen("conftest_cpuid", "w"); if (!f) return 1; fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx); fclose(f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid else ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_1" >&5 $as_echo "$ax_cv_gcc_x86_cpuid_1" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu case $ax_cv_gcc_x86_cpuid_0 in # see AX_GCC_ARCHFLAG *:756e6547:*:*) # Intel case $ax_cv_gcc_x86_cpuid_1 in *6a?:*[234]:*:*|*6[789b]?:*:*:*) icc_flags="-xK";; *f3[347]:*:*:*|*f41347:*:*:*) icc_flags="-xP -xN -xW -xK";; *f??:*:*:*) icc_flags="-xN -xW -xK";; esac ;; esac ;; esac if test "x$icc_flags" != x; then for flag in $icc_flags; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 $as_echo_n "checking whether C compiler accepts $flag... " >&6; } ax_save_FLAGS=$CFLAGS CFLAGS="$flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=yes else eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then icc_archflag=$flag; break else : fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icc architecture flag" >&5 $as_echo_n "checking for icc architecture flag... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $icc_archflag" >&5 $as_echo "$icc_archflag" >&6; } if test "x$icc_archflag" != xunknown; then CFLAGS="$CFLAGS $icc_archflag" fi fi ;; gnu) # default optimization flags for gcc on all systems CFLAGS="-O3 -fomit-frame-pointer" # -malign-double for x86 systems { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -malign-double" >&5 $as_echo_n "checking whether C compiler accepts -malign-double... " >&6; } if test "${ax_cv_c_flags__malign_double+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_save_FLAGS=$CFLAGS CFLAGS="-malign-double" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_c_flags__malign_double=yes else ax_cv_c_flags__malign_double=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS fi eval ax_check_compiler_flags=$ax_cv_c_flags__malign_double { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then CFLAGS="$CFLAGS -malign-double" else : fi # -fstrict-aliasing for gcc-2.95+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fstrict-aliasing" >&5 $as_echo_n "checking whether C compiler accepts -fstrict-aliasing... " >&6; } if test "${ax_cv_c_flags__fstrict_aliasing+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_save_FLAGS=$CFLAGS CFLAGS="-fstrict-aliasing" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_c_flags__fstrict_aliasing=yes else ax_cv_c_flags__fstrict_aliasing=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS fi eval ax_check_compiler_flags=$ax_cv_c_flags__fstrict_aliasing { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then CFLAGS="$CFLAGS -fstrict-aliasing" else : fi # note that we enable "unsafe" fp optimization with other compilers, too { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -ffast-math" >&5 $as_echo_n "checking whether C compiler accepts -ffast-math... " >&6; } if test "${ax_cv_c_flags__ffast_math+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_save_FLAGS=$CFLAGS CFLAGS="-ffast-math" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_c_flags__ffast_math=yes else ax_cv_c_flags__ffast_math=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS fi eval ax_check_compiler_flags=$ax_cv_c_flags__ffast_math { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then CFLAGS="$CFLAGS -ffast-math" else : fi # Check whether --with-gcc-arch was given. if test "${with_gcc_arch+set}" = set; then : withval=$with_gcc_arch; ax_gcc_arch=$withval else ax_gcc_arch=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc architecture flag" >&5 $as_echo_n "checking for gcc architecture flag... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5 $as_echo "" >&6; } if test "${ax_cv_gcc_archflag+set}" = set; then : $as_echo_n "(cached) " >&6 else ax_cv_gcc_archflag="unknown" if test "$GCC" = yes; then if test "x$ax_gcc_arch" = xyes; then ax_gcc_arch="" if test "$cross_compiling" = no; then case $host_cpu in i[3456]86*|x86_64*) # use cpuid codes, in part from x86info-1.7 by D. Jones ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 0 output" >&5 $as_echo_n "checking for x86 cpuid 0 output... " >&6; } if test "${ax_cv_gcc_x86_cpuid_0+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ax_cv_gcc_x86_cpuid_0=unknown else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int op = 0, eax, ebx, ecx, edx; FILE *f; __asm__("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (op)); f = fopen("conftest_cpuid", "w"); if (!f) return 1; fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx); fclose(f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid else ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0" >&5 $as_echo "$ax_cv_gcc_x86_cpuid_0" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 1 output" >&5 $as_echo_n "checking for x86 cpuid 1 output... " >&6; } if test "${ax_cv_gcc_x86_cpuid_1+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ax_cv_gcc_x86_cpuid_1=unknown else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int op = 1, eax, ebx, ecx, edx; FILE *f; __asm__("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (op)); f = fopen("conftest_cpuid", "w"); if (!f) return 1; fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx); fclose(f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid else ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_1" >&5 $as_echo "$ax_cv_gcc_x86_cpuid_1" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu case $ax_cv_gcc_x86_cpuid_0 in *:756e6547:*:*) # Intel case $ax_cv_gcc_x86_cpuid_1 in *5[48]?:*:*:*) ax_gcc_arch="pentium-mmx pentium" ;; *5??:*:*:*) ax_gcc_arch=pentium ;; *6[3456]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;; *6a?:*[01]:*:*) ax_gcc_arch="pentium2 pentiumpro" ;; *6a?:*[234]:*:*) ax_gcc_arch="pentium3 pentiumpro" ;; *6[9d]?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;; *6[78b]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;; *6??:*:*:*) ax_gcc_arch=pentiumpro ;; *f3[347]:*:*:*|*f41347:*:*:*) case $host_cpu in x86_64*) ax_gcc_arch="nocona pentium4 pentiumpro" ;; *) ax_gcc_arch="prescott pentium4 pentiumpro" ;; esac ;; *f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro";; esac ;; *:68747541:*:*) # AMD case $ax_cv_gcc_x86_cpuid_1 in *5[67]?:*:*:*) ax_gcc_arch=k6 ;; *5[8d]?:*:*:*) ax_gcc_arch="k6-2 k6" ;; *5[9]?:*:*:*) ax_gcc_arch="k6-3 k6" ;; *60?:*:*:*) ax_gcc_arch=k7 ;; *6[12]?:*:*:*) ax_gcc_arch="athlon k7" ;; *6[34]?:*:*:*) ax_gcc_arch="athlon-tbird k7" ;; *67?:*:*:*) ax_gcc_arch="athlon-4 athlon k7" ;; *6[68a]?:*:*:*) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 0x80000006 output" >&5 $as_echo_n "checking for x86 cpuid 0x80000006 output... " >&6; } if test "${ax_cv_gcc_x86_cpuid_0x80000006+set}" = set; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ax_cv_gcc_x86_cpuid_0x80000006=unknown else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int op = 0x80000006, eax, ebx, ecx, edx; FILE *f; __asm__("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (op)); f = fopen("conftest_cpuid", "w"); if (!f) return 1; fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx); fclose(f); return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ax_cv_gcc_x86_cpuid_0x80000006=`cat conftest_cpuid`; rm -f conftest_cpuid else ax_cv_gcc_x86_cpuid_0x80000006=unknown; rm -f conftest_cpuid fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0x80000006" >&5 $as_echo "$ax_cv_gcc_x86_cpuid_0x80000006" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # L2 cache size case $ax_cv_gcc_x86_cpuid_0x80000006 in *:*:*[1-9a-f]??????:*) # (L2 = ecx >> 16) >= 256 ax_gcc_arch="athlon-xp athlon-4 athlon k7" ;; *) ax_gcc_arch="athlon-4 athlon k7" ;; esac ;; *f[4cef8b]?:*:*:*) ax_gcc_arch="athlon64 k8" ;; *f5?:*:*:*) ax_gcc_arch="opteron k8" ;; *f7?:*:*:*) ax_gcc_arch="athlon-fx opteron k8" ;; *f??:*:*:*) ax_gcc_arch="k8" ;; esac ;; *:746e6543:*:*) # IDT case $ax_cv_gcc_x86_cpuid_1 in *54?:*:*:*) ax_gcc_arch=winchip-c6 ;; *58?:*:*:*) ax_gcc_arch=winchip2 ;; *6[78]?:*:*:*) ax_gcc_arch=c3 ;; *69?:*:*:*) ax_gcc_arch="c3-2 c3" ;; esac ;; esac if test x"$ax_gcc_arch" = x; then # fallback case $host_cpu in i586*) ax_gcc_arch=pentium ;; i686*) ax_gcc_arch=pentiumpro ;; esac fi ;; sparc*) # Extract the first word of "prtdiag", so it can be a program name with args. set dummy prtdiag; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PRTDIAG+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PRTDIAG in [\\/]* | ?:[\\/]*) ac_cv_path_PRTDIAG="$PRTDIAG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_dummy="$PATH:/usr/platform/`uname -i`/sbin/:/usr/platform/`uname -m`/sbin/" for as_dir in $as_dummy do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PRTDIAG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PRTDIAG" && ac_cv_path_PRTDIAG="prtdiag" ;; esac fi PRTDIAG=$ac_cv_path_PRTDIAG if test -n "$PRTDIAG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PRTDIAG" >&5 $as_echo "$PRTDIAG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null` cputype=`echo "$cputype" | tr -d ' -' |tr $as_cr_LETTERS $as_cr_letters` case $cputype in *ultrasparciv*) ax_gcc_arch="ultrasparc4 ultrasparc3 ultrasparc v9" ;; *ultrasparciii*) ax_gcc_arch="ultrasparc3 ultrasparc v9" ;; *ultrasparc*) ax_gcc_arch="ultrasparc v9" ;; *supersparc*|*tms390z5[05]*) ax_gcc_arch="supersparc v8" ;; *hypersparc*|*rt62[056]*) ax_gcc_arch="hypersparc v8" ;; *cypress*) ax_gcc_arch=cypress ;; esac ;; alphaev5) ax_gcc_arch=ev5 ;; alphaev56) ax_gcc_arch=ev56 ;; alphapca56) ax_gcc_arch="pca56 ev56" ;; alphapca57) ax_gcc_arch="pca57 pca56 ev56" ;; alphaev6) ax_gcc_arch=ev6 ;; alphaev67) ax_gcc_arch=ev67 ;; alphaev68) ax_gcc_arch="ev68 ev67" ;; alphaev69) ax_gcc_arch="ev69 ev68 ev67" ;; alphaev7) ax_gcc_arch="ev7 ev69 ev68 ev67" ;; alphaev79) ax_gcc_arch="ev79 ev7 ev69 ev68 ev67" ;; powerpc*) cputype=`((grep cpu /proc/cpuinfo | head -n 1 | cut -d: -f2 | cut -d, -f1 | sed 's/ //g') ; /usr/bin/machine ; /bin/machine; grep CPU /var/run/dmesg.boot | head -n 1 | cut -d" " -f2) 2> /dev/null` cputype=`echo $cputype | sed -e 's/ppc//g;s/ *//g'` case $cputype in *750*) ax_gcc_arch="750 G3" ;; *740[0-9]*) ax_gcc_arch="$cputype 7400 G4" ;; *74[4-5][0-9]*) ax_gcc_arch="$cputype 7450 G4" ;; *74[0-9][0-9]*) ax_gcc_arch="$cputype G4" ;; *970*) ax_gcc_arch="970 G5 power4";; *POWER4*|*power4*|*gq*) ax_gcc_arch="power4 970";; *POWER5*|*power5*|*gr*|*gs*) ax_gcc_arch="power5 power4 970";; 603ev|8240) ax_gcc_arch="$cputype 603e 603";; *) ax_gcc_arch=$cputype ;; esac ax_gcc_arch="$ax_gcc_arch powerpc" ;; esac fi # not cross-compiling fi # guess arch if test "x$ax_gcc_arch" != x -a "x$ax_gcc_arch" != xno; then for arch in $ax_gcc_arch; do if test "x$acx_maxopt_portable" = xyes; then # if we require portable code flags="-mtune=$arch" # -mcpu=$arch and m$arch generate nonportable code on every arch except # x86. And some other arches (e.g. Alpha) don't accept -mtune. Grrr. case $host_cpu in i*86|x86_64*) flags="$flags -mcpu=$arch -m$arch";; esac else flags="-march=$arch -mcpu=$arch -m$arch" fi for flag in $flags; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 $as_echo_n "checking whether C compiler accepts $flag... " >&6; } ax_save_FLAGS=$CFLAGS CFLAGS="$flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=yes else eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then ax_cv_gcc_archflag=$flag; break else : fi done test "x$ax_cv_gcc_archflag" = xunknown || break done fi fi # $GCC=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc architecture flag" >&5 $as_echo_n "checking for gcc architecture flag... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_archflag" >&5 $as_echo "$ax_cv_gcc_archflag" >&6; } if test "x$ax_cv_gcc_archflag" = xunknown; then : else CFLAGS="$CFLAGS $ax_cv_gcc_archflag" fi ;; esac if test -z "$CFLAGS"; then echo "" echo "********************************************************" echo "* WARNING: Don't know the best CFLAGS for this system *" echo "* Use ./configure CFLAGS=... to specify your own flags *" echo "* (otherwise, a default of CFLAGS=-O3 will be used) *" echo "********************************************************" echo "" CFLAGS="-O3" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $CFLAGS" >&5 $as_echo_n "checking whether C compiler accepts $CFLAGS... " >&6; } ax_save_FLAGS=$CFLAGS CFLAGS="$CFLAGS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval `$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh`=yes else eval `$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh`=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_save_FLAGS eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_check_compiler_flags" >&5 $as_echo "$ax_check_compiler_flags" >&6; } if test "x$ax_check_compiler_flags" = xyes; then : else echo "" echo "********************************************************" echo "* WARNING: The guessed CFLAGS don't seem to work with *" echo "* your compiler. *" echo "* Use ./configure CFLAGS=... to specify your own flags *" echo "********************************************************" echo "" CFLAGS="" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS_WARN for maximum warnings" >&5 $as_echo_n "checking CFLAGS_WARN for maximum warnings... " >&6; } if test "${ac_cv_cflags_warn_all+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_cv_cflags_warn_all="no, unknown" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_save_CFLAGS="$CFLAGS" for ac_arg in "-pedantic % -Wall" "-xstrconst % -v" "-std1 % -verbose -w0 -warnprotos" "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" "-ansi -ansiE % -fullwarn" "+ESlit % +w1" "-Xc % -pvctl,fullmsg" "-h conform % -h msglevel 2" # do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_cflags_warn_all=`echo $ac_arg | sed -e 's,.*% *,,'` ; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done CFLAGS="$ac_save_CFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_warn_all" >&5 $as_echo "$ac_cv_cflags_warn_all" >&6; } case ".$ac_cv_cflags_warn_all" in .ok|.ok,*) ;; .|.no|.no,*) ;; *) if echo " $CFLAGS_WARN " | grep " $ac_cv_cflags_warn_all " 2>&1 >/dev/null then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS_WARN does contain \$ac_cv_cflags_warn_all"; } >&5 (: CFLAGS_WARN does contain $ac_cv_cflags_warn_all) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS_WARN=\"\$CFLAGS_WARN \$ac_cv_cflags_warn_all\""; } >&5 (: CFLAGS_WARN="$CFLAGS_WARN $ac_cv_cflags_warn_all") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } CFLAGS_WARN="$CFLAGS_WARN $ac_cv_cflags_warn_all" fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi for ac_func in strtol do : ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol" if test "x$ac_cv_func_strtol" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRTOL 1 _ACEOF fi done for ac_header in sys/resource.h do : ac_fn_c_check_header_mongrel "$LINENO" "sys/resource.h" "ac_cv_header_sys_resource_h" "$ac_includes_default" if test "x$ac_cv_header_sys_resource_h" = x""yes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_RESOURCE_H 1 _ACEOF $as_echo "#define CLOOG_RUSAGE /**/" >>confdefs.h fi done # Check whether --with-isl was given. if test "${with_isl+set}" = set; then : withval=$with_isl; fi case "system" in no|system|build|bundled) # Check whether --with-isl_prefix was given. if test "${with_isl_prefix+set}" = set; then : withval=$with_isl_prefix; fi # Check whether --with-isl_exec_prefix was given. if test "${with_isl_exec_prefix+set}" = set; then : withval=$with_isl_exec_prefix; fi esac case "build" in no|system|build|bundled) # Check whether --with-isl_builddir was given. if test "${with_isl_builddir+set}" = set; then : withval=$with_isl_builddir; fi esac if test "x$with_isl_prefix" != "x" -a "x$with_isl_exec_prefix" = "x"; then with_isl_exec_prefix=$with_isl_prefix fi if test "x$with_isl_prefix" != "x" -o "x$with_isl_exec_prefix" != "x"; then if test "x$with_isl" != "x" -a "x$with_isl" != "xsystem"; then as_fn_error "Setting $with_isl_prefix implies use of system isl" "$LINENO" 5 fi with_isl="system" fi if test "x$with_isl_builddir" != "x"; then if test "x$with_isl" != "x" -a "x$with_isl" != "xbuild"; then as_fn_error "Setting $with_isl_builddir implies use of build isl" "$LINENO" 5 fi with_isl="build" isl_srcdir=`echo @abs_srcdir@ | $with_isl_builddir/config.status --file=-` { $as_echo "$as_me:${as_lineno-$LINENO}: isl sources in $isl_srcdir" >&5 $as_echo "$as_me: isl sources in $isl_srcdir" >&6;} fi case "$with_isl" in no|system|build|bundled) ;; *) if test -d $srcdir/.git -a \ -d $srcdir/isl -a \ ! -d $srcdir/isl/.git; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git repo detected, but submodule isl not initialized" >&5 $as_echo "$as_me: WARNING: git repo detected, but submodule isl not initialized" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You may want to run" >&5 $as_echo "$as_me: WARNING: You may want to run" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git submodule init" >&5 $as_echo "$as_me: WARNING: git submodule init" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git submodule update" >&5 $as_echo "$as_me: WARNING: git submodule update" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: sh autogen.sh" >&5 $as_echo "$as_me: WARNING: sh autogen.sh" >&2;} fi if test -f $srcdir/isl/configure -a "bundled" != "no"; then with_isl="bundled" else with_isl="bundled" fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking which isl to use" >&5 $as_echo_n "checking which isl to use... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_isl" >&5 $as_echo "$with_isl" >&6; } BITS="gmp" # Check whether --with-gmp was given. if test "${with_gmp+set}" = set; then : withval=$with_gmp; fi case "system" in system) # Check whether --with-gmp_prefix was given. if test "${with_gmp_prefix+set}" = set; then : withval=$with_gmp_prefix; fi # Check whether --with-gmp_exec_prefix was given. if test "${with_gmp_exec_prefix+set}" = set; then : withval=$with_gmp_exec_prefix; fi esac case "build" in system) # Check whether --with-gmp_builddir was given. if test "${with_gmp_builddir+set}" = set; then : withval=$with_gmp_builddir; fi esac if test "x$with_gmp_prefix" != "x" -a "x$with_gmp_exec_prefix" = "x"; then with_gmp_exec_prefix=$with_gmp_prefix fi if test "x$with_gmp_prefix" != "x" -o "x$with_gmp_exec_prefix" != "x"; then if test "x$with_gmp" != "x" -a "x$with_gmp" != "xsystem"; then as_fn_error "Setting $with_gmp_prefix implies use of system gmp" "$LINENO" 5 fi with_gmp="system" fi if test "x$with_gmp_builddir" != "x"; then if test "x$with_gmp" != "x" -a "x$with_gmp" != "xbuild"; then as_fn_error "Setting $with_gmp_builddir implies use of build gmp" "$LINENO" 5 fi with_gmp="build" gmp_srcdir=`echo @abs_srcdir@ | $with_gmp_builddir/config.status --file=-` { $as_echo "$as_me:${as_lineno-$LINENO}: gmp sources in $gmp_srcdir" >&5 $as_echo "$as_me: gmp sources in $gmp_srcdir" >&6;} fi case "$with_gmp" in system) ;; *) if test -d $srcdir/.git -a \ -d $srcdir/gmp -a \ ! -d $srcdir/gmp/.git; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git repo detected, but submodule gmp not initialized" >&5 $as_echo "$as_me: WARNING: git repo detected, but submodule gmp not initialized" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You may want to run" >&5 $as_echo "$as_me: WARNING: You may want to run" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git submodule init" >&5 $as_echo "$as_me: WARNING: git submodule init" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: git submodule update" >&5 $as_echo "$as_me: WARNING: git submodule update" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: sh autogen.sh" >&5 $as_echo "$as_me: WARNING: sh autogen.sh" >&2;} fi if test -f $srcdir/gmp/configure -a "system" != "no"; then with_gmp="bundled" else with_gmp="system" fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking which gmp to use" >&5 $as_echo_n "checking which gmp to use... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_gmp" >&5 $as_echo "$with_gmp" >&6; } need_get_memory_functions=false case "$with_gmp" in system) if test "x$with_gmp_prefix" != "x"; then CPPFLAGS="-I$with_gmp_prefix/include $CPPFLAGS" fi if test "$with_gmp_exec_prefix" != "yes" ; then LDFLAGS="-L$with_gmp_exec_prefix/lib $LDFLAGS" fi ac_fn_c_check_header_mongrel "$LINENO" "gmp.h" "ac_cv_header_gmp_h" "$ac_includes_default" if test "x$ac_cv_header_gmp_h" = x""yes; then : else as_fn_error "Can't find gmp headers." "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __gmpz_init in -lgmp" >&5 $as_echo_n "checking for __gmpz_init in -lgmp... " >&6; } if test "${ac_cv_lib_gmp___gmpz_init+set}" = set; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgmp $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char __gmpz_init (); int main () { return __gmpz_init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gmp___gmpz_init=yes else ac_cv_lib_gmp___gmpz_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gmp___gmpz_init" >&5 $as_echo "$ac_cv_lib_gmp___gmpz_init" >&6; } if test "x$ac_cv_lib_gmp___gmpz_init" = x""yes; then : LIBS="$LIBS -lgmp" else as_fn_error "Can't find gmp library." "$LINENO" 5 fi ac_fn_c_check_decl "$LINENO" "mp_get_memory_functions" "ac_cv_have_decl_mp_get_memory_functions" "#include " if test "x$ac_cv_have_decl_mp_get_memory_functions" = x""yes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_MP_GET_MEMORY_FUNCTIONS $ac_have_decl _ACEOF if test $ac_have_decl = 1; then : else need_get_memory_functions=true fi ;; esac if test x$need_get_memory_functions = xtrue; then NEED_GET_MEMORY_FUNCTIONS_TRUE= NEED_GET_MEMORY_FUNCTIONS_FALSE='#' else NEED_GET_MEMORY_FUNCTIONS_TRUE='#' NEED_GET_MEMORY_FUNCTIONS_FALSE= fi case "$with_isl" in bundled) ISL_CPPFLAGS="-I$srcdir/isl/include -Iisl/include" ;; build) ISL_CPPFLAGS="-I$isl_srcdir/include -I$with_isl_builddir/include" ISL_LIBS="$with_isl_builddir/libisl.la" ;; system) if test "x$with_isl_prefix" != "x"; then ISL_CPPFLAGS="-I$with_isl_prefix/include" fi if test "x$with_isl_exec_prefix" != "x"; then ISL_LDFLAGS="-L$with_isl_exec_prefix/lib" fi ISL_LIBS="-lisl" esac if test $with_isl = bundled; then BUNDLED_ISL_TRUE= BUNDLED_ISL_FALSE='#' else BUNDLED_ISL_TRUE='#' BUNDLED_ISL_FALSE= fi if test $with_isl = no; then NO_ISL_TRUE= NO_ISL_FALSE='#' else NO_ISL_TRUE='#' NO_ISL_FALSE= fi $as_echo "#define CLOOG_INT_GMP 1" >>confdefs.h if test -f $srcdir/.git/HEAD; then GIT_INDEX="\$(top_srcdir)/.git/index" fi PACKAGE_NAME="cloog-isl" PACKAGE_CFLAGS="-DCLOOG_INT_GMP=1" # we need the expanded forms... test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig libname" >&5 $as_echo_n "checking our pkgconfig libname... " >&6; } test ".$ax_create_pkgconfig_libname" != "." || \ ax_create_pkgconfig_libname="${PACKAGE_NAME}" test ".$ax_create_pkgconfig_libname" != "." || \ ax_create_pkgconfig_libname="$PACKAGE" ax_create_pkgconfig_libname=`eval echo "$ax_create_pkgconfig_libname"` ax_create_pkgconfig_libname=`eval echo "$ax_create_pkgconfig_libname"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_libname" >&5 $as_echo "$ax_create_pkgconfig_libname" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig version" >&5 $as_echo_n "checking our pkgconfig version... " >&6; } test ".$ax_create_pkgconfig_version" != "." || \ ax_create_pkgconfig_version="${PACKAGE_VERSION}" test ".$ax_create_pkgconfig_version" != "." || \ ax_create_pkgconfig_version="$VERSION" ax_create_pkgconfig_version=`eval echo "$ax_create_pkgconfig_version"` ax_create_pkgconfig_version=`eval echo "$ax_create_pkgconfig_version"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_version" >&5 $as_echo "$ax_create_pkgconfig_version" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig_libdir" >&5 $as_echo_n "checking our pkgconfig_libdir... " >&6; } test ".$pkgconfig_libdir" = "." && \ pkgconfig_libdir='${libdir}/pkgconfig' ax_create_pkgconfig_libdir=`eval echo "$pkgconfig_libdir"` ax_create_pkgconfig_libdir=`eval echo "$ax_create_pkgconfig_libdir"` ax_create_pkgconfig_libdir=`eval echo "$ax_create_pkgconfig_libdir"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkgconfig_libdir" >&5 $as_echo "$pkgconfig_libdir" >&6; } test "$pkgconfig_libdir" != "$ax_create_pkgconfig_libdir" && ( { $as_echo "$as_me:${as_lineno-$LINENO}: result: expanded our pkgconfig_libdir... $ax_create_pkgconfig_libdir" >&5 $as_echo "expanded our pkgconfig_libdir... $ax_create_pkgconfig_libdir" >&6; }) { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig_libfile" >&5 $as_echo_n "checking our pkgconfig_libfile... " >&6; } test ".$pkgconfig_libfile" != "." || \ pkgconfig_libfile="$ax_create_pkgconfig_libname.pc" ax_create_pkgconfig_libfile=`eval echo "$pkgconfig_libfile"` ax_create_pkgconfig_libfile=`eval echo "$ax_create_pkgconfig_libfile"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkgconfig_libfile" >&5 $as_echo "$pkgconfig_libfile" >&6; } test "$pkgconfig_libfile" != "$ax_create_pkgconfig_libfile" && ( { $as_echo "$as_me:${as_lineno-$LINENO}: result: expanded our pkgconfig_libfile... $ax_create_pkgconfig_libfile" >&5 $as_echo "expanded our pkgconfig_libfile... $ax_create_pkgconfig_libfile" >&6; }) { $as_echo "$as_me:${as_lineno-$LINENO}: checking our package / suffix" >&5 $as_echo_n "checking our package / suffix... " >&6; } ax_create_pkgconfig_suffix="$program_suffix" test ".$ax_create_pkgconfig_suffix" != .NONE || ax_create_pkgconfig_suffix="" { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${PACKAGE_NAME} / ${ax_create_pkgconfig_suffix}" >&5 $as_echo "${PACKAGE_NAME} / ${ax_create_pkgconfig_suffix}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig description" >&5 $as_echo_n "checking our pkgconfig description... " >&6; } ax_create_pkgconfig_description="$PACKAGE_SUMMARY" test ".$ax_create_pkgconfig_description" != "." || \ ax_create_pkgconfig_description="$ax_create_pkgconfig_libname Library" ax_create_pkgconfig_description=`eval echo "$ax_create_pkgconfig_description"` ax_create_pkgconfig_description=`eval echo "$ax_create_pkgconfig_description"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_description" >&5 $as_echo "$ax_create_pkgconfig_description" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig requires" >&5 $as_echo_n "checking our pkgconfig requires... " >&6; } ax_create_pkgconfig_requires="$PACKAGE_REQUIRES" ax_create_pkgconfig_requires=`eval echo "$ax_create_pkgconfig_requires"` ax_create_pkgconfig_requires=`eval echo "$ax_create_pkgconfig_requires"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_requires" >&5 $as_echo "$ax_create_pkgconfig_requires" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig ext libs" >&5 $as_echo_n "checking our pkgconfig ext libs... " >&6; } ax_create_pkgconfig_pkglibs="$PACKAGE_LIBS" test ".$ax_create_pkgconfig_pkglibs" != "." || ax_create_pkgconfig_pkglibs="-l$ax_create_pkgconfig_libname" ax_create_pkgconfig_libs="$ax_create_pkgconfig_pkglibs $LIBS" ax_create_pkgconfig_libs=`eval echo "$ax_create_pkgconfig_libs"` ax_create_pkgconfig_libs=`eval echo "$ax_create_pkgconfig_libs"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_libs" >&5 $as_echo "$ax_create_pkgconfig_libs" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig cppflags" >&5 $as_echo_n "checking our pkgconfig cppflags... " >&6; } ax_create_pkgconfig_cppflags="$CPPFLAGS $PACKAGE_CFLAGS" ax_create_pkgconfig_cppflags=`eval echo "$ax_create_pkgconfig_cppflags"` ax_create_pkgconfig_cppflags=`eval echo "$ax_create_pkgconfig_cppflags"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_cppflags" >&5 $as_echo "$ax_create_pkgconfig_cppflags" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig ldflags" >&5 $as_echo_n "checking our pkgconfig ldflags... " >&6; } ax_create_pkgconfig_ldflags="$LDFLAGS $PACKAGE_LDFLAGS" ax_create_pkgconfig_ldflags=`eval echo "$ax_create_pkgconfig_ldflags"` ax_create_pkgconfig_ldflags=`eval echo "$ax_create_pkgconfig_ldflags"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_ldflags" >&5 $as_echo "$ax_create_pkgconfig_ldflags" >&6; } test ".$ax_create_pkgconfig_generate" != "." || \ ax_create_pkgconfig_generate="$ax_create_pkgconfig_libname.pc" ax_create_pkgconfig_generate=`eval echo "$ax_create_pkgconfig_generate"` ax_create_pkgconfig_generate=`eval echo "$ax_create_pkgconfig_generate"` test "$pkgconfig_libfile" != "$ax_create_pkgconfig_generate" && ( { $as_echo "$as_me:${as_lineno-$LINENO}: result: generate the pkgconfig later... $ax_create_pkgconfig_generate" >&5 $as_echo "generate the pkgconfig later... $ax_create_pkgconfig_generate" >&6; }) if test ".$ax_create_pkgconfig_src_libdir" = "." ; then ax_create_pkgconfig_src_libdir=`pwd` ax_create_pkgconfig_src_libdir=`$as_dirname -- "$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" || $as_expr X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(//\)[^/]' \| \ X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(//\)$' \| \ X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test ! -d $ax_create_pkgconfig_src_libdir/src || \ ax_create_pkgconfig_src_libdir="$ax_create_pkgconfig_src_libdir/src" case ".$objdir" in *libs) ax_create_pkgconfig_src_libdir="$ax_create_pkgconfig_src_libdir/$objdir" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: noninstalled pkgconfig -L $ax_create_pkgconfig_src_libdir" >&5 $as_echo "noninstalled pkgconfig -L $ax_create_pkgconfig_src_libdir" >&6; } fi if test ".$ax_create_pkgconfig_src_headers" = "." ; then ax_create_pkgconfig_src_headers=`pwd` v="$ac_top_srcdir" ; test ".$v" != "." || v="$ax_spec_dir" test ".$v" != "." || v="$srcdir" case "$v" in /*) ax_create_pkgconfig_src_headers="" ;; esac ax_create_pkgconfig_src_headers=`$as_dirname -- "$ax_create_pkgconfig_src_headers/$v/x" || $as_expr X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(//\)[^/]' \| \ X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(//\)$' \| \ X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ax_create_pkgconfig_src_headers/$v/x" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test ! -d $ax_create_pkgconfig_src_headers/include || \ ax_create_pkgconfig_src_headers="$ax_create_pkgconfig_src_headers/include" { $as_echo "$as_me:${as_lineno-$LINENO}: result: noninstalled pkgconfig -I $ax_create_pkgconfig_src_headers" >&5 $as_echo "noninstalled pkgconfig -I $ax_create_pkgconfig_src_headers" >&6; } fi ac_config_commands="$ac_config_commands $ax_create_pkgconfig_generate" ac_config_files="$ac_config_files Makefile test/Makefile" ac_config_files="$ac_config_files autoconf/Doxyfile" ac_config_files="$ac_config_files doc/Makefile" ac_config_files="$ac_config_files source/version.c" ac_config_files="$ac_config_files include/cloog/version.h" ac_config_files="$ac_config_files genversion.sh" ac_config_commands="$ac_config_commands version.h" ac_config_commands="$ac_config_commands doc/gitversion.texi" if test $with_isl = bundled; then subdirs="$subdirs isl" fi cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_TEXI2DVI_TRUE}" && test -z "${HAVE_TEXI2DVI_FALSE}"; then as_fn_error "conditional \"HAVE_TEXI2DVI\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${NEED_GET_MEMORY_FUNCTIONS_TRUE}" && test -z "${NEED_GET_MEMORY_FUNCTIONS_FALSE}"; then as_fn_error "conditional \"NEED_GET_MEMORY_FUNCTIONS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${BUNDLED_ISL_TRUE}" && test -z "${BUNDLED_ISL_FALSE}"; then as_fn_error "conditional \"BUNDLED_ISL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${NO_ISL_TRUE}" && test -z "${NO_ISL_FALSE}"; then as_fn_error "conditional \"NO_ISL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.65, with options \\"\$ac_cs_config\\" Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ AR \ AR_FLAGS \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ fix_srcfile_path \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' ax_create_pkgconfig_generate="$ax_create_pkgconfig_generate" pkgconfig_prefix='$prefix' pkgconfig_execprefix='$exec_prefix' pkgconfig_bindir='$bindir' pkgconfig_libdir='$libdir' pkgconfig_includedir='$includedir' pkgconfig_datarootdir='$datarootdir' pkgconfig_datadir='$datadir' pkgconfig_sysconfdir='$sysconfdir' pkgconfig_suffix='$ax_create_pkgconfig_suffix' pkgconfig_package='$PACKAGE_NAME' pkgconfig_libname='$ax_create_pkgconfig_libname' pkgconfig_description='$ax_create_pkgconfig_description' pkgconfig_version='$ax_create_pkgconfig_version' pkgconfig_requires='$ax_create_pkgconfig_requires' pkgconfig_libs='$ax_create_pkgconfig_libs' pkgconfig_ldflags='$ax_create_pkgconfig_ldflags' pkgconfig_cppflags='$ax_create_pkgconfig_cppflags' pkgconfig_src_libdir='$ax_create_pkgconfig_src_libdir' pkgconfig_src_headers='$ax_create_pkgconfig_src_headers' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "$ax_create_pkgconfig_generate") CONFIG_COMMANDS="$CONFIG_COMMANDS $ax_create_pkgconfig_generate" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "autoconf/Doxyfile") CONFIG_FILES="$CONFIG_FILES autoconf/Doxyfile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "source/version.c") CONFIG_FILES="$CONFIG_FILES source/version.c" ;; "include/cloog/version.h") CONFIG_FILES="$CONFIG_FILES include/cloog/version.h" ;; "genversion.sh") CONFIG_FILES="$CONFIG_FILES genversion.sh" ;; "version.h") CONFIG_COMMANDS="$CONFIG_COMMANDS version.h" ;; "doc/gitversion.texi") CONFIG_COMMANDS="$CONFIG_COMMANDS doc/gitversion.texi" ;; *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="" # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method == "file_magic". file_magic_cmd=$lt_file_magic_cmd # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # If ld is used when linking, flag to hardcode \$libdir into a binary # during linking. This must work even if \$libdir does not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $* )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[^=]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$@"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1+=\$2" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$1=\$$1\$2" } _LT_EOF ;; esac sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ;; "$ax_create_pkgconfig_generate":C) pkgconfig_generate="$ax_create_pkgconfig_generate" if test ! -f "$pkgconfig_generate.in" then generate="true" elif grep ' generated by configure ' $pkgconfig_generate.in >/dev/null then generate="true" else generate="false"; fi if $generate ; then { $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_generate.in" >&5 $as_echo "$as_me: creating $pkgconfig_generate.in" >&6;} cat > $pkgconfig_generate.in <&5 $as_echo "$as_me: creating $pkgconfig_generate" >&6;} cat >conftest.sed < $pkgconfig_generate if test ! -s $pkgconfig_generate ; then as_fn_error "$pkgconfig_generate is empty" "$LINENO" 5 fi ; rm conftest.sed # DONE generate $pkgconfig_generate pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.pc/'` { $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_uninstalled" >&5 $as_echo "$as_me: creating $pkgconfig_uninstalled" >&6;} cat >conftest.sed < $pkgconfig_uninstalled if test ! -s $pkgconfig_uninstalled ; then as_fn_error "$pkgconfig_uninstalled is empty" "$LINENO" 5 fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled pkgconfig_requires_add=`echo ${pkgconfig_requires}` if test ".$pkgconfig_requires_add" != "." ; then pkgconfig_requires_add="pkg-config $pkgconfig_requires_add" else pkgconfig_requires_add=":" ; fi pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.sh/'` { $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_uninstalled" >&5 $as_echo "$as_me: creating $pkgconfig_uninstalled" >&6;} cat >conftest.sed <Name:>for option\\; do case \"\$option\" in --list-all|--name) echo > s>Description: *>\\;\\; --help) pkg-config --help \\; echo Buildscript Of > s>Version: *>\\;\\; --modversion|--version) echo > s>Requires:>\\;\\; --requires) echo $pkgconfig_requires_add> s>Libs: *>\\;\\; --libs) echo > s>Cflags: *>\\;\\; --cflags) echo > /--libs)/a\\ $pkgconfig_requires_add /--cflags)/a\\ $pkgconfig_requires_add\\ ;; --variable=*) eval echo '\$'\`echo \$option | sed -e 's/.*=//'\`\\ ;; --uninstalled) exit 0 \\ ;; *) ;; esac done AXEOF sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled if test ! -s $pkgconfig_uninstalled ; then as_fn_error "$pkgconfig_uninstalled is empty" "$LINENO" 5 fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled ;; "genversion.sh":F) chmod +x genversion.sh ;; "version.h":C) echo '#define CLOOG_HEAD "'`./genversion.sh`'"' > version.h ;; "doc/gitversion.texi":C) echo '@set VERSION '`./genversion.sh`'' > doc/gitversion.texi ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 ac_configure_args="$ac_configure_args $cloog_configure_args" # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit $? fi # # CONFIG_SUBDIRS section. # if test "$no_recursion" != yes; then # Remove --cache-file, --srcdir, and --disable-option-checking arguments # so they do not pile up. ac_sub_configure_args= ac_prev= eval "set x $ac_configure_args" shift for ac_arg do if test -n "$ac_prev"; then ac_prev= continue fi case $ac_arg in -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ | --c=*) ;; --config-cache | -C) ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) ;; --disable-option-checking) ;; *) case $ac_arg in *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_sub_configure_args " '$ac_arg'" ;; esac done # Always prepend --prefix to ensure using the same prefix # in subdir configurations. ac_arg="--prefix=$prefix" case $ac_arg in *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" # Pass --silent if test "$silent" = yes; then ac_sub_configure_args="--silent $ac_sub_configure_args" fi # Always prepend --disable-option-checking to silence warnings, since # different subdirs can have different --enable and --with options. ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" ac_popdir=`pwd` for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue # Do not complain, so a configure script can configure whichever # parts of a large source tree are present. test -d "$srcdir/$ac_dir" || continue ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5 $as_echo "$ac_msg" >&6 as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" # Check for guested configure; otherwise get Cygnus style configure. if test -f "$ac_srcdir/configure.gnu"; then ac_sub_configure=$ac_srcdir/configure.gnu elif test -f "$ac_srcdir/configure"; then ac_sub_configure=$ac_srcdir/configure elif test -f "$ac_srcdir/configure.in"; then # This should be Cygnus configure. ac_sub_configure=$ac_aux_dir/configure else { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5 $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} ac_sub_configure= fi # The recursion is here. if test -n "$ac_sub_configure"; then # Make the cache file name correct relative to the subdirectory. case $cache_file in [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; *) # Relative name. ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} # The eval makes quoting arguments work. eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || as_fn_error "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 fi cd "$ac_popdir" done fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi echo " /*-----------------------------------------------*" echo " * CLooG configuration is OK *" echo " *-----------------------------------------------*/" echo "It appears that your system is OK to start CLooG compilation. You need" echo "now to type \"make\". After compilation, you should check CLooG by typing" echo "\"make check\". If no problem occur, you can type \"make uninstall\" if" echo "you are upgrading an old version. Lastly type \"make install\" to install" echo "CLooG on your system (log as root if necessary)." cloog-parma-0.16.1/cloog-core/include/0000755000175000017500000000000011511607624014460 500000000000000cloog-parma-0.16.1/cloog-core/include/cloog/0000755000175000017500000000000011511607624015563 500000000000000cloog-parma-0.16.1/cloog-core/include/cloog/statement.h0000644000175000017500000001041411467774607017700 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** statement.h ** **-------------------------------------------------------------------** ** First version: november 4th 2001 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ #ifndef CLOOG_STATEMENT_H #define CLOOG_STATEMENT_H #if defined(__cplusplus) extern "C" { #endif struct cloogstatement { CloogState *state; /* State. */ char *name; /* Name of the statement. */ int number; /* The statement unique number. */ void * usr ; /* A pointer for library users convenience. */ struct cloogstatement * next ; /* Pointer to the next statement with the * same original domain and the same * scattering function. */ } ; typedef struct cloogstatement CloogStatement ; /****************************************************************************** * Structure display function * ******************************************************************************/ void cloog_statement_print_structure(FILE *, CloogStatement *, int) ; void cloog_statement_print(FILE *, CloogStatement *) ; /****************************************************************************** * Memory deallocation function * ******************************************************************************/ void cloog_statement_free(CloogStatement *) ; /****************************************************************************** * Processing functions * ******************************************************************************/ CloogStatement * cloog_statement_malloc(CloogState *state); CloogStatement * cloog_statement_alloc(CloogState *state, int); CloogStatement * cloog_statement_copy(CloogStatement *) ; void cloog_statement_add(CloogStatement**, CloogStatement**, CloogStatement*) ; #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/domain.h0000644000175000017500000002064311477120670017132 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** domain.h ** **-------------------------------------------------------------------** ** First version: october 28th 2001 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ #ifndef CLOOG_DOMAIN_H #define CLOOG_DOMAIN_H #if defined(__cplusplus) extern "C" { #endif struct cloogdomain; typedef struct cloogdomain CloogDomain ; struct cloogscattering; typedef struct cloogscattering CloogScattering; /** * CloogDomainList structure: * this structure reprensents a node of a linked list of CloogDomain structures. */ struct cloogdomainlist { CloogDomain *domain; /**< An element of the list. */ struct cloogdomainlist *next;/**< Pointer to the next element of the list.*/ } ; typedef struct cloogdomainlist CloogDomainList; /** * CloogScatteringList structure: * this structure reprensents a node of a linked list of CloogScattering structures. */ struct cloogscatteringlist { CloogScattering *scatt; /**< An element of the list. */ struct cloogscatteringlist *next;/**< Pointer to the next element of the list.*/ } ; typedef struct cloogscatteringlist CloogScatteringList; /****************************************************************************** * PolyLib interface * ******************************************************************************/ void cloog_domain_print_constraints(FILE *, CloogDomain *, int print_number); void cloog_scattering_print_constraints(FILE *, CloogScattering *); void cloog_domain_free(CloogDomain *) ; void cloog_scattering_free(CloogScattering *); CloogDomain * cloog_domain_copy(CloogDomain *) ; CloogDomain * cloog_domain_convex(CloogDomain * Pol) ; CloogDomain * cloog_domain_simple_convex(CloogDomain * domain); CloogDomain * cloog_domain_simplify(CloogDomain *, CloogDomain *) ; CloogDomain * cloog_domain_union(CloogDomain *, CloogDomain *) ; CloogDomain * cloog_domain_intersection(CloogDomain *, CloogDomain *) ; CloogDomain * cloog_domain_difference(CloogDomain *, CloogDomain *) ; void cloog_domain_sort(CloogDomain**,unsigned,unsigned,int *); int cloog_domain_follows(CloogDomain *dom1, CloogDomain *dom2, unsigned level); CloogDomain * cloog_domain_empty(CloogDomain *model); int cloog_domain_is_bounded(CloogDomain *dim, unsigned level); CloogDomain *cloog_domain_bound_splitter(CloogDomain *dom, int level); /****************************************************************************** * Structure display function * ******************************************************************************/ void cloog_domain_print_structure(FILE *file, CloogDomain *domain, int level, const char *name); /****************************************************************************** * Memory deallocation function * ******************************************************************************/ void cloog_domain_list_free(CloogDomainList *); void cloog_scattering_list_free(CloogScatteringList *); /*+**************************************************************************** * Reading function * ******************************************************************************/ CloogDomain * cloog_domain_read_context(CloogState *state, FILE * foo); CloogDomain * cloog_domain_union_read(CloogState *state, FILE *foo, int nb_par); CloogScattering *cloog_domain_read_scattering(CloogDomain *domain, FILE *foo); CloogDomain * cloog_domain_from_cloog_matrix(CloogState *state, CloogMatrix *matrix, int nb_par); CloogScattering * cloog_scattering_from_cloog_matrix(CloogState *state, CloogMatrix *matrix, int nb_scat, int nb_par); /****************************************************************************** * Processing functions * ******************************************************************************/ CloogConstraintSet *cloog_domain_constraints(CloogDomain *); int cloog_domain_isempty(CloogDomain *) ; CloogDomain * cloog_domain_universe(CloogState *state, unsigned dim); CloogDomain * cloog_domain_project(CloogDomain *, int); CloogDomain * cloog_domain_extend(CloogDomain *, int); int cloog_domain_never_integral(CloogDomain *) ; void cloog_domain_stride(CloogDomain *, int, cloog_int_t *, cloog_int_t *); int cloog_domain_can_stride(CloogDomain *domain, int level); int cloog_domain_is_otl(CloogDomain *domain, int level); CloogDomain * cloog_domain_stride_lower_bound(CloogDomain *domain, int level, CloogStride *stride); int cloog_domain_lazy_disjoint(CloogDomain *, CloogDomain *) ; int cloog_domain_lazy_equal(CloogDomain *, CloogDomain *) ; int cloog_scattering_lazy_block(CloogScattering *, CloogScattering *, CloogScatteringList *, int); int cloog_scattering_lazy_isscalar(CloogScattering *, int, cloog_int_t *); int cloog_domain_lazy_isconstant(CloogDomain *domain, int dimension, cloog_int_t *value); int cloog_scattering_list_lazy_same(CloogScatteringList *); CloogDomain * cloog_domain_cut_first(CloogDomain *domain, CloogDomain **rest); CloogDomain * cloog_domain_simplify_union(CloogDomain *domain); CloogScattering * cloog_scattering_erase_dimension(CloogScattering *, int); int cloog_domain_dimension(CloogDomain *) ; int cloog_domain_parameter_dimension(CloogDomain *domain); int cloog_scattering_dimension(CloogScattering *, CloogDomain *); int cloog_domain_isconvex(CloogDomain *) ; CloogDomain * cloog_domain_cube(CloogState *state, int dim, cloog_int_t min, cloog_int_t max); CloogDomain * cloog_domain_from_context(CloogDomain *context); CloogDomain * cloog_domain_scatter(CloogDomain *domain, CloogScattering *scatt); int cloog_scattering_fully_specified(CloogScattering *scattering, CloogDomain *domain); CloogStride *cloog_domain_list_stride(CloogDomainList *list, int level); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/constraints.h0000644000175000017500000001475511511333020020221 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** constraints.h ** **-------------------------------------------------------------------** ** First version: april 17th 2005 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ #ifndef CLOOG_CONSTRAINTS_H #define CLOOG_CONSTRAINTS_H struct cloogconstraint; typedef struct cloogconstraint CloogConstraint; struct cloogconstraintset; typedef struct cloogconstraintset CloogConstraintSet; struct cloogequalities; typedef struct cloogequalities CloogEqualities; #if defined(__cplusplus) extern "C" { #endif /****************************************************************************** * Equalities spreading functions * ******************************************************************************/ CloogEqualities *cloog_equal_alloc(int n, int nb_levels, int nb_parameters); void cloog_equal_free(CloogEqualities *equal); int cloog_equal_count(CloogEqualities *equal); int cloog_equal_type(CloogEqualities *equal, int level); void cloog_equal_del(CloogEqualities *equal, int level); int cloog_equal_total_dimension(CloogEqualities *equal); /****************************************************************************** * Processing functions * ******************************************************************************/ void cloog_constraint_set_normalize(CloogConstraintSet *, int); void cloog_constraint_set_free(CloogConstraintSet *); int cloog_constraint_set_contains_level(CloogConstraintSet *constraints, int level, int nb_parameters); int cloog_constraint_set_total_dimension(CloogConstraintSet *constraints); int cloog_constraint_set_n_iterators(CloogConstraintSet *constraints, int nb_parameters); CloogConstraintSet *cloog_constraint_set_copy(CloogConstraintSet *); CloogConstraintSet *cloog_constraint_set_simplify(CloogConstraintSet *, CloogEqualities *, int, int); int cloog_constraint_needs_reduction(CloogConstraint *upper, int level); CloogConstraintSet *cloog_constraint_set_for_reduction(CloogConstraint *upper, CloogConstraint *lower); CloogConstraintSet *cloog_constraint_set_reduce(CloogConstraintSet *constraints, int level, CloogEqualities *equal, int nb_par, cloog_int_t *bound); int cloog_constraint_set_foreach_constraint(CloogConstraintSet *constraints, int (*fn)(CloogConstraint *constraint, void *user), void *user); int cloog_constraint_is_valid(CloogConstraint *constraint); CloogConstraint *cloog_constraint_copy(CloogConstraint *constraint); void cloog_constraint_release(CloogConstraint *constraint); CloogConstraint *cloog_constraint_invalid(void); int cloog_constraint_total_dimension(CloogConstraint *constraint); CloogConstraint *cloog_equal_constraint(CloogEqualities *equal, int j); void cloog_equal_add(CloogEqualities *equal, CloogConstraintSet *constraints, int level, CloogConstraint *line, int nb_par); CloogConstraint *cloog_constraint_set_defining_equality( CloogConstraintSet *constraints, int level); CloogConstraint *cloog_constraint_set_defining_inequalities( CloogConstraintSet *constraints, int level, CloogConstraint **lower, int nb_parameters); int cloog_constraint_involves(CloogConstraint *constraint, int v); int cloog_constraint_is_lower_bound(CloogConstraint *constraint, int v); int cloog_constraint_is_upper_bound(CloogConstraint *constraint, int v); int cloog_constraint_is_equality(CloogConstraint *constraint); void cloog_constraint_constant_get(CloogConstraint *constraint, cloog_int_t *val); void cloog_constraint_coefficient_get(CloogConstraint *constraint, int var, cloog_int_t *val); void cloog_constraint_coefficient_set(CloogConstraint *constraint, int var, cloog_int_t val); void cloog_constraint_clear(CloogConstraint *constraint); void cloog_constraint_copy_coefficients(CloogConstraint *constraint, cloog_int_t *dst); struct clast_expr *cloog_constraint_variable_expr(CloogConstraint *constraint, int level, CloogNames *names); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/version.h0000644000175000017500000000452511511607567017355 00000000000000/****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ #ifndef CLOOG_VERSION_H #define CLOOG_VERSION_H #if defined(__cplusplus) extern "C" { #endif #define CLOOG_VERSION_MAJOR 0 #define CLOOG_VERSION_MINOR 16 #define CLOOG_VERSION_REVISION 1 const char *cloog_version(void); int cloog_version_major(void); int cloog_version_minor(void); int cloog_version_revision(void); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/clast.h0000644000175000017500000000766411477112645017004 00000000000000#ifndef CLOOG_CLAST_H #define CLOOG_CLAST_H #if defined(__cplusplus) extern "C" { #endif enum clast_expr_type { clast_expr_name, clast_expr_term, clast_expr_bin, clast_expr_red }; struct clast_expr { enum clast_expr_type type; }; struct clast_name { struct clast_expr expr; const char * name; }; /* Represents the term * val * var (if var != NULL) * or * val (if var == NULL) */ struct clast_term { struct clast_expr expr; cloog_int_t val; struct clast_expr *var; }; enum clast_red_type { clast_red_sum, clast_red_min, clast_red_max }; struct clast_reduction { struct clast_expr expr; enum clast_red_type type; int n; struct clast_expr* elts[1]; }; enum clast_bin_type { clast_bin_fdiv, clast_bin_cdiv, clast_bin_div, clast_bin_mod }; struct clast_binary { struct clast_expr expr; enum clast_bin_type type; struct clast_expr* LHS; cloog_int_t RHS; }; struct clast_stmt; struct clast_stmt_op { void (*free)(struct clast_stmt *); }; #define CLAST_STMT_IS_A(stmt, type) ((stmt)->op == &(type)) extern const struct clast_stmt_op stmt_root; extern const struct clast_stmt_op stmt_ass; extern const struct clast_stmt_op stmt_user; extern const struct clast_stmt_op stmt_block; extern const struct clast_stmt_op stmt_for; extern const struct clast_stmt_op stmt_guard; struct clast_stmt { const struct clast_stmt_op *op; struct clast_stmt *next; }; struct clast_root { struct clast_stmt stmt; CloogNames * names; /**< Names of iterators and parameters. */ }; struct clast_assignment { struct clast_stmt stmt; const char * LHS; struct clast_expr * RHS; }; struct clast_block { struct clast_stmt stmt; struct clast_stmt * body; }; struct clast_user_stmt { struct clast_stmt stmt; CloogDomain * domain; CloogStatement * statement; struct clast_stmt * substitutions; }; struct clast_for { struct clast_stmt stmt; CloogDomain * domain; const char * iterator; struct clast_expr * LB; struct clast_expr * UB; cloog_int_t stride; struct clast_stmt * body; }; struct clast_equation { struct clast_expr * LHS; struct clast_expr * RHS; int sign; }; struct clast_guard { struct clast_stmt stmt; struct clast_stmt * then; int n; struct clast_equation eq[1]; }; struct clast_stmt *cloog_clast_create_from_input(CloogInput *input, CloogOptions *options); struct clast_stmt *cloog_clast_create(CloogProgram *program, CloogOptions *options); void cloog_clast_free(struct clast_stmt *s); struct clast_name *new_clast_name(const char *name); struct clast_term *new_clast_term(cloog_int_t c, struct clast_expr *v); struct clast_binary *new_clast_binary(enum clast_bin_type t, struct clast_expr *lhs, cloog_int_t rhs); struct clast_reduction *new_clast_reduction(enum clast_red_type t, int n); struct clast_root *new_clast_root(CloogNames *names); struct clast_assignment *new_clast_assignment(const char *lhs, struct clast_expr *rhs); struct clast_user_stmt *new_clast_user_stmt(CloogDomain *domain, CloogStatement *stmt, struct clast_stmt *subs); struct clast_block *new_clast_block(void); struct clast_for *new_clast_for(CloogDomain *domain, const char *it, struct clast_expr *LB, struct clast_expr *UB, CloogStride *stride); struct clast_guard *new_clast_guard(int n); void free_clast_name(struct clast_name *t); void free_clast_term(struct clast_term *t); void free_clast_binary(struct clast_binary *b); void free_clast_reduction(struct clast_reduction *r); void free_clast_expr(struct clast_expr *e); void free_clast_stmt(struct clast_stmt *s); int clast_expr_equal(struct clast_expr *e1, struct clast_expr *e2); struct clast_expr *clast_bound_from_constraint(CloogConstraint *constraint, int level, CloogNames *names); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/options.h0000644000175000017500000001634511477112024017354 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** options.h ** **-------------------------------------------------------------------** ** First version: april 19th 2003 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ #include #ifndef CLOOG_OPTIONS_H #define CLOOG_OPTIONS_H #if defined(__cplusplus) extern "C" { #endif /* Uncomment the following line if you want some information about * maximum total allocated memory for code generation. #define CLOOG_MEMORY */ #define CLOOG_SCALARS struct cloogoptions; typedef struct cloogoptions CloogOptions; struct cloogoptions { CloogState *state; /* State. */ /* OPTIONS FOR LOOP GENERATION */ int l ; /* Last level to optimize. */ int f ; /* First level to optimize. */ int stop ; /* Level to stop code generation. */ int strides ; /* 1 if user wants to handle non-unit strides (then loop * increment can be something else than one), 0 otherwise. */ int sh; /* 1 for computing simple hulls */ /* OPTIONS FOR PRETTY PRINTING */ int esp ; /* 1 if user wants to spread all equalities, i.e. when there * is something like "i = 3*j + 1 ; A[i] = 0 ;" the generator * will write "A[3*j + 1] = 0 ;", 0 otherwise. */ int fsp ; /* The iteration level where equalities spreading can begin * (it might happen that the user wants not to spread values * of scattering iterators). */ int otl ; /* 1 for eliminate loops running just one time and write them * as an affectation of the iterator, 0 otherwise. */ int block ; /* 1 to make one new block {...} per new dimension, * 0 otherwise. */ int compilable; /* 1 to generate a compilable code by using * preprocessing, 0 otherwise. */ int callable; /* 1 to generate callable code by using * preprocessing, 0 otherwise. */ int language; /* 1 to generate FORTRAN, 0 for C otherwise. */ int save_domains;/* Save unsimplified copy of domain. */ /* MISC OPTIONS */ char * name ; /* Name of the input file. */ float time ; /* Time spent for code generation in seconds. */ #ifdef CLOOG_MEMORY int memory ; /* Memory spent for code generation in kilobytes. */ #endif int quiet; /* Don't print any informational messages. */ /* UNDOCUMENTED OPTIONS FOR THE AUTHOR ONLY */ int leaks ; /* 1 if I want to print the allocation statistics, * 0 otherwise. */ int backtrack; /* 1 to perform backtracking in * Quillere's algorithm, 0 otherwise. */ int override ; /* 1 if I want to bypass CLooG decisions on option correctness * (generated code may be incorrect), 0 otherwise. */ int structure ; /* 1 if I want to print the CloogProgram structure before the * pretty printed code, 0 otherwise. */ int noblocks ; /* 1 if I don't want to make statement blocks, 0 otherwise. */ int noscalars ; /* 1 if I don't want to use scalar dimensions, 0 otherwise. */ int nosimplify; /* 1 if I don't want to simplify polyhedra, 0 otherwise. */ } ; /****************************************************************************** * Error reporting functions * ******************************************************************************/ enum cloog_msg_type { CLOOG_ERROR, CLOOG_WARNING, CLOOG_INFO }; void cloog_msg(CloogOptions *options, enum cloog_msg_type type, const char *msg, ...); void cloog_die(const char *msg, ...); /****************************************************************************** * Structure display function * ******************************************************************************/ void cloog_options_print(FILE *, CloogOptions *) ; /****************************************************************************** * Memory deallocation function * ******************************************************************************/ void cloog_options_free(CloogOptions *) ; /****************************************************************************** * Reading function * ******************************************************************************/ void cloog_options_read(CloogState *state, int argc, char **argv, FILE **input, FILE **output, CloogOptions **options); /****************************************************************************** * Processing functions * ******************************************************************************/ CloogOptions *cloog_options_malloc(CloogState *state); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/cloog.h0000644000175000017500000000632511467775215017001 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** cloog.h ** **-------------------------------------------------------------------** ** First version: july 25th 2002 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ /****************************************************************************** * THIS FILE HAS BEEN AUTOMATICALLY GENERATED FROM clooh.h.in BY configure * ******************************************************************************/ #ifndef CLOOG_H #define CLOOG_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif /* !CLOOG_H */ cloog-parma-0.16.1/cloog-core/include/cloog/names.h0000644000175000017500000001204411467774607017000 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** names.h ** **-------------------------------------------------------------------** ** First version: august 1st 2002 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ #ifndef CLOOG_NAMES_H #define CLOOG_NAMES_H #if defined(__cplusplus) extern "C" { #endif # define MAX_NAME 50 # define FIRST_PARAMETER 'M' # define FIRST_ITERATOR 'i' /** * CloogNames structure: * this structure contains all the informations about parameter and iterator * names (as strings). */ struct cloognames { int nb_scalars ; /**< Scalar dimension number. */ int nb_scattering ; /**< Scattering iterator number. */ int nb_iterators ; /**< Iterator number. */ int nb_parameters ; /**< Parameter number. */ char ** scalars ; /**< The scalar names (an array of strings). */ char ** scattering ; /**< The scattering names (an array of strings). */ char ** iterators ; /**< The iterator names (an array of strings). */ char ** parameters ; /**< The parameter names (an array of strings). */ int references; /**< Number of references to this structure. */ } ; typedef struct cloognames CloogNames ; /****************************************************************************** * Structure display function * ******************************************************************************/ void cloog_names_print_structure(FILE *, CloogNames *, int) ; void cloog_names_print(FILE *, CloogNames *) ; /****************************************************************************** * Memory deallocation function * ******************************************************************************/ void cloog_names_free(CloogNames *) ; /****************************************************************************** * Reading functions * ******************************************************************************/ char ** cloog_names_read_strings(FILE *file, int nb_items); /****************************************************************************** * Processing functions * ******************************************************************************/ CloogNames * cloog_names_malloc(void); CloogNames * cloog_names_copy(CloogNames *names); CloogNames * cloog_names_alloc(void); char ** cloog_names_generate_items(int, char *, char) ; CloogNames * cloog_names_generate(int, int, int, int, char, char, char, char) ; void cloog_names_scalarize(CloogNames *, int, int *) ; const char * cloog_names_name_at_level(CloogNames *names, int level); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/stride.h0000644000175000017500000000132111467776211017154 00000000000000#ifndef CLOOG_STRIDE_H #define CLOOG_STRIDE_H #if defined(__cplusplus) extern "C" { #endif /** * Information about strides. */ struct cloogstride { int references; cloog_int_t stride; /**< The actual stride. */ cloog_int_t offset; /**< Offset of strided loop. */ cloog_int_t factor; CloogConstraint *constraint; }; typedef struct cloogstride CloogStride; CloogStride *cloog_stride_alloc(cloog_int_t stride, cloog_int_t offset); CloogStride *cloog_stride_alloc_from_constraint(cloog_int_t stride, CloogConstraint *constraint, cloog_int_t factor); CloogStride *cloog_stride_copy(CloogStride *stride); void cloog_stride_free(CloogStride *stride); #if defined(__cplusplus) } #endif #endif cloog-parma-0.16.1/cloog-core/include/cloog/int.h0000644000175000017500000001303611323326026016444 00000000000000#ifndef CLOOG_INT_H #define CLOOG_INT_H #include #include #if defined(CLOOG_INT_GMP) #include #include #ifndef mp_get_memory_functions void mp_get_memory_functions( void *(**alloc_func_ptr) (size_t), void *(**realloc_func_ptr) (void *, size_t, size_t), void (**free_func_ptr) (void *, size_t)); #endif #endif #if defined(__cplusplus) extern "C" { #endif #if defined(CLOOG_INT_INT) typedef int cloog_int_t; #define CLOOG_INT_FORMAT "%d" #elif defined(CLOOG_INT_LONG) typedef long cloog_int_t; #define CLOOG_INT_FORMAT "%ld" #elif defined(CLOOG_INT_LONG_LONG) typedef long long cloog_int_t; #define CLOOG_INT_FORMAT "%lld" #elif defined(CLOOG_INT_GMP) typedef mpz_t cloog_int_t; #else #error "No integer type defined" #endif #if defined(CLOOG_INT_GMP) #define cloog_int_init(i) mpz_init(i) #define cloog_int_clear(i) mpz_clear(i); #define cloog_int_set(r,i) mpz_set(r,i) #define cloog_int_set_si(r,i) mpz_set_si(r,i) #define cloog_int_abs(r,i) mpz_abs(r,i) #define cloog_int_neg(r,i) mpz_neg(r,i) #define cloog_int_swap(i,j) mpz_swap(i,j) #define cloog_int_add(r,i,j) mpz_add(r,i,j) #define cloog_int_add_ui(r,i,j) mpz_add_ui(r,i,j) #define cloog_int_sub(r,i,j) mpz_sub(r,i,j) #define cloog_int_sub_ui(r,i,j) mpz_sub_ui(r,i,j) #define cloog_int_mul(r,i,j) mpz_mul(r,i,j) #define cloog_int_addmul(r,i,j) mpz_addmul(r,i,j) #define cloog_int_divexact(r,i,j) mpz_divexact(r,i,j) #define cloog_int_tdiv_q(r,i,j) mpz_tdiv_q(r,i,j) #define cloog_int_fdiv_q(r,i,j) mpz_fdiv_q(r,i,j) #define cloog_int_fdiv_r(r,i,j) mpz_fdiv_r(r,i,j) #define cloog_int_cdiv_q(r,i,j) mpz_cdiv_q(r,i,j) #define cloog_int_gcd(r,i,j) mpz_gcd(r,i,j) #define cloog_int_sgn(i) mpz_sgn(i) #define cloog_int_cmp(i,j) mpz_cmp(i,j) #define cloog_int_abs_cmp(i,j) mpz_cmpabs(i,j) #define cloog_int_cmp_si(i,si) mpz_cmp_si(i,si) #define cloog_int_eq(i,j) (mpz_cmp(i,j) == 0) #define cloog_int_ne(i,j) (mpz_cmp(i,j) != 0) #define cloog_int_gt(i,j) (mpz_cmp(i,j) > 0) #define cloog_int_is_divisible_by(i,j) mpz_divisible_p(i,j) #define cloog_int_read(r,s) mpz_set_str(r,s,10) typedef void (*cloog_int_print_gmp_free_t)(void *, size_t); #define cloog_int_print(out,i) \ do { \ char *s; \ cloog_int_print_gmp_free_t gmp_free; \ s = mpz_get_str(0, 10, i); \ fprintf(out, "%s", s); \ mp_get_memory_functions(NULL, NULL, &gmp_free); \ (*gmp_free)(s, strlen(s)+1); \ } while (0) #else #define cloog_int_init(i) ((i) = 0) #define cloog_int_clear(i) do { } while (0) #define cloog_int_set(r,i) ((r) = (i)) #define cloog_int_set_si(r,i) ((r) = (i)) #define cloog_int_abs(r,i) ((r) = (i) > 0 ? (i) : -(i)) #define cloog_int_neg(r,i) ((r) = -(i)) #define cloog_int_swap(i,j) do { \ cloog_int_t _t = i; \ i = j; \ j = _t; \ } while (0) #define cloog_int_add(r,i,j) ((r) = (i) + (j)) #define cloog_int_add_ui(r,i,j) ((r) = (i) + (j)) #define cloog_int_sub(r,i,j) ((r) = (i) - (j)) #define cloog_int_sub_ui(r,i,j) ((r) = (i) - (j)) #define cloog_int_mul(r,i,j) ((r) = (i) * (j)) #define cloog_int_addmul(r,i,j) ((r) += (i) * (j)) #define cloog_int_divexact(r,i,j) ((r) = (i) / (j)) #define cloog_int_tdiv_q(r,i,j) ((r) = (i) / (j)) #define cloog_int_fdiv_q(r,i,j) do { \ assert((j) > 0); \ (r) = (i) >= 0 ? (i) / (j) : \ -((-(i)+(j)-1)/(j)); \ } while (0) #define cloog_int_fdiv_r(r,i,j) do { \ assert((j) > 0); \ (r) = (i) >= 0 ? (i) % (j) : \ (j)-1 - ((-(i)+(j)-1)%(j)); \ } while (0) #define cloog_int_cdiv_q(r,i,j) do { \ assert((j) > 0); \ (r) = (i) >= 0 ? \ ((i)+(j)-1) / (j) : \ -(-(i)/(j)); \ } while (0) cloog_int_t cloog_gcd(cloog_int_t a, cloog_int_t b); #define cloog_int_gcd(r,i,j) (r) = cloog_gcd(i,j) #define cloog_int_sgn(i) ((i) > 0 ? 1 : (i) < 0 ? -1 : 0) #define cloog_int_cmp(i,j) (i - j) #define cloog_int_abs_cmp(i,j) (((i) > 0 ? (i) : -(i)) - ((j) > 0 ? (j) : -(j))) #define cloog_int_cmp_si(i,si) (i - si) #define cloog_int_eq(i,j) ((i) == (j)) #define cloog_int_ne(i,j) ((i) != (j)) #define cloog_int_gt(i,j) ((i) > (j)) #define cloog_int_is_divisible_by(i,j) ((i) % (j) == 0) #define cloog_int_read(i,s) sscanf(s, CLOOG_INT_FORMAT, &i) #define cloog_int_print(out,i) fprintf(out, CLOOG_INT_FORMAT, i) #endif #define cloog_int_is_pos(i) (cloog_int_sgn(i) > 0) #define cloog_int_is_neg(i) (cloog_int_sgn(i) < 0) #define cloog_int_is_zero(i) (cloog_int_sgn(i) == 0) #define cloog_int_is_one(i) (cloog_int_cmp_si(i,1) == 0) #define cloog_int_is_neg_one(i) (cloog_int_cmp_si(i,-1) == 0) #define cloog_int_gt_si(i,si) (cloog_int_cmp_si(i,si) > 0) #define cloog_int_ne_si(i,j) (cloog_int_cmp_si(i,j) != 0) #define cloog_int_le(i,j) (cloog_int_cmp(i,j) <= 0) #define cloog_int_abs_ne(i,j) (cloog_int_abs_cmp(i,j) != 0) #define cloog_int_abs_ge(i,j) (cloog_int_abs_cmp(i,j) >= 0) #define cloog_int_abs_lt(i,j) (cloog_int_abs_cmp(i,j) < 0) struct cloog_vec { unsigned size; cloog_int_t *p; }; struct cloog_vec *cloog_vec_alloc(unsigned size); void cloog_vec_free(struct cloog_vec *vec); int cloog_seq_first_non_zero(cloog_int_t *p, unsigned len); void cloog_seq_cpy(cloog_int_t *dst, cloog_int_t *src, unsigned len); void cloog_seq_neg(cloog_int_t *dst, cloog_int_t *src, unsigned len); void cloog_seq_combine(cloog_int_t *dst, cloog_int_t m1, cloog_int_t *src1, cloog_int_t m2, cloog_int_t *src2, unsigned len); void cloog_seq_gcd(cloog_int_t *p, unsigned len, cloog_int_t *gcd); int cloog_seq_is_neg(cloog_int_t *p1, cloog_int_t *p2, unsigned len); void cloog_seq_normalize(cloog_int_t *p, unsigned len); #if defined(__cplusplus) } #endif #endif cloog-parma-0.16.1/cloog-core/include/cloog/block.h0000644000175000017500000001351611321074700016744 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** block.h ** **-------------------------------------------------------------------** ** First version: June 11th 2005 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ #ifndef CLOOG_BLOCK_H #define CLOOG_BLOCK_H #if defined(__cplusplus) extern "C" { #endif /** * CloogBlock structure: * this structure contains the informations of a statement block. It may happen * that users are lazy enough to ask CLooG to generate the code for statements * with exactly the same domain/scattering pair (possibly differing by only one * constant) instead of giving only one pair. CLooG provides them a last chance * to save time and memory by trying to find these blocks itself. The block * contains the statement list and the common informations of the statements. * This structure contains also the number of existing active references to it: * because CLooG uses many copies of blocks there is no need to actually copy * these blocks but just to return a pointer to them and to increment the number * of active references. Each time a CloogBlock will be freed, we will decrement * the active reference counter and actually free it if its value is zero. */ struct cloogblock { CloogState *state; /**< State. */ CloogStatement * statement ; /**< The list of statements in the block. */ int nb_scaldims ; /**< Number of scalar dimensions. */ cloog_int_t *scaldims; /**< Scalar dimension values. */ int depth ; /**< Original block depth (outer loop number).*/ int references ; /**< Number of references to this structure. */ void * usr; /**< User field, for library user convenience. * This pointer is not freed when the * CloogBlock structure is freed. */ } ; typedef struct cloogblock CloogBlock ; /** * CloogBlockList structure: * this structure reprensents a node of a linked list of CloogBlock structures. */ struct cloogblocklist { CloogBlock * block ; /**< An element of the list. */ struct cloogblocklist * next ;/**< Pointer to the next element of the list.*/ } ; typedef struct cloogblocklist CloogBlockList ; /****************************************************************************** * Structure display function * ******************************************************************************/ void cloog_block_print_structure(FILE *, CloogBlock *, int) ; void cloog_block_print(FILE *, CloogBlock *) ; void cloog_block_list_print(FILE *, CloogBlockList *) ; /****************************************************************************** * Memory deallocation function * ******************************************************************************/ void cloog_block_free(CloogBlock *) ; void cloog_block_list_free(CloogBlockList *) ; /****************************************************************************** * Processing functions * ******************************************************************************/ CloogBlock * cloog_block_malloc(CloogState *state); CloogBlock * cloog_block_alloc(CloogStatement *statement, int nb_scaldims, cloog_int_t *scaldims, int depth); CloogBlockList * cloog_block_list_malloc(void); CloogBlockList * cloog_block_list_alloc(CloogBlock *) ; CloogBlock * cloog_block_copy(CloogBlock * block) ; void cloog_block_merge(CloogBlock *, CloogBlock *) ; #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/isl/0000755000175000017500000000000011511607624016352 500000000000000cloog-parma-0.16.1/cloog-core/include/cloog/isl/domain.h0000644000175000017500000000127411477113144017716 00000000000000#ifndef CLOOG_ISL_DOMAIN_H #define CLOOG_ISL_DOMAIN_H #include #include #include #include #if defined(__cplusplus) extern "C" { #endif struct cloogdomain { }; struct cloogscattering { }; CloogDomain *cloog_domain_from_isl_set(struct isl_set *set); CloogScattering *cloog_scattering_from_isl_map(struct isl_map *map); CloogUnionDomain *cloog_union_domain_from_isl_union_map( __isl_take isl_union_map *umap); CloogUnionDomain *cloog_union_domain_from_isl_union_set( __isl_take isl_union_set *uset); __isl_give isl_set *isl_set_from_cloog_domain(CloogDomain *domain); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/isl/cloog.h0000644000175000017500000000053611467775010017557 00000000000000#ifndef CLOOG_ISL_H #define CLOOG_ISL_H #ifndef CLOOG_INT_GMP #define CLOOG_INT_GMP #endif #include #include #include #if defined(__cplusplus) extern "C" { #endif CloogState *cloog_isl_state_malloc(struct isl_ctx *ctx); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/isl/backend.h0000644000175000017500000000027211477112645020040 00000000000000#ifndef CLOOG_ISL_BACKEND_H #define CLOOG_ISL_BACKEND_H #include struct cloogbackend { struct isl_ctx *ctx; unsigned ctx_allocated : 1; }; #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/isl/constraintset.h0000644000175000017500000000112411477113144021341 00000000000000#ifndef CLOOG_ISL_CONSTRAINTSET_H #define CLOOG_ISL_CONSTRAINTSET_H #include #if defined(__cplusplus) extern "C" { #endif struct cloogconstraintset { }; struct cloogequalities { int n; unsigned total_dim; CloogConstraintSet **constraints; int *types; }; struct cloogconstraint { struct isl_constraint isl; }; CloogConstraintSet *cloog_constraint_set_from_isl_basic_set(struct isl_basic_set *bset); CloogConstraint *cloog_constraint_from_isl_constraint(struct isl_constraint *constraint); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/union_domain.h0000644000175000017500000000300711467774607020353 00000000000000#ifndef CLOOG_UNION_DOMAIN_H #define CLOOG_UNION_DOMAIN_H #if defined(__cplusplus) extern "C" { #endif /** * CloogNamedDomainList structure: * this structure reprensents a node of a linked list of CloogDomain structures. */ struct cloognameddomainlist { CloogDomain *domain; /**< An element of the list. */ CloogScattering *scattering; /**< Scattering function for domain. */ char *name; /**< Name of the domain. */ void *usr; /**< A pointer for library user's convenience. */ struct cloognameddomainlist *next;/**< Pointer to the next element of the list.*/ }; typedef struct cloognameddomainlist CloogNamedDomainList; /** * A structure representing the input domains and scattering functions. */ struct clooguniondomain { int n_name[3]; char **name[3]; CloogNamedDomainList *domain; CloogNamedDomainList **next_domain; }; typedef struct clooguniondomain CloogUnionDomain; enum cloog_dim_type { CLOOG_PARAM, CLOOG_ITER, CLOOG_SCAT }; CloogUnionDomain *cloog_union_domain_read(FILE *file, int nb_par, CloogOptions *options); CloogUnionDomain *cloog_union_domain_alloc(int nb_par); CloogUnionDomain *cloog_union_domain_add_domain(CloogUnionDomain *ud, const char *name, CloogDomain *domain, CloogScattering *scattering, void *usr); CloogUnionDomain *cloog_union_domain_set_name(CloogUnionDomain *ud, enum cloog_dim_type type, int index, const char *name); void cloog_union_domain_free(CloogUnionDomain *ud); #if defined(__cplusplus) } #endif #endif cloog-parma-0.16.1/cloog-core/include/cloog/input.h0000644000175000017500000000077211467774607017041 00000000000000#ifndef CLOOG_INPUT_H #define CLOOG_INPUT_H #if defined(__cplusplus) extern "C" { #endif struct clooginput { CloogDomain *context; CloogUnionDomain *ud; }; typedef struct clooginput CloogInput; CloogInput *cloog_input_read(FILE *file, CloogOptions *options); CloogInput *cloog_input_alloc(CloogDomain *context, CloogUnionDomain *ud); void cloog_input_free(CloogInput *input); void cloog_input_dump_cloog(FILE *file, CloogInput *input, CloogOptions *opt); #if defined(__cplusplus) } #endif #endif cloog-parma-0.16.1/cloog-core/include/cloog/matrix/0000755000175000017500000000000011511607624017067 500000000000000cloog-parma-0.16.1/cloog-core/include/cloog/matrix/constraintset.h0000644000175000017500000000072111322627641022061 00000000000000#ifndef CLOOG_MATRIX_CONSTRAINTSET_H #define CLOOG_MATRIX_CONSTRAINTSET_H #if defined(__cplusplus) extern "C" { #endif struct cloogconstraintset { CloogMatrix M; }; struct cloogequalities { CloogConstraintSet *constraints; int *types; }; struct cloogconstraint { CloogConstraintSet *set; cloog_int_t **line; }; CloogConstraintSet *cloog_constraint_set_from_cloog_matrix(CloogMatrix *M); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/version.h.in0000644000175000017500000000460111470010453017737 00000000000000/****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ #ifndef CLOOG_VERSION_H #define CLOOG_VERSION_H #if defined(__cplusplus) extern "C" { #endif #define CLOOG_VERSION_MAJOR @VERSION_MAJOR@ #define CLOOG_VERSION_MINOR @VERSION_MINOR@ #define CLOOG_VERSION_REVISION @VERSION_REVISION@ const char *cloog_version(void); int cloog_version_major(void); int cloog_version_minor(void); int cloog_version_revision(void); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/program.h0000644000175000017500000001317111467774607017346 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** program.h ** **-------------------------------------------------------------------** ** First version: october 25th 2001 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ #ifndef CLOOG_PROGRAM_H #define CLOOG_PROGRAM_H #if defined(__cplusplus) extern "C" { #endif # define MAX_STRING 1024 # define MEGA 1000000 /* One million. */ /** * CloogProgram structure: * this structure contains all the informations of a program generated or to be * generated. */ struct cloogprogram { /* Basic program description fields. */ char language ; /**< The language of the program. */ int nb_scattdims ; /**< Scattering dimension number. */ CloogDomain * context ; /**< The context of the program. */ CloogLoop * loop ; /**< The loops of the program. */ CloogNames * names ; /**< Iterators and parameters names. */ CloogBlockList * blocklist ; /**< The statement block list. */ /* Internal service fields, filled up by cloog_program_scatter function. */ int * scaldims ; /**< Boolean array saying whether a given * scattering dimension is scalar or not. */ /* Library user reserved field. */ void * usr; /**< User field, for library user convenience. * This pointer is not freed when the * CloogProgram structure is freed. */ } ; typedef struct cloogprogram CloogProgram ; /****************************************************************************** * Structure display function * ******************************************************************************/ void cloog_program_print_structure(FILE *, CloogProgram *, int) ; void cloog_program_print(FILE *, CloogProgram *) ; void cloog_program_pprint(FILE *, CloogProgram *, CloogOptions *) ; void cloog_program_dump_cloog(FILE *, CloogProgram *, CloogScatteringList *); /****************************************************************************** * Memory deallocation function * ******************************************************************************/ void cloog_program_free(CloogProgram *) ; /****************************************************************************** * Reading function * ******************************************************************************/ CloogProgram * cloog_program_read(FILE *, CloogOptions *) ; /****************************************************************************** * Processing functions * ******************************************************************************/ CloogProgram * cloog_program_malloc(void); CloogProgram * cloog_program_alloc(CloogDomain *context, CloogUnionDomain *ud, CloogOptions *options); CloogProgram * cloog_program_generate(CloogProgram *, CloogOptions *) ; void cloog_program_block(CloogProgram *program, CloogScatteringList *scattering, CloogOptions *options); void cloog_program_extract_scalars(CloogProgram *program, CloogScatteringList *scattering, CloogOptions *options); void cloog_program_scatter(CloogProgram *program, CloogScatteringList *scattering, CloogOptions *options); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/pprint.h0000644000175000017500000000625411321074700017167 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** pprint.h ** **-------------------------------------------------------------------** ** First version: october 26th 2001 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ #ifndef CLOOG_PPRINT_H #define CLOOG_PPRINT_H #if defined(__cplusplus) extern "C" { #endif # define MAX_STRING_VAL 32 # define INDENT_STEP 2 # define EQTYPE_NONE 0 # define EQTYPE_CONSTANT 1 # define EQTYPE_PUREITEM 2 # define EQTYPE_EXAFFINE 3 # define LANGUAGE_C 0 # define LANGUAGE_FORTRAN 1 /****************************************************************************** * Structure display function * ******************************************************************************/ void clast_pprint(FILE *foo, struct clast_stmt *root, int indent, CloogOptions *options); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/matrix.h0000644000175000017500000000426511477123124017166 00000000000000#ifndef CLOOG_MATRIX_H #define CLOOG_MATRIX_H #if defined(__cplusplus) extern "C" { #endif /* The CloogMatrix structure is equivalent to the PolyLib Matrix data structure * (see Wil93). This structure is devoted to represent a set of constraints. * * The whole matrix is stored in memory row after row at the p_Init address. p * is an array of pointers where p[i] points to the first element of the i^{th * row. NbRows and NbColumns are respectively the number of rows and columns of * the matrix. Each row corresponds to a constraint. The first element of each * row is an equality/inequality tag. The constraint is an equality p(x) = 0 if * the first element is 0, but it is an inequality p(x) \geq 0 if the first * element is 1. The next elements are the unknown coefficients, followed by * the parameter coefficients, then the constant term. For instance, the * following three constraints: * * -i + m = 0 * -j + n >= 0 * i + j - k >= 0 * * would be represented by the following rows: * * # eq/in i j k m n cst * 0 0 -1 0 1 0 0 * 1 -1 0 0 0 1 0 * 1 1 1 -1 0 0 0 * * To be able to provide different precision version (CLooG supports 32 bits, * 64 bits and arbitrary precision through the GMP library), the cloog_int_t * type depends on the configuration options (it may be long int for 32 bits * version, long long int for 64 bits version, and mpz_t for multiple precision * version). */ struct cloogmatrix { unsigned NbRows; /* Number of rows. */ unsigned NbColumns; /* Number of columns. */ cloog_int_t ** p; /* Array of pointers to the matrix rows. */ cloog_int_t * p_Init; /* Matrix rows contiguously in memory. */ }; typedef struct cloogmatrix CloogMatrix; CloogMatrix *cloog_matrix_alloc (unsigned, unsigned); void cloog_matrix_free (CloogMatrix *); void cloog_matrix_print_structure(FILE *file, CloogMatrix *M, const char *prefix, const char *suffix); CloogMatrix *cloog_matrix_read(FILE *input); CloogMatrix *cloog_matrix_read_of_size(FILE *input, unsigned n_row, unsigned n_col); void cloog_matrix_print(FILE*, CloogMatrix*); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/include/cloog/state.h0000644000175000017500000000140411321074700016763 00000000000000#ifndef CLOOG_STATE_H #define CLOOG_STATE_H struct cloogbackend; typedef struct cloogbackend CloogBackend; #if defined(__cplusplus) extern "C" { #endif struct cloogstate { CloogBackend *backend; cloog_int_t zero; cloog_int_t one; cloog_int_t negone; int block_allocated; int block_freed; int block_max; int domain_allocated; int domain_freed; int domain_max; int loop_allocated; int loop_freed; int loop_max; int statement_allocated; int statement_freed; int statement_max; }; typedef struct cloogstate CloogState; CloogState *cloog_core_state_malloc(void); CloogState *cloog_state_malloc(void); void cloog_core_state_free(CloogState *state); void cloog_state_free(CloogState *state); #if defined(__cplusplus) } #endif #endif cloog-parma-0.16.1/cloog-core/include/cloog/loop.h0000644000175000017500000001422411477112645016635 00000000000000 /**-------------------------------------------------------------------** ** CLooG ** **-------------------------------------------------------------------** ** loop.h ** **-------------------------------------------------------------------** ** First version: october 26th 2001 ** **-------------------------------------------------------------------**/ /****************************************************************************** * CLooG : the Chunky Loop Generator (experimental) * ****************************************************************************** * * * Copyright (C) 2001-2005 Cedric Bastoul * * * * This library is free software; you can redistribute it and/or * * modify it under the terms of the GNU Lesser General Public * * License as published by the Free Software Foundation; either * * version 2.1 of the License, or (at your option) any later version. * * * * This library is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * * Lesser General Public License for more details. * * * * You should have received a copy of the GNU Lesser General Public * * License along with this library; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, * * Boston, MA 02110-1301 USA * * * * CLooG, the Chunky Loop Generator * * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * * * ******************************************************************************/ #ifndef CLOOG_LOOP_H #define CLOOG_LOOP_H #if defined(__cplusplus) extern "C" { #endif /** * CloogLoop structure: * this structure contains all the informations of a loop generated or to be * generated. * - if the loop has not been processed yet (it is not a result of a call to * cloog_loop_generate), the domain is the whole iteration domain of a given * block, the stride is 1 (i.e. there is no stride), block is necessarily not * NULL and inner is NULL. * - if the loop comes as a result of a cloog_loop_generate call, the domain * describes the constraints (guards and loop bounds) for only one dimension * (the last one: outer dimensions being considered as parameters), the stride * may differ from one (this means that on the considered dimension, a step of * 'stride' must be considered between integral point, the first integral * point to be considered being the lower bound of the loop), inner may differ * from NULL, meaning that there are further dimensions and nesting levels in * the loop. */ struct cloogloop { CloogState *state; /**< State. */ CloogDomain * domain ; /**< The iteration domain. */ CloogDomain *unsimplified; /**< Unsimplified version of domain. */ int otl; /**< Loop is executed at most once. */ CloogStride *stride; /**< If not NULL, stride information on iterator * (filled only after loop generation). */ CloogBlock * block ; /**< The included statement block, NULL if none.*/ void * usr; /**< User field, for library user convenience. * This pointer is not freed when the * CloogLoop structure is freed. */ struct cloogloop * inner ; /**< Loops at the next level. */ struct cloogloop * next ; /**< Next loop at the same level. */ } ; typedef struct cloogloop CloogLoop ; /****************************************************************************** * Structure display function * ******************************************************************************/ void cloog_loop_print_structure(FILE *, CloogLoop *, int) ; void cloog_loop_print(FILE *, CloogLoop *) ; /****************************************************************************** * Memory deallocation function * ******************************************************************************/ void cloog_loop_free(CloogLoop *) ; /****************************************************************************** * Reading functions * ******************************************************************************/ CloogLoop *cloog_loop_from_domain(CloogState *state, CloogDomain *domain, int number); CloogLoop * cloog_loop_read(CloogState *state, FILE * foo, int number, int nb_parameters); /****************************************************************************** * Processing functions * ******************************************************************************/ CloogLoop * cloog_loop_block(CloogLoop *loop, int *scaldims, int nb_scattdims); CloogLoop * cloog_loop_malloc(CloogState *state); CloogLoop *cloog_loop_generate(CloogLoop *loop, CloogDomain *context, int level, int scalar, int *scaldims, int nb_scattdims, CloogOptions *options); CloogLoop *cloog_loop_simplify(CloogLoop *loop, CloogDomain *context, int level, int nb_scattdims, CloogOptions *options); void cloog_loop_scatter(CloogLoop *, CloogScattering *); #if defined(__cplusplus) } #endif #endif /* define _H */ cloog-parma-0.16.1/cloog-core/doc/0000755000175000017500000000000011511607626013604 500000000000000cloog-parma-0.16.1/cloog-core/doc/Makefile.am0000644000175000017500000000025511321074700015550 00000000000000if HAVE_TEXI2DVI cloog.pdf: cloog.texi gitversion.texi $(TEXI2DVI) --pdf $< endif gitversion.texi: @GIT_INDEX@ echo '@set VERSION '`$(top_builddir)/genversion.sh`'' > $@ cloog-parma-0.16.1/cloog-core/doc/TODO0000644000175000017500000000453711321074700014213 00000000000000# # /**-------------------------------------------------------------------** # ** CLooG ** # **-------------------------------------------------------------------** # ** The Chunky Loop Generator ** # **-------------------------------------------------------------------** # ** First version of this file: april 29th 2005 ** # **-------------------------------------------------------------------**/ # This file is mainly for the authors, in order to put ideas, requests, and work-in-progress notes. # **-------------------------------------------------------------------** # ** I. Requested features ** # **-------------------------------------------------------------------**/ 1. GMP !!! (LooPo Team). DOOOOOOOOOOOOOOOOOOOOOOOOONE !!!!!!!!!!!!!!!!! 2. Set the statement prefix (Michael Classen). 3. Do not fuse the iterators/scattering dimension names lists (Hadda Cheroun). DOOOOOOOOOOOOOOOOOOOOOOOOONE !!!!!!!!!!!!!!!!! 4. Exploit URUK transformation properties (WRAP-IT Team). DOOOOOOOOOOOOOOOOOOOOOOOOONE !!!!!!!!!!!!!!!!! # **-------------------------------------------------------------------** # ** II. Known bugs ** # **-------------------------------------------------------------------**/ 1. Lead to segfault : cloog ./test/daegon_lu_osp.cloog -f 3 -l 6 -nobacktrack -override (while every other -l values do not !) DOOOOOOOOOOOOOOOOOOOOOOOOONE !!!!!!!!!!!!!!!!! 2. -strides gives bad result for a dreamup or interpolation-duration file in test/non_optimal (I don't remember which one) 3. Various configure problems (check Sylvain Girbal mails in the mailbox !). DOOOOOOOOOOOOOOOOOOOOOOOOONE !!!!!!!!!!!!!!!!! 4. With GMP, try test/emploi.cloog (with valgrind): a memory leak... DOOOOOOOOOOOOOOOOOOOOOOOOONE !!!!!!!!!!!!!!!!! 5. With GMP, option -cpp do not write all the statement internal stuff (e.g., S1(,,) ; instead of S1(i,j,k) ;). DOOOOOOOOOOOOOOOOOOOOOOOOONE !!!!!!!!!!!!!!!!! # **-------------------------------------------------------------------** # ** III. Various notes ** # **-------------------------------------------------------------------**/ Kill the cat. cloog-parma-0.16.1/cloog-core/doc/images/0000755000175000017500000000000011321074700015037 500000000000000cloog-parma-0.16.1/cloog-core/doc/images/basic.pdf0000644000175000017500000011621111321074700016535 00000000000000%PDF-1.3 %Çì¢ 6 0 obj <> stream xœÕšÁŽÜ6 †ï~ Û3‘,Ù²€¤‡½ô–ì==m4ÁN€E}ýŠüIŠÊ äæA€ eŠä7’M‰²_æpŽs òÿÓez™^¿Ïóç¦p.¹ÎŸ§8™jó’S˜/,Öæç)­QÅ%éð<}z52+ëÆÚ‹ˆÛzŽyŸcIëy_çš×&“‡&¥Ý—Š Y0u:óN›@(‚7 æ[ä2Î9ãÀWæŠêMê0šw€ÙïÍû¬oû8ëÛ&³N‚›u¾ž»ËäHf½¤qÖËêfnÖ©)$ÉÍ:¼Ù½yhJLIG,j:”wx‰Ëž‘¯æžŒX¶\Ä”’WŒ’2ŽQJ6RJÎF ¦ÙH©úP™‘r‰Q!! äªAò¶”KÈ–×—°tL4Œ“›R† ¥‚›‰bñH’‡2£dQ)óÚ)s2Ê:eÚ%7:%5-¤†œ)¥Eñ&Ååá!y(w{t *åޥس³”­S÷ð Ñ)‹{|Ô0äL)w÷ìpx3Ùýó}|HÊmãQ(Sì·mã–b߸¥è6nh%75¤1 ;J "ŠêMüîòøvWÊNCdll2hCYÂNæ ·s“ïD.ãŒÓ†B|ÕaÆY±»[çê÷åÁ1-_*'d ªi‚q8§&VpÊQ4À ¹Œ¹ˆqૹŠâMÊ0œw€i+¹rB– º€1¯l©K‹7Y:'ä2®’Œ_uX%Y𥯒n8ï“w˜\±KYYj­ë¹zà‚_Ê = `Ÿ¨ (+ —ñð€«øªÃá«31.l2ﳓRW°¬u…PT? ²Baa%Á›+DNc•Æõû’ÂBƒ@Q½IÝ|ùs˜ýîN–5¨ÎãðT §Î!+xvÕ„ 9ÓÎ8ìK85«31.ww³çNpB– –/‰œ–a X¼Éb¾ENcR"ø§aP’KJ6œ÷€ÙWvádYƒêjÆ8¼Ì §®¬à•QM¸!œÓ¸d2ûN Eñ&eÎ;À´»³Í„M{›¢aÚÛüÉT±Ô§]‹7YÄ—L{ó1L{  ¾HêÓÂ×>íâKï΃cZîN‘󔇉pj†‚r™ Q,)iP3‰Q}Ó‚@±:ãê¹óà˜¶²+'ä<,™À¡eN9eýEð&¡sB®Ã’ ö%œŠêMê0œw€i'›Ê 9°ŒÃoò€©‡¸ž»ä¢°P E ScDÊÓ°úÙæ±)û`â§ÈaÄL»`’à0ùzî“aæuÄÌÅaRÃaRS¢¯Þl0MÙtÁ„Æ'(íz׃Ó(‚7 æ[äu|‚‡} §¢z“:Œæ`öeH8!‡1¿3çdáÔdvMéj‚Fêù]ƒª ã°/áÔ P¬ÎĸÜ2tlL;ç”BXdTµv¼Gõ.ÎýPÛ Á›ô×€"—ñ ‘ê]ñU‡3D(ª7ÞVÞ&çjŸN@ÔÙµ:/Gp"›û§)»O'Ðè'²Ù}:¡F8x]û§DîÓ ÃÂ`²K™±»WªvTÊÕDéïTíp ÷R )3Š{­j&\M°/)3v÷NUP’;íÕÐ`Zq©eä4Ÿ]Þê@;e›ˆjx[qÁ n*ný4Ù¤í%Ú.wO½Ê\ßÝ…ú{_ÚþŠ¿n–ÿž.óoÓë÷‘²è9ÏŸ&|ýç|Þæµ]¹L?ÅŸ¿RrÚæÇÓO µšæÔ|R›µ§\Ï+G¤K_éRóšÌkÛŸiËÜþP‡/oÞ~“>=ò‰²á©mU¤ZÖe†S68µ}å™×#ét¹UcÓbÎ`ùõí~»òæíå*ø²0ß•×SJ…aEñº%¡kN¿ý²œØð÷ÇùÝDÿþÍ½ß endstream endobj 7 0 obj 2027 endobj 5 0 obj <> /Contents 6 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 5 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 4 0 obj <> endobj 12 0 obj <> endobj 11 0 obj <>stream xœ´{X×òïì i;‰‰b°‰Äq‹àØqÁW\0àƘ¦w!$@t8ôŽÑ{ïݽ÷ÞâÄ%N·“8íˆ,¹÷­Iœ›Ü÷½ÿ÷ý_b´»g÷ÌÌ™ùM;Z Á‚ ^³öôq Z¸ËÏÇÑWu½@9ƒP¾C*ßå01-¿ÿ¦Ï},J9“ËßâÉÔw´¹o¾3¥úõw¦L~ƒØAp>Çð<‡_áßÄ$B›³‰…Ärb ±‰°$ì 7âDHˆ¹D)ÑHtÃÄ)â*ñ1ñ”xAüF©IN%uÈ÷ÈIr¹žÜLî"íH'Ò‹ &Åd,™Lf“Åd5ÙBö’Ãä)òy‰¼M~B~E¾ ãp8“9os„œ¹œ¥œUœœmœÝ'Ž'€#æÄr'—SÊ©å4rº8œ£œsœœœ/9Ï9¿r~×àiLј¦¡§1[c±†±ÆMÛ4vk8ixhhˆ4d‰™Eeõ­}G5Nk\Ѹ¡ñ‰Æßkü¢ñ/.ÅÕæ¾ÃÅÏ]Ê]ÅÝÀµàZq÷s]¹^Ü`®”›ÀÍæs«¹Ü.îaîî îmîCî7ÜŸ¸£<’7‰÷o:o&oψ·–·™·ƒ·›çÀóäò¢x±¼d^&¯€WÊ«âµóx‡y'yWyxŸñ¾ãýÌc(‚šL½Nñ©ÔjeL­¦Ì¨” ur§) C%Q¹TUEµRƒÔIêu•ú˜zL}N=£~¤”Ô¿éIôë4ŸÖ£çÓËéè ô6Úš¶£hOÚŸ£#éx:•Ρåt]O·Ñ½ô}’¾@_§ïÑè/éïè_è1Mަ–曚:šBÍÙš 5—j®Ô\§¹Ys§æÍš®šÞšAšbM™f’f†f¾f©fµf“f§æ€æQÍ3š—5oi>ÐüLóÍšJÍkñ´&k½¥5Cë}­yZúZFZ«µÌµ,´¬´lµµ<´ü´Bµ¤ZqZH+[«H«\«N«U«GkXë„Öy­kZwµj}¡õ\ëg-f9IsÒ“¦MLšµÞÏ?<ÐÓÝ#Xo®Í®=óæÏ_ð爉‰‰žSøÄ=3× Ow_½ÙìI¨«·Ÿ¿«oðJ½õìÓÞÞžÎzîÞáþAzŽ..®.ªi»½]½ô6xz{úûû…êÍ]?OÏP_ß`!ûa¸Ro{ˆk ß=O_7O_Ïàp=G_½>®îŽz>Ž.®*f>žÁázKõ=}ÿ˜½ÝÓÇ)$HoÜõ¶û™èYèíruñv üûó@?3Wï`Ç@GOgGoo×  ×€Gï Ç`O?_÷@WÇ`×ÀñÁ Aüƒ=½]<ÝÜ|ý‚Çoyû‰]}Ý]Ý<= ôõ—¼1Ð7~9b`²ÕÙ¥íèìÌêæå ‰Ñ&'Võ…ñò—'FËÌœý|_^.[2AÝp‚ºÁ_wÇÀoÇà V&/oêO7Þçìèâãæí*ÚôçéC#›¿“Ñ7Znæèç8q¹|Ù„K7:²ÖfBª%†;|ÿ×À`‚»¡…£sHðÄ“ ñŒm^ od4Áj¹é«–-sÿ Ã¥êã¥zZòRƒ¥2Z¼¢9vÀv\‚Í[&X›Øø¹ûùºzmü›2Œ& µ|BœeË7»øÿÅ^0Z²t‚ã‹¿™•ýßö™›_]ƒ‰þÆ¿ƒÀÈÄêU=-Ÿd™‘•³« ë@ŽÜÿXøë]j¡bô’«¡ã8¯ÍÑ®‰ÁÆÿ\…±¾ÕŸË7U¾å&¦™¼Ì8è?D˜PÎ’å»^ÚpÙ„K6«5<ÁÞÐ&Ð“ÅØKÎV¯¬ßüU”é›þeâ2“õ¯2X:¡•%F»^f¸|û+èOØÅd‰M°§·ËÄtcCkÖÑÌÿSFþº\ßù/Ü&°ºÄx×ßÍk2}C£íÛ„YL&¤0^b=þ€ù_?áÇË ÖÿÅÑ'à«@& áà ΰta p@ ~àk`:¼lOþà ka¼\@¸)¼o¤î°Þ…©@A$؃´†(O8Bx 4!RAié ™YÙ9¹ yá&œƒ#ÐÅP á\‚è†*(‡GPç¡  à Ü‹pz¡ j >†Ëp ú *à3¸ ×á8ôC;”À=¸'@-P à*œ‚Ahƒ¸× ³!”Ám¶ÿ‚ȇÇpÎÂ0t‚>…"8 Gá |O‰¶ïO%Òˆt"ƒÈ$²ˆl"‡È%òˆ|¢€($Š9QL”¥„‚(#ʉ ¢’¨"ª‰¢–¨#ꉢ‘h"š‰¢•h#Ú‰¢“è"º‰¢—è#ú‰b"†‰â0q„8J#Ž'ˆ“Ä)â4q†8Kœ#Έ‹Ä%â2q…¸J\#®7ˆ›Ä-â6q‡¸KÜ#îˆOˆO‰‡Ä#â1ñ„øŒxJ|N|A|I|E|M|C|K<#žßß?/ˆ‰ŸˆŸ‰_ˆ_ L(‰Qâ7‚!ƈ߉ÿ&$H’ä$—ä‘I“š¤9‰|œLN!_'ß ß$§’Úä[$Ÿ|›œFêºätrùù.) …¤ùù>9“ü€œEÎ&çsÉyä‡ä|r¹\D.&õIÒ\B.%—‘ËI#Ò˜4!W+ÉÈUäjr ¹–4%בëI3ÒœÜ@n$7‘›É-äVÒ‚ÜFn'w;IKriEZ“6änr¹—ÜGÚ’vä~Òž<@:IGÒ‰t&]HWÒt'=HOòéEz“>¤/éGú“d D“!d(FŠÈpRLFRJF’Qd4)#cÈX2ŽŒ'ÈD2‰L&SHD¦’id:™Af’Yd6™Cæ’yd>Y@’E¤œ,&KÈRRA–‘ådYIV‘Õd YKÖ‘õdÙH6‘Íd ÙJ¶‘ídÙIv‘ÝdÙKö‘ýä9H‘Ãäy˜†×Áë—àõðF;¼© oºÁ›åðæ¿aj>hó@{;h?·X¯?üiÀ¯·ÃÛaÚJ˜v¦aÐ)» »tãA÷4L_Ó£aú ˜‘Äxç¼»ÞÍÁt˜  wAz\л zßÃ{3à= x/ Þ»ïÀûIð~Ì\ 3Í`f | ¤Á¬i0Ëf5À¬c0{1Ì6„Ùµ0gÌy s~¹Â\S˜{æ*aÞ×ðáøpæo„ùõ° ´Á‚³°p-,,†…½°E}°è.,Þ‹½`q,.…Å?þ ïúQ ÿ˜‚Á0ø 瀡V€á5X²–ÂÒå°Ô–6ÂÒ§°¬–Âò¥°<–‡å¿‚Q0eƒñb0^ ÆWÀ$VÌ„'aå;°ò.|”«VÁª°ê9¬…Õ_Àšë°V¦ëÀô9¬Ó„u °þCX?fóÀLfÿs0ï °q-l¼ ›fÁ¦jØì›¿†-–°ålu‡­C`± ,|a›¶%ÂvlOeÓ쨀—açrØÙ–»Àò)ì ƒ]çÁjX]kg°ylº`÷LØ]{–ÀžfØk{•°/ö €í`{ ì\aÿTØ¿ ößûÅ`ÿ ÈÀa8ÔÃÁ%pðcpŒ'cp*ç­à\.à"9¸×Éàº\GÁ- ÜÁíKp?îçÁà <”à9‡6À¡ËàU Þ+ÀûølŸÓàûøþ~…à÷5ø/ÿUà ö@ ©$€ Ãt ‚c!DBâ!t2„öCØ*ë‘%ˆF ÜÂë@<Ä ~£ IÉ— ÝÒà =‘69QïAT9D¿Ñ­Ý2#õAÌ|ˆ‰X}ˆ­ƒØˆ[qeÏ…xˆÿ: q6$~Is!i1$OädH!!å HùR0 cʃÔtH-„Ô§úR1¤CÚcH/ Èx™&ù²ü +²¾€ìmýäXBî,È=yó ¯ò½ €„‚(\…W¡ÈŠ®AÑ}{<ä¿@ñN(þJÒ t”fBPvÊnAy ”ÿ å¿C…TtAå4¨ì„ªX¨6‚êÓPó6ÔôCí¨ýꪠ®êgC}$Ô'AýehØ w¡Ñ] ‰„¦ h~šEÐü#4AK7´nV+h½m–ÐfíÓ¡=Ús¡ƒ„Ž褠3º¶C×èÞÝ' g#ô®†ÞLè-‚>!ôµC? ýÐ/†7`@>‡Á"z†NÀð..†>ŒTÁa[8쇇àð 8²ŽÁ‘5pä2] ǬáØ8^'–É8Ñ'­àägpЧ*àÔœ–Âé8gV™'pÖ ÎÃY)œM„³™pöœÛ çžÀyw8ÿ=\ÁE>\ †‹çá’'\ ‚ËoÂå*¸"„«FpÕ®ÖõÕp­®[Á×à‚›¸Åþûn›ÃíÓpGwá®+Ü„{lâ ÷Cá~;|l?†áðÉ{ðÉ·ði <´†GsàñxÜOLáÉSøì4<µ€§­ð´>ï„/æÃ2ø’_qà«nø:¾~ _ ߔ·óáÛHxð Ásmx~¾Ûß9Â÷oÂ÷%ð}ü ?4À‹áEüh?ÀOðSüüüÜ¿XÂ/}ðëøµ°!àaPÚÁ¨Œ¶Âoá·³À,¦ÆöÀØð{üküëø÷øw/.ñÁ–6¤A>ÄéS”)DÊSŸ¼˜¦í¯¼†×ñÅ®Ò`‰ØÃÅ:ÜÑ›xë"³Z…J ]/*ºŸI+˜Vu+¾PŠÌé±”v;2—JÖ%Ð"ŠÞÊÂë¸SFÝïëV¾WFŒîVð¤Ëò#âK.ŽCÁHîëÎpŽãéí‚zQ….*“ç4§Ö¥ê(˜ã"êbR©ä9#ijT‡1`l ßKHܛȚUª ,3ÂsP%’Ë«Ûð$eé Îèrå5þØ> GE~Ä¢7+¨u™Ò"tVîd1ZXx+‹Å¨ÅŒ¥1Ê4.c+â}’P…ÖÑcRè©È8ž¥ Vgˆ+Ñ´r…3ƹE¼)£‹Ym´ãž.\Ð.RLýöNx±SÓ´[KXÕˆ¨‡ ÑÈT…{diœ¤B½+~»‡®—··´5•õ£!ÔÞå]ïSë_°¥øHay^U9­ÝZ]!o5 O1¦æ)ÿHh“ÐÚ®'ƒj-¦#›Pç`¯p§ØÍˆ¶•æ6 q· íååÙ¹rASgí WívX(d¡€”Óår<ƒž!Û)Ö•Š=cö"šðp…rWÎ|O%1ZÜR^îM¹ü ¢±€Ç(Ææq%ÊÉ‹_YÒ°Ž@Ÿã¢Ï98]yϼ­?Ÿ03¾š§â©ßþ‚xÚâo˜·„‘~ü‡§ç3ï2Ü׺¸Uu… ýŽD\cþÍà¹ë­#Êé,­Ç8ì!?“ññœ#Üb*<%%!Ú=6@¨¼@%¤Ù‰=d[źTNjÊAt{®ÌIÈèS®MþùάäÔ"kï3oÝ^ŠÉeƒ-­&4P\\”,:<,Pæ‹hcëñë˜;|ëÎÑáý»…ãðU°Ð°RÁ×OÄ;’R‹‚,!*FÂÌdBu˜¹80º8¾d<å6¥e <”ŸÊâ¤YD %I¿gÞÃÓkf…–Êdú‰,@N+(Ã4iºCãÝž‹CÏ~VSq˜ä¨[t¹LÅu* É%}Ó´û•Êh¾²’BgòÚ…EyE,í(Õ‘T”()“溣m4ó95ÆWЏÌ¯Åví§Ç¶QÚ¢‚ä;Ku; J’Ò>¥q96é"¦9£À¼Ê åŇFD…¡$I—dÙïËÙL±÷6kóm®‹C¢E Ëï:³åK×ïæ¢ïÎ> ÃKMÍ6û#] dUv°ÃzØûs„94ÞüÖijN uî4yÉý[hUŒõ)—bË&å”3S¯=Ä!§iKr•ïòsS³Q.¢[²eû…c”ö0Ú½3žSÚœPÊ[›™ÎÓØ€j=T%ëa±§õ%ÖÀ³ðæO?´r´qÞ¥âÓlB="­ÅºøÃµü†m·†×04ñ]»~ÿ®¶*â]žM˜j#” °1ßnÍAß­h:Xï{2¼#®9ù,Ïòb/Êê›|ÚìË÷ }h¸«ç~'3dÂ:Âe˜úæöi =æ^ÀÏ¿×Ò~EU~…KiUæëP~ÚA(¯c3¾ØJè ec*“ÇSš)áÊÇ*©0f ·†—;œSVR^Yß_t‰]LolóØ/¬#¥ª°™*ÛIÛ”ÿjcÍÃS®Æ<þ}Ô˜ÏX1ï00ö ›ôY OY*rÍxVöÆí÷¹g}|ãU†hcÞE´v S)âÝËa#Û‹f¾¶wc~N÷㋞C‚{6ÝˈÑr2Z±¯¯eÔRD;G±áI ¼ë¬rj]PÙTÖù#NÓ~€Ç”«øÚÏjí}r]f0oÎg4X%L½døõ©ã5C}B† œVá³ZŒ£‹(ë‚ØÔCk?P~M­c>壠ÄHYlˆèP”7òFþyae^õ¡Ñ%ZûÖ:zëѹÆC›Sðc6ûÎi">eÃÍ9UþÓ¼SŠÆŽò"™o© 8 @V‚èJEie›CÍŽm»ý턱î)+i¯O˜Ë<´.:j½*ñÊ)“ôè|t›Æ—ñ6.e —Š.<¢ÒçÃ8B¥Ïgøîã×$—¤Ô {èX^oÕ™¦¶³èê‘vø×;÷-­[ÈjñS"âÝŠÍ“¡õô˜9…ŒbekâÔùé£tIºI+C5XÍdg×âçöðáÎ} &MM ¨«°vÜÛ}» /ë©‹±@å×xß·ƒAÌLDûól‘cf\vBzr>*¡1‹¨O<²Ð˜®Ä’`^œS¢$Z)ö‹ÝÏ‚xäi‹ë²²jx ’ºš§Ý›„grÇêXaÿ(âþ,áÄÊvÞ¸~ñ÷ωë9ÙÊéü¢ôÜÔDWçF8™t í‹‹ÛÅ*/NNmLËÑI‡PM½#µY¹ ²|A±4?¾ÑUò’ºæÐ2OGß`3[á—lüßâ¹S¤;^¼Äç«ñ¡Î̺©èšï§Øünmí4mFyH©Ãï\M…±1-,;$GÇ?Ï?3€U.^dº^ߢÖõÒ!¡(<\ŸpÈ72 …¡Ð‚¨î0Z›1ÛãÈmúî{ßܾWÓsDÐÑXÒ„:йý=¦é ?KgwZ`.*FeÍ­µ9¹)Ù)éH‘\˜’…ÚQ—¼±¶¹NÞŠFP}B¥´‰fâÆ¦ó›ã>ŽFôÍ‘î–k\îËú¾Êìž¡6ÎÄ_ñO×µ4Öˆ}Š¥öÈ…¶òõ°ßáxñ[둌yéhןá`Ô’YÂgxé+ûVü|¥°­d ëÖ¥Ž/ÆÃ®=óþ€êXá0¯ÁäôVA§cSØõ Ak+áÉñ$gƒ-›¬²xÌ磧ø½h@Ôê}Ì®i>b¸h®ï,g{7§=ÁÖÈ9”¸7íôúaMômýóîî¾ÁòSl”‡õÙ¿ ëgeŽà³°¡¢V†KV²€™Å¦.S—w^…˳ÿ„ ‹mãèñØ¢Âöê ¶öºAc_<‹z€J$+Xvº²Šˆr¥AYdÅTt›\cc¾‚/óµ$âw¸Ñ¼ä䘸””D¤diÑ™lÊ É˜ñÑ®½ë­šœÙ Oj + BÞº^~{=½ +D‚Ðê˜ÊÈ“tOÛ‚Ñ/¤²ó2Ò XÍ%WƳâëjKgܽpêÚHPóŽ6!üŠ%Õ¨V·«±nàdƒ§a¥@]¶Ï8¦*Û·³±ÃËïh(éDôHµ»¹±¥ÐFY¤e¼ºn·É‹ÏAWilGýìxlÅNÇ ö|’JH÷Œ ŒµŠÐõåFP©é(ѽ9±…c^¬'ÅÇXƲó½å”e–¬€?^T*TE”G/p¤*¢ôÎQð]ÓÃò|['œ¥s¹°¡ ¹¶©FуQod{@=­}·ÛÕ¸fá í~¦^Ä»›ÌÔº—E­U ¬î3# UºßGHÃ1ÌY.^ƳS>ækß­ËÏéÂož:¸p_¨£»H`à??Y•.¤]ø|)æ”ã»Æª÷Œ3ºÿÊgrÂy½II±ò˜¬`tf–S^Ûý×3Fs0oÿºî‹¾aAßð¹Ú+èuº7øûWo§+y±Ø‹…KC‘ E¤‡gÛç`µŸ-¾æ0çÕ®=±Sxy÷®˜D~³µ«•Æ:]Px*“ž‚Ùòµ&â$k’6œÏf£y^Jz¼ .&>&Næj}Ð."1:.>% ¤Ôäôdú(sŒgÔpðôpGÕ‘fAd~h X‚tÝ$µç…¸óŠ%Éúü â>Kr½ª¸]lÍ•°ugAZaj.Ò­e ­—EoP噜ڜ›§R&¦öâP¾p°Ÿ_Ep]}eE}]p¥/›ïŽF–‡¶*·•ãùÝSëcéÓ´‡•Vlªå%GG‹ÙųmcŽ[‘[Ž:ˆć|=¼ÃÑ´²Ï kì¼ázÄ©Ú5723ÑÚ’Mûì×ZÇSö ‚yÚà Œ·‚—ª((’#6º'*â:$]±]lÍ@=½ÿã'ÖëÂ÷O9ö¡côñžŽsý="÷VA£WQ@ñNÖMÕ-÷pnWŸ½À'^p°+følåŠnäçßÍfËÑFu7.?z"=É¢V©\¸QA­ÍbatÆNø³çŸî¨«¿Sav÷§”üiÑÔsñ†‡ªR8h„ŸÀ³f‹~ü-¥}—1óÎ%ÈÐ>š‰¢_‚Tíâåƒh¯–¡v?¾ÏÌ–RCIEdO3™ÔGC{o¶w×Ö z{¹ÆTFòHY[þá"]Ö¨Ê{/¼‘µ©ÒžŸ¾3Ø5rg8ÛPd¦ÊÓä©yH·2W̺áëZ“/“ÆJ‘ɲÅåá•Òܶ§‡xuÃäé;ø}áÞÑ5ÿdj6+Ÿ÷Xƪ1{øcIZm¬RK¿‚2ɪòyÎ1 óPEx%CÒU¼x¼š;v–ϬæVñª0Q©Àlìe“©º}eiQªÂlmd”Q’ºã5I/ XýÞ,*|¨jFDÔ#u“É*W¹QN(TŽPÂkJ’ËÉ’e‰²¹LÎ,œ_”T„rÙž&?»5–3{%TGr¶làüÓ¥“Ÿ—›ž›…²Pv¡¼¿…oéÔ_ÉÊnH§ÕÁФˆ¸ÍfùQŸu Vƒts^¤p,”B{’’Ö«²|¤œ KuNc+˜V]lAa=fGzbZRZRz’nŽ,=%Ð11ñQ‘ûÊyéÞ ÇÃÌB¼[§¾öú¥sõ9ºòŒ¢4¶Ë‘3¥¼Î”üD$E±1RiÛSNÑQS‰i®Q¾±–º>±ãÕtŸrTA|þÿÞÇQbe½((þ$UŽDDÝ‹/Ash†í¶6ƹFøøÛmõ^‹Ìm•ÿ`xS\»ªï¸9×UpmQ÷ãY¸®£™‹cúÀ¯ÆÄíÖ+‚ªžÜtW•¬¤Ê³ä Ö@Ê>º™Ÿÿ@µ‡Ð%¢>QÏs¦D…Hãsªã²Öˆb¶&ñ öwìö9…áì ü¦ª·ÖÖZª%./‰‘$>(Ú߀ Ô1ÂÁâ„P¡.ªÈÏÌfmå ¡Ú ¢Ël²EÙ¢¬p}ÆNg..JÌKÎCyº¨¼ §%ƒ}j“„ªLΑUìÅ3˜ot |r¤YlºÉ),¨aª8/˜è"·Œø,¤›2s‹»Ø¦ý;ÒžôÌ2–…: ªb ‚µo/?µ •m»›ò¤lÛ@!i¤Ekáh9e‘•‡ŽÓʯY[ì»Ê6ˆÇwœN)uª¦¢Ï6|†g>˜¦ý•rû%¾X• aý(®¨OˆÙhq$¡^RÒvP±“-Óî.4µµ. «¬*/«ÈHÉLÉ&ç¦ä lº¶©¢k¸Ö×F°bmÇt¥µ¿ “zšnÑçp¶¯»üÈYAæžÒÐnÔÂ.¾µƒf³í€wBLhTÔ/&Ñ~-½Â 6kt·áÉ}ôx>:YAŒnSµýŽ"Þñ¤Òhä‡"âü£|˜9cf>þâÐÍØJ$×EŠ¢~ý F/#>-Åë¢ð¸ÄCªÚAÁJòîâÚCl¡úÇQ(ßç¦ç¨¶=kr#ì„L– S«Srjwš$uÒ¸•Bi9yÙÙÕ•½%­ˆî«ð`+-¶ŒŽÞ¥Ê½ÁrjWª¤£q&ÕÐÛ\:€è“¥þÆBÆB»bc-ãØ‡üäT@šOZd)êÔÅNÖr9³Úro€¥ ü¤g­ r@~Rc ú6—¶Wäm-Qµ²&å¤óÄ¥‡8ì3^8ºŠŸæ(ñÝ©ë«*ݲR3P6¢»rc…cÅ”÷£Cc˜Ä3ñëk¾ž³ÝÒÝ6L°[£s°íȽ‘Ŭc·ÕdÏÊjÁ”ßÌÔØûÍX…=[ïp‹= ócÞd¾Ôatð×É™1)éº1åñ 6§WUæSa¯LDLÉ‹iYÙl¢£Ç´2(_‹+Mß›ª(Ê>œÎ>’,¢'ÈÃÛb›±<)Wâ¥c+¹rÞ#\”W‡ <¨8’Ÿ{4O•_~aÞã_nî?‹ÎÐ#<‚‚=½*EmYÙ©©Y‚ì4„RÙà›ëåçfã¦jÜ{p ¿ÑÿƶnדVº i)l›™‘‘Yètzõ3aRF ŠÏ­l”—¶÷Õ·Uw¡B:3!3!>4^•A UÕ õAªJí·…ÒN<©Wy ‘@ñäëÊÉ]œQ³›üU{#7±Èjf ~¯ûªíë“§…Ã×ko²µ~›y™7ÇâÃÍ‘òÆìÔÌÔ,áEœÍÝÀ“¹†tKò=îAäáé¹{·÷6ý[tÚ÷ Öö·²Ú}‡ýÝ#ÌÁ|lÂÌÄo1Ûf9³˜ÙÃXã¥Ì\ì|m¤°ï™Y¥4á×%˃’]’íÄ;ö‹Ü}CüíÜ|äXéHK‡°®©µ¬*y¼Îûø>ï]ãàÍÊùx/¯e¤¥gw<Չɖ„ÊB‘.ãÊcF–’ŒRP²nBFRNSW\d·SnG·¡¹ôüíkW…‰³+|^•Áyl¶ô•FºÝ~x£öðˆp ¿ü$ºƒnˆö8ôíªd´ÊU|ñZÇ+mø©â´ÐxßHOݸðD1Š¦ÃŠÅŠòREyVRaB¡ ²5®ƒäÙTvRELyxí!Ýjï’¨RD—É+j$ùÙB—,¯‚€âØLá:Ev_vGVa>ª¦+%Å¡q¤_ Ð'0$$*.Q§†BUYuùYŠŒb”O—G‡…I$aQáY¡‚¼C™ÞÈŸŽ¤\ËEŇÚª¢rØš]$‰ *“ÅÛãdŠÈü8§Àˆxû˜±â(H‡EVçf*JõÍ™™9Ùy¹Ù™­¯xÆI¥ùÿOÏÀ•¬kl9ŸÁ>S7)->36;&W×§Æ·.9S\Zhæ#«ê=„·%ÆÇÇ­]pp‹ö„ŒÄ¬Œ´ÔÌ ÁÉ]í7Ï«ŒsSI6ŒÏ7Gy‡ïÁs`ÞʈL•² xcþ{Ì ››zgai <²=t/ó¡N o ªâäÉ%H·µÕUµ6(j[®EæèìY븩vÓ‚rÀ}:¥.òÈjDW—*jZýìBÆùŽoÛ/êg;ßÇ®|RRWªÚ`eô«Gs« t‡ƒ0ÓøËx‡"JZ…£K©ÆÂÂ&ÁçÕŒûï§±;WZ§Ô ÐW8ãsŽr×èZ>ÓYŠÖíe`õN†‡˜éhií’Þ}ǂαÎ÷ÆãoØ"õ­uÊ!4ÎÕBX‹ç³¥,`ƒšqb:ùGÖ³ ”tÙn¾Äæk¼øpN]™\X^ܘ۪ÚÈ:ˆX»Kö»ÄÁi¸“ÏømÆ~Œÿ%ìÏ1~سJ&åÿ=‹0Ëjÿ÷Œ{”-¡f7c—jâÊC¼ã!§Q¹Œ…¹ÃC[£#­’Ù:Ç_NYeD±µ8þä1õmfÒn!S¢jub¶%¼¼]ˆ.ÐXN¡ T™v41]Ç!Î7IõšA/õ¥7f–õv6ô£:¤ˆ¬òTøªvÃËå%=ûêV¯± °uú8E»Å¯¤7¨”[çÿ°¤ ÛöãúÚ©¨æÑ#¼à³iÚQø™R“ϼɋ½’ÔŒÚèÏZŸi/{¤ RwçH]_^ÑxԪ˔™´FŸ™”&Ê êÀÀ+c椉Q8ŠK‰OŠeD¥²í‚›½PûˆkmPwk¥|°K µÿJ³´wÆê/oj/¯ªèC%tzrZbBlB´Làåé!±G¶È#gKmž’š‰ZSêtjñdŠÉa"ùUõ²ØØø¨èH–&ÛćÍË+ªJ ›Yl”–¾[FÄŒó±è÷ Ü+<&|tƒêØrå[„Ò†­ÙÆx¼Ìœ’ØÞ+¥…Ç‘.öá1¶c_q/ò°ÇèûlVNÿôVTáÇ1l*³Äfü~¥6Ûgå£"Ý#¢:ÏCa>ûƒsMò× rwd©v¡ÐÉ^¥*¼}&Ї j6“I›SÕ¼â{¾O`€·ou`}cMu}c@?~ûÿiL ³9MØ©–¸úï|ÈiR.ç_e.ñÐø@iŒ,N–ì›ü²òÎ’ ‰w2O(d+‰Ø£ªÉ½ä”M†,¡•Ϩ„´Ø”èĨx]QŒ4!% Yº$Ó/ß7+íGöA~.>e.‰Kh3þúmfçÞOå#}±þ¥…_aL%[dg¤eª6úVªMƒ²¶±çíc­3Ìû3Úàw8-l´ Ä÷ÀÇTs±ØCøûRÊ[é-6£Sꦢ;æ·°ßUë;Ó´Ÿâ^%Å×¾ûÝÑÖž+Ó?YfC¬Ø¤¿EáûóböSLB¼7NÿðþFÌůݽôã]Ïafòç‚ðø7÷T¹#+zË[Öì=õäBEÏ©AÁð]––á)÷ÓOõwŸ¿Òë°a—ß]®‚„$„“Æk–Ýç‰NœÇ·À)çÙölzôð$•ëùÙ]ÅwrÏ zÝ Qip(<8B>¯Ä@ÀÌ}û¿Üa.ª (ÇGêk±¸f*ºŽ-«NÜÀ»*ïª>¦i;:ºãêÃûLÉ÷ã·W»ïy9¥ûXãÓænaymYA%¯>ì‡ œ®a«Lïsبëó.ܧ p"«Ò]x ›ê=É&ÕvY’‚ÚšQŠ®Ñ7±icz‡Ê.ââ]ÌlÞ—Ø¢ýjCíá|¶eÞ#*¢Ê£D²qŒXÈh0þŒˆ-N(Vm¾”•æ ªz°D5Tq|î7Œ©ó3^ÉË–r×0ëœYIÕ–`4럩˜Càw”Ãhüh9w±{›OÇÓ*K<çÖO-˜wŸ£\¥LâcåYwPn”GŸ÷´ ,âübxú‡9£ƒh±G—[½_…äº3Í´R SwýLK˜·ygÜz¢&ÑK[žP·  Úê›ëÝhµÄ¶E•vû—1“¯Ñ8…z(ëw,YN3›ñO„U³Íþñ––«Et+óŒÿ•e¹?Ú†6»»­’Œ‡èeŸ™ƒç†—ÆdJnhd”("_R%Ä‹>T¹oÓÜÁbjs9)÷óѱŒª²‘ì— © ù"Aˆ…H8 Ñ?C¤8£5=uiÔ—zÿ‚})ó<Ó%éŽÅaÙaãGˆJÂ+óK3sÂî’ÒŒ–T´;10l_œ(AŒdtPEHUuEEU^BIœB6’X޶¥È{ÄŠØÒ„|DW–”V×F”G…%ĉ„Ž’$Ï$ô<¯§±Õ§=z õ›–¤â¤nÖÊ þêìÃb ëãoòÌ-Ç™åXVÓ˧¢£¢óO`î3ûQG¦iÿÏã7ùÚ?®½24rí¨÷1Ë!!ó.憕HëQµnOKýá–:ixRRRB‚@û'ˆˆ’EDL, ¯mR”5Ÿ°îYglµo½M™ÏÇ›²TàˆÖVFo¶Ý»qÝðV<ÅHxÁ¡Ú ¹Ðû=}v»y²ÈÈÌΰl‹‹² ‹¦W…–ú{{[q¸÷ääá;‡E k/ fã|~#:ê5`Ï[Ûâ©80ÝÃËÛÍÕµòÌgKT%j ;ëë:UÍ SÁòÐíh½·Õµ¿µª²¥1¸Ì=>.%%^—ŒØ¦™ŽÏÊi®k;Ö®‚s<Ûp¤°>ð+[å]mé=óG•âyè¿÷zÊ{ÿ…¥5£Skô-.üVõ}‘1ß9ŠÝ<,­\ 1šˆ!šÍA«v‡ÃA§ÐaÔ[ÒÖzêx¦žLcG}ü3MÀØÏpWÆÕAoÙ2‡_± öèÇœÇÂ)£·"ËcpAKqö¨®jˆ/c+ X}ñ¨™¦þhÔ€­®£É¼¹jhïþöâÖVáÑcÍÐ=úŠkçA¶¿£ÉÝaWàF×ýB/g_1›nÜk:ŽÖ}Ò~DXÛUWÚÈZmå#Gü9ß…g³×Y¼MUmd•ÑÚ#*"3½g0<=f£m~t×ÅÞþ²Öfá‘£M÷ÑMT”\PZWšTúPMvW%óÓïÿÀÔ|üqò ¼Â ÁÀÙ÷íó¿ÎȤ;ˆ: ;ëžÏÓ™ÿm}^ ÒEòfßÞoŸëØ Í›ïRëZ`‡tmÑ!Ùßùßêì³{>Ï×9ÊÙé¢ýnõŽ46Ç üû7š,ß²i…Éæ+Ÿ>¼tù!Ë7øÑ-þ‘YÍßPÒ z‡è# }*ªY«¸]¦¨AŸŽ_ß®h¸ZJçS›Sâ}Ã}Ã%.hÍl yxð¦°Ë¡¥Ah͘SȪة.¼.¼6þ’ÊcÏ*›eüÔ˜1¶R²\ö4“s7«¿ ^<æà>Õ[f›ô¹Rª 3?##­4»$#môr%^BÕ ²‡bƒ#b$1Ò$GÕ†|½œú(5" ©*ú)£ŠÈ#J²û6±©üÊ}lp”3j§\Íg¼Cy# E2äƒúÛl]nuÕë°Ãã+MÕ%uå•…­¨™¾n5òѲ—¹æxÕ®¸†¼·}¯2Ò]pq×/ÎT_º-8¿e8຀Nö4\—äëx9‡°ÅÚÓh¶ïtu{㱚ªî²‚‘,zlz>ß缬õÓC--î¶VMÖñÏ0¼Vë“æ;÷;‡;"Ú|ç…»{ŸœPµZ£ï³©è¶*Æ¿‰Wr·ñ˜7˜•Üžü#žòß÷1‹*F +D •Ÿh]:uIõbZÌè[üS¿·âE¼5YQã_k©zuqâ‹íbŠ™³Íšy{Eå®A/asP]ìùdš99ñ}x^DmVÚð—åzF˜-Õ‹úëËií¥…%Y]é,|7ýðß[€)x¿:¢KœËRþ¥Ñ ªmгøµKxú%BÙ¨|›?–ºY™Êc¦k¨OTf¾£¬¼Eà³9J?ü.?2ÓmWd [0±<ü6{úUçtO÷ûwgZï qvc{f‰—جþ’€òDî›ýÍç}±ßÁÂ]â(ôññ“l ÿ€ C¬ŠMí|ÜìÍ–zÌOJÚíó>›ÕmWrÄ« Xgåy¿VÿÛA—£ï ïÑÏ…ŸÔž«;×Ðv㔊€²ï‘¯|ηÁŽQÿñ“‘öïð=þÒ}\[êÉ—YIýý× ¼úA Ρðâ§ÜaŠYlÈÅ«þé×%*Îgî²¾Þ8º€ï·&0ÔmEž ÒË´//uov¯ڣK4ˆ¢Ã¿Ð{wtöh ß–·^okÛÂͬçX3ï03 ù–š}ÂRâ°×ŒPg˜wÓçÜ"/#]¼ÏÀïc‡‹’‹þ#ÂðVq™S}p+¿eK¡2¤«l–Õ±tR ¶ò=/DGŸÑØê< O;Þ#²ï¯HVŒ’üÀàà¿òںʊÚÚàJ?¡ê§ ¸¯ý^^ÞæÓ6a Üóý4í_Gï+KùlpŸ E›ÓÂSiíïÒí’t†1Z`m»ÕÊ5[J@ƒÑ™#û®øßBE¨<µ2µ+íLZ¹ªÿæõá¸A¼½ ܽ-’™7’uR¢òP;“±€ºŠÊÂr?¢Ëqd(/É-A-‘„ºË¶!z&ŽæiÿZž›~Bp˜‡§¡êˆCzì­±é|3__3fʦŸð.öwxïUUOµÁkÝøË·ß}ÿçÒ?-Û½ý÷EãóJÛ`6è&^p“ƒ—°PÔßf¹|åÙŸ\ºððþŽãË…1‡øCÍ6k­½íEQˆú˜.ÔI÷×Õ÷ªx*s[ð´©>9¬víø6ØXõ:œ8Þßwüø~kaª'¿µÁÇÝÝÇ×Í÷¡­­¡¾­ˆ0[<½QT5=Ùòk?˜¦}ð"¾¹‹ÿ.ä„ÜÊÄ ¡ M)ßÑXÎÓþó£íŽÍžaü¢xÒÚ·›]} lgèo°ßæ["ª­+VÔ§SJ¸ùB(=%=¡¶±²U!EL¶4G’éœl¡³Ì«ýžƒ£ÓŽé[†\i)9qEв§#ô$DÝÅmMµUŠºÚÓ4óÛ>rÏr+tKMaW ¾ÅËÍͧsèL]žÜ'xpŒŸùYuÛIt Uº¥-UùãÕŠ—²N1ý6çù\~vBNznj>ÒíËüCÅž¡é¹~B©w}TebÒ½;Ôt¤×«ÆFŸ’,V_äzðþx-äþjœ Ú6ÿ·*¡ßþ¿Tp/ù>Çÿ⯲á:P÷Žq™ˆz÷Qwrû¨Õ»¹Xþç;)YÔ«/±¨”arâ)›VOppø:¾w€HŠèˆ’ÊÊÂòÆj¡=ÏÕ'ÂyÑ›uw·TmüÇO_”›•ClÅ»‹!< ƒ2±1‚¯ÿ!óŽ}}¹«°Ø¿PÒ⿎ÑÓiç]į·FT&´²BûÛŸ±pH:Ô!Œ¨Š,ð® ½vðë­óÐVš¡6¬õ .h„6ñýOFBWé¯Ï]o¬Ô þ(^F—ó=yÌ”˜É?r=yXUÀœS½Ä'«ÁE*´²âqFWâYüý[=‚ìò( oˆiO|Bãl^ÒÙØúàF¿N»Ê}Èy„9Yí;á\¶MÉÅžÞö¾¦h Íè>Z€'_鮽Ò!hØØæÝCÃÝG0ÐcޏŸ³Û˜™Ç¼æa±ñ#§ÇxÕ‘¢ceåB¶Um<á]ÌüÔOk»"z ÙÉJèOMùM2±a÷›d|Ã.¦>L>ʯzö!6²ÿëiÚ¢›ùÚ"´;:jüWm³”ÔÅ–ž#'[ö,]éã´%Nš›ˆbPtnBe ­ÝýYRßfÆôå!E±9É‚äŠäÊð’¤ õ?Øåsòûû1q"dĹEèU盿½€Öþ?Õ]XW×– 3ó¥hÂd$aSÕ$Æh4jbM4±Ä®Ø@•&(½÷zé e餋‚ÄŠ½ÄÔ˜˜Ä &&gðâ÷ýwvYšË²Xó?äy$Ë–Ù;§¼§½ÇñŸªüÂ3ƒ~™yðýéË6,³Ô¶7&¨ˆx ‰qݸ%¿ôB*Œ-qHUçßkÈ>hÞGl+û¼ÛrÈ>”åì_ §Ÿ'jqÔX7×ÃÓ@h§ÕM ¦ Â7Æ"1JÏÜ_~1·F¦áašéá6Ï×9HÑ¢¥Fv~ÉÂ÷AÌdjV@ØnxÇtÊñŠwŠu wX-µ´Æ®^®.ö¦Þ³ƒUÁ™b¤GG§h_§`0Êp‹Á´T㌂3jø Ñ­<^{'¬ÉUGõËê/ÈÞ‚ ~.çåãà…Ï È<ÐôÓ‚oµÙ sVZ­uNpKNÇŇ fH™،¸ôŒxWkíõôˆuî¾Ö¶ {ËÝÓÛÁaК|«­ù¹ ù…Ú‘æq9(%Ded0¸ïnùúúø:ûxº#ÆÞ953;M|*‹˜Ï·m – ¥ÞÛ¦‚öÞ¾À°W•ÏÄ­Ÿcf31£–%®¡ïîúŸêKÖÏ%¢P””w˜YÂÚèuä{k|þ~S—'Ãkû.&҉’Ϋá/ø¯9¼ ßHªæÃð0XD~>†a°áOà3i /GÝ+§(Òw—)DáñæsûyrßBbÒNîzÔשÃÔó‹/Cí©¬SójÂ-†X= ëãµ0cä©›{iüÆ>“kÒ‚éj•ð§`)v´ZŠá¼%—šå›è­ÉŽÏqMØh1hµµõjGÏðD;m§¡žà@…ùf§= zuÿÅ=–e 2DìÄÊÍI¹ƒvè–Λ³Özº‰v–SAeJ|)Ò,Jw\o²Áî[Q× äͤ@»¯äßvÛ@îÂá†oÈ]Ð#ÖaGëp±Gë°CYë€ïñW96FÞ!³Qr„¥²‹oªPt†;0/cµøëe;­ãuÉý~õ³ð ¬ùëx½f{rq©h_Ñïè”Ë‹z»íN™Ëª~Þ¥±.Øòeù¦±3#5 m÷x¹í\§‰_û¾p½Ú͉\ãaDChýé“×gnµYÕ¸œB§˜[»êOiËlH}“Ä‚LkšØ?{´!¿)cC؟۬ȟOdEðWðÇþ¬¤þwˆ@Øò]º°ŒX‚åä·]x¹ð,Ó%¿‘ò¸®®Úã° _)(Ä=kš/~µ¢2à!8K\ä¬cª¼)ô!*±YH½Î¢^4¹Ž=£  Òʃýhd€Ð !™4FkòhÓ´‹.]îë»,Ó* 1G¢)›T›l«- /iìIË)F»˜ºU%ßjão)j@Í‘ÛJíÌ´^ºp£¹¾È€ª‚ßø4 ŠuÚ‚Õùð) NçÁ ü|Š‹ ûÂçð&~OÆ£±‰U‡·Åª_ðïH)cB+†Š„NC5F˜Ëê0…òp1-¡ÒðgœÀ?™VÈ£±XßFg•ªiÿ0]{¾sÔ„ñ~ùLOíåÆ9Eu>6/æA )‚wΩ‚½w9ªfûžûn1ÝòY&;§#ͬGùŠÆôylÔ]w£&9Ãb¬»Kr>wÅŒ%Š© ëÙª˜õÚ{®¼g7!þ³ÕÊ£‚生ù€T–E*h ¬Ý¢ z$¸?{öø õß_¼|äð—g×™õ­Ûµ|þ<½ éí>p`çî}¢6¯z¶IåO¡€ð‚œk=ÌS6DyzZãpN‘G¦<7~°B!{®š2Eð`ò³R%9+ä‚î¡&uEPö~Guao svP}¡ÙûDe(ö¶ 4_ZEä5JFomJtªîÙ¨Ñnþæ§CèXH§òð!ÇZB(°‚âÖ©‡ÑÇ`tÇ©‰¸Â’Ô§!±0ñ\÷™Ñg(®˜"òªH䕨›÷2‰Ùò<Ìû5þ‚’&CÊÆ›+!¥#!Sñ_p‚ëi¶¸•ɾ'V¦â¬LxÉ8}*9<(Ö~ó¦èòŸŽ(&h/LwñCM*°H0¼ÏÆéð?([®Œ£°¹^fÿ¢ Uœs”«·¿5Ò|ìl§TöIPô4Dÿ#Xý„áN«‚ºø täœ`Ò»…Ï™ ÿ~^¡¾¶Rå]Ò¯­ty9OD—gÜ ]^Ž„.ï£æ{;¦k*uxk*uL{*ux×T꘮©T™âl“t€—¤õà™(Ï'̓•lg º#–¦¿9¯CèÆ[DÐÛ³†'»f <»Ë6V´e 箵žnªå”_‘šP„4KÒ,L6Ø}gÓ†„Ä×M'b<odÿ|"í 9ö–ÜÌßOr0X›.Õ7©ì’ÀÆgàsfÁ1e1¡@¤%*‡ª2PMQ‘Ä©ÂAÓò{`ÛCç%g¶2È( ŸŒÕ!§ðhíñTðÏ›â¯D1#ð,.;** ´­ìÄ÷9Ï_R ?ÚQ¾êÀP F$òûÉ‹ ŽBÑñä/;%kH‰'{æÌ ”c·Ä3ÿÁ`¼ñçrÂCE=0‚Pæû¥ª£_¦ß€%7b“oH,2 ß lÖ¬±])™,5/Þ'‚£ZÞ¡‘]£×"†½å»Æ_ß~~Ò†¼Íâìê\ÿ\÷=Ú6”æ/+±­&`[nùáÐ9V»PÊH(¬`¢i[{_WÄØy¥ì²®^  ¯ƒW„ù‹å ªÚ^¡ƒ¨z´¹¹e”Üq $Vùóq Þ%»†ïÿj—MBÁ[Q$ó¢dÝ%EÑÝ¿ªž' íîsˆšeªÔ\„vöªný\™ÀðT¡ºÜý·xìö¶ov+ŽÓÿÍêñQ…Ó‹Rq©»PòߥD7œ ¬ÖÛ?þ+iøøêÔ@Ö]ùB¯¬%dk/[Bž¯j‰‰juL!6•oŸ†°l8yZ¼›p»©b”옰‚I½ÿ•JÅW¥¤” ¦ ×SH¡å~ŒLN¥—G"$L LžÌÅR0ŽªaO™{ûø[§Mj{ÁÉhK||E“úGãÃäæVï9PùÁÙŽñëJ#]/Cò²©´A„Wœð2ZmR‡5Mî÷b…|Òs ˆZ&Á"¥SPÿnRIS~¼¼.Õ§ÆœµšWÈý€vþXXšª'¥M‘RÈï†B6¥W²s¥MQ†Bv7´È½b)%?¤>+ÿùMÁ| ÛfpÜZ¿õP|“㘪~êÖ@ö|Äâ"j£wn*Ⱦ¸kû>T…ªMru¬bÖEê3Iû ب9Q~¾î(ù…ùCzajg¦…ÿƒ>ÂŒ-ÏèQÖ«ÕNQÁ^ȇü¸!¯÷ݯ¾o `º(÷¸ Ïå_Ãc'd.ûm§š$ñ©ÂÞ“;ÇGàF™#f5_‰ûCßfã­*0­Y—ƒ4ê$*÷L³;EÛŬ`²)/øR­åw ÜZL°Ë0µfšªcµ Ôº/×»`šÜ˜Ë¬„û­™{¯»qüM_>‚|(Õ¯ùËšJLj®p+QGYüÙœ¬T@g7ËÉÈÕÙÖzƒ»%²Fãì²ì²<óÐVæBõŽ#ûJ­§oÖÞ¿€Ë:šXϰIUY›S+´ Q¾kÎúË3b—G,X4y‘AúíUÚ«~åX‹F=“¤%ZFh‹¥…•…›Z†–‹7›o6/u©D'PÅæò ùË2×%¹‘·³ÍÉõÈ×ÚŠÊ’ K‹J“*PÚï\aZlZb˜¼é#SïŽí,íu™~¼·×fhÚ;wª ërUõ"y;3ó£· æ÷ƒãæAÖþº¢ïw›$.Czh­³©©žžõ,4›Á/]ó÷¹“§Šµ+®f% âáÿÀ'x¨¡…¯ým¨iÉ9bM7ݵ mÍMíͳجú z~½RTàb‘/Š@(\ x“Í¿Áßp–ƒ™ÇðPjç­ùùsp5\<B©éûÀÌ™0”Ò~`ýaè¯ÅÇp(Q o”¦FR°œ/à_R›Máeøj°Ÿáð(8ãàŒÄ‡‰ã^@bv‹J¾„·X`Æå'qÀÊå´U§1}sˆîÍ)*ׯÓzA‡kF¯2Y°q1bÆ®9þ£¨ßúù­-á·Kx­ jU ¯„ښׂN:kâ j1 ƒ°Z[ã¾:зee­$ŸGAô/àùöß©½âp @‰0£f•¸ŠÕÏ_‚‰ BÁ¬–q;'PË×ÍÐvãDzFxõn„Òìe´'5)1ÍÞÆ ¨‰ÈÔÓØÖÄÎA™£õ16)Ž)Ž›÷ùb a±.$@?qþ41®Ü—( Ô9R/ɱ• ü¤´ì¤´q8qçYÁŽv"ñô¯µð–Ð|"POoâ—s·ñ5ªW$ÓpûvíÇ;äiÖJ\'ÿñiX¡ÃÁ¾Oq±ËË¥ëJæž[À÷;d•+ì¤XÙK¯ d—zÂq~g”±–Øü7¾ÖRˆØLO¬^7ò×ýÅ9»*µ…«j[cB^ÐeI¸´ÿ⊴ÿbÞÍÙlÐÑAMû"ºÓb”oûJ·Y0ìOG;w - äܾÑ^®ø¡ñpìºÚ !«å™_R²ã‡-’ƵS¦êK72%ä¯åUêÀD´càmHôZWÁˆñZWzw@¼³`™#:µt-ôŽG;Áì4ð¹Í^[;½Ë¡ PdÅDC™rƒ–/hëi®’;8õ™[%”Uþ,IB’„¹(˜ø3ôÚ‡öØ—¯éer±çÕ9ËvX\¸ÃÀ¾Jªßr•üïÂa€“ðß@Ö•ŸZÉa'ÞŸB ›â.FH%÷œ_¼ÄzÌ&ϧzzNòeL!&=Ê3axbU}6ëÚ‰é`>Œü1ü¢`0ÚÿدY¿+ñûªç@üþó ǤێòH F¹ðÞ±bõs Â|Õ7<Ë¡bqBy(Ã^H !øÜÝ•>㈖2xK7$è#éd”ždo`= ÐHÏB×—èü`qgœ˜ao%ïJ‚ùÙ~6k¥§Çe—Ù$šÌuÕÑq¹ëš-]ˆNm‚XE‰¦B”Âß“åCN#¬Âñv´t7Ó1§Q*ÉiD÷°›£?†˜‘÷J‰«¨'ßú$ÿ?’ ‡7Htàý«ë<¢Œ¥8Ù•’oIZí¹ŽFá¶Ã20ü –>ºo€lÖ“ŸçÁÙøïç°‰à_Óýœ»Ï¾WÔ}öÿD!þ…ÿòt¯PŠDW :ot©8ø/Ùé‚=ùRe€ÄƒÕrÒN7Àî‹`¼V#‹Jº¹ùG"D „þ²àYšØæGZŠÚýÈjâ>mp_æÄ,!£€Ôy'’o£ûD·!V·¬—9¥g³8_â·)ÂüÙ$¸Ïpó‘¡ÍÊyL—PÞw‘óã†òÒ‘¿•^¢õô¯z{¿&ኻ–òï‰J€©’B…½˜[îž$85+êã“v‡KŽ*ÿ8´‚aq#ž Çåý o¥Ùíh…‡‡ÐÏO³Žð u Žù†I¦d^övíóò³-_'ÓïË[|T ¯‘¯Z7ªÂÇIä#?ÚbõdñVËëíQÛ š-œíô¾‰µOv°µöÆ`dǘ{o®ý±¾Õ†ÅmÍm ýCkw[lá‚ñÚ_G:ð½7c瘴Zµ'ì¯ÚÚÂÂÊ̺fõ7JÜ–^ÅØRÎvÈ1Söh†ë:ó1_Ú`•`<”µ0Xñ†×ö^¨íŸM£l6ÿ?e4¿ãŒ‹J/w)uØ9¸“ظŽ{ÿ[ÓíâÁ‡5Š7þ·æ9®|X£x÷ Ã¥ è Ø:UöÛ+êu\@u [!]vM³hª—××>‚m²„$êWt=·¼2'/aÚ†Ž™œžW`©³i"Ú€œƒ710†œ¹8áR±¦“ié,òf*™Â ,-Þ²ƒƒB:#4!$U(=˜÷±ˆ5þ`ÎB¬eí•#¯,º,Oªl%²½ë|EÞ·WXæ-L6ŠZ:—Á‡¨èY›,³ÌóMvØï!¶3¹¬hçÖœÓè ÚS¯azØ”ù¸¡6\ÄÃ8ωfÆsÑ\d“ë~] ó¿WJP% T„í{ß7Ì=œìH)ŒBØ |$Ôµøw‡Ó$õ Rì*1ÒX8 =¦—¦wÏEJÈEÿMh,±{-þ¸Ž”÷7r9äÍeè„Ø½ª|}þ!¦ŽB(F–dK:Y óCÙÐgàŠ`*ˆ²zŠÜ1DòRR»CÒ“9¤¥'ËK²Ã”!Œã‡wŒ5Kù~’øŸÁ%¼L$îCbÝq"ÌQÜSó” ùrE%ÿYnÐ÷‘®z¾i­å/>öа‹¯zåm–4¤­œ©*Œ†(b0ååþ†ÒÁ£Ì·£íè@jN>3V‰|Ÿìv¼F;Û®Ú°6Ä4dMnH… ËøËºßdñëâ:P#®õ”ZÉN †ILßœœ»­XtñhJ%‚~ $ÐOÍëN¹<&å…Gj›Z¹X# oÓ¶ÂŒš2Á žRTë¹Ãß ªüBAÂ8ü?©á rEmTû9œ¥‰Aê+ݧÙi9Þ‡¼ŠÞÛÃál@ÄTH½Ã¨R—D"æ0öêü$V“ q¡,[.:–:¸ ÀÅÖPÀ]K»{avÁØM"vLý¦½)ÕšîÂ_kaW®šb®Ö-ø^ßn¨Apjº¦õmš#ŽŒkgSWQ‘Eðò`C “ñí w·ÊÜ?ؼG¹Vö6þøáÂ^OÕtϹ}o(ùÄ»½›d«¦rmúí×ü»Ì…ÊÖ-ß&JVÝÜ¿7ïÞ2á:ø ¡kã¼o´—Ô”¶{2÷ž=>Û·‹§jsSÄ´UÉ]½â™/‡&øÎä$è‘ߤ…+YÜQ,ØúªÇ=.·[ú*™¥¿Ñ¢Û« Ô|¯30¼¾ËS°àJñ·tðý½g¯ ï¹É8ÒN#Ú*Ù) 1ÙŽvN`ð€KÃAu{yâæíœÌ”œüm3¢ãѼCî·Ú´ŸmR&Õ'·õۛˡd”iÓA ¨ÌjnV@áÅCz=›çv‹ ÿ åA¥\7aO#¹ËÝDU²€¨y„˜VZ¹bIÆV™ÌÎ[áCAßž%jÑjyØ+™ GbXY ³$>qޤÉ£D=Lfȵ`þòþñ#ú_Þ¢…m!FRz\4vŸ>‹ÄË¥¡6¯‰ÐiÖ`óâ¡¿q‰i¯+;ŽwÏ%‘)ñ„B7.†êÆ÷z¼h;0S{œÃë|t©žž]¶g†n€É((5ö„gXttHœVOCã¾ÁAÞÒÑŽ.¾ˆ¨)¬âµ9Õo’ˆ2ïâªÀ»0ßáó]C ŽE¨^¶P¨6÷!wéiÕ)Zô{0ƒx´ƒe`qcŠ:ÿ q½à’¤Qãr+*[àAÖŸ°½Á°·@ÃÔ q‰–¾¥‹î†L»Ô#®E(W”ˆâœ椎,ŸUècäg»ÑJþPã;LÙE-"ýq4¼ · *«Ešqx=…¾ñFSÚ&ÖÇѵ(ÈhÛLxoÔ€q)ÔÒ;ßï€jXUÚfEF—M½™p8.9å"W³#ˆIÍLÏÞe™¨¿ÄÀk˜ŠlG­Ÿþ5b<`Å^!t®ìÏŸ‡1&Q¦,±/MÈ’ûzLîÿÓ«äþƒ'JîïäßéE:ävmï¹Þ‡øÖdV³Ž<ïthÀ ”#Mµ±U0Uêi4»÷4Ýú,å¼™¤´¨ NƒîÓ¼'Z} ¯’ A‚¢ OŠ~¼•ò¯Jrwl5¼Õ ýœRÎù„'lŽIË;-0ùoáíôlûeÚøuXšٶ3ÝÍ׬÷Yˆh œy×Ï]^Mý€ò¤' È9… ç”!„ð²|Ÿ¨ÍŸtH¥5Ö>#B?¾¦õÖ>Xéô‡‚UÛ]’„¹CXü.µmºžü„¢êìXOòÆm¦«Lbºµ›.˜NµewºäÊÝ¿°øÎu›—eÃ&z†˜F­Ô2w°4_½×}‡¸rp'NŸL°hñ§É'¶¦R`öâ;˜Ã勨QžÌÑkK i se“dmÀêèðÝsž§²Ça…K±ÇÎ9p²û6]1ÅÆtÓ'|¬W}Â9û„ãƒ2ýâ#ƒã‚ÖïíÐYóÛ:Tx k>죆X|µl¥Ñ"‡Ùhš™ÿõi''C_5­ì9ú¥ìàÑê}ù×Ð-/Ýúöðœ½ã6‰ôÐrŸ.®~®ÞȹÄù¥1ö”7¶WË RŽŠs ÊË÷¤íC B?ã>Qx"ótWÚ7FÞìO! j¼î‚,mo’Â…9l²,«!Rãx|~\aNAvÊ6´U¸—nÈcØ [ÆeªÅnÇyŽÔ9ŸMž²6:/)Bgc~ =)Â=^˜ÄYN×…‚7>¤_P-ºü5޽]oì7øt¹½¡‰£öÊ ¦~Ÿ1¿ó¯*B?nµ°§äz|ºe]ª:Üùû3xU`]SÎ}‚ N™\2óÐÈú:ÿ¾$b¸ä0?Á¦–èĉHLWVue¨cf7fŒ6ú{˜k»ø¸ ûm‘G,ñ‡AajÎälôÈ©³÷a@Jqe“Ö‰ú_aµ N3E‹MöSìõŸÎ‚U?±\$™ÚC÷ ¤œÕ ÒšTò¯ªî'R8öî#AxÇ—<*3í!4{k­…ëÆuƒÚY­¥Üךv.Ié)›R’SD±1aaÂ’‚$bß Á°DBºF7À˜›B®Wuk c)xƒÄa·ïÙŒÕEdX}\;×Ñø 5bü+ÎÆˆÅµöã+TkF†€ ÷ÓYëñ"Öø›é¿µ NO×–Õc$$_*7ïþ½þ<Ú\šG*9<Í'´ƒaX*±ûÍÒšM7›v îÒC\AÞªQ$±VG|\ ¢ ‚;`èŒy÷< y¶ÁµŒD ZJ î]{sý«f´FàøèFxÓ Çcñ&£Ô ­wÉÜÎA Žçªާ©Õñ\}ÇÓ$ßñ\Ø·WÐ9P–Y«—¶Ã9­RO…FJ~Á‚ÜÄV‹*t},£’Í‚>Aˆ)§B¿'1ìvÐS=XZ©¬;ø\Ýàx¨ÜÜÐst–pòP‚†ÿ]ПÔî"¥RH{vr:GÁ'ÉÜ£«÷ø¬ìÇSMã@¤t3ÞßÉÝ®•Ä|6OÇÉsa =q`-ƒ›ke¹ê‘ @Â[w1Õy!2<ÉêN—Y¿fÜt× ³Þ0zd"5¸JÂw9sõ¢óõz“€ }", Mß½¤ÜÈ€d¤‰GÒÈÔÕmMC°†$ÌŸª/7…QŸæ÷ø»\ÈžUqúh ZàbŠ5lGÍŠæBQ£Tù9Ôõt-Jî¡ ²÷hêM†=y8!.91WlvD+e%1- ôQä¥^P,7‘Ÿ!W\k:MKñåÍ}¹0"R)ç‘v®XM2ÝÔÜÈoG³'%VÒn¾´æ—RÔÙ´æÙBpåÝ\y:Yš`5¬­ax`n£MEçÐj¯Z%»þE ‚Gkà‘Xçówý–h:‚[ ½ Ü)e ±8«t¼C5~Ãï®H6C®š¬rrñ2 fØ´ä,&¾uI¤ë&ƒýx1ähÀ`˜uôbjœ$û®“Ðð DhÚë`Ú¶£–?3‘)ï(2®‚Èd¦gË&ªsÚl;hƒ´‰}¿úDö½ºû~U åãŒÞ¸ãæUB×v{ç–¤y{«PòšøÛ@ö‹Þ2]Óòn{}|-¿9û”МÍ.¯Å0¸Cþ&oCŽý"ªN(Í(IOÝŠ P¾w¦cŠcʆ”…Q6¡ö¡ÄÄè^’º–ÙØ‚»‚ƒ’üv:§˜"´ÞÙ~ƒ³½›kÀLÄl II— W££mM*u* ÖÛÖg˜ÉODgºÐ»&•‚nŽ è ¥¸W—~¿È6Ý1;-997Z™¾©42¯i6 ª±±˜fðXcGá>+çLÐY^Ve©m唯Sµü<Ò„w.ÿïÃÆþ5DýLƒ½`x](ÍéIò²*ðYƒ*ÿ%¹ -(iö¹•$¥Ä4Û=¤k¬ÙXÓÞ2ÚÖõ´Ücý5{%]ÆmtŸoWå¤s3” H(ø¸ÇSùêÑþçU«³`jªc®:8ž™}e {¦er³q±óI[MsÒ§I €FÅ©S—VdG‹Ø [£³ ë]›\4aƒ]€¶§¿W @AÈ'šaƒBÕ<ÉmyKML±nÄçç×ÚQn¾x’ŽÇ*‘ñÆ-»ïpåšéSÚ ÀÆáq¡WÓ]šªÚ}P¥Ù¼K¦Ê×Ý~5þTq¦*? í©rDþâà„ t ÝfãF×Uk+löü^VÓT-#!Y•-$«°?Ø+ƒG[aš„3ûé"57>SnŠ*†˜îBŒ+È(T5¨OÄ´–R*V•—£ð¡‹Ë²Rv#xÀãÁØ`‘žÍªî¤n·m%|qtàsò%LÇ…ˆf õ6KKC‡¶>öâZù ÞMâ•t?n·½Ã¸ÝBIYZÚ“50—|–^ó$"- mMùB¨;Î}X{¹ðÑúònX@Ÿ'˜+Ô—-ºéÔ×kïÔ‡%`x Vôk^"iâ!4“IÃ3‰pç]„)ã6ð ׺ë/#þIn‡ÙÔfB×éSuÚæ…†2)»J¢À­’ÄW GWêHµÓ«°Ií+ V~V|ΖÍÙ»X<-Cßûxø0ðuëxù[ 9þ¿Ç%G†'£Z”çã¹Ï&çk4éØOïLµÒ×ÌÃuÞ¡CgQåÇòÓ¸_Šð[øµ1æS§}foÁkgN‹°ù¶xÀùO ¿0ÆtYÒÔ1é7ü&~mêXÜßS4˜ne¹çN¿èÅMÒ,§a£ÐcÒŠQ—ÊØÕ dwxòU¶ÃDµ'‹¥vËËþ(/8ÍÍMMíöäM)¡tÜ}É© ¨4_$ãy^¬#‚¿ Ž ½?5 ¸Þz”û ·`ÉßQ¸Lë92+®RĬØÃÞl¯=`\ } TŽ7¨ž‚Ü ãX‹›op ª,sO¡¶{¬ýFg/;¤iìšS/‚Wÿ®}úÞ-Llצà0?m_o?o_/£Åº.ž¾~¾È†…15”.Åpç•Ó ªQü .!,&$1Y¢Ô0-÷õý^˜ø÷ÓÓÜÅhvtAÅîœÈ¯XíD·X¿xÄdŠ“r íSÍ -m§­ýBû‡.±3qŸï¨ êwrª=ijŸ³§ë¬º,Úe“ÛŽ÷d‹vÃÖEº&º>²¼Ml]“²sÓ3#D[£b#‹ËöÏžçñe²t»ö9ìWmy“?Üš¤ƒµ^†>*ûˆ¶Î ¶o1=Üx\Û½ül¹[`Lï)˯F»ƒßÖ¡¯VpÔ3’¢&Ÿñ©µ –+ØÑ£P;Ìuýçƒ4¯Ý@‚E!ôÕ ÖŒ­„¢ÊƳ0ìì@öËÆfòÛwãí›ØØÂò<‡'9Rþ)- 2 ppñññ@¾È=Âi“KŒk¸;b¬l­,2-÷feDÆ¥‰ÒâÄ)1919»„jò š]Ù‡ZòÕ’x íÉ‹ˆˆ‰ŒCQ(Î?Ñ3Ñ[€˜Íié¹ëóV˜Yy;Ù‹ìÜmý­ü­ƒtÑw 6¤¡6r#æ,3þÐü†ëÇŽ4\š·wŒÈ{·«PgÊ¢+7:Æ¥{ˆ\ò¼ËÑf{n^…¶äžóC T®‘›÷ǯ¦÷'o.KKð²LÖNÜç•„˜Œ”äŒýìys–X¯Ü Ú ïc<žYj¾§Ð7žSß/&á+A•ç"ÈæËÈ/B(—+HµD¢£‰D~R‰¦ñ¨‡ózÑÁ5I@ù mã…‡½#}“ ûõÚ§!îø=˜Øf@`:9e~%ç6ßÖÈ}¾“¦ "‡lBš1΢–þJÓÜãk8¬Þ‰¨Ÿlõ³¹/¹Á+ &1û2×;ºÎˆ˜ËËRsÉ^j3˜¿õh0/+4˜ïÑζ~.È^>ÚIÌÈLÎÏN¥&%DæG Ñà~߻ҫ“ÜxþË•s RjVåâCbÈi0…›ÜuE-öÝ0á̦áj ÷ßa½šwˆš¿§r©˜Ç¡D_F"ik[[+«tÛܼŒô¼\Û K„ãOEV–5O~ôÝŸÃ^E®7¹M<é \èC<)º %äÞÃm/†ìQK¤‚ƒP bL|ˆtòGˆë:›z}/ðþE‡D¢hÄ”Æx­á´Quì‚ÓéáX ¿‡ß<7^ª+KÝY$úž•¾È××ÃËÓÉa£—%bÆ-þúƒZÕçkªô–ˆ`È]¥î®lÚ:𧯞*ƒÓÆŸ'e0ì­„Âá­Ôì8»ÍZé(-.$=¤Ð*ÍÍE¶^vy™-)eq’ìvÏ«UÕÇ5¼> &éP-ݹ;†>“æ„/åõ&FVãER P…[|&‡_RxOÃåÈÈóE“áÕî¤Ä¿fFÃk-9EÒБ [Ii°“¤4ØÃºioOêU{ûìGi°“”¡ÁƯ€ŽBX¿Ç· –¶mbHöœR±!q!äûlrÓµl ‘Ž›ûlaS«§˜žî± íeø_‰­[êläõ³æõnW}ÿRÇmrB¼â³h`ñ„í2ÒÍB_ %ŸYmÛ$S‘lb~~{˜aå/Šš¿î’ËÙM,×cž7¬Ç«{gz:0ªB ¡J.ˆ6I(UvO©‚{ Tyø<)UpO”*ïðr3Ö­š‹æ1Ë‹×n/ÎÌ(*°M1ñ#ZG°hBÁˆññ‹Œ.Ì-©-u ~ÂIÞÍt¦{/-ÊS2 ó3„îj<ŽKGl7ÆãøãÏÆHÇq¥ŒÇЖ_za~“ž)j<)9ÕóðUžx>æ ÊÓLwL¶µqt²u”4R{å³VÂÖà¤ì±íÚ…^â·À+¶J‡â¤xYºFýpƒ¿ð¯‹eðìšfðì9Ïà©tÚʹy,Ç&*¹]šÏ‘õâÃ’ºÇwÜLš84*CÛh½ë†Ö$”D àí¤>;>}[¥¨î@zAb%#§s®lWÔÛ¦-"lð|n†qrñèh‚îfƒ*µ3 ª ‡¡þÑ a¸‚à˜Þ ¡ ÅB‚ZÌ×ßS¿P§#AŽÓIÖdH³wŽ•–‰ Å{K€vg-ã/ÊÃøÍá?’†à ¾ä—²¹ÜëµíS¹÷{œÊ½ýd‰À^Måbk¸ÖΖ( %¦>DiÏ,z8»WÂü¯Ù @ð¨Jbë@°øK ‹|áO^ô…×$ÀJ²Då 6¨`s>\!,•|€À(2˜„ÿ1ß7¿$/tˆi«š,”TMÆs°JynŠ| <%ó•§§ð¡ɇ(Øè'å4Ø]NîævVwX \ÇéÛöQÞ¾ï#\ã˜Y:G[^§ØênÈtº Éhá^>Q;èJH+_RYí I«¥¤ÐJŽÇ²‡bç.ø–Ó-Û[»˜ÚZqHÚ‰y(Ô`•h¡Î>¼V¸š¶fL%ЬÒÝÒ÷¬âopm¼;ë|­Üì´Ç4®5jcålä­‹4[ˆm(s‘œ˜4>0‹–rF;#ËÄ7Gjl)›pigQN Ú¯)å"F«rÍèÜOµ$³­“*’IU×ÛÇVú¬qµÐöÛZ£»ƒ\ì¼7"MaˆA4B¹Ó¶uàŸLwŽ(F…›ò’%?úz厜“è’fû „ö…î¶H p¯ÔÂ4Y î¬ä¯sì-9%¸ ]JpïÍÑ9Œsä•á  †Ôâ!´„Š6ÔB'É…d~ ×&ÐsWèTá·å*Àgk'ÒÄKõïHÇ^€7ˆœŸ’¶UŒk-³VIÖa×-çª/+U8|š<À7÷€N¿ft™ßW¢’ÿ PªYð)‰?Uƒ,Ê †¬H^·Ù¹RÓy»wªAçRmÙ¹eWUÆ´í²Ýºj몤Ùh œѤ±ÖîxˆyU$|ªfC›¸šÌ%ÆkQo”œÿ–&ºj}|~ÍüšÉ¹ÃÑ04ÑjþÂù‹ÖOGÐÔ´yzz;-«½B 4ð@j1²Ë ÜÉ´õ0µvŽ=ŸÎñŠW’>ÃÁÎBX©à³;’£lR‡ÃMÁ÷‚›²—º§HùíÿEÊ¥6Š£8ö¨Ü̇å-¹šhŽ M4^Â¥0¥V¥ùã&`jšÁ»h8šV¡{m}çîÀŸ>œr¿í\±z׊ÚÉ›¿@_¢‰Ös–Mœ«ÿ.Âý¼^Áo¯߀/Nj·€— ÿ©Û{ÝE[ Óñ¦ÚŸÿ¬ŽÃï¹2„þ–[‹Ÿ¡¿ë=bo²L[>úK3£š/Ž´§KÎ7½V°uøïˆ{R>Ý…¢B¢ƒ¬V{”†—ð4µG“¾·&}ýìlͬí˜FwìHHКp~Ñ8Øöq‹¸ ;”ÖB!‰Z{Ç¿¦-¤ã±Ài壬ëºæ7ýï1üÄZ®eq3ûjÙ6)÷º”´½jUþWï“s3%÷Ôc/ôie'X$q`_^æ /ÒQ±¨Å¿2>nµÜÁF‘zû( &ù’!°ε³Ÿ¯+‚ù\æeÁeöHÖiÖB0S𢢉ùkèåÄÅÞL\4(œ¸¸óä‰üÏÊ®z—†£åÿ­áè^SÉ×gÉð@WÒ4zVJ$}ÿðž°‘¯äø³š¬Y½N}­l¡Œº¶%šj';Öãÿ°ZÎÚÖ–Óñ=´œÒÏlÔJ2šcW["›³¸ö|Þº\ûÍ^°L§¹Šo™):çHŒô„Ó8·ºNãÈ›ê°Òhæ{>Mwš|È%6?—͆弨›ý¶ìŸrëi¹0«¾ËUQܯp<‡°Úªo§„¬EÆ™öåN…î[}+ˆ¨åpl%´-œ©öN‚v¿eyëf wçAH*·4d]ÄÜ»ÒCu“êþ€ˆœ)’{¦ÓÛÆe.È—Á Ì ¾›ÞF·@Àwh•GÈÒ`³,·Tt‰‹r‘ ãí—`<÷n1^´€ñ ðê®r’!ÈÉjANbdrÒ€ê¤ZÐÇhTªcÁÎ&õFrÃu¥dFMSÀJ`3ÒÙ¹ñž™†xDÁûR2£údFMžÙŒÖ=ÊfôOŸŽtFMž0 ¥¢Zà3ZÔ‘Ïèç)RB£±–‹D“›ÓåšRö—>rA£,8 zOÀáßl"™§•R·Mj€¸ÁÔ”ñ#¹T»{ÓÜ[ËèÖ ¶PÊ_tB!i[%aÁÏ¥Ú0›DPb~; ܈ãhaÙ¼¸ùe惨sªð‡g:¦w\`i{þЏ¹}ßyÍ^ ¾^-®Û7§Ñø×€6¤x¤6SÖp_ oËÜìið@´œ™­SÝ©Çj ¸¯TkÀ‘cµ3ã©6”h+ôÄvÕ7|KDyzƒ@Ê¥ ¿yåãð›¯oç7·GD-HíOrl—¦„ñ”5I³,˜!ÔÑ@ïœÙ±…ç²[ú€¹7B±'=ïG96UÖêF0ì}rc*Šê™Y-w&¾OÇIšúü”‘_´OkGÉêÅ+ô [GiNzÖìXª3e¹³ÑBƒ²Sº"7o5vkŸ ý’±?û”›žîMDNKIö¹6x[Ò¤ß t/æâcüR%ÑüÏ«ô…&÷ôê&õMäŠÇK™.{´a’© ÛI¦+}ZG™&ÈeºÝé\és#>¿ø¸ÖŽ £ÃLG=¥ÓLF¢±ü%ùvî¸;'CMÔ¸¤éöå‰3ÿÙ#pü­WÀñÏ'«c r™Ê»ð®=ú•:åAJib/wŸ¹ýÿ(r¹-bë•]|Ú¾KZØz˜5@.\ØšK€” ªòšv‰EâA@»ðñ>^Þ\~xYb~võ^Á_„_?3â/©aé§å-™dè¶ÂaÐP6wùd@ø'e€°´}t÷ÌYYpÑiÃñ7 ÷Î7Õʬ¦zr©{¦<›=SžlѼÞì-ßâLªQ°Ë›TÎH,ûÓÂÙØþP6Z®q«ä¿HUø7îªBt>ו͔|Í_¯Á›ÇMzWZ°K­å]Ê›©eQÑûãò“óÒK²R¶“§ ¡È…‚¡(vZÈHÍ¿4#²ßƒ×»‚Îy ÃYÂqµ—Y‰¦Þd%®*ÌJ4=yV›•"|–eBë`tƒ*üo@ÇĤ ÂfÈBïvÆAwä=glg˜5´}ˆ±3ïH†|“ç©$ã’lŠ•àéQ²[©'¡&Ô ØoNΆÇkTýI)4z™Vr—c2žÓ³Ò8AJV«¤ÔiˆÜTõ›~S¹8û4È ®µ¢ÈV¼#—%¦½,Iž?¾½.Y-©KÉê’ îkÎ]ANÒ è*IÔB¨€FµU@%4k…ï(wÃ!–c?|G®ñøÀ@NXÖ•xA†Ã%D`Ï›oáW+KÕ‘æ¸Ð·Òl'ædRàJ¤à‡?"(!@ò„ÀP"òx^dysÆ’h·á1¯"òÿag»‰h7²²Yb—摎6£¸ôl”Šüð[?¸M²uÑIÃT<[¢âïõ$Å4‘â¼öPTè÷-åßÚ¬açUaa·”éžróÖHÓÛúù=b_/;r±Úð€®è4¬UÃé­ 6ã§ŒÄ}ˆù™š¨mÏB;É>1™~Xf á†°/3.q`ŒnŒÁƒC°‰ŽÇz]…"ý¨"Xƒ` ~û4VÏÈÏ.ª'g§´ŸÞÞ .W1$¥ù¥T'É0:W ¯ÞèàŒ„å[RÌÄ^Hø{w ð%zU ½3zkFAÓm¢‹­’ÐL­ í |øX§§DéF“xÇVŠŠIÄì–5qpüD{F½S¡µ]äDÊŠ»´3-göx“ë8.ÁuO°@û/ZžÁ†”Í‹a†`ØìfwNØëT>`õÐ6ÈÞR fUƒ){W %8;H)zΞ€_èß $#{šT¶K@Lo¸F ¾ £³¥ÎHÛÙ£hIåBkäõÛí\#à#¥a ¶*æ}÷ý*¡o†Ãç\¯M¸;å¡Þcÿ¼sþÜíAèøê«_e3ìý“›„ö8m3ݼ.O?É™#cc7gç/äŒÈyù{x»â÷±½ =ý’$R™SŽ6¡ØiÂnWP‚Ûü. Ä‹5‚pèƒ_¦Ñh/¯D¤ÐŸ‡ºÅ¡ópÜ­KÃP°?t#;½:\3…áPéÑnmÓH}oóóù‘ÜT÷ 6Oæ‡;þå0ÍÞNŽŠˆX*19tà äçB×9‰š§tp¶ìq‰"Ù¼¶:µ+|$­Àk¶{ì&õŸþò&ê:½ÿÜüöw ”8•ü1í¥ÈÅä:—HJ‘Ïǽ/‡”^#ÛËÖ&˜ÙÔDb¤Èæ³rLÓŠG¿gˇ-<+{ôhMä·¥Pʶ”ô¢2¡ÕIûàñYTÒÍœ-BZùùµ¡ï+jù>RÀ€fNêý™Çóþj: †Õ)9´¨ÅÝïA°´³ýó¶ýõ’æö&‚Þà` Í^•ÜÃÉ=x?ò¢n÷Ù?Õn÷®œøu\ï¨%ç”â0èTëгÛhšT.K2/¦Kµ¾QQ»•ðÿ-ÙÑ$lí=B.ùˆ° ¦w•{“¾Ò"¼ÜU3í5ü®«f„ê=3˜8u¥Û%K€.Ë“åM*Õܹ£JÀïÜ;òÄT»ÜÜtòD;©u²±!¥Ûeçf’ÇlÈc¸ãv¯È;‚ö¡ ˼…ÉFQëBç2ø=k“e–y¾Éû=h7Ú™\V´skÎit…í©×0=lÊ|ÜÇP.âaœçD3ã¹DŽlrݯw-•ðô€¦˜óŸ BˆûKBfDϼá²?µA§ê³/|¼$Ò-Ú`¿¦ÀÝ0:{;ÒË`­Æ¦II¬™Ç ±&ˆiUçÆæ©ÒÞæ&~Øqð`¿d;ÖLzÚ±ÖÉßÖöÚ¤;¥É‹j…É'IÇçºW©ë"<¨–\NŠs¢U†qÏunÅùsçYktVØ V‹è²÷ ÿxé1[ê[éªv7©£›NÄt9Þ Õ“pV‚o{˜Rù%©°8•ʹñ•üèW_mL~õµ>}þ¯{<% endstream endobj 14 0 obj 33371 endobj 9 0 obj <> endobj 8 0 obj <>stream xœeÛOKÇg©t' U1M4j»/b ^€¨9—‹&"o\¶î¶»Ðv{ØróBk jœPJ¡­°F"[cN Ǩ‰>ÍÉñ–œýtÖ‡³ !>ø2™Ìï3ßï/¬ÈAäØŽÙŠ‹‹òªx7+î8,¸í5WÞHÈ›2äÍ:e¿òmáóBUæfPr+3{|akZ‹ÑjZtÑÞ'ÙoG3ïä|”ådEͶ¼¼í¿^ ¬V+eïXžPE¬È;=T®zie]‚×Íz|û(›J»\üyÊéêðr"E3 ËhߪiÛDå]¼×+´RÛ6ª0?¿`‡z–òn{‹HUnÚC• Vª„:Á2|‹û÷@ïáÝ…”bp”‚°ª°ˆàa!þÉXŸq‡ ò’ä= b›± ›u˜“i£R)êÓ]W •§$¢CÁº q·D:"þaôâ‰z£±ØÀظGpfÔ[iV®’ÈÑy‘¿¦¢~‰dÂWâè1Ľä×êçÖ²Z¡Üa2àItGþ#ñïÒu˜ÑÚªÔ¶à@ÙÛì]¡Ú€’H.⿉fáù‡±ãèºdc:=L§ø™³Uê'åï’–…pö -nH‹«õÏ®Åý¨þôÕ—|íÑX$í‹™b#½ƒ(ï{¥&Gs³³ü¥ý¿ws÷þš0ÝžêŸE¯à¡ù#Æ^mšj|’š™N¥8­iþ_ÕQD<_r´äéü²§îAÿòæ@}HݼKÛ< m®yê¹=»32EðѰ¯lÑ“=Ð鸮¢*Ú«*]B#:6ºˆÎ‹å‹(ð³T•öâ(µ¬´‚õ¯1¹ßpR *Aµ^¶ äëHš_Ÿ p6¶èðûù"£QˆÌ?Ép8Üs/v7:„àÝÁ–sæŸFYÛ.Xn@Q^%‘ù=†Ñ'(¿%µ¼A>õ~€7éäfì4ŠzÍß½A%O÷â_>̼E7ü8øQ§Ï¶99ôñÂ!8¡Ÿ|ýpâo”FÉö1g¼µ_@>Tß^ÕtæÔŽVr•|è“w“†¶„L'pMBŸ\‰©UÉdV¦Æ³²øK–ð endstream endobj 15 0 obj 844 endobj 16 0 obj <> endobj 17 0 obj <> endobj 10 0 obj <> endobj 13 0 obj <> endobj 18 0 obj <> endobj 2 0 obj <>endobj xref 0 19 0000000000 65535 f 0000002342 00000 n 0000039564 00000 n 0000002283 00000 n 0000002390 00000 n 0000002132 00000 n 0000000015 00000 n 0000002112 00000 n 0000036401 00000 n 0000036154 00000 n 0000037423 00000 n 0000002675 00000 n 0000002459 00000 n 0000038461 00000 n 0000036132 00000 n 0000037330 00000 n 0000037350 00000 n 0000037380 00000 n 0000039506 00000 n trailer << /Size 19 /Root 1 0 R /Info 2 0 R >> startxref 39614 %%EOF cloog-parma-0.16.1/cloog-core/doc/images/basic.eps0000644000175000017500000002701611321074700016557 00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: basic.fig %%Creator: fig2dev Version 3.2 Patchlevel 4 %%CreationDate: Thu Nov 17 16:54:54 2005 %%For: bastoul@ulysse.futurs.inria.fr (Cedric Bastoul) %%BoundingBox: 0 0 445 301 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 301 moveto 0 0 lineto 445 0 lineto 445 301 lineto closepath clip newpath -153.0 333.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /reencdict 12 dict def /ReEncode { reencdict begin /newcodesandnames exch def /newfontname exch def /basefontname exch def /basefontdict basefontname findfont def /newfont basefontdict maxlength dict def basefontdict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall newfont /FontName newfontname put newcodesandnames aload pop 128 1 255 { newfont /Encoding get exch /.notdef put } for newcodesandnames length 2 idiv { newfont /Encoding get 3 1 roll put } repeat newfontname newfont definefont pop end } def /isovec [ 8#055 /minus 8#200 /grave 8#201 /acute 8#202 /circumflex 8#203 /tilde 8#204 /macron 8#205 /breve 8#206 /dotaccent 8#207 /dieresis 8#210 /ring 8#211 /cedilla 8#212 /hungarumlaut 8#213 /ogonek 8#214 /caron 8#220 /dotlessi 8#230 /oe 8#231 /OE 8#240 /space 8#241 /exclamdown 8#242 /cent 8#243 /sterling 8#244 /currency 8#245 /yen 8#246 /brokenbar 8#247 /section 8#250 /dieresis 8#251 /copyright 8#252 /ordfeminine 8#253 /guillemotleft 8#254 /logicalnot 8#255 /hyphen 8#256 /registered 8#257 /macron 8#260 /degree 8#261 /plusminus 8#262 /twosuperior 8#263 /threesuperior 8#264 /acute 8#265 /mu 8#266 /paragraph 8#267 /periodcentered 8#270 /cedilla 8#271 /onesuperior 8#272 /ordmasculine 8#273 /guillemotright 8#274 /onequarter 8#275 /onehalf 8#276 /threequarters 8#277 /questiondown 8#300 /Agrave 8#301 /Aacute 8#302 /Acircumflex 8#303 /Atilde 8#304 /Adieresis 8#305 /Aring 8#306 /AE 8#307 /Ccedilla 8#310 /Egrave 8#311 /Eacute 8#312 /Ecircumflex 8#313 /Edieresis 8#314 /Igrave 8#315 /Iacute 8#316 /Icircumflex 8#317 /Idieresis 8#320 /Eth 8#321 /Ntilde 8#322 /Ograve 8#323 /Oacute 8#324 /Ocircumflex 8#325 /Otilde 8#326 /Odieresis 8#327 /multiply 8#330 /Oslash 8#331 /Ugrave 8#332 /Uacute 8#333 /Ucircumflex 8#334 /Udieresis 8#335 /Yacute 8#336 /Thorn 8#337 /germandbls 8#340 /agrave 8#341 /aacute 8#342 /acircumflex 8#343 /atilde 8#344 /adieresis 8#345 /aring 8#346 /ae 8#347 /ccedilla 8#350 /egrave 8#351 /eacute 8#352 /ecircumflex 8#353 /edieresis 8#354 /igrave 8#355 /iacute 8#356 /icircumflex 8#357 /idieresis 8#360 /eth 8#361 /ntilde 8#362 /ograve 8#363 /oacute 8#364 /ocircumflex 8#365 /otilde 8#366 /odieresis 8#367 /divide 8#370 /oslash 8#371 /ugrave 8#372 /uacute 8#373 /ucircumflex 8#374 /udieresis 8#375 /yacute 8#376 /thorn 8#377 /ydieresis] def /Times-Bold /Times-Bold-iso isovec ReEncode /Times-Roman /Times-Roman-iso isovec ReEncode /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06000 0.06000 sc % % Fig objects follow % % % here starts figure with depth 51 % Polyline n 4200 1500 m 4200 3900 l 8400 3900 l 6000 1500 l cp gs col7 0.75 shd ef gr % Ellipse 7.500 slw [15 45] 45 sd 1 slc n 5400 3900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 4800 3900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 4200 3300 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 4800 3300 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 4200 2700 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 4200 3900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 6000 3900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 6600 3900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 7200 3900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 7800 3900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 7200 3300 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 6600 3300 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 6000 3300 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 5400 3300 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 4800 2700 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 5400 2700 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 6000 2700 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 6600 2700 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 6000 2100 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 5400 2100 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 4800 2100 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 4200 2100 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 4200 1500 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 4800 1500 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 5400 1500 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 7800 3300 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 8400 3900 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 7200 2700 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 6600 2100 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Ellipse [15 45] 45 sd n 6000 1500 75 75 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr [] 0 sd % Polyline 0 slc gs clippath 9615 5160 m 9615 5040 l 9395 5040 l 9575 5100 l 9395 5160 l cp eoclip n 3000 5100 m 9600 5100 l gs col0 s gr gr % arrowhead 15.000 slw n 9395 5160 m 9575 5100 l 9395 5040 l 9395 5160 l cp gs 0.00 setgray ef gr col0 s % Polyline 7.500 slw gs clippath 3060 885 m 2940 885 l 2940 1105 l 3000 925 l 3060 1105 l cp eoclip n 3000 5100 m 3000 900 l gs col0 s gr gr % arrowhead 15.000 slw n 3060 1105 m 3000 925 l 2940 1105 l 3060 1105 l cp gs 0.00 setgray ef gr col0 s % Polyline 7.500 slw n 3000 4500 m 2925 4500 l gs 0.00 setgray ef gr gs col0 s gr % Polyline n 3000 3900 m 2925 3900 l gs 0.00 setgray ef gr gs col0 s gr % Polyline n 3000 3300 m 2925 3300 l gs 0.00 setgray ef gr gs col0 s gr % Polyline n 3600 5100 m 3600 5175 l gs 0.00 setgray ef gr gs col0 s gr % Polyline n 4200 5100 m 4200 5175 l gs 0.00 setgray ef gr gs col0 s gr % Polyline n 5400 5100 m 5400 5175 l gs 0.00 setgray ef gr gs col0 s gr % Polyline n 4800 5100 m 4800 5175 l gs 0.00 setgray ef gr gs col0 s gr % Polyline n 6000 5100 m 6000 5175 l gs 0.00 setgray ef gr gs col0 s gr % Polyline n 6600 5100 m 6600 5175 l gs 0.00 setgray ef gr gs col0 s gr % Polyline n 3000 2700 m 2925 2700 l gs 0.00 setgray ef gr gs col0 s gr % Polyline n 3000 1500 m 2925 1500 l gs 0.00 setgray ef gr gs col0 s gr % Polyline n 3000 2100 m 2925 2100 l gs 0.00 setgray ef gr gs col0 s gr % Polyline [15 45] 45 sd n 3000 1500 m 9000 1500 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 8400 5100 m 8400 900 l gs col0 s gr [] 0 sd % Polyline n 7200 5100 m 7200 5175 l gs 0.00 setgray ef gr gs col0 s gr % Polyline n 7800 5100 m 7800 5175 l gs 0.00 setgray ef gr gs col0 s gr % Polyline n 8400 5100 m 8400 5175 l gs 0.00 setgray ef gr gs col0 s gr % Polyline [15 45] 45 sd n 3000 3900 m 9000 3900 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 5400 900 m 9600 5100 l gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd n 4200 5100 m 4200 900 l gs col0 s gr [] 0 sd /Times-Bold-iso ff 390.00 scf sf 2625 4650 m gs 1 -1 sc (1) col0 sh gr /Times-Bold-iso ff 390.00 scf sf 2625 4050 m gs 1 -1 sc (2) col0 sh gr /Times-Bold-iso ff 390.00 scf sf 3525 5550 m gs 1 -1 sc (1) col0 sh gr /Times-Bold-iso ff 390.00 scf sf 2700 1050 m gs 1 -1 sc (j) col0 sh gr /Times-Roman-iso ff 390.00 scf sf 8025 825 m gs 1 -1 sc (i<=n) col0 sh gr /Times-Bold-iso ff 390.00 scf sf 4125 5550 m gs 1 -1 sc (2) col0 sh gr /Times-Bold-iso ff 390.00 scf sf 8325 5550 m gs 1 -1 sc (n) col0 sh gr /Times-Bold-iso ff 390.00 scf sf 2550 1575 m gs 1 -1 sc (m) col0 sh gr /Times-Roman-iso ff 390.00 scf sf 9075 3975 m gs 1 -1 sc (j>=2) col0 sh gr /Times-Roman-iso ff 390.00 scf sf 9075 1575 m gs 1 -1 sc (j<=m) col0 sh gr /Times-Bold-iso ff 390.00 scf sf 9450 5475 m gs 1 -1 sc (i) col0 sh gr /Times-Roman-iso ff 390.00 scf sf 3825 825 m gs 1 -1 sc (i>=2) col0 sh gr /Times-Roman-iso ff 390.00 scf sf 4875 825 m gs 1 -1 sc (j<=n+2-i) col0 sh gr % here ends figure; $F2psEnd rs showpage cloog-parma-0.16.1/cloog-core/doc/images/tree.pdf0000644000175000017500000001071611321074700016416 00000000000000%PDF-1.3 %Çì¢ 6 0 obj <> stream xœ¥WK®ä6 ÜëZ&IÞ32 Uƒ,‹s~˜W“9ŽRÇ‚täKwÏb;—ý ÙJ«ñg'yˆ·o°‹„óÒZæÕ(»µÖÝ£"×Tå)—aõT9y=Ôà|Ùóð-ÊÃè¾Ö(éjÃT¦aõ$Ô5 wd ¤a[ì!õæxûÈ‘g*9Ñy%p ,TI"çÂRÃvE ‘ËKlèä)s ê†Y]ƒÊ…÷÷‰ZEeu϶%™«b³!BˆƒÚLÜßbOqk2ã¬ù–¦Úë¡6ˆ£6t<ÕF_ìÅ ®{m0îV>”0׆¡ŒÚèã½6ÆbI\÷ÚP\Îà#JÞá1y>OÜndÈÒ {)eXOœi¦¨ã[§Ät°4ÑêÖ}ÆÚgóÛû×ÜZ´]¯§Ád–îØÖ3ø‰x¦úôÁ4&yÒý e(§<”‘qg Òü® eTÖÆ·­ý‡2¨¢6?×{e:Àz?ÏT³2O¸?¨ þ[]J”ÑMFäJG ´Üi±y[¸WDz—Ö;Å“»ózD=ÐÍC‰Ç=M‡Ë·¡A¡Û :ê¼b5Ty }>²|CKIx|tÌÒ{‚ôö.Šh#;I²{¯÷ÀGÚ‰§«òœóc )5-ð6+x[fÑ ;s K¸Øéxg dygà›Ò„òÎi9¬÷ðî#Y×ç;>=Ž;<‡exÓaHzå飯©ÁûÇÊ2ú6-Û™Áýãxfvïõ„{`œIƉyÂõÁóâpðøn½ÓÂ×’´˜p’Щðâc‰‚ëZnVjã.¥7“šÅþfÏ*¹§‘lž:À¬÷4‡ ΤC«ïy´7©–­ÃQYF‘·èëJÕì)ûÄÕˆ þÏ+*¾ó†:¬wð3õ‰k¨ô4+ô†ò“Ïšþw]íÏ|ÞÀ$n;—OF?{ˆmÈKÅ^Vóƒûñò•/Žö¥x{ù½O°{˜LLàúéöuª¬ŒNxž`ó€Ð\_VwB @e \>àCµÉä«ìã-åUpa¼ ¿×pÞÉ㌂«½NQüˆ; ¼ ªRç¿JªµÚ·DýŽÙ¦_ 2X4œ?yò—‹ýhø÷/î›Çðendstream endobj 7 0 obj 1017 endobj 5 0 obj <> /Contents 6 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 5 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 4 0 obj <> endobj 9 0 obj <> endobj 8 0 obj <>stream xœm’[PWÇw‰É®VQI3+ÉÖN½ R#ÕQŠŽ£0hŠLdž(›dÍÕdL² ¨‰ž"‘K@©Ñ*Š Rêà¥ÅÖK/mE¦™ñ¡3¶ÓÒÏâòÐM;mÚ—3ß|ß÷ÿÏùÿÎA‘)IŠ¢âõ%[ 7­K/¦Œ¤-Ci6ªM‰öBö-”—Ħ ¸Õܹ×Ç_+„iH~«`FlžpV |6Þ™ ¯ÍB(Ús÷YŽÙâ´RZM,Ú®,Yœž¾äß⬬,b·óï ‘KÚ(­‰XÀÒ`¶IMäðÛµ‡ÐœP——“å ÙµÔy”²XÌbQÎb"S¡X–Á™ÙÄV»‘´š—”IC™(ÚI¨MåÄ6#©UFu9™0È5R´ÕI,WP¦Ô[)ãn»ø3-±ÕœEäJRk7¨­ÿ 2•*Ú«_®X–ù>‚lB–#›‘|D‚ÌFR1ò&2çˆLAJW¨ }•”žJz(X(8k’áe#£˜Ã–I¸¥ÅB‹„šÂÇB @z¢Á­’s rª«ò8«£Ø‡uþFð‡Û  M›Íô©xgGüÝi’'³×½1G7»%ÓûRâcÐóÛñU¶hb•Ä! ÐUU.P \µ®ˆ¦Yу2 rí5é N5(ÙWŠà”‚ÇäµÝ'ÉoØp1³±t×úÌü›0¹TF‹ÄWOs:a‡(ÔÖÔGAK í@Óëï8Ä^Œüþ¬ø—úH>H}ÜÀo^ê¹Ýi¿¶[vFß¼ïx~RÄ'fŸŽ£px;»Kr¨¦€&½N©« EÃÑP#v6¸Êä“31°6h­ª8Xíñ{ªë]1g§§Á pÚé²ë{é0éÖ8_¾sbíÿqòh³šÑïGõ Ï“÷ÆÏ6z?’O:0P æTòD½Q¬"´'Ì4ƒn)ÌÇ Ám« „ƒá`MP©®9á>ßÁJÙ~š¢"U¡M=ÈeÀ©ñO}sû³xD­m·<åÊ<¢‹GŽ€ø}O%—Æ%§²«°@˜¬4ù ÝR£_˜¸V .¸Ë®iGá¹ak€nÉ»l¡JÄÝŸ,n†ç¸ìa˜=ŽqïJ¸"x¾Lˆ<])](x ½Àzþ1‹Ú¥Ñ‘¸©€CÏrSŠ.¨mC`\n9ß=t³âÎÀ¡ZßææÈ‚û$£ýœ#9RE¬X¡zË¡® Æþ‚…Ž àÞšÛ¨z°¦º£µµáÖú–Z[¬ÑË'K1°×O»}ŒÏTááÅ£Øê»|޳?c “'lçw(üzLÀšašÄ[§Qz})çÁÕ0÷ÅOŸ€§Ò_?~§¸Ä¾G#ÓSŒÞ•;”ÚûËùO|ôKåÊ5»Þ[™)çò¸Ba%;7áÊN~•ã#äã9âë0þ(¹:ŸðáâØmûEeÞÜ•ÊMë,õ'42c««ÞÅÿÆãÐ]¶?éêôu û`Ð=`:Sѱ¿IÕ†‹¯?8yáÆÜ6±´TåÒkeF ³Ï¾-Híû¶ÿì€ßëWåk­Õ*7ÍÌž\ÑÎîh‡Åí¢ÓÓž¿q:2}úóÖé3äÓËN endstream endobj 11 0 obj 1247 endobj 12 0 obj <> endobj 13 0 obj <> endobj 10 0 obj <> endobj 2 0 obj <>endobj xref 0 14 0000000000 65535 f 0000001332 00000 n 0000004150 00000 n 0000001273 00000 n 0000001380 00000 n 0000001122 00000 n 0000000015 00000 n 0000001102 00000 n 0000001713 00000 n 0000001449 00000 n 0000003128 00000 n 0000003045 00000 n 0000003066 00000 n 0000003096 00000 n trailer << /Size 14 /Root 1 0 R /Info 2 0 R >> startxref 4200 %%EOF cloog-parma-0.16.1/cloog-core/doc/images/basic.jpg0000644000175000017500000005127411321074700016553 00000000000000ÿØÿàJFIFPPÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀMí"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?÷ú(ª×úŽ•h×zí½²k‰V4ôÉbY¢‘Y]у+ ‚A´QEQEQE—â9tÈü=|šÍôvVBðK;Ê#ÚáFçzåôÏè>ð6.“©ªø}á[è!2´ançS·pa;p1]Û*º2:†V Œ‚+ξ^Zéÿ´k»Û˜m­£—šgŠ>Ñ'RxÛhúæ—â %¼Òo༷?ÇçÄuØÖ…x¯ˆ#ÑÒRÒÂæöÑEe¦Èœ|ƒll 8*>ñ'ŒMqþ ÷‡~$ê¿×®u­;û4jMtÛå…Œ63ry8Î0dצÖ‘¥Å¤]\^ÞÍêÚ¼ÀÍ"ô%Pì‰8û¨ŠØÏ_˜žMnP\ÄXü1uá±iâ\é¶m2Hâ9‘ÂŒÝFp:ñŒ×]^ñ·þI»ÿnÿúQzrºÏÄ- J½}2ÞIuM`d ;NC4ÙÈlp¸Ç9#MsŸ´_ßê qjeÔ|6‹ûý&Âëì·2qÉ/´ïÚ' ­?ë^…N“¡Ù®‰|ß4ºuݹ·¹ÎN7åÏ<`¶3jñ¶™àÛßK«|9ñ^¯|Þ_™}ao3C/î×JÊ£…8k?BÒ| ˆtÉ,þøÊÊénâ0Ý\[N#…îäÌ@PpNAàt Sÿ„ËÃíuwk¢·76Œ«4±¼òÊX¨ c…còç9«º6¹¦ø‡N]CJº[›fb»€*U‡YHHô ã|'gã'Ä9ŒjeUÓ•\Ž@0@>‡ò•CÀ–7÷z/Žìô}Hi7gÅW‚¡n³€hÉùƒ•{g=¨¹ÿ„’Ïþ/øEü¹þÝýŸý¡æm_—æyxÎs»=±Œw¨¼I¥jzÚçÚjsé–2+5ÕÕ›m¹È+µÝ.Ku@îkË?áñ—ü.O±Âwÿ?øGüßíìˆÔý£W—¿{æÝ×µz~”º—†´I›Ä¾ :ÌælÇ2Ù$ A,KgsnÎìv /M´×¼ñGFÑá%ÔuYŠáš-B_:[v‰7ÜGä0 ÎG½V¹ûu9$:ãë; ©ñwâ0U 3¦œŽL Oë@ƒEPEPEPEPEPEPY~#—LÃ×ɬßGea4/³¼¢=¡Á^ônx÷­JFUtdu ¬0AP‚Œ¾ Ócðýä·šTQ´PO.w8F*s;‚:Çb¤ñŒ4 "kêPÛË ÌpºY:ýÔcÓÆ3Åy„4ÿj?ô¼'¨Ãg87&`Çkʾ|˜T|לwê+KÁ·þðÕúŬh7>ñ ·–nu|ÌgbH&;£ò°ç¹÷€=/FÔ›WÒ¡¾k»4¶ »dª /l€= _¯>ø—ká»ôÒ_\ð–·â5Snt˜¤BÌîØë÷¾\g?t×ý‹ðóþ‰ŽðãÿP´ê(ÐôF>ûS·‚îdwHY¾b¨»˜ŸN9ç¯lÑ¥ø›IÖ5 ­>ÒâO¶Úf¶ž ‘Tôm²*’¾ã#§­p𥽙ñßÂh`°–ÚÍ-¯ 6—H|Èm¢°$ëÔ’ëZ!Uhf* ð®XÔý«þP ÑEQEQEQEQEW™|j¸ðøðÕ¥¿Š,µ¦ÓZí;0Õ›káHvÏÝÞ~éù¯M¯ý£¿äžiÿöÿEK@›áÙí.¼1¤ÜX$©g-œ/Ëë@T6 çÏ5 òÇß2EMÌwdž€{Ö?äžxkþÁV¿ú)kÌ~=øÊ]PðÕ…›=½Êê’.qŸ-±>Äïü…{u^Âö KN¶¾¶mö÷1$Ñ7ª°ÈÕŠ(¢Š(¢Š‚êÖ;È 2´Ê¤ç0Ìñ7ýô„Ö¹¥øká5°°ÓΖe°°‘¥·´šâYbWc’v³zž1âºÊ(‘E¤0ƱĊÀ‚ŸEEp7DÉ_÷ˆqí?xsœŽR;€Fp@%®kľðÏ‹îáº×tæ»–ü¸ós*\ç…V>øÏÐWKEr¾ømá êÚZ6޶÷žYŒJÓÉ! qœbã¨çÍuTQ@y·Ä-BßÅþÖ¼§-ÀÖê q 0ÈÆæ@qrwdt÷ôš(¬wÂú'‰`Xµ: ‡(í•t?ìºá—ð5¯EÉeŽ̒ȱ êÌpãO¦KsFc–5‘Ua ƶðŽgªßjvñÝÇ{|¹”_O™p¥W#~8éÛ©t_ é^{¶Ó!š#y3\O¾æYCÈØÜä;˜àdÕ¨^æÞì[ËçÝ,Í,¢pˆ©‚6ÆÜ‚OÍÁçiϽÚÏþÄÓ¿á!þßû?üLþÉö/?{©ß¿nÜíûÜç÷ª^&ðnƒãmá×lšî+v- ‰#œHFeS:tºŠ( Š( Š( Š( ¢¸¢d¯ûÄ8‰öŸ¼9ÎG©À#82ÔWt@l•ÿx‡>Ó÷‡9Èàu#¸`çZ(¢€ (¢€ (¢€ (¢€ (¢€#žn­å·¸Š9 • IŠ]HÁ#ŒUdšâÞóʸ-:ÜÊÆŠÜ…•Û'’CÜg cÖí2X’h^)QÔ« õ­>ŠÏY›O-æÚ-¥‘ ³X¢va„$‡# ”üÇ <õРŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( ®è€Ù+þñ"}§ïs‘ÀêGpÁÎ µÀÝ%Þ!ÄO´ýáÎr8Hî9Á–€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ Ž á¹ˆK±Ë$ƒAÁäzGá_;K¤XKûT˦ý™b³—vø & wYo¹Ž¤’}rsÔÓ~è¶W¿¼cái–_ìk¦6 3,OåÜ* ` ?¥}±Ï M ‹$N¡‘Ðä0<‚ê+7Ä?ò ‡þ¿¬ÿô¦:ñ¿Ù¢òæ[?Ù¼ò5´nñD[*ŒÞfâlí\ý+Õ˜4ÒÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÔWt@l•ÿx‡>Ó÷‡9Èàu#¸`ç’êÞ/7Ìž$òcóeÜàlN~cè>VäúJù£âÆoÇãGNÑï?³,ì.ZØ$hŽÒ4R\³.y#îŽ1ÁÏ9úrŠóß…ßÅÞ kÝb{[kÛ)  Òªù€*·šW äûeN=lú¶›™¿P´_-7¾é”m^y<ð8<û¹ES}[MÌߨZ/–›ßtÊ6¯<žx}«i±ù›õ EòÓ{î™FÕç“σϱ  ”W̾=øÙâÈ|e¨Ùhw‰§ÙYLöª«sy¥©³©ëŽƒ€1שõ…ßÅÞ kÝb{[kÛ)  Òªù€*·šW äûeN=¡QTßVÓcó7ê‹å¦÷Ý2«Ï'žŸcCêÚl~fýBÑ|´Þû¦QµyäóÀàóìhåMõm6?3~¡h¾Zo}Ó(Ú¼òyàpyö5ó~6x²j6ZâiöVS=ªªÅÞiF*d,êzã à uê@>š¢¼÷áwÄEñwƒZ÷XžÖÚöÊCÃ4ª¾` ­æ•ãh9>ÙSAÛ>­¦ÇæoÔ-ËMïºeWžO<>Æ€.VrÏý–éÃGŽ!·µ‘æy%’CC–Ë‚X’Iϼ¯«i±ù›õ EòÓ{î™FÕç“σϱ¡õm6?3~¡h¾Zo}Ó(Ú¼òyàpyö4rŠùƒÆŸ|Yaâ«ý3CÔM¥•„ÒZ©tŽv˜£°2t={Àuê}ƒáW_Æ~ ’ÿTh!¼°ÃtûÀóHã`9>ÙS@ßÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÀÝ%Þ!ÄO´ýáÎr8Hî9Á–ª^\[Ç‚I?Ôì–P³1¦ï¾Ç#6±9ê†JšK«x¼ß2x“ÉÍ—s±9ù ù[“è}(Z*).­âó|ÉâO&?6]ÎÄçæ>ƒånO¡ô¢K«x¼ß2x“ÉÍ—s±9ù ù[“è}(Z*).­âó|ÉâO&?6]ÎÄçæ>ƒånO¡ô§ c34"E2ª†d@$zÈúP?Š­¼Cw£y^¿¶±Ô|Ô>uÌ{×`?0Æ${~]FÝy߯èâ×j—i5ÄS[˜Lf+‡Œ|ÓF§r©¸?Ä:Žjˆ><Ö|?ªÅ¦ÛÚ®—a.k÷I4± ùº˜â€=ÿQ²Ò¬ä¼Ô.¡µ¶Œe¥™Â¨üMY®Að‰{"kÚ®«'‹.¥%⻺‘d·Q–ÿUþì“냜b©ø¦êþ?ݤ?ô­1³lö–®ðü‹Ô»†9ûÜâô H¢¼¯I¼Ô[Y±Wø×£jn# ešµÀÜ?v ¾An™óÅIáý×Rø©ãë;æžêư¢O3I–„·ÎÀÀÊ(>/…÷ƒâ°ñܺô ?™“h¶T§•åcwšNv÷Ç^qŽ(ðÇÂûÏ xëWñJkÐO>¤³ï…¬ ªI|Üà0wG¤Q@oðßáußûÛÉ"×â¾µ½TBÖ&6ÊnÚU¼Ã¼sÁϵv~!ÿl?õýgÿ¥1Ö­ex‡þA°ÿ×õŸþ”Ç@´QEQEQEQEâŸ~ØêÚµçˆ4íJK#pâIí¼44®ÿ3†.¸6Hç¡ÇP+Úë/ÄC:$ß$óÇÂ6Ó÷לäp:‘Üd`ô :ðdží<-¢G§ZÜï–Vë$„[º=ã[4Q@Q@mâO„6zÞµ>£i©5Ú ’XÌ>h2K0;†3žŸþªì<1á»O h‘éÖ„·;啺É!ÇnƒAøÖÍQEW›x“á ž·­O¨ÚjMcö‚d–3š „’ÌáŒç§ÿª½&ŠÆðdží<-¢G§ZÜï–Vë$„[º=ã[4Q@Q@mâO„6zÞµ>£i©5Ú ’XÌ>h2K0;†3žŸþªô‡–Z‚ôˆ´‘„D=Ä×òºªÉ1*0A9Ž˜ÂI'•¦KsÄÑMI 2:ä¨4ètW7¢ër›„±½2Í$Ìæ9‚ˆ  +õëƒÞºJ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠŠànˆ ’¿ïâ'Ú~ðç9¤wŒàËQ\ ѲWýâDûOÞç#ÔŽàƒœh¢Š(¢Š(Ïþ0ãPøU®[Y²Ï7›oÈØ$7aO¡äqî+½–(ç…áš5’'R®Ž2 õ’žÐcÖ%Õ“M„^Ë ™ßœ4€`>ÜíÝþÖ3Þ¶h‰ºømemxu ßMá»ÒrÂÍ[Éìð)íÓ+zûÂ~Ôï$¼¿ðþ•wu&7Í=”r;`2Ädà? Ø¢€0àð_…mn"¸·ðÖ ñ8xäŽÂ%d`r!r<æ³t¯ jº_µ¯®µi$z¸ˆOjlmò£)Wóxë“sÈã¨ë¨ ?ÂþÕü3>¶Ë­ÙÜEª^M°éì¾Tòž|Ó”ÀÆ:ô9ìmøÂ÷ ðŶ…&¡ô6Û¼©ØÄß3³ß;ËqŒtï]-QEVWˆäýYÿéLu«Y^!ÿl?õýgÿ¥1ЭQ@Q@Q@Q@eøˆgD›ä‘¾xøFÚ~úóœŽR;ŒŒ•©Y~"Ñ&ù$ož>¶Ÿ¾¼ç#ÔŽã#¥rtQEQEQEQEQEQEQEQEG<][ËoÓ÷‡9Èàu#¸`çZ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+œ×u.h¢²‹R³{±¨Z©gS&EÄysœŒý+£¬¯ÿÈ6úþ³ÿÒ˜èVŠ( Š( Š( Š( ¾`ø“ñƒÅx³SÒtË¡§ØY\5·–ˆŽeh¤?9f\Œ•(ãóŸ§ëÅ> ü ±ÕµkÏiÚ”–FáÄ“Ûyhi]þg ]p>l‘ÏCŽ Pð÷Ä÷>*ðÀ¼¼Væ M¼Ž½$!TîÇlîéÿê®®±¼1á»O h‘éÖ„·;啺É!ÇnƒAøÖÍQExg‹þ'øŠßYé— emi+Û줅Ê1‰e=qÐtýkÒ>øžçÅ^—‘ªÜÁ)·‘פ„*ØíÝ?ýUƒâO„6zÞµ>£i©5Ú ’XÌ>h2K0;†3žŸþªì<1á»O h‘éÖ„·;啺É!ÇnƒAøÐÍQ@xg‹þ'øŠßYé— emi+Û줅Ê1‰e=qÐtýkÜëͼIð†Ï[Ö§Ôm5&±ûA2K‡ÍBIfpÆsÓÿÕ@ß|Os⯠ËÈÕn`”ÛÈëÒBNìvÎîŸþªêëôð¶‰hKs¾Y[¬’lvè8ôlÐEP†x¿âˆ¡ñ=õž™p¶VÖ’½¾ÁH\£X–S×OÖ½#áï‰î|Uáyy­Ì›yzHB©ÝŽÙÝÓÿÕX>$øCg­ëSê6š“Xý ™%ŒÃæƒ!$³¸c9éÿê®Ãôð¶‰hKs¾Y[¬’lvè8ôlÑEAÈà׌x›ã‹ôÝjm+GÔ^ÎÓNf´b¥Ä“b Žò+Oùõ¯g¯6ñ'Â=oZŸQ´ÔšÇíÉ,f4 %˜ÃÏOÿUzÂoÝøãÁbþþ%KËiͤ®§‰™Q~06ç qqè;ªóÿ‡Özo‚ôTÐÔ$Pÿ®–öYB‰¦bz…è'“èQEQEQEQEQEQEÀÝ%Þ!ÄO´ýáÎr8Hî9Á–¢¸¢d¯ûÄ8‰öŸ¼9ÎG©À#82ÐEPEPEPEPEPEPEPY^!ÿl?õýgÿ¥1Ö­ex‡þA°ÿ×õŸþ”Ç@´QEQEQEQE—â!o’FùãáiûëÎr8Hî20zV¥eøˆgD›ä‘¾xøFÚ~úóœŽR;ŒŒ”ÉÑEQEQEQEQEQEQEQEQEQE„Œ€pAõŠÜÒ5çIÎý—kÉöÙAÜ6Æ@Á΀qÑy$žq)’Åñ4SF’FÃ Ž¹ê zÍèºÜ¦á,oL³I39Ž`€"( Ç=zà÷®’€ (¢€ (¢€ (¢€ (¢€ (¢€"¸¢d¯ûÄ8‰öŸ¼9ÎG©À#82ÔWt@l•ÿx‡>Ó÷‡9Èàu#¸`çZ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š++Ä?ò ‡þ¿¬ÿô¦:Õ®s]Öt¹¢ŠÊ-JÍîÆ¡j¦L™ämÎr0sô ŽŠ( Š( Š( Š( ²üD3¢MòHß<|#m?}yÎG©ÆFJÔ¯˜>$ü`ñDž,Ôô2èiöW må¢#™Z)ÎY—#%GÊ8Ç<ä×è®Sáï‰î|Uáyy­Ì›yzHB©ÝŽÙÝÓÿÕ]]QEW†x¿âˆ¡ñ=õž™p¶VÖ’½¾ÁH\£X–S×OÖ½#áï‰î|Uáyy­Ì›yzHB©ÝŽÙÝÓÿÕ@]Q@W†x¿âˆ¡ñ=õž™p¶VÖ’½¾ÁH\£X–S×OÖ€=Ίå>øžçÅ^—‘ªÜÁ)·‘פ„*ØíÝ?ýUÕÐEPExg‹þ'øŠßYé— emi+Û줅Ê1‰e=qÐtýkÒ>øžçÅ^—‘ªÜÁ)·‘פ„*ØíÝ?ýTÕÑEQExg‹þ'øŠßYé— emi+Û줅Ê1‰e=qÐtýhÜè®Sáï‰î|Uáyy­Ì›yzHB©ÝŽÙÝÓÿÕ]]G<][ËoÓ÷‡9Èàu#¸`çZŠànˆ ’¿ïâ'Ú~ðç9¤wŒàË@Q@Q@Q@Q@Q@Q@Q@ex‡þA°ÿ×õŸþ”ÇZµ•âùÃÿ_ÖúSjÑEQEQEQEWŠ|Aøc«jמ Óµ),É'¶ò<ÐÒ»üκà|Ù#ž‡@¯k¬¿ è“|’7ÏÛOß^s‘ÀêGq‘ƒÒ€<ëôð¶‰hKs¾Y[¬’lvè8ôlÑEQEy·‰>ÙëzÔú¦¤Ö?h&Ic0ù ÈI,ÀîÎzú«°ðdží<-¢G§ZÜï–Vë$„[º=ã[4PEP^mâO„6zÞµ>£i©5Ú ’XÌ>h2K0;†3žŸþªôš(ôð¶‰hKs¾Y[¬’lvè8ôlÑEQEy·‰>ÙëzÔú¦¤Ö?h&Ic0ù ÈI,ÀîÎzú«°ðdží<-¢G§ZÜï–Vë$„[º=ã[4PEP^mâO„6zÞµ>£i©5Ú ’XÌ>h2K0;†3žŸþªôš(ôð¶‰hKs¾Y[¬’lvè8ôlÑEQEy·‰>ÙëzÔú¦¤Ö?h&Ic0ù ÈI,ÀîÎzú«Ò>Úé~ Ñ#Ñ7E O"rò×72„<.qP ÏL e–€H9ô +˜Ñ5¯³"ÙßÎLh¤‹Ë™†Y‹p‡§<€~Zé袊(¢Š(¢Š(+º 6Jÿ¼CˆŸiûÜäp:‘Ü0sƒ-Ep7DÉ_÷ˆqí?xsœŽR;€Fpe Š( Š( Š( Š( Š( Š( Š( ²¼Cÿ ØëúÏÿJc­ZÊñüƒaÿ¯ë?ý)Ž€5h¢Š(¢Š(¢Š(¢Š+/ÄC:$ß$óÇÂ6Ó÷לäp:‘Üd`ô­JËñΉ7É#|ñð´ýõç9¤w=(“¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(®‰"•uVSÔ0È­íX‘OÙ/æ–f>d¢êMŠˆ¹Œã€x89 rsŒáÔsÁ ÔÄQÍ ƒkÇ"†V„´è”W7¢kSÅ•ô4“HÆ0…cž½p{æºJ(¢Š(¢ŠŠànˆ ’¿ïâ'Ú~ðç9¤wŒàËQ\ ѲWýâDûOÞç#ÔŽàƒœh¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(®s]Öt¹¢ŠÊ-JÍîÆ¡j¦L™ämÎr0sô®Ž²¼Cÿ ØëúÏÿJc  Z(¢€ (¢€ (¢€ (¢€ ùƒâOÆIâÍOIÓ.†ŸaepÖÞZ"9•¢üå™r2T|£ŒpsÎ~Ÿ¯øƒð6ÇVÕ¯ÙëzÔú¦¤Ö?h&Ic0ù ÈI,ÀîÎzú«°ðdží<-¢G§ZÜï–Vë$„[º=ã@4QEáž/øŸâ(|O}g¦\-•µ¤¯o°F’(Ä%”õÇAÓõ¯s¯6ñ'Â=oZŸQ´ÔšÇíÉ,f4 %˜ÃÏOÿUo|=ñ=ÏŠ¼0//#U¹‚So#¯IU;±Û;ºú««¬o xnÓÂÚ$zu¡-Îùen²H@±Û ãÐ~5³@Q@âÿ‰þ"‡Ä÷ÖzeÂÙ[ZJöûi!rŒAbYO\t?Zô‡¾'¹ñW†åäj·0Jmäué! §v;gwOÿU`ø“á ž·­O¨ÚjMcö‚d–3š „’ÌáŒç§ÿª» xnÓÂÚ$zu¡-Îùen²H@±Û ãÐ~4³EP^âÿ‰þ"‡Ä÷ÖzeÂÙ[ZJöûi!rŒAbYO\t?Z÷:óo|!³Öõ©õMI¬~ÐL’ÆaóA’YÜ1œôÿõP÷ÃßÜø«Ãòò5[˜%6ò:ô…S»³»§ÿªººÆðdží<-¢G§ZÜï–Vë$„[º=ã[4QEáž/øŸâ(|O}g¦\-•µ¤¯o°F’(Ä%”õÇAÓõ¯Hø{â{Ÿx`^^F«s¦ÞG^’ªwc¶wtÿõV‰>ÙëzÔú¦¤Ö?h&Ic0ù ÈI,ÀîÎzú«°ðdží<-¢G§ZÜï–Vë$„[º=ã@4QE2X’x^T4r)VSܯñWÆYx‚ëMÒ/£Ó쬭ä/°•ÜÌêNN;`cNIöZóo|!³Öõ©õMI¬~ÐL’ÆaóA’YÜ1œôÿõP§ü&ñߎ</ïâT¼¶œÚJêx™•·ãnwòƒº¯=øwecàÍ%t cXä•JO󸆰ä/ÝP1Æ<ò} € (¢€"¸¢d¯ûÄ8‰öŸ¼9ÎG©À#82ÔWt@l•ÿx‡>Ó÷‡9Èàu#¸`çZ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š++Ä?ò ‡þ¿¬ÿô¦:Õ¬¯ÿÈ6úþ³ÿÒ˜èVŠ( Š( Š( Š( ²üD3¢MòHß<|#m?}yÎG©ÆFJÔ¬¿ è“|’7ÏÛOß^s‘ÀêGq‘ƒÒ€9:(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€H9ÛÐõ…·‰,¯¦UqÃq=Ág•ÙŠímÝÉ(É,[Ä G€=ŠætmsÈ×P›ä°¼¸•Fægá×ðk¦ ®è€Ù+þñ"}§ïs‘ÀêGpÁÎ µÀÝ%Þ!ÄO´ýáÎr8Hî9Á–€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ ÌOhrêm¦G¬éÏ~¬U­Vé  Ž ¦sŸÂ§Õm®otÙ­­.¬²€žrýäRFâ¾·8=Ž+ç¯Œß ôO Øé‡’hon.…»[ùï,“±„Š–ÝÇeâ€>‘¬¯ÿÈ6úþ³ÿÒ˜ê] íßðiŸÚñÿöH¾Óÿ]v ÿ®k+ÄZîŽ-Üê¶"hï­·Çö„Ü»n#-‘œŒséƒ@-—Vñy¾dñ'“›.çbsóAò·'ÐúQ%Õ¼^o™”-—Vñy¾dñ'“›.çbsóAò·'ÐúQ%Õ¼^o™”-—Vñy¾dñ'“›.çbsóAò·'ÐúQ%Õ¼^o™”-—Vñy¾dñ'“›.çbsóAò·'ÐúQ%Õ¼^o™”-eøˆgD›ä‘¾xøFÚ~úóœŽR;ŒŒ•~K«x¼ß2x“ÉÍ—s±9ù ù[“è}+æ_‰?VäúJeù"’/7Ì“ÉÍ—pÆÄçæ>ƒånO¡ô¢H¤‹Íó#dòcóeÜ1±9ù ù[“è}(”W†øÇâwˆí¼Sc§N, ³™íŒ~R9fF*X–S‚qÓ·ë^ðóÄ÷+ð´·×qªÏdÆ;™ð@PÞcáŸo”ýWE>H¤‹Íó#dòcóeÜ1±9ù ù[“è}(’)"ó|ÈÙ<˜üÙw lN~cè>VäúJeù"’/7Ì“ÉÍ—pÆÄçæ>ƒånO¡ô¯ ñÄïÛx¦þÇNœXAg3Ûü¤rÌŒT±,§ã§oÖ€=ÊŠå>xžãÅ~–úî5Yì˜Çs"ž Ìaü óíòŸ ë¤ŠH¼ß26O&?6]ߘú•¹>‡Ò€E>H¤‹Íó#dòcóeÜ1±9ù ù[“è}(’)"ó|ÈÙ<˜üÙw lN~cè>VäúJeá¾1øâ;oߨéÓ‹,æ{c”ŽY‘Š–%”àœtíú×£ü<ñ=ÇŠü--õÜj³Ù1ŽæE<7˜ÃøAçÛå?@ÕÑO’)"ó|ÈÙ<˜üÙw lN~cè>VäúJ$ŠH¼ß26O&?6]ߘú•¹>‡Ò€E>H¤‹Íó#dòcóeÜ1±9ù ù[“è}+¼cñ;ÄvÞ)¿±Ó§YÌöÆ?)³#,K)Á8éÛõ r¢¹O‡ž'¸ñ_…¥¾»V{&1Üȧ‚†ó<û|§è:é"’/7Ì“ÉÍ—pÆÄçæ>ƒånO¡ô QO’)"ó|ÈÙ<˜üÙw lN~cè>VäúJ$ŠH¼ß26O&?6]ߘú•¹>‡Ò€ExoŒ~'xŽÛÅ7ö:tâ 9žØÇå#–db¥‰e8';~µèÿ‡Ò‰"’/7Ì“ÉÍ—pÆÄçæ>ƒånO¡ô QO’)"ó|ÈÙ<˜üÙw lN~cè>VäúJð¯üNñ·ŠoìtéÅ„s=±ÊG,ÈÅKÊpN:výhܨ®Sáç‰îß)úºH¤‹Íó#dòcóeÜ1±9ù ù[“è}('D‘Jº«)êdVö‡¬H§ì—óK32Qu&ÅD\ŒFqƒÀ<…99Æq¤ŠH¼ß26O&?6]ߘú•¹>‡Ò£»³Y ¸‚òØ4+ùã™2¢3žXáù[“ÇÒ€;˺ 6Jÿ¼CˆŸiûÜäp:‘Ü0sƒ-|¯ãŒ^5ƒÄ—úu–¦ÖVöW-E†2Ìcs˹ê9àçœûO¯¿Œü%þ¨ÐCya!†é÷€ æ‘ÆÀr}²§€¿¢¢’êÞ/7Ìž$òcóeÜàlN~cè>VäúJ$º·‹Íó'‰<˜üÙw8Ÿ˜ú•¹>‡Ò€%¢¢’êÞ/7Ìž$òcóeÜàlN~cè>VäúJp–33B$S*¨f@yäG¡Áü¥cøªÛÄ7z7•á›ûkGÍCç\ǽvó `òG·åÔ_M[N“R—MKësí¼Áæ(# íëŒw®ãt?ñkµK´šâ)­Ì&3ÃÆ>i£S¹T€ÜâG5Òx‹Áz‰öɨZm»ýUå»§Œÿ²ãŸÏ"€: +Æçñž·á 'OÖcñ´,á~±1¾ƒ©ÿ[lI|: ­ÏÝ_Çâ;´‡âÞ• Æ6cMžÒÕÞ‘z—pÇ?{‘ü^”éÃk:¯Ä »‹‰|+¥èËcnïþÕi׌UŠ*r7G= bi7š‹k6*ÿômA Äa¬£³³V¸‡îÁWÈ-Ó#žx¯EÕu5ÓmÁHÅܤ¥µ²œ4ÏŒàùn€dšÅð‹fñ†-Ýݰ¿´º{+»rÄì•ÝŒ¼8íÓ'ÔÖ„<8<3¡ýšID÷×3=ÝõÀÎ&¸åØ{tØ óšß  Ú†¡g¤éóßßÜGoi–YóÛ½xÕ—Å_ëóxŸ_ÕƒÜÚ‡IÓÖÒf6Ñäå‰Û·Í“'8PÏS^Ǩiz~¯mömJÆÚößpo*æ‘r:0#5•ÿ'ƒÿèTÐÿð]ÿ@ôúžƒasÅ-Ô 1NBnê÷¨¼Cÿ ØëúÏÿJc­(¢ŽRcXâE ˆƒ@àAY¾!ÿl?õýgÿ¥1ЭQ@Q@Q@Q@xß~Xø‡Ä7ƪK`näß<ÜM™¾yiœ‘ÏCŽÂ½’¢¸¢d¯ûÄ8‰öŸ¼9ÎG©À#8 ~ ð}‡‚<9‘`Yð|Éæn³J@ øÉÇ@z×CEQEãÞ0ø§ø“Äw:½†°ÚgÚ˜Ë<&ØÎV$³‚]qœôõÎ= x+ÁöðäZEgÁó'™ºÍ)3ã'tuë] QEWxÃàŸâOÜêöÃiŸjc,ð›c8iX’Î uÆsÓ×8ôÃEsÞ ð}‡‚<9‘`Yð|Éæn³J@ øÉÇ@z×CEQEãÞ0ø§ø“Äw:½†°ÚgÚ˜Ë<&ØÎV$³‚]qœôõÎ= x+ÁöðäZEgÁó'™ºÍ)3ã'tuë] QEWxÃàŸâOÜêöÃiŸjc,ð›c8iX’Î uÆsÓ×8ôÃEsÞ ð}‡‚<9‘`Yð|Éæn³J@ øÉÇ@z×CEQEãÞ0ø§ø“Äw:½†°ÚgÚ˜Ë<&ØÎV$³‚]qœôõÎ= x+ÁöðäZEgÁó'™ºÍ)3ã'tuë] QEWxÃàŸâOÜêöÃiŸjc,ð›c8iX’Î uÆsÓ×8ôÃEsÞ ð}‡‚<9‘`Yð|Éæn³J@ øÉÇ@z×CEQEã~5ø câÜkv©-»“|ð q6dfùä¤\rG=; î<áKhÉ£BþtSNeHsÉå ï!ËÉCºÚ¼±Ééîè€Ù+þñ"}§ïs‘ÀêGpÁÎ Œ¡Ñ”ç`à1Ò€ŠÎ€ÿeyv²ÒÅDVög{É!8#NsÐrIÏ9÷Ñ Š( ?øÃCáV¹mfË<Þm¼#`HÜE…>‡‘Ǹ­=sÁ·~%Ö̺Ÿˆ/“DE4«&0 Œ²)ÜÀóòñŽ=kQ<' Ç¬K«&›½–A3¿8iÀ}¹Û»ý¬g½lÐ~¡é~²[=& ;qü&3îOR}ÍW¾ðŸ†õ;É//ü?¥]ÝIóOeŽØ ±8¶(  8<á[[ˆ®-ü5£Cù±ÿÃ]nóní¹Ïû1õÏZú ¹ÍwYÒæŠ+(µ+7»…ª˜u2d\G‘·9ÈÁÏÒº:Êñüƒaÿ¯ë?ý)Ž€5h¢Š(¢Š(¢Š(¢Š*+º 6Jÿ¼CˆŸiûÜäp:‘Ü0sƒ-Ep7DÉ_÷ˆqí?xsœŽR;€Fp@%¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(+º 6Jÿ¼CˆŸiûÜäp:‘Ü0sƒ-Ep7DÉ_÷ˆqí?xsœŽR;€Fpe Š( KsFc–5‘Ua « ÜÛÝ‹y|û¥™¥”N PFØÛIù¸ í9÷»QÏ7VòÛÜEÐJ…$ŽE ®¤`‚Æ(J*’Mqoyå\nec EnBÀÊí“É!Žî31ëv€ (¢€ (¢€ (¢€#žn x."ŽXœa£‘C+pzÖ#xÂ.ìïám™ŽI:|D“ÿ|ÖýÈ¢ŽRcXâE ˆƒ@àAY¾!ÿl?õýgÿ¥1Ö­ex‡þA°ÿ×õŸþ”Ç@´QEQEQEQEÀÝ%Þ!ÄO´ýáÎr8Hî9Á–¢¸¢d¯ûÄ8‰öŸ¼9ÎG©À#8 ÑEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEÀÝ%Þ!ÄO´ýáÎr8Hî9Á–¢¸¢d¯ûÄ8‰öŸ¼9ÎG©À#82ÐEPEP%‰&…âeJ°ÏPzÕ%™´ùÒÞm¢ÚY 5Š'fBHr2ùOÌp:Ï] (¢¨$ŸÙÆ;yX- ÁlÍ+Ë+¶;Ëdö’Iä“W袊(¢Š(¢Š(¬¯ÿÈ6úþ³ÿÒ˜ëV±üM,phé4Ò,q%å£;¹ÀP.#$’z Ø¢²¿á'ðÿýtÏü ühÿ„ŸÃÿôÓ?ð.?ñ  Z++þÿÐwLÿÀ¸ÿÆøIü?ÿAÝ3ÿãÿÕ¢²OŠ|<£-¯i`gÞGþ4¿ð“øþƒºgþÇþ4«EeÂOáÿúéŸøøÑÿ ?‡ÿè;¦à\ã@µÀÝ%Þ!ÄO´ýáÎr8Hî9ÁÏÿ„ŸÃÿôÓ?ð.?ñ¨n¼Qáï)wkV <Äâ;øÐýáÎwŽ;‘Üd`çnŠÊÿ„ŸÃÿôÓ?ð.?ñ£þÿÐwLÿÀ¸ÿÆ€5h¬¯øIü?ÿAÝ3ÿãÿ?á'ðÿýtÏü ühVŠÉ>)ðòŒ¶½¥œsyøÒÿÂOáÿúéŸøøÐ­•ÿ ?‡ÿè;¦à\ãGü$þÿ î™ÿqÿjÑY_ð“øþƒºgþÇþ4‡Å>Q–×´°3Žo#ÿÖ¢²¿á'ðÿýtÏü ühÿ„ŸÃÿôÓ?ð.?ñ  Z++þÿÐwLÿÀ¸ÿÆøIü?ÿAÝ3ÿãÿÕ¢²OŠ|<£-¯i`gÞGþ4¿ð“øþƒºgþÇþ4«EeÂOáÿúéŸøøÑÿ ?‡ÿè;¦à\ã@´VWü$þÿ î™ÿqÿ!ñO‡”eµí, ã›ÈÿÆ€5¨¬¯øIü?ÿAÝ3ÿãÿ?á'ðÿýtÏü ühVŠÊÿ„ŸÃÿôÓ?ð.?ñ£þÿÐwLÿÀ¸ÿÆ€5h¬“âŸ(ËkÚXÇ7‘ÿ/ü$þÿ î™ÿqÿjÑY_ð“øþƒºgþÇþ4ÂOáÿúéŸøøÐ­•ÿ ?‡ÿè;¦à\ãH|Sáåm{K8æò?ñ  j++þÿÐwLÿÀ¸ÿÆøIü?ÿAÝ3ÿãÿÕ¢²¿á'ðÿýtÏü ühÿ„ŸÃÿôÓ?ð.?ñ  º 6Jÿ¼CˆŸiûÜäp:‘Ü0sƒ-b]x£ÃÞRîÖ¬y‰Äwñ¡ûÜïw#¸ÈÁÎ ßð“øþƒºgþÇþ4«EeÂOáÿúéŸøøÑÿ ?‡ÿè;¦à\ã@´VWü$þÿ î™ÿqÿð“øþƒºgþÇþ4«EeÂOáÿúéŸøøÑÿ ?‡ÿè;¦à\ã@µB7:v"¸” E«uq8Þò;í ‚=JÏ%€¡ÿ„ŸÃÿôÓ?ð.?ñ¯ðÿíª[l‹ÄL‰ÐÏjÞTŸR§*OÓm}Ep^ø—áÿܦ›¦Ý_ÏrRIÜÞÆªé—ÈO”m  c Q’Iç½ Š( Š( Š( Š( Š(  š—Ûí’3ËÛ<3gnsåȯÇn?·\\Šøüvãñ«uÃø×Å>&±i,¼ ®«}n¢K¹&#Ë…HÈP7)w#œØëšî(¯2øWñR_Ïy¦jv1Yê–‘‰Hˆ².v·ÊÙ*A#Œžµé´QESQ²û}²Cæy{g†líÎ|¹ñøíÇãV袀 (¢€ ©¨Ù}¾Ù!ó<½³Ã6vç>\Šøüvãñ«tPEPEPMFËíöÉ™åíž³·9òäWÇã·[¢Š(¢Š*¦£eöûd‡ÌòöÏ ÙÛœùr+ãñÛÆ­Ñ@Q@Q@5/·Û$>g—¶xfÎÜçË‘_ŽÜ~5nŠ(¢Š(ªš—Ûí’3ËÛ<3gnsåȯÇn?·EQEQETÔl¾ßlùž^Ùá›;sŸ.E|~;qøÕº( Š( Š( Š( ¼z?„Ÿ¼¥_ijÉwD–õŽÍÇ XÐ|ßC»½{ q?î¬ì|yw©hVúΟÆg·–å a— ¬ŒªÇp,;¯ç±ét&Ò$Ñm¦ÐRÑtÙPÏÿ/ßcÙ¿þ˜ù³ø? ÷ ¥h¢Š(¢Š(¢Š+ξ9][ÃðŸV†YâŽYÚ…Ài™…Èž;^‹Ey÷ÁVøE¢`J›€À‡Ïóø^ƒEQEÿÙÿØÿàJFIFPPÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀMí"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?÷ú(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€?ÿÙcloog-parma-0.16.1/cloog-core/doc/images/tree.txt0000644000175000017500000000054311321074700016461 00000000000000 * | |0 | V i | +-----+-----+ | | | |0 |1 |2 | | | V V V j S2 j | | |0 +--+--+ | | | V |0 |1 S1 | | V V k S4 | |0 | V S3 cloog-parma-0.16.1/cloog-core/doc/images/basic.txt0000644000175000017500000000035411321074700016603 00000000000000 j^ i>=2 | | j<=n+2-i | |\ | i<=n | | \ | m-+-****---+-j<=m | ***** | | ****** | | *******| 2-+-********-j>=2 | | |\ 0-+-+------+--->i | | | 0 2 n cloog-parma-0.16.1/cloog-core/doc/images/tree.jpg0000644000175000017500000003262111321074700016424 00000000000000ÿØÿàJFIFPPÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀZ®"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?÷ú(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€15=NòMEt!b7†1$÷‚cµBp ï9ù¶®GLž*8ü!¥Iå˪Du{µM­5ùóC†$F~DädmQŽÔxEDÚCêm‹.¥q-Ñis¼ÆÎÞP<œb=ƒãŽ:Öýa?ƒ´0æ[;?ìÙö%Ӝۖݒ¾`{‚8¥²Ô/¬µH´\Ç3LŒÖ—±®Á>ÞY2v¸ñò·$ÆÑ¹X^2¶øSP•x¸´‰®íÜ`–0]H$r0HÁ4»EGñ][Åq‡ŠTŽ:2‘*’€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€0<"Â!ôÆ’F—M¸–Ô¬¹Þ#Wo(žsÃ1Ï+~±5=2ò=Eu}!¢‚1öò’#º@r#î¸ù¶¶\*8ü_¥GåŪJt‹¶MÍ øò‚œ… H~GäàmcžÔ¿X^2¹xSP‰y¸»‰­-Ð`—–@Q@Œòr@9À4‡ÆZ„%èÔå*YcÓTÜ“ƒ·’™ É,@ÈÓ¬´ûëÝR-_WÂУ-¥”m¼A»†w| ÎG|«È³¸€lAV¶ñ[À"‰"Š `ʤ¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÊðÇüŠz7ýxÁÿ¢Öµk…Ö|A?…¾ ®³jT\[é–â"à ;E8Ý.£àKï ÌúåêjWqéš’]ÞË8’i”’0Ù †Vû¡A w‘EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEÍøÓÆºot¨5-V ¹-æœ@ ²+ÅY†AaÆÐ?â"ã]øö¨^vÒíäDŒa$Çþ;Yúþ½eãÛÿÙè..§‡TƒU¼HØ1³Ž w,½6¶[8

—o´ñ…Vm„|¤Ÿº}:ZŠ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(®ãý³ð¿XEt¶±‹¸Îq·Ë;˜õù7þ}3Šëu=ZÏH·YnåÚ]‚G‚ÒJÄà*(åŽHàVD«âvÑ£{k :Âæ¯Øyç*ÜmeF@„©9ö­r?toì߆Ézè¢]JæI÷cæØ¿"ƒÇO‘ˆë÷³Þ½J¹-Jñ…t[2Ñt­JÊÊÙb ˆÖr¶ÜsÕÕ˜Œ“ ±êoiš½®ª’yDž{y¤°“Ù”úó‚2ä9  ôQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEsú4M©êךÝ×Xå–ÊÎ,¶"Hä(í‚Üì„çt(É­}GíÃM¹þÌæÿËo³ý¤°‹~>]ûyÛž¸æ²|<#a@ kpöòÆ6%Ù$äq˫Ƣø Íð÷Ä%Œ€Å§\J…$d!–6*rÏ qÒ€7í~ÑöH~×å}§Ë_7ÊÎÍøù¶çœg8Í`ø¦6Óc_[*ý£NÀ8u·Y’F6¼uÁ^œÓü ÿ$óÃ_ö µÿÑKV|TÁ¯q´¯™¨¸”q±€#CÀåTÝ xCâLƒ5Õ¦nȧe²‹‹€Häoqå®?Ü|úñ̰xKHIÒæî5¤9Yõ Ã)õPß*ÀÖåQE•áùôoúñƒÿE­jÖG†·i öpHÈË«˜ðeΧÿ Ç:mö­w¨Cdl~Ïç•0ñ»@QÔ@ÀÍt×¾ÑïnZìÚ}žõºÝÚ;A1úºX{j¯öiÜÙj°jQêQùr}Ñ õ¿¯AEsÃÅkg ‹[Ó/t³•htóm‰'÷©£=Ü'oQËk«{Ûu¸µž)á|í’' ­ƒƒ‚8ê KX÷~Ò®f’â8ÎîEp×6R$%°I%Ürù²3@V'Ù¼Ce.mïíµL™1ÞÇäÈ«·´‘¿xgý_ByéM_Çl«ý³ay¥¶Ø÷I*y‚Çn<ÔÊ€m½AÅnÑQ[][ÞۭŬñO çl‘8elÇPjZ(¢Š(¬½rÛP¿µŽÊÂêK1;•¸»‹dQàçËÏG'dž Wá5Õ|=ñ6ÿ“k—úÆštµ¿Š[ù|Ùa7fÂØî2~€q@“EPEPEPEPEPEPEPEPEPEPEPEPEP^%¦êÖš _ÁøŸÃö½2 ÀÍpÓ;ìt^¬¸“¨ãå=+Õo!½—öÚt"L/dó¤eÛÚ8Îß¼qþ³ ÞZý}: (Ÿÿ„¶ÒÓjÒóG#¬—qƒ×ÎBÑþóíÖ· ž¨{yc–'Y#`ÊÃØŽµ%aÏá-!ç{›HdÓ®œå§Óä6ìÇÕ‚ü¯ÿ @ âi>ÒQÕî–‹NKHǰ}N¹oøßÁšž½q“©C]ÕIpËm,*.ê "/u9'’MtiŠ4°ån­5¸B1UE­Æsòè 6Gu9ç8àMÿ EŒùZœW:[™<µ7±íŽÝÜJ¤ÇÓ0x›Vø•¦ß^^Á´ŽmVÙ™’Ú%“€Ìù°J’Iþ£°Ôõ™yâ *ÆèZMx­v[oÙ¡S,ÙÛ»ýZØÀÎqФ<7q}¼ëšÅÍê¼m[[æÖßùPïn8û •±gag§Âa²´‚Ú"ÛŠC@OLàwà~TŒ5êD}ƒJ‡N‘X\jo¹ù<ˆÏnûO·\/ü"ÿlçZÕoµ,õ‡Ìò Þ\xÜ=œ¿ò®‚Нeag¦Û-µ¤¶ë÷b‚0Š>€qV(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ óïŒZö¿áŸ¦­áû“o47H· 䬃Ê`ÃÊqól㯸¯A®sǺ7ü$ÖôÀŒòKhí¨ÉiçAŒâUè3éÍq_üAâxrþm^ég³µ’+K0"DÙ±2ÃåÁ<4}>µëÂüÑ¿±¾èèÑí–ê3w!Îwy‡rž§&Ï˦s]ÕQEQEQEQEQEQEb?…tÄs-‚K¥Ìv~óO$­‘¹ÈÝHù”ðj9‰tÔ- Zk1¨rOôiÏÍ•†Q¸Èû©Ðߢ€9øüa¦Ç'•ªÇs£K¸(”b4b{, ˜ØçŒ'óßVWEt`Êà ƒE ªèÈêX`‚2¬ð†›´š[\hò“ÚtžZêb ÄÇÝþ´¿E|ÁñÄ~7Ñ~(=եƢÆ%·‚qhÑ-Ì@’K'ÝpX°Î0v‚1Ž=Àßô­~TÓ|CiŸÝÞĈ$|à€O(}›ó Z¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(SÔï$ÔWHÒ#xcOq(&;T'>óŸ›jätÉâ£ÂTž\º¤GW»TÚÓ_Ÿ41ÈbDgäNFFÕíG„TM¤>¦ÑȲêWÝ—;ÌlíåÉÆ#Ø08ã­m\¤ò[H–Ó,32’2o }vägó >ßÁñŒz‚xgû*i7·Ù&RŒ²/ ÈÈÜ#AÅji3M¢ÞA ÞCn#tf²¹¶ˆD’ã–FŒp®ÝÇÊÜîŠ_ 5ÝCÄ¿ô½_T˜M{pf28@€âgP0áZ>2¶øSP•x¸´‰®íÜ`–0]H$r0HÁ4»EGñ][Åq‡ŠTŽ:2‘*’€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¯2Ó¼iâÝsÀW>0ÒàÑZÒÉŸ*È$Xc,é7à¿Ëœmù JŠ(à…!†5Ž$P¨ˆ0túÂ×µ=Uc†ÏÃYÜjW™R[¹·‰>gÛóä^N@²üâ­W\»Öt}~ÆÞÓXÒ$‰.³1‰ÖE,¬»¹Áî{PcEPEPEPEPEPEPEPEP&§©ÞI¨®‘¤,FðÆ$žâPLv¨N }ç?6ÕÈé“ÅFžÒfú´?Û!6¼º‡ïƒ‚HŒü‰ÈÎF;Qái©´r,º•Ä·E¥Îó;y@òqˆö Ž8ë[W&à[Hm&¸Ú|±+R}Èãð kMм-¬XGªh1-¤rHîtÒÖ§!Îìªí¼†r«ÖZ…õ–©‘«˜æi‘šÒö5Ø'ÛË#¦Nמ>V䀸Ú*|=ñ%׋¼§ë·°Ã ÷F]ÑÂU + ÆI=gÞ­xÊØOáMBUââÒ&»·q€RXÁu qÈÁ gÐíÅuoÄ)P:8èÊFAüªJ(¢Š(¢Š(¢Š(¢ŠÀð‹t‡ÓI]6â[R²çx]¼¢xÌ{@Çm­ƒ×Š¥u¯xsP†?[Ág/›]^ªŽß•ÜylA8IÏjËø1¶ÿ 4™ 1I\ýÖ™ÙOâ?oøÊäAáMB%æâî&´·A‚^YE3ÉÉçÓGŒ4 ,:uÚê/³)˜†ç€Bã1‚ª2@Ër>ËO¾½Õ"Õõq- 2ÚYFÛĸgwÀÜäqÇʼ€[;ˆÄEko¼(" èªüªJ( Š( Š( Š( Š( Š( Š( Š(  Úý¾•¦]ê7lVÚÒžV$"©bq߀kʵï j^Š÷ÆÕéÛ åî•)ó`¸\îgCÎ>^ノ+Ön­¡½´šÖá7Ã4m‹’7)##ž†¹È¾xbRÝlg6ˆÁ…›ßNÖÙs sÅq@–:ÜW~°Õå†H>ÙoËnypΡ‚ݹÅgøoC]÷SÔo¥ŒêúÕÇŸ0ߨƒÄ¿Þ¼g’OIâ?ø{ÅÛC­XµÌ6ßê¢[‰bEí¨ÀŽ2j/ |?ðÇ„.æºÐ´Ï²M4~\çË&W9ƈê(¥¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(Â,!ÒLi$itÛ‰mJËâ5vò‰àg1ì9ñÒ·‹*• À8POSŒñøXºž™y¢º¾Ñ ÁŽ{yIÝ 9‘÷\|Û[®‘ªê^Õ–Èx¡?²ï-\Æ/¤kV‚@@;')äò± ï@þ +'Â-2•8œàŒpgÒº\ˆ<)¨D¼Ü]ÄÖ–è0KË ( Fy9 à¯iâ ZZCa¢OêE!¶Òc7(!@ýØ*¼2Äœ’5fËO¾½Õ"Õõq- 2ÚYFÛĸgwÀÜäqÇʼ€[;ˆÄEko¼(" èªüªJ( Š( Š( Š( Š( Š(  ¯ ȧ£׌ú-kV¸]gÄø[àºë6¥Ež™n",2°DSŽø,*Òê>¾ðœÏ©Þ^¦¥w™©%Ý쳉&‘II# ˜eoº@ÇpéQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQ^~ÍuâωzÖ‘6¡ym¥h–)ŠÊîKwyçRᙂÀ(àgŽN=Šä¾k—ÚÆ…y§"ͤêé·/IZ#ÃôF}OÚ]&‰¬jwÒÛ¦³¬ÜêVñÊ0Â)6í$uä óŠÚmzãU™íü;SªðúŒÙ6Ñž~èHÇE r2Ã4ŸØ·ºÓ™gçîœV–™£Ùi) µˆù’fšF/$¤wf<žÿLñWè Š( Š( Š( Š( Š( Š(  zŽ•eªÀ"½€Hå¯yHdou ÖW¬h.EЛWÓ@Oy¹„wÜŠ?z1ŽPnëòšèh  ‰|Q¡Aogq&­h°ÞÌ-íßÌyÈ\ö+ñ'ˆ¤Õ´{{;‹!ªÛBâ9K–v‰$ó’p«Ÿ ¾$êzeÌñÔ6WœGeuy!“°G-Ôú7~‡œí´QEQ^e§xÓź瀮|a¥Á¢´!¥’>UH°ÆXÒoÁ—8Ú;ó@•QÁ C kH¡Q`(è)õRöâé,m:Þ+ÉÊæ$y¼´n3Ëá°¨¨íÈÃø{âK¯xO×oa†£„ªWAŒ’z(ϽtôQEQEQEQEQEQEQEQEQEQEQEQEQEbjz䚊éBÄo bIî%Çj„àÞsóm\Ž™ÙmÇ”ç˜÷¨m§ÜgÆ|ÿ’C¡ÛÇþ”I]½Í„v陣*-çxHÀÀB=ºUøgJðµ‡Øtxf‚Ó9X^æYU9$íÇnI$ã&€5袊(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÀð‹t‡ÓI]6â[R²çx]¼¢xÌ{@ǵëÂüÑ¿±¾èèÑí–ê3w!Îwy‡rž§&Ï˦s]ÕQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQ^e§xÓź瀮|a¥Á¢´!¥’>UH°ÆXÒoÁ—8Ú;ó@•QÁ C kH¡Q`(è)õ™¨Ý_·Ùíô”ˆËp¬âîd/ *1É Abw (#<œñÎ/„¦Ó¯\ðÝ¥òyÖ/}f“.6™ .€ÿ ²ç¸##‘Ú¸Ûjžø‰­xY¯¤Ô´©-Fª·74ñÊï°«°%¶±éЙ¬OŽ——ZT¾—N¹šÎE¼tW·s B2¸ãb»/†RÉuáSyq#Mu4ïæÍ!Ü'šì¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÿÙÿØÿàJFIFPPÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀZ®"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?÷ú(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€?ÿÙcloog-parma-0.16.1/cloog-core/doc/images/tree.fig0000644000175000017500000000354011321074700016407 00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single -2 1200 2 1 3 0 1 0 7 50 0 -1 0.000 1 0.0000 5400 1200 237 237 5400 1200 5625 1275 1 3 0 1 0 7 50 0 -1 0.000 1 0.0000 3000 3600 237 237 3000 3600 3225 3675 1 3 0 1 0 7 50 0 -1 0.000 1 0.0000 7800 3600 237 237 7800 3600 8025 3675 1 3 0 1 0 7 50 0 -1 0.000 1 0.0000 6600 4800 237 237 6600 4800 6825 4875 1 3 0 1 0 7 50 0 -1 0.000 1 0.0000 5400 2325 237 237 5400 2325 5625 2400 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 2.00 90.00 180.00 5400 1425 5400 2100 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 2.00 90.00 180.00 5400 2550 5400 3375 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 2.00 90.00 180.00 3000 3825 3000 4575 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 2.00 90.00 180.00 7800 3825 6600 4575 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 2.00 90.00 180.00 7800 3825 9000 4575 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 2.00 90.00 180.00 6600 5025 6600 5775 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 2.00 90.00 180.00 5400 2550 7803 3364 2 1 0 1 0 7 50 0 -1 0.000 0 0 -1 1 0 2 1 1 2.00 90.00 180.00 5400 2550 3000 3375 4 0 0 50 0 0 22 0.0000 0 225 150 3075 4200 0\001 4 0 0 50 0 0 22 0.0000 0 225 150 6675 5400 0\001 4 0 0 50 0 0 22 0.0000 0 225 150 5475 3000 1\001 4 0 0 50 0 0 22 0.0000 0 225 150 3825 3000 0\001 4 0 0 50 0 0 22 0.0000 0 225 150 6900 3000 2\001 4 0 0 50 0 0 22 0.0000 0 225 150 6975 4200 0\001 4 0 0 50 0 0 22 0.0000 0 225 150 8475 4200 1\001 4 0 0 50 0 0 22 0.0000 0 225 150 5475 1800 0\001 4 0 0 50 0 0 22 0.0000 0 225 345 2850 4950 S1\001 4 0 0 50 0 0 22 0.0000 0 225 345 5250 3750 S2\001 4 0 0 50 0 0 22 0.0000 0 225 345 6450 6150 S3\001 4 0 0 50 0 0 22 0.0000 0 225 345 8850 4950 S4\001 4 0 0 50 0 0 22 0.0000 0 225 90 5355 2430 i\001 4 0 0 50 0 0 22 0.0000 0 300 90 2963 3667 j\001 4 0 0 50 0 0 22 0.0000 0 300 90 7763 3675 j\001 4 0 0 50 0 0 22 0.0000 0 225 150 6533 4890 k\001 cloog-parma-0.16.1/cloog-core/doc/images/tree.eps0000644000175000017500000001453011321074700016432 00000000000000%!PS-Adobe-2.0 EPSF-2.0 %%Title: tree.eps %%Creator: fig2dev Version 3.2 Patchlevel 3c %%CreationDate: Fri Sep 6 10:09:40 2002 %%For: bastoul@whisky (Cedric Bastoul) %%BoundingBox: 0 0 388 312 %%Magnification: 1.0000 %%EndComments /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save newpath 0 312 moveto 0 0 lineto 388 0 lineto 388 312 lineto closepath clip newpath -165.0 369.0 translate 1 -1 scale /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /DrawEllipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix mtrx currentmatrix def x y tr xrad yrad sc 0 0 1 startangle endangle arc closepath savematrix setmatrix } def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def $F2psBegin %%Page: 1 1 10 setmiterlimit 0.06000 0.06000 sc % % Fig objects follow % 7.500 slw % Ellipse n 5400 1200 237 237 0 360 DrawEllipse gs col0 s gr % Ellipse n 3000 3600 237 237 0 360 DrawEllipse gs col0 s gr % Ellipse n 7800 3600 237 237 0 360 DrawEllipse gs col0 s gr % Ellipse n 6600 4800 237 237 0 360 DrawEllipse gs col0 s gr % Ellipse n 5400 2325 237 237 0 360 DrawEllipse gs col0 s gr % Polyline gs clippath 5355 2115 m 5445 2115 l 5445 1888 l 5400 2068 l 5355 1888 l cp eoclip n 5400 1425 m 5400 2100 l gs col0 s gr gr % arrowhead 15.000 slw n 5355 1888 m 5400 2068 l 5445 1888 l 5355 1888 l cp gs 0.00 setgray ef gr col0 s % Polyline 7.500 slw gs clippath 5355 3390 m 5445 3390 l 5445 3163 l 5400 3343 l 5355 3163 l cp eoclip n 5400 2550 m 5400 3375 l gs col0 s gr gr % arrowhead 15.000 slw n 5355 3163 m 5400 3343 l 5445 3163 l 5355 3163 l cp gs 0.00 setgray ef gr col0 s % Polyline 7.500 slw gs clippath 2955 4590 m 3045 4590 l 3045 4363 l 3000 4543 l 2955 4363 l cp eoclip n 3000 3825 m 3000 4575 l gs col0 s gr gr % arrowhead 15.000 slw n 2955 4363 m 3000 4543 l 3045 4363 l 2955 4363 l cp gs 0.00 setgray ef gr col0 s % Polyline 7.500 slw gs clippath 6563 4544 m 6611 4621 l 6803 4500 l 6627 4558 l 6755 4424 l cp eoclip n 7800 3825 m 6600 4575 l gs col0 s gr gr % arrowhead 15.000 slw n 6755 4424 m 6627 4558 l 6803 4500 l 6755 4424 l cp gs 0.00 setgray ef gr col0 s % Polyline 7.500 slw gs clippath 8988 4621 m 9036 4544 l 8844 4424 l 8973 4558 l 8796 4500 l cp eoclip n 7800 3825 m 9000 4575 l gs col0 s gr gr % arrowhead 15.000 slw n 8796 4500 m 8973 4558 l 8844 4424 l 8796 4500 l cp gs 0.00 setgray ef gr col0 s % Polyline 7.500 slw gs clippath 6555 5790 m 6645 5790 l 6645 5563 l 6600 5743 l 6555 5563 l cp eoclip n 6600 5025 m 6600 5775 l gs col0 s gr gr % arrowhead 15.000 slw n 6555 5563 m 6600 5743 l 6645 5563 l 6555 5563 l cp gs 0.00 setgray ef gr col0 s % Polyline 7.500 slw gs clippath 7802 3411 m 7831 3326 l 7615 3253 l 7772 3354 l 7587 3338 l cp eoclip n 5400 2550 m 7803 3364 l gs col0 s gr gr % arrowhead 15.000 slw n 7587 3338 m 7772 3354 l 7615 3253 l 7587 3338 l cp gs 0.00 setgray ef gr col0 s % Polyline 7.500 slw gs clippath 2971 3337 m 3000 3422 l 3215 3348 l 3031 3364 l 3186 3262 l cp eoclip n 5400 2550 m 3000 3375 l gs col0 s gr gr % arrowhead 15.000 slw n 3186 3262 m 3031 3364 l 3215 3348 l 3186 3262 l cp gs 0.00 setgray ef gr col0 s /Times-Roman ff 330.00 scf sf 3075 4200 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 330.00 scf sf 6675 5400 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 330.00 scf sf 5475 3000 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 330.00 scf sf 3825 3000 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 330.00 scf sf 6900 3000 m gs 1 -1 sc (2) col0 sh gr /Times-Roman ff 330.00 scf sf 6975 4200 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 330.00 scf sf 8475 4200 m gs 1 -1 sc (1) col0 sh gr /Times-Roman ff 330.00 scf sf 5475 1800 m gs 1 -1 sc (0) col0 sh gr /Times-Roman ff 330.00 scf sf 2850 4950 m gs 1 -1 sc (S1) col0 sh gr /Times-Roman ff 330.00 scf sf 5250 3750 m gs 1 -1 sc (S2) col0 sh gr /Times-Roman ff 330.00 scf sf 6450 6150 m gs 1 -1 sc (S3) col0 sh gr /Times-Roman ff 330.00 scf sf 8850 4950 m gs 1 -1 sc (S4) col0 sh gr /Times-Roman ff 330.00 scf sf 5355 2430 m gs 1 -1 sc (i) col0 sh gr /Times-Roman ff 330.00 scf sf 2963 3667 m gs 1 -1 sc (j) col0 sh gr /Times-Roman ff 330.00 scf sf 7763 3675 m gs 1 -1 sc (j) col0 sh gr /Times-Roman ff 330.00 scf sf 6533 4890 m gs 1 -1 sc (k) col0 sh gr $F2psEnd rs cloog-parma-0.16.1/cloog-core/doc/images/basic.fig0000644000175000017500000001045111321074700016530 00000000000000#FIG 3.2 Landscape Center Inches Letter 100.00 Single -2 1200 2 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 5400 3900 75 75 5400 3900 5400 3975 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 4800 3900 75 75 4800 3900 4800 3975 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 4200 3300 75 75 4200 3300 4200 3375 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 4800 3300 75 75 4800 3300 4800 3375 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 4200 2700 75 75 4200 2700 4200 2775 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 4200 3900 75 75 4200 3900 4200 3975 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 6000 3900 75 75 6000 3900 6000 3975 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 6600 3900 75 75 6600 3900 6600 3975 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 7200 3900 75 75 7200 3900 7200 3975 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 7800 3900 75 75 7800 3900 7800 3975 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 7200 3300 75 75 7200 3300 7200 3375 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 6600 3300 75 75 6600 3300 6600 3375 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 6000 3300 75 75 6000 3300 6000 3375 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 5400 3300 75 75 5400 3300 5400 3375 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 4800 2700 75 75 4800 2700 4800 2775 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 5400 2700 75 75 5400 2700 5400 2775 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 6000 2700 75 75 6000 2700 6000 2775 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 6600 2700 75 75 6600 2700 6600 2775 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 6000 2100 75 75 6000 2100 6000 2175 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 5400 2100 75 75 5400 2100 5400 2175 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 4800 2100 75 75 4800 2100 4800 2175 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 4200 2100 75 75 4200 2100 4200 2175 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 4200 1500 75 75 4200 1500 4200 1575 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 4800 1500 75 75 4800 1500 4800 1575 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 5400 1500 75 75 5400 1500 5400 1575 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 7800 3300 75 75 7800 3300 7800 3375 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 8400 3900 75 75 8400 3900 8400 3975 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 7200 2700 75 75 7200 2700 7200 2775 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 6600 2100 75 75 6600 2100 6600 2175 1 3 2 1 0 0 50 -1 20 3.000 1 0.0000 6000 1500 75 75 6000 1500 6000 1575 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 2.00 120.00 180.00 3000 5100 9600 5100 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 2.00 120.00 180.00 3000 5100 3000 900 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 3000 4500 2925 4500 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 3000 3900 2925 3900 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 3000 3300 2925 3300 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 3600 5100 3600 5175 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 4200 5100 4200 5175 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 5400 5100 5400 5175 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 4800 5100 4800 5175 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 6000 5100 6000 5175 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 6600 5100 6600 5175 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 3000 2700 2925 2700 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 3000 1500 2925 1500 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 3000 2100 2925 2100 2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 3000 1500 9000 1500 2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 8400 5100 8400 900 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 7200 5100 7200 5175 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 7800 5100 7800 5175 2 1 0 1 0 0 50 -1 20 3.000 0 0 -1 0 0 2 8400 5100 8400 5175 2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 3000 3900 9000 3900 2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 5400 900 9600 5100 2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 0 0 2 4200 5100 4200 900 2 3 0 0 0 7 51 -1 15 0.000 0 0 -1 0 0 5 4200 1500 4200 3900 8400 3900 6000 1500 4200 1500 4 0 0 50 -1 2 26 0.0000 0 270 195 2625 4650 1\001 4 0 0 50 -1 2 26 0.0000 0 270 195 2625 4050 2\001 4 0 0 50 -1 2 26 0.0000 0 270 195 3525 5550 1\001 4 0 0 50 -1 2 26 0.0000 0 345 135 2700 1050 j\001 4 0 0 50 -1 0 26 0.0000 0 270 750 8025 825 i<=n\001 4 0 0 50 -1 2 26 0.0000 0 270 195 4125 5550 2\001 4 0 0 50 -1 2 26 0.0000 0 180 225 8325 5550 n\001 4 0 0 50 -1 2 26 0.0000 0 180 330 2550 1575 m\001 4 0 0 50 -1 0 26 0.0000 0 360 750 9075 3975 j>=2\001 4 0 0 50 -1 0 26 0.0000 0 360 855 9075 1575 j<=m\001 4 0 0 50 -1 2 26 0.0000 0 270 105 9450 5475 i\001 4 0 0 50 -1 0 26 0.0000 0 270 750 3825 825 i>=2\001 4 0 0 50 -1 0 26 0.0000 0 360 1410 4875 825 j<=n+2-i\001 cloog-parma-0.16.1/cloog-core/doc/Makefile.in0000644000175000017500000002410111511607563015567 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in TODO ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_submodule.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITS = @BITS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CD = @CD@ CFLAGS = @CFLAGS@ CFLAGS_WARN = @CFLAGS_WARN@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GIT_INDEX = @GIT_INDEX@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ISL_CPPFLAGS = @ISL_CPPFLAGS@ ISL_LDFLAGS = @ISL_LDFLAGS@ ISL_LIBS = @ISL_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEXI2DVI = @TEXI2DVI@ VERSION = @VERSION@ VERSION_MAJOR = @VERSION_MAJOR@ VERSION_MINOR = @VERSION_MINOR@ VERSION_REVISION = @VERSION_REVISION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ versioninfo = @versioninfo@ all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am @HAVE_TEXI2DVI_TRUE@cloog.pdf: cloog.texi gitversion.texi @HAVE_TEXI2DVI_TRUE@ $(TEXI2DVI) --pdf $< gitversion.texi: @GIT_INDEX@ echo '@set VERSION '`$(top_builddir)/genversion.sh`'' > $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: cloog-parma-0.16.1/cloog-core/doc/cloog.pdf0000644000175000017500000116112511511607626015331 00000000000000%PDF-1.4 %ÐÔÅØ 1 0 obj << /Length 587 /Filter /FlateDecode >> stream xÚmTM¢@½ó+z&ÎÁ±?tBL$ñ°ãd4›½*´.‰<øï·_•èÌf’W¯_wÕ«îrðãc;Šòê`GæUŠOÛV×&³£øç¾öƒ¤Ê®[vïÖæ6ïWÛ7ñÑTÙÖvb¯“uYt/N¼.³ó5·½êÿ¢¥=åS‚> stream xÚmTM¢@½ó+z&ÎÁ±?tBL0ñ°ãd4›½*´.‰<Ì¿ß~U¢Îf’W¯_u½ªîvðãc;ZäÕÁŽÌ«Ÿ¶­®MfGñÏ}í I•]/¶ìÞ­ÍmÞ¯¶o⣩²­íÄ0^'ë²è^œx]fçkn{ÕÿEK{*ʇuÄpg6;µÞ$4»¢;»µgZ8, ’ü²M[Tå›P¯RJG¤eWxm½ñ­ž÷ŽE™7·¢â žÒ"/²îÑ7»¸¦‘¼ýj;{Y—ÇÊ‹"1þt‹m×|‘£o¼irÛåI É‘c¶×º>[TÒ›ÏEnn#×ÛûþbÅø¹‘ûÒî«¶BS¬ØEVå¶­÷™möåÉz‘”s…«¹gËüŸµ)gŽÏR©ð133wÄ xAÄbêí;¬ÒaGL6K& 0+‡}&ö"?‘á°(Ò¦Òa/ ¡cì,•!£½¥‰î-fö3¤Ù*IÃx {aªùð”sIC%ÒðhSô¢¨7å£Å}­HÏ=ŤIYƒ¹(îƒêjŧ ÿZóéàü4{ÖØSOØá5˜‡áZ ä®ekxvKº·Ǭü÷…Ü@2aÂ> stream xÚmSÁnâ0½ç+¼$z Ø¨"¤€ÄaKU¢Õ^C<ÐHàDN8ð÷õÌŠV{Hôüæç=üúØS`¾Jñ m}u%ŒÒßE Y]^/`»w¦¶oâÃÕå:1L·ÙÖVÝ‹omy¾èUÿ­àTÙ ÖÃþŽv¹Êó‘DM^ug{¦…Ç‚° ÉpmUÛ7¡^¥”žX[“ÖôÚã{=1î+kܽ¨8 …@iaª²»¯è_^|Ó˜¼¿µ\¶öXq,ÆŸ>ØvîFŽ^‚ñÎp•=‰!9òÌþÚ4gÀêBË¥0pôùÞÞ‹ ˆñs#P~k@hZ+vQÖÚ¦(ÁöA,åRÄÑf€5ÿĦœq8>K¥Â_¸—žX NˆHæžÐÔ3$¤Çž˜{<Ý0Š*¢5cÕ~ÿP÷õʯÂùÝ5WÂ42^!ž0^#žrq‰xƘœE„3xÎü ñ ªz“)cÒgl1BÌîÒ°õ•?ŸXqû!òŠNA‡¨Wš»A*dý1ùÔ)iȧΰÅç“Оó â9ç’†NVf¤¡–kô¯VäaŠžUJü†ôì?%Íš5Ø»bÿTW£=ј«±®–¾Œ¿É5ëñ2éfè&p2pj³V^ócH£Mc†VYxLS7˜E=›þ1âj· ¾gÈÈ endstream endobj 6 0 obj << /Length 329 /Filter /FlateDecode >> stream xÚ}‘MOÄ †ïý!±È0PÊÑ5»›5ö¦j?ÜÆµÕZþ{‡ÒÃxŸw>€)ZÀ¼bQz“³ê-QËíkËÉ ¦ýäSÞRøGœ=uzÖoŠä|ç4ÓJf6·¬hƒ·Í@úŒ5{à—׃Hø°OÅU²-’_RøjÉɯFÁ›b k“»È·À@I¯<>B&-³FKƒÑâ‚ y0Ò9Þc¸oúf,§a ¡á;‘¾÷UÙ÷]ÿÞŠ ;~šz,C–,C©R´ôVG—mÝMÝÐG‰–pOíÊœ Õ.:ÇJR¢0ã¨F£ü‚ƒˆ»©¦áyN¸# ìtXèJ¹ œ[ F¢Ét(=EƒršQŽÊ_[,´åJ£°H8‘¯Ç®"–³|#€—ŸÓðu<ÙPDü;šÇu?&ƒÞ endstream endobj 5 0 obj << /Type /Page /Contents 6 0 R /Resources 4 0 R /MediaBox [0 0 612 792] /Parent 9 0 R >> endobj 4 0 obj << /Font << /F72 7 0 R /F51 8 0 R >> /ProcSet [ /PDF /Text ] >> endobj 12 0 obj << /Length 1486 /Filter /FlateDecode >> stream xÚVëoÛ6ÿž¿ÂùTˆ4RË0l©ë¦)ÚÂXÜÛºŒL[\$ÑÕ£äßïT?" ƒS<Þïù;Ê‘€ŸÍÄ(¢`OGYy!˜úp!ù+ŽBXü$ Gþ‘ôëÕÅo9’"˜‰™­6¨~2IƒÙ,­Ö£?½/"wz×êrN½û±ÿºûQy¡Îåø¯Õ{Ðë#_ÎNIÍü‹£q&ž^×&#ùתimW°ø‰IL@CH ; wów‹7Ÿ?,î@VHïfñiñëõxy«Q.//Ç~ÅÞ-íÿîš–¾*­×ôÕZZÕnWì™”ƒkðz•E¯p—z¹®5dª"^ÖüEȸZ£ÙÎÍ##9¶µ.Nô¿&ZÆ;Í,ºÒµj­ eìý|9DŸÃpÈ¥‚€9 oµêÚÚ@2þWüÞ•e@€ÂÝ'3o£Ü¦b Z¢™ ­{ …íèø7øg¶Æ–ºÍMµ¥íŽÝÅðà dƒVâ‘®l·Í¯!ìµ¾*ø0WHøæDˆ‚ Âõ±6­>‰0yaZr~2`ŸôêD¥WlèÀű\(`™…$ºÊMƒ"¼’|éTñ§™¾ÁlàÇü'ð†¾]Õ7ÆVÄ 9 $x'1&™»iÑ*ŠÖr>æŒÌð '>μæK ¾jwbꃲ«0Äuö‡Ï!/ö94”‚ĦB€‹˜ÇX¢Kh\|抜z»šë°ËœÀ«hqšºÅí7Ó˜ÖewZeèVÎÚ©ô¶v!”TÈM`}šÛ5“n\TqoxuÑÀeßí?‚¨š£4~iåmC\ Õàlp߀ ¬ôwÄt"™ê­õ‡ôÜ[ûpj8.OËëùꕌhw»X,ø«ju]9/z3ç¶‚ÚÓUÆÀ¿6÷3 |+4Ë]×Yµ]Í’®÷He¹3ÅQ¬V:Ë+óµÓ͹²wƒŽ½ˆd"ðå_ cÐV7g©J}(šÁÄ–¶jó3îÆ=–îuý> endobj 10 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F60 14 0 R >> /ProcSet [ /PDF /Text ] >> endobj 59 0 obj << /Length 2606 /Filter /FlateDecode >> stream xÚíœ[o¹Çßó)ôV ¨Øá}¦X´hÖÙî)ÒÖÞö¡íÃD¯KŠ4ò&ýô%5¼œ‘H†›Ø±½D¾œáßæÿÇÃËŒ'…ú‡'U1‘”¢Š•“ÅÍ‹Â|õÝ l>š«€9ˆxyñâwßq<ÁªŠ O.®&—¨’®™‹ËÉ¿§íì¿yñêµà ù„Ž8R’d‚%"˜3­¤~Q2„)T.f›Öo»f6§’OWWÃë·«åŒâiß /[ý³ M1D™ º)õ[1Œ &†–ðlŽ1áÓ†G6+Õž^î}«Û?¯~EðÉsÓ§ì„ÝL‚~ј¡RãÌ£f®fV”Ve˜'~ÜV¨ÙfôzÚy=Ì«?ŸŸ¯®z=›ü¬ÿ«7Mh!jî,eu—ãÿ çsÛ9ùÄÆóù¨gyÈ?(ñïP)<"¹ºFÃÎ/ƒ>јÏI)7Ë`ލpÅ 5.«¦Îâ}-ªÌTµhÀȪD„U§JæÎ;´VHw¹u,É›‰ƒàoMKÌ"P—ÔrÀ*—`³ÀyÆö̽YGW£Xµ ÷÷žq3…Y.ŒWy¨ùàjÐ~Ü7ª1Ô’Zvc¥Ò¡æŠ×õÖTÉgͺ¿Šè~åÉ»iÿg*j½ý«ç±Íª3,’‘T…-Ü:nÞ O}s©ÛýCˆ^.¨¾ÎÂ/âªí–,WApÂÕQO‡]…ªWÓZÎUÉQ…¹wÕV&nå}¶Rĸ[$ͯ>mk‰ vÏ;d1?M‡äùéƒS~Â>Žø Tc~&µœŸ‚ )€Ÿ¶9ooÖ]{õq䨭^”4†¯}¿ëÂö™_ÃÚ·½6þ½]­º¦^” ±G:©ÄŒ7=—g¼NÍÀÁmP¨3>©åŒg˜yãm-ðf¹0Ãô¢½1‡ ¶8e!ìVLƒÕ˜…I-g!ˆ ê-äÆÂWïwu×özÄšñ{®…õ¥^S„üRkê@çÍvgùì:ða6%­G¦ßòl÷Á)Û¡ÛjÌö¤–³PD1°]OÁ¯›[í~£Ï¢Ìè»ZmrXPÁÄÏ½Ž…®¹mº B¢’=šóó˜é¦×òL÷Á)Ó¡ÓjÌô¤–3ùÑ™.í<Ý×}scö{†lý²[í­z¶~t]~Û­ï2Æ|EPAÄ£^ûÅì7ý—g¿NÙ-Á,h?PÙŸÔ²öÓJ¢coiSã™ù¼ß´—Í6ä¹jc_ToMä§M×+~ÂéÞ+4†ÙNÌb'ùfªFHk9JŠJ¨ìîÍêfÝvæòÔ¾Xß3qÙ„‡þ¸:_<üÍmÝíšú„›=øðÙkú'Ï^œ²v9ž7BÕ˜½I-g¯,îâìçš[TˆV¾’[ŒýÄ(æfesÓWyN»Ø”Ñ óqðHÆlN 9—¹Jü6Ûm±7»^\•ê)üzʸ¹Ú?®ÈôÅ8ùÌ÷hcìòàñÁ)z ©8x4Ucü$µ@L_’Ù¸ï›nÂG ÇZŸùµ)ÐÒÆ¨•Bp_g´J¼ŸI#Êøép £1>æaèƒSB4"Õ†I-‡!Ū(,†vãðŸúHºÙl#›C*™ á7‡æ·£ÐñmtŽp‰”·áK7Hz¸ÅÇš1ÔŒWy¨ùàjÐþj@5†ZRË¡†KU I€šÝªüû®m‚3¦׸ó÷ ðà÷A’È Äü!ÓûHÞ+¸|æ×ºbøÿòðóÁ)ü ü€j ¿¤–=2§ú•;üøÁ…ÓýœÎì±%ïœDeyšïŸ7cXo>8Åd ÂPñv ut?H®Šæ —þ‚ûé¯Û·›zó1|-]­JÊÇ~-+dÛië†Ø9]L?hr¾ÁÃT¨±îP+œ*ô;51˜PwááðvÍYÝ×n»n·èw›aŽMÏšíbÓ®c·öp¥ÚÇO¾¼ŽŒ[Û{Yã'ÆíȈù@5f~RË–)„ D¤7ßÛßûÚïÕÏÒTQLOïG¸ÿ¹Áš”ǘN1}0TcŒ%µc*©a"84™/AÕPI-L*)™B ’@ Ülø7}P½ê>ª’58b$ä)IÝK’2¦ä1åƒSLAŸ#LÕSI-Ë”¾*$ƒLÙÙ¯ÝvÁ[¡ôÄÒ×SˆPgmË¢'¨‘¦ªF¨KkÙ©—â„zêØqUïß“š1F¼”ÏüÏB|qò²>äaäƒSAkIðúTa”ÔrÉKHD%&ÄŸ­)yLùàSÐçS@5ÆTRË1ÅÙþ.`ê4!> ÑØ–GNQIˆPTcÔ%µÜ„¨ÿÖ–½*£©ãGâËvµL,iðsÙíú²e íì6Áôœï“IG×ÿ>õÙm endstream endobj 58 0 obj << /Type /Page /Contents 59 0 R /Resources 57 0 R /MediaBox [0 0 612 792] /Parent 9 0 R /Annots [ 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 20 0 R 21 0 R 22 0 R 23 0 R 24 0 R 25 0 R 26 0 R 27 0 R 28 0 R 29 0 R 30 0 R 31 0 R 32 0 R 33 0 R 34 0 R 35 0 R 36 0 R 37 0 R 38 0 R 39 0 R 40 0 R 41 0 R 42 0 R 43 0 R 44 0 R 45 0 R 46 0 R 47 0 R 48 0 R 49 0 R 50 0 R 51 0 R 52 0 R 53 0 R 54 0 R ] >> endobj 15 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [441.93 643.088 450 653.051] /A << /S /GoTo /D (1) >> >> endobj 16 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [444.545 624.529 450 634.226] /A << /S /GoTo /D (1) >> >> endobj 17 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [444.545 611.378 450 621.075] /A << /S /GoTo /D (2) >> >> endobj 18 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [441.93 581.619 450 594.371] /A << /S /GoTo /D (5) >> >> endobj 19 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [444.545 565.849 450 575.546] /A << /S /GoTo /D (5) >> >> endobj 20 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [444.545 552.698 450 562.395] /A << /S /GoTo /D (6) >> >> endobj 21 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [444.545 539.548 450 549.123] /A << /S /GoTo /D (7) >> >> endobj 22 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [444.545 526.397 450 535.973] /A << /S /GoTo /D (8) >> >> endobj 23 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 513.246 450 522.943] /A << /S /GoTo /D (10) >> >> endobj 24 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 500.096 450 509.671] /A << /S /GoTo /D (11) >> >> endobj 25 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 486.642 450 496.642] /A << /S /GoTo /D (11) >> >> endobj 26 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 473.491 450 483.491] /A << /S /GoTo /D (11) >> >> endobj 27 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 460.643 450 470.34] /A << /S /GoTo /D (12) >> >> endobj 28 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 447.493 450 457.19] /A << /S /GoTo /D (13) >> >> endobj 29 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 434.039 450 444.039] /A << /S /GoTo /D (13) >> >> endobj 30 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 420.888 450 430.888] /A << /S /GoTo /D (13) >> >> endobj 31 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 410.162 450 417.738] /A << /S /GoTo /D (14) >> >> endobj 32 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 394.89 450 404.587] /A << /S /GoTo /D (14) >> >> endobj 33 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 381.436 450 391.436] /A << /S /GoTo /D (15) >> >> endobj 34 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 370.71 450 378.286] /A << /S /GoTo /D (16) >> >> endobj 35 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 355.135 450 365.014] /A << /S /GoTo /D (17) >> >> endobj 36 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 341.984 450 351.984] /A << /S /GoTo /D (17) >> >> endobj 37 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 331.258 450 338.712] /A << /S /GoTo /D (17) >> >> endobj 38 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 315.683 450 325.562] /A << /S /GoTo /D (17) >> >> endobj 39 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 302.835 450 312.532] /A << /S /GoTo /D (17) >> >> endobj 40 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [433.861 273.076 450 285.828] /A << /S /GoTo /D (21) >> >> endobj 41 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 257.306 450 266.882] /A << /S /GoTo /D (21) >> >> endobj 42 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 244.155 450 253.852] /A << /S /GoTo /D (21) >> >> endobj 43 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 231.005 450 240.702] /A << /S /GoTo /D (21) >> >> endobj 44 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 217.854 450 227.551] /A << /S /GoTo /D (22) >> >> endobj 45 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 204.703 450 214.4] /A << /S /GoTo /D (22) >> >> endobj 46 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 193.674 450 201.25] /A << /S /GoTo /D (22) >> >> endobj 47 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 178.402 450 188.099] /A << /S /GoTo /D (23) >> >> endobj 48 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 165.251 450 174.948] /A << /S /GoTo /D (23) >> >> endobj 49 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 154.222 450 161.798] /A << /S /GoTo /D (23) >> >> endobj 50 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 138.95 450 148.647] /A << /S /GoTo /D (24) >> >> endobj 51 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 127.92 450 135.496] /A << /S /GoTo /D (24) >> >> endobj 52 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 112.649 450 122.346] /A << /S /GoTo /D (25) >> >> endobj 53 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 99.498 450 109.195] /A << /S /GoTo /D (25) >> >> endobj 54 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 86.347 450 96.044] /A << /S /GoTo /D (26) >> >> endobj 60 0 obj << /D [58 0 R /XYZ 90 720 null] >> endobj 57 0 obj << /Font << /F51 8 0 R /F72 7 0 R /F97 61 0 R /F59 62 0 R /F52 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 97 0 obj << /Length 1097 /Filter /FlateDecode >> stream xÚí˜ËrÛ6†÷~ .©…PÜ/]æâL:î$“QVi¬B§œJ”BQ™¦O_PH`&¶g¢ñB$}ÄÀÿéàà  ê?”)˜ B€¢2[o/ }úϲWK°ô"ž¬.~¹d(C(¨P¶ºö_±zŸ½Ë«j±D‚bš?½Ú-–X介%!4_v$/ÌǦû§Ìw{sû¡¬Ë¦hw‰½6$?¬‹º®êæno¾³ùüwù¾)®~»x¾êGË0¾e:]Ä-óAH)e&ô3H„™(=/aþ층c6”v‚$Yï­ÿeµ)ÍÃË…$ù±^ |­_·ú¢ÚÕÝе²)+8Õ=Iþª£¹0|t|8#äŽo†L–Ÿº©¸•ë,Xêÿè@˜o„‹]zÁ3¦¯<­ æ7”©Þ4¾‹¸E Aª± W\ЭíS³_ÛÎí,ÔWùðî~Tîø0Bš³ji^p‚´‘ûaÒ|Õii­ž4I€ Ü‘F,ioʶ©ÊO}Òû´ÐØ•]òhtò8t•¾ÐIä”jªZ'ËmÑÆ²Š @*ühi¼?…$v•çA2§ ƒxª1H’Z=$&™ƒ„ZHžÿ[l÷nÙ]®ª¿4MÑ|6÷oÛjSý—@ƒIð´ãÜ7vmç¡1§ÐÙFÃS¡1Ñ8Cʱ-¹8E€*jd:&fºþ8´Åfc‡`fË"¨Û²Nî+á¿Qô·~¬Äðµ~ëÈQ¿ji¿MìÒ x0}¥ñ›ýöTc~O´"©3™M; › ®ªuYÊÐ/œcÀ ;W"ß_!–¬¥ó2МÊ@>%"=Õ‘I­žH¤ÏE9"q_Á| ¾^˜Æ@Wj¢? ƒ»}Wú}‚Æ€Jt†ðK)r6Ì¢È NP4r6L‘¯¡(­ÕS$à¹Äõâ÷׆‘+£g¢Ä€„þt(ű+<!8ˆo¡A@<Õ I-·¯1¡#é=)ÕÚµlí­ÏZæhB„  Oã?ÁqëÎ-D·þóð‚Søø–FðñTcø$µz|˜öø¸3û+›C¼ÆpY´Ç¦ HúHw®*=Yƒæñ5§øò=',È—§ã+©ÕóE9@ ;¾˜åëm]õY(œ‚ŸÐ7®¹]óh‚S´ù`›ÚWÑ6ѺÑfbHÈ‘‘a¶ÍôÌt•ÖÇî|§/Z·I‹‰0 Ô½Ö×´i8¹õ›Õpò‚ §‘%D÷TcÎ'µ´óTRÀ¥MgÜ:ÿ¦¼.›²^» kâ6Ô#”øÁÝ~4]ÆÔ#@¸e„œbäQ! |Õˆÿ™1zÛ endstream endobj 96 0 obj << /Type /Page /Contents 97 0 R /Resources 95 0 R /MediaBox [0 0 612 792] /Parent 9 0 R /Annots [ 55 0 R 56 0 R 83 0 R 84 0 R 85 0 R 86 0 R 87 0 R 88 0 R 89 0 R 90 0 R 91 0 R 92 0 R 93 0 R 94 0 R ] >> endobj 55 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 707.916 450 717.613] /A << /S /GoTo /D (26) >> >> endobj 56 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 694.765 450 704.341] /A << /S /GoTo /D (26) >> >> endobj 83 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 681.615 450 691.312] /A << /S /GoTo /D (30) >> >> endobj 84 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 668.464 450 678.161] /A << /S /GoTo /D (30) >> >> endobj 85 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [433.861 638.705 450 651.457] /A << /S /GoTo /D (33) >> >> endobj 86 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 625.056 450 632.511] /A << /S /GoTo /D (33) >> >> endobj 87 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 609.784 450 619.36] /A << /S /GoTo /D (33) >> >> endobj 88 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 596.027 450 606.937] /A << /S /GoTo /D (33) >> >> endobj 89 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 582.877 450 593.786] /A << /S /GoTo /D (34) >> >> endobj 90 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 572.453 450 580.029] /A << /S /GoTo /D (34) >> >> endobj 91 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 557.181 450 566.878] /A << /S /GoTo /D (35) >> >> endobj 92 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [439.091 546.152 450 553.728] /A << /S /GoTo /D (36) >> >> endobj 93 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [433.861 517.061 450 527.024] /A << /S /GoTo /D (37) >> >> endobj 94 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [433.861 484.683 450 494.645] /A << /S /GoTo /D (39) >> >> endobj 98 0 obj << /D [96 0 R /XYZ 90 720 null] >> endobj 95 0 obj << /Font << /F51 8 0 R /F59 62 0 R /F72 7 0 R /F97 61 0 R >> /ProcSet [ /PDF /Text ] >> endobj 106 0 obj << /S /GoTo /D (Introduction) >> endobj 109 0 obj (Introduction) endobj 110 0 obj << /S /GoTo /D (Basics) >> endobj 113 0 obj (Basically, what's the point ?) endobj 114 0 obj << /S /GoTo /D (Scattering) >> endobj 117 0 obj (Defining a Scanning Order: Scattering Functions) endobj 118 0 obj << /S /GoTo /D (CLooG Software) >> endobj 121 0 obj (Using the CLooG Software) endobj 122 0 obj << /S /GoTo /D (A First Example) >> endobj 125 0 obj (A First Example) endobj 126 0 obj << /S /GoTo /D (Writing The Input File) >> endobj 129 0 obj (Writing The Input File) endobj 130 0 obj << /S /GoTo /D (Domain Representation) >> endobj 133 0 obj (Domain Representation) endobj 134 0 obj << /S /GoTo /D (Scattering Representation) >> endobj 137 0 obj (Scattering Function Representation) endobj 138 0 obj << /S /GoTo /D (Calling CLooG) >> endobj 141 0 obj (Calling CLooG) endobj 142 0 obj << /S /GoTo /D (CLooG Options) >> endobj 145 0 obj (CLooG Options) endobj 146 0 obj << /S /GoTo /D (Last Depth to Optimize Control) >> endobj 149 0 obj (Last Depth to Optimize Control -l ) endobj 150 0 obj << /S /GoTo /D (First Depth to Optimize Control) >> endobj 153 0 obj (First Depth to Optimize Control -f ) endobj 154 0 obj << /S /GoTo /D (Simplify Convex Hull) >> endobj 157 0 obj (Simplify Convex Hull -sh ) endobj 158 0 obj << /S /GoTo /D (Once Time Loop Elimination) >> endobj 161 0 obj (Once Time Loop Elimination -otl ) endobj 162 0 obj << /S /GoTo /D (Equality Spreading) >> endobj 165 0 obj (Equality Spreading -esp ) endobj 166 0 obj << /S /GoTo /D (First Level for Spreading) >> endobj 169 0 obj (First Level for Spreading -fsp ) endobj 170 0 obj << /S /GoTo /D (Statement Block) >> endobj 173 0 obj (Statement Block -block ) endobj 174 0 obj << /S /GoTo /D (Loop Strides) >> endobj 177 0 obj (Loop Strides -strides ) endobj 178 0 obj << /S /GoTo /D (Compilable Code) >> endobj 181 0 obj (Compilable Code -compilable ) endobj 182 0 obj << /S /GoTo /D (Callable Code) >> endobj 185 0 obj (Callable Code -callable ) endobj 186 0 obj << /S /GoTo /D (Output) >> endobj 189 0 obj (Output -o ) endobj 190 0 obj << /S /GoTo /D (Help) >> endobj 193 0 obj (Help --help or -h) endobj 194 0 obj << /S /GoTo /D (Version) >> endobj 197 0 obj (Version --version or -v) endobj 198 0 obj << /S /GoTo /D (Quiet) >> endobj 201 0 obj (Quiet --quiet or -q) endobj 202 0 obj << /S /GoTo /D (Full Example) >> endobj 205 0 obj (A Full Example) endobj 206 0 obj << /S /GoTo /D (CLooG Library) >> endobj 209 0 obj (Using the CLooG Library) endobj 210 0 obj << /S /GoTo /D (CLooG Data Structures) >> endobj 213 0 obj (CLooG Data Structures Description) endobj 214 0 obj << /S /GoTo /D (CloogState) >> endobj 217 0 obj (CloogState) endobj 218 0 obj << /S /GoTo /D (CloogMatrix) >> endobj 221 0 obj (CloogMatrix) endobj 222 0 obj << /S /GoTo /D (CloogDomain) >> endobj 225 0 obj (CloogDomain) endobj 226 0 obj << /S /GoTo /D (CloogDomain/PolyLib) >> endobj 229 0 obj (PolyLib) endobj 230 0 obj << /S /GoTo /D (CloogDomain/isl) >> endobj 233 0 obj (isl) endobj 234 0 obj << /S /GoTo /D (CloogScattering) >> endobj 237 0 obj (CloogScattering) endobj 238 0 obj << /S /GoTo /D (CloogScattering/PolyLib) >> endobj 241 0 obj (PolyLib) endobj 242 0 obj << /S /GoTo /D (CloogScattering/isl) >> endobj 245 0 obj (isl) endobj 246 0 obj << /S /GoTo /D (CloogUnionDomain) >> endobj 249 0 obj (CloogUnionDomain) endobj 250 0 obj << /S /GoTo /D (CloogUnionDomain/isl) >> endobj 253 0 obj (isl) endobj 254 0 obj << /S /GoTo /D (CloogStatement) >> endobj 257 0 obj (CloogStatement) endobj 258 0 obj << /S /GoTo /D (CloogOptions) >> endobj 261 0 obj (CloogOptions) endobj 262 0 obj << /S /GoTo /D (CloogInput) >> endobj 265 0 obj (CloogInput) endobj 266 0 obj << /S /GoTo /D (Dump CLooG Input File Function) >> endobj 269 0 obj (Dump CLooG Input File Function) endobj 270 0 obj << /S /GoTo /D (CLooG Output) >> endobj 273 0 obj (CLooG Output) endobj 274 0 obj << /S /GoTo /D (Retrieving version information) >> endobj 277 0 obj (Retrieving version information) endobj 278 0 obj << /S /GoTo /D (Example of Library Utilization) >> endobj 281 0 obj (Example of Library Utilization) endobj 282 0 obj << /S /GoTo /D (Installing) >> endobj 285 0 obj (Installing CLooG) endobj 286 0 obj << /S /GoTo /D (License) >> endobj 289 0 obj (License) endobj 290 0 obj << /S /GoTo /D (Requirements) >> endobj 293 0 obj (Requirements) endobj 294 0 obj << /S /GoTo /D (PolyLib) >> endobj 297 0 obj (PolyLib \(optional\)) endobj 298 0 obj << /S /GoTo /D (GMP Library) >> endobj 301 0 obj (GMP Library \(optional\)) endobj 302 0 obj << /S /GoTo /D (Basic Installation) >> endobj 305 0 obj (CLooG Basic Installation) endobj 306 0 obj << /S /GoTo /D (Optional Features) >> endobj 309 0 obj (Optional Features) endobj 310 0 obj << /S /GoTo /D (Uninstallation) >> endobj 313 0 obj (Uninstallation) endobj 314 0 obj << /S /GoTo /D (Documentation) >> endobj 317 0 obj (Documentation) endobj 318 0 obj << /S /GoTo /D (References) >> endobj 321 0 obj (References) endobj 328 0 obj << /Length 3533 /Filter /FlateDecode >> stream xÚZYÜ6~÷¯˜·h°nEÔ­ Ánbl /œc³~Ú$Àr$v7mQòÌä×o]T«{4v`ÀÍ£D«ŠU_GÝDðOÝTÑM‘$a•–7u÷"’Ñ/”´v@°[Q|÷îÅ—ßgêFEaUêæÝ~½Ä»ææ×àÕQŸ&3Þî’$ ÔW·»4Í‚7ým\Ó8Üîà·™ëÉ=¶3¥uûû»½øç»e×,Ž?ÃR<᫈oTÆ*K…¯¼LC•¤Ì—ºÝeyŒœ$Š9_Ï 0p}.8xœ…Q%§zˬ¯á»"¬ã_Í?ûÑlöžõÿÓ£²¾áFkïF=>rç³*èoU@z²ýWjqÇ"NŽûûaäÏ\­û^Èòà¿»sÖ>M3êÎY$Á»£ž<«/ñ|x •„ NI'²8]fÁo‘JûÆqGóO-z2ž$‹Lx€•ó( lÏ£¯^òï÷·ÀåOÀû/·%ìûË·?†aŸ(&Ÿ˜ ®Q*GC»åïó´e1‡Q·<"“ öòÛ s$X¬@Øç<éQw,ÒþiP Y<XZ¥Á+TÁ[‘ùk&rÿ~´Óä'§.8´ ˜(!#³Gi¬e ݃éͨ½1.‡3ŒÃ]k:ø ªÄ@²Ãi²ý“,'ê¡;ÙÖŒŽ§ï´£#eϼyÄ(PÓÀÂñŽÏߘ¥’¤Áæ# ߌðikœãuÈvÐd«™v™~`ãß28”O^420´Ñ³ã¸%m©€}ÀʨY±aön¶mÃÍzðn ¤ˆ=OC§'ÍÓ,híá¸k…sÔBËãî‘¿´²7ß©hÙo·YZ0)Ú'…N›6æ ª:KÖ«â@Ÿ@õ 9TþƒíX·0£Ø†‘‚ösO^ˆD^\º˜î42ýÈЉ[$N\¤_M;;ÍËFqp4ä`Ob0…³ad·œÂÞ`×£CÎbð₺·HDq‘-"š¸ë&=™Ý°ßÁNòÝÊä±»2yêëök:vÜýГèîýìjË üÌleñ['·i“Q+p3ÿj6êr½Ž£{sÆ\G¡8Q¡RÅM–çaUV‰Â¸„ “l<ínE¼+¯—$ÎÖ£èw4{U»:ÛIuÍQ•°¯ºàèilôTŸáåz1â…Ý6î~òáÖ0Ò «ÝsÇvdÚeÀ·¬3|µœˆšîÊþü¢;RÚ.VÂÜZwÏ(@©Â7p˜%a™”ŸT€§Ý­ˆ7}½$+à;í¢”A PUª2¾àè©<Õçx¹ZlQFp•B'>r¼n#s$ñðÆÜ¶Ü"ŸX€[ü@nÈèúg¹¿`ö ¾~…Dœ"øcÖ­Øy@à¦]“à§Þ¯!»A— v*’ƒ­¼ÆzuÕ ë èr‹YWâiÕâTepîý ìÅñ[ýA8öØgF"}gÎyR>±½›F.‰8¸ ’'û“<ãMÇ5Áéñù¡Y ¦cŽa¸ÃugôwI fÞ»™<-´QŒybƇ@}§î_†0ètç¯S7,D‚I@Ò“g¥“h-¼ùÈ Ö©·²GA—ÞUOP§ž|³a‚E‡/ñWâ*.â¥mˆì¥ñÈíÓÙ3êÑ4sßh0:ÌqÇÆqׯ‹À¥5Üi%úü.Ôƒ• mï"ZF™@ˆ@"›Ú Lƒ±âþ -ÊÙ#ļދ ¶á¡š ÛZS0¸òvãÑhY…=LûåV¢0~ú‘Où;H#¯íYïÑ vóIU éM ÇÍÂÌû‡õqãBa íYœŠôĉLºö3e–.E>=›û ÛÞÞ´è?‘ ^ãm¾ÍULËbWœU•úÕ0½§a'æÀ 'šNù•¡òF¨€ º?Ä ‘¢Ô¾75£,õ¥~­Ñ8£GÉ$”daž_ZÃ$Ò•Åi)–›VAC [b^õÙ÷¥„³â*œñ7Ï„òÏ¢¸¨fiþi€ ´»ñ@¸ZòŸ*Îs PÈôBȲ0õ¯YÚ@Bõf®[¨bûi…¼\/dN·nàñI~ï|¦Ól 8Ê.úÃN´š okµºd±dð+ÀßÖâ!Çô×B´Åi¶v‰@àoÍÏtÍyì­BTØUšUaReŸÔª§Ý­ˆ·yµ$kõõhu€Ù ê¶6”ZfaY\0´¡S&ú'—K]h4rpTcN¬„+}NcÉÅ™d›òRQ\Å ¬°Á ¤qŠY³\+´L(4F!i{8iŒ{H/ ÉRM87·25HëùËiÔ½£È öºFŒ` æ.…*‚´í!€Cy‰g-ètÄCÛòn+¼,éºa«ü~‰0{)¬<ü’Ñ·B,8¤™[ ëX4Àä ÕŸ¥KÞ p¦ ­óA¤…Ly:™@,’j‰¨d²ˆˆnÑorL&Êý¹â°u²+©a¹nýpø|NÓé«/¿¼¿¿Ñ¯ÃaZm’p`s|ºa.Yœg–Â3RÁE‚Mé…³«ÞÙÆx^̆^>ÄU~õtâx²°ŠŠ€ÖÀ|¦Ëñ§ï" bBª!ãšT´ðÉEï:Ž.NqÊUåwe‰¸‚}Æÿ0½ ;½á÷ƒì9°²®2¥ù,ÀˆÀí¹}¥œ%hDM]O³TRªb¶µË”K6éÚ…žë(—Åù{bç Em°~>(%¤y$}z"•´¼$^lµàD´Lªd[¥ÔJ@¶W2BšUµ»—By²—/¶ûäLO¾uÞÀ í<¡(©`“ìé®lQ–éuwõrUfž‡vèŽG8_÷ïòXœ-¹L7,Y^éûãàäËFwœ{žÏOå9×Àö#nBG‡ šÐ.ŽøÄóÕýÑ.¯•1Ê€J‰©z¢Gœ=»ƒ8ÞK™P]{˜›¸.;3¬Ýó¬æîÅq<œæ‚*_¾›Âg>E–BÖ‚‚˜Áž…±uRÇq\)y;õßNU&ò(HJ¸ò [ÅAkl7åt¤4æ:Û[®›v/ùy ÓW#ò=.dÇFÞËä9k™ƒ¨ÆûÅÛ6¸„åÖìT˜©&}¥ÁÏ`’€¦™â¬) ºÂWIº²f$>¿€@g$yˆë;‡ÞD"I²Ž$ ”D©·è„Ó2'À•â h[°¼È<®y\{J™Â[€sç¢`Èÿ™ObžÔCrl_žrÙ#ç€Êõ¢q,RöBTX]×ËE|6mbï‘*ÌüÀ²óó)ŽiþáÚ` ™9mæ' ÂFœï®±?¡iã¬;铿4©°†×R¢E3 H.ë.qX”•Ç/ÍÐi»ù·Iæidi°Ä—’ºöÇ8+¹D‚‚6ZÛ „ú3DÖ VÒuR*×eD"µœ—þ壌Vuv$fc¦y_ªà CίÈyRôDI4蟡ù¿-$˜äyXf‹œìg‘à¼ÃügWUa•$þ“÷yQù3pÆi¾UA¢;_=㧘m/Ù1,¶$Ra‘­äK¶%/ ¥úÌéb@Ïi¶ØM÷׎§–0„íçŶè¢ÿËëz /XþðÅ¥C®M6Ra™–Wžÿ‘œ±¼¹´ä·Á¡‘Q‰á;ÐW›)ÃòÒ·Å_c¿þf+o‚™÷_ÓmEïÿאָ‚þ‰ûÚH endstream endobj 327 0 obj << /Type /Page /Contents 328 0 R /Resources 326 0 R /MediaBox [0 0 612 792] /Parent 9 0 R /Annots [ 322 0 R 323 0 R 324 0 R 325 0 R ] >> endobj 322 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [231.117 564.262 308.351 575.171] /A << /S /GoTo /D (Qui00) >> >> endobj 323 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [112.131 551.111 190.182 562.02] /A << /S /GoTo /D (Bas04) >> >> endobj 324 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [273.977 469.819 355.254 480.728] /A << /S /GoTo /D (Bas03a) >> >> endobj 325 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [310.166 456.668 385.87 467.577] /A << /S /GoTo /D (Gri04) >> >> endobj 63 0 obj << /D [327 0 R /XYZ 90 720 null] >> endobj 107 0 obj << /D [327 0 R /XYZ 90 720 null] >> endobj 111 0 obj << /D [327 0 R /XYZ 90 312.323 null] >> endobj 326 0 obj << /Font << /F51 8 0 R /F72 7 0 R /F54 329 0 R /F52 13 0 R /F53 330 0 R >> /ProcSet [ /PDF /Text ] >> endobj 335 0 obj << /Type /XObject /Subtype /Image /Width 493 /Height 333 /BitsPerComponent 8 /Length 21180 /ColorSpace /DeviceRGB /Filter /DCTDecode >> stream ÿØÿàJFIFPPÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀMí"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?÷ú(ª×úŽ•h×zí½²k‰V4ôÉbY¢‘Y]у+ ‚A´QEQEQE—â9tÈü=|šÍôvVBðK;Ê#ÚáFçzåôÏè>ð6.“©ªø}á[è!2´ançS·pa;p1]Û*º2:†V Œ‚+ξ^Zéÿ´k»Û˜m­£—šgŠ>Ñ'RxÛhúæ—â %¼Òo༷?ÇçÄuØÖ…x¯ˆ#ÑÒRÒÂæöÑEe¦Èœ|ƒll 8*>ñ'ŒMqþ ÷‡~$ê¿×®u­;û4jMtÛå…Œ63ry8Î0dצÖ‘¥Å¤]\^ÞÍêÚ¼ÀÍ"ô%Pì‰8û¨ŠØÏ_˜žMnP\ÄXü1uá±iâ\é¶m2Hâ9‘ÂŒÝFp:ñŒ×]^ñ·þI»ÿnÿúQzrºÏÄ- J½}2ÞIuM`d ;NC4ÙÈlp¸Ç9#MsŸ´_ßê qjeÔ|6‹ûý&Âëì·2qÉ/´ïÚ' ­?ë^…N“¡Ù®‰|ß4ºuݹ·¹ÎN7åÏ<`¶3jñ¶™àÛßK«|9ñ^¯|Þ_™}ao3C/î×JÊ£…8k?BÒ| ˆtÉ,þøÊÊénâ0Ý\[N#…îäÌ@PpNAàt Sÿ„ËÃíuwk¢·76Œ«4±¼òÊX¨ c…còç9«º6¹¦ø‡N]CJº[›fb»€*U‡YHHô ã|'gã'Ä9ŒjeUÓ•\Ž@0@>‡ò•CÀ–7÷z/Žìô}Hi7gÅW‚¡n³€hÉùƒ•{g=¨¹ÿ„’Ïþ/øEü¹þÝýŸý¡æm_—æyxÎs»=±Œw¨¼I¥jzÚçÚjsé–2+5ÕÕ›m¹È+µÝ.Ku@îkË?áñ—ü.O±Âwÿ?øGüßíìˆÔý£W—¿{æÝ×µz~”º—†´I›Ä¾ :ÌælÇ2Ù$ A,KgsnÎìv /M´×¼ñGFÑá%ÔuYŠáš-B_:[v‰7ÜGä0 ÎG½V¹ûu9$:ãë; ©ñwâ0U 3¦œŽL Oë@ƒEPEPEPEPEPEPY~#—LÃ×ɬßGea4/³¼¢=¡Á^ônx÷­JFUtdu ¬0AP‚Œ¾ Ócðýä·šTQ´PO.w8F*s;‚:Çb¤ñŒ4 "kêPÛË ÌpºY:ýÔcÓÆ3Åy„4ÿj?ô¼'¨Ãg87&`Çkʾ|˜T|לwê+KÁ·þðÕúŬh7>ñ ·–nu|ÌgbH&;£ò°ç¹÷€=/FÔ›WÒ¡¾k»4¶ »dª /l€= _¯>ø—ká»ôÒ_\ð–·â5Snt˜¤BÌîØë÷¾\g?t×ý‹ðóþ‰ŽðãÿP´ê(ÐôF>ûS·‚îdwHY¾b¨»˜ŸN9ç¯lÑ¥ø›IÖ5 ­>ÒâO¶Úf¶ž ‘Tôm²*’¾ã#§­p𥽙ñßÂh`°–ÚÍ-¯ 6—H|Èm¢°$ëÔ’ëZ!Uhf* ð®XÔý«þP ÑEQEQEQEQEW™|j¸ðøðÕ¥¿Š,µ¦ÓZí;0Õ›káHvÏÝÞ~éù¯M¯ý£¿äžiÿöÿEK@›áÙí.¼1¤ÜX$©g-œ/Ëë@T6 çÏ5 òÇß2EMÌwdž€{Ö?äžxkþÁV¿ú)kÌ~=øÊ]PðÕ…›=½Êê’.qŸ-±>Äïü…{u^Âö KN¶¾¶mö÷1$Ñ7ª°ÈÕŠ(¢Š(¢Š‚êÖ;È 2´Ê¤ç0Ìñ7ýô„Ö¹¥øká5°°ÓΖe°°‘¥·´šâYbWc’v³zž1âºÊ(‘E¤0ƱĊÀ‚ŸEEp7DÉ_÷ˆqí?xsœŽR;€Fp@%®kľðÏ‹îáº×tæ»–ü¸ós*\ç…V>øÏÐWKEr¾ømá êÚZ6޶÷žYŒJÓÉ! qœbã¨çÍuTQ@y·Ä-BßÅþÖ¼§-ÀÖê q 0ÈÆæ@qrwdt÷ôš(¬wÂú'‰`Xµ: ‡(í•t?ìºá—ð5¯EÉeŽ̒ȱ êÌpãO¦KsFc–5‘Ua ƶðŽgªßjvñÝÇ{|¹”_O™p¥W#~8éÛ©t_ é^{¶Ó!š#y3\O¾æYCÈØÜä;˜àdÕ¨^æÞì[ËçÝ,Í,¢pˆ©‚6ÆÜ‚OÍÁçiϽÚÏþÄÓ¿á!þßû?üLþÉö/?{©ß¿nÜíûÜç÷ª^&ðnƒãmá×lšî+v- ‰#œHFeS:tºŠ( Š( Š( Š( ¢¸¢d¯ûÄ8‰öŸ¼9ÎG©À#82ÔWt@l•ÿx‡>Ó÷‡9Èàu#¸`çZ(¢€ (¢€ (¢€ (¢€ (¢€#žn­å·¸Š9 • IŠ]HÁ#ŒUdšâÞóʸ-:ÜÊÆŠÜ…•Û'’CÜg cÖí2X’h^)QÔ« õ­>ŠÏY›O-æÚ-¥‘ ³X¢va„$‡# ”üÇ <õРŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( ®è€Ù+þñ"}§ïs‘ÀêGpÁÎ µÀÝ%Þ!ÄO´ýáÎr8Hî9Á–€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ Ž á¹ˆK±Ë$ƒAÁäzGá_;K¤XKûT˦ý™b³—vø & wYo¹Ž¤’}rsÔÓ~è¶W¿¼cái–_ìk¦6 3,OåÜ* ` ?¥}±Ï M ‹$N¡‘Ðä0<‚ê+7Ä?ò ‡þ¿¬ÿô¦:ñ¿Ù¢òæ[?Ù¼ò5´nñD[*ŒÞfâlí\ý+Õ˜4ÒÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÔWt@l•ÿx‡>Ó÷‡9Èàu#¸`ç’êÞ/7Ìž$òcóeÜàlN~cè>VäúJù£âÆoÇãGNÑï?³,ì.ZØ$hŽÒ4R\³.y#îŽ1ÁÏ9úrŠóß…ßÅÞ kÝb{[kÛ)  Òªù€*·šW äûeN=lú¶›™¿P´_-7¾é”m^y<ð8<û¹ES}[MÌߨZ/–›ßtÊ6¯<žx}«i±ù›õ EòÓ{î™FÕç“σϱ  ”W̾=øÙâÈ|e¨Ùhw‰§ÙYLöª«sy¥©³©ëŽƒ€1שõ…ßÅÞ kÝb{[kÛ)  Òªù€*·šW äûeN=¡QTßVÓcó7ê‹å¦÷Ý2«Ï'žŸcCêÚl~fýBÑ|´Þû¦QµyäóÀàóìhåMõm6?3~¡h¾Zo}Ó(Ú¼òyàpyö5ó~6x²j6ZâiöVS=ªªÅÞiF*d,êzã à uê@>š¢¼÷áwÄEñwƒZ÷XžÖÚöÊCÃ4ª¾` ­æ•ãh9>ÙSAÛ>­¦ÇæoÔ-ËMïºeWžO<>Æ€.VrÏý–éÃGŽ!·µ‘æy%’CC–Ë‚X’Iϼ¯«i±ù›õ EòÓ{î™FÕç“σϱ¡õm6?3~¡h¾Zo}Ó(Ú¼òyàpyö4rŠùƒÆŸ|Yaâ«ý3CÔM¥•„ÒZ©tŽv˜£°2t={Àuê}ƒáW_Æ~ ’ÿTh!¼°ÃtûÀóHã`9>ÙS@ßÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÑQIuo›æOy1ù²îp6'?1ô+r}¥][Åæù“ÄžL~l»œ ‰ÏÌ}ÊÜŸCé@ÀÝ%Þ!ÄO´ýáÎr8Hî9Á–ª^\[Ç‚I?Ôì–P³1¦ï¾Ç#6±9ê†JšK«x¼ß2x“ÉÍ—s±9ù ù[“è}(Z*).­âó|ÉâO&?6]ÎÄçæ>ƒånO¡ô¢K«x¼ß2x“ÉÍ—s±9ù ù[“è}(Z*).­âó|ÉâO&?6]ÎÄçæ>ƒånO¡ô§ c34"E2ª†d@$zÈúP?Š­¼Cw£y^¿¶±Ô|Ô>uÌ{×`?0Æ${~]FÝy߯èâ×j—i5ÄS[˜Lf+‡Œ|ÓF§r©¸?Ä:Žjˆ><Ö|?ªÅ¦ÛÚ®—a.k÷I4± ùº˜â€=ÿQ²Ò¬ä¼Ô.¡µ¶Œe¥™Â¨üMY®Að‰{"kÚ®«'‹.¥%⻺‘d·Q–ÿUþì“냜b©ø¦êþ?ݤ?ô­1³lö–®ðü‹Ô»†9ûÜâô H¢¼¯I¼Ô[Y±Wø×£jn# ešµÀÜ?v ¾An™óÅIáý×Rø©ãë;æžêư¢O3I–„·ÎÀÀÊ(>/…÷ƒâ°ñܺô ?™“h¶T§•åcwšNv÷Ç^qŽ(ðÇÂûÏ xëWñJkÐO>¤³ï…¬ ªI|Üà0wG¤Q@oðßáußûÛÉ"×â¾µ½TBÖ&6ÊnÚU¼Ã¼sÁϵv~!ÿl?õýgÿ¥1Ö­ex‡þA°ÿ×õŸþ”Ç@´QEQEQEQEâŸ~ØêÚµçˆ4íJK#pâIí¼44®ÿ3†.¸6Hç¡ÇP+Úë/ÄC:$ß$óÇÂ6Ó÷לäp:‘Üd`ô :ðdží<-¢G§ZÜï–Vë$„[º=ã[4Q@Q@mâO„6zÞµ>£i©5Ú ’XÌ>h2K0;†3žŸþªì<1á»O h‘éÖ„·;啺É!ÇnƒAøÖÍQEW›x“á ž·­O¨ÚjMcö‚d–3š „’ÌáŒç§ÿª½&ŠÆðdží<-¢G§ZÜï–Vë$„[º=ã[4Q@Q@mâO„6zÞµ>£i©5Ú ’XÌ>h2K0;†3žŸþªô‡–Z‚ôˆ´‘„D=Ä×òºªÉ1*0A9Ž˜ÂI'•¦KsÄÑMI 2:ä¨4ètW7¢ër›„±½2Í$Ìæ9‚ˆ  +õëƒÞºJ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠŠànˆ ’¿ïâ'Ú~ðç9¤wŒàËQ\ ѲWýâDûOÞç#ÔŽàƒœh¢Š(¢Š(Ïþ0ãPøU®[Y²Ï7›oÈØ$7aO¡äqî+½–(ç…áš5’'R®Ž2 õ’žÐcÖ%Õ“M„^Ë ™ßœ4€`>ÜíÝþÖ3Þ¶h‰ºømemxu ßMá»ÒrÂÍ[Éìð)íÓ+zûÂ~Ôï$¼¿ðþ•wu&7Í=”r;`2Ädà? Ø¢€0àð_…mn"¸·ðÖ ñ8xäŽÂ%d`r!r<æ³t¯ jº_µ¯®µi$z¸ˆOjlmò£)Wóxë“sÈã¨ë¨ ?ÂþÕü3>¶Ë­ÙÜEª^M°éì¾Tòž|Ó”ÀÆ:ô9ìmøÂ÷ ðŶ…&¡ô6Û¼©ØÄß3³ß;ËqŒtï]-QEVWˆäýYÿéLu«Y^!ÿl?õýgÿ¥1ЭQ@Q@Q@Q@eøˆgD›ä‘¾xøFÚ~úóœŽR;ŒŒ•©Y~"Ñ&ù$ož>¶Ÿ¾¼ç#ÔŽã#¥rtQEQEQEQEQEQEQEQEG<][ËoÓ÷‡9Èàu#¸`çZ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+œ×u.h¢²‹R³{±¨Z©gS&EÄysœŒý+£¬¯ÿÈ6úþ³ÿÒ˜èVŠ( Š( Š( Š( ¾`ø“ñƒÅx³SÒtË¡§ØY\5·–ˆŽeh¤?9f\Œ•(ãóŸ§ëÅ> ü ±ÕµkÏiÚ”–FáÄ“Ûyhi]þg ]p>l‘ÏCŽ Pð÷Ä÷>*ðÀ¼¼Væ M¼Ž½$!TîÇlîéÿê®®±¼1á»O h‘éÖ„·;啺É!ÇnƒAøÖÍQExg‹þ'øŠßYé— emi+Û줅Ê1‰e=qÐtýkÒ>øžçÅ^—‘ªÜÁ)·‘פ„*ØíÝ?ýUƒâO„6zÞµ>£i©5Ú ’XÌ>h2K0;†3žŸþªì<1á»O h‘éÖ„·;啺É!ÇnƒAøÐÍQ@xg‹þ'øŠßYé— emi+Û줅Ê1‰e=qÐtýkÜëͼIð†Ï[Ö§Ôm5&±ûA2K‡ÍBIfpÆsÓÿÕ@ß|Os⯠ËÈÕn`”ÛÈëÒBNìvÎîŸþªêëôð¶‰hKs¾Y[¬’lvè8ôlÐEP†x¿âˆ¡ñ=õž™p¶VÖ’½¾ÁH\£X–S×OÖ½#áï‰î|Uáyy­Ì›yzHB©ÝŽÙÝÓÿÕX>$øCg­ëSê6š“Xý ™%ŒÃæƒ!$³¸c9éÿê®Ãôð¶‰hKs¾Y[¬’lvè8ôlÑEAÈà׌x›ã‹ôÝjm+GÔ^ÎÓNf´b¥Ä“b Žò+Oùõ¯g¯6ñ'Â=oZŸQ´ÔšÇíÉ,f4 %˜ÃÏOÿUzÂoÝøãÁbþþ%KËiͤ®§‰™Q~06ç qqè;ªóÿ‡Özo‚ôTÐÔ$Pÿ®–öYB‰¦bz…è'“èQEQEQEQEQEQEÀÝ%Þ!ÄO´ýáÎr8Hî9Á–¢¸¢d¯ûÄ8‰öŸ¼9ÎG©À#82ÐEPEPEPEPEPEPEPY^!ÿl?õýgÿ¥1Ö­ex‡þA°ÿ×õŸþ”Ç@´QEQEQEQE—â!o’FùãáiûëÎr8Hî20zV¥eøˆgD›ä‘¾xøFÚ~úóœŽR;ŒŒ”ÉÑEQEQEQEQEQEQEQEQEQE„Œ€pAõŠÜÒ5çIÎý—kÉöÙAÜ6Æ@Á΀qÑy$žq)’Åñ4SF’FÃ Ž¹ê zÍèºÜ¦á,oL³I39Ž`€"( Ç=zà÷®’€ (¢€ (¢€ (¢€ (¢€ (¢€"¸¢d¯ûÄ8‰öŸ¼9ÎG©À#82ÔWt@l•ÿx‡>Ó÷‡9Èàu#¸`çZ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š++Ä?ò ‡þ¿¬ÿô¦:Õ®s]Öt¹¢ŠÊ-JÍîÆ¡j¦L™ämÎr0sô ŽŠ( Š( Š( Š( ²üD3¢MòHß<|#m?}yÎG©ÆFJÔ¯˜>$ü`ñDž,Ôô2èiöW må¢#™Z)ÎY—#%GÊ8Ç<ä×è®Sáï‰î|Uáyy­Ì›yzHB©ÝŽÙÝÓÿÕ]]QEW†x¿âˆ¡ñ=õž™p¶VÖ’½¾ÁH\£X–S×OÖ½#áï‰î|Uáyy­Ì›yzHB©ÝŽÙÝÓÿÕ@]Q@W†x¿âˆ¡ñ=õž™p¶VÖ’½¾ÁH\£X–S×OÖ€=Ίå>øžçÅ^—‘ªÜÁ)·‘פ„*ØíÝ?ýUÕÐEPExg‹þ'øŠßYé— emi+Û줅Ê1‰e=qÐtýkÒ>øžçÅ^—‘ªÜÁ)·‘פ„*ØíÝ?ýTÕÑEQExg‹þ'øŠßYé— emi+Û줅Ê1‰e=qÐtýhÜè®Sáï‰î|Uáyy­Ì›yzHB©ÝŽÙÝÓÿÕ]]G<][ËoÓ÷‡9Èàu#¸`çZŠànˆ ’¿ïâ'Ú~ðç9¤wŒàË@Q@Q@Q@Q@Q@Q@Q@ex‡þA°ÿ×õŸþ”ÇZµ•âùÃÿ_ÖúSjÑEQEQEQEWŠ|Aøc«jמ Óµ),É'¶ò<ÐÒ»üκà|Ù#ž‡@¯k¬¿ è“|’7ÏÛOß^s‘ÀêGq‘ƒÒ€<ëôð¶‰hKs¾Y[¬’lvè8ôlÑEQEy·‰>ÙëzÔú¦¤Ö?h&Ic0ù ÈI,ÀîÎzú«°ðdží<-¢G§ZÜï–Vë$„[º=ã[4PEP^mâO„6zÞµ>£i©5Ú ’XÌ>h2K0;†3žŸþªôš(ôð¶‰hKs¾Y[¬’lvè8ôlÑEQEy·‰>ÙëzÔú¦¤Ö?h&Ic0ù ÈI,ÀîÎzú«°ðdží<-¢G§ZÜï–Vë$„[º=ã[4PEP^mâO„6zÞµ>£i©5Ú ’XÌ>h2K0;†3žŸþªôš(ôð¶‰hKs¾Y[¬’lvè8ôlÑEQEy·‰>ÙëzÔú¦¤Ö?h&Ic0ù ÈI,ÀîÎzú«Ò>Úé~ Ñ#Ñ7E O"rò×72„<.qP ÏL e–€H9ô +˜Ñ5¯³"ÙßÎLh¤‹Ë™†Y‹p‡§<€~Zé袊(¢Š(¢Š(+º 6Jÿ¼CˆŸiûÜäp:‘Ü0sƒ-Ep7DÉ_÷ˆqí?xsœŽR;€Fpe Š( Š( Š( Š( Š( Š( Š( ²¼Cÿ ØëúÏÿJc­ZÊñüƒaÿ¯ë?ý)Ž€5h¢Š(¢Š(¢Š(¢Š+/ÄC:$ß$óÇÂ6Ó÷לäp:‘Üd`ô­JËñΉ7É#|ñð´ýõç9¤w=(“¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(®‰"•uVSÔ0È­íX‘OÙ/æ–f>d¢êMŠˆ¹Œã€x89 rsŒáÔsÁ ÔÄQÍ ƒkÇ"†V„´è”W7¢kSÅ•ô4“HÆ0…cž½p{æºJ(¢Š(¢ŠŠànˆ ’¿ïâ'Ú~ðç9¤wŒàËQ\ ѲWýâDûOÞç#ÔŽàƒœh¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(®s]Öt¹¢ŠÊ-JÍîÆ¡j¦L™ämÎr0sô®Ž²¼Cÿ ØëúÏÿJc  Z(¢€ (¢€ (¢€ (¢€ ùƒâOÆIâÍOIÓ.†ŸaepÖÞZ"9•¢üå™r2T|£ŒpsÎ~Ÿ¯øƒð6ÇVÕ¯ÙëzÔú¦¤Ö?h&Ic0ù ÈI,ÀîÎzú«°ðdží<-¢G§ZÜï–Vë$„[º=ã@4QEáž/øŸâ(|O}g¦\-•µ¤¯o°F’(Ä%”õÇAÓõ¯s¯6ñ'Â=oZŸQ´ÔšÇíÉ,f4 %˜ÃÏOÿUo|=ñ=ÏŠ¼0//#U¹‚So#¯IU;±Û;ºú««¬o xnÓÂÚ$zu¡-Îùen²H@±Û ãÐ~5³@Q@âÿ‰þ"‡Ä÷ÖzeÂÙ[ZJöûi!rŒAbYO\t?Zô‡¾'¹ñW†åäj·0Jmäué! §v;gwOÿU`ø“á ž·­O¨ÚjMcö‚d–3š „’ÌáŒç§ÿª» xnÓÂÚ$zu¡-Îùen²H@±Û ãÐ~4³EP^âÿ‰þ"‡Ä÷ÖzeÂÙ[ZJöûi!rŒAbYO\t?Z÷:óo|!³Öõ©õMI¬~ÐL’ÆaóA’YÜ1œôÿõP÷ÃßÜø«Ãòò5[˜%6ò:ô…S»³»§ÿªººÆðdží<-¢G§ZÜï–Vë$„[º=ã[4QEáž/øŸâ(|O}g¦\-•µ¤¯o°F’(Ä%”õÇAÓõ¯Hø{â{Ÿx`^^F«s¦ÞG^’ªwc¶wtÿõV‰>ÙëzÔú¦¤Ö?h&Ic0ù ÈI,ÀîÎzú«°ðdží<-¢G§ZÜï–Vë$„[º=ã@4QE2X’x^T4r)VSܯñWÆYx‚ëMÒ/£Ó쬭ä/°•ÜÌêNN;`cNIöZóo|!³Öõ©õMI¬~ÐL’ÆaóA’YÜ1œôÿõP§ü&ñߎ</ïâT¼¶œÚJêx™•·ãnwòƒº¯=øwecàÍ%t cXä•JO󸆰ä/ÝP1Æ<ò} € (¢€"¸¢d¯ûÄ8‰öŸ¼9ÎG©À#82ÔWt@l•ÿx‡>Ó÷‡9Èàu#¸`çZ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š++Ä?ò ‡þ¿¬ÿô¦:Õ¬¯ÿÈ6úþ³ÿÒ˜èVŠ( Š( Š( Š( ²üD3¢MòHß<|#m?}yÎG©ÆFJÔ¬¿ è“|’7ÏÛOß^s‘ÀêGq‘ƒÒ€9:(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€H9ÛÐõ…·‰,¯¦UqÃq=Ág•ÙŠímÝÉ(É,[Ä G€=ŠætmsÈ×P›ä°¼¸•Fægá×ðk¦ ®è€Ù+þñ"}§ïs‘ÀêGpÁÎ µÀÝ%Þ!ÄO´ýáÎr8Hî9Á–€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ ÌOhrêm¦G¬éÏ~¬U­Vé  Ž ¦sŸÂ§Õm®otÙ­­.¬²€žrýäRFâ¾·8=Ž+ç¯Œß ôO Øé‡’hon.…»[ùï,“±„Š–ÝÇeâ€>‘¬¯ÿÈ6úþ³ÿÒ˜ê] íßðiŸÚñÿöH¾Óÿ]v ÿ®k+ÄZîŽ-Üê¶"hï­·Çö„Ü»n#-‘œŒséƒ@-—Vñy¾dñ'“›.çbsóAò·'ÐúQ%Õ¼^o™”-—Vñy¾dñ'“›.çbsóAò·'ÐúQ%Õ¼^o™”-—Vñy¾dñ'“›.çbsóAò·'ÐúQ%Õ¼^o™”-—Vñy¾dñ'“›.çbsóAò·'ÐúQ%Õ¼^o™”-eøˆgD›ä‘¾xøFÚ~úóœŽR;ŒŒ•~K«x¼ß2x“ÉÍ—s±9ù ù[“è}+æ_‰?VäúJeù"’/7Ì“ÉÍ—pÆÄçæ>ƒånO¡ô¢H¤‹Íó#dòcóeÜ1±9ù ù[“è}(”W†øÇâwˆí¼Sc§N, ³™íŒ~R9fF*X–S‚qÓ·ë^ðóÄ÷+ð´·×qªÏdÆ;™ð@PÞcáŸo”ýWE>H¤‹Íó#dòcóeÜ1±9ù ù[“è}(’)"ó|ÈÙ<˜üÙw lN~cè>VäúJeù"’/7Ì“ÉÍ—pÆÄçæ>ƒånO¡ô¯ ñÄïÛx¦þÇNœXAg3Ûü¤rÌŒT±,§ã§oÖ€=ÊŠå>xžãÅ~–úî5Yì˜Çs"ž Ìaü óíòŸ ë¤ŠH¼ß26O&?6]ߘú•¹>‡Ò€E>H¤‹Íó#dòcóeÜ1±9ù ù[“è}(’)"ó|ÈÙ<˜üÙw lN~cè>VäúJeá¾1øâ;oߨéÓ‹,æ{c”ŽY‘Š–%”àœtíú×£ü<ñ=ÇŠü--õÜj³Ù1ŽæE<7˜ÃøAçÛå?@ÕÑO’)"ó|ÈÙ<˜üÙw lN~cè>VäúJ$ŠH¼ß26O&?6]ߘú•¹>‡Ò€E>H¤‹Íó#dòcóeÜ1±9ù ù[“è}+¼cñ;ÄvÞ)¿±Ó§YÌöÆ?)³#,K)Á8éÛõ r¢¹O‡ž'¸ñ_…¥¾»V{&1Üȧ‚†ó<û|§è:é"’/7Ì“ÉÍ—pÆÄçæ>ƒånO¡ô QO’)"ó|ÈÙ<˜üÙw lN~cè>VäúJ$ŠH¼ß26O&?6]ߘú•¹>‡Ò€ExoŒ~'xŽÛÅ7ö:tâ 9žØÇå#–db¥‰e8';~µèÿ‡Ò‰"’/7Ì“ÉÍ—pÆÄçæ>ƒånO¡ô QO’)"ó|ÈÙ<˜üÙw lN~cè>VäúJð¯üNñ·ŠoìtéÅ„s=±ÊG,ÈÅKÊpN:výhܨ®Sáç‰îß)úºH¤‹Íó#dòcóeÜ1±9ù ù[“è}('D‘Jº«)êdVö‡¬H§ì—óK32Qu&ÅD\ŒFqƒÀ<…99Æq¤ŠH¼ß26O&?6]ߘú•¹>‡Ò£»³Y ¸‚òØ4+ùã™2¢3žXáù[“ÇÒ€;˺ 6Jÿ¼CˆŸiûÜäp:‘Ü0sƒ-|¯ãŒ^5ƒÄ—úu–¦ÖVöW-E†2Ìcs˹ê9àçœûO¯¿Œü%þ¨ÐCya!†é÷€ æ‘ÆÀr}²§€¿¢¢’êÞ/7Ìž$òcóeÜàlN~cè>VäúJ$º·‹Íó'‰<˜üÙw8Ÿ˜ú•¹>‡Ò€%¢¢’êÞ/7Ìž$òcóeÜàlN~cè>VäúJp–33B$S*¨f@yäG¡Áü¥cøªÛÄ7z7•á›ûkGÍCç\ǽvó `òG·åÔ_M[N“R—MKësí¼Áæ(# íëŒw®ãt?ñkµK´šâ)­Ì&3ÃÆ>i£S¹T€ÜâG5Òx‹Áz‰öɨZm»ýUå»§Œÿ²ãŸÏ"€: +Æçñž·á 'OÖcñ´,á~±1¾ƒ©ÿ[lI|: ­ÏÝ_Çâ;´‡âÞ• Æ6cMžÒÕÞ‘z—pÇ?{‘ü^”éÃk:¯Ä »‹‰|+¥èËcnïþÕi׌UŠ*r7G= bi7š‹k6*ÿômA Äa¬£³³V¸‡îÁWÈ-Ó#žx¯EÕu5ÓmÁHÅܤ¥µ²œ4ÏŒàùn€dšÅð‹fñ†-Ýݰ¿´º{+»rÄì•ÝŒ¼8íÓ'ÔÖ„<8<3¡ýšID÷×3=ÝõÀÎ&¸åØ{tØ óšß  Ú†¡g¤éóßßÜGoi–YóÛ½xÕ—Å_ëóxŸ_ÕƒÜÚ‡IÓÖÒf6Ñäå‰Û·Í“'8PÏS^Ǩiz~¯mömJÆÚößpo*æ‘r:0#5•ÿ'ƒÿèTÐÿð]ÿ@ôúžƒasÅ-Ô 1NBnê÷¨¼Cÿ ØëúÏÿJc­(¢ŽRcXâE ˆƒ@àAY¾!ÿl?õýgÿ¥1ЭQ@Q@Q@Q@xß~Xø‡Ä7ƪK`näß<ÜM™¾yiœ‘ÏCŽÂ½’¢¸¢d¯ûÄ8‰öŸ¼9ÎG©À#8 ~ ð}‡‚<9‘`Yð|Éæn³J@ øÉÇ@z×CEQEãÞ0ø§ø“Äw:½†°ÚgÚ˜Ë<&ØÎV$³‚]qœôõÎ= x+ÁöðäZEgÁó'™ºÍ)3ã'tuë] QEWxÃàŸâOÜêöÃiŸjc,ð›c8iX’Î uÆsÓ×8ôÃEsÞ ð}‡‚<9‘`Yð|Éæn³J@ øÉÇ@z×CEQEãÞ0ø§ø“Äw:½†°ÚgÚ˜Ë<&ØÎV$³‚]qœôõÎ= x+ÁöðäZEgÁó'™ºÍ)3ã'tuë] QEWxÃàŸâOÜêöÃiŸjc,ð›c8iX’Î uÆsÓ×8ôÃEsÞ ð}‡‚<9‘`Yð|Éæn³J@ øÉÇ@z×CEQEãÞ0ø§ø“Äw:½†°ÚgÚ˜Ë<&ØÎV$³‚]qœôõÎ= x+ÁöðäZEgÁó'™ºÍ)3ã'tuë] QEWxÃàŸâOÜêöÃiŸjc,ð›c8iX’Î uÆsÓ×8ôÃEsÞ ð}‡‚<9‘`Yð|Éæn³J@ øÉÇ@z×CEQEã~5ø câÜkv©-»“|ð q6dfùä¤\rG=; î<áKhÉ£BþtSNeHsÉå ï!ËÉCºÚ¼±Ééîè€Ù+þñ"}§ïs‘ÀêGpÁÎ Œ¡Ñ”ç`à1Ò€ŠÎ€ÿeyv²ÒÅDVög{É!8#NsÐrIÏ9÷Ñ Š( ?øÃCáV¹mfË<Þm¼#`HÜE…>‡‘Ǹ­=sÁ·~%Ö̺Ÿˆ/“DE4«&0 Œ²)ÜÀóòñŽ=kQ<' Ç¬K«&›½–A3¿8iÀ}¹Û»ý¬g½lÐ~¡é~²[=& ;qü&3îOR}ÍW¾ðŸ†õ;É//ü?¥]ÝIóOeŽØ ±8¶(  8<á[[ˆ®-ü5£Cù±ÿÃ]nóní¹Ïû1õÏZú ¹ÍwYÒæŠ+(µ+7»…ª˜u2d\G‘·9ÈÁÏÒº:Êñüƒaÿ¯ë?ý)Ž€5h¢Š(¢Š(¢Š(¢Š*+º 6Jÿ¼CˆŸiûÜäp:‘Ü0sƒ-Ep7DÉ_÷ˆqí?xsœŽR;€Fp@%¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(+º 6Jÿ¼CˆŸiûÜäp:‘Ü0sƒ-Ep7DÉ_÷ˆqí?xsœŽR;€Fpe Š( KsFc–5‘Ua « ÜÛÝ‹y|û¥™¥”N PFØÛIù¸ í9÷»QÏ7VòÛÜEÐJ…$ŽE ®¤`‚Æ(J*’Mqoyå\nec EnBÀÊí“É!Žî31ëv€ (¢€ (¢€ (¢€#žn x."ŽXœa£‘C+pzÖ#xÂ.ìïám™ŽI:|D“ÿ|ÖýÈ¢ŽRcXâE ˆƒ@àAY¾!ÿl?õýgÿ¥1Ö­ex‡þA°ÿ×õŸþ”Ç@´QEQEQEQEÀÝ%Þ!ÄO´ýáÎr8Hî9Á–¢¸¢d¯ûÄ8‰öŸ¼9ÎG©À#8 ÑEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEÀÝ%Þ!ÄO´ýáÎr8Hî9Á–¢¸¢d¯ûÄ8‰öŸ¼9ÎG©À#82ÐEPEP%‰&…âeJ°ÏPzÕ%™´ùÒÞm¢ÚY 5Š'fBHr2ùOÌp:Ï] (¢¨$ŸÙÆ;yX- ÁlÍ+Ë+¶;Ëdö’Iä“W袊(¢Š(¢Š(¬¯ÿÈ6úþ³ÿÒ˜ëV±üM,phé4Ò,q%å£;¹ÀP.#$’z Ø¢²¿á'ðÿýtÏü ühÿ„ŸÃÿôÓ?ð.?ñ  Z++þÿÐwLÿÀ¸ÿÆøIü?ÿAÝ3ÿãÿÕ¢²OŠ|<£-¯i`gÞGþ4¿ð“øþƒºgþÇþ4«EeÂOáÿúéŸøøÑÿ ?‡ÿè;¦à\ã@µÀÝ%Þ!ÄO´ýáÎr8Hî9ÁÏÿ„ŸÃÿôÓ?ð.?ñ¨n¼Qáï)wkV <Äâ;øÐýáÎwŽ;‘Üd`çnŠÊÿ„ŸÃÿôÓ?ð.?ñ£þÿÐwLÿÀ¸ÿÆ€5h¬¯øIü?ÿAÝ3ÿãÿ?á'ðÿýtÏü ühVŠÉ>)ðòŒ¶½¥œsyøÒÿÂOáÿúéŸøøÐ­•ÿ ?‡ÿè;¦à\ãGü$þÿ î™ÿqÿjÑY_ð“øþƒºgþÇþ4‡Å>Q–×´°3Žo#ÿÖ¢²¿á'ðÿýtÏü ühÿ„ŸÃÿôÓ?ð.?ñ  Z++þÿÐwLÿÀ¸ÿÆøIü?ÿAÝ3ÿãÿÕ¢²OŠ|<£-¯i`gÞGþ4¿ð“øþƒºgþÇþ4«EeÂOáÿúéŸøøÑÿ ?‡ÿè;¦à\ã@´VWü$þÿ î™ÿqÿ!ñO‡”eµí, ã›ÈÿÆ€5¨¬¯øIü?ÿAÝ3ÿãÿ?á'ðÿýtÏü ühVŠÊÿ„ŸÃÿôÓ?ð.?ñ£þÿÐwLÿÀ¸ÿÆ€5h¬“âŸ(ËkÚXÇ7‘ÿ/ü$þÿ î™ÿqÿjÑY_ð“øþƒºgþÇþ4ÂOáÿúéŸøøÐ­•ÿ ?‡ÿè;¦à\ãH|Sáåm{K8æò?ñ  j++þÿÐwLÿÀ¸ÿÆøIü?ÿAÝ3ÿãÿÕ¢²¿á'ðÿýtÏü ühÿ„ŸÃÿôÓ?ð.?ñ  º 6Jÿ¼CˆŸiûÜäp:‘Ü0sƒ-b]x£ÃÞRîÖ¬y‰Äwñ¡ûÜïw#¸ÈÁÎ ßð“øþƒºgþÇþ4«EeÂOáÿúéŸøøÑÿ ?‡ÿè;¦à\ã@´VWü$þÿ î™ÿqÿð“øþƒºgþÇþ4«EeÂOáÿúéŸøøÑÿ ?‡ÿè;¦à\ã@µB7:v"¸” E«uq8Þò;í ‚=JÏ%€¡ÿ„ŸÃÿôÓ?ð.?ñ¯ðÿíª[l‹ÄL‰ÐÏjÞTŸR§*OÓm}Ep^ø—áÿܦ›¦Ý_ÏrRIÜÞÆªé—ÈO”m  c Q’Iç½ Š( Š( Š( Š( Š(  š—Ûí’3ËÛ<3gnsåȯÇn?·\\Šøüvãñ«uÃø×Å>&±i,¼ ®«}n¢K¹&#Ë…HÈP7)w#œØëšî(¯2øWñR_Ïy¦jv1Yê–‘‰Hˆ².v·ÊÙ*A#Œžµé´QESQ²û}²Cæy{g†líÎ|¹ñøíÇãV袀 (¢€ ©¨Ù}¾Ù!ó<½³Ã6vç>\Šøüvãñ«tPEPEPMFËíöÉ™åíž³·9òäWÇã·[¢Š(¢Š*¦£eöûd‡ÌòöÏ ÙÛœùr+ãñÛÆ­Ñ@Q@Q@5/·Û$>g—¶xfÎÜçË‘_ŽÜ~5nŠ(¢Š(ªš—Ûí’3ËÛ<3gnsåȯÇn?·EQEQETÔl¾ßlùž^Ùá›;sŸ.E|~;qøÕº( Š( Š( Š( ¼z?„Ÿ¼¥_ijÉwD–õŽÍÇ XÐ|ßC»½{ q?î¬ì|yw©hVúΟÆg·–å a— ¬ŒªÇp,;¯ç±ét&Ò$Ñm¦ÐRÑtÙPÏÿ/ßcÙ¿þ˜ù³ø? ÷ ¥h¢Š(¢Š(¢Š+ξ9][ÃðŸV†YâŽYÚ…Ài™…Èž;^‹Ey÷ÁVøE¢`J›€À‡Ïóø^ƒEQEÿÙÿØÿàJFIFPPÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀMí"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?÷ú(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€?ÿÙ endstream endobj 338 0 obj << /Length 1968 /Filter /FlateDecode >> stream xÚ­XÝܶ¿¿bódm|«)êËöH›ºH¤(|@š>ð$ޮΒ¨èãÎ×"ÿ{çƒÒJk9nbDÎ ‡CÎÌo†+vüÄ. vIú™Jwy}8êÇ+áF8,$þxwuó>;øY‰ÝÝÃRÅ]±û‡'÷‘¨$óþô“ÝdêÙ¿ìazü(Oó¬rÌ–§GÓ˜N¶ãé”×çºiÊæÈä–×T/'StzÿÏ»¯þ|7Iù•Ó ÄWŽ#\µ‹Så‹Pñ™~2î{cßÈÓUo™’Û¦/ Óñl8é%ž÷`©aêIãäiAÑüiu7”ºâ‹Ï•)ŽNÌ>Lj ËÀ]›aÚîi®j4ý52°FW°œeqÜ0\ð ø€ú"âóÁ!pëÁ|Ü’Õ„‘¯¤‚+$ákö…ùÔv¦ïq7rkÏdýK âÆð$‡Xð@·ðz .a {%Þ0É»ï3MU]¯ ôʦt“›7Î0¹:KìÇûA²yõn%Ê‚¹|DÁôÆÑ/‡Bi¯•ül0ù¯ÙŽ<Ña%˜’Û>èûÊíþ\'-WàÐ ÉLùSìÔ_p‚LÈz'¥›bS—ðS‘MB_ò§”0L')ˆ…ð¾c;nO%œˆï.Œc_ ¹J¸kÃù@wK§b¨0«ÈÅŠ’®u¸d&ÈCQÖ°£€y} ׎¡à¶O†¼¿\Rº$++·drâYÇpûêi!~!ÁˆÎ¶B~:Æ”£c?#éÉ0&½ð´°œŠqËŽUÁŒ{B\sÊå9¥5)Ï9E½IàIš0ðBŒ¦)øJ…Šb?”¾7?Ôb÷½½úÛïÁ° !~œkîè¢b¹À˜ #°œQˆäø²ù–"¦Ã¤¡°5®`mMqÁ%8LY¤sœgy94cÀ®²ª˜Úv„áOPœN»‘¦|œU}”#!|˦þD™)2ª›2à’‘œ“0ïOº}$g¼’ÁdŒî—ø‹§Ï»òžŒâX€¦ƒ=dR»p`Øq˜m¢«…ïÂüÐ+'xç€i{3öóg2à~Hë¼£œÎÜ‹Œ8w‹Œ12 ˜ì@*l.E¶ó4Ö¨<·]1çÀ´·[¦–ep³ÜÈÔO×u‚2"’{êV¾-ßÝ6oËׯñ™óoº!|]Àôjñ#,~|w[— ÎêëCùºy-QÍÛǯ¨cmÙpýx–}ëbocïß¾Âú¯ªäxï©\T5˜<˜Šªؘcx¦™}¯û2ç¡ù¤ë–*L(`&]fpDç@ä܆ؙa„0v‚Òi•S~t!IQ]0-G'l!x>U-yÁ[9Jú3è÷ZÈì¶+5µ`C!pÜÙ±ÎÈ©çM8§ËQ ƒÂòºodd›˜SÛóÅɲÙÑž²”»FŽ ^tÀ¤Mxo Øô[Ùˆ ¢‚à³ÕHÃÛÀ/ez]œ;2T1ì"D‚—P½yÈàŽ½rJ&D¦%nz¸ šÊgâ¼ÍÙ– :}½u÷<˜ÚJ[·eåº$ÊÛKX1CN¦¼¿ïSèU+Xb–Y¯Î`qƒW´ÆÞt¯¶GÆr É‘&@QR±ÄÄC¡yIɆ _¢/Cï{4û"çÐ$¢ …χ³—aö×ox pö™÷~O^͇ɯ—Y‰·”ùBf.!ØT/¢ðš ‚=OlS½à‚’ 4LgϹÇô#Éþ®aE>ƒaR`ÝzjtÃ3*¯NÙ1Í9ŒÀ¼Úû+ŸŸãßî²$¥ØƒC飮Z­+(4USóýЙ©{·Ìa r·ÒÏ­½,òdmWp—¸,š‹?–™—£¶½ëÝñ.ã¼t-×VOaj04“Ê+·’€2†:ÃdÚSÑ¢.ÿ{Þ`ó»ŠfÌå0NÖµàÔ©q0ÊW˜¤аè÷Í+'QëÜÍl}~ Hì`yŸÜ=/ª<þb89vS€Û~Íå6 ®ç î‘¼´·qbðÚLmÎõÝÕÇû…|ûRñ£Q3'Uô2B9¼r ±7¥·ŒËIÛ£½çÕßp«óyè½GÌ 7ÑüE{qxMÐk.ˆ)ÄQdd¨v ŽåÓžˆ3ŠÀ ^Çj0e!ŽÎ—àD§lÝê@/ÞùuóA¼ïn±çØB‡(ñ%€ÕülßÐÃÃ>™µÉßÓ~dË'[Ïÿ2ì°ùY_†üå «íÃÔOÒtñ¢_|Ñe?ÌMÛƒ­*þãäü7ѺÛ4S/Úû<úÏÆëFpõØ1¿ŽàÈÿëqѸýD(ý4KÖÑÍ·Ü€}ÇØïÉ4 ÏÝ϶, åÛ›­<¼è4vš?ouš‘ŸÈd«3ü¬/\J®ÚÂÿãÖòÛ_ÿ—í@¯ endstream endobj 337 0 obj << /Type /Page /Contents 338 0 R /Resources 336 0 R /MediaBox [0 0 612 792] /Parent 9 0 R >> endobj 64 0 obj << /D [337 0 R /XYZ 90 720 null] >> endobj 115 0 obj << /D [337 0 R /XYZ 90 269.825 null] >> endobj 336 0 obj << /Font << /F51 8 0 R /F53 330 0 R /F52 13 0 R /F72 7 0 R >> /XObject << /Im1 335 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 342 0 obj << /Length 2546 /Filter /FlateDecode >> stream xÚËrܸñ#µ«¡ |Ùq¥—7µ©T.Öm½jˆ™AÄ!’ãYo*ÿž~%¹T%F£ÑÝèרMjSD›,ŽÃÂä›ÝéM$Ї7JF[@ØÎ0þv÷æí/‰Ú¨(,¢BmîöswÕæ·àÓ±|lw³ã8Pïn¶Æ$Á¯Í΃¡ko¶ð­Î»Áµ Ž¥‚øæ÷»¼ù|7žšhý [ˆñ”/=çK©<Ì7inBfííO7°3 >6ípDq²k›o¶q¶x>”ÝÁÊø±·çªÝîÚʆ ùé-2 LlUª„éî[¡õ5J"÷A½wùð¯÷îçŸa®xå¿´- 3ÉVÅ{¿(Ú4a¾_à±ô*ÖvN1ÿ‡ ×:B„²LšÊ»BRä4 Ù þ³¶Ñ/ÌPç*Œó*ê^ÓÜJ™Ôã” ¨5JQ¨Ól$¤W ©Ð$Æã€”uj‚û³ÜûÒµÍ/Eàâz°k’k¬tG¹XHæ-/vFd1k(Ó¬!ø¶û®LKçTvÚ¡d€σ´ CBÚ•MXy™ãu¶Iï䨒îI¸‘ƒ»ÊvøÁ‚ ÊÑ O*06aÿ 𵉠¡³à;Ï=2ʲŽç²FÏ’^Öý®ÀíÑ¥L”ûsÃN%³¢©" È[vÃmÒT_®ˆàÝð[2+ý±í†j“N@¯ƒƒ~‡Ò9Úê\ÃNPºÑqPÖ5ß H·rù¬u¶ô¼›4Ý<ðÑiìq¹BÏ4Kh~Ô8¨Ýà ‹×/ãX”ƒ¯‘2¼4°Ü :ˆg¹1nlO®.9<ðú“s'–zåïø Çþ ÇlJž×íÀsr]èlÙÓmHFgR¯7…–cb]Yó[f+ =£1åÙ¾ª=•ÎA.;ÄÈar5áô¸Ç“eBkwCÉžÆ(fß(CFŸÇ®®N¨æ8#PÉ•àŸAûX[ „ÐnTÛÚý9¢Â oŸ;[!™âÒAÇï5®íå Îêñºqür“"«h¼º} †þ7Ž  ¬Ÿ{ҀȈÊIȰHWÄ5g(+Sè´ ë1n# oOBù±³;K~›W V€Í•£ŸóUÇij›å3 fÌ%Àȉ&D -‘*5ÜñíÆ»§œžíB—Æ ö†Åä5spáƒ+©g~èÈ>·®_µªèŽ”©mï]2ùN˜T-É×Äìj”8˜Î½—>ÀAÒûoX@;g%á¾6g*`Þ =J‹^ dp‘Íñ•ób˜÷ý;ñœÅ"Æåy¨#ƒI`˜å¢µ¯‘–€¨¢Mf9{H¸”†tQ…©i_Ë,t6ÆÌÕølBž~F¯¼Æ› µÑž”[#‡Y2 –’Å}ÀOFtAWˆou&ºLƪøÑ‹§/^<ö¼èg.žmfD~èÞÿ^£ ©ì™{çDWû{ÛEæ¨b“†iTxWÏá0ykO¶ldi8–l¹CK;òléвtèLˆ\m$þìÏײ±8ÒG¼–×%ažyÝŒý¦ÁÄ–B»°[··Þ8ƒÊ&K“…_ª0©^K Aö:yÑ|‹0ž²ËËÑ‘WŠ5‹c?Í®b@Ùi"B¹œXûg­_‘*Xá+ kF“ R.4G ᤤ“Õ(!>õi(x#i¦^4j.š¦ÌË|”“K> 2¨ˆ$iŠÓ2=½t§l"Î/Ƕ–áó¢(t¨2ýб¤a¬¶Â鉨Šk3𵯨tfQòŠðç'rzgÒéf>˜Ðd <¥\3 w8Ãẋ$§ðXêªâõbÅ ÏÇ—…*´$¦P’Qˆ‚<,Òî;OĺCÁVŠßî6–I,ÙiÚ‡\\§Ñ<ô ÆðKßã´kr6°€Áiû|)Aq ŒªH¢àóø¾À»yeÁXDzg dÐR¾Ñðd~&ÎÇb‚6“¦lô_Ú¤ƒSÉá{%3 ¦D›àD…@=¸må Åé@‰eµŠT||‡—ÆGŠM z¤¼CN'ð⼞Ò+‘H°!S—}ñ¥_¥i1¾“”ÝíI:ÇÛJÊãàöÆy{bïuì­v!Gì\|ñ/é“6SúDÐñn=Ï¥E{ô"8µŒ ¡;4wï$w¥FD|›ôqhEòs•ÅP´GâtÒ¯Mm^…| î^˲ßÃ~;8,?ÉeΉ÷v³©ßÇÖGXjVìÙ@ù76Ø1·Û¨eØ2$Äæ ³4ë4òm`ßçÚ[”Û@D6Œuù¢Ÿ,ˆ3„^P–Ç==Ä öÓ(\ØÞ2%é {5í ›Î|vNêD-;{vuÅ[Ø¡t”ÚS'"„«)Ùï…2]œQÖTxá)‡6ÖM‘>WÐâÆ©Ñ€ûI‰®Ð“ÅàǼ¯HŸÖ¼û+›þ6…'uç?¹ÞwÌ®U!JŽ2iÖEyÀu±åÉãyàe*‹##XY8JX˜Û:LËžÑ?››_Ä›y‹…'s E*<þ“Ž-qR ¡VølOÛµ›§«}ë4øÏÙù¥ÞɳNXcê®éЊ+HôU üµ#Ô9¬F'óß<<îv†¼ò{Ì5Iâ÷·_0"ڲпÓsVà›ÂZ\<᪀äJ¾9WOƒñX¯ñsElæ3ÁèɸʖKYúßä©àì¿÷ØÆÙ‰ðûïlªå²±cQ“‘grzJìbÕÔ~šÞ–’슖۱ÓT-6¨§.Pn6šžÔ“âwƒÞzÊ –ý1µìA-H},€Së¾Øµr˜®®˜âà9{n®äcsÅd€Þ÷yW ¨\Ä®vâà–0ýƒôvö Vx?Ü|çmãÿ<ðA© endstream endobj 341 0 obj << /Type /Page /Contents 342 0 R /Resources 340 0 R /MediaBox [0 0 612 792] /Parent 346 0 R /Annots [ 339 0 R ] >> endobj 339 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [221.665 102.777 298.736 113.686] /A << /S /GoTo /D (Fea92) >> >> endobj 343 0 obj << /D [341 0 R /XYZ 90 720 null] >> endobj 340 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F53 330 0 R /F59 62 0 R /F10 344 0 R /F4 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 348 0 obj << /Type /XObject /Subtype /Image /Width 430 /Height 346 /BitsPerComponent 8 /Length 13713 /ColorSpace /DeviceRGB /Filter /DCTDecode >> stream ÿØÿàJFIFPPÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀZ®"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?÷ú(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€15=NòMEt!b7†1$÷‚cµBp ï9ù¶®GLž*8ü!¥Iå˪Du{µM­5ùóC†$F~DädmQŽÔxEDÚCêm‹.¥q-Ñis¼ÆÎÞP<œb=ƒãŽ:Öýa?ƒ´0æ[;?ìÙö%Ӝۖݒ¾`{‚8¥²Ô/¬µH´\Ç3LŒÖ—±®Á>ÞY2v¸ñò·$ÆÑ¹X^2¶øSP•x¸´‰®íÜ`–0]H$r0HÁ4»EGñ][Åq‡ŠTŽ:2‘*’€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€0<"Â!ôÆ’F—M¸–Ô¬¹Þ#Wo(žsÃ1Ï+~±5=2ò=Eu}!¢‚1öò’#º@r#î¸ù¶¶\*8ü_¥GåŪJt‹¶MÍ øò‚œ… H~GäàmcžÔ¿X^2¹xSP‰y¸»‰­-Ð`—–@Q@Œòr@9À4‡ÆZ„%èÔå*YcÓTÜ“ƒ·’™ É,@ÈÓ¬´ûëÝR-_WÂУ-¥”m¼A»†w| ÎG|«È³¸€lAV¶ñ[À"‰"Š `ʤ¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÊðÇüŠz7ýxÁÿ¢Öµk…Ö|A?…¾ ®³jT\[é–â"à ;E8Ý.£àKï ÌúåêjWqéš’]ÞË8’i”’0Ù †Vû¡A w‘EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEÍøÓÆºot¨5-V ¹-æœ@ ²+ÅY†AaÆÐ?â"ã]øö¨^vÒíäDŒa$Çþ;Yúþ½eãÛÿÙè..§‡TƒU¼HØ1³Ž w,½6¶[8

—o´ñ…Vm„|¤Ÿº}:ZŠ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(®ãý³ð¿XEt¶±‹¸Îq·Ë;˜õù7þ}3Šëu=ZÏH·YnåÚ]‚G‚ÒJÄà*(åŽHàVD«âvÑ£{k :Âæ¯Øyç*ÜmeF@„©9ö­r?toì߆Ézè¢]JæI÷cæØ¿"ƒÇO‘ˆë÷³Þ½J¹-Jñ…t[2Ñt­JÊÊÙb ˆÖr¶ÜsÕÕ˜Œ“ ±êoiš½®ª’yDž{y¤°“Ù”úó‚2ä9  ôQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEsú4M©êךÝ×Xå–ÊÎ,¶"Hä(í‚Üì„çt(É­}GíÃM¹þÌæÿËo³ý¤°‹~>]ûyÛž¸æ²|<#a@ kpöòÆ6%Ù$äq˫Ƣø Íð÷Ä%Œ€Å§\J…$d!–6*rÏ qÒ€7í~ÑöH~×å}§Ë_7ÊÎÍøù¶çœg8Í`ø¦6Óc_[*ý£NÀ8u·Y’F6¼uÁ^œÓü ÿ$óÃ_ö µÿÑKV|TÁ¯q´¯™¨¸”q±€#CÀåTÝ xCâLƒ5Õ¦nȧe²‹‹€Häoqå®?Ü|úñ̰xKHIÒæî5¤9Yõ Ã)õPß*ÀÖåQE•áùôoúñƒÿE­jÖG†·i öpHÈË«˜ðeΧÿ Ç:mö­w¨Cdl~Ïç•0ñ»@QÔ@ÀÍt×¾ÑïnZìÚ}žõºÝÚ;A1úºX{j¯öiÜÙj°jQêQùr}Ñ õ¿¯AEsÃÅkg ‹[Ó/t³•htóm‰'÷©£=Ü'oQËk«{Ûu¸µž)á|í’' ­ƒƒ‚8ê KX÷~Ò®f’â8ÎîEp×6R$%°I%Ürù²3@V'Ù¼Ce.mïíµL™1ÞÇäÈ«·´‘¿xgý_ByéM_Çl«ý³ay¥¶Ø÷I*y‚Çn<ÔÊ€m½AÅnÑQ[][ÞۭŬñO çl‘8elÇPjZ(¢Š(¬½rÛP¿µŽÊÂêK1;•¸»‹dQàçËÏG'dž Wá5Õ|=ñ6ÿ“k—úÆštµ¿Š[ù|Ùa7fÂØî2~€q@“EPEPEPEPEPEPEPEPEPEPEPEPEP^%¦êÖš _ÁøŸÃö½2 ÀÍpÓ;ìt^¬¸“¨ãå=+Õo!½—öÚt"L/dó¤eÛÚ8Îß¼qþ³ ÞZý}: (Ÿÿ„¶ÒÓjÒóG#¬—qƒ×ÎBÑþóíÖ· ž¨{yc–'Y#`ÊÃØŽµ%aÏá-!ç{›HdÓ®œå§Óä6ìÇÕ‚ü¯ÿ @ âi>ÒQÕî–‹NKHǰ}N¹oøßÁšž½q“©C]ÕIpËm,*.ê "/u9'’MtiŠ4°ån­5¸B1UE­Æsòè 6Gu9ç8àMÿ EŒùZœW:[™<µ7±íŽÝÜJ¤ÇÓ0x›Vø•¦ß^^Á´ŽmVÙ™’Ú%“€Ìù°J’Iþ£°Ôõ™yâ *ÆèZMx­v[oÙ¡S,ÙÛ»ýZØÀÎqФ<7q}¼ëšÅÍê¼m[[æÖßùPïn8û •±gag§Âa²´‚Ú"ÛŠC@OLàwà~TŒ5êD}ƒJ‡N‘X\jo¹ù<ˆÏnûO·\/ü"ÿlçZÕoµ,õ‡Ìò Þ\xÜ=œ¿ò®‚Нeag¦Û-µ¤¶ë÷b‚0Š>€qV(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ óïŒZö¿áŸ¦­áû“o47H· 䬃Ê`ÃÊqól㯸¯A®sǺ7ü$ÖôÀŒòKhí¨ÉiçAŒâUè3éÍq_üAâxrþm^ég³µ’+K0"DÙ±2ÃåÁ<4}>µëÂüÑ¿±¾èèÑí–ê3w!Îwy‡rž§&Ï˦s]ÕQEQEQEQEQEQEb?…tÄs-‚K¥Ìv~óO$­‘¹ÈÝHù”ðj9‰tÔ- Zk1¨rOôiÏÍ•†Q¸Èû©Ðߢ€9øüa¦Ç'•ªÇs£K¸(”b4b{, ˜ØçŒ'óßVWEt`Êà ƒE ªèÈêX`‚2¬ð†›´š[\hò“ÚtžZêb ÄÇÝþ´¿E|ÁñÄ~7Ñ~(=եƢÆ%·‚qhÑ-Ì@’K'ÝpX°Î0v‚1Ž=Àßô­~TÓ|CiŸÝÞĈ$|à€O(}›ó Z¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(SÔï$ÔWHÒ#xcOq(&;T'>óŸ›jätÉâ£ÂTž\º¤GW»TÚÓ_Ÿ41ÈbDgäNFFÕíG„TM¤>¦ÑȲêWÝ—;ÌlíåÉÆ#Ø08ã­m\¤ò[H–Ó,32’2o }vägó >ßÁñŒz‚xgû*i7·Ù&RŒ²/ ÈÈÜ#AÅji3M¢ÞA ÞCn#tf²¹¶ˆD’ã–FŒp®ÝÇÊÜîŠ_ 5ÝCÄ¿ô½_T˜M{pf28@€âgP0áZ>2¶øSP•x¸´‰®íÜ`–0]H$r0HÁ4»EGñ][Åq‡ŠTŽ:2‘*’€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¯2Ó¼iâÝsÀW>0ÒàÑZÒÉŸ*È$Xc,é7à¿Ëœmù JŠ(à…!†5Ž$P¨ˆ0túÂ×µ=Uc†ÏÃYÜjW™R[¹·‰>gÛóä^N@²üâ­W\»Öt}~ÆÞÓXÒ$‰.³1‰ÖE,¬»¹Áî{PcEPEPEPEPEPEPEPEP&§©ÞI¨®‘¤,FðÆ$žâPLv¨N }ç?6ÕÈé“ÅFžÒfú´?Û!6¼º‡ïƒ‚HŒü‰ÈÎF;Qái©´r,º•Ä·E¥Îó;y@òqˆö Ž8ë[W&à[Hm&¸Ú|±+R}Èãð kMм-¬XGªh1-¤rHîtÒÖ§!Îìªí¼†r«ÖZ…õ–©‘«˜æi‘šÒö5Ø'ÛË#¦Nמ>V䀸Ú*|=ñ%׋¼§ë·°Ã ÷F]ÑÂU + ÆI=gÞ­xÊØOáMBUââÒ&»·q€RXÁu qÈÁ gÐíÅuoÄ)P:8èÊFAüªJ(¢Š(¢Š(¢Š(¢ŠÀð‹t‡ÓI]6â[R²çx]¼¢xÌ{@Çm­ƒ×Š¥u¯xsP†?[Ág/›]^ªŽß•ÜylA8IÏjËø1¶ÿ 4™ 1I\ýÖ™ÙOâ?oøÊäAáMB%æâî&´·A‚^YE3ÉÉçÓGŒ4 ,:uÚê/³)˜†ç€Bã1‚ª2@Ër>ËO¾½Õ"Õõq- 2ÚYFÛĸgwÀÜäqÇʼ€[;ˆÄEko¼(" èªüªJ( Š( Š( Š( Š( Š( Š( Š(  Úý¾•¦]ê7lVÚÒžV$"©bq߀kʵï j^Š÷ÆÕéÛ åî•)ó`¸\îgCÎ>^ノ+Ön­¡½´šÖá7Ã4m‹’7)##ž†¹È¾xbRÝlg6ˆÁ…›ßNÖÙs sÅq@–:ÜW~°Õå†H>ÙoËnypΡ‚ݹÅgøoC]÷SÔo¥ŒêúÕÇŸ0ߨƒÄ¿Þ¼g’OIâ?ø{ÅÛC­XµÌ6ßê¢[‰bEí¨ÀŽ2j/ |?ðÇ„.æºÐ´Ï²M4~\çË&W9ƈê(¥¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(Â,!ÒLi$itÛ‰mJËâ5vò‰àg1ì9ñÒ·‹*• À8POSŒñøXºž™y¢º¾Ñ ÁŽ{yIÝ 9‘÷\|Û[®‘ªê^Õ–Èx¡?²ï-\Æ/¤kV‚@@;')äò± ï@þ +'Â-2•8œàŒpgÒº\ˆ<)¨D¼Ü]ÄÖ–è0KË ( Fy9 à¯iâ ZZCa¢OêE!¶Òc7(!@ýØ*¼2Äœ’5fËO¾½Õ"Õõq- 2ÚYFÛĸgwÀÜäqÇʼ€[;ˆÄEko¼(" èªüªJ( Š( Š( Š( Š( Š(  ¯ ȧ£׌ú-kV¸]gÄø[àºë6¥Ež™n",2°DSŽø,*Òê>¾ðœÏ©Þ^¦¥w™©%Ý쳉&‘II# ˜eoº@ÇpéQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQ^~ÍuâωzÖ‘6¡ym¥h–)ŠÊîKwyçRᙂÀ(àgŽN=Šä¾k—ÚÆ…y§"ͤêé·/IZ#ÃôF}OÚ]&‰¬jwÒÛ¦³¬ÜêVñÊ0Â)6í$uä óŠÚmzãU™íü;SªðúŒÙ6Ñž~èHÇE r2Ã4ŸØ·ºÓ™gçîœV–™£Ùi) µˆù’fšF/$¤wf<žÿLñWè Š( Š( Š( Š( Š( Š(  zŽ•eªÀ"½€Hå¯yHdou ÖW¬h.EЛWÓ@Oy¹„wÜŠ?z1ŽPnëòšèh  ‰|Q¡Aogq&­h°ÞÌ-íßÌyÈ\ö+ñ'ˆ¤Õ´{{;‹!ªÛBâ9K–v‰$ó’p«Ÿ ¾$êzeÌñÔ6WœGeuy!“°G-Ôú7~‡œí´QEQ^e§xÓź瀮|a¥Á¢´!¥’>UH°ÆXÒoÁ—8Ú;ó@•QÁ C kH¡Q`(è)õRöâé,m:Þ+ÉÊæ$y¼´n3Ëá°¨¨íÈÃø{âK¯xO×oa†£„ªWAŒ’z(ϽtôQEQEQEQEQEQEQEQEQEQEQEQEQEbjz䚊éBÄo bIî%Çj„àÞsóm\Ž™ÙmÇ”ç˜÷¨m§ÜgÆ|ÿ’C¡ÛÇþ”I]½Í„v陣*-çxHÀÀB=ºUøgJðµ‡Øtxf‚Ó9X^æYU9$íÇnI$ã&€5袊(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÀð‹t‡ÓI]6â[R²çx]¼¢xÌ{@ǵëÂüÑ¿±¾èèÑí–ê3w!Îwy‡rž§&Ï˦s]ÕQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQ^e§xÓź瀮|a¥Á¢´!¥’>UH°ÆXÒoÁ—8Ú;ó@•QÁ C kH¡Q`(è)õ™¨Ý_·Ùíô”ˆËp¬âîd/ *1É Abw (#<œñÎ/„¦Ó¯\ðÝ¥òyÖ/}f“.6™ .€ÿ ²ç¸##‘Ú¸Ûjžø‰­xY¯¤Ô´©-Fª·74ñÊï°«°%¶±éЙ¬OŽ——ZT¾—N¹šÎE¼tW·s B2¸ãb»/†RÉuáSyq#Mu4ïæÍ!Ü'šì¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÿÙÿØÿàJFIFPPÿÛC    $.' ",#(7),01444'9=82<.342ÿÛC  2!!22222222222222222222222222222222222222222222222222ÿÀZ®"ÿÄ ÿĵ}!1AQa"q2‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?÷ú(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€?ÿÙ endstream endobj 351 0 obj << /Length 1119 /Filter /FlateDecode >> stream xÚíWKoã6¾ûWè('Í—D²I ´Û¶X,P¬{ÚÍA•éD±#%’ÜÝ´Èß¡†v¤,uÚ´§"(’¿ypfÊ_–þ@¾ö퟊=jÛ¢¹o›nçqe ZUxœkÊvÝcœbØÂaû¶¿•to_%ãMUÞn\O»ýd‹ ¾ÝÖxÜË1Óño-všj7[aýl؇ªqªú³vêÄéèó®F–Æ&þÑí5éÀà³À{¡¬n6ö¢’-ì® ý ùÚΪ endstream endobj 350 0 obj << /Type /Page /Contents 351 0 R /Resources 349 0 R /MediaBox [0 0 612 792] /Parent 346 0 R >> endobj 352 0 obj << /D [350 0 R /XYZ 90 720 null] >> endobj 349 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F19 353 0 R /F59 62 0 R /F10 344 0 R /F4 345 0 R >> /XObject << /Im2 348 0 R >> /ProcSet [ /PDF /Text /ImageC ] >> endobj 360 0 obj << /Length 2002 /Filter /FlateDecode >> stream xÚX[oܶ~ϯX G›FªH݃¸@j8ç´hÓ‡ìA¨,Ѷb]¶’6Îþûλ+Yk§Ç~ 9‡¿W­|øW«Ì_%Aàeaº*š¾Hï_(é¹ àžhü°yñÝ»H­”ïe~¦V››S›rõѹ¼Ë·£é×nŽ~½vÃ0rþ;Tí-‹Æ;ÃËŸ»µ«S§û7?t7ãZ'ÎÄyZZk?q¢õ›Ÿ^\mNEZ?ã5jÏò*Tó"etóóéÑÅ(Á GO¯ó¡*ØÕÝ`XÖݰà$ßu">ÑÙ ñ¸A§íFî÷<*:Ì­_x·%wØî#Å„^, ¦àðÎÚ>ðw²#Ö鸽5­é@v¦±«“ÿåaØÃb4-¦Ò%2’M¸1­B^€Pb䦠Á)¿AÍä}]Ù[÷\~L#¸þô*ŠR/ŽÓ§ó£èº'ÊKùqfrÊYôEá͇~üw2 EQÎ%G™îQ?2Ÿh=ãáÜØ C9Çù™è Î †Ë[L™;ð1u×µipà3×|ÉeÐâµJ”‚o£qzæ¨Ë×-h EÞŠœí–UcÚ°ÊkVrÔû;Sö!è=À-(æþ”2AO‚Òt„ ‡ÄR)y‰N¬Æ¿Ä ëü²UßSÙaʧsFÓ£QÂ3Ô©Ó&”¦b.ÐÚF†vví}ÛQ±×²){ø:’Å’]pX3ÄÄÞ°Í ƒ§ÊC‰ô`yg:ñ½To¾ ¯£U}¯8>Li¿Úè Œ ¨¤ ”Ðæ«Ò^d“8ìÄêZ¸cÓEpx#'Î8 6y¥!âræ`š\ž£‡Úü¦«kNt‡º} ;”|k¿Ï+NžÃëE¨S/åÐ_õ›‹êÍÅ´<|ùôæ¢YJ‰ o¿Õî"±Ýã6z©ò*Ž×C‡=MîV%Õ“ … ë±ÂàCQ¶\›’ª²„‰†Ÿ™À‡ÃòÏëêÕ«;ƒ…ÊG~ ©ïÊÎ<=oï¶0vG“ {]@>‡óŠ©lôÿê’æû ½´Z+òG¨‚RÅS#o±äûÀÀ®}Y`ŸSöfÝ ß;«W‘$„l§N°X§!Gêäý̺ÁJDÜØ«¶´KÒ-»Æíå+HþY8+`›Ü2>‹$hÛÌÒ¤“C€R&†îûn”¯’ÓaÂÃZKÐ/;þÊ• o Y r$‘ÃG GQ ¦Þ[“¢g»+ÆUã”# ç‡õÀ,E À¦Ã€k¨Ð‚ ϘÃQ¡ô\ R¨@S¸P”—¨äéAtÝå¥afrVÔ‚/ô€ÂÎô…º†±ó#3·¯'lTíÆÊV» ÷ø¥•fádG ¥„h=³—P‡ž “é^ˆŸ¸ö°+ðîØÍª… ?X”#l„ø%Ó÷”¤Ó=Ýw;ŽòcjÓs ÚÖœa†¼ßc6ÿÊÈÿ’Žwñ¿]þú~sõ¿Í“ŠKÜã ²@··;:!éÈ´¨Á%_M\ºìÚÑ|y€Œ<¤¶Qf#E°:î¯FºëœÒ¬®Ý,KΉžLFLS`‰&6EWï(/LŠ ó×w•øõ á’çVQf•׬£¸!z"­á·êžÇß_ø¯¸çÏ4§zô€[i¸öýéÓVPQB+‘bÇ…ÍñqïêeÃoe¹—­U|©¬/òI<ª<ãÉNÏÜvmÿˆÀÒÚþlmõOÖ¶wG6J"5aßo»‡¼BB*[h+y ¸Ö+%Ü ¥dQ,²@6ÒN‰õÔlòV?…üéÃæíæê—«÷›çUª¦) ïw͵õo`„ÛÊçqѱé|ùYr2íµE¬ìš¼Z*àÛXP4#Vˆ§hFçÃ4þ?´r~’öqØ~}dÍ[Ëöðª)¡ÏÆ ZpÏ™žóÔô› KB¹æþCø·» endstream endobj 359 0 obj << /Type /Page /Contents 360 0 R /Resources 358 0 R /MediaBox [0 0 612 792] /Parent 346 0 R /Annots [ 354 0 R 355 0 R 356 0 R 357 0 R ] >> endobj 354 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [244.381 608.544 462.264 619.453] /A << /S /GoTo /D (Writing The Input File) >> >> endobj 355 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [194.293 582.242 366.018 593.151] /A << /S /GoTo /D (Calling CLooG) >> >> endobj 356 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [285.212 555.941 414.273 566.85] /A << /S /GoTo /D (Basics) >> >> endobj 357 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [218.298 368.989 421.494 379.898] /A << /S /GoTo /D (Writing The Input File) >> >> endobj 65 0 obj << /D [359 0 R /XYZ 90 720 null] >> endobj 119 0 obj << /D [359 0 R /XYZ 90 720 null] >> endobj 123 0 obj << /D [359 0 R /XYZ 90 656.143 null] >> endobj 358 0 obj << /Font << /F51 8 0 R /F72 7 0 R /F52 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 363 0 obj << /Length 1675 /Filter /FlateDecode >> stream xÚ•WYoÜ6~÷¯X´ÑÆ‘LRwhN¸Üà ä! \®D¯éèØJZ;FÛÿÞ!‡:¸–ãÔ ˜×œç è‚À.R²ˆ}ßKƒd‘•Äì~9 fæ;¡xµ:8zÒ%^JRºX]NE¬òÅ''Zº4âÔyý¡^º,qê÷K×÷}ÇUCàp\æp‹Ë¨DûºÁå%N§ÍxUÉjƒÛ[ä)î®DÞðåçÕÏoWƒ±!cx£(î»Ã¦îЀz1IQxÔÐ' >…qèIHôZdC:.ÃñG®qxy‚#Sö‚.õ=Þ¬Ðo+°¿0‚KK0%+N%Ò½ïƒmsuÈ\ùòäZ‹t\[0¹oZœÄƒ}sz²ëvÀy½íd]µ½,ò|2Ú9QÿÑ0ÜòªÃYWãØ ³QòjÇ‹âÎ_Ùõñ£Ýà¥hç`‘‚i:ý æ©­†Úûãó×?­Vo?={ÿ0éœYöýžõ>g¼Ëtø#¤U6¹Ÿ‡J^F0&`qŠrWW²…ÔaÄùƒÐ ¬|š„K;w¸XëœH•²"ÇùŸF‹Ò"ŠÁ~-Í[™yYQ×›9›"¿'|Ò[’mÕâ+/·…Qݺmê%t#óÞY!¹¾kµaUXç²í¹Þ-©ƒèº4e¥ÔYA 1qx;ç›yMz‹;ÑvGl¸I}¨,ê9ÁIjôT9Nn—ãXaÌ0ßà‰¸ëðÈE¤¡Çb:Äœ·táBWwˆJ@B/8¬ ÈÅ%ßÝ3”¿ß³neQ`#ÚB*¤:<@4ÇÆ¥cÈzp;:z§€€p‰¼1|õ®Ó Ì Á/±³úè)Öƒ÷£nµ\›šNÔ¦þÜÈVÏÔXe‰‰GHëáüéÑ\9ЏÊWyÂŽå‹“êXbh«“¿5¥^Úqfñ^ïõ‹“RVjU>så!t%åøúiÆ”sªmxv=› Ÿ¡þwæhrrô.hȈ隉ØBúödÌSý0òË4pÙáÛZÅJßLNUøâô,Ä\*8S²¡ +Ö$ÄÈÇi'¾šÙ"IáƒAÆeÕâ)ÇJÁº%.rÑfÔ=UÅmš8Ò*Ø 1aDZT¬õ¢á(¯Ë‰]Jl¥÷_(Óä3ìA /¨óJd|× <´Š¬±¦ûÎ.Í®ždu¹•_†-C®Ü,MJaµ†uÝH°ˆü‰òE=ú‚ªØ¡ Î1o[S>¥*Œ. "§­K3ãy.• ^¨µºÜ’c{ÕªÒ©QðL)»Âb§œ§ð\Y&¾cªBi!·uÓz¦Vh—ô®‰šÀ*{ <·†ÖÚv`u)à4`ÁÐl.~mjñ\‚õGŠŽŒ¯ë ‹›~÷QÜšõXNf$NY'?ðj³ãýz…ý7:/v•N'ýýtÆË}‘¦}LôûQ> endobj 66 0 obj << /D [362 0 R /XYZ 90 720 null] >> endobj 127 0 obj << /D [362 0 R /XYZ 90 407.836 null] >> endobj 361 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F72 7 0 R /F54 329 0 R >> /ProcSet [ /PDF /Text ] >> endobj 367 0 obj << /Length 3331 /Filter /FlateDecode >> stream xÚÅZÝܶ÷_q@ªE½ªø!J ЇÔIŠ+R§ˆ¯èC¤º]íê]é"ic_ÿúÎp†¥Óúb#h±ÀŠßœ!‡3¿R\eðW6»*”J­.¯v§—¾{!8µ…ۨşo^üñ›\\‰,µ™W7‡xˆ›ýÕÉ«ûêa¬ûÍV)•È/6[­óäCÓÞQÑx_SâÕ·Ýf+ˤû åßt‡q#‹äý «ZI)³")6?ÞüõÅ×7¨\Êg¨ÆÏ-2 µúÊ”:Jí¯»±Šó\$ͨ* ’‹¤`²ð[$]{|¤’®åª}wªš–ªék’Š>ÿBòav9›ÝÊ´Ú2š÷+×ý§sÛt-7ŸkÊ´Æ·þýKXÔ,Kš´N!©¬ej‹õÉtžªÜúÞ¯o"j‡µ™ò"•… 3Í<¬‰#ój« › m¯¶B¥"§Nã½k;*ð£“S…;úHe·nÏYºS3Žõ>%JLSRÂöäW[™¥™ä‘ßf¢X#ZÈÔä¹'zu Tš)ßàU׎õ‡qm$ ³Y±/KôõC_À2>T6Þoré¦=tý©aóBm5bJ±CÑpÉ=Þ¢˜?rƒãÑ÷©©d«±>m¶0>O™Â~CâšÇÜÁ<Í0´V^ ÞA„w(‚Êú³f“cÕÞ«;ΤSo³<{ßìpž{*ÚáÌ€»U$Üm]’‹2ÍŠ ›»U¡é-b™‚Á`É(ñŠ>>»:I.Ò\j?Âá“çøùûîû ,ÞÍ÷_¾¦B›÷‚ÒU»_¬ØÝ±»­Ž´ÄR‹4ËõLÊqÆ=K…²šÖ¾U_jЂ¸uFæÉÍ=Õ­vtb‚‰zð‚ÖÀì®TçŽk:å±k'Fþ" ·Šš·Œ…·p 2Ø—ß7¿qÀ´nÇËžCl¨ró:ç&§ÀÊ9nÆä¿¡É*B]ðtdîÈd“ÀÕ>Js¡AWèÍ kV ÚbÅTæ€èV1Và»H6šgìC=º‡XFzè»;&PC9â©Xdƒ§+’3äO˜`X>›ñ’Å:ÍKýdW·P8l-Ò íýŠ–wa/S°_o }Á©5å*~:‚#³FJ™¥¢œ1\mòK»Ègrˆ͈°·¯‡XܼÍEÖ0vÅšŠ²™–4ûÈ‚÷næ8cˆÃ)¬"¹Ù€ˆ0YdI]— ÀѬ55 üŽË0ÞÛ5h}¹>!(‘‘£ÇÈ(¯pãA©)|¾ëk íY5qí‡â8ê©QS@ƒ1-ÙÃÄx¶¥&÷÷?uO¬:<âš 6ÆÔRÍ`Ùá<:½iÂU¨; %. Qš Ç †Ú»ãªÔ`³õÀy°˜+;A^Âé%yX"÷=â6 &ï¨4€óK@QfèÿâWŘGæ@Ó8t.ʉš˜þ€w1ÉðœA39¦q𜅺vvˆÚ#v( ˆ½dÄîJîsès„L@ç8N5pû€Î1¨UÜ'F²À8gMN呲͒º}]?°ü—-=o‹à#Äg›¶UøÁÄäiAzÚLy)Z(Rmìgm¦à͈úŸì¡˜VE0ÐÀÄ ßÓö’-•œsƒ~­5~D*ÑJz0©8¾ äîÎÐòÔ¹-…ò#‡/¨–…JÅ>Ÿº°Fàð¦Á^4ÏGˆ^ÎðXDÒ í´V˜I0òc½Ë` b   ‹ú ëh•(Z+Úš´(ä3>ƒV±Ë(EÐ €ëk|»ô1aW6À{[,90³-€,qP|œ :Oªü£, Ÿ0qÙ°mÔ™HÁÞÌÅ*Fö¸#²ÿ_#ÞÒWáãÜ ñ ’ÐÆ;¿F,V9ÇjbÏËçvçÍW)/x½²Î„ŠoèvñB! —òf©*J ‰óÞ“FOg ÷b çÞCƒ°¦v%ˆ=š‘ZE+'[™úç3†<ÝlݧÎ:,¶«ë©.£ls¸u(Á§ˆ_ŒUâw¾"l¢Ü p2)ÌmËÆi“ÓPéÌpYå癡ÄlÔ£ïÎw÷3?YJ/Ãé“1œ¶Yy1~b­ù•8ha*KÂA.E[‡Eñ*B~ß8/Æ òw5ÇZ&ë+T†i!°8Z¦Ò.´Fˆé B•ÐøsŒ(ŽèdC+‡ˆÀ3]P0cF~aHwa™?Uª?% \X¾‡°„rì\‹by_¬g’{01kbQŒpòR2Âáþ”êÞ9NÕî_‹‚ö-Ëß f&DZfå,î÷Ѹ’jq»® t=XË]{„8„Â&,=¬C†:M4F M® Q¤(×Îp*è^é+ï©yò½×ŽÊ…O.È@æÂ„Æ_ÜÉZg¸'øÓRö–ãy3…„Á–SÕc¼Eš©¸iÎ#%10}¬IíÉŠïú†ÏÒR¿ý²É&õMwü@3ËîÚVí;ŸîV9ûUçÓ]~muž%|‘UßÕ½siwŽýsçÏJ•|‚S¥Ö¢÷— gBuVÇ’x¤{¯€Pá”p¦¾Ñ½ZÁÞµIü ,áK«úw·;>~‹«†FKB2ˆx`¨ëå³Q–.‚(Ê,Pîžv¤²Äš«,x=ððm·QãµG‹!m?ü³9Zõ#;|+®e—I“Ã943Šž>6ñ­ž¡e9ãT%Øyb%|ï®+})z3£#€øðHrR}ø‚­£±p0ÄüéÎbL]ðÅœ~u—Ì o¥OQ€I‘Î&‚ÿ®iÛ`Þ7ãýGTx©Ì‚?ö»_ãñU;4p—š—L|ðÑúŽ Å.ú ÇóÉÇÏ]¨`¿ãäà Cs{|ôÒé—Õ-úÞó==[ñëƒ'`ŠóG4ªF-Ž •õìœ!%…ˆ£|+g ¸wÝNì*u÷üÆS”~ ž_OÑ?(\HFØ;ªq—á‡G|AøBä©)÷Ó‚Á˪°ø˜™àæ‚MÁ šüVôÁ`GWepq%n&Ü5 |»ƒEOw‡æâG4ޤ—Ë02§ºÙ"­n@3îÑ ~#âï‚VÌw>ëôëa]¶ui§×ë—…à4ëàXuÓb·šƒ¤Æ$ÂOîü ß~á—a£‰îU‘™ãìþ„»0Ç–4¯™sØ–gx—R9Èña~Åû·°òÙg*ͧÐîsËFhN[ÀTjf¥q)Ã2JM‘5PXN¹jÁñ/, àŽM¢>ܘ^„i! %çö]` Öì(ŠTEÆÆñ’ÎÏʉ€n^_á˜> endobj 364 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [188.273 185.268 265.546 196.177] /A << /S /GoTo /D (Wil93) >> >> endobj 67 0 obj << /D [366 0 R /XYZ 90 720 null] >> endobj 131 0 obj << /D [366 0 R /XYZ 90 244.753 null] >> endobj 365 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F60 14 0 R /F59 62 0 R /F10 344 0 R /F72 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 371 0 obj << /Length 1982 /Filter /FlateDecode >> stream xÚíYKoÜ6¾çW,ÐC´uÄ’õŠã}$E‹"‡Ú·ºH•Ë^I[I[7múß;Ã!%q£µ½LŠÍ‹óøÈ+b•óUE,WÙjS?ávõö‰°³ÂÅ×O¾x‹•à,ç¹X]\ÍY\”«ŸƒlŠT¥yðÍí:”YÐ~·£( BTPÐÓÖ¾ÜÑã;Ýè®Úޝh¢‚~S4MÕ¼£å}³}­Ë®XÿrñÓ—£²±”Xƒ˜#¸‚·j•dЉH‘M¯ÖYJyP5ýP4ý • оß×VÃ<®‹×yð+ªÜ¥Ç=Ê™R9hcøV–ÆÓ f©ÌÅS#Eá&Y&bGzsŒY:2#ÍŠ¦$e™F‚ñIÃÛG3í4Mªa-˜‹€öSý\ì1Ïäñ(¶~Ø1ŸnKóɶì@û¢+jcΠ»þ²X…Q,˜àKµ¦o‡kMAZ¶uQ5¾¥¾äB5Î#%Q¼]C¿§¹ýLAÈo!'àÅÝî›B­Cf°<ôD÷œ¬ù*gy"iÌ"ÚP$L¥‰KDÔò7º”Ö^¸5‘²<ŠhÑrL¸Ÿ,IÕJä,ÎÑ]rέ ó9iÆT¦î 鄉,r'KnÕ%—ñ’(!X<å_b&P²ÌîÞ§·˜b)‹•xÐ8q…¶Å,޲e›/jѶ£{"?aOn–ôöl?æBŸÏíb´%Žò_Ø¿ eÌç‰ ižÙ‚ ]Ã¥v ›™w]5 Ú¦fÕx ÁÂn?Гvkó²è]Krùé'¢_qdÆÐùŽ.k>[CÛ‰ƒ‹ëª§™`œØ‚á2s¶q¤P;DsÇË.o«F[^¦ ZR6ív_7½ÇÓSGÿö:ÀèÜ90¿±ã­k;6v†›”`ëA| Kº ?ÖQ2è"‡ï*z>¡¡¦áË3ù’gcœÆŽÓc${o<‰Í}}bb|¯àI õñLœÒp» ü0òÃ(ai¢üÈzYl0¯!³ú.¨ªÅ°ÎÒ© Á«eð è$.›¾wŸ¿™Âñ#¨'XÅóf ÌÛ+XÐã»êwTJ[Ñ•‘„+ØÅ¬²=}»o¬ÞŽ]2‡z¡Mt é/coW‹&ÊÚÿXž¾5v½!YK1(0úã)[‡ O‚¯¬†Ð›ѹ¤~ýÜ6v,H¡K"€ŸšĦsÃÄ8`_ã[–:zá\¨·ºÖS³?nh:a¥×oí–õ‹ø&e2•Þž¥5Ák!š,ei~×¾>2FxK›Ùë-m³]_Ž0bjžÖÿ۪݅%ÏçîW’#òVy£”ò–© ¶¢I&<Ø[-/U¥îF]ir€¬pi×ë}Ù†:„”z±–ƒ/˸xYgŽ&˜¨—æÕ™8­^œ5§ÕÉ <Û¢ð—ñ)t++/\««éSó¹ŸúõÄâÇ™š¾°TòsCgh?’c•<·lNiw—H<;nΪqzóâ¬>½±–1á\zœ—ÚÁß‹lÖ‰ìÂ4Þ\z•+Så‚W&3ò£ÇŸÀÙXÎÅÌ€&ÌâØ<¾<€Õ²ú¢§¤7t·ôj0áƒIÝÒ냓¨!*ç—4Ÿ h¥ £ÅjÐÖ@ŒåQ~Fþˆ,þ˜ŸúG"éµ ×ûú­¶[ÞÚ8ÜM˜.Õ “±V.ƒˆWU¹ü8 ¯ÃLñÇ@˜ø8„a˜G`–åv~жC1úÎ,$ª8IQÐÇdÎÓ¥us̹mÜ£f½£žÏ5”ÌòÿüwÐã)µ…³bOÉ=ØrŒPI¤År<ÐÓq–# ï2機@Ä*1ó1àA³gJLWT0/袓|‡¸,Éægx…E€h”kuãW´¸i;d[gSZùfËPLC_èßöŶÿ DÃK{‘F‘gtZÚÝ àjo‚DÚ£Ž³xô‰Á–y𺴣À[[$¡Ž“K袤ù6q&61Ø­È»|äŠEã­W±ÝÒG³œÁGDûÞŠ½.ð‘‚nRž¶Øy÷æjR&)Þ“™‰ÏsW$³£Gj6Å€]K‰b©ãÑøIß_“‡Ì…zs¢ëhý™Ó9–pOZѳôÃÓðBŠ»j¸vºÃ^Gºs'FÂIV5ïô猄x(`!›Ÿaåänº‚ÃÃ5(먎›¶ÞÁÑAÛUG××°Eh®¶}MZáìOÝÑîkŸ‚üsaÆ0 êâÊx|_߬žòèr¥æ?8DÞøË‰îû隘Ž=_(ÛóŽ…–tyŽ¿²t¹ßŽ´cœ>w¿³üü›HÉ endstream endobj 370 0 obj << /Type /Page /Contents 371 0 R /Resources 369 0 R /MediaBox [0 0 612 792] /Parent 346 0 R >> endobj 68 0 obj << /D [370 0 R /XYZ 90 720 null] >> endobj 135 0 obj << /D [370 0 R /XYZ 90 190.685 null] >> endobj 369 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F19 353 0 R /F60 14 0 R /F59 62 0 R /F72 7 0 R /F53 330 0 R >> /ProcSet [ /PDF /Text ] >> endobj 374 0 obj << /Length 1289 /Filter /FlateDecode >> stream xÚ­XÛnã6}ÏWع©Þt‹“m] hÓ‡¨h¦([Ž•ê’Jr½‹nÿ½Cqd›6å8Åfðv8<œN–9þ1'¦N(‰eäÌÊ3гž1ìyðvß%gï}æ0Jb3'YìšHæÎoîÍ2}é²fâ !\~9ñ¤ôÝŸÛ¼zÒSÝ2Ó›ê‰Ç#·þ Ç÷õ¢›ðÐ]O`2mÅ9§¡O~O¾?»M6¤|Î_a­‡´ù.mÆ"9A$ R3_ÔÀÚç¾û@}š_³i~u]Móós3½òâ{‰ô¥ã1A˜¯÷æ‹íÖ~»~s­ÛrkâóçCt÷ Qü«×cÎaú {43íž bÜãù:?gÓç«ërúŒ7¹Â=7,s¾ŠLËÿª¥‹÷,vb<èÉ%‰" ‰jÜ\CýØÈÂc ‰£ÇǨ8‘‚ù„qˆ"#›FIÄCáîמfd¦$2tvŒ(wØXIÂ%,å6K‚„°…nÌ@ ¸ŒbâÆÃhÜp¨œ;žÚ,G$ á¡Cxöü“ D æ{`b;Í‹"" 4*Œ}aó/çàéÄcAè>Û,B²…\ž>d¯ÍYÜaš/Dãíà^ ó!Ì›`TÈ31Œ8·Zë»Äz[ O¸¬xõ²p/J" 1墛†.óVkk;SÊºÌæ«"¯&ÌíµXº³´Òë½£0¯›¼ë²JCòjO¶óêeÕéîe²È4.Å“uQÔJÁ×í%25t—+Ùõ”«ÅY½ê¼ÓÍݪ|ÌP¾jÔÔv–Ÿ¦AÔx±ªf]^Wm/TÔ”(´ó>oÚ΄ÛÐxx¡O‡Ý8 ¾ÊZÝM«ùªšY]¬Ê=ì¯ åº‹’=³ rRJ·%¶¶ZšmÂK!>Œ*„FRmÑÛï·=þŽ øÐä6_ {è†Í¨mûÜ8ƒZžÃC÷Ù¬¼zBŒ¢ÓcLj½9Hϧk4Vcí~ ñC°…¬:1dƒÉ×ÒÃ8ÊŒ\~nU+O$ ¤ññ&J$åàëò¥Èº~´Ñµ0h„ê÷…‰Zï†m«6kto \Ü%HS­!º ¬Ôï®Å]µ†>eUÖ¤š@[(ô"67S€ dSÅ+' Õá^å´Î»%Ș”(wP¹¾4Ù,›ëêæ•FƒâÜZik½*æz¸ÕR¨·FÐ#L0<̽4½\þÏ34ÐK. ƒ4+eÏó¶kòÇUÿÅô3ikÓÚ½lé²¶»(Ój•l5•ÌŠº~²>r%"Ø<ÜV9‡ñ´›øuyÖ½vóÓ]rûkrx¨­3ã­(Òêi•>e˜µ¨7Ã>A¹Á覮ºìc·­Ž«zŠ \šæU‡Vj”…nˆ—´IKHð¦ÝÔÐ&7üæäÄ‹ãpÑ«”ü*uú‹¡>}?ômŸ¾¶ü¨ùw ýIëôîšUfjyïYf\Íý‚ÁX§z¹CÿµNè,>áò2Ûó/Ê ¬>)94Ü|l÷.Ûc™‰¯Ròmrûãí]r?=òJ+c:Ь2S)fafîß)_6Û.÷2r^—°'Alà ðM‡Šñ¼õß^½½àÒ—?šCñì¦1³]t0uð*²Ã‚fÇæ•õ>`9öÞaYŽÿ¡m)‘¶Tÿòjëý endstream endobj 373 0 obj << /Type /Page /Contents 374 0 R /Resources 372 0 R /MediaBox [0 0 612 792] /Parent 376 0 R >> endobj 375 0 obj << /D [373 0 R /XYZ 90 720 null] >> endobj 372 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F19 353 0 R /F59 62 0 R /F10 344 0 R /F4 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 380 0 obj << /Length 1395 /Filter /FlateDecode >> stream xÚÅXKoã6¾çWè¡r·RD‰z-Úm°YlQ´@k ‡lŒDÇÊÊ”«ÇöÇwÈ!eI¦iQ49C g†Ão4YøðO™¿HÂÐËhºÈ·W¾^ýtEôÌwÄñÓêêú6" â{™Ÿ‘Åj=±*wñ—.‰³$sn~©—n:õû¥†¡ãÊ: ©JÜ!ùÈoXW7H®qB6gB”â—w¸§zÙð¢aËûÕÏWïVƒµQœ9Žä8!©—.â”z$¤x¤p #'ZºY–DÎWHêÕª¼Å)ÅÀ)‡¼®ú­h¥™ Þ%¡G"”¨Eð¿®KÓ¼æG¾³Õ£Ð#Q»ƒìKµ¢ ˜C4§¿¥@ÖâûFW‰ÃßãH&VDJî\戶ÈüNË–“ˆ Í=!2øf«„º6ø‡¢’tA CjÒw}Ãq^ﺲÞßI{¡¿?½äлÿàymî³íXÇ·\toµ¡¥õ–•ÂæJŠ ñ3ô8fâã˜!ç@ót9xÎbgŽ¡‘Kþ„,P:mGÒ1Ñä"«Ÿ¦V—oȘJ‡ŒDœR1m¬þ¿ ú§ÞðÌD‡³®ÖÀåzaËDϪêEÞèeg’®ò:Ûr+òÊá¸c0ŸØ<¶Us»¶?j7?®Vï~ÿðëûã¬6³‚iÀ欋T­@WŠ|â@K,Ý–MÛMÙO(J¦çŽsòú°Ówº3 òõÁ¤RrÇ¢|œz&Plž0[üãñqRE0Qá[fâŸq¾à‚Ò‹/(ýÙöè ½:ýZ.ê\¶dŸÙ}‰ ïkœ"Ý3À~må›§éÅý©©…sQBnåýŸÎUã[J³½%—Ê»¾M ¤^Hã@öƒÐpB?ݧÆmžìýâÀ¹»±7Щv7 d»«ÄLÛdieæ‘@wÉóÞ¸l±ÝÍA"/pía /8Wn‘ 뺂Î><Mq^oÁ‡Å[­vÒÍÆ`|¦T'iˆªóª®µF_t´••¾ˆ{ÛqÜHöÐñTòJdÄ)øšõU‡Äƒ:(ß0iõçRÖ ¹\¯q{BÒÒr”8‘cÃY¡WŒøRìúÎL¡tn™Ê ÄQ[gÝÀ¼Þ"Áñ£Oh¥÷«,0Ö±“ ̃ÄéÙ€ŒÒ)²”~JSóV‘÷$ÉPè¯ò€rܵ¼/jwþUà8ƒÞR¬Ñ²ê¾ƒ³y²;? ¾nñ³Å—rYÈH=,6(T¢4+ÉvÃðM¥i…Ã$qzQð—z0é[³IYùª©+ÃÃħVÏk“’é©c’xÞ”¹<Á•±Fk(xÇJÄ?PÌÞ뾃 ¹ö«‚Zø¹«å|þ0$iìQª·]EêqèA(—…ï…Ñø‰hxݳåÙ;©Œƒrel‰!KP4ênì°ðúâþ[ ÓØÙ±G}~Bæ–‡qæÑ`jùá³Öp±y.LÙ .#ž-u€×#?èw™,‰ H<ß WÙN0™P•kVUièÑ00BÚ®À7ÕAÒ¡¾Ì³°T:³Tý®C+ñœ8<—Ð(™h–8Ÿ—Tÿªçò—„€@.P]ÀEPBcaµÄl¢ª>ŒÏ8LÛeJU¸ãɘs-ëy©ƒ >åL˜IUál‰ÃxUD2ˆ/Τ=D§ ¹fl„5ÒlWçS/N‡>°¶Ì=Ìû·Æ€ä$2ÌÏe·AU*‹ƒªé}1'iœŠóÊ¡Ö2D"¨™qjt褊ÜiÛ²ÔKè°|mîRèC‚$œÂb[«¬2S¡jè]7÷V…‰šÑž‰Ï¿Òš‡ï endstream endobj 379 0 obj << /Type /Page /Contents 380 0 R /Resources 378 0 R /MediaBox [0 0 612 792] /Parent 376 0 R /Annots [ 377 0 R ] >> endobj 377 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [186.413 115.928 369.423 126.837] /A << /S /GoTo /D (CLooG Options) >> >> endobj 69 0 obj << /D [379 0 R /XYZ 90 720 null] >> endobj 139 0 obj << /D [379 0 R /XYZ 90 230.317 null] >> endobj 378 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F72 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 384 0 obj << /Length 1798 /Filter /FlateDecode >> stream xÚµXÝsÓFÏ_á>Utè¾ôÑ@ C‡¶IŸ€Å>ÇYr%™þïݽ]ɲâ”aß­öóvoï·‘³þÉYÍ­EfÒÙbs1õý‰äU áˆã—‹“ÇgVÎd$²(“³‹ÕXÅÅrö:x¶Î·kæ¡Ö:P?ÍCclðW[TWDêÖŽÏ^ÕóP¥Aý‚öçõª›«$¸ž1o€KÉ$J)ço/~;ùõbðÊ*u‡ÛÈqÃïDͤÚÄŠýŽS#¤6ä·fÚX_óPà›–ä[bƒ?·]QW-:Bz´ˆàPŠEšeƒ!I‘דÏeÐv¤å¹ÛvkZvõ^ñ¦øìh÷¬®æ`µkê’LÉèÀ–²‘° Fém…%‰=Y¢âŸIĪqvÂ^$”‰ˆûX½ ù¡àAZ­2,aU¹+ZÌ™j ¸6A뺖V>·¸(sŒKNò–>,éðKWéÒ3°`Íç±$ž‚M,À0áÁt% .zSëâjåæU¢ ¹ÂáIK1xÓPš5‘ J×¶¸ŠÇ&ˆPãöþ皵˗`8Žep6Çðâ)ª¶Ë«…ójup]`pø¡­7®gÙî:2ö&’¦tìBNŸw­kèë"¯ˆtå*×äó‘Dƒä P¢]ãÈYL£ ¶XcXln·„eâzÇ›@Ô-1‘o˜õ©Ž#e#(i“õ駬©­„‚ëÀlæ6òr×›Ì[2Ø®ýY^WD¾ôŽ9¨ ¼íâhÙÊ4ZAµ©æà?€‹¥lð‚hIÛ5\æôsU|€àü’—«¢tÌV-Ùª[UîŠÂékC cyÌ[(6cz©©UfE–ªƒ\aÝ o"O£ÓâÉÓßO‹‡a/éË?^ZJa¬9Lý9sœ«‹Íï@ó»'Oÿ8}w‡fV¬ÆŠÃc¶ÿýæ6õ×Ù<7·ËMÄþ_åøŽ€‹6߸/”Îå®;^:1Ü„/UŽº­rt6-I‘@Ç¿ý´ï];ß­tä±Ú‰¾{ŽÇrÓf„©9óÄø³Åø2P“Äû˜o¶˜PÜx¸Ákß‚uEà\/—wý ¬aHðXhšÖyu5Ⱥž›:TÞ å>ºÅ®ßZxP–ðP¼PË$^~#;ßF½ÃØßYÁûÓ¹ ¶ò$èZx£’$ ^¹Ž¾îZúmܦ€žkÃ!!uŒÀp¿¤­c¡ªf¾Mþž w¹6>±ù-‰,v%‡&jvnéÂc f™jéàéÄ“i„ Eˆ_öÂcå¹S_ª˜£ 0T±Z'€“ŒH2ëÁ¡P)|¡í"ö¼áˆù¼ª¤ u Nø'…"§^Ÿ/ò /ô”·™ÅÁ6÷Å\j꫺NÁ·±¯7lÏu‡—SeÞK¼¿PÖ$€–ðôv|ÖÅŠ†¯ —Ñ·á· ÅvÇyk‡øÂ@WÜUþZêžT7—Ų¥ Â1D;&ãRK¨Ô”G[m%?p:ZäT#ìÕóïÑ î<"ÿqãþÞŒAøBà}Üúru¬ Á¨Ÿ2Ò$ X›À‰ào|)Ò‡H!Õ_mü×ªØø³ÝaÀ@,X7Çú>V•Iî†WðIJè”ôãV‘¿ƒ?‹¼åU½¢ßhêòn@‹MTŒPzÒq†^PýèQ¦„’—å'ZWŸP\åô3‚ù¸e[7´ý ¯„V{y"‚ ŒÏO%=4d1 EÆÙ@ú²€vÐúŒø0“×EëŽ@Â3£°aSrãÛÒ¶ÏVD0’†Ö«æ¿le2Cj.zke½G ‘n™ƒåd–q?G<ë,ƒþ ÃHô³Úh&*Ö—¿Ï¨áNjFD\\í‘·7Bwhé¸ c(È3¬¯šÇ“5øé§×#ÅOs¶ÆNh]ûÎs6t9‘>ìSi<¾ÙiÝ@b¹ýîæ Äm ÓuŽ·Dæ±”Ýc¬Ö6ZÞk¬N­=:VƒÉœs«ÓLÈäéGm;<\"¢Œ+¾<^HK¶ïÖÞöxÉf™Ü' %ã× •úw Žø°üö{wúßÈJ%Rz%¾ÁY{kƒ£wM¦"Q“wmÔõôA¼C×Ó)@°öëìD¹ endstream endobj 383 0 obj << /Type /Page /Contents 384 0 R /Resources 382 0 R /MediaBox [0 0 612 792] /Parent 376 0 R /Annots [ 381 0 R ] >> endobj 381 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [262.337 252.067 411.828 262.976] /A << /S /GoTo /D (Scattering) >> >> endobj 70 0 obj << /D [383 0 R /XYZ 90 720 null] >> endobj 143 0 obj << /D [383 0 R /XYZ 90 720 null] >> endobj 147 0 obj << /D [383 0 R /XYZ 90 669.39 null] >> endobj 151 0 obj << /D [383 0 R /XYZ 90 161.656 null] >> endobj 382 0 obj << /Font << /F51 8 0 R /F72 7 0 R /F102 385 0 R /F52 13 0 R /F53 330 0 R >> /ProcSet [ /PDF /Text ] >> endobj 388 0 obj << /Length 1118 /Filter /FlateDecode >> stream xÚµWKsÛ6¾ûWè”!mƵ•CÓ:NÛKtkz€EJ¢C‘>ìx:ýï]pAJ”iYÍ4ãc±Üv?,V0ãø³˜ÏB)YìG³åöŒ[î—3°”‡ޞċ³«[3à,æ1Ì«}‹dö§Âõ ˆÃØùð[éz"rÊ®'¥t<³øŽ¦]n?>Ðvi¥›²¢íŠß©—º(²bMìÒÉŸ7iRi÷¯Å¯g?/†h•oÇH¼<Ø?@Ä¢Yù ¤OGº:wQS9)Æ4¡m[wqRÓ²ÎӂȬxh"WYžZ±"11£K¹ïRøœ)_`ˆ»ò¡ÉÊÂælEiVoªR,ôe¯v~edfžˆ&"5ó@2Pô­K§‰à3W<›Ãuv3ÿã:»¸À=З¿;mæ+ßê„ò=*ßßÌ¿¾?Mù“•¸î$ø(ªlµg—È÷sZOWÆÅ¾qoJ䟽OþÈûÔ—‘«"&NEA³±u®õ6=ƒ;dM ¾ŽéˆWQ Q ¹`Ä÷EAüm(x½ü¸Oþ¿Ao 9þÛÈÙÿtub$ãXSìLØ8¼ `<²r‚ùL¢£@8Ÿ²íCnÎ33Tά®Σ+ÁI¿ï—6ÏÉ6ð‘qˆ€á‘û*{õ†nîÊ2Ouñ~ ^¯åAÈ‚¾›‘.¢éPwÔÖCÁd0ô–\/àžÕ®çƒÐiè´Ðwyj?˜JMÅãSû<°û¼ˆ]î.VUeÉdqA(&Tôb0Pø&ùÁ‘‡6›s3|ãh°Õ_ Á/Õyæ©n3ïö6+ ”á_€å¿ááå ØEHÛ›‰añÝ»3åX줹Nœ+ù)a3íÑ({)urßsø5?«þRGjx endstream endobj 387 0 obj << /Type /Page /Contents 388 0 R /Resources 386 0 R /MediaBox [0 0 612 792] /Parent 376 0 R >> endobj 71 0 obj << /D [387 0 R /XYZ 90 720 null] >> endobj 155 0 obj << /D [387 0 R /XYZ 90 350.216 null] >> endobj 386 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F53 330 0 R /F72 7 0 R /F102 385 0 R >> /ProcSet [ /PDF /Text ] >> endobj 391 0 obj << /Length 1313 /Filter /FlateDecode >> stream xÚÕXKoÛF¾ûWè¬bsÍ}ñQ[94µƒMZÀî©é–H{mŠTIʆQô¿wvgI‘2%+Í!( xŸ³ßì<¾ŠM|øc“ØŸ„BÐXF“ùòÈw³GÌõ<Øàõvüx}tz©Ø„ù4öc6¹ÎúG\/&÷wɪI«©'„ ü‡©'¥"¿×º¸Å©æ.ÅÎû_Ê©Ç#R~ÀñU™5S’§)L&ìâ,ôCÂÄôÏëŸ.®;­篨mv¼Ô›÷õf,¢Ñ$ˆ$eB¢ê§o§ ©È‡´H«¤I8\£ò¦k•7:Yºž.Vë»™ÎÝä LÒ€)ú˜\”‡ ¢…+W. ¸¦ŒˆWßa‡¹qæÚvœcËM¯4Fz4ÿÒªÒ‹Ô¡ o(•aн=5›&žˆ e0ñ˜ LáZVV¨ø_ùzæŸéócgúø&.ýmÅ£RI'ÌF¤ïAú¤ÕÙýaÒ:Û[xžÏ°eþæ7oz8cÛFñÔàªWnÃZc°Ãiô]òRó]‹¿WËv—:TI~ ’Þ˜EÇ–z+§—!ĉ >ЉHBÈOø4Ä]œJ*A€“_§#Åܤl(ɵ^Úž"&w‡ÆáE®—ºHl<[æ 8΢.ò½²ÉQðü¦,ó4)ް׊y,¤a`Œmá/… ·€††D é«k£·èrOpN’<·éôäÖŒßÆÔ‰c*ýî{ÆÆÀ£Jªv+:ÜÂV s£¯àŒòHnãù_ƒ‡d €µ^®rýÅgrÞy \.B6Œž2CëæŽžW5Ž«uQt,^Ú˜`„~—ä§4KÖyƒkS¥À¨kÇóÚÉ3:vIŒ=ÎiÌ£CY8ÁæV?¦ÅNŠÅ8 û`,¾ÍÂFÅ6´$wˆ+ñ|ê+Äû)Q3Cж9ŒÇhj$— KYãÅßõ ë<½Óxì…ñÌÅ8\Ìq¦£L°Yßþ3í&¶ Ž7Ô¦Ú.LüþµNrÝLÊž‘®VUš,ŒµÆxŒÁ-TÔ…€—Ö«Cx¬C“á¯å1åG-jã€@ y,P;y…ù†-‚ÿNd·ÂvCd{Nƒðˆ ŽN ,§8¨ºï&CdPê #ãé.-ºŠ³J1­“Ê‘RŠŽ×iý’Áä­Ï`òÁ`.¨v1XH£@¾d°^¶`«Þdá§c¾' ‡ûylç->ÌôÙÃùìþøÓÙ÷“"cÅèû³bç¶Ó!â%+š¯±çIy˜GŒõ>`½Öx½²uãÖìm¹psÞk¶>tCº‚\NÑUݸ*2}œ FRW Ú¾NÂÜ`´M1™u$œ§i¾£”tBC Î: ˆ()@ èW’’mnÀc2O ìÜØb)ÅÁºN³uŽý¦Ä¶NH‚©ÅÐ0tû-·%ã½Õı–ÙúìNm-eiLßðã¹ÑóužTù3:Ï]aŒe—¦[›7*Dø€LFìt@²u17!]Ÿ˜qäÊJ+j¿ô¡·4’I«Làg|aþ7xн•I´;& u éÔXÀwFQcIµ)(ëJÑEÝ€ P1[»Ê°÷<àt…ínçB¾4F‹"ò1Ãåö6°1©ÝA¶ÊmpàbwøÉX¤ Æ)ã9Û¸ +YÑ%¾}a6†0:Àu¾ 3•»K”íûeâC× ‚{ÁŠ?Älê›gNnêæ—ÏHi endstream endobj 390 0 obj << /Type /Page /Contents 391 0 R /Resources 389 0 R /MediaBox [0 0 612 792] /Parent 376 0 R >> endobj 72 0 obj << /D [390 0 R /XYZ 90 720 null] >> endobj 159 0 obj << /D [390 0 R /XYZ 90 535.963 null] >> endobj 163 0 obj << /D [390 0 R /XYZ 90 362.264 null] >> endobj 167 0 obj << /D [390 0 R /XYZ 90 150.324 null] >> endobj 389 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F53 330 0 R /F72 7 0 R /F102 385 0 R >> /ProcSet [ /PDF /Text ] >> endobj 394 0 obj << /Length 1231 /Filter /FlateDecode >> stream xÚÕXÛnã6}ÏWø¥€´Y1¤HêÒĺm³@±I>tû Ë´­X‘\KJ,úïÑP¾*‰“bÂÛ y8CžCY 8ü‰AÌ¡”,VÑ ½;á¶wq"lÍoËâÃèäìR‹à,汌¦ÛSŒ&ƒ?¡\Oq;?}*]Ïœò£ëI) å$ÔÊíà’š3S˜UR—+jN©¢œ*MŠ"+fÔ½$Ÿüqn&«ÄýsôëÉ/£5Zíû/l-÷ãoïGˆˆEƒ RLHE[:{ç‚§v>F3¡fSµ¸°šP1ËîMAÕ¬X65U§Yn¬Y1A̰¤Ü^ÒWœiåÄv¹rYgeac6­–a=wÀ<èß¡ÍÀ“<`lÐ’ Mcm@îùíŸß^ ¯O¯ÎoOO¡GÐØ×Ö_¦´²Þ‚Üoúed6¤âzãxN ÷yþÝño æê•` púèôÖs›À*¹3Ïäw ]½ù ˜>—^éø¯H¯ð™ ƒˆ¦b75Û‘à»1è ~*þ]ôSñ|øûŽ‚èE~õJä×§©xùÛoŸ›³Ë²#‡ô`v€Š€)<ØÄ·KøL±f ¤sS'®pjsŒ ¡iµóiš)ö-hVÁw¦*f!—]Ö½q^¦ ò¾—en’⇾ÃâuŽžYÐq×ÚÎØ¾ûG1pîVýÞõÔó¬ÊUáúÔb=ÉaÀÃv ÃÚ‡(˜ëãkоյØ^r‚S×%•éÊÀÍ´ËSQÕ EÔÔ5nE¬]ø· ¾öÐÀ tLÒvÏ©»€äÀ|Ây ¬û‚ƃݴg5iÒ{ˆçŽ¹Ç áýØw²)•@+c»**Ë"¤ZbÛ¥þj`Ñ$ÏjœæÑ”à ÌpFóÎ3íÆ­ÒÙy›ÊL›Ü®ÑH§\Mº-¬,’Êe²ªÌUfkn;dãeešIé¥$È ‚@;¿Ïa§=Yœ³H˽´ö%U)¦¥è q‹ŠCÞLMÄ‹%§ó„å®Kˆ+}{±'ŬIfv´›øOÂoŸÝH:£Ï?^¿·×Yi&£½ûLçº}hÀ¹j0¨±]ç$«’qn&˜¥œŸÍ4iòšlî]@C¦ä¢ÎúbE ñ:±ùvo‰±}s¥¨…ÅÝ; ™Ä¡îD GrïŠì²÷©ßÇßdz{´D݈ýÁÿˆ\FPö?ÌÚ¤"Ú‹ßW‹ï¹0öh™u{&¤ýÒ}ä éIõ>R#ÒÀO$víäë¦^eSõ«ž¯˜Tëy•µ=F÷¬ë®îm&xIùÐâ8Þ–¾Xw¡c„J‡À¶·åÛOÉŸàš©Í¼¯Ö?œ9RêÈ™ÃuÇc‹}EYxM‘Õ4²Ù' Ñgôn¾®HÝtĸڿº¨j' Ô…VŠd¨HаF%*Ö½KŠ„} yYS¥œR ´¼šØ ¡ÚÊ]²h…“Zíílm7¸]¯ÓëT®lÍ|á"H3 šÀúc‹¡%2´>`hù¿`è­Cû5ãw©ï2‹bA žþÈʆâ<»çÙq||ܬ}¿³l4´<ÃÿLØ%¨ìÌówÂ."õD~"u<¢§ …øik.i endstream endobj 393 0 obj << /Type /Page /Contents 394 0 R /Resources 392 0 R /MediaBox [0 0 612 792] /Parent 376 0 R >> endobj 73 0 obj << /D [393 0 R /XYZ 90 720 null] >> endobj 171 0 obj << /D [393 0 R /XYZ 90 473.981 null] >> endobj 175 0 obj << /D [393 0 R /XYZ 90 255.457 null] >> endobj 392 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F53 330 0 R /F72 7 0 R /F102 385 0 R >> /ProcSet [ /PDF /Text ] >> endobj 397 0 obj << /Length 1283 /Filter /FlateDecode >> stream xÚµWmoÛ6þž_a`&7ýØK\ K“ CZµ³/ë>0’lÓ•%C’Cÿ{<Ê‘l%q1 Ì#yïýNa= ¬7¤½P2ô½huDíé×#f)ÜÇÓ£Ó+Ÿõ%C:d½é¬ùÄ4îýí\,äºJо+„pøï}×ó|ç®TÙªE‚ÄÅMÞwùÀɯq?ÉgUŸ‡Îce\œ…4t˜ßÿgúçÑåt«•Ïù+jkŽ}½ySoÆdÐ aÂCÕOßôé;×I–²JbÜnPyMå5QÊ•¥T¶ÞTHÎTjïá”™¢)“{á!¨hÄåëJåï–U¡â¤Ä³à–ÂZSÎjð›SÍÓvJ0¸LæãÝ,/P/Ô§jÄÏÔù(;SÇ# ¯þ5pƈç{Ì=a¶D¶‘5ò´=3PÚF©YC䯞E[8}Q®Ë»Äz»bÝ.•¿¿ruz‚+¡àKíJH;ˆ½Ë}P{N<2Aw.òÕZ¥ò^S„>ìaåNœàSŒ¶Þb¾ >DÊÆÅvÐç2Ý$o»"êÖX—…$¨³°ýdCû…Vñ1µp]mƒ²TéDò}›bv#Ó>sÒÜÔ˜9òL´º4cÔ'|°ÍT£@—|Á‰O·âk©Y^áó6îú¬ÊqÛÚ²*!_Ëb8ް3 Ç!NžG|6l¥Ëã"Ñ-BØ•"±–”%4Ÿ÷ ©[Ƀþ±¬Ø|€P™>Õj0g^€_¤}ã¡o<µ5·åhHÄçâU·@zbëiåqgŠQÛÂ:*ð†½¸¬dTäHšRÖD"#­ñ¢öHž¶S½¬à¥U‚–ÐÎDeéqÚê·z縚hyœ9_3ð¦ÞHóÔ7H'ÝÿÌÉ=>±©poü©±-ÙxWæ›"JÊ=¸£¬/”yiZ>Á;z‰±ß´Âó¨ªR—{YªI°­hÕGÕBZ rJw 6mÐÁb×°M,W&èÀk^جô/ˆó áZF2Ëô<@±˜;󢯝Ñ+ö¢$-£Ð¦©É<Â41µ2éù 7]™Í-[f¦ö®ª±[Ç-£(/b«,Àú‚cL2 rýàc†›,IbPËõÀîéK‡@×gÚ¸)K¥«±#8yfÔ‚¾¤Œs¼†S½myÇÈòTȈ(‘KÙ©wAp}ŸÌä&­ð*0À la(é¬HÓÈ¡,B:Ä%.sõ©óü —YÜ=Ã)rîâíÎ :w÷VA¼ý9îÁÇŠ _ï rZòãæi »ìRc—¯`·ß/Œú ?p ·+`"~öSýÿ¾ÊvG1{&¢…Ø ©ï÷¥h›X[ó~üé·)’WãÏ×—–žŽq½›\"á¦+$Æ·ÓãOm®‹ñÇÛ7—wV.¸DÐwe2Û¤H/ÔÜÃ5ýºkº‰­ëÎË*V9Y¼íì>gªîwY»_]ÉjÑà4zó¶Þ·õPÇ­™¹ÝŠ[ q2S™pûîó_ïnÆØ='fb˜MšºÓÖ´N¡!×Y–Tº†V?¨ÕɲQyføŸ}ïtR ÍÿZ4b™v›Ù¢ž 2 =¤[Ô>j®2i“LUº\óçÒlGž:ÁuùBãÙK‰—3xûv6Â<°"ŒFtGPÓ ‡ö]ýOéëÎ* endstream endobj 396 0 obj << /Type /Page /Contents 397 0 R /Resources 395 0 R /MediaBox [0 0 612 792] /Parent 398 0 R >> endobj 74 0 obj << /D [396 0 R /XYZ 90 720 null] >> endobj 179 0 obj << /D [396 0 R /XYZ 90 593.661 null] >> endobj 395 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F53 330 0 R /F72 7 0 R /F102 385 0 R >> /ProcSet [ /PDF /Text ] >> endobj 401 0 obj << /Length 1233 /Filter /FlateDecode >> stream xÚÅWÝoÛ6Ï_at 7CR–꤬†5{ˆ÷´ì–i›žLúhb ýßwÔQ²åʱ‹G<Þ×wÇ;‰ (ü±ALcÏ#± ’͵»_1»rAÀ=øyzuó!`FILc6˜.MLçƒ?]Æãعÿ-º?<óÓhF>až‡ªá)—¹H‘Úf@ïøqNž ZúͨÌJ‘ž9j.Ë*×(@/ƒzóa iò…<™4Aþ$¤6Iœ@ÆŒ¹;÷"MÅ,•P6ãÀ¹‡Zó¸3—h‰ÑŽ)æSƒ@Öfܤ£{;˲T ýu»Åâ6º.“°©–C P´Ç:ׇьyëÂéGÔQ‹>o,‚à´¢Öêë30øA#: Aà”+©ÍŠ9¢Ï<>÷•ReŸa(—±5R‹J'¥Ê¬Õg•¦¸šÁ=; {µåÉr%J\­DÑlIL?÷}ÆÝû³¹ØÈRæ…1ÊÑ<ó!Ø®6à…9z}¡,„ûΣڨTä)ìP¸Ììs%ûŽÎ)' ¬-l³U˜Âž„‰C¿ζ&#Ó™êæfÜlD’×¶³'Eb@®*JˆÈF"n{ø0‚Žv‹_™ùñ>ˆæˆ1u¦+yÄ@r.Ÿ(óµ2˜jÕ¨¾¾†g/¬RϲEn7…uU­± ‚‰rkI–ç2)µ,оëmjZ¶©ºˆ;³Ê¤c¿ÃUbR&4R*µŒYÝße#eÂ%ô²†3ö€ »Ö.mŽl“c³STÊz\!‹;ÙÊñÙ:ÔRÎM¥!ƒ0ÖmL#J¨¢§»fºF ZŸ‡p£„:¸çjO„³«ùR–vÜÁ9*±lD ”¸'Hc6a1— Q¥%rÁE舴:R¢¤·„ë~m(ò<|ó[ëÇ}…r‘g\ͳ À“$Ͳ%î<«re{ÝûÂýˆ»%o§úa³p}Ø"(lÚ6®·7¶ÞcŸðèh®u&­‚I«nï>MÔ‰I{4)_:}3üáä ÷»“•¿6¸½Ë§í¡MÿÔþï´²ïL«|n'þçLYÌ0Vužui’0é{'iŽûG!•}õÀöE°~’òÜ$¥¥ „"ŸOz4ß§Ûl4?m¶oéžùSW¦æ»fU¸6/u즥QøÝ^GwùµÌ9˜‰Ti%âb˜ú ¤Væúä1¾‚Ùƒr#^ŒüËh‡^8£{Œ/{Ïï÷žw½x_zQî.×Fé‹€ÜþG@«²ľáö‘Ny3,înÉì}9{Ôžoƒ#üŒfoým~½s~½ïöÛçÖ= þ¥­SÆÑþí˜÷ÛvpãÓ¨ýÀÁÅÉ‹pzô4mê÷\-•n¾‘T‰µ¯÷ªÖ­²8Ö“ßß9û> ÍÇó¿Ç-÷I endstream endobj 400 0 obj << /Type /Page /Contents 401 0 R /Resources 399 0 R /MediaBox [0 0 612 792] /Parent 398 0 R >> endobj 75 0 obj << /D [400 0 R /XYZ 90 720 null] >> endobj 183 0 obj << /D [400 0 R /XYZ 90 554.209 null] >> endobj 399 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F72 7 0 R /F102 385 0 R /F53 330 0 R >> /ProcSet [ /PDF /Text ] >> endobj 406 0 obj << /Length 1857 /Filter /FlateDecode >> stream xÚÅXÛrÛ6}ÏWè‘JB˜¸dw¦M›t:™^Æn_?0lÑ¢DE¤œ´þ{wð*ÈvâÆÏX¸»8ÀÞH'üÑIMç$Éd¶z¹ÙåêžB{ß=9z-é„F$R:9»ì›8›O΃W‹lSëí4äœìÅ4B¿WùúÊNÕ m^½-§!K‚òŸ–—õ”©àã&³-H1ª"P5½8ûéÉg-*ÉØ°Qb7ë㦂%“8„raÁ_–\2¼‹dt}_¿<ùùøúÙ3SûæoD3¡”)'!å„J«{ÊP)~ÝÉÙȉQ'ÇÈ…£NúŸ gA ~}áÓ?üê赂cá$‚sÁcþ ÇNŽ8!\)fÁ/Ó»z³«­2ÚiLÒ8¸F1s%ƒ—¥ÑøÆª Ý:•*7n0Š#ÅAÜÅø˜4KaœAØÔ‹¼Õˆå¦ÎË5>Ó ÒueŸlðák0<ÅØá»ˆŠB@*¢D»§ªž—Íæ‡€8l@6b¹[0³ö« D³ ô,Ï ;s3•q;m§ÁÇ…vhw•ž?ÇG”íIƒG¤"07t¡Yªª³õ<ÛÎq$ºÍ›}ßëËlWÔV–°0¾×VŒøö­ ¢øû„Ç¢‘#þ Š’*OX1V?bXébã ª$"‚¶@ÂpÑ W’p¦9ÈdŸ1š–´Bá“TñQLöÖ@2^st’ˆï-9°áR¿ÍB4ÑŒm¢˜UK­K+¼Ùæk¬¡Îá™ <⸽ÜÖV÷ãwWÌHB}U€[wý1My ·bò–EÒ¤ÛqxÓ—®K"yüyN»ñ;-¡$€ym°öðÐ¥$ t牽¥÷'¾Šóªrå²ôgÝ^Ì«| Ýj•¡íÊïF•’4M=nÖ¿™bžk-O$‰“®–‡:Éá:’‘¨‹ïû¹ðƒß…2†¼7ƒþÊܨýŒ¿5û><0ûj]•ß…ëÒ%VíÚ×8×HoþÜóži 0µÒU•]é¾3¡´Š˜ÙœLˆ@XJ"`7ΙÒzò[Ûh_c^îŠÂŽ~ø”­6…ömùD Õ×q¶·ºnzþFÁ b*Ÿ×uMèfEQšF6˺îºÙ–ï ½²ƒòÒÈìðM¶«ªÊð]~ÑÐY þDGOíøÔ™~zä!ÃPKj‰ –wvÊXº…C‡Ê!}jP-;TøÓ‚bP·÷!ù¾/-&l¸çKFòý½‰]Õv˜A Æk÷Î%lÒ%,L^îÖ3Ó5ìp–­†œP¹[Ï›yW¶RîRÒ ®\ý³¡êvu‰emf‡›l  ñÿ2ÅfŠ|ióÜõMAýujÍbè£[+­Çw@*b¨_t¢”hnx„ƒo&á²ldÞ°ç&;6i ¿Ù摸xî*:Ôg›}<#bŒë‘Dû7ÓFê,cc ƳKtšN ¹Ç,6”}Jz"U#Ë™ ¤tp]' B$h cMÇžÀ]LŦnOŒBŽÝ­ÓJ‰Smk¥Þ èaýÎ ºÓ‡K&ZS9äUpímÖØô[¶er|>šc¸ÿË&]|¦˜"ØR{b'ØÞ’ƒ(©$J¶t?÷Þúº¡0Á F2ŒþÿÌìkx¨¢{^z±c‹ò ?š<À-^|@,Ã,Œ)‰^u8a¼E•pS~TèuµÃoQø\/2,²I˜RŠo³–ª…ÅK÷ åcÕHþ•áY ghüv¤DîU”˜aeUõ'=.2·³ÙlVnçö›+=Ѭ*"Ùñ Å0^šÏñ»CGºðU6Ÿ[¬²ÀÖ°»âT¤6Šv<Ïve»ŠX­²ç£ç»¢U=PÑSø·„”ó[‹9~‘ìÉù¿H66]ô¬ãï”0[ÀÏOÛ«;·4(î\¡ýBOqwRw»µ¸C£ 2Q÷¯îZÜÕ}+ û_j;ýì*¢z8=VG­ˆ×Šì_%Ý^ý¶`³=уÆÄȘ+Å>ƒp2Ý'ÑèÀñ¥$N•ïø†ŠBÂ}ÜÜÅécu¨‡„Ó#7¨øËC ?raDE7Àäç˜ׄ; Þ¶_8öe‹åù_'4S endstream endobj 405 0 obj << /Type /Page /Contents 406 0 R /Resources 404 0 R /MediaBox [0 0 612 792] /Parent 398 0 R /Annots [ 402 0 R 403 0 R ] >> endobj 402 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [146.121 206.734 221.985 217.643] /A << /S /GoTo /D (Gri04) >> >> endobj 403 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [90 116.206 237.909 127.115] /A << /S /GoTo /D (Scattering) >> >> endobj 76 0 obj << /D [405 0 R /XYZ 90 720 null] >> endobj 187 0 obj << /D [405 0 R /XYZ 90 594.604 null] >> endobj 191 0 obj << /D [405 0 R /XYZ 90 537.946 null] >> endobj 195 0 obj << /D [405 0 R /XYZ 90 495.348 null] >> endobj 199 0 obj << /D [405 0 R /XYZ 90 453.356 null] >> endobj 203 0 obj << /D [405 0 R /XYZ 90 407.393 null] >> endobj 404 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F72 7 0 R /F102 385 0 R /F19 353 0 R /F59 62 0 R /F10 344 0 R /F4 345 0 R >> /ProcSet [ /PDF /Text ] >> endobj 409 0 obj << /Length 1368 /Filter /FlateDecode >> stream xÚ½XmOä6þίت.«c;ï×^¥+‚S«–J%R+•ª ³6›ì%ÎQúë;ÎØËfñf„ vìñãgfgØ„Â/›$tyIüx2[P=ºùÓañÔea%ÎùÏõÔå±Sšºžç9®j|'çRO®ñq.*Ñd²nðñ;¾Óβª*ª9¯qMù¸y“MÿJ:¹H7lθ£,ûÆ>ažþ¤ÓØs€«GGTm×ìËE&U/„ž®RŠÙÂó]WÍdQW-Ú-²)ÿ¢þl0NµÙJåÅ vEYYHeú¨ö?…IÆœ‡­µ³zµ.…;n(ó›VªÐ€Ë.ó ÐÃìÂÄy(ä{ÿŠF¥"rD‹74 rQè'ÓfØ ’ Ï”°0Õ¬Êqp݈/EÝé•èqÓêHÀH#>wE#ÀS5%•wQìgÛEÝ•ùÀ†.Üö[ Ô¬¯u@{ŽƒE…m†ê¹›2§“˜3xÜbrŠvy]½“Ø}P8uÓ(Œ@Ðjê_Oá"8®õçνJ/þHG Ÿ_‘fh¯ñˬšwÙ\à“ŠklÖL<ÊŒÎëJŠ$>¨U5ögpõ‘MVTR£¨b«á×Yw@¸=ïPchæ,}⨇ËÂàôw0m‰;—ݪjm ÐâóY¡Ù@À5Í ç‡x¸öƒW{o´„6ô(5X›ï?èÇSMª|ȵç²éDïü>lআû];õU:¨R´zµ¦®fýôb7œÚ1u¿¶„@9 g~³áȲm–cÄ©ëôczñËÅUz½ßÔFˆü¿êV·†K}§=—™T7gÙÚ˜ ãwY¨Oá²÷;ÂËëèÒÆÅGƒ`Grþ“äÚ7Ð\¡•t¯Û %Èž$hÚ>Òêc„ICI2+åîb²QÌï4få‡Êƙޙßìy˜h0v±-˜¦Ã“·Í–>gœW?õÏ»ÿA¤»X endstream endobj 408 0 obj << /Type /Page /Contents 409 0 R /Resources 407 0 R /MediaBox [0 0 612 792] /Parent 398 0 R >> endobj 410 0 obj << /D [408 0 R /XYZ 90 720 null] >> endobj 407 0 obj << /Font << /F51 8 0 R /F19 353 0 R /F59 62 0 R /F10 344 0 R /F4 345 0 R /F52 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 413 0 obj << /Length 1132 /Filter /FlateDecode >> stream xÚÕXßã4~ß¿¢ˆ—T·Éeì¸I¸[$8qÒñ<äÒ´Ínã„8½ê„øßñdÜnÝ5ý}§C+팱ýÍçñ—¸0õ Òps¤Q2È«›Ðô>Þ€ñ|àoE|;¾yùVÀ SŒ§ÛSŒ'ƒß½7ó¬éŠvèsÎ=öÕÐ"áýªJ9£®n^óæ§zè³Ä«¿§ö}=í†,öVCÝ™µ:ŠAƤÃ?Ç?Þ|7Þ Œ€Ïq³mÜI FI:êÂû’Ì}žu:‘8¶§K™we-ÂÑËøÀ4Ò y[¶ª³£­` è„B€}E®‡s2‹RŠÜLN¬Gy½XV;À‚Püõ²”ä6`¬É«1“4‘±ÂØ‘±±± áòJcŒ•ÆB¿>cšËÄ¢!Ä= 1€ÃÓ-ð÷Œg£§Z'xG¦tѲ†n°Ÿ í(HÌ‚é h'±Ä÷°´ÑI³Eç“t´ÿ"Ë‚$,H—@º€5 ÒhKç!:™…(¾Þ¾]Í‚”8 ù–4Ùúx_äõZTmKtô?“èÇÃR WÓê“TÉ­ÙGTõGl'²ÏCºÐøé/º áNhŸ‡–;¡íÓôO&éb·´Ã5….<Ÿñžóùé4Þ m¯Ö³QÀC¬ùß ²«Lšó®&« ÓQer™-Ì㹡v®“²*¤Â7Fß”YU8…þYß~ìò»W2Ä’ˆ‘¶i³‘¹—éüú™¢0ݺ{ÝRǪìæäMë–œRª.“Cðr½ ^A=5èäuUõ¯>làëбîXL$AÄcMO!_Ôµ¹úSÕ ᥠ;fÙR©€")Á(bë™6 3*í!ãÖÙ~×gXtýe4JBï}Y¬È«§d)íhnØÓŒ÷übçºö6MKŒå…Rµ™PâMuY᳘yP*²³ò=>,Ì„ï°ñÁEg.Öé5àä‚Hlb4:Л'@ߘËÅB¯§^‹_%à-õ®-:“«|ʵçŠs}bR»`§5 Ñ­Ì==ñº¬áñà7»'gRP³›geygÎ ¶ÊªYºDq¢N­c‡}ñô~›I¥·®êI4.‘zßÐØª”uKî6Õ8î›4mO”l »1 ’Qz€\-_Ç @à´VFxTâØ+‚Y`ÜŸùârM‚2«y™cüÜL¡ÈÊ7$J=5'¦%õÏ‹ÖäPeT}cw'#<´I0`V­OÚ IÍé,áѲ+&ËFQ×Î㉿€HÄ4O9%iÁÒ7*óµ‘[†Gîß=޾# ÆÎÇi½rí\‚×K5⎽jÄë;©ÿ¿x±w%3þp`i¯wû`µñ4ð ÿq<íG{‘"Üm`wMÀïô@þú®œ—ý.{z"PìÈžØðg Þ>Úà¦T\‘RNÇæÔUÍ©õ° oü{ž° endstream endobj 412 0 obj << /Type /Page /Contents 413 0 R /Resources 411 0 R /MediaBox [0 0 612 792] /Parent 398 0 R >> endobj 414 0 obj << /D [412 0 R /XYZ 90 720 null] >> endobj 411 0 obj << /Font << /F51 8 0 R /F52 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 417 0 obj << /Length 296 /Filter /FlateDecode >> stream xÚ…QËNÃ0¼ç+|tÔÚxýhc•pâFnÀ!j“Z+pA¨ÿŽÓ54)ûš™ÝI€ˆð±‚Ì•âVgdù’ˆØÝ$3l€8/’“+·Â)ê¡D±"÷TŠ”ÁÌÎ-½¸mS&3Ú^§L)EY4-±ÚÆ¡Çr]¹ª+ßÚËM_—¥s[cÛ#gûþT­º2},n’ËâûZ#å?vzÄO?rè ã™ešƒÒhi×/  ƒ½¦Nƒš¡Â‡éYŽQ†`ú±gpmt¤ò}DDN”XŒ6Eèþ[|íò*‡…W§¹c}œLþ\vLÀä¸&h„÷/ f|Ã]oJ4£›½š>fº»:H£3vL{7?6’úŸÿ ˜ ¤ endstream endobj 416 0 obj << /Type /Page /Contents 417 0 R /Resources 415 0 R /MediaBox [0 0 612 792] /Parent 398 0 R >> endobj 418 0 obj << /D [416 0 R /XYZ 90 720 null] >> endobj 415 0 obj << /Font << /F51 8 0 R /F52 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 422 0 obj << /Length 2608 /Filter /FlateDecode >> stream xÚÅY[oܸ~ϯð£d‘ué¢[oR¤ðn‹ÄE²!Ïhl5iVÒÄk,úß{nÔH3t’>2âá!yîç#­/bø§/Šø"³VI~±Þ½ˆ…úù…–¯0¬f¹yñú­Ó:VE\è‹›í|‹›ÍÅÇèê¡ÜU¹²ÖFöO—«$qÑ?‡º½gÒøPñÇÕuw¹2yÔý•Ç×õ]_öO@3ºÐ‘Ñ—ŸnþöâÍÍ$Œ3æÒ"Ç™¸™¹Ð™2Ú%"nš'Jۄŵ—+—šIÀ̉€ðAZÃÂØ b¬d e ÞówHt.*f´Ž'qðx Ê—êݾ©vU‹´±Ú 1‹ÆŽ'˦ép⑇£ßþ0 çœk` ½©ûj=6rö¶ïv¼ò¡P!Ô@[¥k°ï»û¾Ü ¯@ó®Ç‡î0¢òè×X' ™(‹Êõº†jà™®gêð4ŒÕŽi(Ñ ÀÈ@¿ye,8-i›K=ñ ­ªÍÀ¨’šºýÌ”H{X â-$×,:Ê ŒhþiÈèu…R$¶)&INŒO<Ø•uÛÈ7XÍÿ¥Þ¦Å–=¶‡v=Ö]Ë£_cKx˜yxXæD%×M×Ýß®›ro×}UŽÕ-i²ò| …ÐW·u»û"ÏAhC„ËÎ €Æ˜-¢Ç‡zB£-0¦ÊÏ— $¿„rñ¶ÌAfh{×û`¯ûz/*šÜ›¦†n'+:t ²P¼Ø8*Û ÏôÕxèa²eW­DÚy¨>(6åX²‡‡±?¬a¡L¬»¾¯†=ûªÝH¢æ#™ß!î«¶êKJ^GK6² :§ yÇäÊCêmȧsMb ã.hû¢P¶X.¡ÉìN(4iœžÄçÌ1.‰(ªáwבºÎr¥Ì⯲å™ò)I6 O\-Êßy<öU…‰§â°B f×¼IÂe§ë?ˈÝé°.{QÄxÄäˆ@¢“_“¬©ÆsðjåA({pýˆG=ñľ¯Y\vpÌRæÉ™@}ìëQöb¿ +N[6L]s]ÛSÝ2OŠ®@»bR'÷xîßß_æIts¹ÒÑûQš÷ã9x–­\< 9ðLÉNŠç%aÃSÛN–¬;Rô þWµuÕ®e[ÈôχyÑV¤Â »†*|ÞÀdrZ…µ}NE#þƒðü‡ l"âçõå)4²¤؇ŠdQûØGe“ÔøŽ—«¤°ÒF•æFzuM*b=œçO’Ù.ú0(K¢Ÿfå%ÜVu¡´ï«ïPÂ8ñÆ(!žÆa¤#¬>Z‹±˜a¡¨_íçX¬Ø‘`ý7ñ‹„ì sßù`>ná¢Fšìž‡R€(­ãß¾‚l¤¹3 +äyÒpFJ¼æ€ž“z4+i0”ó8‰x–î™Ã¬ŠÁ˜Þaྸ˜6¹¬œsÿa„ê.‘*I3•zÜt…=Œùv¹è%7µ)·;D,k,¸_ºzƒñ‡P â$¯ž/ÞBÃ¥g'Ðô´Ùi¬¬DÆT9›qXH€™öu{vL`×Ô¨Ô¥g5óÖRíNŠ„: ¸z]ÂâŒóˆgË Hã6VõP.vÝàš€·9©ƒ …Á*SŽÝ Ôøëé›vSpœâ«?˜ëÐõ}[ Ôúåî}÷8ð÷:Ž£×/eî°»Ãf†ß('þöÀ­½¦S´æ,]4œ“3®ºæ°kÇàÏ×NY3ÿò u¸7×íx+ê¿|¹G ÒÙÞ?ö}ù´ÜzßÁ’ªYÐSôû °RÌ÷Œ®K|~.Áþö][' þ|²¥W±ëûCw‘«2‰PA›~Z¼ Yù?A=>ígŠ¶Ï…f•nÚ s!Öç•pŽêyÛ Õ‡"êU8Ø$¾û GásÁˆG½}wýFdÙvÝ«3=dnw~ÀW÷_\2–;Ñà½fнüñ¡£‡Ñ$Ÿ¢ ÉT5|Ö0&¯Ô‘\/ïþ‘—îø[|S“.L¬Ë鑉ã3ý @I'PÃQì¹ÒéÔËËÍÊW¸% ÅÔ‘öA` 6ñ µÁEKHL¾çÈÓ {‚T¨4æ|G‚êêá¦.’áæFp™JŽ’}¬?…„3™ŠO°òšè«/ oP¹GIðOý0òlu| çY/®à%>³X4¼>“h5óèø"UE†áP™ËáÿÂÈïX_^ÀnGF‰‡ ³ ©³bRVJ~ØýÎN8^%B`éhßcmeú5qîänFýSc{Ø·ø°D-´â7vÿØd†±¼?b)âÙ¾â¼Ø6߉Vqšµ&8•äÅìÏqpe’ އA¸2Ö-ÿÊa²<ú3ÿĨ„‰ê-ÿ2Ê.$ýcëÈ“'Ö·bÅø|kˆ:üœ,b+æÇWço™Æ$ \Šÿmˆ)çLø‡{d2.XeðZ?mµ°ªõV5ó`>š3‹FÙÿ òTß± endstream endobj 421 0 obj << /Type /Page /Contents 422 0 R /Resources 420 0 R /MediaBox [0 0 612 792] /Parent 424 0 R /Annots [ 419 0 R 423 0 R ] >> endobj 419 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [484.727 306.812 522 317.721] /A << /S /GoTo /D (Wil93) >> >> endobj 423 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [90 293.661 126.364 304.57] /A << /S /GoTo /D (Wil93) >> >> endobj 77 0 obj << /D [421 0 R /XYZ 90 720 null] >> endobj 207 0 obj << /D [421 0 R /XYZ 90 720 null] >> endobj 211 0 obj << /D [421 0 R /XYZ 90 537.086 null] >> endobj 215 0 obj << /D [421 0 R /XYZ 90 477.381 null] >> endobj 219 0 obj << /D [421 0 R /XYZ 90 339.693 null] >> endobj 420 0 obj << /Font << /F51 8 0 R /F72 7 0 R /F52 13 0 R /F59 62 0 R /F10 344 0 R /F60 14 0 R >> /ProcSet [ /PDF /Text ] >> endobj 428 0 obj << /Length 2241 /Filter /FlateDecode >> stream xÚ¥Ymã¶þ~¿Â@¾Èí‰ÇWQJÓí5´¸‹d¿å‚…ÖæzÕµ%G’/¹þúÎp¨7›ÞݤX`Å—áp†3óÌ+bUð•UŠ:_mox}z#B+‚tFñÛ7ï>±œ¼«Û‡9‹Ûíê§DÊu*²ÂÉûÍ:•yÒ|·N•RIŠ”ÔÛ‡É#uw®vmÙ7-u¨¡“nSÖuUïhøHkö_ݶ-×?ßþûÍ··£´FÊÔAŠ—õÉr̈́ҤOÕÁÖÒ$‚­S­Erûèp@'µû­§)·wW¯A²>—m ê‰Ú$R×}â"ÛTsj4DÓ¬OõSÝ Å¯u÷‡,È~OCøÏmiÅ=v¾ü¾­àÐà0R¡˜0¤¢_)ÁbDz-®w-î*ó")ë-Í/]—ûýêök‘„E›¦îú’v ³®=àiÉ,ù°ÎU‚¶ÄñÊn\`>n;éæ M´nο-« ÇרÀ»¢X¬Èd†6Ö0¥õ*•œiAJ僢9YûfTÞ²B) 3>÷hfV¯DÁL~✩)æ¤9Ó¹¦ä-báR¹(þãAÍäc"3–v ù+žMžð˜ìàåL[Lü{¤ÿOlcËŒ/J?RÔ1‘¤aFåÉ'.Ml'!˜Ÿ TQqÓ b7Ï—ºýbO‡^ÅäFËÉIìø.ùøóÔŒcÝéR+òÀd • ÒU=&Ãe’éi(H )âòØÊ(Ú²E—ÓDsƒLØtoN»Gì YF¿ûþ†ûê—‚ ³Ÿ¶ž&æb¢qe³ošÝ]U÷w}†3fÍ^½ˆã9°ïÖ…n½íh„žÉÉ(¥¸TÀ97(+ôîuŒWBêlwØþ諞ڇ2„$R öè(”GˆÞ7C¨‚ž1-uÆt6Ÿ¯£p;´¥ßÉGfŽñ6¶q^0aíå¾CK_“À*XK ¸wÜ÷º+:9ÔX$ñâàþÅ&A="êËçÀ³1^7x2Sê“9OЭi‡Z%}Z÷ŽÚ§¶É.Ž—`v±L ¡­¾”fv,ãõøzj/@VÎ$·Ëì ®\,Î*xuì¬FÀ‚{”16Ü:­H|ÐR° BalÇ ¤™Öù: @â 7½ÛÂ>ýã°#Ý$ç×oÁr¸è( «.üœÉf€‚)3¿ˆ´éŒ8r?géeùÑm(¿¢€îLKØÀsî·? Ѭ2ü0&Ÿ¤~KlŽåÎ=WKjË$¨¡ü ìÚËÂ@•ÎÈ" 3m¬L°1ˆðpªIÈE­fYn¢½ÀÛ¨]áªl§__>yÏîè5‡DTسü÷f-Š…7¨G¶4 ²?x”)\“ôTê¼#€RÙH|½H0jºãÅ  z,XJtõL‘ñÏ 8ÖºþÔÖ ¤É£á}µ4Š¥;Åô„ pêµÀ9ƒ³TCJ*–tÝþ `HUÝÖu›¶ Œ½ µ.6†L‚í+Ç+”‹îH9øåm«ó­j¼už|M„iis~§š„úƒ\ý#ñÊ‚´l¨V83ùYîj& ˾¤V×·§ X×y¤ËÂÊæ*³¥ÎîMþþ¥ýå)š0‹eÄ£Ùr¿[äÄÇø“¯5=Öþj‘3qŸé¾?l:  d¹5Kµ1Yî®”žö’¸h$–©ejâþAÔ•‘á̰±ïjuÍ!ŒÝ—´ïšÚù€‚Aºrùç §ñ»Ðõ' ä«þŠ>©˜úÕÕ5vÀ’ň]¼ÊDTå‹Y™™Çú7k%°ú¡ô|Þ¿ªêÍþ´ 5ð7þðß\}ßù{ü[ìMã5%wàã¿XÚù Ìó…·,?U»—‡/TÜo€?ÏÏŠe„Z?ŸäÀí)®'¹K ã°.——™Îo_ÒçfMôËå>ÌX´Ý<»x‰˜î£åQ%T(Z.6̲ðžÙ)µøQú„–ZS ÅÙHÐôZ|Y¸¿³—× |D©W =fûl„m’¸ª·Õ¼® Šø`œà*ú6î ð!«î\‚e⬲ó×üMh–èU‚ÆÇgÎ!3€Á‡"KMé ( @kLUØbJørp‘bø½êa|„ÃLA~ùZÀ$ÁHÕí_÷D…X‡Ž×#°¸ë\pA'"ž†Üðá:|OwžÅ®úìb+Co^¨Ž×ë—¯ÞX“ÿ3ßMÇ endstream endobj 427 0 obj << /Type /Page /Contents 428 0 R /Resources 426 0 R /MediaBox [0 0 612 792] /Parent 424 0 R /Annots [ 425 0 R 429 0 R ] >> endobj 425 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [460.983 337.624 522 347.624] /A << /S /GoTo /D (Domain Representation) >> >> endobj 429 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [90 324.171 247.228 335.08] /A << /S /GoTo /D (Domain Representation) >> >> endobj 78 0 obj << /D [427 0 R /XYZ 90 720 null] >> endobj 223 0 obj << /D [427 0 R /XYZ 90 466.213 null] >> endobj 227 0 obj << /D [427 0 R /XYZ 90 248.484 null] >> endobj 231 0 obj << /D [427 0 R /XYZ 90 135.961 null] >> endobj 426 0 obj << /Font << /F51 8 0 R /F19 353 0 R /F60 14 0 R /F59 62 0 R /F52 13 0 R /F72 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 432 0 obj << /Length 1892 /Filter /FlateDecode >> stream xÚ­Y[oÛ6~ϯ0°y¨Xñ&’Û0 ëÚaChö´b)‰P[2$¹]ÿýy(Jrh'i‡‘D‘<÷ï|¢é*ƒ?º2ÙJqNŒÐ«Íî"ó£/¨¿KaB:›ñËÕÅË·’®hFLfèêêv¾ÅU¹ú;y}_쇪[§œó„ÿ°N…É_}ÝÜáÐp_áÍëwí:e:iÃçwõMWt_`ŒQCÆ×ÿ\ýqñæ*(#{D[;ãqus-åÕ½rêä&¹=4›¡n+±ù¢\Ã9ÈpK6Û¶½».Û]Q7×·]»»®ûíu_ ~éBаLk‡âãl®zZĤqE4eãŠ~è›]tFŽf„R5.*üþu³? ^TSâMW ‡®éí&+»+ÉÔ*¥œPé×Â4!’=§n¬¾PäÐâÛ¨â¹!y–:¼¶núÕy)¦püI G”ö‘€½C$œÄMÛô‡s˜“ë»ê¶êªfãW V Ýš&¸‹LîêOÎÓÑ€2®‰Ðù){ß(J2üs¨Ÿz"ÌŠPÍæé,y_ïêmÑm¿¬5O^Äô9¤ª—ùðbNͳ,žXvm0aî&‰nÊ—n’ÁMÑàQ–©ÕS£—•Ën[Îe‚ "˜XºlL8çÞ"ɈæÈ1¹"ƒLnv3lY SìŒÔ0(VºpÂÀ7´!bÊœYÃ@–´wï7ʼnm‘)–"šh°C‘|„ ç’Ù"€™|¿@ƒ®*Êë>LùÉlîH\s]>¬XΉ{ûû»7~îmÛÂ&ôGtïröãZMšÌsjW ]ýoÐíýP •_ÖÛ{ÔŒ‚ÿ¨^*ææÿé–û¸× |ª›oš':2¼/º™=1ŸÚºÄéªjRûØä°ïqΤJ.‰¤jBý(,€ÑE N ÅF¶SVý¦«oi{¯ú˜¾SνÀÏ÷õ6Š÷°ª HÔ"g}÷ŠÒð{Äzb4¡Y°{^Ô"p¦™6ë@{¼Ä™ao\`;ûßÚá‹öÖ^©MšŒ¶ó½Ã×e½«šÊ·Çg—ÏÙ™An uÅ®²`û)Aj€àSuÌîzßñ34‘ðZTaU èÆÄdŠ'e18ˆÌûÐÙ ÚgtLiªôípt‡_Šem{BUâ`Óv8ÕÒ‚ÒK{‡áÜù§çm:.™W–ë`ÌÈÑiøà¤ãíĬ,SÌœÁ쪊7© àŠÎa‚í¼ì"ÜlûïúvçÆò䦨Øh €6^ŲòÁjJOJ¼ù©'™À£0—,{wüs‘l ±§¬• 5ÿj”èã´žBÿ¥@'×ë¯'™ý劢Ý~yÀð$Bÿ]Ýl¶‡Ò“ߟ\\^îa‡m}óÒ=‘ûŸS²¯¦Ü~;w½¯Ê®m,ƒu› éÐô!ÃŽ0r÷pöð/§M¡Úò[ ¬äcRœrªÎ…sÐæ<ýxhsLÀ^; ¼\ºîy2¦JnBW¸<+œe=GŸö¤D°lD'{‹ý›ÎÚ¦ÅËöiGmÛÄI±¶©4ÉòüÚfª2qê›8f6¦3íF3y{ïà=è_7e UáT('ÆÈEÒ‡öº‡©|‡Øv;!ìí ‡ýðµ×°~³Î‘¸Ø ®?¸^>ö?Ç‹ÝÁ>ìiwªLÂÍj»EõÒîúEd²º0D—ºß~ªÀêÿ QìéÈ®Ø[Ï­\éãpø.ß?÷{øc§ RåçKÔ"Jí 1> endobj 79 0 obj << /D [431 0 R /XYZ 90 720 null] >> endobj 235 0 obj << /D [431 0 R /XYZ 90 615.301 null] >> endobj 239 0 obj << /D [431 0 R /XYZ 90 359.668 null] >> endobj 243 0 obj << /D [431 0 R /XYZ 90 199.9 null] >> endobj 430 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F72 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 435 0 obj << /Length 2033 /Filter /FlateDecode >> stream xÚ¥YÛŽä¶}߯h /š`›+’E!A€ÍÄ1llìÀ?ÅAC#©§wK ]v3 üï©b•n=ì¹Ø˜‡&‹·ªbÕ©CÜ„ð'7i¸I´id7ùé]ÈÒ_ÞInmaÂv1ã¯wï>ü=–Š4Låæn¿Üâ®Øü+PÑÍVš4IƒÛOÍÍVÙ ùúf«µ¶øõŽQVØÍV&ÂhM»”õp‚MTäǦyØÕi×?žK’ý~n?}ÿý×»~üáã?Þ/%ßÜ}õÃJðãíÇ;êÿú'<ŒÛ*#t¨è´[ú’HF"Õ)Ü£ßÙžS+tjÆ]ßy?´à&£Â -ÏmÙ•õ Hß‘  ÈÈ4p†‘¤ÙÓ/FYÐ ôVA#d'åtùUßJð£Ö±'_2!Q’Œ&T g¬ñ:«¾ÊŽÕQ‰X›à­x¤ÁŒD9¤2 úÆëN­D˜ØqëkXàSJjÐ*ÖãRŒ+k‚l¢¿ªüF%Á‚I›D„¡][Ï~#P'x¿@O‚’+CQ 8aè0I½fXaBóœðxm1F„v +á½>eS‘ÀºU¾Éc‘-£ñ”>û/¬Dë­ úlàF§ 728acò… ZÇhÄg˜’µƒ8^ïh8ãýªú<ô^KThD¢bŸ·Æ«ÒB%ÚwU/92”"ÔÊg¢N¨È›RîsÕ Ýñ‘úy[f½³¢ð^®JDlß–ó1”½É@ç8Çy„596ÄLð¥êÔÊj6_Pfm~sîáÈ ²IÅ&à‚£‰F¡d¬2$«I¸\3|ÐMâý<ФýPç½ÃìeuÁ Z4t˜O(`šSX•-€M(t‡qƒ3k 8ó”aä<ú*Þ½Û¤ôú92šœöÝOŸ>ù\ ŒÂFrr-j«Mè@I¸Áá|¬ÀÎr”ïI^õëyu± UÁßìi¤nø×™áÖðÜîL9W?‡2*¡&‚ØbÂÔ´„Rgöpòi†süR!âèÂv¨mR¤Ö¬J7ã¹²:Èò¼i º"«<Ø„ t×cXÝPDpgîÆ©<àR å•ÎüiiR(·ˆ]O2Þ(Y^7É…™«ÞLq<û™Pèxš›šŽÉ;f…µ éEVàŒÏd ¬2sR&vîò¨ÇËšóª|àÔæYxFZ-_m¯4“ÿ0YXc3¡­çåK½˜ ›‹¢. îvÐ!ÿ:d:îqé:H̪®ç>>úË]—k_Òe…©ÀöúÊœDPfdÐôÔ¾¸F8Þ€ d6õ5 jalòûjoúÂÝÆö9Ž22i?±L¡M¼ÊtÇ4”‰–®j j¹|‡ßŽj+ <ꨉµÏ®cvWná¦éáÊóÕqGÜpŒN¸ºu ï%Ü{ã(d¤$£út˜É R´8ÉÑ¥šÉÒ"\>‚&2Û,«©ëÙn}ÙóŽDéPæ¢Âm6ó¶« D4EÐj¯’™aÏQø(bÅæ¶¼° 9v ¯å3G'”ØÊ¢¤²NþT0UÜk±ÎßÛ¸Â#‚<òíÐÔqü®¿lu¶bµ‰´°I¼ø† $}E¨ºã ß ˜pþ¡ªóãPð3ïÏ.>Àê®%¹úÎ}Õ£tß6§lÇÒSvÆ÷ÜÓG(í»sS¡P°:«…ã£öxîMù›ÕƒÔ»0ùºj.°ù1ïÖ¿úEJI™Ú9ºÜ…Ì_ŸP¨ŒgÍmð_ÿ¢wÞï endstream endobj 434 0 obj << /Type /Page /Contents 435 0 R /Resources 433 0 R /MediaBox [0 0 612 792] /Parent 424 0 R >> endobj 80 0 obj << /D [434 0 R /XYZ 90 720 null] >> endobj 247 0 obj << /D [434 0 R /XYZ 90 720 null] >> endobj 251 0 obj << /D [434 0 R /XYZ 90 290.119 null] >> endobj 433 0 obj << /Font << /F51 8 0 R /F72 7 0 R /F52 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 439 0 obj << /Length 1756 /Filter /FlateDecode >> stream xÚ­XKoÛF¾çWèÊ07Ü_ zp$ha8EìœÒÀ ¨•E˜âª$åÄ-úß;»³|Š’ì ÐAËÙá7Ï!yð£³Ø›…œ“XD³tóʳԇWÔ®\`p{¿Þ¾zóÁ§3ê‘Ø‹éìvÕ‡¸]ξ:—ëd[ËrîrÎþvî á;_ª¬¸GR½–¸¸¼Rs—EŽúˆÏWÙ¢LÊ' 1S‡ùóo·¿¿zÛ*ã3vB[ͱ§nÈf”ôµê‘ ” T—J‚¹ë̹ÌA!ÎuS'µÜÈbOµVŒf}£YD¢™KCpŽ8U]îÒ€˜ï¤¹R÷•Å0ïƒz.(AÁu†ûdÌ ûF±Û,´ÏôúÝÜ…ï9oÎðùV;L/:Dó¸+²¿v²ÿ>Á‡³7F$¥Døb(7]'VÊY‘l¤‡~+êh¸R+ü¯÷„…4v!ü£Ê–vÛêX0ê¶7¯TÙ°Ëòue¨ŠGYd²Hå´HzÒñ}M ùÃÞµÖ¶$™÷^Ø3=ÏŠ¹lÖÕÈÿm¬Þ÷Qý´•K¹j¼z\ùKM»ÒZPî1{ê&Ï â] y·Iò\¥z¾×±[VÃ;ôÝ”»¸Ž!·%ÄQ#~øíê½Å:?¬ûÙ¾ˆSV¥”C•§àÆUɵ'4 "P„>GSG™‘PPgÊȦx ?pWêšp§”ÛRVP8 ®ÕÒ’)©Ô‹ã´¹þru5% B~Ãf“ Û‘!1çÔy˜³ÐA3ù‰›:5´ NSÏŒZ:¡°ýV`þ2AIƒptµ‚)üŒ0UIY…ÿªÈŸpµ„xQQh•ôãB3Û­¬¶ÜMñÒkƒ¶Ûh3 Œ)qC‡}2dq@‚ už-žîã‚ð ­N°=¢¶¦ Ä‚‡™iRX +‰þáœùÃaŠƒ`ÌÙ¢Ÿ2tI«Æ@_?"œÅº&N…š’0jóÊ”D¿6þ……Ò¾øÅQ?>šÐc‘ÄZá¿®YÇÆÒ w“:SŲ^[‡D¡täT•ð²uF±Ô·ý„#BJh¾è¬Eß;kć6ˆÉß×E•Û§MR$÷}Û85‡Aÿ×jœFOÐÓŠ¢6›öo€³1i"ŸÄ±?8T»biú¢ÐÞ-zÑsZ•-²<«íiÑ›æ‡AÇ­ïG8<  u@Ò6)ë,Ýå nøÃ¶*Ôߣ†”:Éée&+»T¦´†Xø†®o —ê»bâjP¶Ó3/páèr”ÿ6r£tW§7 ™ÎÛÜùq‰T[4¦*gÄ£ìD¬ 5Ɔ‰ ˰ti ]¡‡]?ŽûÁO[}ªŸìU÷ö©>0o»%J¡æ´í’k7 ïX£×"®!®Ž ïæ ,Ë–²jè×;ºƒÝ–QÏ;йu¸ëNI(ù^s=‚áÁF°…3Gªi:ûí­Ûîtxì´z«ƒx«gáàT€kw^¤ªô¡EŒâ~{{-&§þIÌt{Èävç%&§j³Íòd‘Ë5àý8úYyJ×<)îwPñÇ yuqýñËÅÇ÷w—³Ñ?|ú|ûùâúYBªäQÞ-Õ&ÉŠ ùaOÐ ì5#Y•m¶y¶Êšy!UÛ§áX Çfˆ##}Î ÑÔ›® ÿÔ§ çÚ»‹lvz°`ÿßìÐNM+¥Î©}f_|± ÁqòØáŸ"à^|ÐÙ /nÈHÑ©"öšÞ®Ö©†p=.°€…½4+èrKj£nþ—»f»k ^[ž…y–ëÄt’™Ú•˜‹Ð\{lthÿURŽ¿ÈPÈÛ(ŒgTâá¿Êé™G¸ßÿ6Óðº=æ‰ÏIcH#þF¦ØêÖ€ŽÝÄ×KpŒî‘ÐÙøíÜ6PpE½±ò,ŠHòòûŸ”®jÁú‡¹¨PEÛ•¹%6sÝ71£Ó*Ùå5Rç~±ßÉæÝR¾Ål ¼A–Ò(&%*Ì`¡Í½xà`F¿)ó©ô H»ÿË”@‘Oýn¬ò¼É戨e¢h’Î#¨›ìokq“í¥Ê‘e‡ÏYŽûíç¬(`üU•uŽmKÕÖœÞóI¿ð2Ø7ná‰[VSÅÄAçhd£Cvq´+ìÙµ*Õfm¥§ÏÚXe†ôç[Æ ö¨µŒ½Ä2(6Þ´jS#s@b¬ô:+õXlpÞ×fÀ,oU·-àa½ø0æ?è§Ú|AD7Yïk»T¸.TºÚûù©$3FC!ükó5"Ï;+tÑøš®éø endstream endobj 438 0 obj << /Type /Page /Contents 439 0 R /Resources 437 0 R /MediaBox [0 0 612 792] /Parent 424 0 R /Annots [ 436 0 R ] >> endobj 436 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [111.879 141.849 288.773 152.758] /A << /S /GoTo /D (Calling CLooG) >> >> endobj 81 0 obj << /D [438 0 R /XYZ 90 720 null] >> endobj 255 0 obj << /D [438 0 R /XYZ 90 720 null] >> endobj 259 0 obj << /D [438 0 R /XYZ 90 441.361 null] >> endobj 437 0 obj << /Font << /F51 8 0 R /F72 7 0 R /F52 13 0 R /F60 14 0 R /F59 62 0 R >> /ProcSet [ /PDF /Text ] >> endobj 442 0 obj << /Length 2207 /Filter /FlateDecode >> stream xÚ­YKÛ8¾çW{’1G|H$ì!›™Y˜Ãöž6ƒ†Z’»…È’Ç’“4óß·ŠE½ÜTÇ }0I‘¬úê]l¾‰áol¼ÑR2«Ì&?¼ˆýê§Üv°a7Ûñ¯›?¿Mø†ÇÌÆ–onöó+nŠÍÿ"‘nw<µÚFo>´Û0Qûn»“RF;üQQF³Ú<Òô¾lÊSÖ·'šîi ¢.Ïš¦jîiùHgêLJ²8eÛßoþýâ×›‘ÛDˆoÀÁOð¤ñÉ&5Šq©Óǘk$Øí|/,M¸Úí*»£ß´7Ls1lú' Ð&â„çcœÄEKã¦í=äã©Ì ZÌÛñ.¿Ò¤üãœÕU_•œã/‰Ø’ûäL¦z*`ʤßÃþô›( BÄŒƒÈVAt}vêiÚ·OaìOíÁ}(é30¥N?Sõ¤üç€ fbù#ÀÚ¾ê%aZèg U újÿxa®ÍOçÑ,UÔ6õ–GÃ$/ †I#~Æ] ÄQ› *H3Áåšø+;dŸ¶¨¤eÐ__Êf+täurç!ç¸í“‡ýåö¸óþ"¸±ÌË®ËNë ¥e&5?:?®ú”°ßÖ‡6›œ«ª³»Ú›äq´áv?ìp"(ü¹s7ªŒûx¥{ÚÓ3¯4ê‡àxtšÏи•$’(&¥ø»%âðkÀ?BÛìR j@™ Ò8z7Sba”’©˜LuÙçò¶hYÕt!Z„Q©í±¯Z°5% D΀3›QM_ªº&wÎÊÝ('G™‚Ë^Ê‘’~; Ãðûy›¤QVŸËŽæTÀÀá|àQžõ9@,<º§ïEQ¬õ]üòPyø{*¿¬±Ï fÏàk( Ïä"F"ªØÃ!4x¡HuT~-ós_Œ,mÅ7 g¸äÐ-Jö™Ý|T˜OzX,†{]Òã©tÖN(À*éz€ËÌv—¤"zƒ†—»ßÏ}0@а®Ò,Šq86œ€z>‰~Êqá¶Â•[,91ݽ}ÿáWÿy_ÕåK»£¿¹èÞù¯ë]ÝùjáÓü jY]·9’s»~!öÛÚ¦/¿ö®–…rE‚óE´pGþÛñŹs1±²[žó}n«‚6ÏYÙŸÊrädίû¼€'R&ãg/+·ã­[¸å\Žs"ëò)_ZÝnÔmÊŒôÖñ:hËŘf´·B–‰ÅîºþtÎûó ÜÆš4ò%[‰™£ó¡ÃO E*ÜS*·ÖÒÒÔÇ2úð¾÷{ýa(þ|V¨À"i1 AÙ™ºK0±¹%pYÅŒ³tV·èƒÂZÈ¿ýŽ :). Œ/bÐþRšëdSÁ¬µónV’eÜŠ+•³DŽ…MŽñ9¿sZéa€'»ÈŒ×>RéÐb?ó¤,Œú!u-LÍôÕ³¦@ iøbèC§êüRuÁº–Ç‚ñÉ(©‰;ËÒt–[.âLÐ,4tû£ÔÁ ÄUWûXq*©IÀ¸0Vh8q͹—)Özi”¾cO„ þð³xÍIÄà(8Ģĥ¦D¬£ãÊ2%’¼•'è 2•ó šÄÜ•SŽRí’‘ç±îZ|ÇV¹J©£Åµ$© ó‰Q|uÖÜŸ³û`{µ“à¹Üˆ¥¦Z[ƾgäkÄ ºÒ‰\Î)C½€^ˆ?‰cèJz-pvúVA€`¬b2ìoz¥Ñzá•k*ëTUmÖÑï`|(õ¡3¼ÆE-ÃÁ¨N!ß¿E$ zUj¡º˜ì |Ä7¨Xw-®É,‚)i®”s£úЬG·°ñ<ÅàÔÅiùZP‚[|X£9Ñ¢huÙÁ“¯¨ñuÎŽŸÎÿúº;…ÜÏ/òˇÇ-¬ë4=ÍÕC¢D·ƒ>Žºcüº?7¹'3,º©ukO.,Ê.?UÇá”_Ñj:r_}v¯Qí$_­&ùz"%Ú–fY  £h,Ic_‹ª©µT‹þ0ðÊ„âV¥ïhî˾­\”ÃÑÖB‹áå0RЇC4ö„À> endobj 82 0 obj << /D [441 0 R /XYZ 90 720 null] >> endobj 263 0 obj << /D [441 0 R /XYZ 90 504.003 null] >> endobj 267 0 obj << /D [441 0 R /XYZ 90 272.413 null] >> endobj 271 0 obj << /D [441 0 R /XYZ 90 241.128 null] >> endobj 440 0 obj << /Font << /F51 8 0 R /F60 14 0 R /F59 62 0 R /F52 13 0 R /F72 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 445 0 obj << /Length 792 /Filter /FlateDecode >> stream xÚ½VÛŽÚ0}ç+ò˜¬ˆÛq.Ý7¶7U¨R»ìS·Bˆ6ÄÛØ´]Uý÷Ú±ÌXöÒŠ’ñÏœ3㉡ÈtÒÀ‰1i˜8óõ 0Ö›4O¾tð-Ñdðê @¤Ð™,ì-&¹óÕ½Xe·‚Öž1vñkÏCâ^ñ¢Zj“XQýp1fž—½×ïãbVgõ´!˜BÅÞ·ÉÇÁÛI— Aèl•ÇÃéFI uº•N"—VžLFÔåÚPTú_´eÁ…~Êjcª˜±°…qV›ÜÝ6Ĩ" ã#;>LÀQ,ómÂÏËŒ‹)kaœw’Ò°õ-§åb(E©;ÛÜ‹ÌÙºÍ3«—ª{ùÏcØP–Á‘„‘Ô b‰²`eÉègW1.2Aמ[L!í­¹¶5Â`º9½`XÑ\Ûg¯^ÒueÝAŸ@(‰L-8@:%.êÍ\%ˆ½jÆÌûï† BžìðØ5"ûÄÄUç 20 hš·dlù)[+> y&UDAàVÊtnT³ƒÜŸÝÝÎû¬¢?§[ãu@‚½ØMP¹»Í«’q^,«5­þ6sVñ´Êê]Æ.{Aû¡è¯Û-Vý}i¡ÏQö>wKßí’R¹ŸE¹âC­V„AHà#HÔ+«F~‡oJu?+Ùüæ`•àsÊte)>cù]Ÿä½ŠŸÂÁR»±*¡°"ßoÞƒ»m8­­L_Z•æp½aëLMuKм1õõXƒ¸lFß¶«äà‚²Ûyk~jøfÆE!6¢íøüî¿'žUŽn¥›0;"húÃb÷Š ¶Ǩ*’öÑ0ûÿ_Èq œ2ò yËÉ«O+ÑÞØž:0¯ú‘sEpZTbªn±®N‘ÓÓò;yHÀÇM‰®žVSJÛñvÔø^ñ ¡»& øtÑÇ£ƒ-ky]†í­óûöÞIR§Ä(8íÝ3©|Iº·ÔÔY >›ûæÎuF~¯A;& "¤§R¤+”uVZvÇÏÊr“ÕùËœÅø/AFÉ endstream endobj 444 0 obj << /Type /Page /Contents 445 0 R /Resources 443 0 R /MediaBox [0 0 612 792] /Parent 447 0 R >> endobj 446 0 obj << /D [444 0 R /XYZ 90 720 null] >> endobj 443 0 obj << /Font << /F51 8 0 R /F52 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 453 0 obj << /Length 3007 /Filter /FlateDecode >> stream xÚµZ_oä¶¿OáG9ð²"EŠÚ¸ Ò6…›±ïér0ä]ÚVo-m$í]œ¢ß½3R¢´”íkQ°øg8$‡Ã™ß —Ÿ¥ðÇÏÊôLg+eq¶}|“ºÖOo¸+m€`P¼»~ó‡¿(~ÆSV¦%?»¾ Y\ïÎ>$¢8ßð¼ÔeòÝe{¾EÒþõ|“eY²ÁL*ªí]çª÷¦1]5´Uï¨ “~[5MÝÜSóÆìŸÌ®«Î?^ÿýÍ÷×ãj•/l)N÷#ÂýpÉ™N‹³¼Œg’6ÕÝq;œÃx•l÷U?Üôã«CŸáÁ4ÄÁLž1®hhÝ]QÅ¢›¯±6¿«¡nØr®Ub~ýÀ?ÒаÎbÎàß±YO¹Þ«nçVܘ/7Aë/©Jí2±³·,—' ¢g8·b™Ìhšëã(g2„eyK²DÀ"\sì´§íÌpì Ít–Üž <ÅfÈS–e|š¡mïÝŽ¶©›‰§šñ\úAu“ >ÆvŬ˜ï kÛè”fB OË@Œ¹J~ˆûÎTv¨ê¦§MUÔqØW[³¡cÍDÉJ8ºðÚýÎÀ%ÚÝ,Tû=$jµ|>WyRuuu»w-MõhzOU nஎ©§º¡ïÈèíÕ5 ªšCÔŽ}Ý;FíÝùFØÈÝt¦ÌކöˆþÑÐŽq\tlÔÏ@sÞÆ¤ÎÅ\âUß×÷ 0ŒÊ½TLªñ8‰e¬RÚH<û£«ÞןQ¥LCÕ[\èÓ4$¶$©Yjš½¡¿:õóß®bK+KK?fh‰¶ —äO [ðÄv±ÉÁæåLi5¿ð—ñ99hw¨¡Õ,×H¢ωžƒêù6o÷íöSôÎæLgÊßwíñ€‚—ÂîQ‚q·ú‚ ¨/ø…~ž„êáÔTki\ÛG>’êd€+%5GcÓ¢ë#œªÎx&û'Ú½.X®Ä\zÎÑ ÊÊ2Mê;ú®‘¿ÑUy C)FMld½-ûž¾½.À0dX2K¿%JÍ—gJæ,…ùÑw1Q@P0tàÁ<í& Žxå%K»°+³V&˜dšŠ®BiSÛ;矷(âOqñ¢LÕ½Á~žp¹Ü…,K–ê|¶‹Sì©^X¿J%“b±~´L‹I}¨ âóRCÐÅaŒ'˜Ë a¨Ê ñȇï¬`tÒÞÿdϹGÙ`ÉÉ…:9á¼`°•ÙZOeã©^Xê’Ùü¾;/ÛZÎd–Ï/ü±7ݪ£.JðžbrÔ‡®ãxEYZ‡Q‚Ê—*éZ³[K=ýÁ Ólë_R.­Vo—-ë  €‹CQ§yìIÀµ,žRå³Úài7qDÎK–s½À%¡^äÎ…kÇ3´5NY±Þ_…{·*—È©L‘ÆT†ƒé/sº é õT›€,¦2 f“Ê,Õ¢d£ë·ýPG«å1@]+‹ž*ÈÍÁǹˆÀD&R‚i•¥¿×zôª'.§î= ÊáD9‡ÄÀš ” }Ñ“˜ÕÞtÁ-,ÂöÁt=­S@Áº²m5ÍÈoWÃRz+("nÿj‹Fõa…UÛÕ÷uSí©Võ±8Á®,÷cóÙX[´È¯ rø—£7{FŒx§wÜïÆÉ{7ýxVÖi8:òÁPØ›»J·ûªùDED„Ñ…\Êô>~|y[™ ~Æó'dùÜ~3Ð>F!»ö0xÔ{L”"Pc«Bà}XžëE°f, æx¾±¨|[úò>DG#Ëq%”Ò`¦§ã¨>›ÚIüF‚=:"ȾîéÛ´n°ÄUB&?ÁÔÝ—º7h«$¨á|H¸éq©®Ç¢:ª´n##ävÃ1x!ߤ&Í/%i³ÖçO ê³ % ãËCm1ÉU‡Šã4\0 ÍÖ½ÕXÛï&@÷ᦚ£;Öñ0¿™í°!*–Γ[Š$—w‘â*™×fæƒÊ+'V2ÍGC×´°Ó}ÕEOå,ã§8x?Tn’[ ãŒk'\)sÈɬÀˆᜬ% d‹õP¶X¬Æ8÷)Y¶H1¹ §Q'ÒS}²5€’åÚº¦a–ŒóF¹{W—••Å⌭£ÀD9 •3G‘9Ga¯M?RRÁ¢­¼ñ zÈ,«™“ÀvgÞqÈ9·FÊsŸ >!4ó .£·Hˆ:ó¯Êe‚MvðõæßµÂ\;Cek½¢Ð%c…Я³On’ 5§u1nŠÊ-Ç;jc9(“z?ïUƒPf¡„qRÀ ¥^{g§WCfÛ:û oÎ]°;w7.e?PÌŽ êÞÝØÊªk±³ý¿]K®GGYòXÊ p˜VkÎEr„A<±>Ê–M1ñÔi¹rNX¿k'[ê/à³ÂнÈ&¤7åhý cŽfˆgÌËRŸµ±\9{Q¢*y38ç› )wZ€@Õdž£K/CÃLo¸|öØ×CmzÄ¥R&ßO.3ËN }îúèøåüXHO²)É›­åúÁ}ÊB-R¼þ&– IÉÅ3·8C©æ‰˜çÞz°í_Vþ³GžÕ6¼?A8÷Ú÷¥åПW†ŽoBéÅ^ Â¨W¾àLQ—vµ·„“Õ‡¢·×F”þñÇ–«xj¾_qn’zçElB:a< ‘­ýé[ÒŸ•t?6S`z½ùœ²ýö¶:LxŒNe!&§¼ýÈùÏÏsƉA1<ÆqODp6Þtû»þåÁ ï. -m¦6²,+°XøÆÙkçç2ûTåæúÝt­s2ö¦»þö¤×?ßÛ¿Îû‚ÏŠ2MEÓÆ4MvOMõÝaBfÅI‚ú­Á†®¸òœ¥“!~ñ­3—Ó[®'¸fãp ˜{ªí(v{ŠÛR—úAšÇjÛE±&×Af#¼þîòíÕõÍÕõ?®o|^ 3|~͸ºyk¬úbx:ëb÷GÙ»?ê98 Ä^¦‹ƒj `9H×ÅEzÁ• õ«6a¬ýs¿{#²¯¡ÐJYå"~ ×<Ó¯<mø¸Ÿµ €–Ï ÅóúmÀõ±fÍ–ïV‚!D(¤õgæ|ŒZ°•p­õÂu<ÚÄj4nT7ϲÌCxkyY$ýß­ï”Ùê“ÚüQ}•[1ãv·«éetÅŽfL–ÙŒÛ*> endobj 448 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [297.514 543.325 499.076 554.234] /A << /S /GoTo /D (Statement Block) >> >> endobj 449 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [90 530.174 268.546 541.083] /A << /S /GoTo /D (CloogOptions) >> >> endobj 450 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [461.776 515.438 522 525.135] /A << /S /GoTo /D (CloogStatement) >> >> endobj 455 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [90 501.681 216.596 512.59] /A << /S /GoTo /D (CloogStatement) >> >> endobj 454 0 obj << /D [452 0 R /XYZ 90 720 null] >> endobj 451 0 obj << /Font << /F51 8 0 R /F52 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 458 0 obj << /Length 1417 /Filter /FlateDecode >> stream xÚ¥XKoã6¾çWø(KŠz6· úD°¶ÞS·›Ž‰Z’AÉN‚Eÿ{gHêiÆNRìAÜñpæãpæ›aØŒÂ?6Ëè,áœda:[WÔJÿ¹bv僂?Ðø´¼úáçˆÍ%ÍØl¹šX®gy·Û|ß5÷9çÿqî‡aä}­eùhDÍV˜Åí]5÷ƒÔ«~1ÿ¿“*W/ XƼ ›ÿ½üýê§e& ‚ hQãn0„ËXJÒYœ†„ñÐ 塘ÃÞÈ[íòº¹Ï{uß¼ì…~G³ éÌgœ°Èìh—y!®µµ*ìD‚R\ÒyåXåDC‰µVðG€¬¥o\öëFVÍô„w!(¸ºy/c%×fûF qßþF#zåB€Ó6§éDÐyLh›ßÖ¢œCb5òe¡P5æWèåjÎoþ~õÐ¥xºï…xÑnÿöWæBìÌ›ÖÜYïÍ{òf©™‰2o…)Ðò•!2Ã`”z&W*i’ êQk4•ù>è|r&R“´O¤×R(ˆ ËZ%Y«y]б+ ®LÒjá>WYé䆟‘i]0xD‚¬óp»«ªÇÏ€¥v‰)‰"ÞêšX”0)ÂSˆa8ÉËçCO!Í'^ÕŒK¯ëúÒl‰ÖF$ëNG‰M¥¬¥ÒØ€-Õ^Š5éRex‰ó”{À´ÖB®¬ã6ô.–;œ‰S>®v¤îW; K’øRµkÓjÏÞVí,JΔ;Þï½,Áôâ¶óÝ»úƒ*óÇ\ ™!û3ôÇ0 53 ¡ê=׿{¶7ßE­¯³ÐÎÓF’e“†³qÖ%4èªÂç²Ç2’ñxXíAxµhpÁ±Ò–yJâ4j7}þzwçäsMV "ÄVTi|èúÓ }nô¦Ä^‰Ú6ÏÚ"€¦i4¹×2Þ#²" Žó(öòÝÁYH…9,æ}vÎ$„¥ƒòC–x`á?ÉZXÔ²1P-@HI¯iˆˆ$¡lœ|ú€aÂôôž®ˆG8Ĥ}#LM ïÜlâýÙˆ{n•.þãlw™L#ÂYØQ­,ö»<…~à«=CK›3¹¹=£à3íÎâ 8%i—p“V¦Œ¿'Ùl«Cc<×jÊÔíϸÖñ4TÁÆãÀʵP;½Á1 3'üª«ùcüŠ—×yRç¯DÇš¾*ts(msh{R… h–Û¼\[5%VUËãÚ™ÀËA!ú¬÷Ÿd„òKõ?IÕ2…á˜d>ÉR¿Žxj®u-a’BAdÛ\`»k Û\bÚ\òÊT 16¾x~˜ß8N’~. G=g$^cÑI½ ( „Q<²ƒ€2’jn>ky”x"›Xœ‘€èY{ZÈÍ×Ó+DÈݰ×sm>e}ǺьÍävdÏùÊN"Ã=Ü@úS¢@¹„RÀl6­=DëLÚÓÙsúÜênÂŽ“ŸÐòõT¸ÒB  ˳ÔõÌDE׿¢²½Òvrßiã´k>Ø´üØ;åìär>&ý ôMcÌÂÎ1w¿þyã~„OǤ/­¦ïx¿uÞ†g0ñ1¦â…CÚû S@¼ýí·ØmëîŠ'C•ÚÖýÄäMŸœzÈNùðž7×±[–È¢v^l ãtr‘È>ϳ1‘©Ö¬“É2’DɘÉÀãJ—ít 2¢ŽÒ®áQ†¥–@TÈR¸õPØì¡8Lzä„QB¯ÈŸ»m#“ýû…؉¢ÍHû·±ÿe¹:Ü endstream endobj 457 0 obj << /Type /Page /Contents 458 0 R /Resources 456 0 R /MediaBox [0 0 612 792] /Parent 447 0 R >> endobj 459 0 obj << /D [457 0 R /XYZ 90 720 null] >> endobj 456 0 obj << /Font << /F51 8 0 R /F52 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 462 0 obj << /Length 1561 /Filter /FlateDecode >> stream xÚ¥ÛnœFôÝ_±RÂZ^Ìp'­*%–“:JcÉqó’D^f 0Ûìl«þ{ÏeÀ°Æ‰•Ê’gæÌ¹Î¹²báÀŸX$Î"ò<;ñãź:p ôË0» ¬F//Ž_b!;q±¸ÜŒY\f‹–ç,W"L¢Ä:y«–+7¶ÔëåÊómàL~r„_“ ¨­EÓø¶ ˆ_‘yÚù\´@üþ€úœQBgŒáÙðƒ®`‹Ø¨ zD³Â];¼—}òöüüõÕ‡Ó‹÷gçï®~ñæüb^S‘„ðÿH8{÷ ?.àâôÃnæÞr]Èé—#.ó]—¸Öú1EïP´f5¦5Bî\Sô WY7îa¹ÙpFQ(À)—iŽæCÚ#SÂŒ‰ÖJk¹&ÉÞ8+ uBWXg÷:Q}„º•øþ~C(ÊÐ}_eµ9å‘‹2!9%ï Œä²$ei2XÀ¹49L‡i®qV€§<6î7ZU½¬ž=«‘„á9À,ßw¬³z.ó”Î+zhm\Së¨Ðxðh2ød;SMÖŽ´¤Ia4ij²wT{ ó»^‰p†2°éjj$Íó¹Øäæ1NÄ¡¯­K¥n®L¶Ãlò§Â&ä`7»ïxÎ#Mq¸¨¿EüMZ ½«1}rBþ ]€WLù‚Ö¸Ìôå#²º†Z…ÇTkÁ-ø8g½bõ%Ôº8Ü~Â뉟ðvÒÀÁnQJâ: ×½ø&ÙŠ¯ ³§ÌAD?›K6Žƒò‘j߇‚w &-ž5"“t™,3U$ýTáóTqŠëkZm)Ga‚ ªëÛ!íàð¤uñw ¯üÄÉâ7‰UÆ÷9¾qMy¹N`+{±xhr ÿ;`ΆI;e¶÷ö¢ùÖ®é¹ÙL¦8÷%ö­#œ4\œIºêÑL5ˉ)Ê«:KuÆ@S¼xâ¢û“›´+[F¸]¡•–ΰ÷ÝWÑhxnÔ¦å`Ã.¬ÑCAõ홾ª†1Ö½‚ÑÄe4“såyÿ‹Ì0I&ß³#7ꇌ¬À®¬(!ñÉj Æ~Ïð1žÁˆ­‹kòŒ=§ U 7šv‹ãC®ÙF3{m¾WŽçüò_šAƒ¿4mV(;ÿõÉÔŽéÿˆÌ mÏÙïBUZPßÀž1ÇŸ¿˜…€ñvZYOû{èFè!v9ÛòõŒ’ˆQ)G˜yQcØÓ¾o›¶êj¥XþôñA¨½— endstream endobj 461 0 obj << /Type /Page /Contents 462 0 R /Resources 460 0 R /MediaBox [0 0 612 792] /Parent 447 0 R >> endobj 99 0 obj << /D [461 0 R /XYZ 90 720 null] >> endobj 275 0 obj << /D [461 0 R /XYZ 90 552.245 null] >> endobj 279 0 obj << /D [461 0 R /XYZ 90 312.441 null] >> endobj 460 0 obj << /Font << /F51 8 0 R /F52 13 0 R /F72 7 0 R /F60 14 0 R >> /ProcSet [ /PDF /Text ] >> endobj 465 0 obj << /Length 545 /Filter /FlateDecode >> stream xÚTßÓ0 ~ß_ÑÇöD³¸Iwë!à'¡{£–G2y–½ÀÖyüO7ÓFI–óh±äGÎó«ÄÆæñiŒ'êÕ›Zu{TD·FAK±>ºôZmµhQ©»Ò­ðAMWsWƒå–#c²½Fâù;üTRÛ•·¯ZÑ4ªz 9µx;‰˜›@„“ˆ}©îúƒ¹€ãí+W*bØŠßLš2AÌ„Q˜vòNvR‹S3ýëuÝÌþ2ø¼j-/7-k¥.1­±7«ÊRµ½ÛhÕ"wGÛ ÏÐQzÏ-T¬Ž±.séK]ȼ·–nÔÁ<<½!b”Ó^œáøò ‘ÏO]KsÐ]¨=RÂíVŒIýu'çÛn–,­Û‚@ØrØçJµ}Ýøûï ÜZ?w<=4A|ôk/oþd=Oð¬@ümU!UùK´}#IPÓÆW5ñyó÷™]–ð:qþY›ÝäÑâncˆÝÒ8íoBùFî ±”ðMÛžUÍ}Õׯ®ºU:lÆ€;”ú?d>ªÕ½’ÿ ¬¶ endstream endobj 464 0 obj << /Type /Page /Contents 465 0 R /Resources 463 0 R /MediaBox [0 0 612 792] /Parent 447 0 R >> endobj 466 0 obj << /D [464 0 R /XYZ 90 720 null] >> endobj 463 0 obj << /Font << /F51 8 0 R /F52 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 469 0 obj << /Length 42 /Filter /FlateDecode >> stream xÚ3T0BCKscc=K …ä\.¨h6—!”ebl¤Q¤Bx Ç endstream endobj 468 0 obj << /Type /Page /Contents 469 0 R /Resources 467 0 R /MediaBox [0 0 612 792] /Parent 447 0 R >> endobj 470 0 obj << /D [468 0 R /XYZ 90 720 null] >> endobj 467 0 obj << /ProcSet [ /PDF ] >> endobj 474 0 obj << /Length 2429 /Filter /FlateDecode >> stream xÚµX[oã¶~ß_‘·ÊÀšEê¶}Ê.vÓ¤IxQ,Ú•mÙ&"‹:’¼iö×w.”,9J{NÑ"@LÎ 9Î|Jžùð'ÏRÿ,VJ¤:9[íßøŽúøFºÑæ‰÷‹7çŸBy&}‘ú©<[l†[,Ög?{vYÕæõl®”òô»Ù\ëл*›6+ Sn™þáÚÎæAâÙKø S_{JÍ~]üçÍÇE¯; ‚¿0%^Xg2 µ³.J´J³uz6£`lO²=*@{À ÞD ¥£7h_øÒyÛñ.׳¹ôÌ*/›™ôr^9¬”©AÊ+?™ºiA‘ï{vƒ¿Ò+Þâ(öŒã<Í00‡bÍKˆP »Óä+òòú™g Ö”N®µ¼¼Î7}$ír¦mlQX\úįÊ*ÞØÉš’E³圂ê°,PÇ ÍZc[v{gm§°9-zOî*!CövSÛ=À†h­¼C“3Ýq8#bÊœ7vÓ’Åø/«”­y™ifYgDyF¥^“ç§™¤¢@ÄI|I)S6‰ Hsª“„'²þtKrøç÷Yãë_ÑØ‡o³*=µ¨´c‹^æw'õ¶h‹8Vc[~ñC?cõK³lóß9€9o Ãóš«—ò±I^j0¶p°UM9óÕ¬s̱4¥\„üÛQÒ¡gpZÓ¹[Æ~w9ŽÌ]·åžÓëaÒkAú[ÌHä=™vÇò+[QÖf»›AN´L.m ÅÖ-ìLÀÄeSº"ìÓÐù3ŸÝwÅ ãÅB¦1¬¦U»¶­ÞŸ?== ØÀ^ [o§J\P„ZwËVF‘ˆa3™¸3YPT¢û´¥ ÔKž3…“?î“ÿ{t1…ª$d`™UVò Îצik³<´n9! l1:ÇŠAÚžc°6›ç¡öåš0äù4ø½oœ#RPJçuø@xyó™×yÓÐnÀ½Ì˼ΠfÜ’ Œ ãš Ó-Í&"Ô˜fG™äe‡B0ná`;MŸ°Ò9N°èá1ƒRIÆ‚_€X¶ü~*%rÈ5´3TºÃÔÆ ´…*ôÂwà ŸøK~âÀY)&!R©ÔZ»#r[¡ÀwöàŠjЬ0AÔú:v¹‚Ì.W^,IHéÏ„€jl8 v¶âÒíèd/JBlÝðɳ—CY€ìÍË5 #t0õ§«Å·Ÿ<¹¸ùÂ[ü4“ðÿâþï‹‹›Å—Éàc¡[Ü(”Ì¿âÙ,ÑŒ ÆÙW…Aw¢XvePsøZCÃB‰?Þ#õàOÿâýÕõÕ⋪ù÷ÓÕâæãÛ üí=O.¦Ì¼£îgP‹«Ÿ¯aH½ÂÝçû»Û‡‚g”‹±K¤p1À /$öÅ€; ê®P®¯˜l¬[±·µ#­ Ø ¢m†ÇU48S6N‚mËâ×yÁªšób[sHt±k÷Å$¬uuøåŸÛbî‘b´µ‡í®ŸcFÐê™ þR%ÄV8Në‘Ù£ÎæÙ63eãÖf,}ywÍó&qÒVxf;'Úð/…wTyÅóµY2a™‘ü#ÕV¹~û:žÁ%ßÙî¡ñ ºXº4%á]i/o¸ß ci­s # ´˜Ì¯²®­C‘ÕXCÐéfL—÷¾"s™5˜üH·ntô%Œ¼V¸@ÇãÞq¤'|Étæ"1S©†%”Sä%òþ±eA•Àâ÷½S®ræ8äOaÛ‚)ÇhǧJn”/ï@Ïõ[^‡ Á½(°û Û©b\s°0èx…C+Àƒì_*òbå(l â•N?ˆEõ~À>Zþ߃©ó=ä ¼ÚæÏúýäeç¤Êã>ºäI²Aªe×Læ6i¶tL4YÇžÀ2AÝ6YNö$ëz\ǽ …WÓÙ!z©Fu”Òà S'³àG†v©àª–©î·\n$iÆ¢m·xÔ£Á¼¿Ò 'Ñ ýáÎNÚ-;)zäŒt—y¾nœ"ˤ.è/+É.^K2Pã+ê.è¾4Då¶d&«‡Š°ÜE m—!ÄÕÅÙ5gL×?Þ¹g Î:o@lì𸵠ýÁÛ/$<ª`Íúµ+•£D×ôŠý%‹6¸ôþ"± sœQ‚g‹\Ý/…%ßEÀèB*}R(X~K31s‹<£‚FUeÎ4Ò)ÇþNøbÝ·ƒÞ´¾N•ð¡Ðº:…gx¬ÓîM~7SòL¸=±;ã>,+¨{¥lcu ¨…°¿oÜãÐÏLéýÕ±:AqíBwýFÇ‹„\ éQžc#À6M pâ"O[Û±%“ÍË0§ wG].BPÐpL!‡ßŒËƒŸ}3—z@Ç®óM†ï|"Dš—ôŸÜß8F·g³yf°GŽN8–SÞ ¨ ¯„1üìÀ{k4ïe½bzÌµŠ½= –™Š^ @©ê|eØ­’¡i˜ëqc„ ?ÁÏÏ HRáá /<œ¬ùÓIYØŒ iøV£„uY;Õ‹)ДÈôä9iVU#óîõÍ"£“ÜËšåVlêó;>ÀóמxÏø}ÑLØ Cá«dâEkjÓd¨¢Åk*"_À›ëø²§€¤·Ôè$~ ñ³<‰àYéœ ’T„`èÈÉjX¹’“,[Áv72z)ï·I¥¤Ï{ÎÊ6sð1ÿöû× _þÎÉ9¥¼ "¶ß&=ŽÕÐãïX-ïüÂÜ¡«(>Zäp…³áõÒ½çZè4emŨöÑû[éãKW)÷´©ÜgR}|ùÂøôžê k\‹Sž4@ øÎÉÔî#›Ó½†ÛiÕÚúùG#ò‡ÑH SÇ/@¤xò…aŸ)ç+[nÌöPçSûÎ4í©ÿgç}öø?l©_l)_ßò‚šUå h£w“‰ðý02‡OóÅ§êæ±!¥A*§³€§?>+šŠîû帅ö£é*w’¶Ú»OxÌîêòP ÚKÊ ÄÓ¾¿Ál¢o³#}Û.#ëœ? ÛÆ¼šPKišþäpjÀÒ‚;Ð4&Ðká•*Vß:X[Óþãþõ+wÚNÃ?œŸâ<;´v›—¢ÙýÆÿûE…¨ÿ¬¤V endstream endobj 473 0 obj << /Type /Page /Contents 474 0 R /Resources 472 0 R /MediaBox [0 0 612 792] /Parent 475 0 R /Annots [ 471 0 R ] >> endobj 471 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [362.787 609.109 442.947 620.018] /A << /S /GoTo /D (Bas04) >> >> endobj 100 0 obj << /D [473 0 R /XYZ 90 720 null] >> endobj 283 0 obj << /D [473 0 R /XYZ 90 720 null] >> endobj 287 0 obj << /D [473 0 R /XYZ 90 656.708 null] >> endobj 291 0 obj << /D [473 0 R /XYZ 90 422.777 null] >> endobj 295 0 obj << /D [473 0 R /XYZ 90 326.091 null] >> endobj 472 0 obj << /Font << /F51 8 0 R /F72 7 0 R /F52 13 0 R /F60 14 0 R >> /ProcSet [ /PDF /Text ] >> endobj 480 0 obj << /Length 2473 /Filter /FlateDecode >> stream xÚÕXÝÛÈ Ï_á‡'Ѭ4£ÏyHÒ^šbï\݇ö.ÈÉÒØÖE–\IŽwó×—rdI«½‡háÏ5$‡ääø+~þ*õV±R" ’U~|âñêÇ'>\ pG/7On¾ý•ï‰ÔKýÕf7>bS¬~vT°vý(SçÕm³veâ4¯×®RÊqñ/p2šU¼y¢é^׺Íú¦¥éŽÓåY]—õž–OôMuÐE›­ßoþöä/›AÚPÊ/¨ƒô‰¼‰> l†«( „¯ÒéÏ‘Ù\w_Š( áhCõ¢.Hʬ#Ù[T1všþ,ÇG0²ß³š>.ë®Ïªj‰û"L£•ë'ðϲmøaè9ïÖt5·å‚Ô)ô.;W=íò±Y_65m—Ý’T~”ˆ$‰¬\7箽©š<[(Œ…Œ¥¥k7HTvij([ƒIï‰á1C ïi¯nX°­¹#=HYšÈï×xwç¯\øÂ÷Àz¾~H «rÛfætt¬? AàlÖ‰r²˜.XûÎÍúßò©m¶•>>¥/ιÓì€Ý¡9WlÏN÷KW%á¦@žP$±"ôÝ©iA¯P†ÎíŸ?ܾyùÓ‹ŸþùáÝ‹Í_Ÿÿi¶ðìzµ7 È¢½G$q(w$Ò½1öÙÉAƒÇût¬“{ñ”¶·Yw Å¦ý:E@c]ZT„¿6R¥#mpÆÚàÐh#ÃÄjƒÃ>}å¼( ¢3ÄAUÖ<ꛥ³ÞE›Ó¤±‹x¤]üÅ =»q9d½þ„h^É!z`ú }S×¥6³Þ~镆ï}ã²ûªOºyÀ9!Ò×äð8ëM°à(ÇÕCVïy‡ N·Ç¬f.Fé`¦u[¢êšêL!3:+xeÝG¼3±ÄØ`ø2…EóYY[¡XØ«‹¬-–ôÁx#§ÚÚ°64`õ(Ö4^ ‡`sêKHƒB8ÝͨᆑznµÍmy5¡ýë¢ÿfáÐâÐ œ±+í x\aWÞ=G']Äq/µß'rT©â©ËŽ“ZwfÌ vêpᢩ4àù QAXTL7K“Tkö1!’ø$DØób1S ~={\Øë¡£iÑ07¸V£ŒÙ&˜šð·f >ÆÑàÀ­2é#NŒ3©86ùþv­Ö´q…]X¾´eêÒ¤¬‰âb’8 ȸ0g.Oç! ©±?ì<¸#YÌé –ë‚+¢¤/éê0fà|ôB„äcö@«0r~ƒ„ÄÔUùÑZèÈZ˜­Ì]+ ²öm™kšB½’õý0•³J„ÿå^—AcÃbväCÎ5›%ÚMtᨚ8n„ltÐ_…©xwæŸð HÀÿ€[Æì9tQ;!M׷缇èàbSÏsÞð! ¢AÞíheìJ8mZf8L¬SÍÍpdé[€ ÆE“tFf1§šÅÚfd{QGëXR«zÀƃ`ÅX¦R GÄBTH4­t^ÿð]2ÖÕACÂórÎ*‹ÍóøGEbÙrÏÖüs(O$T´Ù„'=SCG—!G j•ÕV¿ ÷´]eížOÉ©FD„Œr“OÀv˜é›Õ€žÊbQ1³Zë‚FV+–ã¢ýöõÿ ÁçÊ]LLåɨ¥Û»Ö ›—e•T^¯Ið:ÍEãŽq \…j©íÍíšuN™öVòE@CúDâ]gátŠ)cÄ7މ„Pø%²ˆCÕ=mæã Ê‹·\5Y¡sÕ®mŽË‰Cx×úõÐ÷§g77—ËEt—æNäÍñf>½”0”/b*ßP*çǦ7u,Z.ëí—"(m»ŠV¶YŽb[ð!Ù "ÊÏmËÙ¾º'òVÿû utGxõI€ q¶Ð*ñ8M&Pr­eÍMb°F§²â8£p¡ü;\E÷&—ŸæI<SWèÀ Ò^†m8 ½xÓs-'MF„¡1àÆhÚQ6©GG ˜|¼'þ…s]¦žäó¯;Ù´g_p^<€‡ë¢ÏºÀÔslÀ?lÞ~`áv7 c2t7̽!Ñ)¦,Œ1²« iÀîšd¨9ÇßÄÊ*Q½ˆ_©ˆä`_ú9Æ–ø4½ö|¿@pyÑVøè€âòÃMв y—ÂÁ¸Ç9] 9a0K¸5ãúÕý|÷iÇlÕ4{×~ˆýçEÈ‹|ÇcÌóLµJÌ 6 fŠ•,Þ?V(^rÅ•\B§jTBÃdg騒Ng•tj+iì` ’—Ñ餌N¹Œ¾~ŒØ|Ç$×zz!>¿¾º–ÿµêZ}ûêZþWל _T½nk1Dháå<=pBê®'© ~]®šÓñŠàKˆÊ=œU+øzº5a]Öºà6 ;Ý)¿}Ég¶šž›®|Ô;ÜP¤iúG܃Ù( њŃ5h¨o#šVäŸoLø $ý¶”ïfÿ{?q³×ý‡î¼=6ŹÒè6/ü/DgJ endstream endobj 479 0 obj << /Type /Page /Contents 480 0 R /Resources 478 0 R /MediaBox [0 0 612 792] /Parent 475 0 R /Annots [ 476 0 R 477 0 R ] >> endobj 476 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [269.909 331.571 420.515 342.48] /A << /S /GoTo /D (PolyLib) >> >> endobj 477 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [197.349 263.096 387.894 274.005] /A << /S /GoTo /D (Optional Features) >> >> endobj 101 0 obj << /D [479 0 R /XYZ 90 720 null] >> endobj 299 0 obj << /D [479 0 R /XYZ 90 483.569 null] >> endobj 303 0 obj << /D [479 0 R /XYZ 90 251.675 null] >> endobj 478 0 obj << /Font << /F51 8 0 R /F60 14 0 R /F52 13 0 R /F72 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 484 0 obj << /Length 2877 /Filter /FlateDecode >> stream xÚ­ZKoÜF¾ûWèf Òý&i ‡Ø»Ézá ¬ì’8ŽÄ5‡ËÚ_¿U]ͧz<’60àiö³ººê«¯ºÅ¯üãW)»Š¥ŒR•\å‡WÌÕ~yÅ])„á¬Ç»›Wo~Òüг(e)¿ºÙϧ¸Ù]ý¼¿ËŽ}ÑnB)e ÞnB¥tð¡îú¬ªÊú–êßl6¡H‚ægøÑ)SÔ›?oþùêï7ãÚZˆ ÂaGÒ¶.F}eq©HÂ?q1؉˜÷å"2ZÃÔ¶Wô&;õÍmQGÝõ^κî!7Q’ˆçM7õ¾¼=µÅ_<ó!ûò¢)ùù)¬wtfY‡¿*hñèâ éßúä1 ¾Ç.É|Ë…1tj®BÁ#© ü[q´RÔ;k4"‘ASÓïý]™o@‚;úÜfð•_6Ô+Uð€_ÍÉ À¬Æ1=Õô ýžº‚úg4'/ÚÂuº+\ëPU‘ÙæY_쮡˜J\)W:d¸”Uoxãà¿î”ºQð+#:°EIPAǬsú횃SZsì˦îèƒ:*”Š*À†à•µ"[Ñåmyì¯Ý,E±v()D¤•¹Òè ·N‰Z ¨~îZCßpÖÙãüë)í–>9Êí R$Ðï¿{P4dÕü´%Yèþtb³[· €ÞpݹüPp½.H¾žŒ“ÎI±$â*†ƒŠ##4µÝ ÞEšǶ¹m³HÉX°-ë¬-‹ŽšÈŠ Ðl7¡6Á@T'Ua7”g5ÕnÉÆé£- ZÏW4¨ÂM´o›•èÜatלÚÜÉÉwîsW¶°bÓ>8áÈÛž3=Û|Dÿò82ÀjÂ;r^ ½ÇµŽø4 BÜgÁÍývƒædUgK|µSª£íA7«©Ásº¡1ë§n>4:F«¯àõ‘  F»®ä44yÞ‚5ÚuwTñÓlzôsÛ“t~ÂÒH2³ôé¼9ËÊ)Ìù+š¶Ã)0 gå*Ø7.Rfô³+aÿ h@+¬üRÜìß?OeA@î`Ó”GE"Wåúñ‰îÊ®?{ªqb½„-üC*#–þñ®é¥ŠÝŽ¡0òøÝ5{+&á±…-e™e<ørÛfÖ‚aÄ]†jøº!/Áç2Eí¦<åyÑuûSU¹!Nù;újê•Lû¦ª¬ñÝ;»÷Ãr÷ÐõÅ¡{ë ¦D)hóê9¡ôÓû×ÌOõŽ(’ >–5ŠsúvMM÷¥Õ£³Ÿ­Ëyˆ½Ísß‚÷&“?X´×~n`’HqéÈü¿wôïÒžhƒGwïšÑ“Þ?Ü‚ÒÑdW[Ug·š‚wý¥{RD‰‰_B„>³6wÎJþ¨‚ßÐ`û6ÛTð¹ÏlÔ~òq¦&\¾huaBI.I{L"#1ˆ³ˆ wž6k#‚_ß,±È@v ű†P LÆ…bßòð&K¦XèƒÐWœ<„•¶»+*”DÇ#JöàƒÇ¾£K€ ööTt®*oÚÖ†Xüøjµ:®‘ ê AÜ”°ÝæäÉ¿ÃÝD3 ë†=AÀçb 4[f[ÈUâì@%‚x$6úy›"Šé:íN­å²XK'h-Be’ŠàC?NåFöw N‹ÅùÞ”ã¯ØyˆXÔÝ{(l¹‹_÷÷œ<‡°>32ËHükc pIªK ØRiâ§©vxµÀlp/w„¡Æñ[& †@èŸ_»‰—„*Èœ7–+O#y—À}:@ÚÿÚµY ‰ý:ú´¶ª‚H%rl(lày ­Ô?¶%Åæa…qw¸Ê÷)c@=R_h" ÁŽ^$bèßãÈù¦cÿfÉ‚Þ-¢¯M ŽaUP,u |â‹pÆÑ¥X§Ÿƒ–ï@#ÊÄ@M÷٩¬D#µ§€Õ.Ì(Q°'îj;tçW#y{sêÚ7U“gÞÄRÇ‘ˆÇ¾ÞlŠqªŸ•®B¶h}_"nÍ6Dã¹H€âT¦Kˆ F"øÚ9Д"ÀGYûÄMT¤'–;íþͶô²·„Í9ùµoÊ8Ò,öÌX•[ïŒ`g£¢·øÂ‡Ðª=s–u^v…ßÀ1›CH‡0jL@éÜ,Ì›`È&AYí2#æy¹2ú]šeq*üî:̹†W÷"fÌÓLϰHËQ­B°à¶üŠÈ H‰ÔO  j–žMö–B¤VH0}&Ç›ØU‚Nöå·>ýxó¯åÃÙk¹È<÷L›Œ#5¡è%RK37J;¯# P"O…ÂÒSigYï¿ß«›\©n¼†ù¨ 6~=¸C±uv™¶bà+’ÌñÛA„%kŒ¯<œƒŒòôÉYš4ã™P¢n×±¶¤§ø›ÑºŒÓÉÐÊÊkfˆI§îîšSå62Þ1á’QW­‚5U‘wA¡Bºídʳ®p:ÂD’­nŽìÑ9-¤Ã’Xënz°vyÎP3¥=ÙºéV•lÑN|†C[jþÈÖC;!°ˆ³øÅe¼°P¯ü0Üä¤p°F¯nr2º &¨±‹(ð=3¬¶6ñÑŠ.¯f†°ýV[ÅNtÏoË€tæ˜Wà¥îÄÜŠ¤!Û×-éÃ+ô^Æ=ÚˆÚ—üäûaÀÈ.Íe ¼§T|+òK†ë˜_bT7Þ€y–Ól·ß)8æ +üQLBüNóÒ(&S5㽊³!ëQÁ'û.Q=|ze+¶ë8†•ǰdã˜Mzjª˜Ù~žƒ)a@f ö³`j%¨ÛC¹§–¬&:)§åiñŒ§1™t™†,}ñ#w—‰ P˜R-™N>`íßnº8ÃÇbîBG,‰WÖw„Ý«½l|"ÒSNðû6³ˆ;`æK«x³XüIæoÒ(Qê±ù+uÞüS¦^dþ¡Šã‘a¨³ r©T¿F½zR2@€ÔËD-ŸeŒ?ù IO)ã4° ¨ZG!ù¶!!ØÉ‹lCM2.=ÚP\Çå³3Ï£R™Ëq0åì.ÔŽ &OW—×SÈçz ùšlȇ* ùPC>”s|ß…0‚Þ.Ç>ÃuöY”)Äcû䤨\¬§w!Þ®´ôyìÜ5‰{´÷:—^€Ë·.3°äBc¸M²_ŠýjŽý³§‡5ö+õøåÚy¸ý]>ž(LHhì²wU5ýµ-{×¼Èql'7_w²‹Ý-»Yv£õ_Ö—†Î¹ÄÚ9I ûæd7U[º9órg@“¼ §´Hƒû‰ 6^À;jY|+»ž€ ¾–ŠÀ¾{’ïòfÆt‘XÛ—‘™2¤pÚ†,Ñú:f‹8·â> endobj 481 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [322.546 596.254 513.091 607.163] /A << /S /GoTo /D (Optional Features) >> >> endobj 102 0 obj << /D [483 0 R /XYZ 90 720 null] >> endobj 307 0 obj << /D [483 0 R /XYZ 90 456.283 null] >> endobj 482 0 obj << /Font << /F51 8 0 R /F60 14 0 R /F52 13 0 R /F72 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 487 0 obj << /Length 704 /Filter /FlateDecode >> stream xÚTKoÛ0 ¾çWø(•j½lë°Ã:l݆ Ø!;­;¨‰œuìÀvÚúß å4i tSÉâI?ž˜,)¤dF•Éj·È¢öaÁ£DÁ€žYÜ,×_4OxÆLfx²¬ÎC,×É"ó”ò܆|úѦT”¤½M©”’ÐðQÄ⩎—{/Ohµï”,ÞÔ“gõ”p©“¼TŒK…5Ýe¼É^×Î˵†ÐG«›@ªœ¬]eõp=Ň. j>y¬Ú¦ò›Cçæ‚kÍ$À¦O¾®1üÔ¸Lcš›PQ²Ì\ <ÍÿA—ž¥ endstream endobj 486 0 obj << /Type /Page /Contents 487 0 R /Resources 485 0 R /MediaBox [0 0 612 792] /Parent 475 0 R >> endobj 103 0 obj << /D [486 0 R /XYZ 90 720 null] >> endobj 311 0 obj << /D [486 0 R /XYZ 90 630.303 null] >> endobj 485 0 obj << /Font << /F51 8 0 R /F60 14 0 R /F52 13 0 R /F72 7 0 R >> /ProcSet [ /PDF /Text ] >> endobj 491 0 obj << /Length 1272 /Filter /FlateDecode >> stream xÚWMoÜ8 ½çWÌÑbõaËî­Ûlv[d= Š]´=8¶&cĶ Û“4—ýí%Eyâ™L` ‘Hšz¤ÈG…¯bøá«<^i)Y®²UÙ^Ä^zÁý*ƒhañÛæb}ðYç|µÙ.]lªÕ·àÓ®è'3„‘”2H>„‘RIpeÃHè  #ìC´W](²`*¦Úv NµÖÔáÍ—‹ß7‰ï`D‹ µXqÍO”™fŠq©dFI*,)‚rßš.„…ÇN£„4ˆŒÅ¹ÿ~³ƒ|ñé†"³оªÇi¨o÷“’<è‚ÁC]AÜ.ì‘£yÀøh(Vè.óˆÙAߣÝ¥YÁæÁu=ŒÓ%h’4˜f8dBë’UãÁ¸d¢rÔÓhš-^êÿŠ iÿƒ©Ž z§·ãXß6†á Ë`ƒaì(D9Ÿžáéî“Ò¶³7Ú~ôª‚öp ýùtgº¬{¼û3‚ø\ s‚ÐÅ÷8‰GÛšiWww$ë¶nŠÜL–„»b¢Õ—}“$(žk5> Æ£ÝÚÁñ1äœ_á·>‰œ‘•„ÌÛ¶ÎûmênœŠ¦yìQP“‹Ã_‡bY‡‚3ž °w†»iê?¬× œ—÷¬kÖÿU2Ôາÿ§Õ,âÜÌ^0ì¿Ü%Hè8(ö“m!±%~"x2C1oàíM‰µ½ëàÞk×ÜXǨ™kˆî,B3™Šã«;­q§Áíœ1XOnÝã]žÉ‡â4ƒh‹{CœSÙò\ÌJƒ¹œÍá:Ïù”`sÈîœ@ç•­1)¥í¶ë+oëÆœ;…' Ët>»puû•qâù"s|á¶O åJ Áb}œªªL9Ùá‰Z»Ø:†U€kØcò;Wð¸?P@ýsu·fn(‡ºŸÈjQaK®•Àq<ÍVI3‘¥Žoa°`2Y²îl-ŒÏŒ‡S—Ç3q)‚ôí35DòÃÑšúâÎc—òªÒ@DZ8‚úr4ÌVï€ d-Òã©‚'Zñï«ëSxb†§žg¿œ%ÉÉŒ2<üÎ÷Õö#¹rˆñ/¶­fȸ^f÷“ƒÿêœR ÈB/çU7â‹¢ÝÔ6ÔBï`Uj‰õ’²¥ s}DDûñµ«ÕL=ßlu6ûjêÌiIÎtvà Ûû'ºŒé‰o©Å{€Þp¨Ä£/ò¹)Ž¡Æøì‚Æeä¾ÉArÈ®³^dmo×kîpš\OÓ©{,÷Õ›YNà_-–ÁæÁó />V endstream endobj 490 0 obj << /Type /Page /Contents 491 0 R /Resources 489 0 R /MediaBox [0 0 612 792] /Parent 475 0 R /Annots [ 488 0 R ] >> endobj 488 0 obj << /Type /Annot /Subtype /Link /Border [0 0 0] /Rect [328.168 587.559 478.002 598.468] /A << /S /GoTo /D (Installing) >> >> endobj 104 0 obj << /D [490 0 R /XYZ 90 720 null] >> endobj 315 0 obj << /D [490 0 R /XYZ 90 720 null] >> endobj 489 0 obj << /Font << /F51 8 0 R /F72 7 0 R /F52 13 0 R >> /ProcSet [ /PDF /Text ] >> endobj 494 0 obj << /Length 42 /Filter /FlateDecode >> stream xÚ3T0BCKscc=K …ä\.¨h6—!”ebl¤Q¤Bx Ç endstream endobj 493 0 obj << /Type /Page /Contents 494 0 R /Resources 492 0 R /MediaBox [0 0 612 792] /Parent 475 0 R >> endobj 495 0 obj << /D [493 0 R /XYZ 90 720 null] >> endobj 492 0 obj << /ProcSet [ /PDF ] >> endobj 498 0 obj << /Length 1405 /Filter /FlateDecode >> stream xÚ­WKo7¾ûWè ð®HîÛ7G¶SµIáÚ*‚"ÉZÑã}u1œú×;ÃáÊR¼@›"0 r†ÃÙ™ùæA‹‡?1Ëø, ? ÓY^žpÇ}8nç€w ñz}²¸ŠÄLp?㙘­ïU¬·³l¹SM¯Û¹‹Ïæ^FìFßéVW¹îæžLÓ”³ ›Zÿ|r¹Þ+’ò_ŒA‰Ö$r&_Š(tÖÄiè‹ $kâ¹Å’ÝÌ=Ážm€//®b~èF J£çóÌÝýÈEB¢Ç éÇQ&Y©¯UÇõ ŽB¶ôq0ûz(N‘ÊØõ< ˜OW¸×jè[£[àEû~ô6ŸÐžÈ¢ŠpD¨8ÍØ%¨Šs£+ŒnO9!²Õtñ^Wºµ¤ã»º¥À¹.á '²Q­* €VcBv_q°¥Ûp©ÚÒ¦n&±êMi¾Ú¯…Yùs{}±|Ÿ•¥luy Ê.AVëöà0KØíSÙXêÎ %‰ÚÏÃÙ5Þ°†ê‚NÈ 8º0¸Ù ½ÞæJ²cè!ùN °÷ d2ðîØo?›â³ª”£]r÷õÆnÆÞñßàþþZ ìPØapv’ðáX8|s,\2níwNÀ«.žvzÛÚàÂá»Q‡£WÉ^ªÎ wÈ[ï”Sõ6„z˜z½3Õƒ5QZ9ÇBY®_‰€Â P_ºÝKœ‘}TÈ@ÛB†õc䜷9*ß™^çýÐ:y‹<)‚Ê÷&@/\t²µímÔŠ*óç »—™lŽûó *¯ÐwmªQ²³&H‰Z^dDø£3µãLb9…[u,°U‡ûVMÇ·u©i§mW@kŸ;ò»º0"‘}íÖ»§ð^刎b®·CAx0 6ûQbXâ‡Ó¿²!YM@aC6½ÙšRWݘ\bÇИGÁÁ¨ì„Ù õÐoO×wtù›\AN[ß·ª,]©ó”Iñ‘G<†q¤Ù_¡ä“íüBçSÈŠ,“?Ù7­±µÈ€½óižÞ¶¢;îÍ ]oÖ…k­tÁÆV7ë†È†Ðe»=n¶íÑê,uY·OP©–ªd¬¶çu±ŸÔÆÀ-HBèº3ã±ÍH•ÆÏ#ÉÔ“X  ~4&Ÿäú÷@2b»¥ýª›íâð{e¾ A6é0 &Og¿Øî—0Õuj8}Q¢ð ;|&«-±Ùõ}s¶X<>>ú,é†Ê¿+?TÆkæ‘ þV/òb‘$øõb:GxìÇòÿÍÿßÃ9f‰HÙ•O+ð |ä@<>rÌÃD2JÁnÌ <ÍàÙõ¹nÔvGï0Å(EmÄ.œø{SlÇš¶…˜±©«þæ¹¼Jw”S°ß§b7Ñ][Ã8—aÆÜ|w£É¾lâ©1!#~TúH£-¨ã¸ô-ç¨ô%´&™béG¶ôÃ8Ã;y9Ø' †Œá?üUáÎDÊü¢nqÔ0jñ‰…hØ~g0RíQa6­jŸèœ ¸ˆYM¨ãˆ$[7Î9ÐÎi]ÛÑAݽ2ù(|£èæ±HÒÈÕÑêfu{~JóFWÕ~’Úyåútß:附ÿKýÁ㌘ endstream endobj 497 0 obj << /Type /Page /Contents 498 0 R /Resources 496 0 R /MediaBox [0 0 612 792] /Parent 500 0 R >> endobj 105 0 obj << /D [497 0 R /XYZ 90 720 null] >> endobj 319 0 obj << /D [497 0 R /XYZ 90 720 null] >> endobj 333 0 obj << /D [497 0 R /XYZ 111.6 656.04 null] >> endobj 499 0 obj << /D [497 0 R /XYZ 111.6 613.599 null] >> endobj 332 0 obj << /D [497 0 R /XYZ 111.6 571.158 null] >> endobj 347 0 obj << /D [497 0 R /XYZ 111.6 528.717 null] >> endobj 334 0 obj << /D [497 0 R /XYZ 111.6 486.276 null] >> endobj 331 0 obj << /D [497 0 R /XYZ 111.6 443.836 null] >> endobj 368 0 obj << /D [497 0 R /XYZ 111.6 401.395 null] >> endobj 496 0 obj << /Font << /F51 8 0 R /F72 7 0 R /F60 14 0 R /F54 329 0 R >> /ProcSet [ /PDF /Text ] >> endobj 503 0 obj << /Length 42 /Filter /FlateDecode >> stream xÚ3T0BCKscc=K …ä\.¨h6—!”ebl¤Q¤Bx Ç endstream endobj 502 0 obj << /Type /Page /Contents 503 0 R /Resources 501 0 R /MediaBox [0 0 612 792] /Parent 500 0 R >> endobj 504 0 obj << /D [502 0 R /XYZ 90 720 null] >> endobj 501 0 obj << /ProcSet [ /PDF ] >> endobj 505 0 obj [514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6 514.6] endobj 506 0 obj [750 750 750 750 1044.4 1044.4 791.7 791.7 583.3 583.3 638.9 638.9 638.9 638.9 805.6 805.6 805.6 805.6 1277.8 1277.8 811.1 811.1 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9 888.9 888.9 888.9 888.9] endobj 507 0 obj [569.5 569.5 569.5 569.5] endobj 508 0 obj [701.5 674.8 778.2 674.6 1074.4 936.9 671.5 778.4 462.3 462.3 462.3 1138.9 1138.9 478.2 619.7 502.4 510.5 594.7 542 557.1 557.3 668.8 404.2 472.7 607.3 361.3 1013.7 706.2 563.9 588.9 523.6 530.4 539.2 431.6] endobj 509 0 obj [333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 305.6 777.8 472.2 472.2 777.8 755.6 711.1 722.2 766.7 655.6 627.8 786.1 783.3 397.2 516.7 783.3 600 950 783.3 750 683.3 750 759.7 555.6 694.4 769.4 755.6 1033.3 755.6 755.6 611.1 280 544.4 280 500 277.8 277.8 486.1 555.6 444.4 555.6 466.7 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 427.8 394.4 390.3 555.6 527.8 722.2 527.8] endobj 510 0 obj [357.8 306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7 306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6 525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9 743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7 460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7 460 664.4 463.9 485.6] endobj 511 0 obj [469.4 353.9 576.2 583.3 602.5 494 437.5 570 517 571.4 437.2 540.3 595.8 625.7 651.4 622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9 750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5 762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9 388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6 298.4 878 600.2 484.7 503.1 446.4 451.2 468.7 361.1 572.5 484.7 715.9 571.5] endobj 512 0 obj [272] endobj 513 0 obj [777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8] endobj 514 0 obj [525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525] endobj 515 0 obj [583.3 555.6 555.6 833.3 833.3 277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8 277.8 277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8 500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8 750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8 680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8 277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6 500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500 500 500] endobj 516 0 obj [625 625 937.5 937.5 312.5 343.7 562.5 562.5 562.5 562.5 562.5 849.5 500 574.1 812.5 875 562.5 1018.5 1143.5 875 312.5 342.6 581 937.5 562.5 937.5 875 312.5 437.5 437.5 562.5 875 312.5 375 312.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 562.5 312.5 312.5 342.6 875 531.3 531.3 875 849.5 799.8 812.5 862.3 738.4 707.2 884.3 879.6 419 581 880.8 675.9 1067.1 879.6 844.9 768.5 844.9 839.1 625 782.4 864.6 849.5 1162 849.5 849.5 687.5 312.5 581 312.5 562.5 312.5 312.5 546.9 625 500 625 513.3 343.7 562.5 625 312.5 343.7 593.7 312.5 937.5 625 562.5 625 593.7 459.5 443.8 437.5 625 593.7 812.5 593.7 593.7 500] endobj 517 0 obj << /Length1 1767 /Length2 10356 /Length3 0 /Length 11470 /Filter /FlateDecode >> stream xÚ¶PÚ-Šw„Á‚3¸»CpwÜ-¸C‚{p·@p·'h Hp îGî9¹÷ÿª÷jªföê^m»»w -¥ª‹¸…ƒ9XÆÁÞ•…•M ©$ÁÎ`cãdecã@¥¥Õ„¸BÁ‹QiµÁÎ.{ß’Î`3×g™”™ë3OÉÁ à°sØyØyØØllüÿ!:8 ¤ÌÜ!%V€‚ƒ=Ø•VÒÁÑËbeíúæ?G=ˆÀÎÏÏËü§9@Üì ™Ù”Ì\­ÁvÏAfP€†võú/ôBÖ®®Ž@ ‡‡«™ «ƒ³•3Àâj P»€ÝÁ€? (›ÙÿªŒ• i qùK®á`éêaæ <  ØÞåÙÂÍÞì xÐW¨8‚íÿ"+þE`ü}7vVöÜýmý‡#ˆýŸÆf ƒ£™½ÄÞ ` ‚*2Ь®ž®Ì3{‹?ˆfP‡g{3w3ÔÌü™ðgæfq5€Ùs—çr†8ºº°º@ ”üÃÍó-KÛ[H:ØÙí]]PÿÈO â =_»ð¯ÎÚÚ;xØûü ,!ö–aáæÔ²‡8¹å¥þ¦<‹Pÿ•Y]Ülll¼<ì°ì ²þá^ÓËü§òOñs~>ŽŽËç"À~Kð󪋙;àêìöóù]ñß•`¹ÌÁV{Ô½?‹Á–áçæ;C<lϳÇ`ûãóÏÉèy¼,ì¡^ÿÒÿì/P_G^^Kšé¯ŠÿÑIH8x|Xx8,Ülv¶çð¼Ï¿ÿvóÏü§ø?¥ªf¿“ûÍ£¼½¥€ÿ¯ž/ï?u¸ÿ=ô¯ à¿#(;<Ï2@ÿïè²q³ž¿ØÿŸàO“ÿ¿¹ÿÃËÿmôÿ7!7(ôO5ýŸúÿÚÌõú›ð<Ên®Ïk¡äð¼öÿKÕÿµÊP‹ÿÕÉ»š=/‡¸½ôŸK„¸È@<ÁªWõ_ôŸ<;‡BìÁª.?ž ;Ûÿèž× dûüœ¸7þq|ØŸ÷Óìùç`€¬ö®Ï&€çâü–Ψô“Ÿ4ûCôâÍÿEü èôGv@‹ß ;þ r€–¿ANÐê7ÈZÿ¹¸Ÿ‘—£õókó/ãYù >çeû|N ú|ÎÌî_ø¼Àß\==Ðáß`ÏÜç'ù7õs¦Ž¿ÁçÔœƒÏy¸üy@×àóô]­Áÿz{î ÐÕÃá7ƒçÄÝ~ƒÏ‰»ÿ 9žéžÿ¦ö¬ô;ÿeý_m¹9;?¿v®ÝsÏÿƒÿ|ZÁ`O0u~Ö$bó)¤ý¦Fü¥ËÖWáiÚ-4Ÿyç·;ÌÉ ³‚Vœ¯Ä“‡z±—6¤é/Å(}ö[ê_„·&ªµÝû>˜Ä«Onµ¡~Ÿ ì/ܯûBŽBÆ¢)¶íûèä«h ßÛ¥@›ë䯇©šwãñYÖ³îKùâhØì–ÚöGž7håS,±Z1†%3´yæ¾S!¹²#3âžxbÍ\^MãæŒ?Q(Ä3¡úÄrùè¯r¼»ýæý£R“Ã¥›„†DŸ˜þwtòµÄnŠÑœOiqÌŠð\6oäûÁ…Ï ßÞh“P½U%v)cÎ Pì£éÎñe:CµAãÊ€×tuÈ>¡´¥²–‰ÕÔC¥&È þ·Ôä º°L=¯ºŽ´º˜€X·2âç诱“gô5z¤Š–„²³-ï~Þó=ÎÃÒ Ž"Lº äà©HÙ˜Rô7q ¯–Õ<µ˜ò{ÏÜÐÖ>g)ºícWrø†e¡›™Àî@[-$Z8éȶà×BM‰z¢ VŠ^½åš›´kÆá¿ýa\¦Ý|”ÂΣY] ,‚â>è¯Ûi †_ w6»c^@Æ+l[†=5ÔEQV2±Y¸0ÐcT‹'߯nºé8¸ÿ8lßa´ñ¥,ÙݰÎÎlØi–Ï]øfYG¼~,U¸öBf3AL9y¿Ìð–3ºqUÈ!µÊöë ÌÝKæÈŸÙc«sOz~”Tk½ËNXtSàˆ2>¸œc7¯~4pUµ5Öl8ééý°‚tið–>óG]UýÙº9œk'úÙ^M›öó@ภôXj¾G8üÃÏDÿSOž}#æk¹’s¥~^&·#Þ q;.üñ$Ï-Œ2…²·ŠÏƒ‹~6v&b°"cÔ‘é OqÒÀBÚ·‰ÙFÛÔð®éûÒsÃOHÙ}ŒïÓó;^Æð¢³¹žÐÂS go¤È©cîU«{Uò¹~q¦ÎrãÃÆrIÝ.óßÃaƒóÎèÞé­ÝãEîGD´ÚIw8˜^Wžtw¡Ø•Ýÿ&B›Æ3Mc)·uæÏrì;¦9ÜJÕ“Èþ“6aÜžD@ÙúænvÊ!/búÕ•*y,‘à”"³øg†@ÚwıCë´}ž âP;æåIk“Lß«s þ°×˜áp¤Q=¢t:–u:KÕSðn‘ïãTÂí? odz,˜ãrܬî1ÕkFy|"ö¡M’p,A‡d›Î¦éiHDVÅìƒÈ=¶jR}i»ÐL±kûvˆh!^D£œÃxmIr¿*…¶¤=Ä\]¬w¢$÷_üF²ÝœßɈ¥¥¾Xщ:±u[÷‘å¯FhJ˜`Hˆ$‘ø‘&Ò+Ãîû £É‹¤ûs¤ª£ Ô‹c K Fƒa~¶Ã°i÷ÏÑrÅÒ§†`ŸcûÊ“­!'¡ k<3œØÆ²|Á;(žÕÕ:8Ú¤· *ˉæ ìb GŠèjI§Ø%(2›»5µCk´·N  SK+p¹¢(iô'†G˜z§âÅ<’¢È-^xžnšÆ/¾f“§6I f’W‡"6÷S§¼iˆ½–>ìfi´§Û†³‹«¾Zí¿®#yycsˉ“¬·Ú¹‚ Î1åRgÊàMiÔwмØBÕÈìJ÷Ô«›^Úòù0@Ìxlùé,Ô³ÔQëgþ¦ÌÅC¾9u‰‘en±©Ðî:…¾²>hÉv})ö Nµô䲞bm÷ø³ùÆ‘Ëô÷Ä­!ªÎõ+ÑÓ:Bl @I‚PwFb> YÌ5ô©™³—X½më6g‚¥Àc3e³¬U²=‚ «?6»3„#!y‘@Ã8·°>J-d„-¦¯Ã‹êçæ¤ ž`Ö­ îZ?£ü>mœÿ½Z}U²G„ùb “ÑÙ—{÷®zÍŠ ?ŘS*'_ŸlNódûò“O©IÀå 2ö ·»'ÏÅŽù‚oXÚç8Í+Ê1ù¥ä"4o Eœ¯ñXpF«h¨YÈÀQõñ仦…|!\Qm¹ù¯›¢n?@bUïŸÓ.Ó£§/€oƒ[;ÐÃ>§é…Ïú«t'ð:˜+ºpHôI4ÙÕãù Ø ê§/ÝÇ‚N Ø6Ë?z4ÐÚí\ås¿õ éI•‰¾weOm'Ò[¯šbšôâ‘T0LÞRQ7öÊ u »Si!5¹%z¬ý´¤X Aj¬ÍÂãßÛ¶ÛŒMŠß2màï¸RœÕ­ûâÕ“oL)Ñr)P“±ö$¶¡xI±BüÓ/Áòå×ÀQÇÚûDz}}f±†æFÜÜìH²TÕrپǞûaŒPþòôˆUÛ{VO–Ž<ÓÉÆÔ_qí—/¼(ª_¢z{ Ó…PŸ}‰?øéÞBZ¹“¶×$U Ñ]û€šÀîì˜mk4Ÿ€Xû„<»®ÁùÁè¶þ+'eíþ<’©A/Ó]Ð[)2M­öG£ÈKí¼ë”V)‘U$êYƒ4âåJ—ì´ –G¿ùðãNµ4$k Ãõ^h.8ijf,óU“F|-ðLy¯IM0Þò‹ÕÁ…‰O•˯²î×Ú°Hâ.lkÈuþ©j€åœCèLG®òr"|nôÐE%Ù=ß¶ê;÷ýDŸ¿ß¥á',‚–å`Øë³ú²¢Œ,Ù!Æ*NGžrÉë»T·V‹ïŽ ÅòÓ»TBØø´¾SèxuÏV•4°$>èJñÄ^#ŽEóOTN‚ª†Y:®¿³“ªG šsxöYGÆ~†Ó¤K=<Ưeßç9ƒŒ¼f9ÅYØ¡0ßÕ2NRYî?¿Jb3ð=}±–Uñ„Én,Cú®›’)pÇc‚“0‰*×E¿†ÍAÑem§Qn²*<Á!{>n®*ß/›½x[CBmCW\¨¥ÚGPx=ài|Í.imÏJ}Í£åá¸ÿSÚTšÌÄ«SÐ º¶©î/ù,^4äÈ%ƒäÀºr'¦/,Žá×1%í óñ¤à<.Ùºž3ÙxÁM ˜o°ƒ9¡”­ ¼Aßÿ!o$â‘”Iº ›à9U _TïI¼dÂ3&• yÍn?~ܺ)z+Ô^ר=¸NOOÎÛù$P&[HpÒÚM",ÿÄL|Oú3\›r6òLVñU {›­ØËFŒêÝ~” ]¾Öþ*eÅJÁ¾o4 Æ£´ú^r±ß;äùØø“ù—øŽï¥<èöe]E7³*Þ¼;2àL ý$MJÈ-Q/· ÿ¤#²ˆ2©Å©ÿö—ªî^†¨àjrí§ͯÂ. …V8z•¨íUûKÚÞÈÀØ­åëŸóµwí²È…¹0:"„H¦jçÅoPÐØƒ™ñäW¿Tp²”­ÒÙÛs¡ß‚LM-³e‹¦§Ñ Ka äi¯‰ˆUøÛ _±02ô¯5…HKJü2T±á,#ÚÜQÞ˜~I<¾ýø~óK?¯W77NŒ¼à´JP½NY’f|/üÉ–&ÿ0© hóÝȾ¡‰œ 41¥²žÞ¾<Šz„!ìü¸÷RÓMF?¬œÛàîˆ2ª ÃSi’h4ž\¶}ÌÇœò"×õåÒMÛ~18åŒPÑ03³voè–óué óÎöQM8Ú§â‰ÌsžQÆÏuF®ðÅèìi*853{QÑÉK·6>ݾ×j˜ÅM(ùwW¸c×N=›Ng`ØÉù‡±ÚÇ•IÝj÷”,ßž; ˆh„2‚:+QV6È#ÖQФà§Q©þ÷4ÛKÑpIL52ÑŽ”õxÖ “k,YUw¦Þ¬åÍi­³È{Y%]c1ë¯he½‘;’‘áu‘r¨¾uY¦äŒÚbG|IÒšï‰_ 3˜uóÀÝ‘Ùù™Š­õ@GF¼È*#C¿a~”Oš¥®Z•¦»ˆJÖïÄw9IC„O~ _èÔÈû$"U„.aÂßµ™´ÙlóIM–¾ó)ÄÛ–4F«4!<,VÑÿl (ÑúÕ=Qb­AL_8¼`wšw·¿Íµû¾Qð~ÐJF`X[Íñg]Œ‰!†ã›¸ï¹—ù¯Æ~¡ ¯Ç…U’>Šäðö¿Ö&¾/eZÊ´ |ßžèAGÖpq…ɘ'Á¤ ^ ÉõMGŒ‹Îî=§ùl5|o¶÷¼Ñ$½ï7j8çsTü9%-7¿Mt)¿¯væQ¶Æa3ꥅðHõ¯×ƒÃc“Oìƒö½DX§r3‹Q&/{W´Lüô:ƒŸO) r^ÁJU+q7uà ”³Ì³Æ4g °_˜‹o€]íÏZF×s«¡Œ¬S÷12†ûèH×5{M=„bx¶7­öèÞÔ6Q™Ô'¯&øH,ÓÚ”¬èñš[WÑ¢ñ†YíÀ¦Õ¼A€å¨®s}y{–Wù&Twš‘zÁ¬¡Âx%®?ú,犄a gô‹S j[’HìÏë6[¼7#Ð6ƒxÎ/½—à†+‘wýö¯–cìžî6á"† º'› ï§g)ЬïÏeM¿ì^ŸdVTw|ÿ“ÂZ¯îöe„‰ûöQêt)ÞHývHØ‚µíÊòp«¿]\È tƒ¼%»7o6Œv *ÿå/BWñOö¯˜–l;3$£Å6J`,yAã˜Éåè²=F á‘}¾ìl›'!wVÊ5cyôÀ÷ÞÍ{KqÚ+ÿý†l+µj̩ӛÃnL¬Øw‡ýÜE#¢ä£ÉÚlÛsKì¾f-üý‰ADy/rÄâ2`óOIaïhí˜u®ó£Ÿ‚f66¿RaÑ!òKHYçj{_k€Úvå[e§Ãü¹ŠùKpÃéh,N¾ ËóÁ«R–ÃæÈ)U$GÉ6òèL‰wØI4U›>o–]Oò"á&?.[ìÆÆ9ñeÂI¯VºÚmí¡R¦åÄU|'ÕŒ†Ùœ%T)¾‰±/‘>?$°™×/ °¾Ôþ«¼ø³§Ù$ã'àÚ²ù(Ø+V_÷cÛ²¦­nqIyÈ(€žŒ†z¿÷iá¼li±pk²5hÄ1hãÒTE^¶'Hòe;-’ÜÜT“ÓÓî'ç3þL‰-yShŸk>¹ÊÔw¹ìöw½¾-n$ƃŸä¤Y> ôÖ!ÜÄmù|™0kÌ©«3[º(_dRP­œGaÒD§rާNqàÀZõ±‚¸ Cµ‘Xœ°Öuû7ª>DDª&a½¿l˜2„oÈןà”Î%ÁÏÇ,=Û¾#¸ZÃЖ^d=ö3÷iX] Ÿ‚ÉêºúAskH‰gÚ@tœŸ˜â‰Áã#ì ÷-‹í¯ÆDùÐ{~×TÜ“Kö“ã ÑÉ6xt| ýݤ·°G4OÏYLD!ï÷ʼ±89x¥õºˆÑÎðÈbYS9Ú¤œ Ê+Œ9ñ꽈”wç2kBp䤵¼2GJž¯Ùß‹qt'wÈ¿Dd,R¢ãÇ)ª S„i2ëwI«ÃZ¸hyob›òœ6yæëqíNxLSßš•PŒŽ]æ¶®Eî¤qA¸QWéúXCÎë:+O¢J ÇÄúšÈúîX¥Ë‹ïÍ­üjõõCEÑyzsРËE¡x&I…«þôCÜß±_þB5ä‹Q!&R¬ÙYûT²ÿ§´2»ü²O éÔ>u(¦vo5zäÌÂPSÍ9Wé]µ\gÄêší;v“ü‹AÓc[Zвzé>8Ý`BÊËÜÔ‘>F¨ø°B*im* -‹žïBÆæ×i{|ɼ×ã"Iã»=„³ªó¼šqú&cëÎíXãta^‘e­ÑNš”ŒEx~n‡‰X¯,Vn%˜ Kæhôøå>ÊÓ–¡³Ç§™¢ZÄx[16Øp¹X,d>ÇÁƇÞœÎÖ%öéK --ºaÆ} µ9–U¹ ;¹ÿì‹ÃRuVeÏ8@í¨ËGŠ+ _œYƒÙ¥MÓ€† ñõR/ŽùÉ™qÒø“®/ü? # jm+q†Ö#oekMéP4.RC­2ƒˆàƒßÅtÇ ÀÙ¦Ã]X×ñ†AYõÌS>V÷²›I*¸ Yžš†ç€w×õ·G›?[&ŽîcìÅAàzÇx§4z Lâû£‡9# 5<ÕãŽñÑ]d«¢ã½æ—WÉ€³ªÒb݃½ -¯&ò·Ý8QÄ"Ëã0M ‡ƒIsúOØ·QóažBê”g&ý¿V 1+„±ˆ±~ôWþº@ 3é}úñüJèI÷„–H»«~Éüø cÛk*váQU޽r<ÛoÔEÎçýUŸv¦‰rKܘæîG£…#Áuzj?˽'Y¢óêf$:{ÞZNXEã7šÐ©˜@°~l&»©¹í‹týBÆÅÁçH¢åÄÊÅd’Ä”ÑrÂQü| É'Û“"³[·q6åJ¿ºns”5‡‰*>•×ù5¾]ó›ÃDšôegOõ€çŸ µ×m×4¼N‹¿¸KJƒnŽð ÅÒ08°˜ô¤Ó€çбçË/ÍvÊ„vZèéù ë’›9Ú3jÇc:C¿¹ÄMT5*ߦDçÌ<ÒãÂm³ç–×ï§«Ø“óäKNSþó­ÑZ„þÏP1ÛÆ¡GX7èË*®Ÿ¬~½˜µNJ…Î0 ¬pÒ™PŠ9¹SÔ‘ µµ íKŽ,,Î×W#oìwùñ¢“x‡«é7Þ×ûá’ÉÚÔ¾‰êFùpUå4@*× V5Ÿ¦» ¤ü8„„â!ô?r ó Ç©}˜¶íV䔣´ÑE„žÎÙ`ÐMºÍT—N8WÝâ!­£hü¯áìt¶V ïõ)ûf86ó$q^§”}ÿ¢¸t™C_›WÜTÙVzœó² >¦5…’FÄNc$ÊWÁø&5üuÉ›Ññ£Ü»4âq$rió¬íÜ œ¯ÜþÉñDš0…Y²Û÷î½÷>æk1 ’ÙØ¯±,?1„Ì”hŽpëɬ»’tÞÉÈýH/cSI…´wÃ`Òw, JÇNmËã[™Y?Ÿ½?÷‚3;/2 "åï9õãÎB†±Ü¿çH´ÓLÀžoÆgUœä×¥›ÿ4´7ÀžÙMŸ%Y#½9ÐÂk®Û{Ñ ¥“»<œÕ§€¨õúz˜só”ŪĆcÜGóF‰q¦4ç%‘%½.cfòœ˜Ä¦¬à+KjÞ}¹äþÇN›Šò ´Ë¾ðb‡®P•6]‰=¥NÑx ÿr̆,lª±=I=盕ù.uû‡À/KÆýÈ?q¢¼®b&~2š:ÒLÆö¯žÏìÛÃ?”·îÅ9•Wà÷Ò~¾ ’À¦t’‡¡º¾ù@óz÷¾×jP¾.¸%Xž£ÉyÂô”.Bé³|°æ‚™o1·ãèÙ·òô\6 ]ëǦ®/Î _˾-]Z7 .ÇhÑ®|¾f"RHk÷ðö6´=wƒÇ&¸¸Ÿ»í*o°Ò8úȪƖÐà²Ô“gáÆÖB¼ô¦­W6—b0=n½w^ÇIFaõQpù]S‘Vå¿K•:iVÖo†•ôC\ØñÆjD 8u28øÞ,Ö.R¦Ø&Â%ƒû†E<¦Ý´¢Ö8ÚÊIî+’;ÚÿEµ‚ÅY¹xmÏ™×YÊC ²ÀÌú.–d |«*Ég=LýÉdÓ_ž[3Ž0ÅÀõQXë|e”#00F)…û׫njbØ´È‹¬þ¨ƒx-xSâIC‘ÒdªGIx[˜ìQ’UœÓ&‚]]ØV¿ÏZè"j\§dÑÏ>ܼH(¯oðƳBpdE÷r¸Þ&mI=Ð4;ëÑòº\3EwE¯)ä!J߸wqà/B¤v⺠h|”\~íÇ·²Œ¹ ‹ë=Ѷ¹—h3|ˆ/›ù&zñŠŸ_ûv\‹èãš×­®lTkEÛ§RÀ(/¢N¼,yiók5OJ˜1ëí‘Ûw ïR˜ý›çùàŽjcû°*ý3è#Éõ"‘¥ !)Há½va·ëø–XUÎOd„F%ŠSnzÃâ:óSêýü6}a£Á)HÚy(>_5ÑÃàLó®ß.[PAÒ½§Eiù(B2urC •É>h7ÒÅÖDwéaDȇö»wªÇxvÅYb b`Ͷ‹nßù¡nÈhzWõê»}j«7Sh>æ"̾åÍÉܸ½qZ²A¦í¸Ž¤Uº¥Õgq.|åÝxGBQy—‡'L™®nüÐ_ì/ ±²q¥F×ömî\5ÐQùz“i*\‘Ø·ñ*atcÙzîQžšÇ–S‘¦GïE93Ǹ,Ìy¯ÉWè5Vs‰Ë·eyž(¦ýÑ©ŽËÊäì,ZQ½µ` ¡œq`½üqÎ%ÖÓùªRA ÔÅ‘S¯DЙӵ¢z•i›ìhŠøaié¾~@Bü'€/·âe{̤ihì#}o‹_+*VT‘Qlœƒ!OèºL¼6¢­îõ ‘kàØ²rvöá»ÚlvÊôv¸—×%Ž”ç~×mËê Þª›¯…ë[Þ ´”38m«,®}»#­#r’€#ŒÌV³Î(lôEgQ7.•{ {øŽj3¢}ûªMŒÛÛ©i¹ð*:¸¸!µÖ¸ÊÆ´89¯NÜšœx‚G÷=³Q,3œp :†ZšŒä'ʺ\÷×+Щ÷£;ìu~³ÃV¦ëå’»þß\z[¸ËÞúÄÑáÂûßÇO<°©c7zÍöm‡È"S Þôྂ'(=hÐéæ±Ô*g¸²Q†ábu cs½L`µ ì¬]J?ç®2ûØ(iÔt0»LÑ8÷••d–ŸššÇüÖ©òŠPGˆ¥¿ç¼öÚ¤}å‰bÌŒŠ/¼‚á+4gKÊW»¼þo,ê@Q98´ŒÜ:“K™Å¯ËÝN¼…>ýð‚ÇP·†tÉÜ?¾bÄ^,ÞÂç ¬C‡µÖ”VÔÈîÏïp3zࣸ>ÑT5OEgžišŸœŒªm=U&B{¢$oç¾ßÛ›fq+Uº ™dZðNWÝ€èWäöOŽ DŸ™;JwäcPBÇu®,nB®&i ONø³Tåïècî‰]2®gÓ¸óUeÝÈe Κý:|”{Ì¢¤xMÆ 2†NØšL‹ùÛ†~®_eÑÐ~‹‹U­9}dþÂýí¥šZ¬Ü뻨4bís~¶†ŠW®šqœç¾×ó?Û[D&,#ÛÓð&:ç{vX ³Á¨%t-84ZÓ(îeíc (^r‹ÆäÛ‘o¤‘»ë®·ytË’Ç?Øn¶³Ÿ^‘™Tæ¶|—§ÕÝè?îî¯{Ìöp¬•Ú·þŒÁ÷“N‘€A»¾ž%xÍí='BDèµþ{º`Ü&’÷Ʀ/1‹¸ÄÙZx“³¯óoCzuà ÏŠ ÝÔ/roKÇfùüuªC•£š_Îñøú!“c°^›Û&èK§7} 6g©›ÉšIÎí_ЧÎÓ`›’° ÓšDt6h¢zìhÞO¢hA˜?`œÑÇÖ )-ÎْïÑ*oŠp”:mO1Ç»Ó_ôs ’½Ÿä¡d—-â@‡^Àõ 7À zòØ ó$‚ÆH‚-øfXvn=E…bÞÖ.od„ß‘`~‚ï—± gkež­âeÿ%cóŠUÏß2DêK‰“w…™×¸þ{Éyå‘á/ƒ‡ì†Ô®þ2NuÉ™;zÌhW·‡dÁW(7ÀJqO Ib4{èÊá΋ž±ŸËèwÑ!äãžBB¡ ^`:nÚÕRŠL ¬ž4dú²å‚†ú([½«xêãP:9l‹$Å ?+ Ú£º©˜·È‘ä(_¼à ŽÞÙ5tŽï\œ¸ 7ÙvÇý\ÿÎe)à&MkGöR†5€T(ú ½q¹®}Oðhoüs-Ç‹@¶’>&]ÍÒòôsçí-ÕVÌtz‹×>Îß[5’𛑆Òw _¿ ÁÁmê©Ëåç, _Ø‘Âßw¡‘ˆ*ô?°ÙN‚ùˆG„7ÿVj€áÁÑH0Á%OªKí}Ó¼Þ]Dè#C‹ÙÏx):ÚûI\TåÚCº°Ï²Þ^…Ž¢†ùÕ¡÷ ~íàkt. ’]vùÕ”ã_“Aj‹ô¯Ó,Áµ¦jL]jÄ+ˆd{Ùñ¶ÈæË~ÎXw‚? ·JšÖ#Φ¯ü3¢‡‰¡ýiY¯4P½ÈY P0:šˆ‘èœ/ŽR9Ä}‡táO®[ébêW0x_ôöÑlÜfŽfÜn,é{¿á­ÐÕ ,¯¿5]wï •MšÿdÅL©Ö³YJ_Ôo!Š7œv]›¶Oõq"SׄJê§Äê¾ D›áQ>ÒJBÒ–'ÄãTÁ]ŸØ%8×ÎÉðã…p¢a§B®[êèÎß¼éÉ“vô«Í–Ñ€­ à¢V+¬Ý°ùüy´Âh"U‡Ý£´ YD€TGM늟ìxQÃ+÷”4¾Ü XôXPŸOÓ§‡üKTogó¡å-Ÿxƒ!°AK÷s¹)«‡0ŰûòÈñ:zÀÒ²Mâºp ˜FMÓÉb‹hÐ-¢^r»ÐÑ?Uˆzáʇ6™P羇³oÆÒ=Ž$l=F‹ËËI†–¦H^»Á•âQª˜ uÐ¥_åûÑbj$Îø;çzþÁÅÀá”H…­£˜óåQ$üEƒv³Ùiim<òz’òÄüp•T9¦"¦©v³&*^‰HÂñÀóO;£1åyÚr]íò9cÚ0^l~]™j´?Jp±Ï,Ì û›ŒÉQÐk{’¦­1Œýò„É'à°Ås7bMák˜tV˸ÍÙ<{áöU®U›Õ‡»1÷J2ƒÓñkJ Üö¸¦v”µ"UÐjÃ(\@˜²Ügþ ­PWÜMŸŠæDóæÙÎÞNÌ@AAMà ÎQï6Vù\©ÇÁ=e<« ¸ ܰxKý1vªŒ[³C®âA‹wˆ^n•³"©“º‘$?”q¤]m6<¿ÔúŒ ý$KÇ ŽÅzµ˜¿:˜1†™Nô,ÍX•kò›É‰{eVZei;GÝedN)ÎÛj[O`¿Um=ÚH©jÝ‚´¹Èº“ÂRòxZ^…ya ’Çà6&§Šýx7ß§7¼tJV™öS»]:½…¦xƽ5žÜÒº…ÔEßÏO ¢‘ Z+ô*—[›=Ç£}ðº#Z€Ç°ã7ªPïÙqAÙÂÂæ½˜Ÿ|xd·²Æú:®$HŸ ¾Ëã©gro:rп½à¶œU[jcHÉdG‚áh%^áô¤Ò‹{Eöë¡Qm§`ä3Çϧq…á¦ô½(µÚÁ“´h,œÀ$‡}½Ý—³DíF~¼éFñ—ëàÿà¶8 endstream endobj 518 0 obj << /Type /FontDescriptor /FontName /ZWIIUE+CMB10 /Flags 4 /FontBBox [-62 -250 1011 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 108 /XHeight 444 /CharSet (/a/b/c/d/e/f/g/h/hyphen/i/k/l/m/n/o/one/p/r/s/t/three/two/u/v/x/zero) /FontFile 517 0 R >> endobj 519 0 obj << /Length1 2376 /Length2 16958 /Length3 0 /Length 18343 /Filter /FlateDecode >> stream xÚŒ÷tœkÛ 'ÆIƒ‰m§±m4ÎÄžØ¶ÕØhÌÆVÛlŒÆ¶¾ìý ûyÿ­ï[³ÖÌ}œ¼Ž×½†œXQ…^Èdh"²u¢gf`âˆÈ af01±201±À““«Z8Y›üGO®nâàh²åù‡…ˆƒ Ðé]& tz7”Ù¤­̬ffN&& ÷ A<Q ‹…1@Ž ²5q„'Ù¹;X˜™;½çùÏ#€ÊˆÀÌÍÍI÷·;@ÈÆÄÁÂh :™›Ø¼g4ZT@F&Nîÿ‚Š×ÜÉÉŽ‡‘ÑÕÕ•hãÈr0㧦¸Z8™”MM\LŒQÈmLþMž jnáø/… ÈÔÉè`xX[™Ø:¾»8Û›8Þ³T¤d v&¶ÿ2–ý—àßÅ030ÿ7Ü¿½ÿ daû·3ÐÈdc´u·°5˜ZX›ÄeœÜœè@[ã¿ ÖŽ w  ÐÂhønð÷Ñq!%ðá¿ù99XØ9928ZXÿÅ‘ñ¯0ïe³5ÙØ˜Ø:9Âÿu>Q £÷º»3þ»¹V¶ W[Ïÿ S [cÓ¿h;Û1ªÙZØ;›H‰þÛæ]ÿGffâ`gbbâäà˜ØLÜŒÌÿJ êngò·’ù/ñ;oO;Àô†‰·…©Éû¼§#ÐÅàäàlâíùOÅÿ"xff€±…‘ÀÐÄÌÂþOôw±‰é¿ð{ÿ,ÜÚLïãÇ `úëóß'Ý÷ 3ÙZ»ÿ1ÿ»ÅŒÒÒª ´ÿ¦ü_¥°0È àIÏÎ  gag03³r8Ù™Þÿç¿øû¿¥Š@‹ŸŽéOD)[S€û_$Þ«÷".ÿž ª¯ 5à3ȃÞçÙ@õgüu˜Ø™ŒÞ¿˜ÿ?/Áß.ÿÿfÿ¯(ÿ¯ãÿO$îlmý·žê_ÿ?z …µû¿-ÞçÙÙé}7ä@ïbûM5LþµÐ kãÿ«“r¾oˆ­™õËhá(náfb¬háddþ¯!úOÞƒ[[Øš(‚-þºpôÌLLÿG÷¾sFVï—Šã{¯þV™¼¯Ôÿ¦³5ÿµ{,젃Оé}ÀXØÙžÌïKjlâö÷llANï.€wrÞSü_å`0 ý%úâ0 ÿAœF‘?ˆ À(úqÅþ‹8™Œâ3€Qâb0JþA¬F©?è=ŸìôžOîzÏ ð_ÄõžAñzÏ ô½gPþƒÞ3¨üAlFÕ?è­Úôž]ýzÏ®ñ_ÄýŽ€ÿEÌïg½Åý{5 ÿ w½Ñû»ÎdýÞÒÿHØØþ’ØØü#â{¯ÿßý‰þÞJÆÙƒw’¦à_Èâ=ë_ÐåþÒƒœþáÿnböø~"óÀ÷ÂXü¾³·ú|'dýøÎÖæd~gò‡*û»«íûèþCÿN ô§ïΠÿQ¿Õîú=˜Ýû«ÊÖÚÄô{6æKþ§(lïe²{¿C@ÿ(äû›šÑþϘþ…œMÿ^°ÿ߯Åw!è}Åÿ·ÄÌï5ùGŘßkâø‡×_ÈÄÅäLßÍßïî?ïÇùîý®ct2w0ùGSÞ¹9¹‚þáð^+çÀ÷2»ü¾Óõ÷þG2–÷ðîÿ€ïUôøS˜÷H&ÿJõ?÷…‘³Ã{þ¾Ñß/“ÿà¿_Ü&&n&FðKó £ÏA–µAí÷5BŸ\éwÇùfÈw5R©é=—:œ‘a’¨«3Ön…’†zQW·Å¨n—‰^ûÈ(P`YwïAñÃÆ‚½ê®sТq™¶ÉTLº%t-äˆÌS)‹J~vâQ_–°!šÀh…x(¨–³ºü–žO‰×jv]|§HÀ3^?U:†p`\-lœà5%U6y,©ç&‡RU>aB**zÆœUΪñµ ;œatòªKš‹c¡j–€7UWn蘤?ȇ ·B>`3;q+4ƒ¿I˲çÖ<¨6UíÕµúíbþ¹ž,nçÇä–Φ†<ƒH!•ú´Î™üÞ~nGo3ëGd¨Y!Kk}TÇžR¹Ŧ»2„ÎwS÷’Íù.Ãc? ¸ ìbúo·ãjäæ©eùœÍKcæ¦EÇ—òZ{g#õнqšš‰ º»gáwèKÆ=ÔhÆVY+ö}n·% ]±=v•x>Ì Á´!ÏoŽ1$Na¹µ–a¸à¤”áQ¥ ñjñFp,¦³Ë¬Ì¦×ÏÐz<”èÈc§îöuЬøÁ³P1d”Ž%ŒTšÇ)¥>çÿ5¿›«ñÖ’¡¬‹ÔÉýJK+ƒÀÆËú=Î(@JÇ&D,ÄÇ6-ñp÷ñ6—I÷ÅT1Ãrq2©Ý_áç›ìò¯±“˜ŒÊnpˆÏàATÔË{Dþ)=¦ß‘ž 4RES^pK¸À‡•û©tPJ‚ZÇÑó!.Mw¥?“Ù£%ž$!X½â®‹Rðqj]z—f®ÆéÒy˜ã¨Ãh§ ÃáAÛ4ÐwÒ¬owo°a-%ª‹jÑW'÷T¥Íj,Ë$Û5T#žæ77æù¨:ßžÏ+Õ1cÆW?øãû3(8Ù¾îCE¬NwõÁÐñµÒŽ”©‹cí±ö±ÖŒàpYõ!˜ëC@[·aî ÙÂÆ­Ówšnå»f»xÎóеÓÈÆrŒy&-Œ0çÓ,_DžäXv FÙªdc¯x pvê¾ >nTvŽùl¼å¢-ÈÀ•l„£›rëó+V{Ê+½­ä‡ZÜKEOjL…Ù…eûÚNÀåaòA –Vçê×ê#."/?¤O•^ù ¸µÏG´5jHnìd‰z ý Ú‰ÙPè–ûö8›t‹½‡ñ,f0‡ïI¥Ç×}üZå§£k1c\[ŠZà6¿ã ImLD¯§ÒKÂ8Z?Å'>p¹ð™‹uë¡êw ‘¿O…¡âÆ+ÞÇ6fŸçÍ_ûÂVÕÆŽN{ŽøE$ºFŒPú6¦¼³ UgqV÷KNk2a}UÆó’5Móìè'Müz~|»!ÎÛ¤fÙÖ§úE­ìŸº뛇›Š´6ã4æoc<Œþ3b:ŒøŽUïèý–x…†sÈYV¡}œÏÐwÌçôYÿ—4Ü‹H€”/ûE!‚*¢‡cqý‰·³¬A²Ü¢_Y' g¶Lç ÄéÝ~ÛåNÈ/.w@¤çåeÜ7¯\jÂ^Ñ||Ö¼¥½$²$\Œ‚ßpií:VßÚôäé_Ž?²D±Û6f”ß¿öª"5ú}‡)g9Ž$÷vÕ‘«ÿ¨Â-¹x®Ý>—å`z-Q¬÷¬ÃΚDº½ä‚©¬9QO¹%³£R¨‡_ïcÛ’V)‡÷剎‹¢€ˆÔoLöšò+ AωQÍÑ}¢Ë·ë'N1ìU[³’Œ'õßX°†h»1ÏäpY+Ãn) Ï"ˆÞEP1AöÍ0Ö«â–ÔŠ„£K&Y–HñËȺ‡!rQŽVˆÑô÷›ÿ 59¶ì¢Œ© ʯ*ÿ­ •ül½Z\5}½É[‡ƒoNÔ¥3¢ry‹{”ª•5+åF­äÉ â÷T}"õCדówøngZ ëzã›¶†ƒfR#YÇЯX÷ªÒÐÚót‰âÛI.¸lu¹B†¿@·yÅŸ³Šw:IY&‘Ìš¨FžEÉ4—³Œ £–¨qRJ§jEê9Ùzpœ/ÏȵyÞÝÛM¬Ü›e÷>LIââ§cò8ñØêAoËa[ƒ.MÐ*<G<Ò&vÊý£C(÷¾[Üå`Q¹#¿x5ï´mS+¯Ö>ÄÁbÌltnÎr’=v‘’˜ÀNò¡ÍY \˜®™å%ÇFåŒ T¡•Ô#*º~kà.¾™ “o ZæÍ)y #±üÕöÅâEÎoñP¬ºþ8kNö™ä7ñ1)m1¸šPxüÄðD:V´îm7Îä ÒO]o@⫾°mÒAô§„¡¤!çBìHÃüfƯë]u«¤IÅ;RÃÍí9²[¾Nê18Æ"¼;îÞ º°êáÑgC.{é6Žpã¶² ­®H‚£NŒ¾MAàö‘Ùl¯ø¨Â>Õ*‰/9ä8Š ÅÜ]ÝþKRû¬*}GѪâ"8]`qÐèº?íNúbœþö¡wä,•ÜqxÝ'CÂä!ü~F—*ælžg÷ÈÒúM` }uÕ38ww["g>V°–§?Ϻâ±Ï¸Çõ{©S¢uZ=´íZúc{ÞjçQá¨8¯AËi ½Àéîgú«#,h o2B âÝ&q¡ÑÊ™òÌ5õ¥:ÅÝLü05hÍîG= !FËןÞR4kõØÂ"üîé úCàPíl)hÏ<[Iß ÅösÕuƒ˜§ÕÏ éIBe@âLƆq@¼ÖcÜ·Ñœ5S6 ½Ñ «*Ïýc<«ð°i ¯kºô&ÒM‹†xI#Fþs˜ßsžG͇îiÑÆó}#ûõ3²ûUj±³~ÐJÜ-À¿_L:¼¶×_гâ>›¡æ®ERäËy/®” ²æˆZ šDëä88ó¯_|¾³hú¤ßyŽ ןJ3²º‘Ϙ¼'²5ÈtYÀœ£fIOZIKØ!#=Aâx˜ò|=ƒ}.ßߪjÔw¹Q;Ö @èò³>…'wƒÒ6«ŸE= ¶äð)DA˜Å\%IHг²©=sGi]%Ç%¢ž$·mÔ˜ÏT`ÃCMs¯ô˜Ý÷¹Ò²ï8)]&²Êö'+ÊQÍ q ,ëÓ}*ÛO¦¾&²ÈwbÓÊHV›ÕµÙ ÷WŸ‹_VxúêïWuÓNmfñÚINÿAZ­?WÛ´Fõ ç,#^°Q(V¤?¬dÝ9ç—\>ÛÄ!>œÇonžíѺMËW—› ÅëR$þ„\XC?·Ë¶mý»¶¢ÙÍ?sÜËCʾÖ\O°£L) 2zš)‰\x—wÃ.Üú,n;ÔWC°µ½äLÅÝ´E™*€šNüºäfhõ(éR‘O9ôW4<ÍdžΆçÒG-÷ëT¼§_O¤C=¦C"æw"6ç-±áJÖê|<2d=í…tÀ”§Íɨ#y<äU¤e¹ã[êeÿLH hëÇ'¤žVô™”Ñ‚Â|Td‚Š €–VÄò¡â÷áÞ¢øQ¸æÒ³¥÷FÕIÝú…}ÿŸ9„ütPu±¶”<šjkÞšyÕÌE`ߣŽÓ_ò6ëˆøõªAþú¥Ç2K ¤c©Óð×Ûî·–hp§<ñK÷˽ºÝ› Š3Ï+W%mZ­é„|ûfxÚ–MA„³m[ºuK9[1S)D„e ‚j5ÈÊzMäj®Þô{ù`ì’‚·,ÔžOº?¿ —õaË øIcFœíS.1ÜZu{ò*ö¦ì’1æo“)×û‡lÚ¶CÒn_¦çqc`pE­Ê£8ë«f¦37"QœÒ@™|“×£(v–òºy¢}›g*m AàA3ÆV9¯,ïå¨Rs½Q [xò%˜<¿<âýÁÛO”‹2¥MìÆ„öqû!íFËÓ3 úÇõCâ ×Èe£\}Ϙ>ÜÌɧÍ7Îpû·ŒÆlù‘Z®GÈ%øm~ä°|VHþ-`ÒäÔnÿƒ5ãó~å¦ÑvAH7-£µpGðý^.B§yXÈçN—¿¼¸›v諼‘,ñ?1˜Üâ sHìÿ  '>9kÀ¸‰iù"æ ö=ó$8xÏD­Mÿw޵µR):Ç ´¨$È?Aœ·.u6íY âõ×–<9Öš´žë8ίÀÈžb•Q<ùV|”ðƒOéøÂ%ß›¤¼ “às|æ–3ªMeJ-¬Ü ±§=6 Í„ÖÇ¥:›+xåúBߦm‡6ÉïGŽÉËáËÏZÅ»e º¯=ºØù¼Ä˜æÔ£€^¦Ú’˜eÖ«!¬+þÃÚë¡ýÈ}Œèâ³@Í—â¶dºßÆS¡:W] èÔ“êÙÅîß-xb½\`sÚ¨ÓèȦõÅî‚~œ_´sQ#ÁaŒÑ4(9Ú¤…Jž$n¤ÏÈ|Dbˆë·¼s‘¶ý ådꄚ´xnsq;{âãAÞ£UâJyk<‘*QX_›ÍU`°Æ÷–]Z^ÒÕ ,êÀ¹Êq–Ïê9tõîÏ¥F´W| tF ¦IWæíY¿Üj$9ãa€8òO»‡¥¨| YjP…K“ý$Ï]'áÃG ïæ1>.„´QÕÿÁwA ϼ9p—™7O îlØvL“#Èøð®Ž¸¥n9»åI/”Œ°¹&mÈ’µõ‹z+[_]CÂÕ´{äŒ÷OŽ”:Ó^×LëÃa&\y~ý"A¦Ðý-×ú9ƒ¦‰#þæyKO®wÚýI¸åF¿˜ƒ¸–œPfÍn#ž.}ÛÖ®‹PÖGC”ÖËqØXC‚£ªÖưæ ”ŒDa-éÏSΩ}Ö9z,TÔx6[¤q¡dé«%´OÐI›D˜Ÿ|ÀcEeæÀGVAZE“Ÿ \ ݮڰ‰Ÿƒz5m’z‡»ú?¥ˆm´3;aaˆ`»è³FÊÍÓêqÜ-NÜ™g÷u׫øJmȪ6a<²¸ЛâÔÍV3ÔA†éV¹8|îØd¿þ¾Õê÷©õ@a'³¡Åµ}òˆ5ÇžŠV€¡ä:*(mášú(Cã)Ü)9’=…ZÖÐÚ?]NOÛ³Ùo,!øp«’ºà§7ãÞÊl˜!×ëmFáð*o(ªÄF§½¤Ë>=u!›²ßÀ]òª3Ýêzz]ùàAŒù³Æ8$ n;³º6²¹/õ'`…S~‡z9œj”Y"áv¡þ>w澬̇#›3çÊ^È$Ÿ{Þö¼¦ˆ.Љ~ÚcÁhU’ ÉûO{à:ˆbÆ‘_/½i©Ð], È#"û’Kž,i¢Ã˜Ž“PIS§ãŒïlÚê%…cá¤yrë­šMü¹‘ZfA‘iˆ_Ãæh*ÕÁ ²çbëûÝCO'ùù±³>nª]í¤6*|C;&{ë3¿Ýú ð¨Òòɤ:>p˜F±¨»Ñ+­=øZóKû·Ÿà@©8—Å6œwF#ï×(ð ×)Ú<úbë¦á<ãÌ ô3þáR˜8»MBml¬+Ë`ujíò„‰£Uà+4z¥@Êu¥ÁÂ(»m*^VoÎ$<íc‚BP'x*9‰ï‚\µ´ae!mâ(V2 :0uØ,N/Û?­Q>ÿ§Ä ¶—ºëeÒ«/ì6É–2Ö­vñU47­ÞxqƒÕ‰Š,®µ‘iïz«D™ULÁUõ©‰& }×Ýa»ÞR„*¾·ƒö«´´{Œ¨¡.”¨Aá&m5Öv|õýÒë•3-vÄÔI/Úþ3ôoPój©¨+:Ô˲L³oÂ]u¶iQð¡ —H£ØdAÌ^cÑG.Ï ´ÉÑŠGŽ™!é§ÏÀaÖ¬´b¡r}&ÚW^ŒÁ­Vk…c‘÷KÙþD6™f¿®;Ü–ƒpàæÎè5MãQQëè´÷F¬C\Ñ&2W‘^MžÔ|ÙYâµqPÔ:"kšFÞð9-dÀ­ªxµ*# ÁVfމiÿéã±{̉˜âÀ¸½n¢"é ýtþ^ -ÚÀéG‚74¾b½£`€F4{c£^ç´µì?ĵ%ìp½>P%É:,‹­¢D+ênæg72y=²ç°l§=@Þ÷mæØâmßÙ°PZŒÂÍ©›ôZM’ úÞ‚2JÆWÝa¹’øT ŒÍv€ì18Å© pl‡³;y†-b›Ço»O§‹ŽÐñïΩº´èÒ<’F§*W®Þ€—ùuûõ\2•oHЄ¨Z‹IÔGí­±N®d80¸x{.º‹ªÝj)`±É8?ô¢¯k$¥âšæsŽ5dâ6(Wœ ÂmLç9¹²T|n¦@{TÅCê¹òàµïH¦ëÞ,7»»)¹®ÄH}[n,¢—¤ðHq?BH¸òèÅõmòäÕ‚UM.Ð+':1‘¾BÄ~ßÎÌçêÍ–> k´et§ŠÌtŠ7O†8Ñ̪ÍH'*H¬OgCv‡…érpØŒR°bžbÔ¾hR”Øoð£{ÓºOHþÌ‚À>}Z ©˜ŸÌè[4L …4˜µá0ÝŠ)ÈHÔ-ÍÇåGI9pÿÞEñÜù(ëãpZºér'’GðM½óæ~Øè[Ñf¶’Úìí öxœÄOŒâ€©kW= ¤}*u)ÿ|‹—ô´­ý±§ ",Æ¢<χMõ¶ÃrºÜMc ¼t­-‰Û&%žlºg gEVÊ'©ß$þÛL…"¹Æ²žÂÛZzÀ"ác˜ Štö(X·P¾¥Ã‹ÛGóø2>!ä>lì~f¯¬Ád®X°ééc">Ÿº #6±ÖÄ’ L±ƒôÀ(˜ÖµåÕ~ •—m 4÷'é×Á %œ'ÂënÈœ‡Ô*oè50„d;”¶—° Eç2ýëÐ9‚CH¬Éüi0é]nu÷éy<Ýc¿FM4tb1f36†íÊýtìõë*gd4:NéMZ¹HsÎ/4t…™Ó¢IçAIDVuoí­:,}e6 †âg˲ðݨ‰®YG§¿Õ~NÂKššÀÄnuGoÊpԙЬuRYmžÔNüÅÀ‘y^îj+¾íîïj΀þ°1kxK^òFúî…E\;‰3B&vÊDºŠ˜ái¤_Dd™g¬ë~w›™z‹Ü –Á±_Ý›àÃGm `éÞ{®¼µ5zÙËÒŽg5mßË'a#ä4cÔšO£þÛ£ŒËêyÐQölá>DZ,+ l(ÂfŸmô¸I/1( ñºT(¤ð|KÈERX^Qø™ÝJ1Ö*ÊF<0ÎYs»DîP·Ïæé<Ý$®ûÐœŠž‘Ðþ‘ÎØ–áÕA¼À!Í™uckC$o¡£Äþ““(F–½ùâ¾isJý‹KÃ9–Q‡f3¶(¹ ŒÜ¹Þ›ß¹ýú˜EÝÆ™”Kª­ýZK—±é‘ÖŃ¿… <Î «—,öο(˜œ ùcjÂdÿšÜÒôPÁù l£+hK¶"ž#ÜL+gh–§ åwÈ2‰ *rô[m.ס?Ë>ÐãP¿ùBrú Tšö{¬^c€Ã”T~Á§å3ß×$8òåž¼x”M^úìrª-­ÖXVb/UôÓ% |Ê‹6B?öfצÛþØ ·gËþ²µ^þ«Ñ`©™³òÒÄ脚²Ä"ÉËJô+ax™Eñ2 ¬p ÍAùºÉìÛ8¸†jiæßÑ-Rœ:k&ï%c7ƒçÑ^‚®²4WÜ’¢Ÿ~HÚ‘¢YêÈ|èB [ªîëÉK_©¹Õëjæ6¥½SQÃ2ëyŠÁB¨GuròŸ™E)š4\ÙLÜ,‰„Ü ÖêãÉP DöOd³žÂ7ˆ-œ®ÏÇ„k•°–«V:ü¨Ú•³'zS5JWt«ÄâÖº _àE’^ý†€”ra™€ÜÊࡲ@ÖöQs6ˆ,Qš‡O‘;”!,ƒ/ ÒAA´î÷h*ŠBvhDQ£Ÿ±+mëùT^™ØâS)óÃË 7!2éáµþþäêíìgô÷•¤Yï:wñ¦©šW ©!’¡Ÿ1c­CäÖµ™X®´Ü)ZÚPgw;Y1ðª-iÄÕ½Ò<`wZ~‹il»Ä‘¯±ƒ' ¹žºLSx:Ø4d•ñX'¶¤ÞN}`Ùú=SŒ¢ó@þvè@Vvžã¶ÙWbYÒJÁ¯ûÈ£U°~•ZªíÇ̃l|t¾ÿäu}VF±áÙÆ€‚žhpÙ9ùÐ ö}SðQÅsïU·4¢8m“öèÙä ¾ÍcÃÙ'•ÇÔÁ>ÎzÁ<‘/XɆ훿Þ üÍ'íZÞ2WØ·Fød•üþ„Ÿ6Ò<Ò:‘½„•õ¤vƒ¬¬ÍéJÿQX Gû+ûæqÐmîÕ< †¶ºûІ‚^=¿0ŽGûJLóxÐ E6Ë·;פU:9JTœ±¯BM­’[×çÙÌ$:v~çv`^`Ò8ÊGWjRê°#ÏBà„ Ž¼Ì—&=3ÀY€(ݼäªҥѢ5RqlYU~ƒý&»;ÒûÃ:o«Ú›#¦qÆëU]Jo8Wr>ù—ñnà ‚—Nk#ö¾R‘’‚JMnŠärߺy`rxIfÖ Sø‰^mr,JÒʚƦOU øàFó¨Y©`HÓO&Ql2¹"ÜO‹òmMµ@¿çój“`'¤„0lÁóA_CT1¯³ý—.Ë‚þ¦ƒ=¿®1wü¦²{ÔjÑEX¿?Oµ¼\¨'#„WªdšÈY­@L÷oj“ƒ…×Í&à>r1¥¶}Z>à¢û²º]~kYrÓ=`ie¨¤O)=iΙ” & Ï¿‡Æ8ç4âFzÎ×|Ï÷­·i"ó“ׯHbµ½Ï1îøÀ…­•©ì–^eȵ vžOÆ[E±×& ñÚ?¸kWyfëÁ«=„Èb:CdŒ\çªMúì/ÇZjÁ²–e“b0S!#™l–S¤˜œÕQÖÕV. *„Ò˜0Beš†ø÷bÌ ‡~òTÝ»jšŸÕ‡L¬•Ñ›1( K3¢&)¼K?vexUW¹²PçXQ7Öýªä-œݺЖŠ3¶I#í̇Ò|0GgCg~ŒÛÝ1„©iMcýÈC3ª÷ò"ï’¤2:Q^ygìxÝå(Tœ0QÚºZ¸–ÓUåÜUë={ËÄÍéDêÈ@¢íÄH™úctàš2(Ürøaby9ö­ñ«Üpr ðp”hÇ~⪭Ÿ†qÝêHâñÖkØøšoûŠ¡Ì´’î[ßDþíæ×‹%14™¹g¦›ó‹½8dÆAÃ+ëkÓÖ¸&ÚÃ0-­9›ÉLR{r¢Zó‰Ùà *ÞùTÓÕѦÌ(øä —cäº ‚ÊÓ${ëßÃ}ü7þuާ}‚U‹¢þ¢Í£ kYZѽAõžl*ÆÚ˜áCäTWkÛ„- !è Œ#=.ëçzh¶n9 +ßKŠ2Ü«ÖBV ä8/Qä’aºe Ï1)ý•'d_µpsSO€%º Ì+ ‰é,—Ŭ€"8µy¡Æ‹û,ޤÏù’­Ží ^[*JšÅÅ $ìÌ>LܦWùbá\8pÕ‘š®¯ö•­|›‹4¡l؆嘶Mç?«,$J‚^f0sn«œC¸^ý,1—0µ¤´h‘£°g’3«”ërTèE Bm)qßü‘ÛÇlÞ¼}yŽH«½È!tèì½l¯¿e Ô1k®E(}4:Ú±Ÿoh!´ØüÒ'4ÑÒ! <çiNÛ"n1b ø’,CœÜvUñt$ypKYY€ë¡é—:öæ’š¶†%šk-£¬`?=â[Éc,M³ßÂäTqì™ ‹¬üJÄ"ÌD¹8¦Ü͸w(V™2iYø™ Áx–b Cój*dùî6H_W ‰Ìö; šCÏÕœ[}½òZÖíè£À8|àÅ)|¸^¸g6þy²;¦·â0CåPÛÉ1¤î‘ êVˆ1D2äCw<ŸŸR„à¦Ø=©™€‘™­¢aØ÷¹¤ù¬ˆÉ£r^û|ê¤!ìE½x oËØ/lçVŒ`làbß§¥zÏaÍR1/°t` ¦'NÕ™_Äj— [œÈƒ$ŠV½]S®ÜI­`¿Û Ó^D@ÝÄYÃÁ‰e{Xõ DÛDY~QR¿¡bʨK&SjFF2ê´™÷±5O®ÕˆÚ×w „ÜÚVxó¤»úYlÀt7†|¼\ÓU÷N\˜+,›ƒ¾îÈkL¡3#fÔ%4à¨XéÇ¿a8!Vƒh·LÁ3æ’¤qIí’˜º}‡Âõ¿|žv×AKNÚ…wŸfj3<[Má Ÿ9¹„â8•´š¸;"î'T²ôH¼'K×ïŸÙ¾%øüàóµ¿G#?¦O—O6ˆ3~Š ¤›Û$˜^2;Êðµâ"ã— šˆi˜öÈú­Ò%sÛ#JV¶=èZ¯|PÐá˜~ÞÙt)J!Õ€G%|Ï=šìØrz$—¬œMœ¨hý¡žc„8+Vކœ»[fáÇì'.×5/:©"tØBMQÐC³'ïg~ ;…µÕUHîåB/å×}Ш΋^«ËSËX=Œ)]¨_ ¿ïÆTI)­ƒ„<)>Â7žöÇ[º„UŒV®Qv6¤zVWÎX{H_M§ÓZ.ØXlz$µ‡8‡Ç2fįfR³œÖWð®Õ.ýqVïý0Øz“½¸m ™ZYIƒÉC#9Ø-ðB )ÙŸhšîÍÓó°iù’qöãÖÔ,¸V„&5R›½Üº‹d¹yòÔû¸Û‡:øá¬§¬)³ßÞÂKÏJ¼¢Ï}ÎÉ.Û);=¦J#ž–ÈË¿ÃTJú ë«ð°½n0»k:~*=òÓz "¯oýYèï~'²=ÀÙ2üH9:Ñ÷¢-þ@&+Š&¢”W&™XÄ8o®±Ö'ÞõáZéµÈÙgh×`1qšÝ¥Tæ]ÌÆ·o¸QÎ,5N‘Ÿ®!öåaGuijuTíå»vDkžd¼,"°2m§¾¤øˆ(´:&aåj™¤L~®a„„˜sN©ú’øÒGçös@€q?Bê€V®“»×¥â|[Ð4k]³íŠõy}2·-J“¦F’tó c†.¯KyhC4ZaØ$üµeH“ËÐM…ðT(²íö‡,m¿€×ޝ$oì‘Tðù¤jèýýÉ:5|+re>Ké˜-eç⿨FÈ¥wQ·…د(Ÿ.[5—ñq±?ôwlOUGûŸ§GŸfìüuÒ*ãêT‰muwl¨·Ð+£ø(ˆ-¨$µù¹ûõy}Óÿ»%e6âÝG£i»o;Ø=ä dIx´ÑCô ]éþµŸ;5'Ä{7@Ò¡µññ¶¿tÚ"¥ÜµRU-üæú“Iˆv„¡$=׃eqÓe…Wc °ÜÍĈz õü¾’+$‹³mSîøAÛ âZwQÃLŸºJ ^ÿå<$§¯²AÕt«GÆ<„åöåZí>Í¸ËØhF¯–4 QURå#£Ûb”#*Æ+­¼GbðMî+"ˆYu#²î„‰5sKv½îFå#>å·§ ô˜Ìž¾«HegjÂІ;<…×÷&Ë4gêRíGåqDþÄVåÌñ.äCíb¸–öÉÕ9U& gœÓÔ¼Z†ëø½ÂœO9¦'0r‘ç÷ôFÒîÈÜë”»}Ñ™\ =LçH™íTêiß>’ ›¾ÔAÛ畞Q†F}JèÉ$Ø\ËK¤`üB5 EÆâ‹ÿ’Åè®§Õ{K°[ÁM’Ý„Y%'·©O.|Ð-#XW„´‰;— áµ}ü_fÏçîÀ.z®¯¦bsG(ÌR©W²âK­×޲˜Ä:VÙ!qÂye¼úGdï—ÄcÁ`B»Úl&ûRZÎhÒÒ9Ù˜œB/úéj,ÝQñÄmÕÁ¥ˆ¿ç¤wEXOa<Ï0°ñ†1춆»æÞ£9,ÒyÍXáV;v6Ÿ{°–d;)묊ÉÄ»':sÅ`Lð·˜LfIlZ5í¨¬D¯EÚR,Oµ$¹çMÚ?“‰gQV9/;ÝÁ»¡cÒ«_8W 9då¿qx²£%ýÜy¯&ø³cy~Ô %&Îlƒ>\>-‡!špÞ’ÏÒj†rDÓ¡-ÒÙ(>]qg§!z½Ï†fÙL¨o•yÐJJ£_>”/%0áôÚUµÓ}¤d”Ö’%Ýl\SbWóœOÖo6AS/RïÚù‡®æV‡Õ”H*N­ 9%IdÆ|TýZÒ|7MåJ†±ÆVÑ.¬#ð“Ü’¶¬á zrõSjcÁÀŒ´Ú‚8½ˆ!@_€úr5íÛIÁ=àzØ#e2»¾&(±òd‰éüº•¹›¾UöÆW_}„Œ|]5xùÕm[]È.¬Z¨oi¿a¡7£Æå‹·\S¥ùã¡m˜5+…º´•îê…œ¤²zÖØð«G$°¦‘²µ˜Hší ˜(*Õ `7†xFÍÑo—õ ý\£ °PtÐ&`V€®„>g¯õv€IzåÒ‚%g{ë©ça‘ãý? îU¹ü%ÿ€Ôø8Õ-iîʓѯ¥tAϺû´U"çr1ŠËQ…v§kî§6ÿûûƒŒËÝ¢ !hŽ)®ÀþöbV4rÁ'Õ>öd_{¯3«á+[@aîÒC¸ô®e4œ_†Úb6:+apqt $´¿Íö'w³û®íQ¦ÞŠŽÂ>ÄYï=ŸÓTäC)5F4eX©l› o-OÓÛC‰xO–˜®¼ÌÖig~§u~œ£ëXêíi# QÖºôñêuÞBbÜÐcÀZ€íqJ\f¦—>Œ@ª#ñms4Å;{rãè qÍXœ@†*g/úÀ7ˆ¬êzÑå"ÛØ»’6ö%‰ JH|ªì™Ê+•HÉ/3»¯MUxøkgÖ£ÇbØ][‹ƒ•)8¿H£qÓÀG'M_íMY¢„I“ƒûaœá¥^ø—ÎX öH¤¨ê²·lpçE-.²˜h~çÊ)3Ç1¸¢rqÂM¹2#ͨøqˆáÏÕ#_ΣÜΙÀPgmc@±ù‡ T'a»ðŽO: :GC¾sLgn•Ü ˆ=ư5üüÚ-+š‰ðûNg¤SÔ~ËòƒTŸ_¥‰÷‚cõ1.FO„5âO€rT1×¾þ;åÔ¢;Ød!Uö#‘>Þ„·^BŽULr,ªwzøò>k”vRä;ª‚iè3 KºI+¤cŒÖSç´ãê ›±X3ǨDµÍx² h^t™¿IŒës¤ÐÄËu®{Bh?»Or¤gR¥ã 13Òƒ.÷ïÚž‹bMèÈûü†£‚ãiÜË÷Îõ)¨ƒù¾ §Eýí×ÛMÈÄàÊ+®<_¢»ø&£ò•2R 5™³²B“ÊÏ#µ€ráìÅ„]ÆÑbͨ%†ä¡»ßÍp?+&@[I`û?ÔE¡ò»\†šÔ`ÖMCïÞߌûZ"]\Âû)K J÷D»¦¶ŒkºäìëŸGI¶(‰ý˜"B؃_Ñ4擉Óï‡^k;n¾!,2A5¢ÃBÞ¡tpç¶h4!øÉQ0ú¦-Ê}*r&ç<Ͼ\¾‹*ñ2©äj*øâŸõ°©õ*ÊKw¿ÜÓu4éclžPÏìƒïÒœ ç†c¼îÌü¨:މ¨yÓ‹éõV¾¬DÓ¸ *‡7 xÈšëqðê¸féU*Šaè F2ÝžÝ ‘‰©0m~ÀÈÝy© }>ßÍ×)¾@çÒ–¼0 jã’¸èVë:KÈ%fèpm<òI ¾@Iéãz†W¤±ƒcÝèÇ^ó/Î);›hð‚±ÕN ±W#G°2ƒãÌê›Çqƒ„Þ‹æ#u§Îæ?J¯ ´ÏYº&q”+TRáÿX,Ù ÿù͸Kf5s2'œqTZó~÷QBwÔl‚¡Ò×]#"ø#JC6Ëç bNë Æež*ªeÔì¾ÏvqkìbkTTGêGqðžW'ÕñydL$Uò?í[ÚQO¿’Ï…U)D»ùõ,xu˜‘:öžó‰ràŠüÒ=®Ù¬SGÍê®U[±¶®~„4ck’Ï¡2²}¥_I&5ó§ò°çó…¬ãæø¼äNä0ÎÞËl>]v§jËu?Õ¯Ó¨²²q!>¸¯„‚ 0ž  ¸^Ü—Wŧÿ°8 Ã,Fwåž¶sæS Ÿú>ÿ5}”)Ѿ6<+e¤FIüwüU·v^ü· dhÂG)WcI­±À)&z%(£ßM9áia¨aÃ$b)³€ÿ<Íq3º§&•»îKyØzý–%,`Žý¹=B¥LLF5¡‹-È E)™J‘=iýÕùÎ#Pi)u¨"Í;þcLËiŒ¬D¬&-–»Çkeg2³ƒRè꼃Øý>Ýå[ Ç‚G亽Ê~‚´Ûô÷¦~&/íßÑ«o·Ãù³”ëœ?Ë3u`[ Ñ^›—a¾óΟ!`4%â·óÞk ‡%¿4Ç5­y ˆÔ%›^‡ßõÜ*&ï¥ëÁã´êÏHHö E\¡š®ûèœ/NJóÌ”Û9ƒRZEÖØA üÒ7Ë;/׺M‡ª12º›wØ)’ ë…?a÷¶þKË)i“z¢Dýë´¾¶ ³ì'yT¬W»á(Š!ƒÙŒ jM‡ˆþ»ô{»í“æ“9o1À¯¨ÕƽÜAõ•Ð>ÃZˆŠÁR.8³ÇÑËÞaa~¼ çzN$¡ª_F]ÍןšZ 9>ÜQ·qD¾ÐDVq'.»ï¯Bt øÊüE˜7)/«cjúý<Íw:ÖÀ£ûVCKckOL£ [¨`/‘+=2ø/u‹a¬:>M–2WHZÜú/e‘—dØ’™ÔédOó½}—Œ‘AÌd©|°>ÇäÀh]õÏJßnŸeO?º²Ž‘9¹ 1€BÍ®ºo $E,©nKt.ñ?²Na“’U#®°Þ4É(²+¯uFTÁC8%™—>‘|ó+ãûFnQOC¯À^]×Ç£b¿¤66-ÑœsªaKÑòC³v(þkADL-Í}B |\nÿ>"—.šf+ UF`Ý'ÂÖz´tüAwÊxÎU7xE$¦tEjnþHø,—yg8U"G”ù¶v‘9ÀŠ\È ñ1GþüoYÞ1êÇÈLONÙÓ«m¡‘̞õš—Ï`$ß߀ºSv6P‘Aü+îh.ÖÞ"çÅ—ã°X;úäs—fÌ­U¿Øž¬ŸöÛ8^¼D`'=kÅi*ž ¦oÕÆ­dî,4gf?w…)B(0pɖ¿~9¬¥‡o)üæÎèñ:ýb˜¡öËY˜k$­èrÖ†wÛ¸åñŠ\©‘<`ðå±jžP à|ü”oár®»È’=yÉpl']ú„ýX|„èK.jiBç ]óûÑs€ûs£µPŠ2ÚfÝܨ˜'K =/çëð®¡ØÖ £¯µ/¦xví:èÕᲆËièdbf¯ÝÛHÃQ†p)m¢Z³@U×¼ZaçF 9Q@t¸ÔÀB›I~èä&¥Q°¯x:#ƒ,´¡ÊvæKê«2î*õiãƒF1±vÈ„ì«óï–<’ØS”¥&ŠÉ©ø']iµ†ôX4\âO¿ÈoIãi ý+‚gÀø^¨œ€R+Ï$J¿’ÄsËnµ©ÐäÁDžÃ¹¹ÌZ³Næ“v?¥f©I¿-‚4zÓ³%ó³¾zísg€$P¸k7«ú¦l¤œ5bd™=imm(wÀ¯úMâIF6J§ çÔØ×[‚§¿M,—¬À6X{¦‘°´H2ÜŽÖ¸š#ÎmŸæémÑ2à5(Nƒi¼× å´"Å?ö‰¤4Ú1#ªµ ’C¢¢NŸ«…=U8Þ¬Òµ·µÞ ÉWˆ ÀC1J±LŠƒttSz+ðwTŠ‹b. ”bˆ +.ÝêÉqZ¯œ«´~këàE´œ‹øòB6>r36ª ò<9®áoaw¹Ö£ÞÙ¹möþê¥Ã*?Âù1@ä#í;øMs:¿4È’ãOÙôl.À•ËÊRÑ[…°‡áá2Üv6c3̦±¸ÒRÒŽ§eõÄ~}ØÝŒ¥Ô‹å”¦õÑO‰¼®E,¦Î;Ñüê${s¦þ›Oà,gÉzj‹pí¦¡ûËý¹Ó=/T_u”O| b|€¾A–ÐóA¨lÌw1CJ\ø•º(“ޝõÌ\~èr8ç!°½U¢ûåÎÐR•dª.t&¿~ýYÍÉ §8hÛ ­ˆDÍ ÙËÕ^i0‰Éwl»i‘}irhk€*ë?ZÛZ´µV¾žðŒÏh‘ÎçÙ_>‹E"›Ã™;ž<ÓˆVü1µmë«ýy¿› ·4Zºùõ'xAKÖ ÷Ópë#FfÜ—g²æUzo˜.%ÿOþúÀ«TBnYÂKA ToOþ}s]Œbä$‚0Úšý“œÑKŒ}/ÕCéJ™  wó¬)²Æ !“¬Ã±·{u&B7/Äž|©½ßáCƒ–îI–‡g4=„Ò]ß‹4 c“S]¹NZªÛ‡DG<—¥5î'±$ÖrÆóg„ð˜±hèže?w´x¶ZÙFKâ¤;Y×Ѽ/šãPâ‰$äÞ6 õ¡Û£ÑàµYS­‚ú$èƒ;ó—|Š#4刔°ç¨ÊêÀ1PVÙç-q¤ò½tíwŸ%j½Ù…­JGýPÑÑ™2s'¹²ö#Íq{C“Œ czìSF´l§«“Çÿ«œÙ!\¬™Né÷ˆˆqMÖðmR[š´Êt »A‹«è$˜h9ûaù:Á]¶æ_… Ïõ¿Nª™T‹!EãºGY-ub’a\u$–£ 胦(4— sP WºŽï½· œA/9ê¶…º°:|2í¦Ñ”§(K¿ÆË{Çek[»[62sÀçÐÆsª¥#¬ŽÒ™º"…­¦sW 1èö6±Ñby#N¸¡¾ÙSÌQüü!1¾Ç>ì2š#LTZãíUÚÑDt`Ñ[ˆ.‹_~áAoJ•¨ÒÒã­Ú´h%Ñj¿ŸÃô IbÇ€W®Œ´¼¹¤N¥îõöjøÑ˜ÐåÅ?ºòQÎr8I§Ìv¨jO“X ²w•îèQŒŒUÄÄh åNÁõop —‰&à,_eE8?%%a6ÓTÍg°ÄÀþhÏÖ}÷7ܬÃý»FñpÈ\A» »gÇø9§J“•Èq(ç5±s-sDÕÔܪ *ÏÁ]¶(gE¼†D\Œ<š1ÿ·|(‘КÀCÄî ’ÍѸ×ð6]1qÈ#n ªiŽ×uÅ,¥üÑP†È„Oçs*aÌToͼ"·5Å»8ßNœO7´øfjif«³:ÕÀ&e3ðoZqî¶ö”¡f ê*~z£Ø´aZÉσ[úŸ¤%VEoy ã.d”«±:¯ÉgæÈ€Å©ÛrÕ[z=iZ>Ùßaj„‘_3\Åÿ'g+G>'ÆS]¡>k—ßû‹: “aÈ€áºÓ—‚­‰Ë£¨²!=ݪþ.vJhc~Úügpõ$ýU‰J à&[¶yHÚ:æ â>Nç/°Jî(8”JâÛ Á*j#º:é°&løDnæõ4”ؼXÿ· Ðl~Pž4Ië a%&ì¬y*¹‡lúcš(”˜êZ jÕ4æe~« ŠO>°|l#Öø’]¿ïFÁñŸBÿ²CŽ6åK ðñŸ@p¼&žŠêÓ·~ó,C_Õ›âÃö‰0kæ:è&§Rq]UgìµÂ’—`í‹ ¼TXž”€5û±.ÊF(§n†e»ùípÅh+$=jà6ÄÝ ï_½OŽ  4þx§ìÌΫ(bM 0‹ý¬í{bLÔåAEìâcz•+~f©©4—d><É£bKHâzYW¤°ÞËVÀ*O´p|lÿs·£dÇB.²¦éJ KYœ i rÁQæ¦ïúœ¹+|ÌqRãÊåÛ–ù »—âpœ½ëÒV \¬U©ÑÓû Äš‘™Æð+ø¢ÓË7ÖH8r{“4k©a¾MŠÂPÃôBå¯:Pèó¡²·m¤ú後¹,\gç|ýZX“0„’ÈÙ™™c6+¼ )rO0e$ºHVÓwgN!i7h2±`ú¯+Š Îþ6³šŸ±H¼(ÏÕALV®7á°dÈÍ›²¡7`"^í êÅ ¾ {pŽP ;ÐÀ¤ÙØÿj´¿Pç÷ИºFLj"S‰“løƒñ$Å›™”^õúô#N¤âT¾•½~èdts·±îƒ_šwZyPm6À¿ZÔhO¬âˆF&ôfÔð M wÒ ·„B¥Ù!¸zιPœ P¤~ fsÅÕ—Á¡W%±·Šín°~®!x›ÊQg4üŸ„?ûâý endstream endobj 520 0 obj << /Type /FontDescriptor /FontName /JJWTOW+CMBX12 /Flags 4 /FontBBox [-53 -251 1139 750] /Ascent 694 /CapHeight 686 /Descent -194 /ItalicAngle 0 /StemV 109 /XHeight 444 /CharSet (/A/B/C/D/E/F/G/H/I/L/M/O/P/Q/R/S/T/U/V/W/a/acute/b/c/colon/comma/d/e/eight/f/fi/five/four/g/h/i/k/l/m/n/nine/o/one/p/parenleft/parenright/period/q/question/quoteright/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) /FontFile 519 0 R >> endobj 521 0 obj << /Length1 1499 /Length2 6439 /Length3 0 /Length 7435 /Filter /FlateDecode >> stream xÚµT”k6L7H‡ Cw§t·0  1ÃÐ%Ý!­t#݈҈’ Ò‚”H}£ÇsÞ÷¼ÿ¿Ö÷­g­yžûÚ×Þû¾î½÷=¬Lz†¼ öp;ˆ*†äò H”´UÌ€!>AVV#(Òò7NÀjAxBá0Éÿb(! $ S!QDm8 ðÐËE%b’A‰¿‰p„$@ä µhóÂaOV%¸»êè„DåùûÀæ%$Äx~»Ü (hƒN7TF0È`C!H¿…àvB"Ý%ùù}||ø@nž|p„£,'ÀŠt@O0êŽôäó„ºþÒÈÿ+ ê˜U`öJp77 éIðkÊPŒ:w?þ?ÅuÁ}`¯ 0{‡_2ì½ÜùaP/ˆ†ò "øæAD$ÅDEÄìÄÿ+‘Ÿ;ä·ø Fi p‡»P2 APêEà ò†/HPÀþ½"öP0`q„ÂþCþZ£ê€ú,Píüzþù²Fu˜=æê÷úïó›é«jisÿ‘üQQî àð Jˆ €Â"Â11A@пýsËÿê ¶÷_!5`p€Ä_*PÇ÷·ï?­Áñgn8ÿΠG54ÀñŸþ·£~€ÿÏSðÛåÿ¯ùEù¿öÿÿîHÕËÕõ·ã/ÂÿÇrƒºúýa Ú ‰m8jD`ÿK5…ü5ÑÚ{¨—ÛÿZ5 Ô(À]ÿ9H¨§*Ôb¯E‚þê£¿ë€ ï …AôàžÐ_w€( ð?6ÔØ]P÷Š'ªZ¿MÔTý;¥ ·ÿ5~‚"¢ò#@µQsjñýÝÞ~>‰r äà‚_5ðÛ!@`І2üÆEÿ`®¤ÔÑñ‹ˆø[ÿà¨~ûÿqøïPH÷ßø¿ööB Pãý»ÇPâþ^ÿ¾KP{‚€ fá`©禈Î ÷|x7Æe>°n˜fsò, º¼~’àfpÖç†}Fœ)d ÷“.®©pœÊd¼ØíhÁ~™¦ÿê2ðÊæ‰ÁäÆ+‚ù ê7ïKwšéñïóÉo^{š„º`v ÷á&ÚK* °XLº˜ñ_ª1ôì¥{@gAKyJþn’-@q+ó!Í\@eÙrÉ4S’ƒû­šœå™Q(ÒÅ+—]„Z—Hü>fÉW§8¬˜±§H#~gÇ;T“ -ùîS°{ï´FIÛ^÷>f›•¹Q‹w ±Û0 GEDì¥Zðç""î0!ËÁ²Ègb BƒyÔ’l^:EÖŠëø!d„¥ã7Þ—ýä_b0Ä¢i¨êòc»Xp*a”»„¦ùW?å+3óòöyöš8¡b!ê‡#Ûl|ñÕ%·r­©BÙàÊçéf†}úõ¡½<_©VkD™|é :îmRY‘nFÝÊãý`‡Ÿ…#vÅç/¼ÓUµOŠ„üøÒΜ\ó;uÇç™wÍ—¡éè*`ëîÍë] 44"·‡f.wñ]°’(g¶E€TÊù‰1Ë´o,GMáî®k8ö¿IQMù„­J›^ëš-’âWR»?6ˆÀùDíS44·*Ÿ† ÎzήA5¹Ÿþ³‡¼Ø¯=´qsÙÖK£„L!c׾NJ{ ËÜHfa½¢åÔÒ«¯¤ŽyaWa³Gk3á™þyNq?¼ËÙršJ½iºÙ$R;ÕÙN¼lL7d>yj¡¸ñŒãÇtµÌ!—·3´ÕR_­”³ïñ,‚o‰+þ“Ý›ì#ŒÎ ²$Vª8³'£þçê‘Ïüd?@`µÜ[àãoôuÊ!Å=ýt°*î/{w³ëŽÄ¹Îd®7ïÇïÞ%+œWFF%Ê\ô¯4´‚ Ú<î7|©üdç;'{~FïEÔ•RǶ-9¾+ãj=ð÷t.ÙÞÞ½Sª’_ ýT±o™¬ð(óýõqÌeÿ ƒ1©·GÛ‰Ré$ÌoD9Ÿ7kÞ“Sb“•rtâìž!Ru|×€é?g\ê•“§Ù<ŒÊã `”þˆ“˜s/;Š3hFïÍh4¥ ÛóF{†L7ðÕg–5 §¦¶­ Õ3ˆÆ%oŒa3}þQ#lýë»À€20cŒƒŸw¢°@Ýeÿ®µ·n´ÜÑR¼ùû؃:vt+‰EŸáËH½:L÷äãì—¶;]ÐÚ=,ŽuÁQl:t‡²âïõ #O,åž„\ŒÜe…|ÓùÄ9È‹<å,}T­¢Áñh1UÛòÎgÀT׋]#‡JËîÝž{£þKÛ…‹„R¥YÁºócð¥ÁÒ!ì²Á†ZŒ ‡kš ïQX­Ñ£‘¢ãÂ#‡—º”¥¦5„‘¤ÝBšKŽ_›¡^‡[óiÙ{g:‘)s?ÈkÊÏ=*ó†|£³ÅÜÉocC¤WÏ+¬ÛÞyç×ͺáZœ”åÔ3^Êt™š8™ßa3¸ ¨e ù´Ø¹Å¾«ƒ¥nL¶K,t)µ §ýø|r o»á†º€¦÷ùݱÕ]ö^ù:àªU¡Ö’CmÍ¥”Ç6g—6 ¯Õ@KF= ˜vè#qc•Šë¥EÄö³]8‚Ï2ëÖe/bðbÇ5kÄV±²ç’Sð&çiúŒH¥Þ6líÕr[ §(s¡ÝÏèÁó–+lFýåcFšÊaž¿b›ʨœ\>²ÔÚØ¿¨>;|Äp¥Çiò®%¸H‘'(`aMot™8£$H ‘’‘ÿ ¶ ûY/JHWp:ðȣBZØú3Œ{äký± ‰"ñøK1N¨ËH_*MѧéWýúׇ®K’4uøåöûÓ~ß Ç6º%ÝXbÛ”_´5™zD8ÓõïÏ ¡Áž$qäT×5>щ‰%ͺ¥]Mvêb"¡9Ó£´Vh?üdMÍ  ˜ñ[ÊÆPE£»b–$¨›Z.Þ |Ë»cI ›õŒ„ä¯Zó*oðe~ÏÎ#Ùl2•ä¯åiX+Ïg¿©®b/NŽx2þíLY-Úçµþƒ©Çîè÷ªf"zpE¥o¿þhÆ=dVÞîqœÉR®Pç±ø¹ÅëBWeÍóºÂ0îšår×½ŸØi¨=›ŠìŽíî“t ©6#Óî[Ü#) ã ¯Fâû&¼Þ:WrWÙªƒŸ¬{S2çrO`2m:®%aÒ»’ÒJ±ºlw³„%<óÞcÆ{ÁúIûy?–Bªèl”N@Hä[Ö—Ö‰´Ê—M¶R›²»Í›%o6Û˜r‹” ¡[óÙp‡‰!Gš8WZ/I¸P¡_&½ñáRñÜ¡¨›ºO {=m%Ö¡Z~5ç©÷ü—š¸‹ëzgBÅ&ëð2ÊC>¿ÐSS¡K|‘€˜„·˜Ñ(¤îmÏ™_YW'Ù2AGWM °;Çh5&†<Þõ¢‹ƒ_ø†@n×X)d'§¾ìs…(õ|Íœva.y"ÄH¹o’ç20žãIšY—¾Ç"Ü/Œg›à«üæð5:\Reù‰!@;B”E2:+ªî™µÏ×åüÓ%…ªü vgë"™ËKMáìú…™ÒÆqÉQmÝiЛ)n³a˵r;ž%z7ÐWGm꘨D–E\ƒõHé«Î˜ðÀz[†‘÷r”ÔñHï#Õ­bŸùq„ ç› zÆX†YþuÞ5L]ïFÌA²>y¿çñaë—,·ès“o/ŽÑ}ƒ£о1á–øK[ Â“øvCŠ/ïê·­çô7°NÕÄZ)B5¹tXƒwéIªl¦ØìòÒ÷×aî RÒ†^ÿlúH‡S”ß# daLzÑq‚˜p5Ý}LÝùÒT€ûZêqÃe~³œz¢M{ÀÊÐþ&¦Ó½‚7Y‹,®Ð–o[~Íi4 xnŸ¥[t9qP3tÐ@áþ{JÁéëæÌTÈЧgaÇb“5Ö#'‰Ÿ¯ÌQ%$lXãФmèãÁT=>—lP/šOu5'VÍT7 9 ‚Þûän\/d†¥ùÚÉuÄËïjÍèþûh±¦h†@Ëõ×møfÌ•dFG¨ZJÚ÷¼hd‚thç‡Íí×Ô{ka–Ó‘gôX‘­?N¡óãGÛ^<Þ1ñ˜…›ú[€¿‹1m=5¢~ÙѬӊ§’Z•4Châþ4ewÜíø„wu´0#:ñÞ:JtËtB­DÊ u£¾ÀZy1sz£éâ„«]'Qi¹ƒxÞˆ8I‚•‘¶•”±M߆VVÈࡳ5|!Ò‘¾ø5çàýWiàžNgügŽéD¡RPn?‡Š' e4"´CûÐŽÌ—‡Ìû›¯ˆ¼Jòìyžxê}¬tàt<ÃPÓÕô?Í x¼¾ÙÛoXüè0ýt*•‡Ñ`Æ!e¯íF¥ß*§î¶ŠÞÀìýÜ8kTJr㛥þ‘Á‡ ‰ùû.höÝQ>½#Ö_¡>³t_Äîõº®Yì³uì?¶ŽöÊÕˆ…•4(f]íd~›óéTðòz+`4¨l-öòvwøÐ~u/ í¢oŠnÍIõ=\Û"ªú1”ƒ¢èœÛЇ†ØÝÂZ¼½g ¸£Öìj£rwoþª÷Åøc5 –{sÓûúÛÈwjŸÉX›‹‘så&Í"ÂõoL¦ú‹"ƒ§UgŽè+öÚ ½`w¹^é5Zºï'aä®ÄÙ}ЍÞV|é‹uBJt&4pÒuÆþIyauž=¦èö!Éö§Î#y3â …´¶~ø >'—2¸MÞ‚ŸaœLé¾ýN%ìþ­õr*¾—!´º°°£ôìö+šõOŠ;//,v­z0©ª#EœÂòmQwèTJ #¨ìQ úTõÇa,@[ÛÝÅR¸§‚D´Ìrƒ;Ö¶6ÔÏ-´¸âz èVÛã'>Ù¹œ¡÷Ã%X% ÉhŽsì# EC¦éÌå‚¢¸×òµ†Í+¾ä'¼Ù"aìr87ݽš€4ѹUïó¨òÛ¯gÓÇMÓ3«‹Ý•ëw&Ê5 ;Ë$Øt%ÐmqµãP5S#ûù¹q_¸obH‚‡Öd])ÝØ”Ji'ðn¸TÏ0†xØA6Þ{¦Uò¦H4‹ékOúÀ …®zDaµ4kèdœ…TÒù`ƒ EŒ°¬W´õÎ}óõÞ‰GÞôˆ–m9ì³&S“ þÀÖrßGyz Ûã3·Ÿƒk6äkæ1b{!S oŸØZ„¯¨Ø2e8 í©÷ ¯æÍ±OB4 ˆm«C]ò¸Û«—éV—IÉœW;Äá+¯Ôuôp<ÈcSÈ:NàO…ìo¯”\0'|ÅÐÁ;Â]zøíã<ßöÑ16æÉÊ£ÜòÌ»ñ ŸFža'wÊ)•ó¸q‹–=wLkšƒWzçhÙë`7ý¢F†Oµ#íq» ÎsÁÕײu~‚ö±2X/ÂÇé^ßÉ8Â*‚ìïÎ_}ï@’ç’æ’k]ßd:MNáÛó+°ÖsJ¢Ñ™¨žR¼óx<ðmaNáxÐÔ Ôb0ô…?ž„|§àÄÆlx~|ýU÷.‹]á³»„‚{ô®­9®¬GÀô»™Z§¨ý·˜ón ÒTâž#êjqîEô-^XúéÑÏ\£ŽÅÃûßl¢#ûÅónN²[ÂJa~Tº%’ºë7ÓrÆIéU!)ÝBþRªÐj)VEP ¿ qïÊ„r;¼‰é¾îº>{üH£Öø™|6Ñóy>&c߉ïÁw Î2Æ2ãeÊ›šåŸSÙò½$¶/±Æmá7»Œm÷5Ð 0`)TïÖ´BOWÛR]“0uîÄ" Äó&—Ì¿#ü$ââåvÀN ù™L?#Á”æX_"uH»>ý—’Ÿ.yÜéÁ.ÈÊ´jû™ÉñÒo†‰:ùºüÑ—…]L­Š6B ˆÐ‚³w´ÿ‰SÜÔý™m‰íöôº¸Í¬{b³§Jæg8è‰Í;Þéö­TIò0µ§^SF*=àúèd©ÚÏŠ.œ¸¥uÒÍÂ]ê—–)ÊkþÛEë¶ó¯†Mäø õ÷ŽÛ£)Ð*7ÓTÁϤ£vÎ|©5¡EüHžœ²v:ÿ¸úùÙSOèn[q}G´dY(w£ª‹øG3£@×üHô²˜p§Öö·¬: —,W¨²Z«ÈcuR³)¶7ž/žÐú¼å:ú‘U”Ú?º.uogÝ“£6‘EOq¡à×E²Æ=L~5€?@ë5‰vF²Ì'yut’ó)<œø– ²¶áÉàY¯RúfCô.ƒëéÞNŽw:W™‹5žÈšò¥èf¢\ï¦ÐJÀ'Öö‰z•ãÊV¨Émoá­ó›•õéz%á :¾–ÏοM<‡„éÍ}Ò³˜âNx—å(ˆ/÷ˆÙû§½ÈÓÚ?Bª؉è]åùððåu%³8¾Â©ŽL¸™P•\è=À<¾–ô¢P49—Ý×ÝÈ,ócê#´uåhäŠP[»I_’!¶Ûößñœž(í*Í4—¯Nl ˆ ¸R<}0’5]!Í—´ß¶¶2$“.µNk Î×UX_2û\{©¦Û{4–d‚UñR† ÍÅ[v"^¶z„&,CÍXét|±œ!üÝÇF¦~jã>}Æ|¦áýËø<ùjRŠmbݵS6™ò<ëwR¶j sŠž›c»¡–Í»Žj+¦óÊo£'ßÎá}“KÎð¸Ëý6híų̈d"øYås_‰%ñ†’ËÀõwÌ&|'¾ž¦ÁA®¨ô» ^N†Ï24!gœñ´/ë×ÜÎýñ¥¾’û\¨_[š¸‡Ñ«’Jž }”"ó2u"ó½­åÝÁ#”L#/~M8üÓœªÿ)IQµl²A£Î0þwÈs/†]ÝÉ ‚<›ÂQ–bGé6¡Íò2FÆÆ$‚RÉÒˆÅô{í+ÍÞA\Šªåà·üœ¶cŧ‹ŒÒLq%Њi]û¼dz“5P¥œ¸46¼òŽÊ ¦ÀÑ»gÝÂ;Bý›9ì‘™–!Iœ6jëê:Šò¾ïH ~ÛŒc.ð5¡½(VÁÜûíBû¥Amôã¨æÖ'ÉXe’‹U^T¼ÇŒ˜æ.`¼À½Šy…·Q"ñÞW‡Dn²%cO6æÍS˜Ë‡âôÇÓ€ês4U}hùvÒ9s‹ô覙‹ü½Ã°býÙØ¹|¾“xUÒ 4]1ÅmÒ´œg-Þû´žÆÒÍö’ÛòdçA‹ýKdWo­üÞ£Sl%½W&uâÞ\;Ü5æàÑKYùÌð’öJw‡ÄW@º9È>’¸»'/¼º™·6ë¦ ÷Ú‘—­ åOŒ'ƒŠÔ:î^R QíKRé„v§|2sÞämúIcV‡…W/?Ï½ÊÆp¡/‘$»8q{ã¸Q²ŒÇ1*•Ò…žh^ká:îé’q㕇GI%æÉ®¬’E ôØm$Ó̤p¬£~:Мpý³Ÿ^/­ð‡Ïݤ}tcA“ØÕ®Â¯}ŽÎ¹þ êÅ„N1Atƒ%ü³íxØ£ÏÞIJH-Ö“®P3øMëê;™ýtTf?"äNm^@L8¤mv3Òü“ aS endstream endobj 522 0 obj << /Type /FontDescriptor /FontName /XPUFLM+CMEX10 /Flags 4 /FontBBox [-24 -2960 1454 772] /Ascent 40 /CapHeight 0 /Descent -600 /ItalicAngle 0 /StemV 47 /XHeight 431 /CharSet (/braceex/braceleftbigg/braceleftbt/braceleftmid/bracelefttp) /FontFile 521 0 R >> endobj 523 0 obj << /Length1 1738 /Length2 9834 /Length3 0 /Length 10939 /Filter /FlateDecode >> stream xÚ·P›ë.Œ»JÑ´H!xqww).‚Hp(îRÜÝ[(îŽh‘âZ¤8-î\ºåì}ÎÿÏÜ;™!ß³ì}Ö»žõM £RÕ`³€˜¤!0vV6~€„’’;€“•ƒŽN ³ýmÇ Ó9CÁþEH8ƒLaO6ISØS Ä ïb`ç°óð³¿ágcp°±ñýqæHšº‚-J¬yˆŠA'qôp[YÞÎùûÀ`Î`çã{óút€˜=ÈlnêP2…YƒìŸN47µh@ÌÁ ˜Ç•`´†Áù@777VS{(+ÄÙJ˜ñ5À ³¨ƒ  gWàwËeS{Ð_­±bÐ4­ÁÐ?K˜›©3ðd°›ƒ O). gÀÓé 9E€Š#ÈáÏ`Å?^þº;+ûÊý•ý»ØádSssˆ½£©ƒØÁ ` ¶T¤Yaî°×S‹ß¦vPÈS¾©«)ØÎÔì)àê¦i15€éS‡õ5w; ¬P°Ýï¿Ë<]³”ƒ…ÄÞäƒbüæ' v™?Ý»ð¯áÚ:@ܼþF–` ËßmX¸8µÀN. 9É¿bžLÿج@07ïN^nÈ r7·þ>@ÓÃô‡“ý·ù©/Gˆ#Àò© Øôô…á5u`Î. ¯;þa°³,Àæ0€È ì€ñOõ'3ÈòOü4g°;@ŸíI~ì¶ßŸÿ<>)Ìâ`çñOø#*ªk©‰i1ÿÕòœââw€ '€…ƒ› ÀÎÆÅ xóôàóßuþswÿ‡UÕü»U”s°„~ñ»‹§ëû»׿¤Áð×Þ0þûeÈ“ A†ôoÀÆÍfþô‡ýÿy þHùÿÿï*ÿWýÿ/#i;»?ü üü¦ö`;¿"ží{Z%ÈÓŠ8üo¨èÏVY€]ìÿ×+3}Z1«'¡³°s±²qýiC¥Áî U0ÌÜúO1ý=§3ìÀ UüûÅó”ÅÆö?¾§Ý3·}z¹@Ÿfö§Ëú´ˆ°?ÆûƒžVí¿yH9˜C,~ï$7ÀÔÙÙÔãIOˆàÅþ´¼ ÷?4²:@`O)€§ž}–gŒßƒæ{šþ6ý‰x@³hþÄý=mè?Ñ¿ù-þÙ@п hù/ÈZÿ r€àAÐæ_ð‰–í¿à/»Á'*öÿÀ'áþŸh@þŸh8þÓÅS%Ç'5BþÅ›ý‰™ó¿à3è¿à3Ø?ð)ÿIðÝÇÓñîÀÿšŒ¹‹³óÓèþX©§±ýÿxu‚@î sŒùˆ¹@MMPëU•™ËÖ˜ òqê•.ËX¡¬OjÒx=^#+sAá£ô|/»´‘M‡²¸ÓUöÊì©×f-e× ¥ôŽ¥YìÌãüt‚×%9õ n\žN²øKþç>8UŠH¼Nt «> :\ïW5=s nô„¥Òoäƒ[•Û;«J3‰Èù´¾«ÃšÍ5·¸Ïˆ_å|·¸ež¢œN­ Ø~ïV‰·604¸„ßKÑé/ï°õ“6†/%0H.É…Z©½”s—S⺟þÌËL†@tߢ¯l•1ùªFùÄzódߊ!±óµI¢eûç5¾ã¡xªsnÁv„Åbv(%bã€pÂ%T»' ,Û½òé;…­|h°‚ÇÂtÏÄÚ‹BŠœþxÃk¥x¡‡òÍŸzº¶hWË„–WUÉø›RÌD™Œ{>–ùý´vYK ÁÓ:ú¼©Ö­šÂÅK|A-~ºøœœØ®àÔ -`ýÔ"½ /O®‡üÓövqú§ÊH‡ègQžkµKÞé…y7ÇìÀ/uæiÕQžnöëÞ•î놊ö"ŸOž­ö܇k³ø1Q~eö‡½Žˆ hbÖ–pêO‹½aç/Ëb-àJ•sËnÎü‰Fû!­pœ®¥þQ7ûž÷ûée Ç:OäªÏ´';¬xòû0„ç_?þnIQñ“ç²c¹Wçl˜if"ôjgÎ'jÙ|Ƈ¿ vÙWJÜTŵöa!XdˆÁ T ÜÕ*¶vÖœÉ8UM6}ˆÕZ*äÆÊ÷áGæþ§éi¦¥~»1å£Ù#ÄøùOqríÂÕ›þ€aÔ†jÊC„͆¬Œî5Ó“]È[i¨JcPb!ݱÇI³[”òçOS²Âç’>ç?ѳâúô’pZëªÙmÞVZ•â t°›µ7gÊ4õ6i·Ž.1óeìrÓ <6×§g³IüY£ ÷ÆãÊ ƒ ÕšD£18ŸÙ×ç™ãËäžåŒÀôvƣ̎ËS{÷tÇAýt­ƒÂ8$ZYË„àé—¤fmäaŒHËшY…rŽ¿o›ûÚ(Ê,>ý§çp3š)æp0—±8ÊÆò³¥Ûþ±öcæ‰ü)xÜúŽ!GH¦ämfY8b»»ðå¬lí>¥¡¦ÔE—Mºú`Ä; ó-ææ&Ñ =oÙŽwÓSw)Þ±æ,'#K–JûrÉߢªÁOÀ‚+¿@³wž›ÿõÆ+!¹Â{¦¥fÏñ稺Q•Ï<±m/ Õ¦VÝú„MúÍx¶Ø£ånšÇðèƒE@_¿]Æ …íY67þ´Q¸‹™¢µm²»X¡3>³§5ÄKãÛ`é ÌÝzakª8ìKºtª9®ÊîõÕŸ€”Ð!7<æ[¶ô‚—™fÛH«%JÈ÷ÃÜO^ናûôaCºY|CÅk7—Gõ«Â"þ ›uš¹sƒ#u·ô©u~ŒÐ— æc à zxËy1‘ÇíaŽOPn(l{A7?°…ú߉,hÍòƧóÙöD"cU/’†ú”n’Ç‹g‚™Ð:›$£ÖõÀ<ºN¬÷ZY-Ák^ÂÓÑÀÜòÊöÕ-¶1ºrŸ<ÇÅ?¼¬‰¸„#žE ¹Iÿ©Yàô"-ô&ŒÖD;êEбÀœä5þâ}Íb ÛÛ—gçXˆÔŸÌw·10΄ï¾ÜiB&„ ™È š¾ ßxúÍÓ8 Ð¦i‘›ûÕøeq«q¼åä'Îj$Ô“™ðb¿z4×–#©Bäa0vV¢¾ ‡[øù.TÞá04›®_p> SŒ:§}võX¬´6bê’U˜¯ö68›Ó w#¨'UÚ/à|ÍTßáÊíÃú±ˆ¯øEU5ik>Ho7Ý'‘ç‡B Û‘±vÑØç(ÔÅ` Oç»áp¶[ñø°þ»#a·øÝ=Áï²zÑUýHî®ÏÚ|ü6¥Yh3¨3Ì©ê=m%ÕÔÍ`µ8»6…M½Y¶˜›Ê$\Ÿ¦P¸®ÓÎVk—mĘ2L¬&CÕ>V× 3ÿö¯RÃÖ¢ ’p4۸ꑀãíÒKë3Dbäß_Ç^‹ŒG;ÃE¦¶¶ŸU£âOZª é¬|EØ(Í)u¹f[¾Œ‹¶ÆWÐWrŸc}™,½®ÿ6‡î_Ͳª¨§ýö£Ù—n¶þ›Ëˆ ‘°Ô´m_ •n_§bl{ÃUÞ@œVJÕEÆ@)ÔîFS–|ÐaòÁ#£¤Õßÿx CZÊŒ€sRŽyR* Ó6·É<›ý—•+è“He¾i±‹Ö‡°ù&äà÷Æ¥=i‹Ûý´æ€ ˆv³–<îNk¹è5n>Õ²²ÀZ&º›E³$Û„Ê;½jˆûכУ÷‚¶TDzF‡"-ÙÚ;ò $/¯Q˜)ÉlMƒsõ‰<—F,S«ýž¥ÌZÊ1-ë[’!(=#âœb¤kýõ¡/ÁécEƒ r‡Ë[ª(’—Ùûò=²ŒäÎj±õjܾšÄfŠ>@á1nÛgÄ—Bjnù*oˆ¸ïÂhÈø“f_çk)ªŠÄÕ ½P–¨ØÖPºø>þ†½ œ„ƒß?~¶…µõ‹“iÖ†F§'Krw'’ödÊû$›ªQ:buh$¢étwA1AÀØÃB-Y^޶¡%¹GoaŽ˜È^Ýi‡à²@^Ÿ8þå "ßëä2žÚï/ŒÙo ¦Þ¹0?ï ×x,Âþ^$ ótFlºoÕÃŽ!`C¾yö9—ñX+öÙÑÁz'I™½è$Ñm¬&!_ì¢T3B‘ŽŠËBòLWn•ì®ã61Ž©,ÊKj4ÏÂûn<àäÔË )md¯,öðSö‘@Íê$mÅûInoO¿ÉÓ”ŸÞ 0ÔBq‹Ý`m¡ ÏyÎ…NÍùw­Ûú5íõß8Mî]sœµ°”´u>f\°þ Ðcí¤¥îV}ªáðÌúö+.¨.CPƒÆ^o×»lòÙ,};.§NnŸh‚˜1ëmÚé´1O G†]¤eÎ}0*±.éãÆpW”íKhð½ïS.¦øªŽPŒ<Ì´ìwßædHqÈ­Y˜É\/EŸøÅî™oü~Ã꼂V…øòTJÿ bù}ãÁ9ÎN`©¿g[òÖ{ç dܽµIÚ"ñ˜ŠÀˆØüMâD瀙•Yz?²ìÉ1v6C¨‰?FüY’wzKC5WÎj ÃîOñš{|ÛÖÏÍÙýɶEëg·Ÿ^VØG.‹®Š½Úží|Û2Õù í5­:Ý~ZRñStg´ã»áŸ?Ã1Qt—ÄîyíÅ<çÏd"Y´+ Po¦½#F™ˆ/mw\m½HyÞD"!SŒã— ü5§*¦wÕ[ €ză×)¶z9=`b²ÙnÃÄDx÷¶ö½ßãƒV1Ó ™ÁÜiƒøözÂBœàÐÞ–j­#¢Í'¿Îþ]·X03¸t\Q(ÿq:»ñnЦUÔ7üº£×’eì“aÐ “•ØC=º~™Ä\ß|B÷ƒz7°ÒËó*ÉÚ÷Æï½»Y½RÌ«Bí®Øb ÂJˆ|%ÐR™FÉ›Èçß6=8Òèá™–àÖÑJ}Œ—–¶‡c\}±Rȉ\[UßgØÑ²Ñ¹ÛRÝK¤ñûñíþ0cùìcûNqBôÇay7ö°ŒP¯Q™õÜ£meF3×l*îJjôâÊ]æ‘5. wŸXå2$ýmä‘Må†4¡æRëWì×´¦Ç¤ê‹U7PËĺ‚Â9{?s[vH5ó¶/ZèÈö*’_—Ô^¨Ùqäk‰ §Óú{]‚}¹‚ŒþéT$ç6ƒÅ†î€/ßoÕA×øõg‹Ž"ãÓ•™–ß$Æž£T˜iÖA¾p ™>µEÉË¥Äc˜7TÚ$™ÅÇEÇ#¼XŠ5òÿ4ñM%©Únyü«‡ùY©‘'·T”?‰'íCÀ°ùá Û°­F„ãû6±ŸÖ%ÎPÌà¶0dùÑ„ÛÈÖæ)ëiú‘çÁ€‚µ 2“¤¬ Q¾HªTˆ¨b‚©fŠ¡: ó׳£ò)S×¥–@‹ÔéVp䳦Ù÷åîÍÊÆŽ»6ŽÄvá²w'Ξ¢µ/ưŠO»±_½'tféÂØ F„¶¥âD+[Y9ŒÖœk‹øs(d…ËA; ª#˵Ó•—s³yA>ö:™»,¿ê•ÖÅÆ<¡&P3ŸØì¨ùûh“(¡q´ˆ’½!Ö„«/Õ]–bw¹bm cbaú’·0½‘–aådÐH‹“ Ò)½núüxãT™ºìѵ#²éÜæ.Z$5çfiXŒbªq››µÊßn8@& ËQÜV#b×QWcNølóNµèòŒ „V°¸Çc™’âÌC’–îmo[^«(»‰Œ±\‚ ÷£ýˆE¼2tøáŽc­_öû•~ñO%Ý8ÜwÓškøí“qS}ŒÏnaKŠø¾ L•ÜðnS}ІWË7ï¤îñŠD‘c´W%d%ñ3?®ÎYäzgÖU ÚØ0¡ÕùÝÓ˲ •á@ØfÏéć72V1Í©×_Èøq¯Å…øhÏQ ìÓf05òÄß Z;ãžS¢S‚Êv†qü&uúXK-Þ]Ê<°I¥®¡Ã®ˆ²o6E»ƒ«"´?:aÅ4U–%~›qüaU¨ ïæa¸:c¹åp²?zÉf+Rh¸¹ð:?×læ À éÌé~_¢œ<·†Òn»¿Ök±æÞ%g-%4XVdoè ÐŒïôÁn9’ ¸=ÌàX&© Á. EJ{ØëÓG¯JÁøoîrïѬ¥îo»†ûô‹¤~(œ¬lÔ¿#$È»UWu:W»­a×sebÏÞ˵-¦GÆ”3ò+ÝN2­z„4ÓXf;½Â’‘µÇEAWRÒ€,]z}œF‚uµ|XC (¦’ÃPýbYMǰtë8&¹(KÍAœÊâ©pü®*Ül㌓JÈEêTm71a_RP Ö¦ªw¨ñfu^nëšJH‘ß°z+Vg"“0ª¬1aÞÏ1}×2ëüŒ5dyãÍ7‰# ñÜõÈ*B¡eçØ “äÂL;§O †ËiÊ ²,…D¶ZŠ‘’IGöäË_˜FÑ©'8„ÏñMTßi\Ša~JÐâíèƒÄ29B±È¯±¥Š.ìlKÌDÔ˜OGÔ㢲ãÃ9<ÆC*‰‚æ|^~ÞQØSÐÖ ¤)ã%]ÊNr”âowÊÊž ’2†™ÓSÞ#$w¾^"?`òóK¢.£ºûñJün,b¯;:÷ë‚u) Z‹¤,É^Î<Û ‚yý»®f"ù"¬¦cÿ"~'$¢þAk…åºiA½Çœ¯Áwïz¼OÊWѧñ Î4Î÷Å”•Çb½f{­u·›våtvžglé¦ï ?$U%”¹ –O¶E¤h~©;L^&Qï­ÛÒ,çœÅ‹jäÞxËc2>žÉ ‘¡ú¼NœtÕ‘dôN>6,̸/KÓ‘šsPL”~ÛC´íèûT%¡3¼x› ÅtÇL:=g!bzÓp,;n|¥&xFÌî UñkÔ„¯]´ýÆb¡ ½I–©´°Õq|³åä¡>)8ðrÝSèŒ%Ó5 éNfœÐ§J¯ùÈÓb«¥òŸœyëþó è´2Ÿ ¥(Ô¶vÜÍh"¹ýøu Õ,o·àq^Ø;QL ç×Ñ‹èmM‹lX},¬W´Ž EP@ÍÀ½åüfp¤¡ÌÏ›W@ôÊ i·xMKd…qsZÝŒnâvÕè—º#Áƒ½Ñ;ðŽ1]%£ìÀ®÷(zxÝÛ6­”DB $^‘/k—ÁlZKx9pÞ•MΦt¡±vœÐÜ¥ë=Ù‚gQÏe.b»AŸ,=äà³nÝ9nñ–cåvé2QS-¸œ `4ùõ!EMm a—áõ’+›8©Ö¨$p%(€PiµFÆ-Ãd"2ª.­TнÖã÷ðmÄj#fϱÓraÁñ®»Ÿ×¢¼°9îP¡wÿ™¾"†G“zxgmè+’°!ž]*ý5Œ±Ø©ç ýrÍÇwPDÂö½Š¬ “ÍÓôä%ãè¸ y¡ãT?MI¡ÈG`îÚìzÒáRϺ ŸhédxtæÕ7|ÙAR{بÜ;c’¬D‹Çù%—xœšQ³µšØç†š¤¯‚»_Ü· 7ei=u®9#Ü}¨ï–§DGÔì–„D vY~Bö)Š…“¶þíGÐ'cCHMŒù-œ~€çÌýÆ‚ åO„<Ô=#±/©H½‹[‹uŠõhoºÆl]bKc§J®»EüCˆ(ÈOmBCªÒ+ ò#ÃÁ³oVÌòe?¿¶54æ¶oVŸÔÙ£ ïVûh„™Æƒ=Ç£å@D ?^~#ìZQ=³„¦ƒ¨·M¥¸©Yµ*Ñ$¤‰ø¥‡.Ü¥}ƒe뚈ëgDû—#8¯ç£Ð+ê2d+ís õç<çŠÜmåcwÓœö& |_e•`á \°tm{ôS‚ʱ¡s+ -þjÕƒM¥£ÙÝWCV]ËÑ2$܃ߪGðïãŽÅì•ÚÒkÜù·p W—œ¤ì"Á -ødD}žÜN³ó¶ Eô4Ì*ßì"ÆJü)®ÌtÅsñ’yvB‡Ó÷E4 Ð$Mò<$«œ­Ï€«²ÔS·Ko7hßüZ;á-@j?©˜Y:䘟ií¦3 ØŠ(–EïÅŠq^!éAfÆX†kQ®A ()ßÄR1n¼ÿ˜Õň÷¢S0e"ÀÏ,œ,J–º_Zw—²/ÇC¸(oùT‹[D^åU@Òªu[É.VkeÙžyä•õ -ZǶ0ÇÍFTúwÉÌÔÌvöh6ᑸߎjU~»e£7hM%Ôƒ'²”áVó(ˆöŠfúͧ.êÖßj¶â¼÷¾kÛ–#w™áÎ}9ëdwܵy'¦ô¡ ålN*Íw—¶÷›æIírxÕ¥ŠØè¤º¿ª©•u=ƒðœVoß…žæ-qdÆÅûNFz8Å­ŒÞÍ©Wm\½ ñ <9·þН¦}NGú.¸ø¦\b³Ûš“m3åølÃgÐÒ¬ÐÖE1$º,Ãé1âÖû¬‘÷13Uùn)SW@0=³ûÌRÆl£ZÆQ 9{¶uJO”ºì›¤©Þ¹Ñ†š„‰ðjÖ!4†HØO‡RºÝÃD“jës+XZtÓ‹ÜYÌ=—HÜdÕµ9i1'»žç×êÈ/k]’âÙhvZ“à=g²"ŽO{’€Úż^Ç•F½f"¬›:bžüîlsûE‰wëÅ·ºƒK/¦oܪãgJ ˆÄ¡º„÷kž›:Œ)ÀjxþJ÷@aû÷åô¹±8!IE·ÄŒOõÍÚ§ùîÈÈB  ,Ý0ñÏlú«ZsfªåÍl¼ëÑÔë+¾­fÒ6±[þÛÏ/^F¾+êu!ûÒÛ¨Í÷Ò‚ÃURŒ·o|t$ž¿û¹ÃÛ1æ±éxó­0ñ¼®žÈ€`…ËóOyi_j@/%WAx˜~»±”àI­@ìÔ‡É9>»£Çk™½Ân÷g0×Ä“Åì„ó.ò£‰-§®\àmoÒy>xnQ†ÆJ!£@ü;%qù¯²¬ŠÚ~&ר—,^+¤ðøUdxÙ¯¹“zËÆ""9JI®JÞ°:2±a¾¥áJïÚEÒ!ùþ¶Ð#›+»tˆø“†%ù3i§Kîá«<§0îˆÆôˆäÛàmñ-·âô s˜SÂcµ­í‘Xi l¸·ÑÀòõù‹#ùæbÁ¥™ÒH|W:íUõèÚÇ‚ <…\ê¦n:”—•ËéMpÏòްP?(±   $].1^¥xéûîY6äG*gE7àøNëË“ê5£C ̰|º x^Ÿº'­ÖêËÌ­«ŸŒë}UNSÎ-ZROg~d`Q=V¹©E¦°Kð²kð: P!×äÀÊÜ/²Át°¸Ci¯ïAŒ÷(ã«'…ñùg4:²Ð’D“ÍJ|ÄõÕÜu'š*=u¤<§ }-z~·WóÓ þ«(dï®QozáÕó>9¦ÍçzÀîÒ0¡èf— UqË;öðV^òÛêðqvau™aO®  ä‹…戸4PR3€®íÞüšCžÕëÒnuS±“xŠ–%Â'ö‹¸Æ ÏñüèpJìT`LÐÓs=ðvINó uL•Výçµö.EuíæDÜ:+ŽGt¼À‘ ÊÙÔp£$ÝçQX¯Ò„k ¶¤GÜÄàw »:œ- Þ‹‘Ú΢Nj9¿oÄó?V—ýäQ?ȲUxû¹RL Qm¾ÕˆÝ{Šñ‹„*ª¨EÝ‹ˈ@½´.OjºÌÚÏ51ãâò]ªÖgÌ»VÄKât†9W@É8Öpxg?V*]w%žÊ½òo²ØNáÝ…—Lim_‚5K1E×´¯£ù^Æga[Wï’”I›ã‘Âá¥b‚6X™HæªãIÛ:ʤóç_¬”RÌŽŽ’¿Ê}äfÔÐȾ†÷³³Á©÷öa£SªQž#½Ó¹C-Ùôwu‡Ó÷o `Ù~8è‰u4!ŠÏ 2çѶ\q؈V“‘i$~>ª€©hd"Æ(ïnüvh –²ñV.xpz ­·_öÈ’æéBÇ •s4á—Ì)p´Œ2ä¦^h¨­|hñ0¥T©ÄòÝë½ý¨J¼|šÌˆÓÁ³¨ÿ‹†H3#]Û€ˆ’çOv`Â1$N<ÄÁ‡öC؇3¼¸é³ˆ)ˆÓ€5FëÝ´ª5S½„A³[­â\œjx\‡"ÇÞ’»ä×~©`[™Br¤#顬ŽoŽËPûµ£Îƒ½Ž;j\‹ø:< ŠêFä‹Ú‰žô ,²=¹r¤Ñž$bq¡év¿ws ùY„¡$Œ¯Ñöã‚ ÀíÄ_½R ë[ÉIW9»ò¾¥Ï¬,ª Hµ§bÞ™z&!²-~s:Ú^,Ûz¤ænÉÃy„TDÖ-:u»Ì2O»é½¨³F±NݓʦÓy¼¯&ÕwwÉôŠšÖMÅäÔñ¸úÅ8ý¾§(Ç£“h°fÿñã2>îg–6õC‹æa§Æ¼kÁZº* $¯¹ÌR©|¿ÛôÚ¤“‰ˆù>V„ ö8‚²îb?âÙoà9[×™JDþwFÉ;Uƒ:‡F^Å3U? Höõz_ƒŠß* 2m+ùq Ü­” ž¹d<é¹| ¹h¿/ÌQêT}}tÛ€Áš„dÝ‚ûØ€ÍÝ–òá^Å}N¾­‹PCÙE¹QöUk4×éÅ|86ò—QåàG`ï¼á:ôª˜[» x:Õ’é\ÚšëO•˜?#pÎ)5s nÅG+Jfîeœ\ƒëÇYhÂK{\‡×é—inx.F·õò¿J%´q)ÞÐù¬€ÊBÊI¾[ßÀÆ5J_ ܳ¨+…ÉkÜeO3GéV9î'uöA¤…ãI¯öh„NÕ4b=òžSÈŒíb)(cªÂ½²ýå¼Ì:€´åm‡b ¨?oáåäÐÿrƒñû«›wµpP£3~_к…47W?’»üÝâ¼ þÙaºŸqÂØˆ^)¾Y^y=W2L•u$“Û8Gâ¼SjßýŸ³Ÿ¦úŽªQ Zôøh}ÌP £Ä³SH?`)ž¬ eL.+lÊzÃ1p™ÐOèŽåpûyOÞý4@Š„E'; ICýœ]Yµ²6~§í…V1·:) Ö¨ð™{SÅ“îH}ò2"‰¯ª7£ga¤?;äQ_¬2õ–+¢·ôfSR/š=•ŠöÌP¨}*¼E×¥emC¿e¼…IŒ¸–}¿p©*ôŽÈi •yµâ×o(M«ïCo©k¤Oý%Jò̽òg´•Κ‚Çù|òôÒO\œáÆ·ËÊ`ÿ¾Û±²¿öBÐŽK :$_þI¨×ROõ/ì _ÙÚ[…eÁW?§ Q9I™™9 BzkÆ¿üõ3(à_&ç-xõˆ ÕÌ`cÚ3(Öò˜Î¶=I¸ò(êÙÑyÕ#5žÜÖw)Æ 4¾Ÿyë+³|Doƒ^æ7±ÔÕ“†“%KÕÔ4ñJè— v(d9ð¾5x®ÔmŽ_bÄî€QØØÒy*8hg”|Dú^®§7]2I,´À5HYDìuÚH!tZµ:×Ê “‚3aÒùEŒÊêoc˜^±ê Wü”Œ— )چȤ=´CIçjõÈB©Eü¦{@{ endstream endobj 524 0 obj << /Type /FontDescriptor /FontName /LRUQAU+CMMI10 /Flags 4 /FontBBox [-32 -250 1048 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 72 /XHeight 431 /CharSet (/a/b/c/comma/d/e/f/h/i/j/k/l/m/n/o/p/period/r/s/t/theta/x) /FontFile 523 0 R >> endobj 525 0 obj << /Length1 1420 /Length2 5888 /Length3 0 /Length 6852 /Filter /FlateDecode >> stream xÚuT“kÓ-("DAŠJ‡Ð”¡7iR¤wAš„$$AH ¤7Þ{•"M8€4AŠ(H‘^Dzïˆáå|ç?ß½kÝ»²VòÎÌž™g?³ç '«ž!¿"mSE£pü !ià}mmu0PHHD@HHÀÉi„ÄÙÃþö8Â0X$%ý¿÷100ïSãð@m4 ¨ál‰AâÒ i!! °Ôß@4F¨ vABÚ@ 4 †pÞG;ºcpßçïG „’’’àû•Tt€a0 ¨ Æ!`øŽ°=Ð AÂpîÿ*Á%‹Àá¥]]]ÀX4.ÇÍtEâ@†qA?)uÀ°?Ôœ@#û;`ˆ¶Å¹‚10 Þa„ÀPX|Š3 Ãñ݆êZ@]Gê7Xë7€øçr€ ÐÊýÉþY‰ú• †@ÐŽ`”;Ú"ía@]U-œŽFAÁöX4>ìFÚƒmð€_GUõ`<Ã?ü° Ò‡À"írüYÍ*(è}´ƒ …Ã~žO‰Að÷î.øg¸OPhW”çß–-µýIêì(hŒB:9ÃÔ•ÿ`ð.À?>8 ’”‘œ€07Bðg#wGد è§ÏÁÛÓí´ÅÓ€y#maø€'ìâ0Î0oÏÿø·€P$´Á‘(À?Õñn˜ío? Ò h.„—(ôóóŸ'K¼Â h”½û?ð_#TÓSÔ12åýCù?A%%´Г_ä‚„„Åøï×ùÏ üÍþ—WŒüs:¡*ª£lÑø:¿Yà¯ïo&.¤Áõgo¸ÿn¡ƒÆ äúGÿBbBüèÿ{ ~¥üßÄÿ³ÊÿSÿÿ}"Ug{û_q®ß€ÿ#v@Ú»ÿAàíŒÃ/‡6¿"¨ÿ†šÀ~o´6 Štvøï¨:Œ_E/t~¨€èo?«ŠtƒAõ8â·˜þž¾‡=ÓCc‘?_<ø,!¡ÿŠáwòÿrÁâgö;Æâ÷k¼?m~Õþ} ý¹“Âbâ@0và%·Ä€ž üòBan¿4@¡qø ž³7Ðü´˜$PÐ?4ô§ð¯Úg ßü—(ðÿ¶-? æƒÆGЙ@»ªÀÆïŠ ®ü‹}²W¶“¾› ó÷åY‘à:T1LO›Ð,VRµ²kÑQrúž13ºï¹PÍòÚ]ô?‹ê œÅæÅÈÅ7ÂϱžGŒl#7ê²M”˜¥ 1zLá­¤òPx‡!ç ¯»Uíc±®wn©Jh5ê4·V¥iÝf”z¸1g€«·é6Z; ½›9ç0ÿÜ",Q'…MS¶ùãZN1ÛÕÓ=EùŽém¸Ÿ†‹ÿâG0ŽRE¦›QYôjùéò³ÌB—õ*O5êû· µ³Y hÝ÷sâê·i-ÎØ¯šÚ¥…!bë´7šrR–óhßÄc±¶ÉÄÌÏl!ðgžPÙiUßæúÑžAš£ñ+³= ö×Zûßp¥±{!J‹ö|ž~P4 ·Kz1ã0É‚Pg¿£âq…];ªW%ʺetäí%5I#Çce8ZÿªhgXY46Uoë·<>[TW_€©ìŸt%àÆ‹ NϤûJ$Þ`¥â®ÆÅÇÑÌmEy ZÕÊÇF!H3Ò®‘ `éB¿/­íI8¹à(®+¹/YX6©Yì'³]¸u-¨Ê£—ø´¹¿½7Ò|ý{²d•Ñ¡b¨¨mù’u}F^ï ]mæÞ¤f¸ù=ŽQR­†‚;k§ÃðäáÅÀÀ;â·îÈíל(s¥zÇH2=‚®tóe›œÅ+asþb›hGKU¨>üXÏz|«ß´Ös‰Õ îUær0òôot‰¡,ûXÙ‘¥HºT3™îJp)¥+3YÐæu„-Ì–Ñü!^båJO"¥Rƒ©Ü0^ï'÷‰(¿Ôd¸‘X ©"Øúåæê6•z¢LÔhf,A6×òüÐKüÕ¢Ê1¨s¾Ë’iœåîÉ7}gä+<†™ 8(ÛdMïǬMìõò0:&Íjà„92º%õbŽþ<®ð¶.¶ô`ª¢ îsúó¢‰Ðä ¢â«Ff/÷cæWæ2O›ÏâïL ¡µr.Ã% %÷èÆt¤Û7Ùwd¾œÝ ½:6JÖú>×–I.E¬éà×Kêª6O·aô™¤¡(…iGeK˜¡‡¾ŒwJ-cThvk0íz 3a‘(.÷zY™ÔÛbyßIuE´ôþ#ÊK—-ìšÃ§‡+=©UÊ×'Øeœô¬’0“íæ¦LI5޵øMä?Ù}óh‡ªŒ÷2 qµñŽËvzjªÊKŠ X‰€òpŠ+NÖ?kEsr—™© Ò¤Î>«¸ûnÝîZ=©÷I –>ÕamÒ÷t˜kÃ&*™ `ªcDü+Yâ׆ÐÔr$qãðO´ð'‚OHtšÅè™/õš8&áK¯ú. ¸^ðŠÛÔm·1vTìúô¾Ïè5/åÏYkyÑ_ØôI“µ¢ ZÞ–døÅ¤¯úÌéB1¸ªO$$–šFy“ä²pq¦ü|GÏoWÌ‘ XZfæ}Xs¿¹öÝ`g\Æ©ö¹~„㙄ËÉðÚ󦦚s=O÷*µºšÛjin½øXl²ïæÆîå;DÕa×<&srëR×£D!uÆy©ûíNt×ÁdºAZÛ†Ž¹‚t¶ð² -½Ï ›—ÄJà²æ-ËÄž)FDÿ…–œÒE§Ò©²8<}ÊôÉ›”UD>OƒR7Ônlx*:ë]ºL¦j®˜Š&ɇàq_Upqì ÷‹Ô­›KGO-©kä®èî,Œ©Š®•pÖïÿBt¥ _PrdQ[dØŽèj†€'”¬½—€ûÿØí|¼±TëBz°Pm´‹H…£².j6rú˜8§Ÿè ùƒžP€Ä÷>[«¬ìOÊ¥•·N¸¿‘¸n„¹|CäÆ-ë ‹Úü¨‘žÎʃ ò ïK=ðNsW¾³IŸ{¦ŽææûZ¡>ŸáyBúHAXŽ¥ÔOÙ5$õšåCåiô!ä‘äã{Ñêwy¦gà1ߦÍê-ê?âVß3ªv²vôÌ'ÑÐMŽ‹kHù TйÇ;бûMjàä=†Ý{'ås`™{kç#µRls߯‡°W™s7ð`1m“øBËpXäÁ'z{±4 ÓDt»BÚî¥^Œ›Yz”㧘c¥¹¿*ZZHïc :½¿˜­†Ah ³Ã(fŒ“vOGnP%¿$Vµÿ*xàpý¦™Ø$IM g{_Aì-ÙƒÙu;µ„ -M­ªc—ƒÉGÞ«}ËTOUèzG=&Ý÷Ï Ùw¾0äße4Êò¥C\J9.t ØvZŠØ´f©Ph7N:] ¢h æŠ1 07sÊ÷š×’.芩/K¯»ëYh§®ù놮[ Y(\ü^ª3)ñrîɸ¾B眂‘&C…}rÃRЇ‘—ñg î‡èj8¡ôN™Ê6Bh¤bV}ãÙ&ߺÄ{ÖÜÇ Ü¯„Æí'\ØŒ…#¯­IÌžÛPJ?Ýçæ×†¶aN–_Þ ÷.XÝÕ.æ)S»ÓhñÞ~†ÚËç!Ë´øBŠËÞbÕŒ=¤ L_ÎË䋿l.ÞA¾Ö`äŽúqΗ­ kRP6t–è6ûTü| “õ–%.Œy»¡}D_¡²1”¿ÒÂÚž0Wz)hžÃ¦àÛkÀ³¡žù[}é ú&ÁyA2Eº®J±¨¢ÀöŒriQU«v•GcÔŸ±ƒH :«…Èaã×Ô:uFñ­°—;ë Ïgxqeùöx ÄD´†P¾NŸnZeÇÇË„œ ‚ÞÇ‘¨æ<9²‹^´Ú¡Ð¡Ù[–0Ûž¸Î#Fâ„Ó¯pˆêA¶*NÕÝæÒˆo#Î"4xP€+kІ–ñˆÀ¦Á‘Ç%³i…k±‘b®ÇTñ÷=Þ”ú,I³8«N •샷0ýÝf录:-ÈBQ½Ÿ‰ãïb «ņÑ!¿“Œ”ê:¹$ÒM,n¹ Ò:DÃSYgëþù¥R~^`‰âê¢ä Es¶¸]\ —nþn"1o¾ÿÐ-"‰"÷¡ÜÈŸ—(±÷ x³s•ø˜‹)øõ1%úÒÕ=Ï¿(¾á  bþÅË/:ö=µa [¢FìÑCo#I#͹hÚ ìW½¨êk·n!ÜXÏÊž¹=•ÿÁ¦§vS7@ÅËÝã…f¿RÆi‘þ&Gb¤áجgÁÆ^‡TðÊâÙ°B9qõº¬#î‹U=»“ÉŒõmbƒ0¥zn%ö1Ɖþ·äè‘Ð{V?¾0¥ï‚AdÛ7 Ô–üÓ’J)ôïn‘O?Ó DB±êµIäp›Wô/{Ül)åvp‚ôßÄeÂÞ„e;ó÷r]°¿Pø|›>8#4(ã­võ#†ÎÜÁ®x@ ÓåáNõ7K‡{†åÌëqæ>\’óOî$5(ó#mÒüÎH9ëLt’ÓêÇË(Î’–ŠˆÐsŠh2Føš$d®”VÙ•øxãÊð}I‹„ c ZabyM›W…pº¬ªÓ³!˜ˆô[d`‘¸ÞIJøºUÙΪºoá2aÑÆÇÊ©Ûû«^$Ç `ìÍ¢kƒO±meâ›LºѶ¶›öû- 1ÍêÚ™n‘í¹¦b²ÖþM@nõK¹6Ù+!nëã&ü£!ë윥š«etå%¤…W‘w]¶ º•<=ßê9~%ÕVzÒNvbܼ+»ã’ómû²ûÉîydƆÇÈË«wø™y“&9o|VGrgmN²å°Ñ&ƒ¥!³ìZ±&Á$Ìþû‘ê{‚凮Û)oîXMˆ§žtÒx‡†KécdÇ-ÔTž‡˜®w<º´×øtM%ývš©W§²,¸l½bô AïªÁÌRC8³(µN›WÃæ CÓºDÿ,|XÎa¸`k|¥¿øõŽ@2ùp3Aʘoè›go›®GÒû——Z«ÔöJó9‡›ø™eDõ׌û¯K6ÎSñëYiï¯Â.ÞV–ù:´—‚ ®t.^Æ üà?bdgµmÚ'¦ˆ˜%ø6Z´Ùxyr»X`þéIˆõ ¿=ås:.K;¢i§|Êö ú ”Ÿ ­Âû Kò¶­1CËQ»ñ”œ¼TéYå³7SbBÆUBaz’;ES˜M ¬‰÷W®IftUó& OÌÖv¯Mò™Öh/\/«ofñ¥/ðæáµ)Où } «bßtù\zA/¶ëù†JÖ`ÜĪa¡‰8öè À•™Ðûö˜1ðy[-,UL%:Tñƒµ^Ê¿é“ Â“à„JÇQî¤%®¹§LîlC‹ùcôi;^Øæ¶Üüb>“×Í &qWÌ"þRC‰°ç@SzÖ¶Gæ.èYU„O˜Zð*ÝÍB¹v²y+ÈòûŽÓ"}øÖŠ_¹¿VLØé‚r+N©å¶fC6†š¼·–LZ´ù'[4VS<Ë-?æ»fæ Èú–$Ω@.SŽWœ (-oˆ‰Ä$X],½ePÍ^˜lÄ›¯¨ú±‡*æ¯*]Ás7&žæaÚm°¿Qä³ò"üL|Ãþ ~‘ª ~i²s¢Ö^×­¬ðœÎ䂤PÞœiï>Ú‘¿7cÑNY’þÒÅûè~á×F†ÒIâZÐYÕ˜ó¨' Ÿf²5Øi·v,ž/zÍ÷ñÖ¼/˾W›>+€¶…$¬¨hgð¥äÑ0ÓrûmJA=\çD'.“À³gÇ€ R¶<Ý?.ÞRW¸èÔ|oë–°5 „Kž—J8ç$8\>ë )]•”©ù’ïd6' ½¢|} FâU³»"ÓA¿µš®¦MÐÖ·Iªýê¡T(&*KÝöÂÊ%fôÉ\ËO¦«ç›d´‘m y ¿@ô’ ÿGðX«¾ô›Dð! û®½ƒàÁµ·Q­÷cÉ>IEËW‹PóÁ¢“LâsŸ®•k®cì-Ò¾äêˆ7×Y[+n>îºuyí™6n '”ö S‘ùuƒÄ,gþ©I§].#u/}eí¾ý•Òí©_¨¡ÿ.èÒd­@$šÑÑäô·Áô¡Z¯?÷ü¤•l8ù’Ãïý¨ÕÅ”È<,%¿Tw[+¼ª²ùÛÌÿÝq endstream endobj 526 0 obj << /Type /FontDescriptor /FontName /GPANTX+CMMI12 /Flags 4 /FontBBox [-31 -250 1026 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 65 /XHeight 431 /CharSet (/period) /FontFile 525 0 R >> endobj 527 0 obj << /Length1 1450 /Length2 6701 /Length3 0 /Length 7681 /Filter /FlateDecode >> stream xÚtTÔk×/¥ H·Œt3Cwƒt§ä 3ÄÐ"‚4‚””tw·tƒ JHHIŠ€Ä7ê9ïùÎ{ïZ÷®Yë?Ïîý{öo?Lµt¹dlVEÉâŠäÔÕ•…@ 7È‹ËĤE ©q™ ®nP\ô9ȹBÀH”NŒDù©#àwÄ Š‚„D@/(ò·#ÂU ö€ÚÔ¹*8Ä —Iáìí µ³G¢Êü}°Z³@""Bœ¿Ã2NW¨5P#í!N¨ŠÖ`@a … ½ÿ•‚U܉tåáñôôä;¹q#\í$Ù8žP¤=@âqõ€Ø~h€ qã2ôì¡nôº[¤'Ø@)`PkÜ á·¸PźÊjMgü³ÚNÀ_wqƒþ“î¯è_‰ ðßÁ`kk„“3î …Ûl¡0@SQé…ä€á6¿Á07*ì†ÂÀV(‡ßƒŠ2Ú0 à_ðܬ]¡ÎH7n7(ìDž_iP·¬·‘C89AàH7Ü_ýÉC]!Ö¨k÷æù3YG8Âîû—` …ÛØþaãîÌ£‡º¸C”åÿrA©pÿÑÙA °Ÿ0/â€xYÛóüJ¯çí ùmýR£øù:#œ¶(?¨-õ‡ëëö€®î?ßÿmø·„ l ÖH€Ä Çý';J ±ý#£†ï õ˜QÜ€¿~ÿ9™¡èeƒ€Ã¼ÿqÿ=_ý§†O•9þ þMVáðå¸x€HBüþå?øÿÆþ[«†þÕðŸ„Êp[üƒuyãðø‹¬­ àß%4(.C¬ÿPß(´F}@ÿß ð;äÿÆû_Yþ_Ôÿï†Ýa°ßfÖßöÿà v‚¼ÿr@QÙ‰Z uj9àÿíjù³Ê꨻Ó[•‘`ÔzÈÀíPçñsùÿè¡nŠP/ˆimÿ‡HÏU…C´nÐ_/* ü/jë¬Q¯ŠjbL`7Ô "÷— A-Ù¿ûP€[#l~m#¯€ ìê öÆE% |A¨µµxýæ;€‡Ž@¢B(Ì~[„+î¯1 óxt©þHü½ÿH &ûD €ù[üW Öî®®¨3Õßßòï×ñ‚XãÎÏ ¬Å‚ªƒZÏ+e¨=¹6ÆÄï$Ÿñråšã {&-VãtÓÓT‹ç{@Šæ².çŸgO|×kèj½ùϸè¿ÚÑYÅÎÜž¡OÅûþ ¡Ÿ!hDË2L”}$ZàÚ‹¦Eùðý=)»^]&‚g,ÕÝsñžÌ$…ŠB*Á­íï+ ÓÔÈhD öÖtMVz§,™kN1/¿¼2 OÒxK¯*Þ~çYñp¥h`‰°‡¶32@Å#pã1I¨ 6@#Ï]a°”•Yà±û–È×ê ±¬›É$[|aìFj¯á.–hÅÓfÔ¦{ŽX× ‡Ýâ«4™OAµ´‚Îi–Ú#}ßjªN–TNén‡(0î¶Æ”óJg<ÚË=VjÒTÀzJðúk4º—pèéÛ{³t>ú¼ÑKg‡*p7FšhûÑóö—˜÷Û¼1)~Ùmÿ©rò"/"Én÷éž ¹T­;E¸ì•ãÇÂ&ÉrÃÖÁ#\a2Ùêês͹Âw-¢HšxDD´î¤ë4Ð݇ÙæTqÚ˜âß+½^.SÐ量 nû‰.}—ýÒáIÙÅk¼wáÏ-›Y_»IeÅyk¬Tÿµ¨.¬Ýw»Hò½ÛÔ\an¦HÍçãIÚ,o˜ºrÍ_Ý/ª g)#ÚÀtÉÐ#½7¥ö]ö5Sp%vôÈFzÐ&ÆÙ—«&Þ£e ›’ ˆxT2z‘†>ë-úÚi$D§¥“+Êò±‡xT|¹+ 7EÔÐc¤vp‰þ¶´š€Í!9kR»u;êªhʳîmÖcHSx¤X öœ¢‰ Rµ:v”Ó“§F·"Ú6.7[Br&Eüi†fôÙVñ ˆ4k«åk&®o4Ëh?%ñkšR™‡Ïê[›ÓLFãbªœcÖ¾ÜA ÆÝޝ° ±È–Ëpµ>Q¦_`p†…0â·®w†2^u“…î^ŸÎö–g°S¥™s=U²7‹½¸Sï¶g®ô´E¼\¯{Zcá•R¯™]÷ñü  ~• :+ìc™A"ÞÒB¬»BÞèËê0έªcüê{Ç)ƒ{È·„¦®/oò“à:cÓ3oÂzÔ õ^»Ó[™78AY é¨Ûx5ºî/5:‘Ý|×^óºîŒ8+꾯°-x€ñ#{Š¿ ¢PÀŠ?XŒ·Ùñˆ†œ¢‹SŽÔ…ŒÔü£%ÚôƒZ/ ®¥@¬å$gÓÞ…¼Û¨èËà‡¶‚ÓŽXª¢ Wv1 šAc^{§ð xʦQŽC8¡T¥µìbéê»äï͘‡üžÑ­«BH~.¯7šªÏ¸©ºT”’˜FS¹~+A±Š¯³$avߘoæ=+ó‚§ž…ÈR³e¿J Ì ¸<Lñð;%Éçç• “ÄÇè-œ9q)e:zþE¼¬Ìk”ßrHÑ=–«èHЙӸ;›NNùµ®[隃¬“‰+?>$©åÌ }Ò?²(ËÝ ^„L›.[ݤ¢w­Ðb¦¶íºÞP,JÀñªÊRภ‹Ô›[Ñq*£UtSŠb5ì³W¯*ðúlæûßb$ Éq†ó0ÇÐÑ:R´=Qëa¢–Ùx¿ø9´Ã_¨ ypeª¡ÊC:kµ$y{Ÿc*º :¼äyÇ þs~¼Nòä1ú †døãº¶ïyÃz.ÊírŒìUÂøB×®çtÃMT d‚Á¹Ò~êWN@ñ]ÚM€*dƒ¥Zæy@¥B˧¥™¨™!ˇ MïÛ1´r¹åÀ÷ú„á­O6ï&)C²¬ÉaUß.ûØF´»MUu3ëq­ÎÌ…iöC®3‘]²T1Úà"ô~m\ϦÀ05&‡ ñU[ÌI'$gò¬Í¡l –ÄPþ“‘)~àgÂp>å§)úĘÓçR{O–lÈ=0XßÓXM¹†¾¨¾¬5"Ž9o„ªï±…1ܬĔu­Oïp”8¹mŠoaßêë“c¶õÓp7ÅE<[”1o†“£ Àk^÷¸)—ûbq½€ÛâX㪹“Á½{̪hpâa‹†¡ëÊ¢…èõVò@Ú®‰ý':yÝ2lÑFÃ;âÝS¢¢ˆË8Ð]áˆõäw?¡,²ßùÚ‘-Y‘-W®Ù¥Ìu­$1âȲ×ò¾RçµÜ8r² gÑ}ìš|°Uëi!×p‡R#FtrÓøy8“ EöŒàìaÈÂF1¨æ¥àÁIù¹ÈˆNåG©´½i÷û$Ïdf›|šû56å+IH©ÍI ž*7b?.­ût?¿oï©-Š(n>êÃ\³5øý#·¿oð˜`äß[ÉVóáˆÛŽ kxžbx¾Š=ÜiÕ5N?önû¸qÏk}óÉAI\Ž÷y*mâ)Æ™Úk"JhG¶D%¾Ú)¨G®£U¹ßjÇ993 ™ˆ¸,j#”¿]_Õ$bŨóš{b.¬hteW«/®ŸUÙÎó¬)Ƹ_à¼!Ð1ð¸zm~z‚uX~ýläYO×ç9¯'ûט%QéØþR,Ø[‘v>sd°êÂøÐóÃÎwÔc5 ùo›dêåËR2‚ÍïïI¿â&Οs›iŽ=¤¶}lF37«Bønò£ÜÃ'וîÍÛÓÚdÑ“Þr1­å†nód_ðº+טë”õ¨ G_¨ì·C†O¾F1sUC Þ;2‘WßëY"ÛOô€1œ±¥Þ¬>ÄSZn— œJÍ1«„ΆòAŒq¼†GÖ7Âx¼)mÍqw$ÏÑ]Ì7,ãŽ.«»Ð7Ÿ³Ô¤ûaZžðÝ`unO±n®ƒJféžwmûLé8Èxž»—ƒ…C•.Yw&ð s¢NxIòZW3íƒ&iöŽô벎ȺêuoBZ_оboÉvb÷K¶sEÕ€~*Üç¤i‡ø}–@ío¾Èó1b8RróI;Së”Á3ÂXY%”44¯Cœµ>i»ÖÉuAKSæÍ\dŸÓ1ç½$ +¿ÎxcÚ ¥ghêÇÒ,€ß·óп —é“?`múDúþ›cvîWÄv­Èã ó9)¯ ‰¤5…º7uËL:л×â2ÎU$™WèÃeîQèZ¿8¥|4äç/ °á$¯ŸØj?µ­êRgsì;œÃaÓ:Ãaââ>CîÞiL¾±nûI÷ÀÂþý²}úQ”ãqRhGëÒkÚúÐA¹º*àt Åbvd¶$×%í=ˆ9¨ô0C8Š0ÍñÕ” ðÎõ »^úo› nØÈ11sBƒ¼^ì·¹kÉåfø¥öµå6–éd$KßÍöð~Ûã5ÅÚé‰Û*aÙÆÛùàž¥V6´šŠzí¨&« iŠ^Ž8s­A™ëîtÅ=~+XAZ¢OX±î8¼\PbWñÓ[ê,LYdÖ!ñ{›Ÿ Ò¤åãìúª/ ÓɳWëpž¯3q•Ü”êÌ|žñ·ÏÖòéÕqÜXÆr¹;¥Îf€´›o‘íüÀ«6…©ÆdFa”"…ÌÖw³‹‰¼4d 䵡Úu2•1„zóÂSàð·c8xŲ 3MÁÖåwt¢¦òzhõÁ?§êÓ±4®{?ÛR@Ë9#žç£¾¢­2VD¼³ì2svÃÀ O`j=ÜðY”ÇkDÍýX:˜¼·òæ)Æ{Sßêæ]y.gÍAñè‰æààO~)Tin´™õä® ÝåyÐ4-æ›sÝ3¡òQTKöfzsºõJíà®\c!½%ü'ü)V~›*ÅÃN{ÉÅéŒE‡(qþó*¶;kº„D­COŠjeìÙªvÄ©ÊMgÈ#)7Ms˜ãu=šÏn˜¨U“´w"ÖX›9þUØ×Tü"QŒmÓQ¤J8òƒ@co{6Ö¡-±#±ÄÂä¦Ê‰«)Â-oN…•£‹•iƒŸ½TüÃñGôž`_®kr-q@™aw‘ Èƹ걛à{ÔYdSœa~›GÕâ+—&ãëŒÞ´ý™ E‘l¬qw¼\€ªß×¶{®—&fÛeáï©ñ±ù­ôyA<êñe3DÞ- ß/p!ƒ´B6X4†tϳ¿[± Ž÷‡IÍ[[Œ9d_âš-¶LÛKpe²^Yô›¿¢µô•Ê¿•íÐÿ‰=‹ÍœÕŒ~wcéôlêæÞ¼ˆR‹>ïñ×6(É:ÿE«Í¡|ýý\J¹÷:窛 —PƒÏ/·.šj«Ä\âàl"c¯4™„ }âO’öžWuèÛ»´mìoÅDëvÒ$Ö.Ž’ˆÛNoA5[Gö%óŒT£Õxé{%E*ÃÓiE?–‰}ñ¿›°ŒuÄUÀS¬ìD§¡u€¥>“˜½/v¯mW] > Ü£—¸Bæàæ#¿ni6Ÿ#äÞåÿðƒÜ2róœOÜó‰ðµ»TS祋|]˜¾ŒƒÄúÍϦ@7¦¹ùFCúÇê™%¨œbïëUÿXä¼³uøjBb´«°ä-‘\:™yöšÞÏÍÅ5»ê£F_ã¡ XdƃÇsÙ¹7Ä÷ûáØ®åx‹_Kj2?_bgu7ë§õI<µ2ýX‰TfŽøPz)¤Ö¦oHÆ/5J+\›]‡qvʺôªsa°K9tîWlOê‹ý­‰ú;HúNñÙÌ•&ï„­>nsõdÜ ËÅŠÓ)é˜ÏP«Ü*—–H[Go¤Zùž•›QA0Ø"W‰ôh€#úQ,є‚~&RµÈÏÏ.¹À<ó2CnÅȎݹ8™F?dÞ!ƒQÓk#Ø8kÏÞ?.-Íû–ƒ–¶xðÁµÒÛèá¦mÑœÁ Z’_3ßä?ƒÖÖTE{±9$®XOçÂv‚Œ~<Ä+©­âû2Çe  ‡åWö€gó^AY|Ô»R¥öq.{MnêDÏháž‘óÃS RRçu¾1©ìŸ‚»#ŒðªÓóI’ÞlR9—UºŽ‹Â4/ujKO¢òZKù„Dið)ŽEñÛß,s·ï: ð}ɪ7v:bpghŠP³\jÐD/)–<…ˆâÒŽÊ8Þj ñ“ï×iŒ’R4;Zkºœ¿¢¦.`fS^؉“Ž+}÷*׉U¢Ð„Ÿß¥Áßåé#÷¡  –Ïëù‚]©z÷ø¦ýàú¶\1éWµ€Š±é¹Í̈Äpz+AVè[?fèõ*;“@ I'÷Æ–dá°AÂö,Øš[,·ó÷ƈû4à žÈ g¦-Xá»ÛÅ{ìîôê#ö‚ÉœëWùÔá$‚½Ÿó´%lOu ¾Séu~SÛÚï-XÀ¯%žòÅqçëÅ(pˆAcíÜ,*‰'¯çeÚ>örS¾¶DÔøjb±QBÝíˆë¿’ÅÄ˲¬‘_Z=bO },=À.¸ÌçLÂ%à¸Ç®ð òq}Ÿ°eAÄÊ<`þÂstG|ÕNfé[Ùà¢p‹…P|)Ù„}‡áôè‡Ö¡s™—R¼Å«¯ãáÚöáÀ°CN†TÓã'å#s ÜÐ% .ü­òÀn6Þù'=w¶ñLá ù—9?FÅ-}¨Â¬ÜÖbBÞްѧOäW‰‰‘nœÇ?ã»)Ö âvxQ»ùäûíJ9@xíÌ@O`- ÕZÔÄ2VK$4w®†”ç–ÞÝ’õš¬•öæäCc`goÕ2æ½W¼–žR>ðbìÌ{ÍnNO²äôœñܤ,‘È(ÞW´$=”R-÷¸T ûÞdÏ6O:|NK¹Ù& ¥ägò•ÛõÅ8±ë-Ö¢h‚Έée©Ó[ˆcp+iè+&Ï҇õô„%,5RÔ8x`MD_´‡÷Ê\ÚHfq«R=O'FÍ w={®‹µåÍ(R»ŸK ?g}CótòZ?T ó­*=ú¤€¼ÞÍ .4)ÙÊõqL‘ÓáP¼Â߈BÛÖKîKk‚‘èý“4¦° ƒ-.Ãó7{ð¬‡ñ¸Ô;íàcq›Žóñ=FlJ‚æF{J“Þèäd¡„g8—hdÑLÆÙ_ç_¬æíz?8Ѽêa@Œ1vh5YÚŸÇ4ñËùzçÈÿ~ïÙTI¬ž qYN^ëØÐŃG™Xp)µDlmÉO_†½×Uß^ë;¿î¥é¥wL±“S›ŠÁý8÷“¾p<þ]Ì£q CÚN6¶Y¼ì u‡6£€÷þ;|“e •g»pÊfK½]·B“ºzâÑ…Ì48ÕËÓI‡5nù¯ÃDîx÷y5µƒÆÀ”™§ÖºÉ6 …µ³}úÎÃ]¿¸º€î×wDwƒØ÷ÉHê¼x»~ß’w÷ïÞÉ›q¢"[¿¬$™+ˆî«;é Ñô£¡é3—Óo¼(HÅܬ³_?ï²}~ÑF%íÔ[ã1©ìÆùsUØm„I¾ÛúZ設4©Alк§}Ùñ ¬7d%Œ¾¡ÞX¦âçLëìßÿ°e—ƒƒ&º­»Þ¡ëp)-2“búÉŽäDh1I%ìò@r†ü­$5FÈS¼ŸÃ`ùØäƒ¹ªº©hiŸ9¬T—)ÞsU¯;¦’D| ~8vòZr Õ8÷# >ƒ½ÎÒauËãŒZ,÷,ÒméiqÇ&¿Ê5Ý(#c ޝ–¸ª½§ŒÈ늺×´’¸ rë¢[P7%>äR¥ñÞ«é_”FUÕGý·ñçEäŸ Î>ëgÏ×µé(¢_ AÈôýäcËQ· ª³(Ük}àù] ³Ô¯8¢5_ÿãç/;ï¸s\š\¾ïÄ7¶dzm¥<´ÁÎæéõ‘Ìäè/x­öúh/õIñëÛ°«æú^ðŠ©˜<ŒbŸ–Õ»0SÔkÉRúºçÏL“«¥é"¥d†‚ó³Ô³LÛýue[´b$y‹ímüöTQ˜oèR\Œk€Îì#7S?$[›èx7p¤Ûu#à 9a)O¢äËomŸÒÉŠí0JˆÓ½Œó¿Äå‹’(½êËÂH,Xk â{g‚“aX¿AóV`eà¢*!F‡hÙ'Gg¥Øúäø9[•ŸÐïv—Žü{E¯pôÍrŽÙb¨”Ë&s$76yÿ€é…Ù ÅP_Ëx>=“1玉~Ùb Ç¢¢q™P|¬p[áT<¼Îí !!ÚjI‡]ÛÎCËHõ[ìkd‚z"’—¨ùUh¢Ø]‹þçC=ÇÏ4ßÃâM;Ê'…Úb7Ò]Œ>Æ×‰»ÛÙÔSKΞ/÷ÄÎW{A8:Eu,Ñ«w‰Ã­{Âaís†-Eœj9T¾|öIaó¯‘,~.Hý!ö˜ÙdM=ª1Âg‹ÔŒ°¹dذNÝ43ÞËèo`ßÚCÃv>CçGúŸÅǾò§?ºÝ馊¬4§Ûbùêiœè¶zr£Ø¦(+šë†G¯­ñŽÎáÔš4'±ÞÑ~ùÌmßÇ endstream endobj 528 0 obj << /Type /FontDescriptor /FontName /VUZWZI+CMMI7 /Flags 4 /FontBBox [-1 -250 1171 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 81 /XHeight 431 /CharSet (/S/T/h/t) /FontFile 527 0 R >> endobj 529 0 obj << /Length1 2792 /Length2 23864 /Length3 0 /Length 25423 /Filter /FlateDecode >> stream xÚŒöP\i׊âîAww î<¸4Nã.Á!hp·à''¸»»C xn§33ß$óß[uNQÕìgÙû,{÷¦&WUg3w0J;€\™ÙYØJoØÙllœ,llHÔÔÖ®vÀÄHÔZ@gkÀÎ@W°LÒÄl§äÈ»ÙØ9ì<ì¼ll66þÿ:8 $MÜ­ÍJ,yЉZÂÁÑËÙÚÒÊ|Ìÿtfôv~~^¦¿Übö@gk3@ÉÄÕ h>ÑÌÄ î`f tõúO:!+WWGVV{gKz&€‡µ«à Ðèì4üJ lbü;3$j€†•µËßru Wg ,°³6‚\Àn s 3|8@]N âým¬ø·àŸÚØYØÿ ÷÷¯@Ö ¿œMÌÌìM@^Ö K€…µ "­ÈâêéÊ0™ÿ24±sqû›¸›XÛ™˜‚ þbnS˜€ü'=3gkGWk»_)²þ ®²È\ÂÁÞruAúÅOÒÚh.»ëßµ9x€|þÖ s‹_I˜»9²j‚¬Ü€r’ÿ˜€EH¿e–@W7/?'èzšY±þ ¯áåüKÉþK ÎÀÏÇÑÁ`NègmÿCòq1q\Ý€~>*þ‹ØÙæÖf®S ¥5éwt°hñ77ßÙÚ Çž=vÛ¯¿Ÿ Àãeî²óúmþWYe¥´•”ÿÎø_¸¸ƒ'À‡™‹ ÀÌÁÍ`ÿ5d¼à¿ÿ†ù·ÿKþ/©ª‰õ?äþˆ(²pðÿ¸xÿËÃýŸ± ûgeèÿ=AÙ<Ë@ÝïÑ×gãf3ÿ°ÿ^€¿\þÿÍý¯(ÿo£ÿ I»ÙÙý¥¦ûKÿÿ£6±·¶óúÇ<Ên®àµPr/èÿšjÿ^e% ¹µ›ýÿÕʹš€×C di÷o­]¤­=æªÖ®fVÏÐÿºog ª:¸XÿºlÌà†ýxáÌlÁŠ ¸W©€à}úï‘R 3ó_‹ÇÁÍ0qv6ñB·Œ¸>ìà 5zþ5ÚVƒ+ØNÏ`áàŒô«£<ÜV±_¢¿€Uü7â°JüF|VÉ߈À*õ/âe°JÿFìV™ßˆ<¯¿'€Uî7â°ÊÿF`. ¿˜‹âoæ¢ô¹(ÿF`.*ÿ">0ÕßÌEí7syó¹¨ÿF`.¿˜‹æoæ¢õ¹hÿF`.:¿˜‹î¿ˆÌåíoö3ù±ƒ-MÌÀ£ö[Ždú™›:›˜ÙÁo+ ×ßrÎåïÖ¿ p@³78˜™ƒx®þ'áâú%±·ÿƒxàXÍC0Ask 3Ð|gÿ6ùMâ)òø >¥E«ý‹žÍBEd¹¨L©«Ì,™ÕÖo¢@=µî£Kì»yÉ€ÚWýØ»‰µe8FÎ*¸Õ­FQØ®µœ¶@’ƒ ñµ¶k­. ›TâeþéúÀ,ª®ÕQ@S—ÏÃg§µ¡á~æ›°Ô–Û¡Æá.?í’×}¯‰-=ؤ¬ô"WW2IRaË]Ç :µr8LËîÉ|°&¡B>Aâ÷DìÛ…lloù`{ G‰O¹ó|/bý*Ε;6g1ì<° ‚_‚y”_L¿¦žŸZqJg…ÑågJu½Ï_£U¬6Ì—³žoVâ±H–y‘)&ls/^ PqÉÉôì-T EêyÙÜñ°œjUj¶~à.P#ß=Žb;híå¿6?ؾþôIÜ÷ÐAëî¼Ò#B|(vKƒ7$ÿ}Ç›€ÜN•t±(¨â›¹DSÊ qwrûÆ8tm áû±ÎâG¦r9IjÚ¢%¥>…C¡pß%ƒEÉ¢šQ¼÷Wuí*·t(Yk±ÔYû+ДFíCZÏDâ¯Ô5n?RzoBô,LíLíPùØUê—põ6¹£Ó¡íâiÈv2.7„é¢#Ÿ-"›Ö5=Ä>/×fÎö7ŽGaÄ)áÛ9ÙpDÆe…e´YëŠEŒ8/ó‰96ÛÞÙ¢÷dqMÂU.úuë8WB¡Ÿ„õ;u!©6$_Gh~GœÜäIÎö”ÉW |z•I¸k]M=Ÿ”C¾0…¤È_«—“ùs§è=y´E¨N‚ÙfÄŽÐ-Î`]\ÊÅlUN©|òfZLZÌÍçI14yôjØ¥Þ: ùqy×rš^¸<µH”Z“=“Gsó²s¯/£XˆѤ,=(¤¹“â<.Ô#¨|«_Ô„Æ¿§"#OûÊ&eg+óEHj=´?ûÜx·˜µ>du¾ž²Qy€ÐÐPS“ùzˆÐøõ%oʲÑh¬^rÇ%Ÿ§ªûÉ¥°ëÄ­,Ä2:ª Ozs“Ÿ³‚û!çC†¦¬uÞgY×ʺ©¿k/Òùg3Rjý §³ý––}..wr½L£¹–5gõÕ¸ýûfQDl$Ÿ~(Éß)åê²UŒÆ¹ûðl$Íëßö œs†2(8 …o “²5¦uXV¾Ñw1áË +ø˜DH¼—ÉiG"%ñZ¡C‹T  ëáPa›ÑJ­â‘S¥¢²{8¼¯hbNÄßÔë$8šŽ EÝ!*Œ.ÐpP[&™V{‡ßȦ3¹9ø+Upôx¯»%¤ç…Ïò0d´2£öu£~šzáÿ:^ºñº·@! ÏŒž`dâfKÿÜ2×µ’æuÙNìDïϜƑG{â~Už¹²¾DSfáø²Êõü„h‘6‡'ÙŸ¹¢ùtÕÎ+‡#ÿ]v-ÖèAqaÑÚŸ÷'äl ]ºùÞwT'w“7Ô½•_§†p=¶Ö·8 Ê{6UFO¯å¬FÐÝòÅíO¥áðØÑSÌʽxn‚:—×$Ò¨¥!Š nõ4eÌG35Õ92Þ·¥üß „ivéFŸÚä­”ï?Ïûìª`ÐÒØ¡ÝÍæìqa­Š;i)”Ž¿Û÷Š6jÏ…UVÚ¯šR³-¥Á2ÜgÁ÷æ'n$²Z\õdÛµS«Jqä j‰Ñ«‹+²î •ãrc—KäˆlÜdÛ VùŒt"ÓQ¶,êÀ‚¤á(¢ Ò Bø|Þ,:$`võjàÓíiŸC™Š=¿SðuPB6žŸIÕÆÜx&ŽoGõÚU:xá ø”WkØ~câšC† ªÂ~”Ïš !}A–ô…Ó‹”2}Ç ]IiaR¦ïíÓš´}ÅK‹÷D´ô;8D,»ò»OÝò"U@˜E-ñ8mqb¿oZô`VÕW¬ ™òÏ×KÎÞ`á5áµ·JÇ @—·«f³´+ÂLxÞÂéëhE`â\þTË«FÕP}¹rλC3%8>/;¿³J¼oJtûømÌhçC„pT»™ÿ`$jÏÃI$»¡jâ>åM¨9†kT“;†Óÿö;)Cùî@ Vuœ〩c@˜ ÏZù(b`¥'Þ––àb~ÛXÄ *V• ‹JΦ5Sß§yÒàãž°PË\a}áMQ éÍ{é[|Ó‡´ø­ÀX;:;˪®ìeÓéʘ5ò¦ƒò¹”¹ý­§;.5vüšQÀ'þm'­¢¦’Ñ"@‚‹¡íÉGóØLšw||eÁ·BybÅoBƒXÌórgäÈ¢åÁîÊ’QJ2¼üTrŠÖÏ4‰b‹–¯¶@v<^áòˆqÒ* ?„÷ŽTÇ UbÅĆÝÃß­OÛ}¤ùÖp«»·ð™viB{yr/˜¦ó#[ à™7ƒÕÑziÚ Ñ4‡¨[‰o ×[L¶h.—É‹å‡^žgóöš+»˜[ey6Š£Ø‹Wú"‡©G£Àµ¬ðTHD`E,9Z·†ÜG‘NNê¿ûI‘×Q¿ÐÓKw[Ép[ªjlõ ‹8×hµ9E¦áfëü0€ŽT Å®{ê”Ýx•ÏåÒñtg‰âþRDðœé÷Ðç)j$‡ÖêˆI[åðÙ(…ȼÁ‚ÎﳉvÒ÷tpÈ‹ÑÊ—‘Å‚›[EæÏÝ' • m‘BýÅùÉ;}Ø!ØåÐ.ÅüB 2q¨RÆ¡Z‡­6Û‡z©qÕÇ¥‹TÛ{·§0ƒßQ•h§˜âäl»Qå_à?~ãÂIk¼SIŠz켬}' œTt<è2s5ÔH& gŒ’eH¢½JÃÁåUfç¼O5Ë¡}†]ç±Ú¬ÂoúR°G¡Rœ‹=<¦Ýà e°ÆZlìU­V‹1”¤¯–ÜýJš¡|ÕZï"æÀPpmnT d\¦N­Q¯Ü¢ÀWÀø&}þXϹ(óqP÷ªûD× è×V»HŒRu³¨®zÿi\RSêãñåsôùŒBpçºl4m]ƒä[5Ñqt¹¥MWê‚Ý—”¬N½RzÞ^šŽÇ<«qP6J-á¡.íìŠI÷ž Zçw³é¬ #P2´¼b>2]Š(RÝ·¼‘É ¤Êe醕sCÛLÓõnÐw¼cÅê„“BÍ|Èæ>ŸÇ,÷í3ÅÕ–ý\‰?ÙÓ¨Þa;Û‹½œº$ãt÷_þ½Ý€fHo.»v¹:wÈÄ1õ‰÷šGF — ‹òÁ7C`Ñ~÷öËñé>>yÓÔ1ÔÒE5ÍœŠyJÿºz|6“FQÈñ+ Vº6Šo³æg¾ƒ{–¡Þ”/ŒãÞ^¥îÁd[FuâÞUÃá¹a?9^»Ï¶!ÀA}¿l»ZïÑ4) ç#œ+´GJY '°ôX"‡GB¸åÝ“FÔõR7ð¿Í…J¯¼³sŸ?¬HD$KÉv'g»;hŒ”N BYÛ¸?-“Ú0Ñ‹²¸Uõä ÍÃõý¯ýøYpE†tC›‚Sü'÷Òåãþí–¬>ÅÌ'=¸[ö”ñô3nå[þrG^ùVñ§ËVèÓÈ/–t?Ë8½-Ú)J°'êô¸ÇˆR‘œâz¦‹_ïFMz³K¨3v¨²÷ø“‡ Ô9Æ9?ɧ(-‡$ÛÑ]Ì4P!¶‡ÔöX핹x!µŸ€‘¾ô=+‹ë&‘²)•›o›gª¹Üb4ý¾öõ~ëùY ‡£ ˜"IÑM>þqG> )‡0«»W:“K¨@}`V$UÝtLú),¾4*gð*@Žý@y9Ó‚i…6ª§¦hU®Ë¼ä¯îüìe PRÕ•)››$凉!6€)›Â×…À‹ åHXÛ˜¢#BºÍŠAÎî n’”µ ÿˆ±ã‚ëŒ乚‚´ÏÒ-²<9_]?a›Zµl×+H“RM)ôm9£æð½ÅÔ®´w¦qã@ãë;rf¢ê²4)B/°m §0@wv`¶t±þŽVm9gߥI¥¹—WÛŽÀÅ #NŽyç9lJé„Òóüû-V ?Δ̣‘â ™²ÌÊo´J.Sð³d:ÚšO~× Mº½ 1†È³ Ô6cä²gQ*²/Cc±dFw_¢ÂëÆ¼‹ß–orÏG« 4X¥D¢Z‚/G_¡•°zÈ.¢NðDÒz2RÓu!šXI˜aRñ9€']ìYdØ¡ƒ6äg%ºqpÎ%”+Æ “ ]›cN_;(w’*ãZ9»¼§w›µä{Ÿó¯fT»‡}’>ÂIU§ ;š".Z©ØBg7žfî8ÞÞ£Tò¹y­R9ÿHY»LvC²ð3sêaäîòò'Z3˜Ë¾uÛyŒ¦ÉT ÙášG¿o- û#¯C%´w…®Ê¨xH"­Õñì4 ‡'Ráv°ÙË,#±uÑ뜚)ûVŸ:NóÄ}±‚uÒ{Ç`sD<Æ‹:@Yc»é §0A•ÎÑæë6{ù„[<æÎëYÑÕÁO¶MoXŽ2¯žÜiìY°hÇÔwº%[G—ì¼Éxñ>¢è^ÍKÔWöÙ6~©–qã6’É„¿mXb/~@wežE~ÞŒÝ>GÚäz_Ë^ Š0zñs„cÜ·(·ä·¢"¹/íƒ4=Sº3^4œn–Q¸äþWè1pÔ ³+çìt&VÊi!´¡‹iíVн¶Ûó£}êìxK×ãDòêZ .fÙœþMô QÌ刹üýv‹IyáP‹Õö¿Þl‰Û ‚ú7~…ÂÌ^ …2ª]Ë¡Ä/*ÁzÛPžQ¯œ‚ ¼`äèR^Úl0¸KÊå:Íü|­H;©â½%·±5'º?x´êÆ0¶?U¼?ûÖ;QØ—ÅþõGƒÝ»%`ç«Hc·[Q("_˜Šc2ÜùÕˆƒÏý†Ë<¯NYs¼¦ŒMÎó±ŠQ#õªÇ#1Œ§;F¥r º=ˆº`MH_¡ä{ï[ÿP4 ÁÇò³®ù6$úP¹ç×÷Î}ÿLû ,|ú(Ü%6 Ä€æƒVm÷úm™÷eTò0V”HÓ7¾2GfÅ)šÁ‚è3c€ñçRênã”§k_‡\Ê_·¸´öê?¾gHÀRÞ*U6µe\iëXÉq @ŒY*ÑDl󞺴ün9f²ûÁí³tÞTºP¶Î½×ZSyÅ$Ô=CÔ åõ ×kƒî\¥²c3~dvM:)ê²Ò4O.ýQnŠ&yEŽéû /ÓeAr ZJ+Åx)}$ÃÞ±r¸>)õ ü¼sÙ+x°å—Óù™`QP–5½ý2ñôÀˆ½T¬#u\’‚1Èò}‹¼s²‡‚A~E­sY—´øöÌf•„fzIì@…ñÓ~Ä׿V¬e,á«åü=*÷:u" ]Ì÷”+UŠ©/\ã%§ß^gBLÐ^ßôܽ“Æ7×’Qœgbü†ç‚[!ó\¸iÈÚTæô¹fèÒ*º½âîî-i…wˆd™«( ç +#3÷@iQTĆ^HÛÊxW©-BäeáãЋÿpóDKR~Î7µ¥EÝoªDÂ9r¿_cPlðÙ‚à *­ !IÕO6’b¦Máz†r<^#¯Múæ^ÿÑÓál"4 4²`:b§ï÷7IýÞ TY·Yžµ¾§É4Úl5ÎASAOʦX2ÎK2õQrSÌ“ê&WùxxV‘á|•—Ó,g­õÀnBOƒšf¸6úí³Ü®ƒ»ì;hn‡ ½où“Ò‚LÊ4¥´ØÖe‘úµÊj]r?dgÇ~N’u¾Ö8]”>Ãÿ¦ü‚ ¯®ÓµÆV+TAßjµ©=ØÎeÑ,-Ùh·Â²X¯Eo¨;ÅL òð{bBŽx«Ü$…;)ù³úY9æ ,°Á»{öúœ³mZéË¢ëÉó³î·q¾´¿Q¦gWL0´fŽo­NBÃ@xˆŒ(ºæ<²>YzÈ·Õk‘G!-£¨!‘¹b~96?¼™} ŸE\„3NÍeïþ‹!·]é, èÑ¥ÂÐ+ÕÒaz©|èAšEY÷ôUç–Ø‘#¸N³›æ6”EÍÕ«¸VðNÈEYm.¨ÌÍ¢ H Ð2¼q;•¾j“áPûå÷{€·?¼]|Cƒü zç>«cG X”ÏÙ·•t‹qžÅÍŸ«#sô ÆÏëÕ›7.&>Êgé¯Öã‘VÿÀ3;^&x¼C÷…qí°aŸêÏûæü‰[Õ9UõL8*ïÞͤ@æ ‰øãsèD²Öú‡YHi™j!ŸõV×…4»tˆa‚–W^›1^SoÖ"ž(·®Š«só‡ÝwÕCÆ”çPôÌ÷fÕ[h¶­íš–i÷!À­ÐÕ1P¢=à*nèq#£wB q”É+{t½‹„ŠÂhðSÅÌå$^³Fú!1Û y¼õGì~ >Ef)p1Œ*0.¬i©ï©FU‰•ËÐ÷âõ®Þã×ONJq,NʪòváW“žèîj1×IaI)Å/d Š¿ßΥ‚0¸à RkÞßö߇¶2Ü"Ý9=®yW0@¹<àc^ìè1Ba}oýÌß9qLÓä=âÇ£np)¬j´s‚ø¾AЦ¦á¨V¤üF¯$òFÅ¡ðI[…§œÅ¼«’H”üÛBê˜!Qþ7äªU‰FAj×ÕÑùÐVVØ}uÆ&í.T½&ì|êŠí¸¬8¥é ™¿Ì²”`l9é`:Œrê´tnçÏ]s‡Û;«>ÉE/H‰FYN5ÐöÒhÀ.Ó(š•ž *â—¾\ë\ßççKàág×à÷”\ÌQ”U[¤ÕÛåóâ1F§Yò­‰$)ÑTIJ6gÏOæF§®Ñg–{àR^EiìˆÚ42Û©E«òi%pnLƒz[Ï0ÚÞÞPÌ‘ZsŠ]ÕÿMBÈ3õýUöÛÖçŸTKÚ 4˜tA¢Ññm+hòW^¢ AÜL_³óhV½g £-¹¨7×w1ec»kââŽç.1"G͆ü”(ïQ“5&²¿Ž¦4à껥Í/`âL™lqô¾Rׄj„ôðI™*Á@͈7`ˆûîÍÁUfvs= ÈEuÁ±"] ÷éÈChÑx»t“—­â“QÏ [ŽÜäåÙâÛàV;‹æ´ê5Mýƒ×S-aÔá6šÕWqÏ8ÛuœZ™/¸óºPQ;îRûüf‡¼žà/Û³o^ (ŸEürzíÑí½•ßhæWAç÷ ÀvÎW¢Ùªƒö'n¨Ñën"H±Ðë“ËB^ó‘Ìfé©b‡›KOf:½Æç“»`DÇT{ú:íµDë§"ì9e‡~J¦Â6ÙUñb‘L^GW=¥ðôÚ*¢ÿ8ú`‹5¹WµžýóM·¥UW›8¤C¶+7Xã‰Û±Û_¿ÕÜ4«!¿|4¶£¥v­]ÁÕýŸ)æàŒðúš_Ìô' qö,pËâé $ÿ¶ŽìÍûtD5_,7òïQ|lŸÐyØzáÓÊõßõ£’ÿø£ÎÈý'¯;¥äò°ü:ÚFHÖ½“G÷º­’JØùƒmð:ž„ …üäC}× nñyïísÒ xC£,¤@-VÌ$¹¸ö°é²ûу<4ÁÒ•€‡4]!„ xõ›ØF![¸ˆ¶ï¿,oø­:ˆ0 n(NŠ_Š`Á{0˜hXaØŠËüP›Â¨¹qxç2ŒKpêWßËÁ¿ÈV·¼IÕ[ÓŸGèX9ɘp߀RûŠfË7sê@ð“ÑF‘s´«Í=c¹èÞmÓN>œp™É­ †_ÐŽYwÌÉH+«â«CC‰¿ð•¥Úóé—t˜P1)yµñµb €µÿMKº9šÖ"‰Ó%¡ÎkT¶»¡U*ѧÐÝ༼%)1‹r¶3U#*òJ®•š3Ò¡Ò ¨' ›Tv³®ñE—‰¶DËð[yâ8e'¢1M]…RœAŠV޵ˆ‰­=’3Œ„Xø«*ECä¢å'¥a+U?'P¨ïá›äúÔÔ-V¯|M› ΛŒ·Ó‘§J"tmæÔ=“,uœ»Øun<ÄËÉäCù–=Ÿ`vâãѺ õq*åÎ,r¢¦ŒÅYù{ñô¢4b%Ž4+ K‰Íg\Ñn¶ðôÇmÜ2lCT”}š%-á a1ÁÌÆ‡ø)CxH§H·¯)>´_6\wÕi$í>´^[ÆQ §ÅŠ-¯èO*këHe–›Èf{ërʪÑĈ¥¿äq>:Іs6gÈ4“°¾â=Úê¾ñNl} Zë¹vbÆ?0.âÏahB«´B Yšh™dÄa–nÒ²ìÖ6ID*Ëo<³»ä\ çÌ•¾•(z5‘äoEï^¸ðÊvJÇË\wÚãå~vîÍ${ˆÕÐJ{ÝT}(NÅ{•GkãˆÛ9¼2J|¹;è ¯Ow³Ï°?[:»éIà—p¹©t&æcÏ+–E$zw¨v:|ŸK9ȱ6ÅÕ:‚ØÌí+°0äWó]Ô2õ~ê3H;`áÚ¥öóõm§Š|\²K}¹µ•SZA¥å9}u3¸ÄKkDÙ\nN„ÉNKºÐ÷’j©xR|8Üð‘xx )Q³B$J¤A׊ä~s«FÐV"{[ag%NÐ!¬L"+4+Ý ç©ÐT³¯Ýu ×ÎÉ|ûðé ŒÓ ÏRXMe¥ûÒrçm_ÕüaÆÎ{Íÿs§¾`¡"yþ$¼¤2grž˨zák)ƒòìk²ÐÁäqšû÷?7È 1êÎIí(7ØÐ¶¤´]Ù$޾sÔd¸›[ }˜-z÷4â·‹9ëÄØAÆ2"Yôf‹ûKHÍM}â~æ–ÿñ%=4dñ9¾È7zëNýí—wÞ!9¨”ŠÞ¡6ì#ÄOí* Ui…ÕWê°¹ô=·žµÒ<¢f±Ÿý¢4¸+å>?Ã×ÕAÁÁ‚¿’ÑŠN5”ùHñÙ̾Y%x/g©㌽­‰ÝÍXºr'$(&:ÃJ]f’ìôÞRÉcñ\q =Ãj¶¶sX¾è3~:;Îø”šf«ÿ!~PmáÕ>O6ö…€½35|û‰sAŽ$˜*CÇ”0‰ µäMÊ«‘"ûÒE6Úì dÖqÛ~¯WHpØdÕpYuXÏûëÍe¿“ƒ=Ù—¤QbR_gq«<õbö‹·o|#3?98Mä.º§¥7xOí&ßp_~¿Œ•WÓvoèd_uñÙ˜³¡t~‡ñ¤rmzSËyšÐsÕóAŸàYÂ4:_ø ñ(ˆOʾÖË'fwôVÞ²HÛËl£ ÿpa^}jžLQïì­NšŒÜöõ¬ž×AÌžñýN ]'ÝÏéU.†2±þmê$öN]vŽù2õô—5ˆ¾h¤©ÍôTFã(ˆ6W†rVû~Ñ;W#曨ñoóÖDõRV–·ÚqD\è„ÄJB–ã‚Øz€ˆ€‹î½ÛH‹Š†ãñzëŒÌí(ÉÄ-øÂ§ÿM:¶È8¿ûjâ€Î—¸³ ž&å·åj{8È:ëÀ—.­ÐÛ [Š`cü–¦ÔémÓ¢ù¤È>µ…nÝdgú‡Çï îÇêz Ga8[Q¾Ÿä4nfhãEg‹½Ñ³­=|ÿrQ1Àíì3Ó‘j/göe>:æ2LÖ) Ã×ìk…O< ™Üù®ÒìÕ)‚ã~8‘·<ËO©µi?0èõð'¢WêÞ¾'%îü‰Ã4ð~•²ôN-·,îey‹Ÿ;ìlÚ ÷0;±hw® góÉÁµY$d¯SÂÒ×4•X@Ð$E)¥ ­çyžœ@x.ÍŒÝÛ Žvôíi8 GëôC«{{ûÖÛx]iSÑ‘ý ÃTrÂðÙâÒ@éÙAºV_üV…1 vÏ –a¹™ÚEpAä]£µÚ€8.årO™wãÕ$*õýÎûüšºî­’¾ëÚUEë •|ŸöY4#‹4:H‹Ð󕬑äטÓÖ••Eá…óˆ[äwVŒÇözyÃ)ÉÏìgè1GfÛÉA¶w€Áç*A†[í?|©7Æ©¯7øk}™0E¤:èi3q£·‰;;½¾·~êÝ 1‘„äYÝ{Ë$¬Ì·áÑÁ­æj4±²+¼è_Ïôz­; “—"c± ÊçE¼À§y`üú#Úvþ`qÛdâÕ‚EÖòO)tmÓ¦ŠÇþPrh¯iöبgƒâ¢-^[IðC`¯YŸ"¡þüKKà¦=ÏܲTÈyf‡«§ÓŠ\çÞY’0Î䘤×Q<¡Nz1®ORÿåbæ2¤€,',ý+²˜›Ž·=¯Ûc’ÚîçàÍ»¾µKJqðT:T`°¹9ã€ØŸ‹ë¯ûÚõ{{xŒ™¦WûÎäœÕ›Ôî¾-’íEžš¾.Ø~o㉱|!ÿCõÙ¬XN®¤ÝRj{1F™vïäa¼‹fÌ™¡²x%œÃ]r‹LNp¢ÒÑQ°è}ŠæÐ ¡sjƒ÷/DéE©N· ObôBªÞ'gýþ"ÊÖŒ±ËµBWÆWÖmÖÐÃîI‰ÍðÄøY Ó3aÃ.;VÞíëï¡Ò ¤ ‡9n"½œ•EÆîÀÍfé{O3¥ªðÞ±}$t-±D~>³J‡N#Áx3=©#¦~´ }íÛCüÆÜu~Ê-d/Äe}Ã…¨Gg]+[/„Ÿ]!¹‹b³vq˜¼»Ö`Ã<¬œsü澄—Ï – ß×?ÙaˆdÄ#½º*S‰»µb¸÷…±»KÒLo‡Cˆë¼+ÑPÔ-;q–çGšÙ¾Ü?( £Ð´&û*¨=Wl«ùÁߩьj¤ÄŸšì¸úm&úï‡{eöÂкa#Ï2ÝûÞ`< ç˜Y€ÔÆ–Ìè9ßOc¾îA//¯ëœ“ÿüek•›Öv&"×ù«5¶·NZ²‚¼}±‰ê|ìù˜Š£ÝöFbfPC½‡<­Gð…å«ü(§yì³Ì4•vSËg&ÜÑ–ðÈÈ}4ö­Ã’¸×û­UoŸÄ`S\ìÐøòŒ :c|ü‰å$«ÝÚ§Øš9| x#¯ãÔ„t’6§šj¹µ&l¢Ü³hëÞvGê1ô'û¬É1ñì[êÔm¥Z-p%*¥Ÿø‡ëut9™]U %ðÕ×…tamŒš))Ó¯Ž_©Õ­¿Ró«™0v”˜Ÿ¬Óœ‰/:n\ì¦ä¾¶m±Õ£/yÇh‘Ðo¶9–-ˆ‘ŒðèS!°¬­ÕƒÍnqEéP¯hyqAØÕj¥šK™ý*«¼çëÆ5 ,ž‚ùêÊ{7œ÷EtÀÈÕê ¶ ê<ç(i@k¿?tL%&ħ…®X­1G÷ü ŸÑ ÄÀ<ëó1¢åV:âAve³?VÄñ‘ƉØm]ÖïRDÜig̽-‰PÖ(3/ýƒ°â›.úYç5=«½&7[ÇÍŽ'IôÁY<ÑØÕ³Šolìq(=¬!ãý~>Iù€Bðj aKv³Su›„¢_÷°Ì%ršÂû­á8©Wc‹Sñ;;\¬´oj´y¯c ÞÓ›«ùÀ9yO¶}ñMRÀJôm¬ÔDCD^œ|u”í&W"„¿¾¡¾ô®‰(ÿ²±Ÿû”ޱž# ¼òGÚ½æT9ŽN Y7iö…ÀR6\·ôÙ‘ö´6*®.!·¡êIY$ü ñ‚…ß—úƒ|ìEׯªíE ‰²îìÆèJ(e´Ü'·»Þä |l“Ìǯ‡Ö¿X`ÜÒ&ûºý=“Ðíbuk‚ŒÂÌ:ò$J£áùgÍ2 ·BYFóbc8Wº>*JxßÔ rüm¬wÜMפZ÷h ™S[ö äî­’€~Ja9¿ñføÍj²L4^§œ²ßNy…Pnú‘`¤a…8ò‘48Ñ Óäí·dvwêæaÌ1:_à Ï!òž¢c½È´»› û¥ÜØêÆ9Í'æ_4Zz¨#–Â9 Óg߇˜×íÅô>™óà=ìpë Ýx2Ñ;ޤ—ëBÉŽK¹d˜´XϽ`Îú—s°G ¦°7Ô¿áú¿ÄLZï« x Æò@$[±OZþ5w£HG¢7¬Ççãø§-øéòÒÎÒ§7ßüÂ< oÍûšÓ›t=¶7»LT“>'Ûà]ï"™5¤\(Ëi ·u}_å¤* NUb#‘°5÷Š/qM˜;58Žõå&˜²r ;›Ó¥ 3$—Ð\ãö wéÑâªN5(.ã53~ð"‚ËpglÌbmù>¶Z‡%«Þ[$Ñè Ç:"x‘a+8‡‘!Eì.ÍêÁÓ záÞûšœTM¢‚s$K4aåTZœI%©Ñž‰X^{*aÇ·áhïr`µ%È$𛬂JÙ[^àjb®*RJŸ8ç×ý šLq}¤ŠXTAç»¶——p¹Òô¡ñåÉ,°~¹ÿŠî¸ùh¾>M¸=‹ÜH…#$DÛl«_eÜ:–z$ER3¡—&¯$b‡>Œº޽S¸ÿ>ªÏôÇÏ^öC!‡ì„ÛΦRô¢'cƒŒç“†¹y°öÕ×½Y甯cœ‰8Vø¡Ê–É8³Îׯ;ƒj6jñ"¿î¡m”Q’8k’¤ãxˆúä¼w„7&nÛª´®ñ¶£¯'ЛÀ$%ÀUfë`æõ‘o@È> ж뽱_²@YÄÌÍ0ôù—?T"Ø+äxéÓ3,—ô‡QFyn‡„î˜gç$;¦ª*O¾<…£¤æ.Ë?½Æ)uj ”Š‚ÄÛJÿtçQÒ¹ÙVìš´.8S¾¢ÎnsdïÑ¥“ºÖÅÎ'D£Éhºx5-Âm^×LàÇ߃ơ"ÿM•éÃTmìsݪIc£Ò.:8‚=!æˆ.q¸5v,X 3²ñ qTàE¯»NΛæRª¾íšÕÑ‘œ¤ @zÇBN=n-ˆz‰Z=øÕ-¦ŽœÃ^~˜ ß"ŒXh Îó˜?䘶×!\ƾ[¾ò{.ív¶ Oºasaê )‚ê+N‚•˜‹¹ñûè}C¨+¶6¡9fk“{–šÓqg P(¦suçÄ4Eg"ž¯c‹ò±ß;L“kÇbŒ¬Üï ¬UÁžÑéøÄÚÏ'³ _ù–“”è6¶ê(Ñ¿¼?_1,Óu»sH ®qŒ[˜> é3[zÍ~-%[ày™¨Å†Ôe x•Á/ #ÅŸ†#ÀÑÑZœ¶Ý­‹Õ¶R &”«žŒE½8RJÈ^D|¶Ø0y9âØe@mY¬±k~§5ˆÐ‘=º?ð?^êOTD ¿å!2zäC¿¶ñ&À•7µÍ|³ Kp½Ïî½ý짆U$ÀØ|í€e:2_?¸9(·ö)”ñvÊý5ÖR/¶è<ó«í&úþÀÃ9Ø`Õ!1¢k2­ã L⻊Á¾cÍZ¸bHŠ^–5Ê•Š|í9^Ÿîc¿€lãå”—y°½”N–×éXDdëyi1Œš\}u¹ËŒ;1ùù´]ÒsËOÓIú#ë:;{„êåŠMõåÆöHÅà¹9³ÓÌiÉ"å‹®|ïô.,Õû$R+U% ±c­Òo³rÑJ¸Å¬0½ü¾ûjøçžFHálÔÎ΋V5(¤~|SUD³ª3•“«pŽ•ÚZ?PQ"wßgÙ»ýñ°i¥°Ñ Í*Ž ÑüÆ‹8]uýP®ÿ®!OµBÈíÁ»‰îý¼Ìa¹UCŒë­ë[æmË7·I šÒ¹£‡ wª¯–RšÖ EL»~œ£Dp$ê¼äÚühXé•­8Å]Ô%ÌΈºhÝjôMwîô>xÔ™éþ@ŸI[D×±=:D©ø€+˜'þÜòaÒ”gÛ Åép{œ¨Ûé5,¬F„Ÿ ÇhG?Ù¦u¶ôðÓ§ªJ-"É!W¿7Ü-\ÍÜbÞÑ ˆ50µÉó;Ð5Çå<Æ›Ž&õÒü:¡xrp)›y¢nˆQ,£kÄ’õáÓøõ;”­ užÑÏäøY«¤÷pöÉ)1‹sRõkÙÁÞÁVmŠ‹]úí±¬£q䃔է¹9=ï@°¢t»ŸSéÊÒT•—Èú)úÓ²¤—Œ²Æ}qý*e6 (<‰ì¬1î?ÓB Fè†örc’l´ýª9"ø­"^†ЫI£OªîÚEÐ’xöówªÕOä8GåÜë wöŠÞŽ´Â,øõ&®›¬ìðÄ´Q5 GJ s(SØ ó”{XØlôÙO»Þœü|=13ØùõL€>ÛÂü‚ĹèÅ([qâê'³…ZH¼r½ùc€ÁôË6é¶·ËsÇ®T—)⨈Iœ ١º¦ú0"'4ÁÀx.#B4UÚ°†Ë[ÔÊ÷ §S]ö±‹Ö 0#+ Îh¬ò¯eŽÊs(öôföºÒ'dw`êÇVNS9B’p¿ 2÷ŸØI,amÄ=)ÇÜ{ ¾ë êGÄuDÛc€YÄ[gJKø |%ññ¦ÒuÅ¥¬Í87cîz¢åÇ@„ÙM<ÂLòwëÊ|ƒK•',—‡U£Yø×''ÌIïÞÍñœ½B8ËÐ(!Qœ¾Õ¨ÇUެÃèp{J¸¶×¨³™é.D1 ¦ ˆÚÚ’Ù\bCÔÌ,Þ@L¸$ÃúKG#ŠºH~0íà§òšà7OOŽò¤æ^JxL#Æc7‚HÎÔ´=5i(pæWúÉ,l7ékç°ÉÈ’‘öº]÷¥)8¯èM!ér}¸ßÀ¦\’mlÌÖFÅ"$ hç“É lFí)̾ç0¬ºLCè=ÙžU †ò^€Ál¢uÞ²¤: äÖ È¨Ì·P«Þ§?‰'ËiÇäœb}nÓ¼çF,¤š&  ™_oÃ!ÒäŨ“i¯íÚ‰à]kÄEÑ“FÑùTûbŰ¹14`u78Èàà¤Üû©gôÄÍó²ÎãÔC®ÆpᆶZÙBÂ$¥¬˜ËfÜ“¹üâ´iù}Š« 'î.¤=·©êÞ1DÌ^Ç ‚ºä ‘éO›Íú¬‚Ö«G¦F) õÎ?>¤äve‹xúÒ‘éì“É2,ULÂhÃÊ|uSó©“(F¼½ˆHÖpœË â d»¾lÔüCþ’á/³ÞóÊÅ’å´UÔüEØ2(ÌvMxk™pôrÝ »²Í†j{Ží؆BÄz ægª¦,c™‰¯SÈðoºùBç ÅîsûYƒç—¦£à]Óeå¶ß\=|T¯ó£Vau¼k³­Ía×Ä‘Íæ¤³ÓÝM;ás—éè\k50yö¾]èvCeñªýäF*á‚{€„&·óJI’°ˆæ&<ß~:¤Ú{©ÅÖTµæ%"ÀßÀ’¥îhD~7ªž±#õëž,w9rxÑïMU™ú,ÎÍp ARà28«)ìMõ-†™Ç=—ÚñûyìˆôŠf,/ƒw`ÂHÉti&áZ‰oA/ÇW¾ÂQ²œ¸Ì¡çqè•q±ZêÊÑ¢šÄÅŸw‘ifî:7Ù•9ûòá¾Zï'‡EæzÓ85{jŽè;Ý‚$‘.˜[‹Í«¢{’<°Šj…ïËrêak’=/EW)Õ‰<ô%,ë0 ‘ i𻄠U'Ê%šƒŽò!§'X7 ßÃ"%ç Ûî¯m tKå¦lHRÎþЊbOÁdø*cÝ?Œ+ të÷ m’ Ÿð(Ò®‡æ"B50w<7Ì{îà+ôZÃÿÈšPMQw)V,ŸÓgò΃M×aSJ É¢~ߺœIœÜ)̰µ¨ÉŒùä·Î¯›hv•)¢¿½^õNŸÒàÀœñ3íκn“ìù®öŽ«Ã^¡PóÍmmO€9´»Ñ´¢‰Ñ½²ÿx§©o\ð¢ü÷{i8?¤ÎqTœÙ[Ï•ô&v±vm½ìZÛb|µ‘—ûÚ—A@–oF¢CŸŽãW†™åñ/ôé„ÅéÓâ.•µÛr+üZÿf÷šÔ‚e!k·d½®È ÒŠ÷)Mç‡ðûg\\Œ9ù£+Ý û9Üœ‹0æ\ójc·àYWär$YN(S‚7-Ü×A‘x ¨,™}%{]0M#óþ¡§fÆÏ¬ÙùÐÒzý2fÆ÷9#‘šVŽ,þ@ÏWä塨a\Oâ*bÐâe‰'Ó¥qŽ7ÿO^!¡ÞæÅ‰]k8(Ÿõû~s=clòú3œ "7¡…S“Ã@ ™àšn·ê6Ÿ¢“º€jUêxD•âߥuË370‹0ò®V©øí//iÆ-ôÙ‹Ë]F\èášY=Bº´q[Å&ÞeƒNŒ`èO»Rkå®w«ñÌMï2¿ä8ˆ¨ó¾oïƒ Àñ4ˆÐƒW±mîՙɦ_Ü (ÁÓA|ŠxšÙ÷Ê-‡kÓW ¥‰ÍðëHÈ–Â,Ð4×ÌÄ{ò+V«eË,j‚+TD!%x2;#ðI¹u~bðˆè“òI+?K¸¸æëQ ®y¢|4û<Ýó%J³ÁdæDP‹¾5`è«Z2›¤ùsÊfgñ+{„å‹"2B„{:íEBŸ$És®Ó‘U‹ÛšžKZôM«}¶UÎÇs±"EH$¼>ÍnîEšš}` ºø™mëù¡fèô±óò`©–ÝåG\×ßf†^zý]<0ÞÍ«zˆ·*F*^(½eË|[Û¶nŠÛÜ&Ǭ䚰j°âÄ÷¢6׺WÈòˆ\=d)ž~Jù*ý=lž….O¹­ów¯yL^žÂð aÓËÒ+ƒ4ÚÔc¼…ÌbH«×œxÄ>ç#ßP.õµ%v?E‘gBEÂ#ù€Ì*÷nœûž~³Ü@òDÛ,éæ.eDæbg;ÅÞ«$ƒ{aÐæù®^X™ J©¡ö¥ ˜TQÛÀ§ •ÓïjSçbq3Æœq_¤^±QvO$½àkÊêòwQý3àÁñ V‡èI‡¿`²¼’Ý5ñôö¸°DmßàC¥Ê $¿#¢ïšƒtèÇQGO´‰ºÅœ'']ü´A–u¬´r8…(Pr´÷ h•ÿµÖøs)ã’Ü -÷ˆ÷ìZÐi½s½x€™ÛM–½jŸ%uÐaqw¼À=Za™ð¿¸ðÉR¨oŠØ¯¢Pu²xCo¶ ¡ÄîIÕ8ýñe‘JÓÙк½Š×0ZÊ®v¢ÓŹSŽï, ´1¶×Œ!éøØ(–íCfí‚~)`::O°ñΫ¡˜î²Ë…¹0g«†ÅîÙ¤vãˆGJr]è°˜(¥™ó)g¬ ÷ªwYÌ«r—ï|Ï·µªíoðÆe;£©_yI\þ¼Ò]‡nÒÉdEJÂÅùdÎã¯f<Þ£µIÀ¡¨:9YÌ”O`)„t–ÞPõ£—WNi kSµgú9Wíøâa±b%GÊ'F¤R"|µs>{Ýê ï‰hG#šø‰äÉvt¶ì˜(A“òI¾ó@4K­Ý˜Vlv+¡w9æ{ŽBX¼rm:´¢¿uWMq¨Ðè¥ûÿlñ}äh:H&WÜ•øv¸ â ‚-­u?ºb=,É„¡‰.y©Jð?ê[œ¾³‹ª‘9DÍ&h=}Ž?ÛžÚàéÒñéö>…¯ƒ Dœ%Q\3»ß™›µ”îƒÓº"B5q’pø:ݰUíÒ+¿b°àçu@2½¢O¶C5^!‚¬Ñú`Êb˜U»ó$>²s½Ú.$æô¨ó½,¯ÜÅPsÚÜ;¸ŽômÖæÃãÏŠ‘>y”0ÿ?‰ê( –%,;¤Ô=aí¼ $©F±^ÅkÅTÙÍÈÕ4wDsœh˜7#ë#“‚¼tP5© ]ìwË»E–v{àøñ u¯’lξ H'guJøs¼K¡†pÿR¬šMj7–®}JÁˉ äÁüRv°Óøb#XŽh‚¿pL¡jéã¥ÉqG9ôÑ æ‘B2kCJKÀÍvækÀ“µQÉó?@”ž÷K¼¹jo¾²¤­=W«´á²«Ö÷Ñê;Aå‹*{¾ðÌ0¥€ 7ˆ¯¬ÜìÜ•†B¨[O+R²ÄÂôS°;þˆ[RÊ´‚ÆÆ±±2ˆxÀq~¾YÃ)áûäáø<{ SeŽá æâÞ"—’ñV„Õ1ߌÿ—0E€Üú­Þ¹_ä#Áã[ ci'eýT8rÜërßëÏ ÓL±Çi\?ÉÇ–‚²a¬Taö×L|¤ŽíÝ“ú H”2˜ÿµ¢ÁX­³"{ßÀiÑ~ÜÆ”¼+a±/$2ÎZ-±\¯ãÁÿ Ð1ùÌ3=ÿÎôƒþyÎ:Æq—]ç$QrQ|ŒÇýEHðNzN#Ôù‡F”F¯ækZm²'Ÿ…õ‹»¸ïøôe‰4*¥I¾àO‹ÛpƲN™:•vƒ©éÔÝøŽyeøOæ BÒñy‘Jïʾ—*j ¤úÄ6™RÎôS/V . -ŒU› ˜&}ÍÝtÑÛú3ÿwA·EËЀ©Ä§ž2l¬ú7¦»:ÛGÄ´Ÿ`_*¶*4U+TÌ\—¡¿‹Ë´¢Úb‰t€ K2ºâ{ÕRØ“°tiRL}Yñ꯽pfFùE`¦Àæ_%Œy𨅈_؃¸EN­;Kë¥ï€&Ljµ\¹t¿4¨€úÁÎçŽø]æ>©PJ&è\J§©…ˆSq1?ÈöÄ ^Éž€³Ö79Y²©dn–&™Ó‘ׯcØ_‘¢ï6ÖÁº‡=½PwÌ2‚ ÁökdB˜ë†®“ðËÁdKM.Dæ}ߺÍjòÚA° ?ŠK{@q&Ðo Wgjk8¦«poF.ŠYˆg{¡ü¯$bÌ[…îÅRÀ¾)zýäÐiäž/rÊ¿R/Ó¹6r·sWrÇë.eËßûpç~o>FùÂoNLRåâïLöÔË·ÏeÜ)À†d…£M‘A{”&âisÐiîü_²?Ôª”xÕ¨U¶eŸþÅ]‰™×³'Ê:Q¿G…]äH{¤^þ娽B[?ën¢:Ay®PêÛwŠa*;ýg'é¢ -à÷έ‡† û°èœOq_lT«åh²haWÏóD\IYõ¸ öGÔI${l½ï Ú%"R°„Á³Ñ/0ÉiŽÅ±»LEd˜Ï­_øÅTÞ., a€o!¤¨ØÚ¡PO¥5ä\JJ@[‚ XfКªÃܽòÆøŸwÛwwÞ8Ú{×ÞÑ)‰¯›©(Æ¿r™Èâ=iJ´w©Ü“„o– )ƺHËŠ?ŽšSâY³¹œ”îwÒFÊa²@>]:å+ô9Ýð´íM×¢c¸.>?ïÛ“O“JGbÕyláúê«fÜ‚ÃSzžF._Φ؂)²/;œ€ÐàW¿}» ~š´“º^ÎÝàºÃx✴Ž:E&Ôó¾Tì¨TÇ,ìi‘l,—_Á}v•Ùº>h|œÞo ‹)»½¹bßf ]¹Ö&y±¡»¥Ò½Š(DZGmª‹ŽˆMY¤ý‘:ÑÄ(EÕˆV©›êâ`oÊ—b¾Sõ„#FÙSlª|Xˆeÿ”âgq]GœÎŸ‚4 kÎ+pŸZÍ4ú S%æ>|¥Þiç´™Âk®*™ÍžIS„\Ç"è³ÙY“×ÙúXZûôJ4õ@LyŸ|¾Áörõ7#°éN:•ÌÒè*[Qj×0ýT%Œ?ã`½ä¥h ί¸¹.[´Dò1ÊÇhø ¼Ž ©Ž¸>*Åë´ýÊyä~.³·6òùœåkÛ”Me«Ú¦„íJù!êÌí¬U*(jÏÔ†ÜÚ¥Uë·ùàûw%A“lMäBe0œÁ¾ª“&”8¤Þ|5ÓªØ= ‰‡ÐŠŸÐ6HV^!¼ž~+ÚM_9ZØN}È¡1 ±Öe–yÕÒ£-#¡Lá[Çvo홆¸„‡ŸŒi¸ºZ}!„p,ÿu[_’¨^ØC `óN ´bžœm6ºXê1 ñÃõ¹Àè™é·×F÷ß±IÈÙ¦ÔÆYÄ¥¯iè—¦ÌvUé6è³÷6lž¶M{±Ðq]À¦ô½"‘Åé^5jÑ{ùDf°öàiÆcyuâáä9fÕ#yÀ#EH%rõ¾‹Ÿ$Ò±LUáq‹›6gä ¹_´öb¼6ñv“mq®µDä“ylíyàÜ`¬µ3s4°*BD— h»näWÛ>4/‘ ’bKëß…ïªK®ÅŠ/¿ºv.Óq'ß"% õÎÅOQ‹‰ Æ{f0¯å/S;.>ôi15L{¦¢Ü/ü”2ÙšY]Ú+·«òRJ²þ6£¥ïûÀº .Æ€ÔÕ×/®—•gqØdÔ]µq÷Àø¸Ê8Á«dÙ]šËŸ^³Ç#PÌ‚ïÔcRqÇÉ 8¿­£‹:¯õU=5oŠû[lÑ‘´íâ‘§³ããÚ‰'^:ˆ2¦´ÉRR½´'?DàÈ5‡:Àháè 1¸Àÿ wdP²´ÿ­oØ ê¬|Es;ÈŸ^JýŽ1MõJÅWÿÍÓÒäômd€ÀІƒÙ3]àµiX·²¯sd8~zœ÷ÒÎ5âÍjÈ XÛEF—:ôÔÒÖþeSêp•¥þ[mÁ¶˜Z’[`~¹¶,=ÊÍÛ¬¼{L£ÏxF|Ú§Ï+u”jÑ'ªö&¬èlćfQ ÖôÅF[ç‡øÚrxþ”Š¢ßEF'®cêQƒw´²éÙÆõxGëů‡ÈÈÁ RuX7 uQK.zØøîºxô7+~½ûKNQ˜Á8ÿqÃF\Ž&ô„8¹œ@²£-bV7iuñØ 1>)¤"øÍåôÓ*5Ÿðƒ„Å™%sa< `’²7I_¨ naµ¯‰XÁ…¤Cq ’0üè;ѼRJ}Ú Z’Û?´3vPÓQζÆÃ`Óù=ïË@eÎ\uR ÒÉèïIÑæ¤×?ÔTŠkožµ3‹¥í†fÜWÈ*ècÉ[ŸEAÖµ§+™cðÇtL?×âóúE6î_PœjMÁÓ¹bHGïÅ’¯ÜkŠP¥O}ÅázèP›+¤Á=ÿ–› w4Ñ‚óE‹>Í·…¥ƒœ/ŝޥþÒ'‹ÂåI֙ߋ<ÂS‹Å&áÚð(Y›€WÕ–@ù¯¶¯}7?w“˜v5Vzåâá^š˜‡Å”Ó+§˜V2¢»µK‚õþG·ó*­½Þ[üÐŽ´¹Wþ /ˆxÛ:¢Y”t<…EÑ"g·0€Ãù°+üâ#ew§’<‘Ú\¦]’}û_'Døþ Z LqŠó›/ MŒUs,(êÐVÃM‡©$ÃN§à#ê—©8wã}CŽò`Ó ó÷˜j­^Àu_°«ÿ’<ƒ…#9‹žv·D“ÇÕæ J¿ rÊîÍÕéŒMõ›(0çX^ Ràâ2…YÌãŽÙMqx¿Z÷Ÿ¤5 Â7õ¶…2zÚÑeˆ4À ‹«î\…ê7G¯Nc©õà<Ô`¹YfÚ½ÆõÖê¤Wêœú®æ°ŒÖ¼„}ëþO¿èþÒGâ‡<åÖÜ€R£Òg Šß,ôê£Ò 3-ø:67½…qV’&¡Fleƒ!Aß~¡Ðà†ÿ«0OÎbâPÈÈ”Ùt›˜`ê#ì@— Ž#wK† tç2?ɪ/^ïmO¨‚Ÿ ‰ógåÒlVTØrZw8—²ƒèê7>‹ £Ýôò@Ö»þ”´,†IG”&&ãi^·ô4¥ÕrÏѸܞ#qv½ý*iKùi"ƒ„¯†Jüý©òF $zÚ>"ß<ôÞœwa*;'@IÕ"ý•«ï=NK rfͽ¯­óœêv†e¡= ©õ|3‚–ІÇÎÐ ç±U;ÚÕsÕS°é£û¯™jÔ1T•6ñ¾[v­˜G½ŠQŠâå›®HFæ¯^KÉÌ!ÝÂÒ ­[Ët!ÍB¾‘‚? ‹EÁ µ†­€šü…àïýåà=C^°†à'»Šø¦Ã°oT Z†mñž™'vg’«É a¡Dh;Ñ–íÍæ·ÕØí·iì ÂH[úúm¥)£iÞ¤KMÆvr„;öÇñ„ChÎi–!½*×ei˜*ÄMnvÛ'šÄ¢/;4eWštûGt«ÞVˆyObS€á°§ßlG‹C@Uuv™ÀíÏ5Y²cARFÍ“aÈVõ–#±h~3é‰HRFäî¹ÛÝ;%‚Px”O¦<—¦‹ß•öƒ£Ý‹a¤ç;v’l± “ÅøLÌzb²0Ìð)¦ë­mÞl5â æ*¿qÞ1ƒ­  ÝW€#U¡su™©ÞPö²Ñä¹[)ˆmž>|¸òúWàœeaì¾1l Êå'=AæŒtJÜ$?ížçë #ÐÔûñ2 „_?‘ƒ°XÙíˆõQ1¼¨˜ š$ñqA*pÁ1ÅÓqçeJ®Î3Æ·W£pi~jªͱ`ªír‰Söéo¨ãn†8 o˜~4:MÓ¿•\=¬µ¦Øe•}Á×D%ó_TÎøïx}ZZ7RñØ•ˆß÷g}°^⼟[\GÁÒ¿"¡ÌgŒùÚ”ògÜhjàúJéyú(k'pchÓÒÜ3Ìó-ǽÓ¢œt¥—#Øý0¨¾öá“\ú.Ü‹0JÅ 9ÆfÀµ œ;ŸÚËffÉ7÷Iý¡1âÙ%=Iƒ„×Üöò ý 9-ái2¯iJa]akä„|w‡ùÔÛ|ŒˆôCM^i’€üj]Ÿ÷]úB%œïNÓ8ñq°Ôq5W“5£z¡}Ý‚œ ¢|4t冘;ŒI?ˆËkÍûÞÓÖ6¹ä »ÊNÆà6X:_ïâÂcpøU[ÏÏäV¥Å2R ­: R]šxòÄh ¦¨›Üš-ÀÅ”·ÜLìw ¾F¶·â¨¼!Ã_çi”™â› q$n÷E ,OCÞÖ*¬^~ÆWÖ¤8]÷ÄÝÆ"Ù-kÌÚáZGn¾ Ók!–?b»“‰žë‚N#òûÇŽÐ*ox*†;ÆÜÐ!Š'h 4"?µÛ†=5‹W/'èäY÷ºI;ܰ¦ÜI"“º:ý-#Ú\)öiɧÅÓ§ŸÊ‰A©£ç1²=ø ¡T–®ÊrÉz ?}«ÇÒ±ý¦á8Ž'ÞºÀ æv}é3Ü 7w+þQÝ÷3Š4*жÈÓˆF×u1~ª©%d’”‚iŽ’WË6ì‡S™®ß¡&|…ºOÄÔÅÄŽ.¹1'|d)?çJ[ƒÆÐ߸Q%# Ù®”ò†Usqkád¯ËøõèòÛZ÷†Xýh]“߬ñ:ô©Ná³.MTAK‘<'ソL OlÏ5=ã€M36ƒaã«ƒŽ Y,³ûmÝš “hŠÛÑ…Ç‚ß%' §8ù_á«%AÉ_‰ŸòF®0&:o«â¹» ã=˜Ö îkä6¯;Ë@SL–œÿÿ–y´¤AAGy¨ÑnH î®`²%pªë¤©¬âûÄr9N¼QÚÙú¯Ø0ìÄXïìo_`"£/Ÿ95¬Fc]*Ø mÏ• Öír—•BÊlâb<^4ŠVï¾z#Ÿd—B#QñA`€×•¦1¡¼)º"6r!™ÊjÍXqß›ów½eÔQP ’™Ù£Ñ0àŒÊW’ÔWj-ì ïøWu×û`ðŠLVBAO×ã±Þ©âè% £”‡!¦5Q¤Ô¦tg —QNïWc `¿NóðßÊ‹—²ÿ’‰¨×Ž"~ 6m.컹ºF+3¹øf…ƒ+~|Þ®PEzÅ¢«–+‰°:^|’ Âä1šâ •â¸0¿ïç±\ý±‡¾ß9ddDtx¥e“…žQ™Tk¡ÆðŒ4-¢8åT¹¥ü¦]HÁކ¥ÉÎÛÜì}Ù¢PÞ²¿<)Âÿóqt E¾5gªzàxu{CìÒi‰¿?[}ƒ! ¢SÍÅS+Ž`Ä ãßhý;ßyˆ‡ÇÏ íÛ †›vÖpͬžÔèñ®3zôæa˜ayŽÙýëÛσ/½(À[ëk›É¤,?³¢© ±2ãa\ƒvïc*á²ÚЈ¼ÄúoòÑà£D‡Ä,\¬ž[#k$Ó=½Ä=¥˜–†Ëå,X öŒš„šÀòPúþ¶Ô#™‡8¯³=²æ?ŽÆTÀù,‚ÛÊâ+hà»4œº eš¡Ô&“þ-ãk.‰„bBk×0Yb ;ËYÿ¡5‘Lµ‡³4,¦U›ú¸/¿¬óó÷©Ð妸W ˜Ž¤âl ôÚ4-'°wÂ&Ýf£1ü0 ™Þc÷«ýðÌ>kO!Bn=ìy•s£ÁÍ£ŠÐ"§ŸÌ;á`ø†ŸñH CÓÿ*äz#ð‹·ù¤W½Û1›tTç‹›£ñEy…Kb€ ,\QŽ…Sø£¤Àj„”4ˆ‹¥ð´Æ{€—rì¡Û×gaFDà‚VÀŽ\(ÌC{èz%‘…ÙÐÙï Ä"7˳¬ôyGo?íF“`Šk…y srÞgóªG¾_W7CÆé˜cŽAܬ_ž qxþ­ª'¡eñg9"×ão~2¥T·©_³óÓl¶¿?-’DmTÃ<«‰.W©¼„DzG6+ðï¥KdO ¯–åša³˜„Iéf|Rä¢ñ-Ù]F±….> endobj 531 0 obj << /Length1 1430 /Length2 6437 /Length3 0 /Length 7406 /Filter /FlateDecode >> stream xÚvTìÛ>%1:¤‘I(½énI ©16±Á"(%)© )H(¢HKƒ€HIHH§’RÒ|Ó·~ïïÿ?çûÎÎÙžçºã¹¯ç¾îçŒ÷º¡‰°²#Ú®Fa…!"`Y ª¾± ƒE¼¼¦H¬üÀ{ŽñB¢Q²ÿaWÅÀ¡X¦ÅâÜôÑ( Ž·"„HÊB¤dÁ` (,ó—## Tƒú ú"@4 îàUE{øcNÎXÜ)-|0~ DFFJèw8PÙŽA ( >ë wǃºMÐ0$ëÿ¯|rÎX¬‡,äëë+u÷Acœø…€¾H¬3ÐîÇøÀ¿è  îðßÄD¼@Sg¤×° õ…bà@à†„ÁQ^¸o”#Ä 4ÑÖÞö€£þpÖûÃAøçÕ!"¿Óýý+õ; ƒ¡Ý= ($Ê ˆ@ºÁ·5ôD°~X! åøËêæ…ÆÅC} H7¨ÎáwáP †²Šã÷';/éõñBºýbú•wÉê(GU´»;…õüªO ‰Ãp·îúÝVWÚøÇD9"~Qpôö™¡žÞpmµ?=pàÌ ŽJ€Á`)0î „ûÁœA¿’›ú{À!¿`\ýÁh GŒDÀq?€@/¨ˆÅxÃÿÓðï:"aX Ü ‰ü“ÃìqÇ ý€wÁ8áA€à_Ÿ¿W68m9¢Qnþÿ¸ÿn.È@O×ÄÄDð7á¿M**h?` °¨PXT „@DER¸Eð¿³üÍÿ/î¿QC(òÏÚÀÿdÔF!Ð@™?(àîî/>j‚ïÏqáþû4NÇp ß?²·K€a¸/ÈÿYü¿Cþšÿ•å‘ý×£áíæöÛÊ÷ËüÿX¡îH7ÿ?í8{cq¡ÆÍê¿]Íá ±>ÜéíþßVm,7Ê('·¿/é¥ôƒ;"±0ç?ôWpéÝ(¸!Ú ùë™ CÀàÿ²áf æŠ{J¼púm‚ãFéßGª£`hÇ_3'*! „b0P®ñ¸0‚NG¸ßo]A"(4ÄÑ "ÐÀ¯~JˆA´7æú—‚p¯×ß{\Ã@Xg ü?0ñEÿÞÿ«˜7ƒ›ÏßZÁú×þ÷c‡ûÁa€‰14ìÖ—·ÞU(³ù /÷Ëó.›gð N`½O¨HRù_g…Íb•S{Úh¾.ªó(Mrž®×½#‰¬O6j8 :³K2ZnŒ2~x¾®\ÙÉAÆ.lª´tîtç¾+a~³o®§·4•a>ý‘o‡¦_egéÔ§ˆ±e£•×’ºäg¥Ÿ…ãÌb­ï¿áÍsx6ÊÌEŒæ  Ûñ£98¦Ë¸äÔIoĉZ͉ÆL¿4õjaáa±bæ < û4t#Pe-M‡éK`qáLÁˆµwQ´Ø×<ͱ2)9d’ôÅnÂë+Nó?7šÉk{QBšQå“iÏWÎ…Êî•{H¬¬žrºïÑlŽq”ÒU¿åj>{.¥zôîÉÕÉèPîë¬òò7S8w0&}8&95÷YÒʯG€(9(5¨ôß…t"@îרòø²¹®#KZsº¡ô gdŽÉB:¶eUÙXˆ„vlÂló«LL¬ŸØÈv«£\K† \nû®5~õÜ Ûq½!”¼b§úäÓEOìW2Jñ°¨Ô<*™?;9mô'} k?aYœk{ÚJLªýfœÕ«š”vÐ~‚ %yš@Ÿbjñ=XÉRʲy§º)i+é|”õcù[‡V¤´3Ü먩ˆyò §^œ_#/é˜Þ§öãáÓPCŠ;[ËÅŒã‰-HפZ{—íÑ%û–̪Võ23~4éÖ÷*órÄ£Ö©–ÚpÃÓØqâú¢ÏP;žío4¯({¼Õ"ÆÅâHÓUX¬LþÞâkÙÅ~msEõó³CÇr9±q¶Ï yó®©RLÃÚ™u ¼lgkÁÃ÷ã7§–MŸ\ò—„\åÑæí¿ôœ{l¨Í])¬O—<°vÇϵŸªÍ¯sCiæýÈT½Õ¬Ž¤sèö«…IygåÉŠÙþOIJ4Í܉h‡1Ÿú0¼ÉúœsŸ:o¿-¯“œÜ³våføZ% °“5'?{Tí‰ù>­ùôf`;äK‹’c¿Zˆ¿¦)U­ü¶Ub±zÈ@âWùõd>^ÛâFè–Z&þÚ&Ögß?wv-ñÍîlºo׳ êYH®Ð±Ç‹‚™íg¢kLõÜ÷Aø‡KFôñz?²‡QèŽës¸¿áì+|S˜µs6N&hû­vÌG¹ò=­Þ{¡éÇYêþ±iQ£í§Lгgþ.ç9I÷ɨ‚ߤj[ióºÄQxÊþöuß¼aÛoÉÇ ã…ã>)|„ûCâBÂað¶ï‡ HAÆÑ‹éŠñj•žpÏÖ´6Úgqe줕Ây¹Å¤~ê›[@žƒ¯qŒ‰ùbè÷óåa–#‚à@A‘“óªÐN…¨¨›ò¹÷kº´uNÙÛ›O‘ª\^¨°Š\Ñ0Y Ø‰¼úÙ¤Kù:øÁˆ•ÁGQÞëÝßûõŠøûŒÏ×¶¸ÓÞåFÉ”²ÞÚ¼#R¾ÂÿÔПŠ\**ø«m•»7›ÆVÖx—èIL^ÊË ¿wÉ6b¹;¶ºn„œýwü–?çR/”¦Ö¤9Ê[é\ê¨éhR‰ri¤Z}Ón’aŸhmKÍzùôT°Ð&›ÚiqÓPÕ%eR“D.±äaq8-­þÒ?˜š±MEóe]kÅé ⌺]P¾”Öûò>v¹÷S–M²Ø· ò'fÁƒèÓ<¥X²½»TšÓ6~Ý2oŸV#=^@÷INsB¸>6'é;Éhíl²‡à©ù¦©vQSˆ~vV»þ¤"É-¬ۘÅè7ý©G KeÔœâ7H5;1…ÖA’™ÅTOºõøá¾mEÌI_Û3T1#*‰°Õ©ì\±‡­>€Ìô¹ëï^Ê‚½Yô×Ú󕯑L¹zŠ™Ûªà•Ü|6ÍwNÏlYˆ×팙w¯%˜Ì+âyÓãMvPœl¤[urVT§F% “PïG?ÊO4ÖNæveð¯'Vy½–_s·»–ÚìMëf«élÐÍ9N¬tº>ÇÇžžèEéGÔp"y5y‚ý ‘É~äý›tßI«o–uJ.+.-¯£š•së³²+žp 56cF«ýë,Cr Þ1#&«Gy¯v‡p<ÔÔŸ3 ‘7ìÝVpÃ[Ú×£5õè²üࡳxHÁe›1z&»5‹ç’üm±xVvôØ_–M³Ök-!+ca6t‰!0Μuâ¶Ù&0÷¬ÊÚ¶ª-NZl}ÚÚ‹ÎU%|¶¶íÏ•MºþÖ…[°k¡«ÛúÉX`r_Ê=ÿÔÕÒT›ÁFêÛGE¬S¾êðǤwN÷Nƒ€¯ƒÎ´m¬_®f«ªÐM+Žwtx”ʃ¶]kŒ`Š%ø^ÌÚ”éï»ÃxNCK¡›C=p}7” \¾¶.vDèéC”.¢QnÇa¡œ–§|øHÂ\Åß–€&8Ö\adX4àvªç Ñ‹÷<+ bÙ¸²/0Ú=!=_9y^(x­Ìl_WX*×wKœ”¬ÑÔj7Æ(Ðò¿²ö=¨únz#œSYT¾EåXq«à}+—qm ÕÉ®G(¤úô§§ˆz…þ4n*y ©hãðI<|z?ûžÝrAÈL02yY£7 Y¿‘¬çhÕ¼/a¾—I+².þ">\d«Á–·O p£’±Wm"hÛJ±róÔƒxsÈþ+ J59ÃEH¯‹Íqôy€NýQjî4ñ÷Ç ?ÔXs í.·±ƒè¼¾=ݘÔD½˜›°Ò˜ƒ¼ƒ²¯ì³‘¹Ü™LˆZ…ŸÅŽs%ÅSܺ׿p×B¸<™ÿ(Õ~P¥¤„®îG9³ï¼é¼36­!Øë+F?“¾ÄolAÍÍQ[tœ/Sè þÃ"šë-·Ãµ/¡^`6 /B#ÔàÞ¼ éÍ̱¹F1#IغCöcQ¶/¦“¨-‘Ͳpàƒæ^¶Ô R»Îkô;̳‰µ®|¯4.ݨEiì3vK<±c.'¼ob&*ã/¯÷¥ïöyÍH¿'ì_œŽ LKEfÔN|S“ªëaT;k8.ßã^~}0Õ‚V?Õ7ƒ=JP¥Ÿ©[ßï˜(?çJûhGÞ`ô“4 ܸ#šr€©†Vyœ%”›‹â!u¸z§=³Éœs»ŠÁxÇ{ç©íFÍ;)QîˆWÍ‘;/~R Ë5&êŒ ©·³Ç·Í>Ê*¢_yRTÒ˜[S_|¼úc™3Ç3† ˆ‰Épï#Vîàª3þbU[Wß¼±Ïk©GÔêxa+õV ò¬ í™Çé$Ov:DzŽ ¸¯68›Ð+Wn(ˆv̇“ÞUt£æòœá£Rû~;"òÀÛõ€PÜ.˜sª+›»„¯ÐÞ 9êlPFFÓ`§ºürBEnA¾Ìi]÷6tm¼¾y=r$™Ï^§÷Õ‘È.ã‚Þb‰ IÑ7Tº^åOûÄñchió«±¾Rï†7.¾jÌ™n][s)½K|¾ªÏÍ®ZkÒ˜Î{Lª XÆ.b;Ò‡e߆¯ÓS4>ˆ€8µ;Ùk>;ü¸RíFV}ºpÇmZgW¦Îñ"8D§g¥º~ßá;ÕMB"3ÿ nï xÁÚôÉš€\>;qg0ñåµàèGr÷¬ÞÕ@¨^î¥ÚHU§/¢Öž§®4SÉÓHF®ÃB®qÛ¿"BëÛ×jÏ-=ÖTauÎiÇ·ñ!hñßQ@¨R¿)’Xê’°©Z1<ä-Mñbà÷ø<ðsÆoçðRë6“šñçz§ѱ‘S´ %%Š ¡ï‡JS5‰O»ÚÝ„xý¨è«Ìç¼W?è´˜¦ç¦EIAsû$ËC,ÝÑò 裡xÆÚbX\V4ô°‚1´ô¬®á oC°]Í3ƒeIº<&ñ¦Ùо^E™T„½·l©'Ä­þýÂ'¼wì¼VZ1”ZiPîí¥»bÉvûƒ§ mµçÃÍ–[éL-R£¶fàÈ®úöMB=‡h‚€¢§dS6Å_O‰©TMvò=Æz‡›»/­»£Ž;™E… ³¦7tŒ·U½oƒÔâ¸+àMýÉA½§Á×tN|[F?cÎ ¸Ýoiš¦j³‚é|ø~ Ôe±­*Š4"†v«^CæÆߟ^BGòÀþEäæ-€R¥¹êtïO×hQK­9š”DMžu‰Žƒ‘äôÛU º‚÷)Ù5¦öDÈyu¿næ_~1Ÿ¤¦šü6cnu…"ÕÆnD“:jÏP”¸jú’]õ8­°Y ?ÌLÛŒ‰½¥1xMsìÅ›çM²o;K ¯n0ZD ‚´ßØôøy‚V™!¤‘gõ^È"´ÐÏ5rf`-õãÊ›]_ñ-™^w ½èÍ+è`üÖfZtSº¡Ç#õ¹Ð+õï¾L‡<±ò9‘ éÈÍ1U+‰LÑE4êkg„~Æk(n59bÞü­C5tôºõf ç s~Ý~_º †pú*š’ŒÌÛjJ¿‰ÈGõ­]þÈ4=È(l.øà2m¾¤Z¾³uÌ÷Pd0Ö«³Íx^8#ÊÒ2X13ëå÷yáXÌ™8ÓܪA;‘¾±sws§É~0'6êÓr{+<0mƒ9„ëÉ:räçlf½YËÕi>ãÇ”<¨w^íˆÇsÃËVÀ.þx­ôÈyÊzšq›‡Éý†•³Á}’[$•ÕÜï”5%U«9;»@t—pÛë 7ŠÏö£íJ6Ò©&”ñ[µŠZ·LïQïi:4*íwÃêSË=€“ôT×âdj°BÐØÔ ’ñÇi£/ó']|g×DhO'ú$VÈ?açóÝû&7ÜzW½ÍŠaX†˜vaPg¯Š„9»˜PZÿMØøÊú};–‘%â\By=!€Y°Bpª~•¢;ÒM8w¸­¨ª¼ãPu•ÌÏâ&þIr¡0tXÆHo5ïŠÔPÃ^-Þ&Š$8ûê‚ÕϤ·ü/¤=ŠîFRù~«íà+ãj¸{£Ì;_¶G€ðæ©÷–pYŒ|FqFUåå4Êvø`'«Ïiøhõ¶¤T=`RÎám”|Ï?`"rMî-î?ÎeÀÀ³‘)†xrâÚV„|äKô›â—L»ÇÏG©Ê9#}vɉ–ë­` ­^ñ Aý)-B¬ï&3p0¶õÑ()_ð±[è^Çä{hˆJÁ¹­,I (X˜á0°— n/~ZHЦ‡,¹-Z3ÒÐ:ב™ ¹já÷v”$¤hë…Åå9ó¯Ý3èï/žb\,ÕU Wa‹ì)ìo¿ ••xO­¿‘ýt18)èhÙÊ Á¬ëgüúuîYJ£ÏÔªiÙÚÍ€º4ÛOr`P6QÌ.„Õä'“Uµ9*ó|žd7j˜Xåp…I— „ u"f'(ž!d<ŠÝ¥…%hÌú»™¾Ódˆ¬j:æ¯Q= ådUÖY½Ê+N&75Rì6 ŸïŽ_*“ÛCô8=ŒTœ¥XN­Xr+µ„Ød¼c1u.}1_ã·øá3Õœl è9#ÜlI¾…ÒÍš•©Õ»ßJ[.ÀPf_/¡|Cغ›ž¹Í\îÒ9øiJkwÏkûsëÃà®f‹N8Âec¹i]ùÉ.b¡•PS¥á)‘¬[psJl:O­ßå Ðg°/òèϱ•]¸/8òT&óÐc‰à+cnRPè׳ò(J>¶-_±(ëoO¬-²•»›3ï‰gÚ²y½™”ì±>) iæO Ï>˜ãØ(I$"¥Q諸šÃƒŒëH8f®0ó4ÛßDŸ°†{†•§Õ…rÎãù„™²Í¶Ìft ¬)Y7ò~ ‰€«Úm(´ÓóXHÃTvko") sP9F×ÞZ|ÀW& rŠ‚!3$*”+ßž0Ù fÅ~yºÚ¶*L=Lª^pàê²2°þÕåÊõ˜í‹Ä —ChlÈËE‡G êåeö¢¸[5ÒÜ-§JVC‚ Ô<^¥›²›JZñþ8Ô"ƒÑœub]JwÄr²&­¯Rh*AàzöBcŽ»™òÅÚGAs°oâc¥›Ixº3g¯m+ï‘Ï‹9lóª°*ñ”ê;VoðHó­{%?2üh+²¼Ü‘M2¸±ëIKÔ÷U<ã ‘'P|ÇÒ§²íƒV5q“ 0ŒEC.¨˜PV"Ù³¤°à¸s£¦¼D‰Ò"€–béô-÷’–– o¬Uˆùí8Å;¤bb„ä‡ïgÉ â“äîrQp5TaÜ_³¢Ò×3zÇG.Äô8Y¥V²žuU¦¿_7&²7Ò•~Ãi}´³5™Š;來ʕ_J3ä=¤ôÿ‰êµ~o8{¼¡Qgûª ¢7ùôÀú!M…j“†Ãöž›¾~@œg}ïBÞŽöÔk¼ éZ„E™ðDÿïdváíûÃ*¦w1i•LY2 ¶xè›f{Þº{4é°ˆE÷X><‡æ{QLç´U ˜YêÕ«ÚÝ Ó2'R¡ë0rB¬íwšØCØh‹ã7îú}š"Lø{,’|r‘äµ ™,~鯻–½{=l;š”žp{ûʉ/:Ð]q.õxÕöÐ )°±Ÿ«¥„0Ès¢Êá°wäê¬ §c.~‰!_X¦gõÂÔ‹K°Äš·›1ôÐ0Ùù=%˜»´ÿ¤ÁM5»ÜœØ— g6SlVè¿'À9ˆ~£Û>4UÄçj_zò¦Æ=„°Böh1ÜyÅm60>e¾OLR8’Þ­lD‘éþÎD¸MÅ(~绽1Q½º>mý'Ö·“ào¶™ÜÉÑ)•¬K›kÜ»Ÿ§ŒsSî”xˆÜ]Ú2{ÃíÂM­²ä“%´•à9ùÍÝ»Õ å‘<‚1·x g mœ¶ž´)ùéW½é÷i(Õ¨-ÿ|eº¨å¥ÞÔÕ7öí o¯¼d³#v­E¼Œ©§¯—…­?³Ìͪ€êš’/ÎD˜™Û m?¸ Dú}ŽM?.½6À}_‡=Å?ËÓ¼»xNºKÿA^)1ÉÃ×i 4Âø*f„¦ŸIuy^ç^Ñ m |ŒJz€kâ¾¼µµÂTÿLš¶Ëñ™i¡‡\³>[ôìÆð=´«"¿&>ž!-þöNŽá.'—:áâ‡DjDë–Kë-]Få9^Ýú%ŽYš÷Ó×µH™ÊƇž,u½ó _»ÎÙûN ÄÈ}ôK)u< ‘~Ú‹/—®tÈÃô\(´VÔäïs¹kfÞdU³Ç¢[Únñå¡ñ çêƒb;«y&)’|„ácëƒfað• ››,µãÓi‚‘«séBßn/×E‰ñÅ}AP|5Ë÷TT©¢)IbU>'<…|Èæ J,·åKU³ó_U¿xüôŠ9j endstream endobj 532 0 obj << /Type /FontDescriptor /FontName /NLKSSS+CMR7 /Flags 4 /FontBBox [-27 -250 1122 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle 0 /StemV 79 /XHeight 431 /CharSet (/four/one/three/two) /FontFile 531 0 R >> endobj 533 0 obj << /Length1 1470 /Length2 6400 /Length3 0 /Length 7394 /Filter /FlateDecode >> stream xÚxTÓ}Û?% ’RÒéÜ@Zº»Kš±Á`lÈFw‡tI ‚Ò 4 ÒÒ Ò*è;½½Ÿç¹Ÿÿÿœ÷=;gû}¯þ\×çúng¬úF ŽHˆ* ¥J:F …‰88Œah8äo9‡)ÄC"¤þÃBÉbÆÈ”íÑC$ é €D 1)¸%ÿ6DzH”í½`ŽA€&Aq(!Ý}=`NÎhLž¿Ü`HRRœÿ·;@Á âÛ#:öhgˆ&#Ø0B‚a´ï?BpßwF£Ý¥„„¼½½íÝP‚H'Y~€7 í 0„  ^GÀ/È]{7Èh‚Dcgê/…Šö¶÷€08 A 0.žGˆ“`¤¡ Ðs‡ þ2ÖþË€ð§9 è_áþxÿ Cüv¶ƒ‘nîö_ …Á!=UmA´š`püehG!1þö^ö0¸½ÆàwéöU€=á|(°ÌDÁà¿0 ý ƒi³ ÂQ éæA QD¿êS†y@À˜¾û ý®+éðÿû…!¡¿`8zº ™ `=!Êl0"¢Ëœ h€(PRLL€<@|ÀÎB¿ûºC~+‹1ýÝ‘î($…`>ˆüQö^ÚÃèÿŸŠžˆ@ €# Œ8@œ`¢GLj!пΘù{À|–@ ý@à¯×¿ž¬1 sD"à¾ÿ6ÿ=b!}3%c-¾?ÿ¥TTDúü„%’b@ˆ‹‹ÿç_øýo©¾=ìOuÿQE$ÿéÞß@¼þ0ƒûÏÚðþ™A‰á3Àýoú[E`Ìèÿ¼¿]þÜÿå¥ÿW¤ê ‡ÿÖsÿeðÿèíÝ`pß?>{¢1»¡ƒÄlâ¿MÍ -´ÄæéößZ ´=fGNž €î ïý%‡¡Ta>G}ìü—þ&†€è#Q°_÷Æ ü/fõÀ®˜»…Ùo³YÿÌ«‚#­ °¨ÀÞÃÃÞ—ÃÌIàÂìª#Äç7ÅB‚$ãÀ` @‘D¿ 9`z„¡=Fþ—H †y€áð¯1þ[! 9ýºü ‡ž˜‰ý­„Ü`OÔoÁ?Ê{zx`6ø70µÿ}þ}]@ >0Ñü ,áRÑqY«Àà-°1‚¿¼Ò›lÑ#Šæœ}êï¬M£6ùPÑαúÎðcý¹ò¨‰™ÞÃËQ«×y¡K™êh,•¾5ÅcÂÁ¯§¯ ÌŽHz§1ñDZkG)Ldv–x–\if3W‘â="[/6Ÿ_w¡¶HîÜ%ç䬙 è…ü®=œG¬ì+è! +òÄÛ–YžÆ&c×8`‰Šñt_}×,³‡>~|›×ß÷Xä¤H«·F¬:Š’ŽÊO“58u€Ž:%Oó% ‹SQô\©<#™®Ø-Šs ×N|éûTQ{Ê€ˆg““®Rè-½ wÍž HÑ™üž¥FÛõ\ã¯B$wZRcùk³+rÔ8beÕˆÀ zñh˜ø ]‹?u¦¥eÚ8 ÍñAá"6›ãw.írR@ÂÖ2p‰OÏÅôáÌîÃP³…«ûJzJ} \]V—Ïá»ü‚_žõÁ*ÍYÒgÛ-o;†z¢‘ì‡LÔ“¡Éæ9{ovS^jˆž¿§0åUC×iÍ"»my’ò“¦‚ òñôÛ»Ô¤ÈKγ%™ŠSÌkoaeéÞ´ŠT™"'¥t=,gz±P%öî©LX‹L†D0hqü[Ù`?‰¼ní–AÏ×6ÉÇB„6Z]œíJu¹4Ñ÷’aÍ{ÉWÛŠ“¡Çâ3KŠ?L‚m)Ë‚¬   ß¿l5˜+4Ä<€Ç¦wO¯Ù>{ÇÔù ?‘1ëÕø~o'WÆ–zÓ·s¼cJ‡!5©¶ˆbxes’h›ÒÇ~êXË~{펳BžwÐæ³¯Ä Ë é{ë¡î6ÛMºGîß+**n“qÍEJЬUë„pJúãǘ+“|‘¸Mb?Þ&<ƒÄr†6­Ãå´hŠö,ÙµÄQ4|Ss?>ïeüHÙVÇ(¤9à¾À-S•øî¥/òᓹžØ[_dwÝaÐÞ–µÙCå0Vü‹{Ë¥§Q-EIÓïŠÌõU޵¯…×l…[oU·–#Õ3ü‰@´>“tTƒ»\ÝžtíH’Ëóofº,L†9*é'%Ù­IS8gß9Óײà,ª?i¬‚µ)p A/˜Uó>—TòEÃI”.­%Å‹=Ü„Œ^Ðid8tìNžÎÞKCà\ŽÌ»ÃvXmlXµi]áµNþV¡U¡78™Èªq+¾~ªþûÖ/†?lÑSfÒÙÝï>g xÊsß­@ó¾+¥œºeò4Ï?`í˃@{‘ Õ28nFש„^ÁóItªº™BYOõªtë‚éÒø¥¶!ªpSdÃãE¯¶üýT¹ž†téô¼:™á²üýk¥•]Vl•_›3rh' nx*eÌãå(;Ñ‘NÉÛòçÐ ç‘uºÞ¦Ip€Â·4.õmp*²½çs(K5Õý\¹Á"á>ß“™ãC÷†Lô5 þZ£å#(úHâËšŽÂ¡}¯×Ic–…­ßç˜[´9ô å÷²ÕãÒnß_ÒçJÔ|6¼ì•2ÍßÏÞÈælRª#wÖ°'·’æÎ;!îE:K+³¨B®©‘¥É?×Mµ9Ɉ5Þh€¶Eè} J¢Ã[õx"Iª€âS›“¤‘7#ÔˆŸK5ô{Fyz Ýñ·¡Pvþpv½È?;{U1cxw&ðÛ«þù|”0”KéÔwiµÖvàÅÔ yk0³DZ‚^ü!W8Ý&¶VÌÕ=W=Úƒ•ò3&€Ô²pþúH•GK´›®8ï³yIÅ âZ.°âï_|{9:·=e…l³™eÉ¿qzbM!ÏHZ‰j匈x-”¼ºjÓÃj¼ñ&Äžäg¥êp~¼a…&´Óˆ­P:i;ãÊÓË(–HAô$[LQ†b±È ±˜m¼FXT7ÖÁ9qQNi-„?"è3Ñ?(_0•É÷ˆ1FŠ}]¶uG .®5N}šö¯ Ñ-Ã:ræ@}­Ø9Î`µÎ®è>§ [ߨ2]Xï¶/ϱ>Û–›æ'Æ98q@ÂÓ²œÉÅR~êÅxõØ–âî¼kL6Øàê°¸_Ü|ÌpÑê!vÑñZº¸áAævwÿº×³¤+±/E"M“zª¯»4½òàì Í…î”7.ula]õ1×ÁOMIŽ#,ò±Ø›u».sD,a¸ØP›}óe«ÔÏÎ÷<ƒ‰*wç¶‹¹ªz7ºZ›‰ß c 1ô8>'FÏw3ÄÏ} %vެypEÿ¦H›TbìÕÙ|xø´i I5S—«­^ü¾MëÃÙis>OÖ‚‡ù|³‹` ߌ¾‘öâ‚\l"J[wñ×vò ÀÛ¦ø× \gycuãçåh£²ÁçdŽrëÌ©ñ(¹Ã-Â#ß\¸êš5Y¼:P»¿­عãÚ°ØK°lxÀ½0=f#<ÇAÄQ¸ºÞw‹hÇŠ%Û¸…#§Þî—ߣ3Øh£®Ž(ô}B–´àÅrûˆ/(ùyó›t•&pâûúyÜTþ½Y¡ês&š=ô\$î•:$'j^_©qÇK÷p‹MM,¸dŸä  ߺ T¨@›ü*>/`«–{½ÕtúórœZY\…@Ê“J %]XÞ® Ñw˜/ÕA<â„eI0¶„ñÞ£0v ÓÜÐÆÊ^S9X÷íÛ±~§[ý}ÝŲŽ?]|sB{›LÝ6¯Ð=,}ç¤4D—ršr4÷ª-[ÒïFû†qŒÒR°ÐtP[J_VÔR$ïÁcÉø~±iG…H—“­sJ—Â6Á›üø#—| Ú™úÏĽ¹peí#ƒ¸"¡ÍúäYÇI'×ýq‹Îe|ˆÀ>Hè’4¾@<4žWEôîcÇèÏÏ‘‰™þÖJ²ì?pUoú9±ŽÇð>C¶aMÝp‰{/ û=ô`¤x¤y"‘Ô§åmàô1Á=dCI&8ód´g¯ŽXÛ46èìíÏ«K7*¸ý(‰5Õ¾ [‰]r{¹í ƒ—0Æ`úu÷Wç}‰ÌC¨TQ_Aóð$\ÆÉ‘<Ÿ7‹Œ °JÎAZE®••ïâ\>W2 €~´j/˜VXƾLÚ³/73Øáð‹˜º£Yß:gþœ¾¨G­á |ÓõLoênlŸeÚÝçLáÊwUÞ‡¥º»×¨òV–}©[Êò:òЛrEˆ#n=§˜Ä…J†óÖ0ì›K}éÚ’èÈ‘âYÒf‚âŒ$P÷J¦rÚ§ºHó1ùS·£oòŒ/(¤:õÖjñkõà,š6sùÍ?8}§À´Àsqx>v«aÚ¸#¢7;yQ{t™TsïèdÇFVvmYr,…ºÿäC‹pëgª%“èo¹X™wñ¿ŠšFìA'Lâvê‡^\MÈüŒÏÁüžéÕ ÐïÅßFåH~.eN \ßHã%bâsrWá¯å-àR),J¡4&žûeš8õ(³¦éñ#y°àŽjÃ`ë0°(m˜·Ò‡#ÈÆè !v¦§ë&Õy YŸqs?9ÔŒF6Ê×Ö­f†þ´=ÞU˜ )]5 ÞéVd6= b?–T)j£Iv‘!zd-¨Ü~âï}£Æ–LTä¢XõÐiª»áÞÅìíõÜ}…²ÊÛ+ëÇŽ‡ÉX–_-MÜk"ˆcŽ~ž<~z¡½óþfÕ)ÿŒQ_ØÙZÇ Æ§ÏK-S>¾ö²ûDÜÑT÷=ö¬;ØçBýgCDñî˜``aëè­wé/Ëh?Œu©Žd§ƒkërRÂdîT¿†²Òb³ðwVâ my㿉5”hã–ŸŸ”ãGné”ïÕåÔp{œÿñ™¬9ë[· Èç!ùQ8 ©ÙO¶IS%õíË'ï]i§SnÜ÷½ÌÓõ$±O'Ø-.ëì,é?ÂAë6¿‰ ד·¸*hXGóÐê\’7mþ´ÈœG4ч%àãg'Ms–ñÚ$2 ¤p]å±ÈVï\q¾ ¸¿<Ú÷üñEóýAíퟻó|é`Òêæû…A¾\nû¨ûÙ&;¡’]8¥ _Ö¹JtsÕVndÉ’âô•¼r±n¼81—Õ,ô“›W>‘ѽŒÄît@0%ø?¤u°à–e›—àÝ~Ô58âZæ+r‰\»Äú9U_ë!IRö^m½´~BÜÉL½çøÔ_%•z¨¸÷‘wè<ÝJ6… ;µéÊ–3=:ïÜÏ•ÝÕ•ÝúÞ^ 5Þ1ÚRø­†¼] Ï,Sþdøô»È“óÇî,pƒš§i›Ù±x+eÔBî§ØM§OÓv©NHàÙþ˜V HíFìQ¼'øY䦕èÏé'}º;?ÔídÍ&þnŒ¦q/ïÙg.^šë‡æ!ÆØˆô}†éx×!B¹ra7:žüá1èYkÍAÆÊjÑ¥ï]îµ;Žÿ òRÖæ²ÛÞÄ' #X¶* ¡XÕv…ÙŸ"=5ÅEž“ï6žx­ìvŸk-šùçéL-‰ÈÍ&%”ëœX•2£“¦¢ðbIŽ$Ϻa¾*}#B‘%õfl©9e’ þІ´\«ñó€à­—(š}Üsëõá©2æq?n]§Š6¾Š ñÑAËúÊÔDñ®…:(ávÙt¢û<ê á\Í—}%W§ØVgsƒŒÚ¡8{á…úiœâh4ι§šŸ´–Ó½…Ó‰fé—žedöxu_}Q jëÖ oJUe3¬Ênáãœñ}Ð2˜ŠÒ± MUNÈì…~Fí,„û 5­Wf+Xßy_‰é} |”‚Þ¥8.2].oà«¢(~YUýêŠI<®Á–ób¦¼ßwkcèMqA¼’蕚‡Óª þrÑwìIÑã9j“šºãƒ2>ªU¬ÏIä?Þ%)¬Á×ñÚXæv¡E—†¯-H>!>äZZ÷à¼3»©7—BãF*ÿ,±úø¦¡eíxR÷¾ËÝMÂ\a[o:@Õ”s¤¯¤YÈŽ#­t‚Ÿ€g¸¥æ Iurç‘Qk”²ï1kÅ8Eã•÷m?ï)ß"£”Ï3®JLsÙŸ³qôkØh~*z»vâ©•—KxÊrýFBRðz¦´}ËÞK̬ÒÍ'G<(Zà —<3oÕ—G8ÝÔPÝ’’ëA§Ï%ã™è‚ûI]„•Ü,‹?Uê‰Ë†ºš}s-.*ïÄ6¯á ¯?d*¡É#£î¹oRZ?«»(¡ttYDÍ’ŠGËgße ÿœ9æ2Ïp¤–äS¯;Ö]Ç'ÌvŒ—ðï³>‰wk}"Mw«ÿ3y~ûl"u±#½Ý# œ(|‹Ìó,ÞHwʳlÖl•7úOÄUåwÆÞ¸è“I®žT³å¾vJSŒ{?Ú7¯˜x&­hc¤Wž&òµ›Wñ–HC¸'¢—ýå²F?éîÏ[=|È»÷D,Y쯖íÂ$© „Þoè4@Bòåæ^ îNÖ6a3“ï;¯ãZÇ•8wß¼Þiß­´Ý¾?q9’ÙχG¾f쩨µË«‹¡Ó,üQ®'ÿœC'E#li‡]Ò4ç…5mEß*ä°6Ñ{¢cªJ=ý9Ê窱!l&) Í , ¿|Ó|&‚Žn®üÙVèRUÒÀVÚ¸yv˜q‰yŸ¬‰™×+‘w+k1ëÐ½Ž†ær;É{[CKL³‡{,wƒƒöâAª_w˜mÈD¼ªn¬êåzMÖ06 c{ù}Û0nYú6 œÿHåp÷<Û2×Ïw,ušªZt}ìh¨°oÇÝ)ïŸ,sÃ×L¶û8f]ö[JÍ–¯üfßÏV“•o„¿ÿRèU—ûgß÷Ut/‡³rú$µß/~”A(àXˆ·Øé¹¾k…Õ3‚³É–|Áåy8@Í*»(òؘ@ÛÛñÌfúEúžélÿ—zI­µz3ß„É ËzÉ|Þnï²Äôžy+:§¬v\]·çç²ÍVÀsŽÏý¤[ë²4|§­Tfo¼Þu÷(sÕ!~)/ßá|õT$# Þ;‹6ºØ|ÃÁzÀ³-än8p¹4ÿª‚íŽp“'Q– $Uô’ïÍ|-ªôÁ =!U]ké—¬O[1õôgǵFðÛ.}ç€d:z?/:,ò¥Õ AJ-?+]ªÂ¸ˆ­«µ •]þ5ˆ©ð$…Œ-’’‡J T<`úé¹Ô$½É¼ðD‹ì (fömY·YÛÓp½ë/)÷xõü¾· ‚[N]À镜WËææÆ(“öweöÄo§[ÜÉn<¿|{¼Ë¯ ŠÒXVËÊ“»z—½BbmlÔú¡4ÝŽCЦýp­©& ô „09H>6¢ãüšWE¸ ÜðèúT©Yʬ’r#ô G·Úª[Îæ×aÞ¶Cù`ûË+.)­I;owð˜1efë‡EÛŸÄçêY µ—q­ ã¢RN0ùgöÑ,þPïv{€F¦J^ÚªìZN)0ÈxÙ5ï“ý÷@ïy)óÓˆ¸4Ç6GÕén0˜ˆ­2ëVÀ1¥3³¦¡"½Õ܆*Žwb=ëõ"Û5š< aN´õ|Æ='±¯K/±:¢†<Ë„œ63=:ÐüZ(¾Ïü›mÁ¹G“h%ÐR*É4ªêX•1’ùo£õ ó5ÏEÊ™ò«y ƒ#W·HBX'©‰øÍ‹[³{ •µ–äbÃìy×ì|ÉÊò ¤o+yëeØ£®7Û¿êÓÙ¥îH”ªY@±Kéü?'5¬Y¥Ò®…‡Ù9P\Q£ð÷ KL×ß}¦òQÍ “ÚØè‹iýãÐ6gûþ ¦ú ÛS‹ø5OiŸ•!sÛOª‰_é¦|ª'^¢J;—Å*$i“¾HǪxÜÕÀaO’xq[f£‡vÝ@SÐð3×K2dIèÈhÍhdÊâ‰/:CÈ£ï‡QöϨ½žªº1Òø‰Œ€’§øtûÒ;ߤQÆ‘Ò-5æÛsV?ÎR™JXÀ÷ ·ò¯ÃS·Çé „³­¾àKÌc+úÞ‘ŠrØ•#vm íN‹Ðp]ªð 1©¾OØŒjx¯v¾«¾ÑÊãˆ7º+±)¡SAQZïM¾ä@Ûðý¬Í„íÛµäXró’›\·Q‡6RɉÙ/{ï—ù„b ­Ç¦]xvBC³… eOY‚VRÚuUx?ãÌKÞ;2-ïÞ._^*~íLMø ©ZÐ endstream endobj 534 0 obj << /Type /FontDescriptor /FontName /PQWCTK+CMSY10 /Flags 4 /FontBBox [-29 -960 1116 775] /Ascent 750 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 40 /XHeight 431 /CharSet (/bullet/circlecopyrt/greaterequal/minus) /FontFile 533 0 R >> endobj 535 0 obj << /Length1 1798 /Length2 11884 /Length3 0 /Length 13018 /Filter /FlateDecode >> stream xÚ´PœÛ- !¸k 2¸»ww—`€A\ƒnÁÜÝÝÝ=¸,¸ûãœ{î=çÞÿ¯z¯¨¾Õ½ZÖÞÝ›ŠLEIÔÔÖ$e 2±1³òÄ5dÙX¬¬̬¬ì(TT`¨5èßv*-ƒ#ØÂ÷†¸}±I¡/DE[@ÎÉÀÆ`ãæcûÀÇÊ `geåý7ÑÖ t›™r¶# •¸­›ØÜúRçߟZ:/ïÆ?â6 ° PB-@6/M€Öu[0êö_)h, P;>f #³­ƒ¹#À µ¨AÎ SÀ’J@Ð_Ò˜Q¨`Ç9ÔmÍ .@àÅ` 6A_Bœ ¦ ÀKu€º¬@ÙùYá_FÀ_‡`cfûOº¿¢ÿH†ü 41±µ±BÜÀs€ØP–R`†ºB@ˆéD µ£íK<ж¿þlU_þ¥ÏÑÄludv[ÿ¡‘å4/Ç, 1·µ±A Ž(ô'v™¼œ»Ë_—k±uxü™!¦fÈ0u²cÑ„€í@²q^L(ÛÌAP+++;d¹šX°üQ@ÃÍô§“íó‹/;[;€Ù‹ Ø ôòÅÃè @œ@^ÿtü7Bac˜‚M c9‚òwö3Èì_øåþÀ®€O¬/ãÇ`ýãï?_ú/fj ±vû›þç³h«Š«hÉ1ü%ù?N11[W€€‰‹ÀÆÆÎ øðòáõßyþsÿVÿ§Uþ«»d”…˜Ùxÿ%âåôþ-Äù¯É ýkmèÿ]AÉöežAÚ¿Ç_•‹Õäå‡íÿy þ ùÿ›ý?²ü_Çÿ;’r²¶þÓOû/ÂÿÇ´[»ýÅx™g'èËn(Ú¾lä©Ú -´"Èìdó¿^Y(ðeGD!æ/sÎÄÆÉÌÊù/;ØQ ì 2UCM,þ5Kÿ¾Œ—Ö`HÅÖüÇ»óÅÊú?¾—Õ3±zy[_®ìOèe³þ»®$ÄÄÖôdçâ€n(/ð‚¸l/»j rýsÄ,Ì[èKàE£ÀÌÖå‹åþ`ÿÃô'úÀ`‘þqXþƒx_˜À¿/€Åä?ˆ‹çÙZ¿ˆø·å-,¦ÿ€/™Aÿ€ì³@‹ù? '€Åâ?“ë¹ÙY€þ™ýÅþ|éÍêð¥ëÀ—^mþ†/›ÃòT/»ÊbûøÒ™Ýßµ_ŽÀîeXmÿ!…í¥;‡À—VÿxéÄÑèhñÂKè?à Ãéð¥9—¿!ûK7nÂÿºf'‡——ðÏ}|™ã?Ÿ]Èd‚2?kkÂ`YÐ|S.úÎ…i{”½÷,ôI{K’ÈyGÕO\àöœ#+lN´}úWØíÎ{þs•«•ÁªgRÁ|u3¼™ñ&£ç8ŽàÝ£‚û/ù¶¶FSs‚ãzµ~— ‘)º7Œö§Û3©{ÒÔõ¥×%Lj4µ¿™Ñ^†‡!òðp ½ hMm)«šn•¥t<=Œ%‘Ú»MêbçÚè](d„¯'½ÛßG·“¿HÝú¶ÛÉýVÞh0EµÕ)IxEëwÑð™ÖØqX]˜‚?MvküLæl+\Vͼ^¦o ®'N|-Šüd Yô‡«1͆?}›D~cè|¼FŽ;MagQ‘4® 2j÷²ÔÄï€JæØòž 1ŽñiSI9ŒC)¸µ*êç?Ù&L‡Âü"ÀŒb-$›>jþ0ßÃ-Z.ûA+4³›»0eP©È0COïI(ü´²‰=¹Çކ¥yÁø‰Ã÷,Í4, ý81,0GD}]¦wé¶³lç½ÝÚCa†Ò_ºgQ:C¾WÑœÈí€pêw Lùy„™æ;µÁ^г¦u"êø‚qÝ©Ë4£YÏÅLGì °ÙÔcÃ&ñP°þs@•À«/„î¿ÁÏ) Öi'Ú‰Ï$šÃfÑ¡¨E^cöá&Œ"Åñ_ª†¸;½W…CåÔÛ* »«œ/)ãª.ÀUä”§•Ê_Q2“ßÿКW>€YÞEb‡9+*æà.tʆÍ5ò©tòΪl†Ù -ÙÌJà½lÛQÌG4c6Æ9›ê/Ú|ëÓ„.M:…VwPð{ësÆ4¹üû¬w8 w? “@Ù$=¥*úÖÝÕôÅCz8<þniηXx8D¬i)G÷ftœßÒku ?Pyý4)E¶ÐyÒä›ÃÜ|ÿA§o’땇7¢b’ûŽL/j›Æ:fü¥en¼°ï›î{’õd”‹’ÒÜ{Y( hqºu‡QT¥öSíòä·’›À—Wq}s|gWÜ +TÕ•ÜDàk쪷’EI(ë±ÑB°DÉöCp„ýÑé?šåôJ§&=?U¦Íå£i9˜ã¸S+,é9%-× †'sœÚõQ„Ñœô§"|×±9bE^GêÚ¾„öTHô‚?k/¨b`"¹ÇdÉqH‰RˆDY¥GL¾_;Ÿ4eñ}U¤ÿÝü¼û³ûÐU_®€Þ}Õj,dL›ÖËI–`•zrÅ4K9ÛL»¼Z¤Ÿx«ߺÏÁþþò•ñÙ^Áwx-ŒW5ê޾ʗ¥5è»ÔqF{k:ŽÒ¢äU›T;˜Ñ½#‰äGMÏ5Z>à”ZP¤ÇS¼KBÔ Í€¢½V‡%5O›nTS{äÈ\ôR4ñ2ê5½Jvlo›‰† Óx/=»ßnÉ“øŽú$òyÍcµð²(Îë›6!èÌ[›e1ÝIzκt¨¢lg„Aª½ñ˜å,ìO<uü½äí¦‚}ƒÄ)S-14¤OÀìl9÷ªz™8ÖH§´-|ߊqõºEÛ¯,ºFˆ4æt\xƒ…{|zå~˜?tã¤[Èâܼ3]°&i»ÕÀs÷ÂÒU[¢±o”"_ôyP3‹¨íÔJ^¨\TŸj[TwÃÌ´¸ëKaáËÎe´¹/VíþRõ$—,wñû•ÚÓ’³WÊZÊAmwîÈ©ÊçÔ'ÿÍ¥å‚">ííÜv5 µ…ù^åÇ—¬bDwó{¯‡H¤KÈsÔ¢pÜ®ì8+#ð~c:ÔŽëßÝi—+F =E‹Þj÷Ù›° ñ…wÏPâzø‚Œó6 còœqˆ’…üïÜÌ'ïwÆ{*:5ªAãežyË‚tnĘ÷6Çø)5öHC’ªLâïÑGä릟%>—œÕèû ªq¼À¿3"Ó]8àmRü¢Z‰0Ï¢5cZµ^ ‹´ÜÉð$¶³ô ¿ìV›ˆÚ_öôØo‰XöÒ.Mô2ׂ¾¡ÐŨ _Þµ‹ýîìÊ3»[Ó*_›}Všz;j•Ë`¡%@Y`¨až§p0WëôøúÂÄWøØ zÊí¡‚–¿8ƒ½bépÿb˜iîÆûCÉ›}¬ËÏ#û%yÔªñ?Y?µ¦Lˆ*ê7›Ñù%\ëªOn¸IúuѺ;þœ¹D5XÿH;Ñ®!MäŸ4ÂŒ‡dSxÍ\íR; ®È”=í]Sˆ‡3™ ¾}ƒXj¶L‡¢[))äsü”"ë$‰ço+,õÎuŠ+©Ã‘·0:²ƒÌ÷b\ZסËr6ãàøÇ¹ÂV{Ï ^ O¬ß% 9UbÛ„8˜ÇŠ˜ùæÈú°¬ÓÓÚ;­ Š¥èf)™Ÿ&‰–]E_yr=U1}ƒb­×-þ0ç»Æ—¿þ5•Æ“iÊÑÏ-– ´9$‘÷„}/26Rɱˆ‘“›IÓÍšÉyßXàë\"IOf @G€}°«e`5ì½v<Öæ0@Ç/Çß<ñeM޽fÒMŸ™íi†”ù•†ugF/G±ÊGùÙ¼}µ·wWŠÁÆoß!Žc– ²€ Ց礧ð>~ëÀo(?§GlšvûuİРVZ·EÈzë©íS‰1ï`ýÊ­’ZC@«üÛµã>æÍæˆßÆ<Ý™I⡌*øN‡¼¨¯©ÈQZ{SØpFºç±/ üä5±eÝòÌo™Ý®W:îÀ´Ñ$I]¤©Ùsˆ$t"1/ÇeF¯Ûàœ§§üÎP…t9ƒÎßõLS¯“Cõ[59Îì3:£@VkcŒIÙo}Nld,Cؼ웊 UØ <—<¿s¼¿ [Uª¬_qÚÞæìcý&ÞÜÆÆG>OÊqN™Ž>Ç:/X]á¹ÑäúÔ`8…±Ú1A·wB´\¿ôã{~¬g›Ç2®{….‘ËûøÆkHÊ(n¶­„õÚd§n ’©¶äß.{õÅ®Ú ¬.<ìÎeŠ­R7µ?{]€CŸÑUÓä´¸#Ö³“„l¡\Ôì§§™ÍuµÇ(ŸÚUùTÆš‡ÛõŽÚG]r¯šXÎE,ëGŸ× âE‚r® ]º”&뼤–Luø‘¢C\Âú~R5óMºÒ}X2ˆOI}äðSRØíWŠḬ̀Uý"°:Œà_“£@vñ0Ú²„Ѹ„ï "ÐkãfÆ+ósR¿„ØÖžÞ‡®“`ÄÇaZ±ÑUSƒpïðý檯[ÍŸ²R¾ >>ì·’UšW£ûÒ˜u ÛW¹4…@¦Êg~œ¹‡^_RÃO¼Jg €y¤ÛÐýÆèþí¶Ç=l¼-ñWnY|6L_zmyU6¹ÓØ Îæ¨æÀ–¿ºéððPŽ+"L‹jV‡­]V3`Í ‘‡â{Ì´aš‹UݓϬæ]K˜Ý­­ z†Å¨þDÛä{8¥mCþÚå/îèLjé“4kU¤‚jN¼ÉrBX%ˆ0‹y~e¨¯ Cš^Ûï¾ÿ>M㘑R«`‚ÛrähñãjÍEä3ɳ.×Fëj]4`fHÕ~¸ôp>iRÚÊdôjýÈ#; Ù3O­ñöÕ£,êî›^}­­!Û|B¢»; –ÙùzjçˆéœåŒEF ÿ@~—"Ô§ë‚i¢Gå…îýÍSykcûî ™k$¸e«A÷¾“KàÖ­ŒÑŒ囄+Înì;L”±°5™yiƒT(’ö³öãÄàÃΨ1½q"!ïƒÒÆ\x5õt™×BE=ÒÊ쇻 Á`Ï»ñöTßé!m‚v2ÑÄßï¬úh4DÔ'üÂK[¬TẍŠ„„‹vÏK‡Û0ì¾ò,5ë;mòmzèB«$ᔉÓó¡?ç+ԕй:¥WèBzÉ(~òÀ‚<æFb§Í+â •JgU_Õã^.ñ½ÍÈO˃O]ÔÓ}h‹€71|3X½\z‚²®À¯˜¾2Êå}z¥hsœPî}j‘ûòs®BÿÀlÓ±Û¥0”—qµn’«X7‘n%##[€Ës$6,«0¼ß×=aÉÆ[’9¡’C2 ‰Õ÷1ÄA#\‡åŠbà•ŸÄa×èF®ïÿ%^}¡Üð)¨j·têýlÆüV0XàDd­Š]³×  ®u&òÊ œg #°ý¤èÛÆU®€[ëéöƒF]p­ë££@ɲ~Ït=â†fÙá§gð ¦Î÷ŸÍI#û 原~ ­‚ÂR›kd)sPÔžr` ¼×îžšïAªª Žqç›ÎÄv‹0úã9˜Ñ1³­72]¿ï}D©ö~×sB¿rš`wëHú­—;ÛþN겦ŸJí ?P³Ý !å¹ /{Åß²Ww.œ®VN…p{Kc4vÈ2D;ìå^—-l1B®ßE4gezîlõnà_jwÉè`M}Óôn)¹4ì€W;¦é7:{µ$Yì$Ó›)s¬Ð;fú ¿Ðh‰±uÙ69œû41ìÙ~´í$D€‘öâp§ì[ˆ«H–Ô¸[Qr&L2é†×ýbN)´ä€ˆå'zp#è®^ Þ_J t»ô‡×TFþØ.-œf7Q¬Ðwô¼óóÁZŦì3v-Âñb¡„Ñͧ“˜s–`Ä1v¯ÇU)¥&íÍž¿¼â)Î êB[û0Hú܃[Y½9œ³ûsC¨©w!÷†Qjrî¦o&cøhÀ¯„á&£ϲLANG:ó ­G8f.ò-h'K»„¸~#"ñðÙGs¿XF7ö o%,AŪkJâ¯ØŒÿ€kÕ—½•ö, ÎvÖòmKÈ[㾬Ýî˜57f*Q¤#s‡“ªgº˜cÙêCÇáºDy¤±À´âûÈ+çݕ٨áé-ËrÙñ•½¹„ÆÍEt¹¶âÞNtò>nÔÿ¬‹e¨®zmÅ#‚ñR6€xUΈaŸ :лôJâ ¤aSI¬Ð é¬}Ó Š9î®oWÜПGž‘À,Ü93Q6Ͳd½ôÉz™:uï-Nˆšw¤¶‹YÖEÌõ=D¿—‡A–ËEW_Æw©²…_“¼ïÛû ÿµ¯JD„Kð8 'œg)AcËôËÝ—‚Ó~krGÚ2(P, >–ß¾S7U9øc;yÙ;–ûµç3ªn”K• «µJÛSáÛn–Àko·¿ »¡¹=û»Ž›i¾QˆŠÔÆV½ÎÁ Ò\bâ.-îÍ742ÈTõÆCOȴ͈\zêlD•†›}Ö/6à?ÎèN(,*Ÿæf_»É«ÆÒ·«À±ÃP èô5[Ј#+“–¿'ÂH=zÿ\E ù„0Ä×ùpœmoŽ ù±'=H„ÿR„b!Æ}\e`Ù°·@ìúuJÈXدR¶8F9ÓmåbCY.ÿä:ûªêi'Ü!qzJ.„/¨‡Ôªá‰]8˜P#éõãj®î²lÃý^@•˜ä¼\+µCóGcd‚Áreõ^þio{)^“~Š›Ü"“D¢ÆÙ¤VS…¾lcÖÞ„¡6ì°ä‹ž?O*ÕüñäòúBôÓÒ…¨R‘óD›üâ4 kY6cê\0wælõF¦¤Mâ9„èu8³šôæóˆh¨²0¦¯'{=I›ÄEž?±±`PŠ.çU}Ov‹Ÿч†Žª8"z™4Í_v=×ê…aü¼ÉޚɾùÅ‘ŽÎ7éõøª a%,• _­gî@;FØ“Ð[ÚG]¿ûÞœóýD%§5KGŽø§¬™q€G†Å(šdÆ?}.ÿOÆO}Ò2ñtÆ7Íb3°ZäôJ~9§ëúÍãÊV誅£ÓrT‚BÅQÅš¾ŸÓ)ÌHJ,`u.M¿UW…±} U6A.ÔKFÔd™¿¿¸÷uìŸè¹ìivU -Ï­R1“z“w•<„¼Ä %ùy±£Á”9iF›äww•QPÑ!Êtœóóí‹ÛÈ$ÕÖpH4g¾ë´‰}Æ£½‡Ÿ–ðè^¨ úLh0³õÝ[Cfj_ªÕ¤{AI_üdeöøýžcìÄÉf@m~µ™nÈßôvˉä Ôº µ¹²ToÓ/1=M(õ¹•0%öɬÐå±¾§Ñóqòð€”ãŽôu­ÄÂtšÇ–ûx:A³€]äÌ;¾®7¶&oí¾¶¼_ »Ú¨Á·TB»42Þ°#y~ÝkêÊ¡ý«]íÍë{¡‹'Ét ã@3Œ=:£¦ 3|ØžeŸ«Ï´Ö¯¿#~ ú‹á Wí÷‰µM dä >X5ÝÝEQà)&å‘. 8„“F7 ì_ùõëãeÙô' û½× 0³ˆ˜^U—ŽëFQngp†÷Õ;lj½[½‰ææ™óO:É29I‰(xâ¿+kNý&”m¼Ø™vŸÁ“”~\³'ûù Fÿ‰-îö~»vvøƒàèqS±­{¨Í”æ(ŵÇ-ú\ÃáÛÍNãLÅ_¾“üIL>Nn#܉Dt΢ɇé’t{ÄpÕÉj°kØ3W=¯È~€=0ϲ—“ŠìŽªóÁÓ¶ãfµ…ªª{ß1E žC¥ôDEï£däÕ…ÜkuõƒžßÝ*¤ûU¾Ø XÈþÜôk!̶ >ÑíãבthÛÞÉnÀì|ËÈ in„Z·Í•:MÅ•åº%t]ÆeD­²ˆ;àZ6(i÷±1.꟧vé¥;EÚ†ö»›If%!Fg[Wº[U¥‹k®KK\?´y]Ë‚Ñßtî¿©nœ¥8äÒeÞ"SH `GÂë¾KÊ_3ê.Áú’ZHĹ1ì;²¯”†ðõ‚ÒÓ|‚AKøh±ÌJ,´ëç}ùáÁ7lºXzþ8ÂçÛ^3ѳ½‡»¡§x²óö=ÑwMÒfcã· í{p3WÆ¡PxðWò΋°ÖÃÆ øF,b)¼kcŒ@`üéYaÆSàI y–ïš5ãÁÚð5Ê"ò ¡cD­ñ³7,18SÕC—§?›§;™º÷Ë>ªcѵޯEÅ@YlÅü¬"$$YdŸ²vXqÕÚñóÔ+2ªì³õóµe9¡“ÂùñòV5Ì/YÚNm(ÑmW ßáWùµIT¾ØnmîS|ê–XHÃL¼N?.™HAp×!Q—K1NXn{Ó‰™Ûñ–h+­ß:Ÿ‘Ü*¼J¾üÛÙ ¿) ‡^îÀƒÐ’«z½Et÷]°_uÖMJo­b"$¯K1¶ö¼!ÉkOýà™0‹¿h›å¨ºÁȵ'¡»cÆi^~Íué3|dâ´5Ÿée¬*,eeÏý´®Ë¥óž»mŽU—{ßÿ+‰í‡fßÚO·Âð‘WÎõ G‘k’C…RÞØ5Ôœ“Q£<¦kÂÅìÛ¬6ÇëÍ;!4å®d÷iÀXk[½êoß4ög(úw•äÚ’Ù–¦ûßÄPœK¥¶°}'züÚÄ>éa&·T]‰¶ª©> sš,ð•3˜úgÙ':¾J¡¿›&¥tQE~[ÖÑ#IPÊÄë}Š€ñ+";Ù8Y€«}uH†s_÷=2~Žj«’¥grn­ú mµ½ñ™ýž"‚jN0ðLÿ¡yîÌ­PíÝü¨oA¯çÇݸ^ÉR/5ƒøJæÇNw±«šä‡çÔ¸aKüaVWNáU·ºTVÙ¹Àw¨îu´¨³âí(7ĘßçKÂℚáõ8-Eš , GªÀ,ö*µ¨ï›÷.$µñ"àw>|µ›´«šÀKîƒ+˜átcÜ®“îÁ¶¦þ:ã¢ÿ1ÇÉ¢˜ù΋sž÷Íñ%g5úhˆèžÇ(¨ aCßøÀ Öä9‹Õ3ý•ïûÁÄX÷“—6uSWIÄ¥cÿhPÞÀŽÑ+â.ìËT\†çEÜè1Ô¹¤¤‰O¹·öæâ~a0¤š¾œÓo¬7*c£w‘¯)l4½d5†®X-'QØîí’%UüÅ۾ׇIf¸Mß}®Ý ­Äzoa ¡VìçÄ3©×•U4)7,ÃòBâÒ·h>®ÀüMع¤\‰ŠÒâv£yWqÙáÙþZû³gY¾Qð½¾mæDª ò]LÓ6^|_Ÿ¡_[0¹°Ìýø•…¾²ÄæÖQ²Q‘üòñ>4Œgcx×õº!Ûñït só ;½ whædT™½»½W‹]°õ»Ôþik¹_£÷ñ2©NqœD?~ªo(?»ipùx ÷Ù§ìBá‘Ó‰ØÃ?z¤H‚ü+•;nDÛ®Pˆ¾aËPû’­Ó‹î#€*äëN[ìÛO{˜>BêKÏËBï­ Rt.7µ½ƒZÇq)£^#ŠäÄ›òq´¨1½.¾jrEþù0ïf [BdÐס²è¿|j…2K°Ä„9N׸ÑOU½D–)j<`Dò~z Ì™XgÞ+Á•ÜMÌGê4›cÑÖ+¢Ö0ÄìZ-Ù3bvWñ‡$‡Þg³-~aôœŸ\o•Ÿ‹!k:»3ù¨Ë·Aɼ¾ ':Ï‹´d _Äöð]4?X˜—3_ƒç–Ãâ8 „LVæ™pP¦âÆÞÂÙD&dùŸvŸW¯\¹\;=åôRÁu îÜ\w×)|òL@ …Ed 9ÇO0P†˜J3~Åóà¾2äÏØr× ¯'Ÿ\îŒBt6¥è™F*?¶ `è„ådç&Áaãñ¯}¼ÎB"|Õ"xÑ“ïV­³‚““ÍiâS¢‡i@"áïoèf¾›¡XëÚ¼@œŸo[<òCò\­‰›+Š_ÆW7TP¾i1.¥ZYj@£)ø—ëô©eÿz‹†óõÇX•Y¼fTv·´¾]g#:O,¦ÖÚÙ·ÑÏ¿wcsU%'wßÞô÷þž®lT’0ÜÄ'¼ÆæÁx67ñ*®p?OR «¶*ÌäXâkS¢E¿<ÇÐ •,FFìE¹›íV–üV‚ljº•>‘l.}‰å8 ½¹Ô³Å§ =‚ú)Zß øµ¿«aèñ ÃÒdMê¿Ò•Ò}R ®EŸq²öÙs(L¶ôº³¢MI`§¨,üRUŠ«¨û*­ýCöuoÉA¡©ŠÉ—ßP÷,y?oS\x¼´Æb>¼±€Ðbõ\è]T÷àµ5Aú)•½°¡aÄn:'F'‰<ª¼ç­ Ŭr¥ý*rúçš,¼È»sì.\u–ŽÖSâ¡ ´©» ;µ’¾ˆaƒÁ‘d>p+yN–=_\1—|ap’HW·ûëŸ ÇL.9¨¡¬ÖlKÐåwâ·~]~pŸ¢'Ež €ØŠ=”×ÊÅÕ›ˆÃè^ò>\>ìV+†ü<[Of$ž}+™ eþ#ʜΖ¡-³„ÌFÏËØ# ådîɉߜcÍâйVŸ·½û¢BXo3¥ å®ì¬h÷’¯KÊ|dx.W  пoöÛ×3ÿè­nlcI{ cbDÖ1¦ âÒ ¤æ[–gm»ì­)ö=¸òǙáêyÆš2Iÿ¤–¬GjSzû,“þ0§¾Ó-ÞZ«Wl•t“%¾=Ôà“]þ%4¡„}ði¾Q|f;V_!¢gÇ8ܿ݀çŒ!&ƒØKñfÄ®L'dòäý7žq¶Ôk®Rĉ-†b-ÜãO¦Çè4߉~òï·N¥—‡¦Â£žF¹I³ùYêa.¢yÀ/¡kS«¬_IÇ0¯2iÎ~T/ö‚Ýs Àý02eý}¹…†þÖ+]_IÛ&Z^Ý Ç•Æi—÷Åæx@‡Gõý𣬕 {å›dX´«8á¼Lv«&öÙ¿¨Y#e8çµ7VmÀȬ¯Ý—I`O„IN_¼ŽŸ‘ Ë5Æ*ˆl“»Í~i´E^mG—ÉkÒ$ËïC·9E¹0:îî2ÿì7•­äáQÈšœ+—*6ò.a.U—N[¥"En¼”ðéÂevh.S¿˜,®ª§ß`ÿ¬&ºXÔg¿~ÕåÆú1O&zSª¾^çþšÔÍØ[$Lž½_L oôXШÍÛ—ê~^‡…²_Éùp˜ôm¥r`áú̪9np}ÓV⇻7RÄÈ[_Á+qÈlöãÄ^\I»°“) ýRdCŒúJìùõ ½õã×®"ÌãÑÁ wÛ‰!yÝð1È[µÄÅÓv€b^tSÉçï[’æ›!ÉÕ%jhó<Í(}6#0I·³’Á¶‹ž¡†‹G3sSä…Ü´A÷v_°m:lÊ눌úE|ÒëÆuí.ʤFëåÑ Ú ’#œÔåÝ0÷sððcž¡Œ·¶íωZñ”ï7¸É}Óçûq÷1M‰>Fã §]¨F¹úVj½ç­‹Jhua§ ka£’'¨ð’8GÐæZç×ú•n"JUk¶’ðÀ­MØÈÅ /yÑ>Ù ð'\~Î#Øš.q©:Äx:ãqÎ-ê8:¹lPJ)3I×—%xeºäsNQU£vu¡G/£SÍÐ #L›á(}¾GrØ›7ïîÏ•E{Ò“‰ÝÄ1þæ„VwÿuÅ\«£sU,îÑêR\‘Fc²þ)·a,UêWc÷·8ÍèX‚Ϩ’¹iùLß·°Êìiq¾ÑEØ|4A6›gDûlÛbÕüÔ÷›)æ6óÜqÀ²CVÑçb,d)Ë’tQs,;æòç -R(µ9…AÎ]e3AƒL7 ³gÌbedsû¦I ø´£5iÚ[jÛ|?¿§¶ŽMô ¸ÆùEãë6œ?¿y\åq]‰,-ø´ˆ‚DKêPÞ$"œ¢I~ùùÓH¹åî·úåÝ„.iÚ '1ߣ uGtqI Øämo MøÜv€[•Qo¨ âïÖù®À!°Tf"?:9 ºD~û+9@ ýõqC]ì'•ZS'm!øo¾©‚«æ§ö%³[9ú4¨f]{7šÄ¤¹l¦¿“àã.›åÕ5oõòSvÆÎu ¬fýMðöÄeÛÇx9ö˜R#Ú…xíMÛ%Z…†[Žæ·¶k†(Uïlz£ÅŒbùÏôc‡U©?Q‡sWY7aê'ëw¾°Ð $õ]¨#›{ê¨w¶l˜òù „]G¡U'ÝuMp‹Æe´jû_½¤ƒ¶“g?-¦!0Uï#Lž+ Ž-×]".¨ú²xw'1¾S‘PÏ€QVQ «¨ú&Ÿb3º1;üÆØ`rv²YÙI6ƒ6î³› Q<­G\¹yaÓ é‘·L&€ÿ7VRùÎí·Jù7%Ø*)ù¿$šd·pr6$õKVdCYÖÊy÷¯=2'kØ™ºd%Ìb”TßF†ï+S¤ü±[«Ñ=¯È$®Ó_m¯èìÓ_Yra~ô—ô£KdNy@NßÄmkª«RHF îm“dÉâÄ<ácݱ+kôN`KN»,7U'?דø ¨?!‘‹pqU‰9),†Ñ@l*Y7ÅÞËDÏ3ªTz%„Ñj½rôVCÔAY©<ò''y¤eNöÛ Ì6ªá·83¾1hw7Èe´n4ÇMLyVGaCÝ»$Tn5CâKI×ùñSÁy¿I‹g³byag·Ãe`–Z‘J©¿±óÉ{³î•|¯¯z#<+õ,;> Bà7„ÏÝ_kZ¥¨Q/sÚWŽC[·cnÉç]aÃ¥‹%Í~z» zÊ]¹€Ñ†ÌÜ,mÒ3‡ˆÀµ¶FhPu±Õ`‡àía•™³=$J:Y*ŸºÁ+7ÆD” U1žJfj!€¼Ä8IÝï]/DzvÀTƒÙµ ŽxSU·oÉdZDah/ƒðÁéiœns<³6U/W˜šý—×(W«_fæFp“.£Ñ =#Ù ü]µN’A)YZ¾2?*éTá"Ÿ7½Rk-XˤîãJY2å\üѳÍìi>oë±Pޝ ·u”^;EN3•:õ€ÕGåß& ?Ò¹®+lô­wñ§ž¥ß¬ ‹Ü}Ì©"ò­7e3¾Óô»ªüÒ à¢ü³ -ˆá\»èoabyYhÅÐø€d“1A°po`“ƒ!îi-››¼CO´ìõÌwaÞödfºÆqª‹ªÜÕÅr;Ý“ßqÕ‡ûi G]J›ø˜ï›Dž£Œ¸i0q=ÆÅÝüR€„CþäšÍ%Ÿñ=cŸÚ¨Î©±!Å*Äo!ÔµÖµÊrî„ìs±ßod>ðMý–%Ñ+Gf‚£Óww¡Uó?`×§÷»ÍIïèçQå>|¿ÿ9ï[T(¥=…îôÐÞÝ:ˆ–ékHaæo™÷¥¡@)OKCÀä{½Á.±î[,$³oÿÖÁvã;ªò|OåOÄ˽lŒ×xÏUžÛñ˜ELÀ$ö^s€qûP#:nv½dfM*Nwßê{6߯ÍD Y@ÌÉé‡M¡†i(Ên&h9ƒð¹…¾ÆP¢áz’¤˜e î«m¹¨bÖìï§jœªõš!G¿U¡mW;Äî[×›FžÅˆ.eÊ­ÕQ+±–2®mA=Ÿaw×WUYºúd{mÂrVØ/T'î̹éèHn Å›B¸ìšä tY'0:*z–É•ø«—0}‡dX§¤Ì‹óÛÌžçc‘ÓŠ(òÑÊ!âÀ´íBC“éym \±KqE¥Z³-È-7ÃýÒÎÒ+á™à[“Žj×÷Jžö]Nà!nój…¹‡ÖÇÈKk¡½SeïôXr¼2y‘›uÌ«ã…$7äMÑXñ¬1}»$®‹äv|„xàkbØœ¯N6ÇOlÇœ 4ÁSoÍ·$;Ây‘ÚSu.…gùhXÙR‘¼å¿WCã˜I×£<¸¾ÉeÀ-šßðèX¤ðåøŠègˆ­M~úAm¯%o¯Ž”)™)¦kQG»ámÙ¢M)ÑpjÞh]¹ÐYÞ $¾µOiwÿšOÕj<Á:­_‡Ù–˜cFgÔˆ„ŒÖŽ ÝÑ‹ûpñmYú0X§$¦|:|òÍŒê#Ä\Ævç|duóµå][ }t:Zp×¾„ɶ¬gεKè>ßþœ éLüF\ä\ñ%l3ðAQiÁþq¶c‰F6¯:´Þù¹3“Ü endstream endobj 536 0 obj << /Type /FontDescriptor /FontName /WQCPVJ+CMTI10 /Flags 4 /FontBBox [-35 -250 1124 750] /Ascent 694 /CapHeight 683 /Descent -194 /ItalicAngle -14 /StemV 68 /XHeight 431 /CharSet (/C/G/L/a/c/colon/d/e/f/g/h/hyphen/i/k/l/m/n/o/p/period/r/s/slash/t/u/w/y) /FontFile 535 0 R >> endobj 537 0 obj << /Length1 2871 /Length2 20454 /Length3 0 /Length 22075 /Filter /FlateDecode >> stream xÚŒ·PÙ-Œ“à»»»'ØÁÝÝ<¸»»îœàw‚ë;™;w’¹ÿ_õ^¥Š°zw÷jÝûƒœXI•^ØÄÎ(agëLÏÌÀÄ•WScf01±201±À‘“«Y8[ÿ+‡#tt²°³åùCCÔhè ’‰:ƒåíl2.ÖfV33'€…‰‰û¿ŠvŽ<1CW €<@ÆÎèG.jgïáhafî âùï¯*cj377'Ý_æa £…±¡-@ÞÐÙhb46´¨Ú[=þ傊ÏÜÙÙž‡‘ÑÍÍÁÐÆ‰ÁÎÑL€šàfálP:]&€_) m€§ÆGP3·púϪ©³›¡#X[m@&.¶&@Gˆ *-P´ÚþGYî? t€¿‹`f`þÇÝßÖ¿YØþelhllgcohëaak0µ°%äœÝ醶&¿ ­ì@ö†®†Ö†F …¿B7H+ AþŸ“±£…½³ƒ“…õ¯¹•YÜÖDÔÎÆhëì÷+>1 G 1¨îŒ7×ÊÖÎÍÖë¿ÈÔÂÖÄôW&.öŒê¶.@i±¿u@"¸ß23 3€‰‰‰‹•tÝͨyØÿ:dþ%åàãeog0¥ô±0‚þƒór2tœ]€>^üÁ13L,ŒF@3 [¸ßÞAb é0¨ÿŽî&Ðø1˜~ýûç7=Є™ØÙZ{üVÿ«ÅŒÂj*’ÂJ´§üÏ¡ˆˆ;À‹ž @ÏÂÊ `gåpps|þíåŸüÿ›û_R%C‹¿cûß´­©€û?)€j÷ß4\ÿž ª¿—†ðo;Ð4T¿‡_—‰Éôƒùÿyþ2ùÿ›ü_^þ¯Ãÿ¿I¸X[ÿuNõ…ÿϹ¡…µÇß ivqm†¼h?lÿWUøŸu–šX¸Øüï©´³!hC„mͬÿ)¤…“„…;ÐDÉÂÙØü¯‰ùo@Þ­-lJvN¿î=3ÓÿœVÎØ t§8šõ×´Qÿf·5¶3ùµz,ìCGGC8&Ð|±°³¼˜A;jtÿk´Œ ¶vÎ (;€©#ܯ–r°ƒ¦é—è?ˆÀ(òqE#.£ØoÄ `ÿq2%~#f£äoÄ`”úXŒÒ¿€Qæ7±ËýF vùßÄ®ðØÿA\ v¥ßħòøT#ŸÚoÊ]ý7±¿ÿ@쿈]ó7±kýƒ¸Aš†ÿ fЙ¡1h~þ‘°‚l mìA;óë:üGDgèdlê½µÉom6–_bÐøY8Yý.6(lCçߌ F¿ÈÂÈÐØÊÉÚÐÉüÿl¿ÄŽ@•0r44ZMÿ³ÿ-þϦþã•ù?b+ ó¿ô¹Yÿ‘ÿ(qã;(Dc;kÐTÿ“Û/‰Í¥;ã‚ bbgmýgÌ {ñwm@Îü)ǯsеñÛTÓß& pM-\ÿðñëØÎåOŠÙo s³_;ðOPì¿K˪˜¹‡½9Ðö ÌâŠÔò«? ¨8¿#æUÁú׊ÿ>•Òæ7ÝðŒ¿©ØA¾lAWÃﺨm]lŒ~]Êf„z{í~ òi÷‡33(QûßÇ {Ð‚í¿šÍÆü·ôß­½+Œ y}ü¡Êñ—ÌÂîwCÙ@…µ·vù#1ÐG£ÃïÄ! Ó_—ß?¾Ù~ íœ&F¿KÄÊý·ðßq03ƒ”ÿh3¨¿ÙØAFN@‹!û/ ë½c9q½Àÿ„ Êîv‰”ÜoZÐ+Æèlîüc¨@Õsv³ûÃäÃå÷j€8ÿúØr2¶sü³ 9pý‚vûc1ANÝÿ€ V? ¨}ž¿cyò:þ'‚½Æ.Ž þ9ÿõ„ƒÿ⿾Ӏ@w 1ÜÒ¼1o°e]ð—»a|7ú þòjz¯%Ç—$Ø$êêŒÀuÇá¤á”•mqªk¡e¢g¯£Öذ¶åöGï§q*Ó;íp‹SX“GÂõýïÞЫ íz?;x¿°‚lï’!ÏqpáBRÊC¿së“t¯ï/û>:¿£¼[Í! ÿTöþ£z´n@ñ,y®Qæ Œ3ý»74hçîȳ×73hÙ“¯D2q´p>ÇY ½´7X>ÝÏy®V¨±8}Å%ÃÕÆyy66Má%²ÿY{Á«¤(z!‹‰šl}¬ŸÈ{´‹ø„GGN ›ÉÚq‰[rŒÌ§½ž1@³ámÆŽª=MýÒ­©››„džbKQŸþîPØÛÛpGZy×X¯ÝÍ%¨k­£kÙ£“ºIÏÓ­·p[˜+Í"«bÏa>ò0W»\_½ ,ÓKÉj½z-'ígÜwÝU;ÊÅO]à` ’R‘QÐ Òš8ɇã®kÑÙtßVs·½Õí¦ÖÆ]–PÿÎàp±ûÂv’;¦Â%ûèéæFÐèa8Y$Ín„ÖLdiw¢Y”I—À™]0?\&[ËsG*$óݤJhº]â|\>lï¶ûCYî£ *©mÝÃó¾ÀQ$Ô¬vf˜¡_Ks²A¤Â5F¤»ãò6ŸvÝ@Á~AnX8¾øx¡ÎèEÎGiø¶ý¹ÛÄè0Ÿ‘qÌí­L›Ãt*3ȱDž†G.«%zÍTReKëõ"ÆcùTg”[¾¾"ÇTò_—méŒô&,éÕú¦ŒiÏtk/zŒ¸UG×…ÕhPˆéÄÍ€¥S 5î´Íñ’p´‡(ùÜûtÆ­wõN^Ï[2|xžø˜³<*EÔ¸j»ûQÿðnÀ-fxF¾y†ÆÝ¦ekW«*cLàx‘Áq½"ÖÞÔ‹Iì«7‡Pù^öA&¯Þ!cu§¹÷äÃ]±Š0ÔÚpì,¤M†õþ …ÆŠ?vÔê asÞù³DÞêYù»Ì†ä.üå¹ÔaÖX Y_i¬ÐBN!,5NáùGE%¤HÞO«±ÑR#´¡šµY¼>uñwY»–ýZš×â .åD_òÙÛí¿ÇŠH)ÚÌT`=•æpÚ+w|dc2—Jc;wÑ9FtÓêèýœ–µ“ÉòEÇyêÛðÈçåüè† Aó«ÔÈ£ŒÍš¥wdþp&…‘d¥„ôž’Àœ‹RêO¥ÞêÓg¥GѦØ0÷åèbÎw(³&É=Å9üéìã?¿øÑâ7œZrv“Y½&cm¡¡Rã‚O‡ª1‚M9„㩯LIÔÞÆ¶2':‹O~k^ÍBœÎóÇfÆíͯ“ÐWüLŸ™”yÙSä€ «ŸAü AÃlæv»Çò5—±('»…µK¨|K·†Óó»¡çá43ÁuD3ÃFêùÏ€(q÷@-ʶ¡²ÛCöp c?~[ËN–­Ž9˜ycŒýX7f„Owcû¬þFÙÒza‘Ý-u<ŸÆ~ šÎç–®F%ì^=–˜š“wÙç>òY\)RQz•ÆÌÕ"¹•¿¨îªÓ)¹Ä^/F§ñ·êY&'¾îúÞJTú‹Ì•ØÍ|l‹;Aׇ êN>Õ.ʆ?Zz¥LŠ­ EWôš–H‰è5ÜL× x¼›äe_Í(P²ž¢Íy¿0â¹:’ŸnŒE†cÀª¯†—­ä GWS³Ý}X§w«¢’^&Z( ¥_ÍþÌMz%|²I+8(rD¶·2H}(_ÇSL¥A¹Kö"Ò/Y†€Kï?¦–š4‡¥eá…,Bg• Y²Gâ7Q.N’îrѾ¤µñPjp&€:­o@Ö@•T9C c“úð^–Yvk‘R 5C|CIŽG~ß+R•U’EIˆC7{Cþ|NKó#¥ÿ÷ýk? ,ó”^è[-üìËGë@ò·±%…*uûñbƒÊÊ«­4yîZ˜0d̾¹o%#Œ}qê Qû–V)öÒ(p˜GÃXÏÏb ×­=Áàu¿  6šr§Ç`Ã\¦AM-FºÜV*hý£)µc<þòÓmoŽÚêÍüv@ŠÿÍÂ*€²„Ð>|‰Šª\‹¹u÷¦<"G½kº¢„ñXñZ ŽÜ€â˜À+˜ G¶Ÿ‡AôØb\–;¯Ë]ªŸÝuKüi–Íý;aøNLÎRÛSdZÝUV±É–5;¥Ñ¨ÑªÝg©€bBÍ>Wÿæ[Û[í>ÉKhX—qÂæÁÚyùDˆÎ«n³ÇƒYFHX»_š¾ŽÏh›mÈ#]@ û»ÑF8æÓ:;dY°cªÏg^ÂxSNòÛï ¨Y£>¸(Þh—h`h%úß–‹©—™»\³åÁ5Ÿ…-c‰ßCý ²bç? H×Ê=¶ \rû:ê]‚“ê*Z¥ôÜ–€ª]ûx` ´%«HüµüÅs w°7_œš+_8ÃÙ€6yÂîpé0ñMU%¢'†Á.±÷‹_¥!Mոɞ:|,,5ƒ³4¹CÜÂK8! dŽÃ©[­µÀ^°æ úÛ~Ö¢¡˜ Nä>nEç&VïçìŽL?[í_¹`ד4RÄäú;¾|òZ91¨ÃH2qKÄ÷^F””yõdlÎØ—¢ìÔ& ŽXK]”Ÿ(àúX°ñ)f@e,üxÁ>Îu¯j9û5ÔÞÛ÷Ôäèh›ûV#+¬AÁÇ©jvO¢¶>lÍÚ¯ŽC5^íŽØÝêÚ¯ÜâeÙó³’U›.qlÜËv¸ãŒ›¾Hî[ŸcTC¼3L¹‰*¿j^0¸ ‰¸›J‰?1¸ið>†¤ÚÑ}}‹]("ge%ÛèËmúÆÌì‰ÜúÀ»œâ ¾ÿ7$ù!CšüY²›ˆw]®¤+MÇœêÇÆ~ã½M°å`”Ía¶- ÈS©ÌÑi{Ekå/°%K¯ïWJS\`h¹_—‘Ù8Q£<$‘©¦{^Ö×K{¾F’TzŽl!Ù)ö|Hô®0Ö~!ð)Ø jÖö&Zí¼ß2̺ÞÁ7ŒÝ ™ÀL†Õúrvš1q Vd&Ò` …¾ô‘[ýYâP¦ZMÇ^¯~zÄ~ÂñÁ#x½9ÿÃÐ>0(„ Asj.Š1LFCÓ ›Ï ÄØmLáçÎ(Íò|ýQšLàžÌëdd˜Í>|ëÌ–;[œ{Ïdlµ@ðš†zÀ^©ÜëD®š‹ò¾]+Ïê%ÿ…Ï»Fñ†ÑªmÕ‘Ñq&†„®êOÌkÔð&XQA¤?G¤aÆyÛý•ô°Ñ:†/Z±TÀ»^’žö“Ú¤!éI†Ó3n¶D²''†ž¸¼W¾KNf­­žéò¶I!ÀÙl³„¯W»iNÀ`ä0 òl`n¢¶~ÞAÁr&%ìÝÀ$o¾M2 ŽTíêx¦eÇÁB|#ëæÔÉbÇ–ô!o‚ûŽƒ9\¯=] b…Œ‚ÞFõ¿µpo0X5püŽFáøuIúø-7f¹õƒê›DfÕCUè+0œ-²ÓꂞÊëé>œèH¬Ó®$T=ø;4½) é*5+÷ótK3£,©“7 TçHTZUÔÁ×C_v*Zv%wàU­/ïÒ6Àjñ榜JåçÞ'GQ—Ý¥|þÙ½[&s¡õþb4«áø+s÷3Œ ©Œ3– º|à :IºQñ˜r7ÁYg«©qóÔL¶cCG5<Ÿ™µïdzä8v­jÙIþÕ ½#8¡ðÿ°ìsRN×+˜‡Œ—[mQcVï V]vÍ~ø%>çFÍŸ¢øP²Y'M%îÝWw}P”^oåÄMŸdôŠÕ‡òô 7qÇqG4ÅÏí#z@ã”YŸž¿¸ ^˜ùzÛ šYºM™‡ïé…ÛzdÔX8cl¥dôÆw lŽ)·¶§÷®hÜ[z¦’8Q-¨%J¥Œl†®0°ä˜1g_¬àx+€B<†«»>uðIþ­›úmÆ1[òâr]ƆEQ˜–Áz+ pQO‹ö£Ã•|\Ms¦oþWÏ•6¾5õ]Ñ)¡Ðd­üPül1½¶Ñu—ÌÐ ŽGÅ\q5£FmÔ¹Vß4Ô¬‘ïóNqs`ðÙTHbÞaÔM5žo"!!–Ú…Ê$Òè¦èÂlõÖЦº>œ’’{;,´6Ái¢Ø›¿;ì jw‰[½R‰Åã„MëJHC"Ï7C˜âq°°eÉ­ ­ 2ÀþÑ|n™^7!òþ‡¡Ñ,f7]µ™¢-%æðÓPYe16žøl(%ï»—f,@Øvhƈ%îOCí€õAÉLÅ ç=Iî„‘¿Ú7¡Ï$Êø‰nö–é˜ sæšÌ·õ¼”×%SÐ úEÈ|“Tg?ýºÙ%¿Â¹P>ÄNèÃã}xk’Lk]®FâEhÁQóÁÕñ½âw¬¼Ð7౦0Ÿ÷²Ë̃ÖÍSÝÛsk¦OfÔY/ÍDO1”Ê1Híá|´¤aeuïûÃé:gn…SÎT”ƈ`•¬,øn5ÔÀw b7Ž Â'Ãã•Ò¬ÇbnÔ¼ht™ÔàÇ É‡D–wrrê¡™“íq_O^äÎ5j—×îÅ `v п°-$Ì áÞ›t–%w'î¹V³cÔC¶e°1ûÄLUh›ù•, ^Ê¿kÆq½{I›²±‰òOûÎ+^Y-wا—!å]©šÐSSÖ ½ê‚í*>¿}×P¼³Wóµ}¹Ìzéºÿ>u0t[r¬Ê„u¹{,8íî"f÷#¢¥f†’³ S냥–«f˜2ž]> aŠ™>k–]Ô>ûr®YôÖ9‘9—…ZxÉk½äîlÛ8h¡&'®¼ÄS‰Fy´4YuAeÇ„†hÏZá{1ÆÝr8¬­ÃåC1$Ó:ká‡.›^~HÆýu?å‹«zÓ«­<¸ Jé· Pyí[‚Ãè–e©Ôp#ŸŽÒfêh³šr…ѧßM9æmµ—rPHM%ŠrÏÛ8B{÷r:Ö¡ý”¼'ç »”q|iâ[£*7“Ôïék¨÷­vW:€Ñ÷—ÝZ›ÅÅîÞÐzÐ M ¹kI$Ã4mæ$L^N[÷Am×ýa·¾Çú”A¹E«ôæ¼öÍv¿ã–茟‡I$a¸À¥$Zl¿1ƒãVpFÅ}ÂØîba¼ë4þCÆß ÎXÛ»©šLtHgšÐ"rxÿäì±n£s€Õ[8ÎSbS‹íFvQ•@j$Ef³8ë€Ú÷ƒ<£ØH§ UQ°÷¢Ÿ3[Å-l½uP¼’=_$KcÇÛŸw®Jšãô#D¢&¥®Iä¾ìý•“K4®—²0µžÌ¡3¬æÆ'L V—h4Vµtö8#oBߣ‡x¾–ǯœ¸FÂ>!Ù©x…rš³Š{Œ(”’‡EØ#‚ÔÆñ+Ðk??§½rnÊÂs‰Œt|²fXA€°»&œÄjœs w…“mVgÒæ+{÷åR^?ËNbsþ,‘O3ÜÄ(‹¨ï;¸ÑìOû–©sƒÏF²Õõ£‡·@q !óAщn%p¢Bº AÕ uXDZ­9znÖõm ¸ß˜KôV¥ÝÊ՚̻Òâö˜ÉÁþ¼NÙlÚÑn[êA9¼>ÕÕób/½?è¾tÁcP28,5ºMi,OYmè~ŽIˆÐC³9Žõv0¼Ý7J~GTô*/¢*ñšé‰c¾Sú„ªhÕ.Ï7„GÙÇY}>bú"f²v¹Ä5yTTiz¬¹DéS0æ0Ò 4îSŠTéÈÒZÀd¿Ù§õ&cšvTpÚ’JÌ [“PyŸI-—T#%ÈæÀJ×´=cÁfòVìÚv}v«?J²ëƒ¾™æ„Búb¯ŸHöÌ>-6‡Óe£äT¤l›Y ëAˆs¡7 B¦d/†+0ØÃ#ïMl°°X@–<8¾¥bÔéÚöæ-ZÓ3täØžÓ¼F Öh¡ƒø" ¦ˆu¡|¡eP²g óA¤zƒÐ¼xÖáâ ˜w˜árr¿‹¦¯KNþ¶bðl/ݨ+±H^7ÙÐËÈN6]z×vZ=Ø®ßmÎìÝ%k|÷ÜGï8•N‡w‚¨ç唥ȻàªóvÒóïuû`¿ëYÌ«™ E}Ôù°®ÝøáØ2” *ÿ%‘½ º„RË Y>œ–VœÇ5.r„$²e¦ì¬Ôo3Á°È‹wR á“A½ ÂmíÄðãåÙY)‰‘Ó†…ƒ]ž¶íȻޒtÖÝžhàÔUa­ÙÀ¢Ýcæ?Ù±Ê}ókvãËJÅtu6%ä– ±ekQ ) œB|#«¨h,¯"ʈ+ ŸÖP½° 7×l˜aü ÎÆÃƒüh{dÓ …Ü®­Kf‘N!Û÷ì÷:c´ yBŒKÈœoÊc™š|†çgº§Ÿª½~”óñ¥»ß®´¬cyÎ_…ñ=Àƒ]|šÊ_ãs„YÃi É0 tnJI!ó8˜*›Ï} ÐÓøŒÓ3ÿmV u› 2 õÚH©@$¾Yƒæ¶èð@z¤bÖ¡j€ÿÛ#¦úÿ9Ãì¶À‰ù¯m0;ªÁµìI·ô>œof°–è»Ói°[¤E«b¼˜‡ZC…#SÖµûëÀVá:*ÆQI¾Ç³MAãØ&Âø“Çm±Í¾n„*ö¬p[GDHé&׃ˆ¾C‡VgI’t¦áZï!?adêšÞZpO@A7*[„2ÝôER'Ð4䤓"¡Té«{K…4NZêëQAŒ?òhrξ'O Ž ìðA`jZ¯!wOÚÚµÊCéjéÉ$zF‡2еÍsÚíï´9˜q!÷çêMU®c4¯Ì8¤¹L­ 6+L§ÖsJ2GÚtç´ç°]Nê`êuŠ(91åYÄm9ÎêÊz³ÿæ€Ð…ŸqãqM$ á_¿¼šÂQÄÓŸi¶àk°åGny8 ª¯-ñlÒS ʈ)‹ º0X[Ý1úðùt§?Ê¡N#rplcWõSÚ†y²õ“å½z¹Åú›1¦ Ƹ¦WE¶ù–5Hê5œ¾¿e÷éA ØõÕ›T~žö=û4ô(ÑþÕêuzzŒÕ¡?œ|†É ¸æ$øp‰Ú¸ã+¦,ۜӚe’ðþK"1è%½ñ·» ”$šB"úDÛ‰¯Ï1t2šÆ¥íè0hO‚Õ’ r 4:AT¦?É%ñ÷eà ᧺iÕ‰[—(Å“ysÅ4Dо†Ë"#Žß¦2ͧw€ßV©5C8öp™aMóæ8¨MŸW§+̾—ÁV=ö/?p4:{)3^eÁˆ2½ê°<¬¨”ýV©ÎRËÄ9ô.A˜×¹Ç¦œà-†â|A¦QCY‹ªÅ°?Ò•WÒû¾©«ãÜ•=T E‰+7ü๚"yÙ6±µ:¡ÇûÓhߊÙ(„­ñ¦GIK¯7‚8à+Á—ß½Øqs|úùv¿Wëh® ¿g#3xãÈ~¿‹Èûåzè~Åp^…©!üæÂ@ç29$‹xã.6„°þ UB—gù ˜¾û‰@s—ÖN^çõ>o…áÖóÔý¼òºð­$Œê›¬j~8úÕy^÷cN»J³©.zÖ—̸£w¼òoä>Ã¨Ý¹ŽŽ-1K“^³lA^8ñ§Ø‘Ø…uÎŽ¶C¡wï·ÃHz F^³HÐ,'Ïbãqäëgê”Ý›gÚ÷Ù¤€ª®×/&Ž–ï€ª–Õв­˜âÌG§ãº‘:Ý!ȇVâ?'¦þP_tF[“»­“u¹©‡Ô¨º’Ì©ï"VƒÂ}²;µætÅE$0fè\¨Ø‹ÇùâPÿÑá+¬:ØE÷ä ç'¸goAÎ$ý´È¬p´²3*НÆq§å¾?ømû᳋Á^…3oÄ¢P%¾(¡Å‰Ô‘!fÀTk´œ‹¨óˆçÕhX—.Hšh<§lV›§‘,3ÐÜR¢MëA¨ßí"reM0˜|;“옞¨³‰1ô퇃ðªÁÄèH¥îÇë"?Ú§ R~bã :§¹_²9^È7:èÏÅIŸQÏ§Ï b+r¡4™ta®Fäô1\ñÎhÜՌǬÀÌc¼Š²s¾Ç”ñO‘u ìèVÝ,ìûNÚ0Ì}$NÎ+D¢ófœú Z/µò”3냴Éi!v¼×w¸Jjæ$#C›©>D„"Móû PÙ +>¯2ßy›5 G•yYÝÂÔK  âÄ‘§Åi¿•oF+)*•ù¨Fdv0˜_Ž ï л ¨ÑEßyõÂÈíÆ;<®#–\½?IŸXÈ'ʆŠÌ1â"Ô¸J[0€„ž’!~†éˆáñ-BzÖÎ)Á¿yÏ0¦™¥h&úù.r%VgóÁ¬âHg_µüÌnŠÿÀ§'AÛcdmÁ¥8Ê{×J9ÙšÓBæ ñÝfe8Üž³„ü«DµìÆr>Õ¾&ô‚ ¸¡<ÒÔcÛÏ©¸`¯¡ºõ®ÌŸKµ›´A26à'#e~øÚ4ßò±›}ñ‚ Ž¸#× ½Üýþ©Ä×jeSðmÇEŒ»‚{œDÞÙŒ]ºÍÔù}èAȇŸ¼rÎu{?ë•Ûƒ˜Gô‘ªÈâðqó(#’Œü¶—¼¿gÄXºµÔæ1¹[3"ñQŒ–¬44öÙKø -d‘½Éàg°v"²6æ&ÀÇœû8¥û¹‰«¦,»ó‡•1תM,~y>ìWN'Ú¹dª%ö…3ù¯øßñHü‚c0\dŒi¦ÙÒ¤SÃ8¾HÛ*ß?~7~œüÐ!;p”fƒ[ÞÝäCð”$€ü9¨/U½ˆ ƒw‰Õ¨v§#<˜tJ5ä¶Õ§»˜F&F¥ûMË­˜W½àBuF\ô÷ök—œOÝ_¥Üç#.PjCÒ³påÀnÁŽÚl wó…3‘¼ö`=•ŸŸ„šiW!QÊ îÄO´91^w{öáO«¾§¬‘nW½Y9sÿª‰¸’!š ³—Cë­ Â9r¤›gݶ멖.r7B·•"èÞÌÔÕ7eÖ¦O…øûFoM‹%!à©£s¹¬³äsߪ'²íÊSé· q@EÑì;hÖ­7¶ÙQ´j´ÇW¥ùU;¤sÖp :¥ny¸ÎŸ'z¬yÕ·@³]7•ˆ”Ç+P"cE¡Â'g"ŸYô2È@ëãdSó“|c]…¼fVPã“»0ø‰ ó5?FwJ:]À1ÿécù˜~®Ýâµ@L%«Í)¢DYT  @b:ò$³éÓêÃv¸ šÈìùCžf" Ĺ+ÒâpX‚-7ÂûePþVzÏàÕ·bË ÍƒSñ™D6$Ïârvúv=jêäF ì˼´˜"—8áÍ¥òÓʇD×ÏÈ7‰šiìŠòT+ºsï,cΊÉÉngø·z/Ãn¨˜»¡$zÔóµé„4am©½WšÙsü¦¤_ûDa‹‹×hÌ›PôÂÌt>åF­ Ä“ˆ·å©bŒ¹ 5k³þ°^ EC;øcÄF/”?+¡ÃÜqôZ˜]zׯ°ÕVÑóE¹äý¾ÀêúÜb]¤Ø£)1tWe×4Ä‚)ˆSzq-)roXs™L:™ûÖWõ.ÎJ׃ëéòZ¢åœŸB}É£Ø6 º½^Ô.þ³E–ê¯cCGâ ¯9 ´8œ9¥1¬ACûá’’•àâ®!‘¤'Iy½6ŸëÅ‘ßRŒbžÇF”¿sD7N/º†µ4ýPWIVçÅ:[öìÜsÞc­äS{úûîó ÿűXõÓ]Éú·ì£Ñ¦_ã]Ò^Š ¶[g¢Ó2ÊRR£«ÊÔÝ ø¢‰y”\û¸žM’ƒ<¶Ï¸'beŒúf‘hø»ê¡”PÂfLòëi-ìÃô†¼ŒaØôÜ},ñ2=·*P¤£™8´ªt2ÆÅ·/˜tB¯4”ž'º":Vç u‡SÄ#áP#Þp<3ÜεøÄ|ßí°#¡}ÇÕƒ†w«y£¦„ )Ga‹ÕæKðt©=C9­b€R6xuqr.q¸$²ª–ø¾}br®l¤,Ç“Kp¹÷v )7no4¤ky™V¹t±ÔÅîY@I¸ÇÒ*<cLºA¨|þ±æo›!<1‹0sõCr09Øþ~Ï®±a^hDTSGŸæMޤ†;òÏ0†œ›·^êlVooÝ Ñ_8-ÍÌÒ­’ƒË™„¸ ¯]ÇH7€{ì7šÃÒgî–áÈ“ÀaíÏ ÷ v_´jz=Æ8Y<ˆ¯Uл±ìÙ bs{êjHT#( À:_áqcéó»”:†H´šböš^¡ >Zi‚?¬iû:ï¶þ\õ@¯øy©%ìtØCf‰*¨á%M«Bd92š'+1Fì®Yì†:éc놉ì?9Ji|)ÓèwFNE³x;C‘Yüdäå§É+NPp¥k4B/òô½6åú¸0ÑpÆ õþG;´œL±í•”À ©Áu͉˜ÅÙO6d÷À‰rµdµŽ-†ÔçéŽPç\;é*©†©v+ÕyX½§Â:QgܾnÚà1ëañKò÷DèÑcg°òB&æÒOÓñúŒÌ’ŒâF¬ƒMƒ«öEE&´'ƒCr…%Ž¡ÚõFwÔÍžhtÀÀðÔXcG¯O¥›"¸H)Žu¨Ã™MÎæ:€»ÞD©³ÐgÈ<_«]´Gi5#²Î÷$+nÍjˆYpÑEëA6bBR‘{à вË÷“MW©üßöœ½·¶´Æx?Gz.?5@(—¨¿_!³Ç€pÕˆÉÁ“{ì¸oÌXXûÈãÂ|êe· —ˆE›ÿ¶¬2/–Þ(Óa’£d•µæKÔä%ÞÄšÈF즸¿µÊmád{4v3UîÏáæ+,J’ i)ÿA.Ýüþ%‡õP›uÏÃú˜Ë¼2@¼ËËZpE"ÅùªXÖ#? Qå¶‚¤…•úÞW¿Õ…˜Ï°O’°¨$©îÉl ·qBO 7»äR°‘ÄÇ™rÿY¨Ú5}­Ÿ\ŠÜ¼®~=ÞU¥›ÝDE58X£3zµX„&ýÌî ì~¦\Å(1‰†‚z²èëÇø5ªÎN³/Ôd± m?²†F6Ô/ÍTUŸ{EíýuR>«z‰F¯Gˆ­jÄ$2tÔQ:¸¼M(W9?¢û™à‹³OU¿ãR¢?”Æ«!µ,óù2nŠ2ÂgÌ¢’! SÕ\ â=à#¿I7¿r·¹´PÅ6YT¡ËÜ@Ì-ýõj?cc{ñ bóx$ìiÀýƒ‡ió¹›Î…ù6øõZ.SL/Ú/Ü–oX2iÙDâ8JmyC‚ü©?%¢@ÇA#¢!ÊúŠ ¥të½ù”êÌÑçô˜‡ì²µs`àpŒc¥Ãþà¨ß3?ÙQÏ-*†G 7™à-¦ž®õøc™2×ýÌ0aœÂöÀÒ™Ö“ãáÅÛ42å®Çõg¶h «@®€x’†ãåI9W´ãÃQœÆÄ³Ÿl wQßBæÂa„E¾Cgìb†Qü#ô f­Æ>­Z ¤ôÕ‹r,YdÝ7ŠüƺõVܺÞ ºWô*qLÑä¤n¤zDiTˆ3}XÖTJ Óâ€Ò·Ñõ·œV¯Ä™„éÞï šÁ/¦l_Ô« YexVÏÛÄä &o¦,Ý´÷«Çyû;?ÃR §ßÞKöæ@âD¢Ù~W$¦âKÚÈlÙ×:>JðKö<ã‹GÓ5ZsÓôïÕI¾ë]!·Æ¦ðzk×ÀÝj5·ý2ûÈ´<Ëû¸èkXV2®+GÅ·7ykÖþ¶¡zÏjsÅ»ÝM¡ÂÛX'çAUå¸ù—Ü„¡\­Мâ!¤jyOEÀªïÞÎÊg…ëÆñJ¤÷Ú55ýmWÛO|R»4®.%WJöUÖNgGH÷p‚,¼ëûRíš ¡WÝþ$»°„ ó±0”nº_áé}ÝkWYc„‡pËÏ€_”ï¯DýÒ^Úü÷‹Ì„ÉT¾r \«yq–nЏëêÝÁ‰RCe5C [24/\w?{¤¼KU]ôé¾ó+’@£ÐÏíãá{¨Ù¨ôË;b“ú6Ö©”ÜŒ¶4Z3­Ó4È„jå¢× )¾˜ç¸ðHaãåüFñL ¾'dÂ7ROÈË1Š_‰§–ìw1š.—'”…ãi|+5pOó9ÂÅÐD°y[=-Õ—s´mï0”™Ñ¼2µÒìZÈðÄ =ÂÎG1Æó süb5<öa¹>+L;Íñ´oÛvÁOչ膙9Éü_dE™e4!òù?Þ-UA¾;„øaŒ­Ð´ÀYÛ"¡¨5¦ðZ?û¸S¤è->›+ÖFV¯ÜLÚÂWàJ_W‘>i|q0‘k^MQ4Bt°‡ v]q„#ìý°©éЇ?Äþ½èÝî‡f­ ÉÌaée)ïé5Öcp€È?ršh2F¶õp‹A%ùìæÌ—ðÐp‰Ã\ÆÂQ!$qËКÞö&hÈbäõ-}ÜÆ¾íËR´¦– öb3+Á Pžø™Etš™£u™¥UAí<'ùTÃÊÖ€ç)JoÅ]àSLJDþJÅ¡ŒÊîuiÅÌÉ8À_è×;K'Ûy3×ËÖ#Àº‡óÚ±î\“å' Sù¥ÜÓ½ÔSÕci²â“jöØ,ðb3l³äâGâ·§˜]Æeln~>åWM–tóYÅ–Î'§¤{²‘ªˆ˜ü7ý>žòÐ⇠+ÅKD½±$Úø~»‚”ÂqÐòÔ&?å†)Zšó'že4IB£)Æ(VDy¤´RZh"T…v6‘ɱl•HÛw!¿„þÎüPsïŠ4¹2܆¨>½×Çf’¶w, AzSáßNæLU-5E…O ö†b£-ÄK¸G‡˜ñ˜¨«i˜ñ"ðž%›VfŽéÍJ,hÓÜÊô©»I7ÕxŽ÷Šî|žñ^ŠN‘˨¼žÔ<Ú+¤¥“?hLNþug ÃþÚ¡_’€B§àÅÈn-¸¸W Œ+-·ÈÉÓ–ž)~r9v§¸uB¾½keþYÑÛ9&§jжWÁÁ° yŽ›o~Z|*ÀœôI ‘[åú®rôVß #ÞCž;j.CJ]o2‚8¨}ŸÞªHŠV9ém fq?κPÒÜB<¥=ûvQ2S7(ζOán¶ð£³!¼uÕ Ûº<ˆ"löi”¥^p«°t™ÇivÂ\ñqe*…‘íOý‰ÞUIãNª»•>Þ-¥ã;½YÙ_atݾ¢˜~©° 6‚Qý bû½jÁϨ.q‚ïÌ/eÕf0d~ëLâx5ÞÁ“®dÎx¬rÂ](Ü XÒ.ß-ð4K'm½@êëÒ3þªÃÅ1è~÷¥V«Sb&‚¼@ìV¼yFF‹”9†”E›HÎaO’MÛèA¦µC7ˆH}D™êô°žÒ R@J“*ž^M„nO"iæqÇ›ño ›¯ÝzÇ4‡Ñ¸AØŸ“¼Ò¸xVËÕᎇ§öžÃ”о»ÒÃ>(m)or®"ºg);`”Àkäa¤Êûà0ðÇÙÁÉãÅX& ¿ÆS½Ú÷æAh°åÌÆp|[ˆ_z¿ýÉ­OÃg<^ÖŽWòNÚ­²›¼\ó@ZQ‰÷æÖH~úùÈ¥|›§ÍÕ$eh5=˜æê“ŠKý¤à•û‹úÐ÷­áìЕ£>yí q9QS^¥¬i)í£@ nyvMÉk!¼~欃ñaô/øú×ÄûJ^æ$Gn'HÛ›cf•8-Ú ûÔÖvtQÈ97¤ˆ!]³dà¬;… Æ'«ÚoyÏ­BBô9âš5Ô•Ã!ËuÚÔ_¯á³S‹9ÖŽÊõ¹Û.IªîNfœçöxý0/æ¦nXòÞñ)±¿1£r 4«Ä® ÓzGgQ¥÷%UµLÍÚµkíËI‘ckù,à“öêAZ&:oHÉ‚ NZ¬"1¡ëe=Êó¾ø"‰ÜI˜ErM¥ )„kÖXÔ¸6fì\› ò¤çäXû|â>u-~ò'’¼è ߀±¬È³–!wéüh2Y™× i ‘eŒ¥žƒêO°›«å`š]äÂÜÓÉ묋èØ¡xýjZQódS‹9ÑŸ$ ¸ôŠñP³íM-i,A4‚ÐR´ëF¡«9ö|M>š¦^öß<>y äî}C„,6ý /?Wd®㔊VÉÞïÍÌöTÊM[˹'ý6øŠëâþc9¤´ì­¾ýj,œLbcóRÍ+ÍíQö}›ýKîô°û>Öt…Cv¤¹ úc:ùdë¥Èè…î”`²Ñë9-œ„ê o4RcÒ®qb¾#HºyÓzƒ•£ñ°MÎ\¼#ÅN.¤ÉM†×pýliÌ#ÏŠZÄP:lü¨…ÂÚuÖ©ÁK6Å/Nk¢¼RÃw™Ÿù]Ó’¼#ƒw'.QkÍ?#ºrH¡,¾yáÜqÄT†pÙaYʺ€žp‰Éc|³²gMˆ‹']Pqi¶ºþÕ}gÑ8¯øHao¹[Û49vr•$‡wXè쇿ñG²Úy™7ù“\@†’|♕¡ÚÇ)n ÙpÁzÉU­qimìÈò[˜2›íì«yûjú[Ž~bÔR˜ýþŽ]Þ=4sô[ì÷I¶¼´©NÓ=Z"Ox1NÜ›\ßDOçRyó´êä+ j`áˆ+â2vÔîáÖ·´“ŒûVñ‹‰Gcœ¢\a©ÌŽxÐ: |£ûvÑx…ó2õ…Jôë‹åš…|‡F&FöÆI1“ï3äÍ·àj¬N.’å?!ZKH #BÒFC' ‰r‹_$'#ƒè,ƒßyÓYÆ Îóƒq¼þøá+R¡î$ÞIíVJµõUn] ë«\;³LÀRȆx`Ô´’™g¸|ï® Íë~œÚŒÒ€àzaNaçP#…âR¾F7žá:~ïÇ'‡b‹þAŠD¥ÌÝÏn¼!˜b™Øê..³óV0QgI)Ç!‘–”N”YçRçÖvòl¨¸¸žJyßßõ®¿zç]§ÉÄ#tPUcƒel°óæéT›çâå(ÌÔFt`}ÿ8=Ï)|˜UØpìÕ¨qPAGÕp€þlØae,¢gs9Uu8{)4ïµèjø gÚ´¼½"šm2RIOS7Œ_¬A«.l$KV<ÄYŸ¦ìüëÂñHò)y­Ç[§!Ê÷ªˆ:¯ýï»Êß'~¨p(²¿™QYU¾ÔûØÛ¹ÁhŸX\x¤d´½sfÍNÿ2ƒÁàÒCÇ®O¿«Ü®{ª—]ô)/…geº¥´­0ƒ_ý<3úÜÒmzÜ™o:Š&c ÿ\s ç›æ”-êà©"˜Ù0]dÂ7¯Ø»zëtQ<)¹Â6¯Û(¸V˜™ºca.Ö¤{s[Šóy8írb¾‹^FXD^{Ã]•wõâ¦nuÁó7æ–ÈòLù˜{Õ7u&¤†÷õQ7V¢ÈYÙO¾â­¨\ù°wçHÙ¬,[µ}cûd•©QÓ†oÍÙ Brñízö ¦H„¸1Dó»)ýêa´x±^Ξ6;‘¶Î lí-§l”÷rsZáap­&|,'©ÁëÕ¯w¬þq‹‰¼C6dPåQ, Fìz>ñ6&inC£È$c Ì³©,ßP÷2ƒ«óÎ)8#ίvôýRbàûÕT èQÖj°îN¸¥Bø˜¼­HÉ¥è¶Ìî ­òÈ×HMõÏÏÍ_R'R Œ¾÷À=ŒÈtTRÅ­lf#´\)‘å« |(ìŽã¨ 3Ú£mܨXRÊLÞá.bâw@ \LRåpÜ×Ç6Ô:[5é Y¶ôÚ²YÄ[…Zc·wˆÁ'‚HÈS^“ 2œà´2Í2jT“´ŒàK9ª6ƤUªRßÒXI¤3ÂR×EÛ‘3«¬n~=a‡“HB/—h@½$*øÐ.½ã`tR‘˜Œ Q½NžnÌC\ÁÅõ´1h Š4@©ÏKèOêl6rŽ&B)s´AJk\Ö  bvµÔò(qó|å#иÇtÓ2ÀÙ„ÛÉÖk3Ü´îÜ**âÏüÂ=³Q®‹˜Œ{¦—è žƒÙ·ùÞŠöy—7ð<µéÓ(aŠeõLó*w—D•½ IJ? ÌÅåjáç7-‘Ô°Š^|#ÂoÙñ:,msDY<5£¢uf?ÖEr©rgÊYæE½qGnëµ/‰ùP@¬ñe%A™x•3N×\RtÎÔK›#¶¡odÞ¤üœ¢¤ÁN ¼x /Ê᪕ò€æ~QQóÇݱ½ÙY|ó´G8ó}£ºØÑh)Gµ£áf¼{½ø•VÚÛ×aÈ{"Ñë¦ Õ/Ìlïטò–vÜU?\ûy,n4D眽»¢“ ÖócÒTh%|»O×¢GÔQ0øÙj»lÈ8s¾yÇs1t$zµÓÛßIˆ}Y!-7;žwHW¶ìèb±; 1(±dŸô8‹2†rðÁ0»í½œä†,‹˜c/g¸óìáÕ×ûLÏåwBP¢cé(…)¹ð˜ƒ5Õ–Œ“j,RŠ-µðV—¦’†­ûs±!Âv©ï²Â9Æ®>ç´^ãçó—ŒÁðrÑt†Eç.còü?7È뢡;ãÕ-í|½¼{_bs¢Ìì|Ì;Ëړ拚$wRûžŽ5@pU¨`p˜^§ÓåÉs:í<Õ¿‹Wѳ Óq–:lÏÿ2]¦¿µ@•†"ó5‹Èäß ×lÉtßâÐVLŽs¸TÝó<ÅlƒælŽÊ5Ä€^%RpŸ™0¹§«²3Â툤W>ðöi\ãâ²Ù”qÝ›‡Î°uÕ%s ¾ž¾g>|vW~©Z­`D |lý‚¤#/TH”áEØm´‘Î9è•/ÐV©ÞnWppk[Éû1 _ãrØ¥SZ²¾S (…ÀœÙS‚Wó{JŸPª\`Q ÇÕXNv¿ÙÒºu›ç@Þ~8²oX‡¼âD¼æì°«ÉXV%1®¬ 1ФR6õ„Øl¤áÅGž Þt‚ËÝG]ñH3Ák€º+ÏÐ)sÄE¸=ïñì:ñ)T#¾a@´=B왫(QñJuj´=éÝñïš+4m™Ý»RoüJ¢J Ùâžá¸¯»’],#ç.kX¼ödWv{yœƒ6Ý<(º7 È ¹æ€]9A+«ê,7·“2}¾ùÓN>¬X[Æ”²ÒÛJ1)ãŒ"7ßvù(Ý"¸°@UëóVsf7; h"hMT¹R@ÁÞU µ¼Â´ pùº‚sÅ ²¿É¤ÔKžáe4Ú r™–1x)'#UÏßzã_FÕËx*¶¹i¼Äš"Žma#y ‡pFcMûöùÕEvzí"@ø•”Pœ'OÚI"­Sïߣع¡õÕ÷ÿ½PñK óDžˆq¼§É­ü+ÅÑ3¶ÅQ-‘v7Άeòë§ðÖN¼…¬Zà{Ù‘õùÄÚóÊ3hå äÌ÷R8·G{Â3J½××1£ŒF¶×$ôâú]äÌ?ñKÀ=r´S`\ÝK‘þÔÊ.}ö¯ö¸1Ì€… saÎ?žå©ÝK«[Ë&¼Ú"ï@•;± 0%!3Ÿ½a4íÆ¥Ér"ŸÙÒŽ5{}µÕ6uù¶G•HÅËøN iLàT«°‘‘äKoYI€¤ã衽 Q3>ƒ¿ ”wçò$=C¡.—´=з¨{zZè å_a|ë#.ت)¦äã§Xb{û÷èØo uX¸¿"‰ôSXSi4g(K ´sùܦ¾Ë¶Ñœ|s†'RbPÚ:²“©€ñz<;¤ûø÷B’ ã­6+~ä àÏH+6Ç»œLí@ÆÀ „B¹`‰Ë‘ „sÇŒ8Ï„„M“{…ÁXêi!Y|œ}Ç{Ç^½`ÂÑÅ5S;2FgpÐzˆ(³K«‡³1¬A4ÎÀÊ2ìÊá4o'}ÇmiÆAL•‰i”0¹ØmÜ v"+AMÑ(¼ŠãžøÃÏÁð©Ô< ´A#"è‘ׯíÃ…V¡ÑÎTØXú†–fÅ8&®´ 7êÊç8òIF6"ך6;ð:üö÷\ÐäðEdqpn¶C/UŽ+j2c-ÓÇ‚K2uëŽ`ƒ˜®à}çIè>\ÝW …ê*•Òk3Іǚ-×u`Å(‰mʼÓÏ¥ñQßû3³så·®ÍXÐÊc¦ÚãªÿSG–ˆI¥¿ß-ÏZ…¤]ÛŤ¾\Íú(-ž¼é¥áã$؆ªŒ`2¤kI€Qüâk( NݽÊÀaã ÕN:’ß2{?¹&c›ëÕ+¹³©L‚¨í#‰Žîô…^Ÿd…qŸ‚”Ár> -¥¡»~a ºתÔ}—6›Ù6HŽlïzoY.rž?ªZÈftj„a•x=ØpdB¯ÀsÓôYIÞ­¨TÊÀØDKÄ%§`S¯¶ÊXÌ]áµà˜Ó_ÁÀª€Ä °|w_¦ã„Éw jæPÒÖ[;ážb¾ed+üË´rîÍ¥ÇÇïúËÆúu«Ô]/š¢wd`ðf-r È †ÖbåkƒJ/y9é’‡®ÀFm«ƒëö¥|ó_Š¯Ý¾@ái|ÊgÔëÀ™Ta‰$‘sR| wÈ}Á?œô6ƒ²z;t±°À?:5[^6EŒ±æ<•‰áboî4¡ŠÎŒðL_kC4*‡ÿÌžb¥íÂý¶ï@FQAM‹«Q˘Ë¯ŸÌãԲܪ•Ž™ 4¦Úk$C«ˆqÔ9*ËþŸ4…å/@ ×§Ø}¼U ð´çH4íäŸâó|ëY€,t³I>ÅŸ‰lþ¦)»ÈITâÞWÿ'IB²¶Ð®kDs?ÆW5uYê(·¸¨'oüéÁ.Ÿ5œXõ‘|hŒ0‡‡C{ û¨h= ú–ʳØ0¸Kkz°,õÃâ礔âÆÐ/:Ïô6Q™‡\·ÖUŠòÍÆŽÕ€`xƒÐ§ßT¸îÈÝŽžòb›Y-,†8PÎ/ £ ,N'16‘Âe¤ü-£? Îòb#Ö¨]g`ˆ¢q1¾¡hËÍGèbZ3®iñG—'}YÕ†Gœµßo,$؇à–`ÃøQiHÀíðËýÚq•ÅÇ þQ8˜Pm•Ö=…ÓÄâÔ/‰º3©‚ÔV±Ñ"°‚¼kŠä¡ç?~1 (Boy¯¶.ˆÈæyuê-Úø‰‡²Uö"ö‚ØiL„ÑD£Ýå2cª†Ô_FM —áJ…u¬fŒùÊ’¡±¿¤ílwv1'°rö¶øe´7»RõççSra§2ôédŽÃîÅÅ×(q^eHǤŒsaQí'FLR[Œ‰ Ý$G7¼‰JÉÍ-aU]›Ã©Wt¨Ü2´gÊ´¢”¹Üh•j‡ßû/GZÍ–U/dÞß}¸~ú‘Èù`βû”9c±“ý˜é|Þ'‘S²‹Ljõ2$p}™Yk==†>°´jfùèF]@²Ñ%Y‰ŸÅÆ)òí&B§Ï¹“á2*Rðµûy{^”<%(æM1#ÀÝ_Ç!ªAG§Œ$ä\µÒô†Ô–ˆéûy~k¹ˆQülUÉñk\Ég¦ÁÚÝäúžÑoD1ÃV ²@„(Ëõ‰«”»÷hj‡Øÿ=D MÁñ\¿(…êaõÔÍì¼ÏýLº/´x~ߨ¡íP-áÿL £þÎ0÷…ašD1¥õkÿÌEõ¸3´å]¨¿‡Õ¨À‰d…D¯ã}Tc•³€Ãó®uä…>â¶&Å›×€MX>°– ŸX.Ì®š³¢ËHìíùÆíÎ[û)Íô¾—9•&eÅ $ iCB"r&{Âk…Ö ý§;pû“'ÒÑ(1û 0¶ž†ã¨nÏ!‚„ã/_à¨u‡8³åGKŸI„K1|~[ÖƃÜ3¡«yAöThÞEEYùŸ›ð˜ðd^;ã%ÞúÔóâ‹úÔă5aBžCÇøå¦ÜLmr.HiÊ­7z¡¡rSI@Äg;Ücä=õe«èéd}h¶¤ˆ5‚ÀŸ‘Ϩ‰´$C2a×ÛNßXŒ#w}ºP8:£©LO`vIú¢BßÚ}M(ÜŠ1‹2-ßÅtƒ£ >x³¦ã3Pg©ÒöœÒݹ¦´oÅa(Ëgð/wW¤¼\Et+u h5lÌì.&–QÓåV5±s‹s@v¢þÄößpâ”ì/QPj»®´9º˜Î N Çpñ"Uâç„<‰ÙýWZRñÔq~áhE0½®Ø¢16Ʋ¬ÄɤÖ¨äK7ï`˜è”Rñ2ª¨gù§ê¢Ý¤!Å8ä2{¨&"&Ç÷ˆF´Ðh_‡ § ½AUÞs'Š•M~×Ö>`óÖÎMñKã?¸±ø÷†¾gÄ€Ó°r½b~Ç:&>¨ ba¬”MŒ‘ˆZûáªÀ[èTH¥ÃÏYmÚÐý'³ñ›DÀÒ˜ØÖ·RË0„?À¶†ódÖÈõÏCNú§bÃÓ)í`ÞÒXÔE¦[¿—ü(ä†kƒÄ÷L;›`ÖŽ;Þ¸`‡K öŽ¡;'ÍÛÆ'aýA„w•éüιZ(죞ðVg. ò¶ŽäzûåU]½çH…<ÇÕ+ ·½ëŒ Ú t莛ìyHævOÔ­äG„‡Âü@ÄYMlã§ú$ýÇèè"sNÉy†Õ™0ý|v•Cí¥ËÛ!ç/Ù5u ãI(2,{žýi;toGíËoh—E½'o6”i2¸KíðŠ3dúâðØDíí2F†ÞEN¤¨ÒÂ@M°}DŽp¨•ùg@Þ7°\èÙxHûîÆ÷*$ÊH¶,ðUg‡´0x.$­@ý£aï–‹î v|O‚àm‘ÕÆç“óN¦B}ÂQËZÆäk8{ØåõÊôàMŸ(—©eôeã¯eÃ’@y]ÞZì§,w®½¦ÞÈKýô•éP L+ýÛ@è¶?6´w9“VŠQúK*N[v÷ÔsŹÙœ)cgH=lYÏŒ¢êÛÁ(þQí§Ì ’Eð¥âŸ.4| uc^OøÞ•ö^†H7,O?ÓhÊ&:*’äΊ:ÅËåï-ÔÃE ³ò ;Fê4°xÕKlÑM§µ!%ÊÓØ¶i\ŠÌm“s}ˆ§|\P ÚÁâ•#øYЇ9ãÌ‚zöŒˆó9û»Ó!X ç—Ñ€žòÝÞF#§3ê¥Yv¬Þ³cµ!ß`£/µQw•a\ [ÓgvTšQ‡U7^ŸœÃ6.´îÃÃÇd‚(ŒêO+Ö—·ÈwÀŠ &bôŸÿ¡¶Ã÷Îeõ#cœE,Ás’¾32Ut2¦WºO¯±ÐB|’òìèlSÒ¢-£ÿøøòá0³}"eñÙ7z7óÐ[Û®ç¹fɬæ÷^ƒ’¢éûî%?O@øoªÚ endstream endobj 538 0 obj << /Type /FontDescriptor /FontName /ATRGAP+CMTT10 /Flags 4 /FontBBox [-4 -233 537 696] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 69 /XHeight 431 /CharSet (/A/B/C/D/E/F/G/H/I/J/L/M/N/O/P/R/S/T/U/V/W/X/Y/a/acute/ampersand/asciitilde/asterisk/at/b/backslash/bar/braceleft/braceright/bracketleft/bracketright/c/colon/comma/d/dollar/e/eight/equal/f/five/four/g/greater/h/hyphen/i/j/k/l/less/m/n/nine/numbersign/o/one/p/parenleft/parenright/percent/period/plus/q/question/quotedbl/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) /FontFile 537 0 R >> endobj 539 0 obj << /Length1 1729 /Length2 4303 /Length3 0 /Length 5364 /Filter /FlateDecode >> stream xÚt<Ôü¿]V2J}Œ32nXáÈ¡²3*çܹãÜqŽ#{¢ì•]VVöJ¥B(!2Ê*2’MåwÚ}ÿÿÇã÷{œÇ¹çëõ|¿^Ï×ûõz½AçL¥Ôö(ž$•†(šFffPÈHC 0&È K¡~Ù™@(¢;–€Wú‹¡ID!H›‚D!ðÀi• òJP%€A Š¿ˆ¢ …ðÄ:FÒÀiåÎÒ$¸z±Ž%ϯŸ€R€***H~?¨» ˆX$!H” %#L H,ŠäýO18†DrUƒÉd²4ÂÅ]š@tT—ÈX0A¹£ˆž(`¯dà Âõ³4i&`†Áºÿp˜Ð$2‚ˆ(‰Â»SŽxàPD€’0Õ7κ¢ð?Ȇ?’ÀÏË ÒÐßá~žÞ „Å?Œ@" .®¼7ï ±8pVÇPšäE’x‡="çN œGx"°8„=…ð]:ÐQ7” ÖçŽ$b]IîÒîXÜ^à½0”kÖÆ;h\\Px’;Óž>-,…¤Ü»7øgsñ2ÞçBcñè½2<\Áæx¬›J_ë'‡bbúcsD‘9rRF@¹(/$¼—ÀÌÛõÝ Ý3Sjðóq%¸hJ(?,EùÇäãŽðD$¢ÊÏçoÇ¿ˆ °H`rÄâ™þD§˜Qè˜Ò"Ö °PÆ @ö>¿] L˜óþCÿÞb°¹¡åOâgÉ¿/ÀG HÁdd9˜, ¯(øýåwý¿jÿn=‡ÀþÔùO&Š?J Üݯ2<Î…ØÏ¥þÍp†@™f ögøm!r$å ú^ïGþ“¿åþÿ*ÒñÀá¾ûÅ~þ?‹óþÉ L³‰²FÊ~àÿKµDýXg#”ÖÃå¿^}‚²!êxGÜï‹Äºë`½Pç°$$æûÄüj%:‹G#¸c÷Þ@ üÇGY9¤3åMq§4ë» EÙ¨3j㑇½ÕƒÉÉ"áÍ¡ÌLNðRvÔåõ}´°4ž@¢(Õùh‘i¯¥Š ±gúN`û?H#£=u`‡¿ £þ‚0Œþ å)Èqï}¤ÜãŠ,Æü†²rä튡<;ö/Hçü¤¨ÃýIA‘ƒÛ»š?~Š^—?J!ü›²‹`Â_¢Ðõ/(€Ýþ‚©)‡Rtý•*€IAŠL¿ E¦çwøO§D"åû¾L”6þÂß_LÊ …d •C*B7ËÔ¥¦»a²¬íŸ¯­î·œÒæõ|o¬ ßZ‘ɉ|­Þúj&rë-ÇGØÝçóÜç‹ã¾É‘JÜCUôhûIIß^•íƒ–k;¼ƒ#÷R­ÉSòªZŸøaI·åéþ´Y]¸HméF fiŸhõ¼4 MwTä>ž“'eXhB›ÔÓšJ5ÊÕû^5ë »Vë^¸É¯3»•ü¸&7Ñ>\(I}—|dnŽÕÕ`5mN5éC›<Ÿ]/КjÓæÙ¹!¼Ú$fïÞuîFž,ÚìsÍÇ<³‚¡AÄÚ…Š)½ž¢bØäËS«f&ó ¡'mb§¥Ù† 5ö—ÖOaÕûoœk„[Ii‡÷úk8–>_Ï;%då®v[ßç|˲è±îAó^1q?h§œó‚I?òx86'nyu1»Œ>üú»ÏÛ¯}·³\ÕÒOëVVOv°­Pž‹ÏkŸ…Z;ÞÝÞ{é5Aoo•A/9¿‘=’¶>Q6Ÿ¾Ê¶oë œýšN÷Ñy‡øô`7-¢à‰¤³d•ë—à×î™pA1ë}"·½ÕˆO2®]=±CXécÕ-äŒhMI'ËÆ¾Yî÷+Z%v^­½z±¸T[ÂZwy$~•¶’ÔÚù½nì/©ÒúØB`µEše˜¯¼îôÜêÁæð%ZCöêíô‰²Ôó÷Ž„õð¼at KÀ\v³vÊãÌ´­Ôô(¥9û"{2zÃÕnû–?ÝZUF³ž°-´WKYLøöBµLH]ØzŽš”O\¹ŠN ucD†g›Ž)~`S²^M­+è;ð9ÎÅø¾ÙèóÌý¯«ĵ‘iý|†™Š6A~GŠÅE¢‰5†1A«UžÊ_ßåÖú!$‚ðä 3S&ªì‹âàŒ7z_Dµ«tx¿…Íê8ØsfJ&e¿¹§ìåÖž¸¶}:‡ý ÀDvžo¸%!¥;%X ?Tº~6¼Õîúxâvíñ'Óêã–ùâ:›ÓÐ"ãJ†r¹ågš4’tj4εeMܹ¾·Ö«œØtH›‚GÙ‚á¢-éí…K¯gàåÚ÷r\ƒM2oé7{Ç|hR/( ©}¾æÝayë´`…ûؽD5o¦š|Û¨»Öt<ðZ`4šª™ðc°špêA$µ–ŠžuÝ• “ÉmŽã©£t5sר*òѲ+ƒ_ä4Yw¨h™3ÅW†}ÂGSa:ÓedÑ>ÊŒyzôòÍù̇ 6Ãò¼³t–4Wï©ÝºôÚ©Ã7injúÌãèšš\94”?íyEo Î\^Ñw‡Ú¤ïM²Tk¨©Þàsf¼ÏU©bEÍ“"÷RÌÓ™ÊìœtxAé É;à'ë»—§‰|n¥û4û0ÇÓ;½ï¼*H |võ[%ÆO†qiþØi³µhÏ`¢è-ÝamHƒKȨðC{ëò³¶ðÝ;h¢º °©“yˆ ìpIvOl»¹¿dÖ3PA?8!Ó=bW\uûe¯ê‚Ð@µBÉTʼóØv…Š|Ó—Z§A~hɧtGkù)ö .ÈI֣ÖÃ>jJPÒÑ…]ÐxQlèwìÚ‘¦0‹4ö­ànÔ'^ã¾ç~®‰‹Ã½ O&Ä­h.Z5ÞN>™¹ýfÇG/5ÔúˆÕ§²>½uÐ3ªDas¹¤Ì²+CሓÌ9üÜyÇ …Ô™èÌTøuz@DMÚvÍ0ã#cóÈŸ£fa‰z8³ç}[ÏA:/w§MÁ©‹FíªK ½ípµ…rL{.›²Î¶’êJG qÔG«¬’Žv?Ü@À1±­ë»%M½¦»ïÖðmcñÖtý-%Ó5œŠ˜Âþ£å•^|#2ó…X³¡ñ×õîá;ó¾HãÞG^¦dÁ"ŽhXÊ%ђ_¯õœ§Ìlß-ÌÃ(ëÒù.Ó½¶†Ny©oªù9·Š„—›-×[RZ*˜Xb`ÙÇßÝÈÝÆ¥hXÐÂ×P:Ñy†³ã¢²£GÑb"ù¶Úmª-©sþËôMûž·‘ûtß·ëö ë­6ôäUTM%öTndða«7ú Š ²g°fÇ%@l[4´ ì±3*!=Îà£Qü}|â×A£Ïš–£—³ jª=ìJ>‘½;-±dA: p{¬eÊ¥™@²Á–"OÓež–ÌV²_z!çp¾b&”ªÝÕE|<¥~g®¸Å\"y¿RËEfˆažè ¤îÈD?ÊàLld¹eD¨ù°<¨G`[2 W)ZIøVMìÅÓb_ªM~bÐgî{ç±aR%16¸ô\‚ZûeéÌv‰xüêó,j—ýé«Bļ¡ ˜j!s ³¨`Ûmm´í¡Ü–F}¥¸þÅ$Ú(ç]„ —U¿¹¿ÿ±9¿Í¼s1ÔŽµá}ïòâÞ[‹ÞW´G<›·½Òã7mA¬hû B¼I¨ß™³˜8ÐnèÇm#ôX8²ôTmh+¦Ùk‚žÓtïÏ?3Û—8ßðdµ’î个ùÃv[µ>ôÚË\ލ÷#Ò_ SÙsÒÕ|xøÖÎØ{qGðžÈ_*–RŽF.=É¿u=ÑqØÄúÓ7ã“q@çų„ QðxLe#ä“i‘ ¬Û,…®û=:¢SãÒÑ¹Š›ÌI\3Q61S㻘ÖÎQ êúdé­ÐðmÐ-TÒ“ÌT÷åÑnÈaWɾÔG‹©˪“T²õE§.=5È½Ll{0â¦2)kSÌ3ÓcñËõ^ؘ¼‚Û.çj9ð£ØNótLaùÛ™´›uŸ|«üÇÆà/º–HÊ®óKÌÓÓ _h„ųÞùGøìûö†Í݇2unÙœëŽÛqƼáÓ¼ž¨ƒÊoä“=àrþä½B¯]WØ´|=rEä[ ñb"zÖ‹™)¥yfíâ'©¸réýîY½¦ üÄ>ÎnÊJ ¥<äâ¢%1CÞõ’'–Wk.ø•GHùdáæã TmEr‹¹x–ÅŽ£ßN1çY»å±Œöçl¤hzg:¾/ -Ûš”iô´©˜åçóöך“ þš5·ß)h)“µŸYwG^=zå¶ ù´ü¼V\¨ÚE.í¼¹Þžtyúº—FHd Ê{³æ›kÙïÕ9™ÃT„^×׋iÖUžêYP`ñ›+—×ÚR:d›$SMægv¨§Î‡I§¨¼ctN\軉ƒyu­5Ì÷ÅÎ)r1xç]M}í›Áo×Ògõ\R;]d*} 2¸þµëe¼Áaûmmȸîƒ&a7­!ÔPùó~»¬37©ßh‡ Ùù3T0Ë[B–”q¬Ê"´ ,qÖÎϺƒ2aʶw»rZœÔÉpíLsë§©PíwŸF§å¨š,6Šù&ÆÎ*çLˆ†(÷acf¦XU¨1¶UïسN+»J¬æ_º˜R—0Ø—k¤z'Eqÿ—Ãùr¯Ð«†œ‡Ë%V`|Ílp¶ÞbÛWÐ…qöY©C´Ž|T4ÏÒϲ]|œ‹?y,º"Òn¥òÃÙº,“ñàÁÖ¼nc³dë:‹¡aT€çÀ°ŠÑÏýänÃÅbµõ¦êueM.‚¾B–¾_gƈq7ã"&?~¬~sDÛˆk]kusÿ›¹›~›ÞØ™êµ5&5TblChEºò¼µXÿ:ãtè]ëQ^®§õó¼oÍõvh"•SàXÄ<èÆgFùˆóSSJ&nfé^L­Zº’åsÅV~¾Ä·é\ƽwWÙ\®°úæÎÓ–¦ô»/0§Џ8ú¤ÿ¬ŽM†¶bàœRc"‹ÏM€¾õ½ÿŽÉ) hÊðñ-®®Byø3 ¾‰& †¢Ð»ËÇEìªÔ‡mjWÀ`Ák`üÕéʼnÑÊ8Œyèý¦ón–ÙÁ]©gæ% NEÂØw1°‹È€kn‘˜ú–8øñA"ÿ\ø&ÓË®8=ž¹©Vj¸É§}9¨CŽWJI^:ŒeµŸ¨‚Ý/@4%IòÞ§61môákÇN—µÊ-'’ÃÙºSµ—KŽÑQÁѵ}ž3ÔIç㸢$:ÌòÝÇñAZöÅorîë²ym uŸµ"õU»õn–_Œœ¥&‡]®˜U ÙXUT¡}ÆuBʺΨ4ª¼ea‚Uø`^‘ÁR*9կ鑮4׋‚î;oxF­†âƒ^¡2¹ŒŠ÷%ÒÁ-ÙUìúò/¦A,áøÚ™¤Û-ô¡£¨”d׬P 5ðþOÈmBë¸0+|Ì™~\°~ÉŽ¾ÜÀw€ myÈ€vâiƒ™…†¸mÿ‰¡0¯ TGcªB6ã£ûé76nœ°|R‘k—é{dú½z¹ú£÷FLUÜ£1ØŽâòìa†1§­zúC#éi]bnìfA¬@_U ªP8™caè=öÕÝ7§F{)ªŸ±0£óë!¯Ð¶„ïѦ0—ÁüLHÉå©Ã2z½ù€“Ö…šÃ~7wúAY^AMÄ8!–—_禥 ,Ó#ÇìϽf…4ü*z3Mªmy Ì€–?öÞR±ÿõM;V³ÁÈ©ÈÛÊb½…Ä„£Ý]í3Q;¶í¥Ü—DY©q?Íøpvá}$Ýn;C¤qÏB´'¸Ì-Ò„[U¬^† RÅuí=œÕªø-RãcW€b KïÕ)ë›Ïà»ý÷¬ª_Lð†bžÛKÝÍ B£G0·³½ÞŠ\¨teï‘w’ÕYâ¡”˜©0.Ò¾’¦[ëq0káBFCÄÚce5þÔ7WžHwÐֵϩޱH7Ñü‚µC_àѯX³ƒ&e^†2ã;'ÿÜvä}ùì†xÉg·‹¶lØÈƒü¹ÜbyÒÉZ0Лx€y•§ÝõëSòŠÑtõí§Öm¯Jú^¦¹9Â|šô²s¨6÷ "0:Ì^Ë ‡j—%f$$Æ´U½œ^ëÂ>®» éðÉ%–®Ü.ΜÞ?šR%Ë|š¯±Ï\±·še¯°rærøè}UåîÔ¾¯pÔ×Òç`»ã wÉu;k}¶ÕC‡.®ÛmyÓî4´m,öeãü×Sr_É‘R´»N_7žKÖK·¹jHÇ@C—X•%Øã¼diR³¸Â–x’Û,ágŠŠî3ù¯%B¢w}uUµm„C\îŸê/Stô•çÀ³Ežf-åkVuÒhµ‰¯ºÀñ’ÏW+ð™ÁÌá¥4¹ uûá¨Õè¾»õH8›ŸPœ?ÿ lBlµ€ÏTTÞö„¬`(™m:ú·Zåe6¯(ÅÂûއ]ž‰ûî2oyÝNº{ |E»ûX¥w ®£Íð3Ï=ñ±â¸°µ68ñ©¬½¥­’sБõo¸lýø×©*⛇sÚbºÆjç8б¡ÆÛcóK8ï¡ed;ù¬ôƒÍ¿Õ ¬àIœa-Í :¯†s53nù<“(`Û+™äYR()«Ý'Or&«ã3´ØDüY< Éë:¾û–©K‡¯~«´d©E›„œð&ú{¼Lñ¸ò ;V‘¢ÑT¬9™ßt.Ù$ñ?©q‡‡ endstream endobj 540 0 obj << /Type /FontDescriptor /FontName /ULTULT+CMTT12 /Flags 4 /FontBBox [-1 -234 524 695] /Ascent 611 /CapHeight 611 /Descent -222 /ItalicAngle 0 /StemV 65 /XHeight 431 /CharSet (/a/b/c/d/e/f/greater/h/hyphen/i/k/l/less/m/n/o/p/q/r/s/t/u/v) /FontFile 539 0 R >> endobj 330 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ZWIIUE+CMB10 /FontDescriptor 518 0 R /FirstChar 45 /LastChar 120 /Widths 509 0 R /ToUnicode 1 0 R >> endobj 7 0 obj << /Type /Font /Subtype /Type1 /BaseFont /JJWTOW+CMBX12 /FontDescriptor 520 0 R /FirstChar 12 /LastChar 122 /Widths 516 0 R /ToUnicode 1 0 R >> endobj 353 0 obj << /Type /Font /Subtype /Type1 /BaseFont /XPUFLM+CMEX10 /FontDescriptor 522 0 R /FirstChar 26 /LastChar 62 /Widths 506 0 R >> endobj 62 0 obj << /Type /Font /Subtype /Type1 /BaseFont /LRUQAU+CMMI10 /FontDescriptor 524 0 R /FirstChar 18 /LastChar 120 /Widths 511 0 R >> endobj 61 0 obj << /Type /Font /Subtype /Type1 /BaseFont /GPANTX+CMMI12 /FontDescriptor 526 0 R /FirstChar 58 /LastChar 58 /Widths 512 0 R >> endobj 344 0 obj << /Type /Font /Subtype /Type1 /BaseFont /VUZWZI+CMMI7 /FontDescriptor 528 0 R /FirstChar 83 /LastChar 116 /Widths 508 0 R >> endobj 8 0 obj << /Type /Font /Subtype /Type1 /BaseFont /HEVLMM+CMR10 /FontDescriptor 530 0 R /FirstChar 11 /LastChar 127 /Widths 515 0 R /ToUnicode 1 0 R >> endobj 345 0 obj << /Type /Font /Subtype /Type1 /BaseFont /NLKSSS+CMR7 /FontDescriptor 532 0 R /FirstChar 49 /LastChar 52 /Widths 507 0 R >> endobj 14 0 obj << /Type /Font /Subtype /Type1 /BaseFont /PQWCTK+CMSY10 /FontDescriptor 534 0 R /FirstChar 0 /LastChar 21 /Widths 513 0 R >> endobj 329 0 obj << /Type /Font /Subtype /Type1 /BaseFont /WQCPVJ+CMTI10 /FontDescriptor 536 0 R /FirstChar 45 /LastChar 121 /Widths 510 0 R /ToUnicode 2 0 R >> endobj 13 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ATRGAP+CMTT10 /FontDescriptor 538 0 R /FirstChar 19 /LastChar 126 /Widths 514 0 R /ToUnicode 3 0 R >> endobj 385 0 obj << /Type /Font /Subtype /Type1 /BaseFont /ULTULT+CMTT12 /FontDescriptor 540 0 R /FirstChar 45 /LastChar 118 /Widths 505 0 R /ToUnicode 3 0 R >> endobj 9 0 obj << /Type /Pages /Count 6 /Parent 541 0 R /Kids [5 0 R 11 0 R 58 0 R 96 0 R 327 0 R 337 0 R] >> endobj 346 0 obj << /Type /Pages /Count 6 /Parent 541 0 R /Kids [341 0 R 350 0 R 359 0 R 362 0 R 366 0 R 370 0 R] >> endobj 376 0 obj << /Type /Pages /Count 6 /Parent 541 0 R /Kids [373 0 R 379 0 R 383 0 R 387 0 R 390 0 R 393 0 R] >> endobj 398 0 obj << /Type /Pages /Count 6 /Parent 541 0 R /Kids [396 0 R 400 0 R 405 0 R 408 0 R 412 0 R 416 0 R] >> endobj 424 0 obj << /Type /Pages /Count 6 /Parent 541 0 R /Kids [421 0 R 427 0 R 431 0 R 434 0 R 438 0 R 441 0 R] >> endobj 447 0 obj << /Type /Pages /Count 6 /Parent 541 0 R /Kids [444 0 R 452 0 R 457 0 R 461 0 R 464 0 R 468 0 R] >> endobj 475 0 obj << /Type /Pages /Count 6 /Parent 542 0 R /Kids [473 0 R 479 0 R 483 0 R 486 0 R 490 0 R 493 0 R] >> endobj 500 0 obj << /Type /Pages /Count 2 /Parent 542 0 R /Kids [497 0 R 502 0 R] >> endobj 541 0 obj << /Type /Pages /Count 36 /Parent 543 0 R /Kids [9 0 R 346 0 R 376 0 R 398 0 R 424 0 R 447 0 R] >> endobj 542 0 obj << /Type /Pages /Count 8 /Parent 543 0 R /Kids [475 0 R 500 0 R] >> endobj 543 0 obj << /Type /Pages /Count 44 /Kids [541 0 R 542 0 R] >> endobj 544 0 obj << /Type /Outlines /First 108 0 R /Last 320 0 R /Count 6 >> endobj 320 0 obj << /Title 321 0 R /A 318 0 R /Parent 544 0 R /Prev 316 0 R >> endobj 316 0 obj << /Title 317 0 R /A 314 0 R /Parent 544 0 R /Prev 284 0 R /Next 320 0 R >> endobj 312 0 obj << /Title 313 0 R /A 310 0 R /Parent 284 0 R /Prev 308 0 R >> endobj 308 0 obj << /Title 309 0 R /A 306 0 R /Parent 284 0 R /Prev 304 0 R /Next 312 0 R >> endobj 304 0 obj << /Title 305 0 R /A 302 0 R /Parent 284 0 R /Prev 292 0 R /Next 308 0 R >> endobj 300 0 obj << /Title 301 0 R /A 298 0 R /Parent 292 0 R /Prev 296 0 R >> endobj 296 0 obj << /Title 297 0 R /A 294 0 R /Parent 292 0 R /Next 300 0 R >> endobj 292 0 obj << /Title 293 0 R /A 290 0 R /Parent 284 0 R /Prev 288 0 R /Next 304 0 R /First 296 0 R /Last 300 0 R /Count -2 >> endobj 288 0 obj << /Title 289 0 R /A 286 0 R /Parent 284 0 R /Next 292 0 R >> endobj 284 0 obj << /Title 285 0 R /A 282 0 R /Parent 544 0 R /Prev 208 0 R /Next 316 0 R /First 288 0 R /Last 312 0 R /Count -5 >> endobj 280 0 obj << /Title 281 0 R /A 278 0 R /Parent 208 0 R /Prev 276 0 R >> endobj 276 0 obj << /Title 277 0 R /A 274 0 R /Parent 208 0 R /Prev 272 0 R /Next 280 0 R >> endobj 272 0 obj << /Title 273 0 R /A 270 0 R /Parent 208 0 R /Prev 212 0 R /Next 276 0 R >> endobj 268 0 obj << /Title 269 0 R /A 266 0 R /Parent 212 0 R /Prev 264 0 R >> endobj 264 0 obj << /Title 265 0 R /A 262 0 R /Parent 212 0 R /Prev 260 0 R /Next 268 0 R >> endobj 260 0 obj << /Title 261 0 R /A 258 0 R /Parent 212 0 R /Prev 256 0 R /Next 264 0 R >> endobj 256 0 obj << /Title 257 0 R /A 254 0 R /Parent 212 0 R /Prev 248 0 R /Next 260 0 R >> endobj 252 0 obj << /Title 253 0 R /A 250 0 R /Parent 248 0 R >> endobj 248 0 obj << /Title 249 0 R /A 246 0 R /Parent 212 0 R /Prev 236 0 R /Next 256 0 R /First 252 0 R /Last 252 0 R /Count -1 >> endobj 244 0 obj << /Title 245 0 R /A 242 0 R /Parent 236 0 R /Prev 240 0 R >> endobj 240 0 obj << /Title 241 0 R /A 238 0 R /Parent 236 0 R /Next 244 0 R >> endobj 236 0 obj << /Title 237 0 R /A 234 0 R /Parent 212 0 R /Prev 224 0 R /Next 248 0 R /First 240 0 R /Last 244 0 R /Count -2 >> endobj 232 0 obj << /Title 233 0 R /A 230 0 R /Parent 224 0 R /Prev 228 0 R >> endobj 228 0 obj << /Title 229 0 R /A 226 0 R /Parent 224 0 R /Next 232 0 R >> endobj 224 0 obj << /Title 225 0 R /A 222 0 R /Parent 212 0 R /Prev 220 0 R /Next 236 0 R /First 228 0 R /Last 232 0 R /Count -2 >> endobj 220 0 obj << /Title 221 0 R /A 218 0 R /Parent 212 0 R /Prev 216 0 R /Next 224 0 R >> endobj 216 0 obj << /Title 217 0 R /A 214 0 R /Parent 212 0 R /Next 220 0 R >> endobj 212 0 obj << /Title 213 0 R /A 210 0 R /Parent 208 0 R /Next 272 0 R /First 216 0 R /Last 268 0 R /Count -9 >> endobj 208 0 obj << /Title 209 0 R /A 206 0 R /Parent 544 0 R /Prev 120 0 R /Next 284 0 R /First 212 0 R /Last 280 0 R /Count -4 >> endobj 204 0 obj << /Title 205 0 R /A 202 0 R /Parent 120 0 R /Prev 144 0 R >> endobj 200 0 obj << /Title 201 0 R /A 198 0 R /Parent 144 0 R /Prev 196 0 R >> endobj 196 0 obj << /Title 197 0 R /A 194 0 R /Parent 144 0 R /Prev 192 0 R /Next 200 0 R >> endobj 192 0 obj << /Title 193 0 R /A 190 0 R /Parent 144 0 R /Prev 188 0 R /Next 196 0 R >> endobj 188 0 obj << /Title 189 0 R /A 186 0 R /Parent 144 0 R /Prev 184 0 R /Next 192 0 R >> endobj 184 0 obj << /Title 185 0 R /A 182 0 R /Parent 144 0 R /Prev 180 0 R /Next 188 0 R >> endobj 180 0 obj << /Title 181 0 R /A 178 0 R /Parent 144 0 R /Prev 176 0 R /Next 184 0 R >> endobj 176 0 obj << /Title 177 0 R /A 174 0 R /Parent 144 0 R /Prev 172 0 R /Next 180 0 R >> endobj 172 0 obj << /Title 173 0 R /A 170 0 R /Parent 144 0 R /Prev 168 0 R /Next 176 0 R >> endobj 168 0 obj << /Title 169 0 R /A 166 0 R /Parent 144 0 R /Prev 164 0 R /Next 172 0 R >> endobj 164 0 obj << /Title 165 0 R /A 162 0 R /Parent 144 0 R /Prev 160 0 R /Next 168 0 R >> endobj 160 0 obj << /Title 161 0 R /A 158 0 R /Parent 144 0 R /Prev 156 0 R /Next 164 0 R >> endobj 156 0 obj << /Title 157 0 R /A 154 0 R /Parent 144 0 R /Prev 152 0 R /Next 160 0 R >> endobj 152 0 obj << /Title 153 0 R /A 150 0 R /Parent 144 0 R /Prev 148 0 R /Next 156 0 R >> endobj 148 0 obj << /Title 149 0 R /A 146 0 R /Parent 144 0 R /Next 152 0 R >> endobj 144 0 obj << /Title 145 0 R /A 142 0 R /Parent 120 0 R /Prev 140 0 R /Next 204 0 R /First 148 0 R /Last 200 0 R /Count -14 >> endobj 140 0 obj << /Title 141 0 R /A 138 0 R /Parent 120 0 R /Prev 128 0 R /Next 144 0 R >> endobj 136 0 obj << /Title 137 0 R /A 134 0 R /Parent 128 0 R /Prev 132 0 R >> endobj 132 0 obj << /Title 133 0 R /A 130 0 R /Parent 128 0 R /Next 136 0 R >> endobj 128 0 obj << /Title 129 0 R /A 126 0 R /Parent 120 0 R /Prev 124 0 R /Next 140 0 R /First 132 0 R /Last 136 0 R /Count -2 >> endobj 124 0 obj << /Title 125 0 R /A 122 0 R /Parent 120 0 R /Next 128 0 R >> endobj 120 0 obj << /Title 121 0 R /A 118 0 R /Parent 544 0 R /Prev 108 0 R /Next 208 0 R /First 124 0 R /Last 204 0 R /Count -5 >> endobj 116 0 obj << /Title 117 0 R /A 114 0 R /Parent 108 0 R /Prev 112 0 R >> endobj 112 0 obj << /Title 113 0 R /A 110 0 R /Parent 108 0 R /Next 116 0 R >> endobj 108 0 obj << /Title 109 0 R /A 106 0 R /Parent 544 0 R /Next 120 0 R /First 112 0 R /Last 116 0 R /Count -2 >> endobj 545 0 obj << /Names [(-1) 60 0 R (-2) 98 0 R (1) 63 0 R (10) 69 0 R (11) 70 0 R (12) 71 0 R] /Limits [(-1) (12)] >> endobj 546 0 obj << /Names [(13) 72 0 R (14) 73 0 R (15) 74 0 R (16) 75 0 R (17) 76 0 R (18) 410 0 R] /Limits [(13) (18)] >> endobj 547 0 obj << /Names [(19) 414 0 R (2) 64 0 R (20) 418 0 R (21) 77 0 R (22) 78 0 R (23) 79 0 R] /Limits [(19) (23)] >> endobj 548 0 obj << /Names [(24) 80 0 R (25) 81 0 R (26) 82 0 R (27) 446 0 R (28) 454 0 R (29) 459 0 R] /Limits [(24) (29)] >> endobj 549 0 obj << /Names [(3) 343 0 R (30) 99 0 R (31) 466 0 R (32) 470 0 R (33) 100 0 R (34) 101 0 R] /Limits [(3) (34)] >> endobj 550 0 obj << /Names [(35) 102 0 R (36) 103 0 R (37) 104 0 R (38) 495 0 R (39) 105 0 R (4) 352 0 R] /Limits [(35) (4)] >> endobj 551 0 obj << /Names [(40) 504 0 R (5) 65 0 R (6) 66 0 R (7) 67 0 R (8) 68 0 R (9) 375 0 R] /Limits [(40) (9)] >> endobj 552 0 obj << /Names [(A First Example) 123 0 R (Bas03a) 333 0 R (Bas03b) 499 0 R (Bas04) 332 0 R (Basic Installation) 303 0 R (Basics) 111 0 R] /Limits [(A First Example) (Basics)] >> endobj 553 0 obj << /Names [(CLooG Data Structures) 211 0 R (CLooG Library) 207 0 R (CLooG Options) 143 0 R (CLooG Output) 271 0 R (CLooG Software) 119 0 R (Callable Code) 183 0 R] /Limits [(CLooG Data Structures) (Callable Code)] >> endobj 554 0 obj << /Names [(Calling CLooG) 139 0 R (CloogDomain) 223 0 R (CloogDomain/PolyLib) 227 0 R (CloogDomain/isl) 231 0 R (CloogInput) 263 0 R (CloogMatrix) 219 0 R] /Limits [(Calling CLooG) (CloogMatrix)] >> endobj 555 0 obj << /Names [(CloogOptions) 259 0 R (CloogScattering) 235 0 R (CloogScattering/PolyLib) 239 0 R (CloogScattering/isl) 243 0 R (CloogState) 215 0 R (CloogStatement) 255 0 R] /Limits [(CloogOptions) (CloogStatement)] >> endobj 556 0 obj << /Names [(CloogUnionDomain) 247 0 R (CloogUnionDomain/isl) 251 0 R (Compilable Code) 179 0 R (Documentation) 315 0 R (Domain Representation) 131 0 R (Dump CLooG Input File Function) 267 0 R] /Limits [(CloogUnionDomain) (Dump CLooG Input File Function)] >> endobj 557 0 obj << /Names [(Equality Spreading) 163 0 R (Example of Library Utilization) 279 0 R (Fea92) 347 0 R (First Depth to Optimize Control) 151 0 R (First Level for Spreading) 167 0 R (Full Example) 203 0 R] /Limits [(Equality Spreading) (Full Example)] >> endobj 558 0 obj << /Names [(GMP Library) 299 0 R (Gri04) 334 0 R (Help) 191 0 R (Installing) 283 0 R (Introduction) 107 0 R (Last Depth to Optimize Control) 147 0 R] /Limits [(GMP Library) (Last Depth to Optimize Control)] >> endobj 559 0 obj << /Names [(License) 287 0 R (Loop Strides) 175 0 R (Once Time Loop Elimination) 159 0 R (Optional Features) 307 0 R (Output) 187 0 R (PolyLib) 295 0 R] /Limits [(License) (PolyLib)] >> endobj 560 0 obj << /Names [(Qui00) 331 0 R (Quiet) 199 0 R (References) 319 0 R (Requirements) 291 0 R (Retrieving version information) 275 0 R (Scattering) 115 0 R] /Limits [(Qui00) (Scattering)] >> endobj 561 0 obj << /Names [(Scattering Representation) 135 0 R (Simplify Convex Hull) 155 0 R (Statement Block) 171 0 R (Uninstallation) 311 0 R (Version) 195 0 R (Wil93) 368 0 R] /Limits [(Scattering Representation) (Wil93)] >> endobj 562 0 obj << /Names [(Writing The Input File) 127 0 R] /Limits [(Writing The Input File) (Writing The Input File)] >> endobj 563 0 obj << /Kids [545 0 R 546 0 R 547 0 R 548 0 R 549 0 R 550 0 R] /Limits [(-1) (4)] >> endobj 564 0 obj << /Kids [551 0 R 552 0 R 553 0 R 554 0 R 555 0 R 556 0 R] /Limits [(40) (Dump CLooG Input File Function)] >> endobj 565 0 obj << /Kids [557 0 R 558 0 R 559 0 R 560 0 R 561 0 R 562 0 R] /Limits [(Equality Spreading) (Writing The Input File)] >> endobj 566 0 obj << /Kids [563 0 R 564 0 R 565 0 R] /Limits [(-1) (Writing The Input File)] >> endobj 567 0 obj << /Dests 566 0 R >> endobj 568 0 obj << /Type /Catalog /Pages 543 0 R /Outlines 544 0 R /Names 567 0 R /PageMode /UseOutlines >> endobj 569 0 obj << /Producer (pdfTeX-1.40.10) /Creator (TeX) /CreationDate (D:20110107140526+01'00') /ModDate (D:20110107140526+01'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-1.40.10-2.2 (TeX Live 2009/Debian) kpathsea version 5.0.0) >> endobj xref 0 570 0000000000 65535 f 0000000015 00000 n 0000000681 00000 n 0000001358 00000 n 0000002474 00000 n 0000002370 00000 n 0000001962 00000 n 0000296365 00000 n 0000297095 00000 n 0000298017 00000 n 0000004226 00000 n 0000004119 00000 n 0000002553 00000 n 0000297696 00000 n 0000297394 00000 n 0000007404 00000 n 0000007530 00000 n 0000007657 00000 n 0000007784 00000 n 0000007910 00000 n 0000008037 00000 n 0000008164 00000 n 0000008291 00000 n 0000008418 00000 n 0000008546 00000 n 0000008674 00000 n 0000008802 00000 n 0000008930 00000 n 0000009057 00000 n 0000009184 00000 n 0000009312 00000 n 0000009440 00000 n 0000009568 00000 n 0000009695 00000 n 0000009823 00000 n 0000009950 00000 n 0000010078 00000 n 0000010206 00000 n 0000010334 00000 n 0000010462 00000 n 0000010590 00000 n 0000010718 00000 n 0000010846 00000 n 0000010974 00000 n 0000011102 00000 n 0000011230 00000 n 0000011356 00000 n 0000011483 00000 n 0000011611 00000 n 0000011739 00000 n 0000011867 00000 n 0000011994 00000 n 0000012121 00000 n 0000012249 00000 n 0000012376 00000 n 0000014063 00000 n 0000014191 00000 n 0000012553 00000 n 0000007005 00000 n 0000004319 00000 n 0000012502 00000 n 0000296810 00000 n 0000296667 00000 n 0000025410 00000 n 0000049201 00000 n 0000070774 00000 n 0000072897 00000 n 0000076792 00000 n 0000079206 00000 n 0000082877 00000 n 0000085231 00000 n 0000086880 00000 n 0000088615 00000 n 0000090382 00000 n 0000092144 00000 n 0000093799 00000 n 0000096378 00000 n 0000103793 00000 n 0000106955 00000 n 0000109393 00000 n 0000111933 00000 n 0000114301 00000 n 0000116980 00000 n 0000014319 00000 n 0000014447 00000 n 0000014575 00000 n 0000014703 00000 n 0000014831 00000 n 0000014958 00000 n 0000015086 00000 n 0000015214 00000 n 0000015342 00000 n 0000015470 00000 n 0000015598 00000 n 0000015726 00000 n 0000015905 00000 n 0000013846 00000 n 0000012669 00000 n 0000015854 00000 n 0000125882 00000 n 0000130133 00000 n 0000133494 00000 n 0000137004 00000 n 0000138116 00000 n 0000139957 00000 n 0000142083 00000 n 0000016009 00000 n 0000025462 00000 n 0000304260 00000 n 0000016059 00000 n 0000016091 00000 n 0000025515 00000 n 0000304181 00000 n 0000016135 00000 n 0000016184 00000 n 0000049253 00000 n 0000304102 00000 n 0000016232 00000 n 0000016299 00000 n 0000070826 00000 n 0000303970 00000 n 0000016351 00000 n 0000016395 00000 n 0000070879 00000 n 0000303891 00000 n 0000016448 00000 n 0000016483 00000 n 0000072949 00000 n 0000303759 00000 n 0000016543 00000 n 0000016585 00000 n 0000076844 00000 n 0000303680 00000 n 0000016644 00000 n 0000016685 00000 n 0000079258 00000 n 0000303601 00000 n 0000016748 00000 n 0000016802 00000 n 0000082929 00000 n 0000303508 00000 n 0000016853 00000 n 0000016886 00000 n 0000085283 00000 n 0000303375 00000 n 0000016937 00000 n 0000016970 00000 n 0000085336 00000 n 0000303296 00000 n 0000017038 00000 n 0000017099 00000 n 0000085392 00000 n 0000303203 00000 n 0000017168 00000 n 0000017230 00000 n 0000086932 00000 n 0000303110 00000 n 0000017288 00000 n 0000017342 00000 n 0000088667 00000 n 0000303017 00000 n 0000017406 00000 n 0000017467 00000 n 0000088724 00000 n 0000302924 00000 n 0000017523 00000 n 0000017576 00000 n 0000088781 00000 n 0000302831 00000 n 0000017639 00000 n 0000017697 00000 n 0000090434 00000 n 0000302738 00000 n 0000017750 00000 n 0000017802 00000 n 0000090491 00000 n 0000302645 00000 n 0000017852 00000 n 0000017903 00000 n 0000092196 00000 n 0000302552 00000 n 0000017956 00000 n 0000018011 00000 n 0000093851 00000 n 0000302459 00000 n 0000018062 00000 n 0000018115 00000 n 0000096430 00000 n 0000302366 00000 n 0000018159 00000 n 0000018197 00000 n 0000096487 00000 n 0000302273 00000 n 0000018239 00000 n 0000018276 00000 n 0000096544 00000 n 0000302180 00000 n 0000018321 00000 n 0000018364 00000 n 0000096601 00000 n 0000302101 00000 n 0000018407 00000 n 0000018446 00000 n 0000096658 00000 n 0000302022 00000 n 0000018496 00000 n 0000018530 00000 n 0000103845 00000 n 0000301890 00000 n 0000018581 00000 n 0000018624 00000 n 0000103898 00000 n 0000301772 00000 n 0000018683 00000 n 0000018736 00000 n 0000103955 00000 n 0000301693 00000 n 0000018784 00000 n 0000018814 00000 n 0000104012 00000 n 0000301600 00000 n 0000018863 00000 n 0000018894 00000 n 0000107007 00000 n 0000301468 00000 n 0000018943 00000 n 0000018974 00000 n 0000107064 00000 n 0000301389 00000 n 0000019031 00000 n 0000019058 00000 n 0000107121 00000 n 0000301310 00000 n 0000019111 00000 n 0000019134 00000 n 0000109445 00000 n 0000301178 00000 n 0000019187 00000 n 0000019222 00000 n 0000109502 00000 n 0000301099 00000 n 0000019283 00000 n 0000019310 00000 n 0000109559 00000 n 0000301020 00000 n 0000019367 00000 n 0000019390 00000 n 0000111985 00000 n 0000300888 00000 n 0000019444 00000 n 0000019480 00000 n 0000112038 00000 n 0000300823 00000 n 0000019538 00000 n 0000019561 00000 n 0000114353 00000 n 0000300730 00000 n 0000019613 00000 n 0000019647 00000 n 0000114406 00000 n 0000300637 00000 n 0000019697 00000 n 0000019729 00000 n 0000117032 00000 n 0000300544 00000 n 0000019777 00000 n 0000019807 00000 n 0000117089 00000 n 0000300465 00000 n 0000019875 00000 n 0000019925 00000 n 0000117146 00000 n 0000300372 00000 n 0000019975 00000 n 0000020007 00000 n 0000125934 00000 n 0000300279 00000 n 0000020075 00000 n 0000020125 00000 n 0000125991 00000 n 0000300200 00000 n 0000020193 00000 n 0000020243 00000 n 0000130186 00000 n 0000300068 00000 n 0000020291 00000 n 0000020327 00000 n 0000130239 00000 n 0000299989 00000 n 0000020372 00000 n 0000020399 00000 n 0000130296 00000 n 0000299857 00000 n 0000020449 00000 n 0000020481 00000 n 0000130353 00000 n 0000299778 00000 n 0000020526 00000 n 0000020566 00000 n 0000133547 00000 n 0000299699 00000 n 0000020615 00000 n 0000020659 00000 n 0000133604 00000 n 0000299606 00000 n 0000020715 00000 n 0000020759 00000 n 0000137057 00000 n 0000299513 00000 n 0000020814 00000 n 0000020851 00000 n 0000138169 00000 n 0000299434 00000 n 0000020903 00000 n 0000020937 00000 n 0000140010 00000 n 0000299341 00000 n 0000020988 00000 n 0000021021 00000 n 0000142136 00000 n 0000299262 00000 n 0000021069 00000 n 0000024867 00000 n 0000025003 00000 n 0000025138 00000 n 0000025275 00000 n 0000025572 00000 n 0000024713 00000 n 0000021099 00000 n 0000297535 00000 n 0000296205 00000 n 0000142488 00000 n 0000142308 00000 n 0000142189 00000 n 0000142428 00000 n 0000025691 00000 n 0000049310 00000 n 0000049091 00000 n 0000047042 00000 n 0000052211 00000 n 0000052400 00000 n 0000052079 00000 n 0000049452 00000 n 0000052347 00000 n 0000296952 00000 n 0000297253 00000 n 0000298127 00000 n 0000142368 00000 n 0000052532 00000 n 0000067781 00000 n 0000067616 00000 n 0000066416 00000 n 0000067728 00000 n 0000296524 00000 n 0000070188 00000 n 0000070341 00000 n 0000070485 00000 n 0000070621 00000 n 0000070936 00000 n 0000070032 00000 n 0000067949 00000 n 0000073006 00000 n 0000072785 00000 n 0000071029 00000 n 0000076656 00000 n 0000076901 00000 n 0000076524 00000 n 0000073112 00000 n 0000142548 00000 n 0000079315 00000 n 0000079094 00000 n 0000077031 00000 n 0000080993 00000 n 0000080828 00000 n 0000079458 00000 n 0000080940 00000 n 0000298244 00000 n 0000082733 00000 n 0000082986 00000 n 0000082601 00000 n 0000081125 00000 n 0000085090 00000 n 0000085449 00000 n 0000084958 00000 n 0000083079 00000 n 0000297856 00000 n 0000086989 00000 n 0000086768 00000 n 0000085569 00000 n 0000088838 00000 n 0000088503 00000 n 0000087109 00000 n 0000090548 00000 n 0000090270 00000 n 0000088958 00000 n 0000092253 00000 n 0000092032 00000 n 0000090668 00000 n 0000298361 00000 n 0000093908 00000 n 0000093687 00000 n 0000092373 00000 n 0000096106 00000 n 0000096242 00000 n 0000096715 00000 n 0000095966 00000 n 0000094028 00000 n 0000098486 00000 n 0000098321 00000 n 0000096872 00000 n 0000098433 00000 n 0000099996 00000 n 0000099831 00000 n 0000098618 00000 n 0000099943 00000 n 0000100620 00000 n 0000100455 00000 n 0000100078 00000 n 0000100567 00000 n 0000103531 00000 n 0000104069 00000 n 0000103391 00000 n 0000100702 00000 n 0000103663 00000 n 0000298478 00000 n 0000106661 00000 n 0000107178 00000 n 0000106521 00000 n 0000104199 00000 n 0000106809 00000 n 0000109614 00000 n 0000109281 00000 n 0000107308 00000 n 0000112095 00000 n 0000111821 00000 n 0000109707 00000 n 0000114157 00000 n 0000114463 00000 n 0000114025 00000 n 0000112188 00000 n 0000117203 00000 n 0000116868 00000 n 0000114580 00000 n 0000118358 00000 n 0000118193 00000 n 0000117320 00000 n 0000118305 00000 n 0000298595 00000 n 0000121684 00000 n 0000121830 00000 n 0000121968 00000 n 0000122301 00000 n 0000121528 00000 n 0000118440 00000 n 0000122248 00000 n 0000122109 00000 n 0000124046 00000 n 0000123881 00000 n 0000122383 00000 n 0000123993 00000 n 0000126048 00000 n 0000125770 00000 n 0000124128 00000 n 0000126944 00000 n 0000126779 00000 n 0000126153 00000 n 0000126891 00000 n 0000127314 00000 n 0000127149 00000 n 0000127026 00000 n 0000127261 00000 n 0000129997 00000 n 0000130410 00000 n 0000129865 00000 n 0000127355 00000 n 0000298712 00000 n 0000133209 00000 n 0000133346 00000 n 0000133661 00000 n 0000133069 00000 n 0000130515 00000 n 0000136856 00000 n 0000137114 00000 n 0000136724 00000 n 0000133766 00000 n 0000138226 00000 n 0000138004 00000 n 0000137219 00000 n 0000139816 00000 n 0000140063 00000 n 0000139684 00000 n 0000138331 00000 n 0000140444 00000 n 0000140279 00000 n 0000140156 00000 n 0000140391 00000 n 0000142608 00000 n 0000141971 00000 n 0000140485 00000 n 0000142248 00000 n 0000298829 00000 n 0000143002 00000 n 0000142837 00000 n 0000142714 00000 n 0000142949 00000 n 0000143043 00000 n 0000143506 00000 n 0000143739 00000 n 0000143782 00000 n 0000144007 00000 n 0000144443 00000 n 0000144906 00000 n 0000145493 00000 n 0000145516 00000 n 0000145658 00000 n 0000146109 00000 n 0000146753 00000 n 0000147394 00000 n 0000158985 00000 n 0000159271 00000 n 0000177735 00000 n 0000178163 00000 n 0000185718 00000 n 0000185993 00000 n 0000197052 00000 n 0000197329 00000 n 0000204301 00000 n 0000204528 00000 n 0000212329 00000 n 0000212555 00000 n 0000238099 00000 n 0000238668 00000 n 0000246194 00000 n 0000246429 00000 n 0000253943 00000 n 0000254202 00000 n 0000267341 00000 n 0000267633 00000 n 0000289829 00000 n 0000290445 00000 n 0000295929 00000 n 0000298914 00000 n 0000299030 00000 n 0000299115 00000 n 0000299185 00000 n 0000304378 00000 n 0000304501 00000 n 0000304626 00000 n 0000304751 00000 n 0000304878 00000 n 0000305005 00000 n 0000305133 00000 n 0000305253 00000 n 0000305444 00000 n 0000305678 00000 n 0000305895 00000 n 0000306128 00000 n 0000306403 00000 n 0000306668 00000 n 0000306895 00000 n 0000307098 00000 n 0000307299 00000 n 0000307529 00000 n 0000307654 00000 n 0000307752 00000 n 0000307879 00000 n 0000308014 00000 n 0000308109 00000 n 0000308147 00000 n 0000308256 00000 n trailer << /Size 570 /Root 568 0 R /Info 569 0 R /ID [<09656DDE1FFEE63F0A4AE6CF647E150B> <09656DDE1FFEE63F0A4AE6CF647E150B>] >> startxref 308523 %%EOF cloog-parma-0.16.1/cloog-core/doc/cloog.texi0000644000175000017500000025027711477121367015543 00000000000000\input texinfo @c % @c % /**-----------------------------------------------------------------** @c % ** CLooG ** @c % **-----------------------------------------------------------------** @c % ** cloog.texi ** @c % **-----------------------------------------------------------------** @c % ** First version: july 6th 2002 ** @c % **-----------------------------------------------------------------**/ @c % @c % release 1.0: September 17th 2002 @c % release 1.1: December 5th 2002 @c % release 1.2: April 22th 2003 @c % release 2.0: November 21th 2005 (and now in texinfo instead of LaTeX) @c % release 2.1: October 15th 2007 @c % @c %/************************************************************************** @c % * CLooG : the Chunky Loop Generator (experimental) * @c % **************************************************************************/ @c %/* CAUTION: the English used is probably the worst you ever read, please @c % * feel free to correct and improve it ! @c % */ @c %\textit{"I found the ultimate transformation functions, optimization for @c %static control programs is now a closed problem, I have \textnormal{just} @c %to generate the target code !"} @c % /************************************************************************* @c % * PART I: HEADER * @c % *************************************************************************/ @c %**start of header @setfilename cloog.info @settitle CLooG - a loop generator for scanning polyhedra @set EDITION 2.1 @include gitversion.texi @set UPDATED October 15th 2007 @setchapternewpage odd @c %**end of header @c % /************************************************************************* @c % * PART II: SUMMARY DESCRIPTION AND COPYRIGHT * @c % *************************************************************************/ @copying This manual is for CLooG version @value{VERSION}, a software which generates loops for scanning Z-polyhedra. That is, CLooG produces a code visiting each integral point of a union of parametrized polyhedra. CLooG is designed to avoid control overhead and to produce a very efficient code. It would be quite kind to refer the following paper in any publication that results from the use of the CLooG software or its library: @example @@InProceedings@{Bas04, @ @ author =@ @ @ @ @{C. Bastoul@}, @ @ title =@ @ @ @ @ @{Code Generation in the Polyhedral Model @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ Is Easier Than You Think@}, @ @ booktitle = @{PACT'13 IEEE International Conference on @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ Parallel Architecture and Compilation Techniques@}, @ @ year =@ @ @ @ @ @ 2004, @ @ pages =@ @ @ @ @ @{7--16@}, @ @ month =@ @ @ @ @ @{september@}, @ @ address =@ @ @ @{Juan-les-Pins@} @} @end example Copyright @copyright{} 2002-2005 C@'edric Bastoul. @c quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 published by the Free Software Foundation. To receive a copy of the GNU Free Documentation License, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. @c end quotation @end copying @c % /************************************************************************* @c % * PART III: TITLEPAGE, CONTENTS, COPYRIGHT * @c % *************************************************************************/ @titlepage @title CLooG @subtitle A Loop Generator For Scanning Polyhedra @subtitle Edition @value{EDITION}, for CLooG @value{VERSION} @subtitle @value{UPDATED} @author C@'edric Bastoul @c The following two commands start the copyright page. @page @noindent (September 2001) @table @code @item C@'edric Bastoul SCHEDULES GENERATE !!! I just need to apply them now, where can I find a good code generator ?! @item Paul Feautrier Hmmm. I fear that if you want something powerful enough, you'll have to write it yourself ! @end table @vskip 0pt plus 1filll @insertcopying @end titlepage @c Output the table of contents at the beginning. @contents @c % /************************************************************************* @c % * PART IV: TOP NODE AND MASTER MENU * @c % *************************************************************************/ @ifnottex @node Top @top CLooG @insertcopying @end ifnottex @menu * Introduction:: * CLooG Software:: * CLooG Library:: @c * Hacking:: * Installing:: * Documentation:: * References:: @end menu @c % /************************************************************************* @c % * PART V: BODY OF THE DOCUMENT * @c % *************************************************************************/ @c % ****************************** INTRODUCTION ****************************** @node Introduction @chapter Introduction CLooG is a free software and library generating loops for scanning Z-polyhedra. That is, it finds a code (e.g. in C, FORTRAN...) that reaches each integral point of one or more parameterized polyhedra. CLooG has been originally written to solve the code generation problem for optimizing compilers based on the polytope model. Nevertheless it is used now in various area, e.g., to build control automata for high-level synthesis or to find the best polynomial approximation of a function. CLooG may help in any situation where scanning polyhedra matters. It uses the best state-of-the-art code generation algorithm known as the Quiller@'e et al. algorithm (@pxref{Qui00}) with our own improvements and extensions (@pxref{Bas04}). The user has full control on generated code quality. On one hand, generated code size has to be tuned for sake of readability or instruction cache use. On the other hand, we must ensure that a bad control management does not hamper performance of the generated code, for instance by producing redundant guards or complex loop bounds. CLooG is specially designed to avoid control overhead and to produce a very efficient code. CLooG stands for @emph{Chunky Loop Generator}: it is a part of the Chunky project, a research tool for data locality improvement (@pxref{Bas03a}). It is designed also to be the back-end of automatic parallelizers like LooPo (@pxref{Gri04}). Thus it is very compilable code oriented and provides powerful program transformation facilities. Mainly, it allows the user to specify very general schedules where, e.g., unimodularity or invertibility of the transformation doesn't matter. The current version is still under evaluation, and there is no guarantee that the upward compatibility will be respected (but the previous API has been stable for two years, we hope this one will be as successful -and we believe it-). A lot of reports are necessary to freeze the library API and the input file shape. Most API changes from 0.12.x to 0.14.x have been requested by the users themselves. Thus you are very welcome and encouraged to post reports on bugs, wishes, critics, comments, suggestions or successful experiences in the forum of @code{http://www.CLooG.org} or to send them to cedric.bastoul@@inria.fr directly. @menu * Basics:: * Scattering:: @end menu @node Basics @section Basically, what's the point ? If you want to use CLooG, this is because you want to scan or to find something inside the integral points of a set of polyhedra. There are many reasons for that. Maybe you need the generated code itself because it actually implements a very smart program transformation you found. Maybe you want to use the generated code because you know that the solution of your problem belongs to the integral points of those damned polyhedra and you don't know which one. Maybe you just want to know if a polyhedron has integral points depending on some parameters, which is the lexicographic minimum, maximum, the third on the basis of the left etc. Probably you have your own reasons to use CLooG. Let us illustrate a basic use of CLooG. Suppose we have a set of affine constraints that describes a part of a whatever-dimensional space, called a @strong{domain}, and we want to scan it. Let us consider for instance the following set of constraints where @samp{i} and @samp{j} are the unknown (the two dimensions of the space) and @samp{m} and @samp{n} are the parameters (some symbolic constants): @example @group 2<=i<=n 2<=j<=m j<=n+2-i @end group @end example Let us also consider that we have a partial knowledge of the parameter values, called the @strong{context}, expressed as affine constraints as well, for instance: @example @group m>=2 n>=2 @end group @end example Note that using parameters is optional, if you are not comfortable with parameter manipulation, just replace them with any scalar value that fits @code{m>=2} and @code{n>=2}. A graphical representation of this part of the 2-dimensional space, where the integral points are represented using heavy dots would be for instance: @image{images/basic,6cm} The affine constraints of both the domain and the context are what we will provide to CLooG as input (in a particular shape that will be described later). The output of CLooG is a pseudo-code to scan the integral points of the input domain according to the context: @example @group for (i=2;i<=n;i++) @{ for (j=2;j<=min(m,-i+n+2);j++) @{ S1(i,j) ; @} @} @end group @end example If you felt such a basic example is yet interesting, there is a good chance that CLooG is appropriate for you. CLooG can do much more: scanning several polyhedra or unions of polyhedra at the same time, applying general affine transformations to the polyhedra, generate compilable code etc. Welcome to the CLooG's user's guide ! @node Scattering @section Defining a Scanning Order: Scattering Functions In CLooG, domains only define the set of integral points to scan and their coordinates. In particular, CLooG is free to choose the scanning order for generating the most efficient code. This means, for optimizing/parallelizing compiler people, that CLooG doesn't make any speculation on dependences on and between statements (by the way, it's not its job !). For instance, if an user give to CLooG only two domains @code{S1:1<=i<=n}, @code{S2:1<=i<=n} and the context @code{n>=1}, the following pseudo-codes are considered to be equivalent: @example @group /* A convenient target pseudo-code. */ for (i=1;i<=N;i++) @{ S1(i) ; @} for (i=1;i<=N;i++) @{ S2(i) ; @} @end group @end example @example @group /* Another convenient target pseudo-code. */ for (i=1;i<=N;i++) @{ S1(i) ; S2(i) ; @} @end group @end example The default behaviour of CLooG is to generate the second one, since it is optimized in control. It is right if there are no data dependences between @code{S1} and @code{S2}, but wrong otherwise. Thus it is often useful to force scanning to respect a given order. This can be done in CLooG by using @strong{scattering functions}. Scattering is a shortcut for scheduling, allocation, chunking functions and the like we can find in the restructuring compilation literature. There are a lot of reasons to scatter the integral points of the domains (i.e. the statement instances of a program, for compilation people), parallelization or optimization are good examples. For instance, if the user wants for any reason to set some precedence constraints between the statements of our example above in order to force the generation of the first code, he can do it easily by setting (for example) the following scheduling functions: @tex $$\theta _{S1}(i) = (1)$$ $$\theta _{S2}(j) = (2)$$ @end tex @ifnottex @example @group T_S1(i) = (1) T_S2(j) = (2) @end group @end example @end ifnottex This scattering means that each integral point of the domain @code{S1} is scanned at logical date @code{1} while each integral point of the domain @code{S2} is scanned at logical date @code{2}. As a result, the whole domain @code{S1} is scanned before domain @code{S2} and the first code in our example is generated. The user can set every kind of affine scanning order thanks to the scattering functions. Each domain has its own scattering function and each scattering function may be multi-dimensional. A multi-dimensional logical date may be seen as classical date (year,month,day,hour,minute,etc.) where the first dimensions are the most significant. Each scattering dimension may depend linearly on the original dimensions (e.g., @code{i}), the parameters (e.g., @code{n}) ans scalars (e.g., @code{2}). A very useful example of multi-dimensional scattering functions is, for compilation people, the scheduling of the original program. The basic data to use for code generation are statement iteration domains. As we saw, these data are not sufficient to rebuild the original program (what is the ordering between instances of different statements ?). The missing data can be put in the scattering functions as the original scheduling. The method to compute it is quite simple (@pxref{Fea92}). The idea is to build an abstract syntax tree of the program and to read the scheduling for each statement. For instance, let us consider the following implementation of a Cholesky factorization: @example @group /* A Cholesky factorization kernel. */ for (i=1;i<=N;i++) @{ for (j=1;j<=i-1;j++) @{ a[i][i] -= a[i][j] ; /* S1 */ @} a[i][i] = sqrt(a[i][i]) ; /* S2 */ for (j=i+1;j<=N;j++) @{ for (k=1;k<=i-1;k++) @{ a[j][i] -= a[j][k]*a[i][k] ; /* S3 */ @} a[j][i] /= a[i][i] ; /* S4 */ @} @} @} @end group @end example The corresponding abstract syntax tree is given in the following figure. It directly gives the scattering functions (schedules) for all the statements of the program. @image{images/tree,6cm} @tex $$ \hbox{$ \cases{ \theta _{S1}(i,j)^T &$= (0,i,0,j,0)^T$\cr \theta _{S2}(i) &$= (0,i,1)^T$\cr \theta _{S3}(i,j,k)^T &$= (0,i,2,j,0,k,0)^T$\cr \theta _{S4}(i,j)^T &$= (0,i,2,j,1)^T$}$} $$ @end tex @ifnottex @example @group T_S1(i,j)^T = (0,i,0,j,0)^T T_S2(i) = (0,i,1)^T T_S3(i,j,k)^T = (0,i,2,j,0,k,0)^T T_S4(i,j)^T = (0,i,2,j,1)^T @end group @end example @end ifnottex These schedules depend on the iterators and give for each instance of each statement a unique execution date. Using such scattering functions allow CLooG to re-generate the input code. @c % ***********************Using the CLooG Software ************************** @node CLooG Software @chapter Using the CLooG Software @menu * A First Example:: * Writing The Input File:: * Calling CLooG:: * CLooG Options:: * Full Example:: @end menu @c %/************************************************************************* @c % * A FIRST EXAMPLE * @c % *************************************************************************/ @node A First Example @section A First Example CLooG takes as input a file that must be written accordingly to a grammar described in depth in a further section (@pxref{Writing The Input File}). Moreover it supports many options to tune the target code presentation or quality as discussed in a dedicated section (@pxref{Calling CLooG}). However, a basic use of CLooG is not very complex and we present in this section how to generate the code corresponding to a basic example discussed earlier (@pxref{Basics}). The problem is to find the code that scans a 2-dimensional polyhedron where @samp{i} and @samp{j} are the unknown (the two dimensions of the space) and @samp{m} and @samp{n} are the parameters (the symbolic constants), defined by the following set of constraints: @example @group 2<=i<=n 2<=j<=m j<=n+2-i @end group @end example @noindent We also consider a partial knowledge of the parameter values, expressed thanks to the following affine constraints: @example @group m>=2 n>=2 @end group @end example An input file that corresponds to this problem, and asks for a generated code in C, may be the following. Note that we do not describe here precisely the structure and the components of this file (@pxref{Writing The Input File} for such information, if you feel it necessary): @example # ---------------------- CONTEXT ---------------------- c # language is C # Context (constraints on two parameters) 2 4 # 2 lines and 4 columns # eq/in m n 1 eq/in: 1 for inequality >=0, 0 for equality =0 1 1 0 -2 # 1*m + 0*n -2*1 >= 0, i.e. m>=2 1 0 1 -2 # 0*m + 1*n -2*1 >= 0, i.e. n>=2 1 # We want to set manually the parameter names m n # parameter names # --------------------- STATEMENTS -------------------- 1 # Number of statements 1 # First statement: one domain # First domain 5 6 # 5 lines and 6 columns # eq/in i j m n 1 1 1 0 0 0 -2 # i >= 2 1 -1 0 0 1 0 # i <= n 1 0 1 0 0 -2 # j >= 2 1 0 -1 1 0 0 # j <= m 1 -1 -1 0 1 2 # n+2-i>=j 0 0 0 # for future options 1 # We want to set manually the iterator names i j # iterator names # --------------------- SCATTERING -------------------- 0 # No scattering functions @end example This file may be called @samp{basic.cloog} (this example is provided in the CLooG distribution as @code{test/manual_basic.cloog}) and we can ask CLooG to process it and to generate the code by a simple calling to CLooG with this file as input: @samp{cloog basic.cloog}. By default, CLooG will print the generated code in the standard output: @example @group /* Generated by CLooG v@value{VERSION} in 0.00s. */ for (i=2;i<=n;i++) @{ for (j=2;j<=min(m,-i+n+2);j++) @{ S1(i,j) ; @} @} @end group @end example @c %/************************************************************************* @c % * Input file * @c % *************************************************************************/ @node Writing The Input File @section Writing The Input File The input text file contains a problem description, i.e. the context, the domains and the scattering functions. Because CLooG is very 'compilable code generation oriented', we can associate some additional informations to each domain. We call this association a @emph{statement}. The set of all informations is called a @emph{program}. The input file respects the grammar below (terminals are preceded by "_"): @example File ::= Program Program ::= Context Statements Scattering Context ::= Language Domain_union Naming Statements ::= Nb_statements Statement_list Naming Scatterings ::= Nb_functions Scattering_list Naming Naming ::= Option Name_list Name_list ::= _String Name_list | (void) Statement_list ::= Statement Statement_list | (void) Domain_list ::= _Domain Domain_list | (void) Scattering_list ::= Domain_union Scattering_list | (void) Statement ::= Iteration_domain 0 0 0 Iteration_domain ::= Domain_union Domain_union ::= Nb_domains Domain_list Option ::= 0 | 1 Language ::= c | f Nb_statements ::= _Integer Nb_domains ::= _Integer Nb_functions ::= _Integer @end example Note: if there is only one domain in a @samp{Domain_union}, i.e., if @samp{Nb_domains} is 1, then this 1 may be omitted. @itemize @bullet @item @samp{Context} represents the informations that are shared by all the statements. It consists on the language used (which can be @samp{c} for C or @samp{f} for FORTRAN 90) and the global constraints on parameters. These constraints are essential since they give to CLooG the number of parameters. If there is no parameter or no constraints on parameters, just give a constraint always satisfied like @math{1 \geq 0}. @samp{Naming} sets the parameter names. If the naming option @samp{Option} is 1, parameter names will be read on the next line. There must be exactly as many names as parameters. If the naming option @samp{Option} is 0, parameter names are automatically generated. The name of the first parameter will be @samp{M}, and the name of the @math{(n+1)^{th}} parameter directly follows the name of the @math{n^{th}} parameter in ASCII code. It is the user responsibility to ensure that parameter names, iterators and scattering dimension names are different. @item @samp{Statements} represents the informations on the statements. @samp{Nb_statements} is the number of statements in the program, i.e. the number of @samp{Statement} items in the @samp{Statement_list}. @samp{Statement} represents the informations on a given statement. To each statement is associated a domain (the statement iteration domain: @samp{Iteration_domain}) and three zeroes that represents future options. @samp{Naming} sets the iterator names. If the naming option @samp{Option} is 1, the iterator names will be read on the next line. There must be exactly as many names as nesting level in the deepest iteration domain. If the naming option @samp{Option} is 0, iterator names are automatically generated. The iterator name of the outermost loop will be @samp{i}, and the iterator name of the loop at level @math{n+1} directly follows the iterator name of the loop at level @math{n} in ASCII code. @item @samp{Scatterings} represents the informations on scattering functions. @samp{Nb_functions} is the number of functions (it must be equal to the number of statements or 0 if there is no scattering function). The functions themselves are represented through @samp{Scattering_list}. @samp{Naming} sets the scattering dimension names. If the naming option @samp{Option} is 1, the scattering dimension names will be read on the next line. There must be exactly as many names as scattering dimensions. If the naming option @samp{Option} is 0, scattering dimension names are automatically generated. The name of the @math{n^{th}} scattering dimension will be @samp{cn}. @end itemize @menu * Domain Representation:: * Scattering Representation:: @end menu @node Domain Representation @subsection Domain Representation As shown by the grammar, the input file describes the various informations thanks to characters, integers and domains. Each domain is defined by a set of constraints in the PolyLib format (@pxref{Wil93}). They have the following syntax: @enumerate @item some optional comment lines beginning with @samp{#}, @item the row and column numbers, possibly followed by comments, @item the constraint rows, each row corresponds to a constraint the domain have to satisfy. Each row must be on a single line and is possibly followed by comments. The constraint is an equality @math{p(x) = 0} if the first element is 0, an inequality @math{p(x) \geq 0} if the first element is 1. The next elements are the unknown coefficients, followed by the parameter coefficients. The last element is the constant factor. @end enumerate For instance, assuming that @samp{i}, @samp{j} and @samp{k} are iterators and @samp{m} and @samp{n} are parameters, the domain defined by the following constraints : @tex $$ \hbox{$ \cases{ -i + m &$\geq 0$\cr -j + n &$\geq 0$\cr i + j - k &$\geq 0$}$} $$ @end tex @ifnottex @example @group -i + m >= 0 -j + n >= 0 i + j - k >= 0 @end group @end example @end ifnottex @noindent can be written in the input file as follows : @example @group # This is the domain 3 7 # 3 lines and 7 columns # eq/in i j k m n 1 1 -1 0 0 1 0 0 # -i + m >= 0 1 0 -1 0 0 1 0 # -j + n >= 0 1 1 1 -1 0 0 0 # i + j - k >= 0 @end group @end example Each iteration domain @samp{Iteration_domain} of a given statement is a union of polyhedra @samp{Domain_union}. A union is defined by its number of elements @samp{Nb_domains} and the elements themselves @samp{Domain_list}. For instance, let us consider the following pseudo-code: @example @group for (i=1;i<=n;i++) @{ if ((i >= m) || (i <= 2*m)) S1 ; for (j=i+1;j<=m;j++) S2 ; @} @end group @end example @noindent The iteration domain of @samp{S1} can be divided into two polyhedra and written in the input file as follows: @example @group 2 # Number of polyhedra in the union # First domain 3 5 # 3 lines and 5 columns # eq/in i m n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # i <= n 1 1 -1 0 0 # i >= m # Second domain 3 5 # 3 lines and 5 columns # eq/in i m n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # i <= n 1 -1 2 0 0 # i <= 2*m @end group @end example @node Scattering Representation @subsection Scattering Function Representation Scattering functions are depicted in the input file thanks a representation very close to the domain one. An integer gives the number of functions @samp{Nb_functions} and each function is represented by a domain. Each line of the domain corresponds to an equality defining a dimension of the function. Note that at present (CLooG @value{VERSION}) @strong{all functions must have the same scattering dimension number}. If a user wants to set scattering functions with different dimensionality, he has to complete the smaller one with zeroes to reach the maximum dimensionality. For instance, let us consider the following code and scheduling functions: @example @group for (i=1;i<=n;i++) @{ if ((i >= m) || (i <= 2*m)) S1 ; for (j=i+1;j<=m;j++) S2 ; @} @end group @end example @tex $$ \hbox{$ \cases{ \theta _{S1}(i) &$= (i,0)^T$\cr \theta _{S2}(i,j)^T &$= (n,i+j)^T$}$} $$ @end tex @ifnottex @example @group T_S1(i) = (i,0)^T T_S2(i,j)^T = (n,i+j)^T @end group @end example @end ifnottex @noindent This scheduling can be written in the input file as follows: @example @group 2 # Number of scattering functions # First function 2 7 # 2 lines and 7 columns # eq/in c1 c2 i m n 1 0 1 0 -1 0 0 0 # c1 = i 0 0 1 0 0 0 0 # c2 = 0 # Second function 2 8 # 2 lines and 8 columns # eq/in c1 c2 i j m n 1 0 1 0 0 0 0 -1 0 # c1 = n 0 0 1 -1 -1 0 0 0 # c2 = i+j @end group @end example The complete input file for the user who wants to generate the code for this example with the preceding scheduling would be (this file is provided in the CLooG distribution as @code{test/manual_scattering.cloog}: @example # ---------------------- CONTEXT ---------------------- c # language is C # Context (no constraints on two parameters) 1 4 # 1 lines and 4 columns # eq/in m n 1 1 0 0 0 # 0 >= 0, always true 1 # We want to set manually the parameter names m n # parameter names # --------------------- STATEMENTS -------------------- 2 # Number of statements 2 # First statement: two domains # First domain 3 5 # 3 lines and 5 columns # eq/in i m n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # i <= n 1 1 -1 0 0 # i >= m # Second domain 3 5 # 3 lines and 5 columns # eq/in i m n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 0 # i <= n 1 -1 2 0 0 # i <= 2*m 0 0 0 # for future options 1 # Second statement: one domain 4 6 # 4 lines and 6 columns # eq/in i j m n 1 1 1 0 0 0 -1 # i >= 1 1 -1 0 0 1 0 # i <= n 1 -1 1 0 0 -1 # j >= i+1 1 0 -1 1 0 0 # j <= m 0 0 0 # for future options 1 # We want to set manually the iterator names i j # iterator names # --------------------- SCATTERING -------------------- 2 # Scattering functions # First function 2 7 # 2 lines and 7 columns # eq/in p1 p2 i m n 1 0 1 0 -1 0 0 0 # p1 = i 0 0 1 0 0 0 0 # p2 = 0 # Second function 2 8 # 2 lines and 8 columns # eq/in p1 p2 i j m n 1 0 1 0 0 0 0 -1 0 # p1 = n 0 0 1 -1 -1 0 0 0 # p2 = i+j 1 # We want to set manually the scattering dimension names p1 p2 # scattering dimension names @end example @c %/************************************************************************* @c % * Calling CLooG * @c % *************************************************************************/ @node Calling CLooG @section Calling CLooG CLooG is called by the following command: @example cloog [ options | file ] @end example The default behavior of CLooG is to read the input informations from a file and to print the generated code or pseudo-code on the standard output. CLooG's behavior and the output code shape is under the user control thanks to many options which are detailed a further section (@pxref{CLooG Options}). @code{file} is the input file. @code{stdin} is a special value: when used, input is standard input. For instance, we can call CLooG to treat the input file @code{basic.cloog} with default options by typing: @code{cloog basic.cloog} or @code{more basic.cloog | cloog stdin}. @c %/************************************************************************* @c % * CLooG Options * @c % *************************************************************************/ @node CLooG Options @section CLooG Options @menu * Last Depth to Optimize Control:: * First Depth to Optimize Control:: * Simplify Convex Hull:: * Once Time Loop Elimination:: * Equality Spreading:: * First Level for Spreading:: * Statement Block:: * Loop Strides:: * Compilable Code:: * Output:: * Help:: * Version :: * Quiet :: @end menu @node Last Depth to Optimize Control @subsection Last Depth to Optimize Control @code{-l } @code{-l }: this option sets the last loop depth to be optimized in control. The higher this depth, the less control overhead. For instance, with some input file, a user can generate different pseudo-codes with different @code{depth} values as shown below. @example @group /* Generated using a given input file and @strong{option -l 1} */ for (i=0;i<=M;i++) @{ S1 ; for (j=0;j<=N;j++) @{ S2 ; @} for (j=0;j<=N;j++) @{ S3 ; @} S4 ; @} @end group @end example @example @group /* Generated using the same input file but @strong{option -l 2} */ for (i=0;i<=M;i++) @{ S1 ; for (j=0;j<=N;j++) @{ S2 ; S3 ; @} S4 ; @} @end group @end example In this example we can see that this option can change the operation execution order between statements. Let us remind that CLooG does not make any speculation on dependences between statements (@pxref{Scattering}). Thus if nothing (i.e. scattering functions) forbids this, CLooG considers the above codes to be equivalent. If there is no scattering functions, the minimum value for @code{depth} is 1 (in the case of 0, the user doesn't really need a loop generator !), and the number of scattering dimensions otherwise (CLooG will warn the user if he doesn't respect such constraint). The maximum value for depth is -1 (infinity). Default value is infinity. @node First Depth to Optimize Control @subsection First Depth to Optimize Control @code{-f } @code{-f }: this option sets the first loop depth to be optimized in control. The lower this depth, the less control overhead (and the longer the generated code). For instance, with some input file, a user can generate different pseudo-codes with different @code{depth} values as shown below. The minimum value for @code{depth} is 1, and the maximum value is -1 (infinity). Default value is 1. @example @group /* Generated using a given input file and @strong{option -f 3} */ for (i=1;i<=N;i++) @{ for (j=1;j<=M;j++) @{ S1 ; if (j >= 10) @{ S2 ; @} @} @} @end group @end example @example @group /* Generated using the same input file but @strong{option -f 2} */ for (i=1;i<=N;i++) @{ for (j=1;j<=9;j++) @{ S1 ; @} for (j=10;j<=M;j++) @{ S1 ; S2 ; @} @} @end group @end example @node Simplify Convex Hull @subsection Simplify Convex Hull @code{-sh } @code{-sh }: this option enables (@code{boolean=1}) or forbids (@code{boolean=0}) a simplification step that may simplify some constraints. This option works only for generated code without code duplication (it means, you have to tune @code{-f} and @code{-l} options first to generate only a loop nest with internal guards). For instance, with the input file @code{test/union.cloog}, a user can generate different pseudo-codes as shown below. Default value is 0. @example @group /* Generated using test/union.cloog and @strong{option -f -1 -l 2 -override} */ for (i=0;i<=11;i++) @{ for (j=max(0,5*i-50);j<=min(15,5*i+10);j++) @{ if ((i <= 10) && (j <= 10)) @{ S1 ; @} if ((i >= 1) && (j >= 5)) @{ S2 ; @} @} @} @end group @end example @example @group /* Generated using the same input file but @strong{option -sh 1 -f -1 -l 2 -override} */ for (i=0;i<=11;i++) @{ for (j=0;j<=15;j++) @{ if ((i <= 10) && (j <= 10)) @{ S1 ; @} if ((i >= 1) && (j >= 5)) @{ S2 ; @} @} @} @end group @end example @node Once Time Loop Elimination @subsection Once Time Loop Elimination @code{-otl } @code{-otl }: this option allows (@code{boolean=1}) or forbids (@code{boolean=0}) the simplification of loops running once. Default value is 1. @example @group /* Generated using a given input file and @strong{option -otl 0} */ for (j=i+1;j<=i+1;j++) @{ S1 ; @} @end group @end example @example @group /* Generated using the same input file but @strong{option -otl 1} */ j = i+1 ; S1 ; @end group @end example @node Equality Spreading @subsection Equality Spreading @code{-esp } @code{-esp }: this option allows (@code{boolean=1}) or forbids (@code{boolean=0}) values spreading when there are equalities. Default value is 1. @example @group /* Generated using a given input file and @strong{option -esp 0} */ i = M+2 ; j = N ; for (k=i;k<=j+M;k++) @{ S1 ; @} @end group @end example @example @group /* Generated using the same input file but @strong{option -esp 1} */ for (k=M+2;k<=N+M;k++) @{ S1(i = M+2, j = N) ; @} @end group @end example @node First Level for Spreading @subsection First Level for Spreading @code{-fsp } @code{-fsp }: it can be useful to set a first level to begin equality spreading. Particularly when using scattering functions, the user may want to see the scattering dimension values instead of spreading or hiding them. If user has set a spreading, @code{level} is the first level to start it. Default value is 1. @example @group /* Generated using a given input file and @strong{option -fsp 1} */ for (j=0;j<=N+M;j++) @{ S1(i = N) ; @} for (j=0;j<=N+M;j++) @{ S1(i = M) ; @} @end group @end example @example @group /* Generated using the same input file but @strong{option -fsp 2} */ c1 = N ; for (j=0;j<=c1+M;j++) @{ S1(i = c1) ; @} c1 = M ; for (j=0;j<=N+c1;j++) @{ S1(i = c1) ; @} @end group @end example @node Statement Block @subsection Statement Block @code{-block } @code{-block }: this option allows (@code{boolean=1}) to create a statement block for each new iterator, even if there is only an equality. This can be useful in order to parse the generated pseudo-code. When @code{boolean} is set to 0 or when the generation language is FORTRAN, this feature is disabled. Default value is 0. @example @group /* Generated using a given input file and @strong{option -block 0} */ i = M+2 ; j = N ; S1 ; @end group @end example @example @group /* Generated using the same input file but @strong{option -block 1} */ @{ i = M+2 ; @{ j = N ; S1 ; @} @} @end group @end example @node Loop Strides @subsection Loop Strides @code{-strides } @code{-strides }: this options allows (@code{boolean=1}) to handle non-unit strides for loop increments. This can remove a lot of guards and make the generated code more efficient. Default value is 0. @example @group /* Generated using a given input file and @strong{option -strides 0} */ for (i=1;i<=n;i++) @{ if (i%2 == 0) @{ S1(j = i/2) ; @} if (i%4 == 0) @{ S2(j = i/4) ; @} @} @end group @end example @example @group /* Generated using the same input file but @strong{option -strides 1} */ for (i=2;i<=n;i+=2) @{ S1(j = i/2) ; if (i%4 == 0) @{ S2(j = i/4) ; @} @} @end group @end example @node Compilable Code @subsection Compilable Code @code{-compilable } @code{-compilable }: this options allows (@code{value} is not 0) to generate a compilable code where all parameters have the integral value @code{value}. This option creates a macro for each statement. Since CLooG do not know anything about the statement sources, it fills the macros with a basic increment that computes the total number of scanned integral points. The user may change easily the macros according to his own needs. This option is possible only if the generated code is in C. Default value is 0. @example @group /* Generated using a given input file and @strong{option -compilable 0} */ for (i=0;i<=n;i++) @{ for (j=0;j<=n;j++) @{ S1 ; S2 ; @} S3 ; @} @end group @end example @example /* Generated using the same input file but @strong{option -compilable 10} */ /* DON'T FORGET TO USE -lm OPTION TO COMPILE. */ /* Useful headers. */ #include #include #include /* Parameter value. */ #define PARVAL 10 /* Statement macros (please set). */ #define S1(i,j) @{total++;@} #define S2(i,j) @{total++;@} #define S3(i) @{total++;@} int main() @{ /* Original iterators. */ int i, j ; /* Parameters. */ int n=PARVAL, total=0 ; for (i=0;i<=n;i++) @{ for (j=0;j<=n;j++) @{ S1(i,j) ; S2(i,j) ; @} S3(i) ; @} printf("Number of integral points: %d.\n",total) ; return 0 ; @} @end example @node Callable Code @subsection Callable Code @code{-callable } @code{-callable }: if @code{boolean=1}, then a @code{test} function will be generated that has the parameters as arguments. Similarly to the @code{-compilable} option, a macro for each statement is generated. The generated definitions of these macros are as used during the correctness testing, but they can easily be changed by the user to suit her own needs. This option is only available if the target language is C. The default value is 0. @example /* Generated from double.cloog with @strong{option -callable 0} */ for (i=0;i<=M;i++) @{ S1 ; for (j=0;j<=N;j++) @{ S2 ; S3 ; @} S4 ; @} @end example @example /* Generated from double.cloog with @strong{option -callable 1} */ extern void hash(int); /* Useful macros. */ #define floord(n,d) (((n)<0) ? ((n)-(d)+1)/(d) : (n)/(d)) #define ceild(n,d) (((n)<0) ? (n)/(d) : ((n)+(d)+1)/(d)) #define max(x,y) ((x) > (y) ? (x) : (y)) #define min(x,y) ((x) < (y) ? (x) : (y)) #define S1(i) @{ hash(1); hash(i); @} #define S2(i,j) @{ hash(2); hash(i); hash(j); @} #define S3(i,j) @{ hash(3); hash(i); hash(j); @} #define S4(i) @{ hash(4); hash(i); @} void test(int M, int N) @{ /* Original iterators. */ int i, j; for (i=0;i<=M;i++) @{ S1(i) ; for (j=0;j<=N;j++) @{ S2(i,j) ; S3(i,j) ; @} S4(i) ; @} @} @end example @node Output @subsection Output @code{-o } @code{-o }: this option sets the output file. @code{stdout} is a special value: when used, output is standard output. Default value is @code{stdout}. @node Help @subsection Help @code{--help} or @code{-h} @code{--help} or @code{-h}: this option ask CLooG to print a short help. @node Version @subsection Version @code{--version} or @code{-v} @code{--version} or @code{-v}: this option ask CLooG to print some version informations. @node Quiet @subsection Quiet @code{--quiet} or @code{-q} @code{--quiet} or @code{-q}: this option tells CLooG not to print any informational messages. @c %/************************************************************************* @c % * A Full Example * @c % *************************************************************************/ @node Full Example @section A Full Example Let us consider the allocation problem of a Gaussian elimination, i.e. we want to distribute the various statement instances of the compute kernel onto different processors. The original code is the following: @example @group for (i=1;j<=N-1;i++) @{ for (j=i+1;j<=N;j++) @{ c[i][j] = a[j][i]/a[i][i] ; /* S1 */ for (k=i+1;k<=N;k++) @{ a[j][k] -= c[i][j]*a[i][k] ; /* S2 */ @} @} @} @end group @end example @noindent The best affine allocation functions can be found by any good automatic parallelizer like LooPo (@pxref{Gri04}): @tex $$ \hbox{$ \cases{ \theta _{S1}(i,j)^T &$= (i)$\cr \theta _{S2}(i,j,k)^T &$= (k)$}$} $$ @end tex @ifnottex @example @group T_S1(i,j)^T = (i) T_S2(i,j,k)^T = (k) @end group @end example @end ifnottex @noindent To ensure that on each processor, the set of statement instances is executed according to the original ordering, we add as minor scattering dimensions the original scheduling (@pxref{Scattering}): @tex $$ \hbox{$ \cases{ \theta _{S1}(i,j)^T &$= (i,0,i,0,j,0)^T$\cr \theta _{S2}(i,j,k)^T &$= (k,0,i,0,j,1,k,0)^T$}$} $$ @end tex @ifnottex @example @group T_S1(i,j)^T = (i,0,i,0,j,0)^T T_S2(i,j,k)^T = (k,0,i,0,j,1,k,0)^T @end group @end example @end ifnottex @noindent To ensure that the scattering functions have the same dimensionality, we complete the first function with zeroes (this is a CLooG @value{VERSION} and previous versions requirement, it should be removed in a future version, don't worry it's absolutely legal !): @tex $$ \hbox{$ \cases{ \theta _{S1}(i,j)^T &$= (i,0,i,0,j,0,0,0)^T$\cr \theta _{S2}(i,j,k)^T &$= (k,0,i,0,j,1,k,0)^T$}$} $$ @end tex @ifnottex @example @group T_S1(i,j)^T = (i,0,i,0,j,0,0,0)^T T_S2(i,j,k)^T = (k,0,i,0,j,1,k,0)^T @end group @end example @end ifnottex @noindent The input file corresponding to this code generation problem could be (this file is provided in the CLooG distribution as @code{test/manual_gauss.cloog}: @example # ---------------------- CONTEXT ---------------------- c # language is C # Context (no constraints on one parameter) 1 3 # 1 line and 3 columns # eq/in n 1 1 0 0 # 0 >= 0, always true 1 # We want to set manually the parameter name n # parameter name # --------------------- STATEMENTS -------------------- 2 # Number of statements 1 # First statement: one domain 4 5 # 4 lines and 3 columns # eq/in i j n 1 1 1 0 0 -1 # i >= 1 1 -1 0 1 -1 # i <= n-1 1 -1 1 0 -1 # j >= i+1 1 0 -1 1 0 # j <= n 0 0 0 # for future options 1 # Second statement: one domain 6 6 # 6 lines and 3 columns # eq/in i j k n 1 1 1 0 0 0 -1 # i >= 1 1 -1 0 0 1 -1 # i <= n-1 1 -1 1 0 0 -1 # j >= i+1 1 0 -1 0 1 0 # j <= n 1 -1 0 1 0 -1 # k >= i+1 1 0 0 -1 1 0 # k <= n 0 0 0 # for future options 0 # We let CLooG set the iterator names # --------------------- SCATTERING -------------------- 2 # Scattering functions # First function 8 13 # 3 lines and 3 columns # eq/in p1 p2 p3 p4 p5 p6 p7 p8 i j n 1 0 1 0 0 0 0 0 0 0 -1 0 0 0 # p1 = i 0 0 1 0 0 0 0 0 0 0 0 0 0 # p2 = 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 # p3 = i 0 0 0 0 1 0 0 0 0 0 0 0 0 # p4 = 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 # p5 = j 0 0 0 0 0 0 1 0 0 0 0 0 0 # p6 = 0 0 0 0 0 0 0 0 1 0 0 0 0 0 # p7 = 0 0 0 0 0 0 0 0 0 1 0 0 0 0 # p8 = 0 # Second function 8 14 # 3 lines and 3 columns # eq/in p1 p2 p3 p4 p5 p6 p7 p8 i j k n 1 0 1 0 0 0 0 0 0 0 0 0 -1 0 0 # p1 = k 0 0 1 0 0 0 0 0 0 0 0 0 0 0 # p2 = 0 0 0 0 1 0 0 0 0 0 -1 0 0 0 0 # p3 = i 0 0 0 0 1 0 0 0 0 0 0 0 0 0 # p4 = 0 0 0 0 0 0 1 0 0 0 0 -1 0 0 0 # p5 = j 0 0 0 0 0 0 1 0 0 0 0 0 0 -1 # p6 = 1 0 0 0 0 0 0 0 1 0 0 0 -1 0 0 # p7 = k 0 0 0 0 0 0 0 0 1 0 0 0 0 0 # p8 = 0 1 # We want to set manually the scattering dimension names p1 p2 p3 p4 p5 p6 p7 p8 # scattering dimension names @end example Calling CLooG, with for instance the command line @code{cloog -fsp 2 gauss.cloog} for a better view of the allocation (the processor number is given by @code{p1}), will result on the following target code that actually implements the transformation. A minor processing on the dimension @code{p1} to implement, e.g., MPI calls, which is not shown here may result in dramatic speedups ! @example if (n >= 2) @{ p1 = 1 ; for (p5=2;p5<=n;p5++) @{ S1(i = 1,j = p5) ; @} @} for (p1=2;p1<=n-1;p1++) @{ for (p3=1;p3<=p1-1;p3++) @{ for (p5=p3+1;p5<=n;p5++) @{ S2(i = p3,j = p5,k = p1) ; @} @} for (p5=p1+1;p5<=n;p5++) @{ S1(i = p1,j = p5) ; @} @} if (n >= 2) @{ p1 = n ; for (p3=1;p3<=n-1;p3++) @{ for (p5=p3+1;p5<=n;p5++) @{ S2(i = p3,j = p5,k = n) ; @} @} @} @end example @c %/************************************************************************* @c % * A Full Example * @c % *************************************************************************/ @node CLooG Library @chapter Using the CLooG Library The CLooG Library was implemented to allow the user to call CLooG directly from his programs, without file accesses or system calls. The user only needs to link his programs with C libraries. The CLooG library mainly provides one function (@code{cloog_clast_create_from_input}) which takes as input the problem description with some options, and returns the data structure corresponding to the generated code (a @code{struct clast_stmt} structure) which is more or less an abstract syntax tree. The user can work with this data structure and/or use our pretty printing function to write the final code in either C or FORTRAN. Some other functions are provided for convenience reasons. These functions as well as the data structures are described in this section. @menu * CLooG Data Structures:: * CLooG Output:: * Retrieving version information:: * Example of Library Utilization:: @end menu @node CLooG Data Structures @section CLooG Data Structures Description In this section, we describe the data structures used by the loop generator to represent and to process a code generation problem. @menu * CloogState:: * CloogMatrix:: * CloogDomain:: * CloogScattering:: * CloogUnionDomain:: * CloogStatement:: * CloogOptions:: * CloogInput:: @end menu @node CloogState @subsection CloogState @example @group CloogState *cloog_state_malloc(void); void cloog_state_free(CloogState *state); @end group @end example @noindent The @code{CloogState} structure is (implicitly) needed to perform any CLooG operation. It should be created using @code{cloog_state_malloc} before any other CLooG objects are created and destroyed using @code{cloog_state_free} after all objects have been freed. It is allowed to use more than one @code{CloogState} structure at the same time, but an object created within the state of a one @code{CloogState} structure is not allowed to interact with an object created within the state of an other @code{CloogState} structure. @node CloogMatrix @subsection CloogMatrix @noindent The @code{CloogMatrix} structure is equivalent to the PolyLib @code{Matrix} data structure (@pxref{Wil93}). This structure is devoted to represent a set of constraints. @example @group struct cloogmatrix @{ unsigned NbRows ; /* Number of rows. */ unsigned NbColumns ; /* Number of columns. */ cloog_int_t **p; /* Array of pointers to the matrix rows. */ cloog_int_t *p_Init; /* Matrix rows contiguously in memory. */ @}; typedef struct cloogmatrix CloogMatrix; CloogMatrix *cloog_matrix_alloc(unsigned NbRows, unsigned NbColumns); void cloog_matrix_print(FILE *foo, CloogMatrix *m); void cloog_matrix_free(CloogMatrix *matrix); @end group @end example @noindent The whole matrix is stored in memory row after row at the @code{p_Init} address. @code{p} is an array of pointers where @code{p[i]} points to the first element of the @math{i^{th}} row. @code{NbRows} and @code{NbColumns} are respectively the number of rows and columns of the matrix. Each row corresponds to a constraint. The first element of each row is an equality/inequality tag. The constraint is an equality @math{p(x) = 0} if the first element is 0, but it is an inequality @math{p(x) \geq 0} if the first element is 1. The next elements are the coefficients of the unknowns, followed by the coefficients of the parameters, and finally the constant term. For instance, the following three constraints: @tex $$ \hbox{$ \cases{ -i + m &$= 0$\cr -j + n &$\geq 0$\cr j + i - k &$\geq 0$}$} $$ @end tex @ifnottex @example @group -i + m = 0 -j + n >= 0 i + j - k >= 0 @end group @end example @end ifnottex @noindent would be represented by the following rows: @example @group # eq/in i j k m n cst 0 0 -1 0 1 0 0 1 -1 0 0 0 1 0 1 1 1 -1 0 0 0 @end group @end example @noindent To be able to provide different precision version (CLooG supports 32 bits, 64 bits and arbitrary precision through the GMP library), the @code{cloog_int_t} type depends on the configuration options (it may be @code{long int} for 32 bits version, @code{long long int} for 64 bits version, and @code{mpz_t} for multiple precision version). @node CloogDomain @subsection CloogDomain @example @group CloogDomain *cloog_domain_union_read(CloogState *state, FILE *input, int nb_parameters); CloogDomain *cloog_domain_from_cloog_matrix(CloogState *state, CloogMatrix *matrix, int nb_par); void cloog_domain_free(CloogDomain *domain); @end group @end example @noindent @code{CloogDomain} is an opaque type representing a polyhedral domain (a union of polyhedra). A @code{CloogDomain} can be read from a file using @code{cloog_domain_union_read} or converted from a @code{CloogMatrix}. The input format for @code{cloog_domain_union_read} is that of @ref{Domain Representation}. The function @code{cloog_domain_from_cloog_matrix} takes a @code{CloogState}, a @code{CloogMatrix} and @code{int} as input and returns a pointer to a @code{CloogDomain}. @code{matrix} describes the domain and @code{nb_par} is the number of parameters in this domain. The input data structures are neither modified nor freed. The @code{CloogDomain} can be freed using @code{cloog_domain_free}. There are also some backend dependent functions for creating @code{CloogDomain}s. @menu * CloogDomain/PolyLib:: * CloogDomain/isl:: @end menu @node CloogDomain/PolyLib @subsubsection PolyLib @example #include CloogDomain *cloog_domain_from_polylib_polyhedron(CloogState *state, Polyhedron *, int nb_par); @end example @noindent The function @code{cloog_domain_from_polylib_polyhedron} takes a PolyLib @code{Polyhedron} as input and returns a pointer to a @code{CloogDomain}. The @code{nb_par} parameter indicates the number of parameters in the domain. The input data structure if neither modified nor freed. @node CloogDomain/isl @subsubsection isl @example #include CloogDomain *cloog_domain_from_isl_set(struct isl_set *set); __isl_give isl_set *isl_set_from_cloog_domain(CloogDomain *domain); @end example @noindent The function @code{cloog_domain_from_isl_set} takes a @code{struct isl_set} as input and returns a pointer to a @code{CloogDomain}. The function consumes a reference to the given @code{struct isl_set}. Similarly, @code{isl_set_from_cloog_domain} consumes a reference to a @code{CloogDomain} and returns an @code{isl_set}. @node CloogScattering @subsection CloogScattering @example @group CloogScattering *cloog_domain_read_scattering(CloogDomain *domain, FILE *foo); CloogScattering *cloog_scattering_from_cloog_matrix(CloogState *state, CloogMatrix *matrix, int nb_scat, int nb_par); void cloog_scattering_free(CloogScattering *); @end group @end example @noindent The @code{CloogScattering} type represents a scattering function. A @code{CloogScattering} for a given @code{CloogDomain} can be read from a file using @code{cloog_scattering_read} or converted from a @code{CloogMatrix} using @code{cloog_scattering_from_cloog_matrix}. The function @code{cloog_scattering_from_cloog_matrix} takes a @code{CloogState}, a @code{CloogMatrix} and two @code{int}s as input and returns a pointer to a @code{CloogScattering}. @code{matrix} describes the scattering, while @code{nb_scat} and @code{nb_par} are the number of scattering dimensions and the number of parameters, respectively. The input data structures are neither modified nor freed. A @code{CloogScattering} can be freed using @code{cloog_scattering_free}. There are also some backend dependent functions for creating @code{CloogScattering}s. @menu * CloogScattering/PolyLib:: * CloogScattering/isl:: @end menu @node CloogScattering/PolyLib @subsubsection PolyLib @example #include CloogScattering *cloog_scattering_from_polylib_polyhedron( CloogState *state, Polyhedron *polyhedron, int nb_par); @end example @noindent The function @code{cloog_scattering_from_polylib_polyhedron} takes a PolyLib @code{Polyhedron} as input and returns a pointer to a @code{CloogScattering}. The @code{nb_par} parameter indicates the number of parameters in the domain. The input data structure if neither modified nor freed. @node CloogScattering/isl @subsubsection isl @example #include CloogScattering *cloog_scattering_from_isl_map(struct isl_map *map); @end example @noindent The function @code{cloog_scattering_from_isl_map} takes a @code{struct isl_map} as input and returns a pointer to a @code{CloogScattering}. The output dimensions of the @code{struct isl_map} correspond to the scattering dimensions, while the input dimensions correspond to the domain dimensions. The function consumes a reference to the given @code{struct isl_map}. @node CloogUnionDomain @subsection CloogUnionDomain @example @group enum cloog_dim_type @{ CLOOG_PARAM, CLOOG_ITER, CLOOG_SCAT @}; CloogUnionDomain *cloog_union_domain_alloc(int nb_par); CloogUnionDomain *cloog_union_domain_add_domain(CloogUnionDomain *ud, const char *name, CloogDomain *domain, CloogScattering *scattering, void *usr); CloogUnionDomain *cloog_union_domain_set_name(CloogUnionDomain *ud, enum cloog_dim_type type, int index, const char *name); void cloog_union_domain_free(CloogUnionDomain *ud); @end group @end example @noindent A @code{CloogUnionDomain} structure represents a union of scattered named domains. A @code{CloogUnionDomain} is initialized by a call to @code{cloog_union_domain_alloc}, after which domains can be added using @code{cloog_union_domain_add_domain}. @code{cloog_union_domain_alloc} takes the number of parameters as input. @code{cloog_union_domain_add_domain} takes a previously created @code{CloogUnionDomain} as input along with an optional name, a domain, an optional scattering function and a user pointer. The name may be @code{NULL} and is duplicated if it is not. If no name is specified, then the statements will be named according to the order in which they were added. @code{domain} and @code{scattering} are taken over by the @code{CloogUnionDomain}. @code{scattering} may be @code{NULL}, but it must be consistently @code{NULL} or not over all calls to @code{cloog_union_domain_add_domain}. @code{cloog_union_domain_set_name} can be used to set the names of parameters, iterators and scattering dimensions. The names of iterators and scattering dimensions can only be set after all domains have been added. There is also a backend dependent function for creating @code{CloogUnionDomain}s. @menu * CloogUnionDomain/isl:: @end menu @node CloogUnionDomain/isl @subsubsection isl @example #include CloogUnionDomain *cloog_union_domain_from_isl_union_map( __isl_take isl_union_map *umap); CloogUnionDomain *cloog_union_domain_from_isl_union_set( __isl_take isl_union_set *uset); @end example @noindent The function @code{cloog_union_domain_from_isl_union_map} takes a @code{isl_union_map} as input and returns a pointer to a @code{CloogUnionDomain}. The input is a mapping from different spaces (different tuple names and possibly different dimensions) to a common space. The iteration domains are set to the domains in each space. The statement names are set to the names of the spaces. The parameter names of the result are set to those of the input, but the iterator and scattering dimension names are left unspecified. The function consumes a reference to the given @code{isl_union_map}. The function @code{cloog_union_domain_from_isl_union_set} is similar, but takes unscattered domains as input. @node CloogStatement @subsection CloogStatement @example @group struct cloogstatement @{ int number ; /* The statement unique number. */ char *name; /* Name of the statement. */ void * usr ; /* Pointer for user's convenience. */ struct cloogstatement * next ;/* Next element of the linked list. */ @} ; typedef struct cloogstatement CloogStatement ; CloogStatement *cloog_statement_malloc(CloogState *state); void cloog_statement_print(FILE *, CloogStatement *); void cloog_statement_free(CloogStatement *); @end group @end example @noindent The @code{CloogStatement} structure represents a @code{NULL} terminated linked list of statements. In CLooG, a statement is only defined by its unique number (@code{number}). The user can use the pointer @code{usr} for his own convenience to link his own statement representation to the corresponding @code{CloogStatement} structure. The whole management of the @code{usr} pointer is under the responsibility of the user, in particular, CLooG never tries to print, to allocate or to free a memory block pointed by @code{usr}. @node CloogOptions @subsection CloogOptions @example @group struct cloogoptions @{ int l ; /* -l option. */ int f ; /* -f option. */ int strides ; /* -strides option. */ int sh ; /* -sh option. */ int esp ; /* -esp option. */ int fsp ; /* -fsp option. */ int otl ; /* -otl option. */ int block ; /* -block option. */ int cpp ; /* -cpp option. */ int compilable ; /* -compilable option. */ int language; /* LANGUAGE_C or LANGUAGE_FORTRAN */ int save_domains; /* Save unsimplified copy of domain. */ @} ; typedef struct cloogoptions CloogOptions ; CloogOptions *cloog_options_malloc(CloogState *state); void cloog_options_print(FILE *foo, CloogOptions *options); void cloog_options_free(CloogOptions *options); @end group @end example @noindent The @code{CloogOptions} structure contains all the possible options to rule CLooG's behaviour (@pxref{Calling CLooG}). As a reminder, the default values are: @itemize @bullet @item @math{l = -1} (optimize control until the innermost loops), @item @math{f = 1} (optimize control from the outermost loops), @item @math{strides = 0} (use only unit strides), @item @math{sh = 0} (do not simplify convex hulls), @item @math{esp = 1} (do not spread complex equalities), @item @math{fsp = 1} (start to spread from the first iterators), @item @math{otl = 1} (simplify loops running only once). @item @math{block = 0} (do not make statement blocks when not necessary). @item @math{cpp = 0} (do not generate a compilable part of code using preprocessor). @item @math{compilable = 0} (do not generate a compilable code). @end itemize The @code{save_domains} option is only useful for users of the CLooG library. This option defaults to 0, but when it is set, the @code{domain} field of each @code{clast_user_stmt} will be set to the set of values for the scattering dimensions for which this instance of the user statement is executed. The @code{domain} field of each @code{clast_for} contains the set of values for the scattering dimensions for which an instance of a user statement is executed inside the @code{clast_for}. It is only available if the @code{clast_for} enumerates a scattering dimension. @node CloogInput @subsection CloogInput @example @group CloogInput *cloog_input_read(FILE *file, CloogOptions *options); CloogInput *cloog_input_alloc(CloogDomain *context, CloogUnionDomain *ud); void cloog_input_free(CloogInput *input); void cloog_input_dump_cloog(FILE *, CloogInput *, CloogOptions *); @end group @end example @noindent A @code{CloogInput} structure represents the input to CLooG. It is essentially a @code{CloogUnionDomain} along with a context @code{CloogDomain}. A @code{CloogInput} can be created from a @code{CloogDomain} and a @code{CloogUnionDomains} using @code{cloog_input_alloc}, or it can be read from a CLooG input file using @code{cloog_input_read}. The latter also modifies the @code{language} field of the @code{CloogOptions} structure. The constructed @code{CloogInput} can be used as input to a @code{cloog_clast_create_from_input} call. A @code{CloogInput} data structure and a @code{CloogOptions} contain the same information as a .cloog file. This function dumps the .cloog description of the given data structures into a file. @node Dump CLooG Input File Function @subsection Dump CLooG Input File Function @example @end example @node CLooG Output @section CLooG Output @noindent Given a description of the input, an AST corresponding to the @code{CloogInput} can be constructed using @code{cloog_clast_create_from_input} and destroyed using @code{free_clast_stmt}. @example struct clast_stmt *cloog_clast_create_from_input(CloogInput *input, CloogOptions *options); void free_clast_stmt(struct clast_stmt *s); @end example @noindent @code{clast_stmt} represents a linked list of ``statements''. @example struct clast_stmt @{ const struct clast_stmt_op *op; struct clast_stmt *next; @}; @end example @noindent The entries in the list are not of type @code{clast_stmt} itself, but of some larger type. The following statement types are defined by CLooG. @example struct clast_root @{ struct clast_stmt stmt; CloogNames * names; @}; struct clast_root *new_clast_root(CloogNames *names); struct clast_assignment @{ struct clast_stmt stmt; const char * LHS; struct clast_expr * RHS; @}; struct clast_assignment *new_clast_assignment(const char *lhs, struct clast_expr *rhs); struct clast_block @{ struct clast_stmt stmt; struct clast_stmt * body; @}; struct clast_block *new_clast_block(void); struct clast_user_stmt @{ struct clast_stmt stmt; CloogDomain * domain; CloogStatement * statement; struct clast_stmt * substitutions; @}; struct clast_user_stmt *new_clast_user_stmt(CloogDomain *domain, CloogStatement *stmt, struct clast_stmt *subs); struct clast_for @{ struct clast_stmt stmt; CloogDomain * domain; const char * iterator; struct clast_expr * LB; struct clast_expr * UB; cloog_int_t stride; struct clast_stmt * body; @}; struct clast_for *new_clast_for(CloogDomain *domain, const char *it, struct clast_expr *LB, struct clast_expr *UB, cloog_int_t stride); struct clast_guard @{ struct clast_stmt stmt; struct clast_stmt * then; int n; struct clast_equation eq[1]; @}; struct clast_guard *new_clast_guard(int n); @end example @noindent The @code{clast_stmt} returned by @code{cloog_clast_create} is a @code{clast_root}. It contains a placeholder for all the variable names that appear in the AST and a (list of) nested statement(s). @noindent A @code{clast_assignment} assigns the value given by the @code{clast_expr} @code{RHS} to a variable named @code{LHS}. @noindent A @code{clast_block} groups a list of statements into one statement. These statements are only generated if the @code{block} option is set, @pxref{Statement Block} and @ref{CloogOptions}. @noindent A @code{clast_user_stmt} represents a call to a statement specified by the user, @pxref{CloogStatement}. @code{substitutions} is a list of @code{clast_assignment} statements assigning an expression in terms of the scattering dimensions to each of the original iterators in the original order. The @code{LHS}s of these assignments are left blank (@code{NULL}). The @code{domain} is set to @code{NULL} if the @code{save_domains} option is not set. Otherwise, it is set to the set of values for the scattering dimensions for which this instance of the user statement is executed. Note that unless the @code{noscalars} option has been set, the constant scattering dimensions may have been removed from this set. @noindent A @code{clast_for} represents a for loop, iterating @code{body} for each value of @code{iterator} between @code{LB} and @code{UB} in steps of size @code{stride}. The @code{domain} is set to @code{NULL} if the @code{save_domains} option is not set. Otherwise, it is set to the set of values for the scattering dimensions for which a user statement is executed inside this @code{clast_for}. Note that unless the @code{noscalars} option has been set, the constant scattering dimensions may have been removed from this set. @noindent A @code{clast_guard} represents the guarded execution of the @code{then} (list of) statement(s) by a conjunction of @code{n} (in)equalities. Each (in)equality is represented by a @code{clast_equation}. @example struct clast_equation @{ struct clast_expr * LHS; struct clast_expr * RHS; int sign; @}; @end example @noindent The condition expressed by a @code{clast_equation} is @code{LHS <= RHS}, @code{LHS == RHS} or @code{LHS >= RHS} depending on whether @code{sign} is less than zero, equal to zero, or greater than zero. The dynamic type of a @code{clast_stmt} can be determined using the macro @code{CLAST_STMT_IS_A(stmt,type)}, where @code{stmt} is a pointer to a @code{clast_stmt} and @code{type} is one of @code{stmt_root}, @code{stmt_ass}, @code{stmt_user}, @code{stmt_block}, @code{stmt_for} or @code{stmt_guard}. Users are allowed to define their own statement types by assigning the @code{op} field of the statements a pointer to a @code{clast_stmt_op} structure. @example struct clast_stmt_op @{ void (*free)(struct clast_stmt *); @}; @end example @noindent The @code{free} field of this structure should point to a function that frees the user defined statement. @noindent A @code{clast_expr} can be an identifier, a term, a binary expression or a reduction. @example enum clast_expr_type @{ clast_expr_name, clast_expr_term, clast_expr_bin, clast_expr_red @}; struct clast_expr @{ enum clast_expr_type type; @}; void free_clast_expr(struct clast_expr *e); @end example @noindent Identifiers are of subtype @code{clast_name}. @example struct clast_name @{ struct clast_expr expr; const char * name; @}; struct clast_name *new_clast_name(const char *name); void free_clast_name(struct clast_name *t); @end example @noindent The character string pointed to by @code{name} is assumed to be part of the @code{CloogNames} structure in the root of the clast as is therefore not copied. @noindent Terms are of type @code{clast_term}. @example struct clast_term @{ struct clast_expr expr; cloog_int_t val; struct clast_expr *var; @}; struct clast_term *new_clast_term(cloog_int_t c, struct clast_expr *v); void free_clast_term(struct clast_term *t); @end example @noindent If @code{var} is set to @code{NULL}, then the term represents the integer value @code{val}. Otherwise, it represents the term @code{val * var}. @code{new_clast_term} simply copies the @code{v} pointer without copying the underlying @code{clast_expr}. @code{free_clast_term}, on the other hand, recursively frees @code{var}. @noindent Binary expressions are of type @code{clast_bin_type} and represent either the floor of a division (fdiv), the ceil of a division (cdiv), an exact division or the remainder of an fdiv. @example enum clast_bin_type @{ clast_bin_fdiv, clast_bin_cdiv, clast_bin_div, clast_bin_mod @}; struct clast_binary @{ struct clast_expr expr; enum clast_bin_type type; struct clast_expr* LHS; cloog_int_t RHS; @}; struct clast_binary *new_clast_binary(enum clast_bin_type t, struct clast_expr *lhs, cloog_int_t rhs); void free_clast_binary(struct clast_binary *b); @end example @noindent Reductions are of type @code{clast_reduction} and can represent either the sum, the minimum or the maximum of its elements. @example enum clast_red_type @{ clast_red_sum, clast_red_min, clast_red_max @}; struct clast_reduction @{ struct clast_expr expr; enum clast_red_type type; int n; struct clast_expr* elts[1]; @}; struct clast_reduction *new_clast_reduction(enum clast_red_type t, int n); void free_clast_reduction(struct clast_reduction *r); @end example @node Retrieving version information @section Retrieving version information CLooG provides static and dynamic version checks to assist on including a compatible version of the library. A static version check at compile time can be achieved by querying the version constants defined in @code{version.h}: @itemize @bullet @item @code{CLOOG_VERSION_MAJOR} @item @code{CLOOG_VERSION_MINOR} @item @code{CLOOG_VERSION_REVISION} @end itemize This way it is possible to ensure the included headers are of the correct version. It is still possible that the installed CLooG library version differs from the installed headers. In order to avoid this, a dynamic version check is provided with the functions: @example @group int cloog_version_major(void); int cloog_version_minor(void); int cloog_version_revision(void); @end group @end example By using both the static and the dynamic version check, it is possible to match CLooG's header version with the library's version. @node Example of Library Utilization @section Example of Library Utilization Here is a basic example showing how it is possible to use the CLooG library, assuming that a standard installation has been done. The following C program reads a CLooG input file on the standard input, then prints the solution on the standard output. Options are preselected to the default values of the CLooG software. This example is provided in the @code{example} directory of the CLooG distribution. @example /* example.c */ # include # include int main() @{ CloogState *state; CloogInput *input; CloogOptions * options ; struct clast_stmt *root; /* Setting options and reading program informations. */ state = cloog_state_malloc(); options = cloog_options_malloc(state); input = cloog_input_read(stdin, options); /* Generating and printing the code. */ root = cloog_clast_create_from_input(input, options); clast_pprint(stdout, root, 0, options); cloog_clast_free(root); cloog_options_free(options) ; cloog_state_free(state); return 0; @} @end example @noindent The compilation command could be: @example gcc example.c -lcloog -o example @end example @noindent A calling command with the input file test.cloog could be: @example more test.cloog | ./example @end example @c % ******************************** HACKING ********************************* @c @node Hacking @c @chapter Hacking CLooG @c @menu @c * Program organization:: @c * Special Options:: @c * CLooG Coding Standards:: @c @end menu @c @node Program organization @c @section Program organization @c @node Special Options @c @section Special Options @c @node CLooG Coding Standards @c @section CLooG Coding Standards @c % ****************************** INSTALLING ******************************** @node Installing @chapter Installing CLooG @menu * License:: * Requirements:: * Basic Installation:: * Optional Features:: * Uninstallation:: @end menu @node License @section License First of all, it would be very kind to refer the following paper in any publication that result from the use of the CLooG software or its library, @pxref{Bas04} (a bibtex entry is provided behind the title page of this manual, along with copyright notice, and in the CLooG home @code{http://www.CLooG.org}. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. @code{http://www.gnu.org/licenses/lgpl-2.1.html} Note, though, that if you link CLooG against a GPL library such as the PolyLib backend, then the combination becomes GPL too. In particular, a CLooG library based on the PolyLib backend is GPL version 2 only. Since the isl backend is LGPL, linking against it does not affect the license of CLooG. @node Requirements @section Requirements CLooG can be used with one of two possible backends, one using isl and one using PolyLib. The isl library is included in the CLooG distribution, while the PolyLib library needs to be obtained separately. On the other hand, isl requires GMP, while PolyLib can be compiled with or without the use of GMP. The user therefore needs to install at least one of PolyLib or GMP. @menu * PolyLib:: * GMP Library:: @end menu @node PolyLib @subsection PolyLib (optional) To successfully install CLooG with the PolyLib backend, the user first needs to install PolyLib version 5.22.1 or above (default 64 bits version is satisfying as well as 32 bits or GMP multiple precision version). Polylib can be downloaded freely at @code{http://icps.u-strasbg.fr/PolyLib/} or @code{http://www.irisa.fr/polylib/}. Once downloaded and unpacked (e.g. using the @samp{tar -zxvf polylib-5.22.3.tar.gz} command), the user can compile it by typing the following commands on the PolyLib's root directory: @itemize @bullet @item @code{./configure} @item @code{make} @item And as root: @code{make install} @end itemize Alternatively, the latest development version can be obtained from the git repository: @itemize @bullet @item @code{git clone git://repo.or.cz/polylib.git} @item @code{cd polylib} @item @code{./autogen.sh} @item @code{./configure} @item @code{make} @item And as root: @code{make install} @end itemize The PolyLib default installation is @code{/usr/local}. This directory may not be inside your library path. To fix the problem, the user should set @example export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib @end example @noindent if your shell is, e.g., bash or @example setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/lib @end example @noindent if your shell is, e.g., tcsh. Add the line to your .bashrc or .tcshrc (or whatever convenient file) to make this change permanent. Another solution is to ask PolyLib to install in the standard path by using the prefix option of the configure script: @samp{./configure --prefix=/usr}. CLooG makes intensive calls to polyhedral operations, and PolyLib functions do the job. Polylib is a free library written in C for the manipulation of polyhedra. The library is operating on objects like vectors, matrices, lattices, polyhedra, Z-polyhedra, unions of polyhedra and a lot of other intermediary structures. It provides functions for all the important operations on these structures. @node GMP Library @subsection GMP Library (optional) To be able to deal with insanely large coefficient, the user will need to install the GNU Multiple Precision Library (GMP for short) version 4.1.4 or above. It can be freely downloaded from @code{http://www.swox.com/gmp}. Note that the isl backend currently requires GMP. The user can compile GMP by typing the following commands on the GMP root directory: @itemize @bullet @item @code{./configure} @item @code{make} @item And as root: @code{make install} @end itemize The GMP default installation is @code{/usr/local}, the same method to fix a library path problem applies as with PolyLib (@pxref{PolyLib}). If you want to use the PolyLib backend, then PolyLib has to be built using the GMP library by specifying the option @samp{--with-libgmp=PATH_TO_GMP} to the PolyLib configure script (where @code{PATH_TO_GMP} is @code{/usr/local} if you did not change the GMP installation directory). Then you have to set the convenient CLooG configure script options to build the GMP version (@pxref{Optional Features}). @node Basic Installation @section CLooG Basic Installation Once downloaded and unpacked (e.g. using the @samp{tar -zxvf cloog-@value{VERSION}.tar.gz} command), you can compile CLooG by typing the following commands on the CLooG's root directory: @itemize @bullet @item @code{./configure} @item @code{make} @item And as root: @code{make install} @end itemize Alternatively, the latest development version can be obtained from the git repository: @itemize @bullet @item @code{git clone git://repo.or.cz/cloog.git} @item @code{cd cloog} @item @code{./get_submodules.sh} @item @code{./autogen.sh} @item @code{./configure} @item @code{make} @item And as root: @code{make install} @end itemize Depending on which backend you want to use and where they are located, you may need to pass some options to the configure script, @pxref{Optional Features}. The program binaries and object files can be removed from the source code directory by typing @code{make clean}. To also remove the files that the @code{configure} script created (so you can compile the package for a different kind of computer) type @code{make distclean}. Both the CLooG software and library have been successfully compiled on the following systems: @itemize @bullet @item PC's under Linux, with the @code{gcc} compiler, @item PC's under Windows (Cygwin), with the @code{gcc} compiler, @item Sparc and UltraSparc Stations, with the @code{gcc} compiler. @end itemize @node Optional Features @section Optional Features The @code{configure} shell script attempts to guess correct values for various system-dependent variables and user options used during compilation. It uses those values to create the @code{Makefile}. Various user options are provided by the CLooG's configure script. They are summarized in the following list and may be printed by typing @code{./configure --help} in the CLooG top-level directory. @itemize @bullet @item By default, the installation directory is @code{/usr/local}: @code{make install} will install the package's files in @code{/usr/local/bin}, @code{/usr/local/lib} and @code{/usr/local/include}. The user can specify an installation prefix other than @code{/usr/local} by giving @code{configure} the option @code{--prefix=PATH}. @item By default, the isl backend will use the version of isl that is @code{bundled} together with CLooG. Using the @code{--with-isl} option of @code{configure} the user can specify that @code{no} isl, a previously installed (@code{system}) isl or a @code{build} isl should be used. In the latter case, the user should also specify the build location using @code{--with-isl-builddir=PATH}. In case of an installed isl, the installation location can be specified using the @code{--with-isl-prefix=PATH} and @code{--with-isl-exec-prefix=PATH} options of @code{configure}. @item By default, the PolyLib backend will use an installed (@code{system}) PolyLib, if any. The installation location can be specified using the @code{--with-polylib-prefix=PATH} and @code{--with-polylib-exec-prefix=PATH} options of @code{configure}. Using the @code{--with-polylib} option of @code{configure} the user can specify that @code{no} PolyLib or a @code{build} PolyLib should be used. In the latter case, the user should also specify the build location using @code{--with-polylib-builddir=PATH}. @item By default, the PolyLib backend of CLooG is built in 64bits version if such version of the PolyLib is found by @code{configure}. If the only existing version of the PolyLib is the 32bits or if the user give to @code{configure} the option @code{--with-bits=32}, the 32bits version of CLooG will be compiled. In the same way, the option @code{--with-bits=gmp} have to be used to build the multiple precision version. @item By default, @code{configure} will look for the GMP library (necessary to build the multiple precision version) in standard locations. If necessary, the user can specify the GMP path by giving @code{configure} the option @code{--with-gmp-prefix=PATH} and/or @code{--with-gmp-exec-prefix=PATH}. @end itemize @node Uninstallation @section Uninstallation The user can easily remove the CLooG software and library from his system by typing (as root if necessary) from the CLooG top-level directory @code{make uninstall}. @c % **************************** DOCUMENTATION ****************************** @node Documentation @chapter Documentation The CLooG distribution provides several documentation sources. First, the source code itself is as documented as possible. The code comments use a Doxygen-compatible presentation (something similar to what JavaDoc does for JAVA). The user may install Doxygen (see @code{http://www.stack.nl/~dimitri/doxygen}) to automatically generate a technical documentation by typing @code{make doc} or @code{doxygen ./autoconf/Doxyfile} at the CLooG top-level directory after running the configure script (@pxref{Installing}). Doxygen will generate documentation sources (in HTML, LaTeX and man) in the @code{doc/source} directory of the CLooG distribution. The Texinfo sources of the present document are also provided in the @code{doc} directory. You can build it in either DVI format (by typing @code{texi2dvi cloog.texi}) or PDF format (by typing @code{texi2pdf cloog.texi}) or HTML format (by typing @code{makeinfo --html cloog.texi}, using @code{--no-split} option to generate a single HTML file) or info format (by typing @code{makeinfo cloog.texi}). @c % ****************************** REFERENCES ******************************** @node References @chapter References @itemize @item @anchor{Bas03a}[Bas03a] C. Bastoul, P. Feautrier. Improving data locality by chunking. CC'12 International Conference on Compiler Construction, LNCS 2622, pages 320-335, Warsaw, april 2003. @item @anchor{Bas03b}[Bas03b] C. Bastoul. Efficient code generation for automatic parallelization and optimization. ISPDC'03 IEEE International Symposium on Parallel and Distributed Computing, pages 23-30, Ljubljana, october 2003. @item @anchor{Bas04}[Bas04] C. Bastoul. Code Generation in the Polyhedral Model Is Easier Than You Think. PACT'13 IEEE International Conference on Parallel Architecture and Compilation Techniques, pages 7-16, Juan-les-Pins, september 2004. @item @anchor{Fea92}[Fea92] P. Feautrier Some efficient solutions to the affine scheduling problem, part II: multidimensional time. International Journal of Parallel Programming, 21(6):389--420, December 1992. @item @anchor{Gri04}[Gri04] M. Griebl. Automatic parallelization of loop programs for distributed memory architectures. Habilitation Thesis. Facult@"at f@"ur Mathematik und Informatik, Universit@"at Passau, 2004. @emph{http://www.infosun.fmi.uni-passau.de/cl/loopo/} @item @anchor{Qui00}[Qui00] F. Quiller@'e, S. Rajopadhye, and D. Wilde. Generation of efficient nested loops from polyhedra. International Journal of Parallel Programming, 28(5):469-498, october 2000. @item @anchor{Wil93}[Wil93] Doran K. Wilde. A library for doing polyhedral operations. Technical Report 785, IRISA, Rennes, France, 1993. @end itemize @c % /************************************************************************* @c % * PART VI: END OF THE DOCUMENT * @c % *************************************************************************/ @c @unnumbered Index @c @printindex cp @bye cloog-parma-0.16.1/cloog-core/Makefile.in0000644000175000017500000017734211511607563015042 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # /**-------------------------------------------------------------------** # ** CLooG ** # **-------------------------------------------------------------------** # ** makefile.in ** # **-------------------------------------------------------------------** # ** First version: october 25th 2001 ** # **-------------------------------------------------------------------**/ # # makefile.in (or makefile if generated) of CLooG, the Chunky LOOp Generator. # makefile.in is not a makefile, you must run the 'configure' shellscript to # generate the makefile thanks to this file. VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = $(am__EXEEXT_1) subdir = . DIST_COMMON = README $(am__configure_deps) $(pkginclude_HEADERS) \ $(pkgislinclude_HEADERS) $(pkgmatrixinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/genversion.sh.in $(top_srcdir)/autoconf/Doxyfile.in \ $(top_srcdir)/configure \ $(top_srcdir)/include/cloog/version.h.in \ $(top_srcdir)/source/version.c.in autoconf/config.guess \ autoconf/config.sub autoconf/depcomp autoconf/install-sh \ autoconf/ltmain.sh autoconf/missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_submodule.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = autoconf/Doxyfile source/version.c \ include/cloog/version.h genversion.sh CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgislincludedir)" \ "$(DESTDIR)$(pkgmatrixincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libcloog_isl_la_DEPENDENCIES = $(ISL_LA) am__libcloog_isl_la_SOURCES_DIST = source/mp_get_memory_functions.c \ source/block.c source/clast.c source/matrix.c source/state.c \ source/input.c source/int.c source/loop.c source/names.c \ source/options.c source/pprint.c source/program.c \ source/statement.c source/stride.c source/union_domain.c \ source/version.c source/isl/domain.c source/isl/constraints.c \ source/isl/backend.c @NEED_GET_MEMORY_FUNCTIONS_TRUE@am__objects_1 = libcloog_isl_la-mp_get_memory_functions.lo am__objects_2 = $(am__objects_1) libcloog_isl_la-block.lo \ libcloog_isl_la-clast.lo libcloog_isl_la-matrix.lo \ libcloog_isl_la-state.lo libcloog_isl_la-input.lo \ libcloog_isl_la-int.lo libcloog_isl_la-loop.lo \ libcloog_isl_la-names.lo libcloog_isl_la-options.lo \ libcloog_isl_la-pprint.lo libcloog_isl_la-program.lo \ libcloog_isl_la-statement.lo libcloog_isl_la-stride.lo \ libcloog_isl_la-union_domain.lo libcloog_isl_la-version.lo am_libcloog_isl_la_OBJECTS = $(am__objects_2) \ libcloog_isl_la-domain.lo libcloog_isl_la-constraints.lo \ libcloog_isl_la-backend.lo libcloog_isl_la_OBJECTS = $(am_libcloog_isl_la_OBJECTS) libcloog_isl_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libcloog_isl_la_LDFLAGS) $(LDFLAGS) -o $@ @NO_ISL_FALSE@am_libcloog_isl_la_rpath = -rpath $(libdir) @NO_ISL_FALSE@am__EXEEXT_1 = cloog$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_cloog_OBJECTS = cloog.$(OBJEXT) cloog_OBJECTS = $(am_cloog_OBJECTS) cloog_LDADD = $(LDADD) depcomp = $(SHELL) $(top_srcdir)/autoconf/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libcloog_isl_la_SOURCES) $(cloog_SOURCES) DIST_SOURCES = $(am__libcloog_isl_la_SOURCES_DIST) $(cloog_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(pkginclude_HEADERS) $(pkgislinclude_HEADERS) \ $(pkgmatrixinclude_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITS = @BITS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CD = @CD@ CFLAGS = @CFLAGS@ CFLAGS_WARN = @CFLAGS_WARN@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GIT_INDEX = @GIT_INDEX@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ISL_CPPFLAGS = @ISL_CPPFLAGS@ ISL_LDFLAGS = @ISL_LDFLAGS@ ISL_LIBS = @ISL_LIBS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ TEXI2DVI = @TEXI2DVI@ VERSION = @VERSION@ VERSION_MAJOR = @VERSION_MAJOR@ VERSION_MINOR = @VERSION_MINOR@ VERSION_REVISION = @VERSION_REVISION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ versioninfo = @versioninfo@ #/***************************************************************************** # * CLooG : the Chunky Loop Generator (experimental) * # ***************************************************************************** # * * # * Copyright (C) 2001 Cedric Bastoul * # * * # * This library is free software; you can redistribute it and/or * # * modify it under the terms of the GNU Lesser General Public * # * License as published by the Free Software Foundation; either * # * version 2.1 of the License, or (at your option) any later version. * # * * # * This library is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * # * Lesser General Public License for more details. * # * * # * You should have received a copy of the GNU Lesser General Public * # * License along with this library; if not, write to the Free Software * # * Foundation, Inc., 51 Franklin Street, Fifth Floor, * # * Boston, MA 02110-1301 USA * # * * # * CLooG, the Chunky Loop Generator * # * Written by Cedric Bastoul, Cedric.Bastoul@inria.fr * # * * # *****************************************************************************/ @BUNDLED_ISL_TRUE@MAYBE_ISL = isl @BUNDLED_ISL_TRUE@ISL_LA = $(top_builddir)/isl/libisl.la SUBDIRS = $(MAYBE_ISL) . doc test DIST_SUBDIRS = $(MAYBE_ISL) . doc test ACLOCAL_AMFLAGS = -I m4 @NO_ISL_FALSE@CLOOG = cloog @NO_ISL_TRUE@CLOOG = @NO_ISL_FALSE@LIBCLOOG = libcloog-isl.la @NO_ISL_TRUE@LIBCLOOG = lib_LTLIBRARIES = $(LIBCLOOG) @NEED_GET_MEMORY_FUNCTIONS_TRUE@GET_MEMORY_FUNCTIONS = source/mp_get_memory_functions.c SOURCES_CORE = \ $(GET_MEMORY_FUNCTIONS) \ source/block.c \ source/clast.c \ source/matrix.c \ source/state.c \ source/input.c \ source/int.c \ source/loop.c \ source/names.c \ source/options.c \ source/pprint.c \ source/program.c \ source/statement.c \ source/stride.c \ source/union_domain.c \ source/version.c DEFAULT_INCLUDES = -I. INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include AM_CFLAGS = $(CFLAGS_WARN) libcloog_isl_la_CPPFLAGS = @ISL_CPPFLAGS@ libcloog_isl_la_LDFLAGS = -version-info @versioninfo@ \ -rpath $(libdir) @ISL_LDFLAGS@ libcloog_isl_la_LIBADD = @ISL_LIBS@ $(ISL_LA) libcloog_isl_la_SOURCES = \ $(SOURCES_CORE) \ source/isl/domain.c \ source/isl/constraints.c \ source/isl/backend.c LDADD = libcloog-isl.la cloog_DEPENDENCIES = libcloog-isl.la cloog_SOURCES = source/cloog.c pkginclude_HEADERS = \ include/cloog/block.h \ include/cloog/clast.h \ include/cloog/cloog.h \ include/cloog/input.h \ include/cloog/int.h \ include/cloog/matrix.h \ include/cloog/state.h \ include/cloog/domain.h \ include/cloog/loop.h \ include/cloog/constraints.h \ include/cloog/names.h \ include/cloog/options.h \ include/cloog/pprint.h \ include/cloog/program.h \ include/cloog/statement.h \ include/cloog/stride.h \ include/cloog/union_domain.h \ include/cloog/version.h pkgmatrixincludedir = $(pkgincludedir)/matrix pkgmatrixinclude_HEADERS = \ include/cloog/matrix/constraintset.h pkgislincludedir = $(pkgincludedir)/isl pkgislinclude_HEADERS = \ include/cloog/isl/backend.h \ include/cloog/isl/cloog.h \ include/cloog/isl/domain.h \ include/cloog/isl/constraintset.h EXTRA_DIST = \ autoconf/Doxyfile.in \ source/matrix/constraintset.c \ doc/cloog.texi \ doc/images \ examples all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): autoconf/Doxyfile: $(top_builddir)/config.status $(top_srcdir)/autoconf/Doxyfile.in cd $(top_builddir) && $(SHELL) ./config.status $@ source/version.c: $(top_builddir)/config.status $(top_srcdir)/source/version.c.in cd $(top_builddir) && $(SHELL) ./config.status $@ include/cloog/version.h: $(top_builddir)/config.status $(top_srcdir)/include/cloog/version.h.in cd $(top_builddir) && $(SHELL) ./config.status $@ genversion.sh: $(top_builddir)/config.status $(srcdir)/genversion.sh.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcloog-isl.la: $(libcloog_isl_la_OBJECTS) $(libcloog_isl_la_DEPENDENCIES) $(libcloog_isl_la_LINK) $(am_libcloog_isl_la_rpath) $(libcloog_isl_la_OBJECTS) $(libcloog_isl_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list cloog$(EXEEXT): $(cloog_OBJECTS) $(cloog_DEPENDENCIES) @rm -f cloog$(EXEEXT) $(LINK) $(cloog_OBJECTS) $(cloog_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cloog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-backend.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-block.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-clast.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-constraints.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-domain.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-input.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-int.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-loop.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-matrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-mp_get_memory_functions.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-names.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-options.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-pprint.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-program.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-state.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-statement.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-stride.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-union_domain.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_isl_la-version.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libcloog_isl_la-mp_get_memory_functions.lo: source/mp_get_memory_functions.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-mp_get_memory_functions.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-mp_get_memory_functions.Tpo -c -o libcloog_isl_la-mp_get_memory_functions.lo `test -f 'source/mp_get_memory_functions.c' || echo '$(srcdir)/'`source/mp_get_memory_functions.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-mp_get_memory_functions.Tpo $(DEPDIR)/libcloog_isl_la-mp_get_memory_functions.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/mp_get_memory_functions.c' object='libcloog_isl_la-mp_get_memory_functions.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-mp_get_memory_functions.lo `test -f 'source/mp_get_memory_functions.c' || echo '$(srcdir)/'`source/mp_get_memory_functions.c libcloog_isl_la-block.lo: source/block.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-block.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-block.Tpo -c -o libcloog_isl_la-block.lo `test -f 'source/block.c' || echo '$(srcdir)/'`source/block.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-block.Tpo $(DEPDIR)/libcloog_isl_la-block.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/block.c' object='libcloog_isl_la-block.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-block.lo `test -f 'source/block.c' || echo '$(srcdir)/'`source/block.c libcloog_isl_la-clast.lo: source/clast.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-clast.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-clast.Tpo -c -o libcloog_isl_la-clast.lo `test -f 'source/clast.c' || echo '$(srcdir)/'`source/clast.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-clast.Tpo $(DEPDIR)/libcloog_isl_la-clast.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/clast.c' object='libcloog_isl_la-clast.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-clast.lo `test -f 'source/clast.c' || echo '$(srcdir)/'`source/clast.c libcloog_isl_la-matrix.lo: source/matrix.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-matrix.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-matrix.Tpo -c -o libcloog_isl_la-matrix.lo `test -f 'source/matrix.c' || echo '$(srcdir)/'`source/matrix.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-matrix.Tpo $(DEPDIR)/libcloog_isl_la-matrix.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/matrix.c' object='libcloog_isl_la-matrix.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-matrix.lo `test -f 'source/matrix.c' || echo '$(srcdir)/'`source/matrix.c libcloog_isl_la-state.lo: source/state.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-state.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-state.Tpo -c -o libcloog_isl_la-state.lo `test -f 'source/state.c' || echo '$(srcdir)/'`source/state.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-state.Tpo $(DEPDIR)/libcloog_isl_la-state.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/state.c' object='libcloog_isl_la-state.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-state.lo `test -f 'source/state.c' || echo '$(srcdir)/'`source/state.c libcloog_isl_la-input.lo: source/input.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-input.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-input.Tpo -c -o libcloog_isl_la-input.lo `test -f 'source/input.c' || echo '$(srcdir)/'`source/input.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-input.Tpo $(DEPDIR)/libcloog_isl_la-input.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/input.c' object='libcloog_isl_la-input.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-input.lo `test -f 'source/input.c' || echo '$(srcdir)/'`source/input.c libcloog_isl_la-int.lo: source/int.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-int.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-int.Tpo -c -o libcloog_isl_la-int.lo `test -f 'source/int.c' || echo '$(srcdir)/'`source/int.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-int.Tpo $(DEPDIR)/libcloog_isl_la-int.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/int.c' object='libcloog_isl_la-int.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-int.lo `test -f 'source/int.c' || echo '$(srcdir)/'`source/int.c libcloog_isl_la-loop.lo: source/loop.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-loop.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-loop.Tpo -c -o libcloog_isl_la-loop.lo `test -f 'source/loop.c' || echo '$(srcdir)/'`source/loop.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-loop.Tpo $(DEPDIR)/libcloog_isl_la-loop.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/loop.c' object='libcloog_isl_la-loop.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-loop.lo `test -f 'source/loop.c' || echo '$(srcdir)/'`source/loop.c libcloog_isl_la-names.lo: source/names.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-names.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-names.Tpo -c -o libcloog_isl_la-names.lo `test -f 'source/names.c' || echo '$(srcdir)/'`source/names.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-names.Tpo $(DEPDIR)/libcloog_isl_la-names.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/names.c' object='libcloog_isl_la-names.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-names.lo `test -f 'source/names.c' || echo '$(srcdir)/'`source/names.c libcloog_isl_la-options.lo: source/options.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-options.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-options.Tpo -c -o libcloog_isl_la-options.lo `test -f 'source/options.c' || echo '$(srcdir)/'`source/options.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-options.Tpo $(DEPDIR)/libcloog_isl_la-options.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/options.c' object='libcloog_isl_la-options.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-options.lo `test -f 'source/options.c' || echo '$(srcdir)/'`source/options.c libcloog_isl_la-pprint.lo: source/pprint.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-pprint.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-pprint.Tpo -c -o libcloog_isl_la-pprint.lo `test -f 'source/pprint.c' || echo '$(srcdir)/'`source/pprint.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-pprint.Tpo $(DEPDIR)/libcloog_isl_la-pprint.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/pprint.c' object='libcloog_isl_la-pprint.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-pprint.lo `test -f 'source/pprint.c' || echo '$(srcdir)/'`source/pprint.c libcloog_isl_la-program.lo: source/program.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-program.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-program.Tpo -c -o libcloog_isl_la-program.lo `test -f 'source/program.c' || echo '$(srcdir)/'`source/program.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-program.Tpo $(DEPDIR)/libcloog_isl_la-program.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/program.c' object='libcloog_isl_la-program.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-program.lo `test -f 'source/program.c' || echo '$(srcdir)/'`source/program.c libcloog_isl_la-statement.lo: source/statement.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-statement.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-statement.Tpo -c -o libcloog_isl_la-statement.lo `test -f 'source/statement.c' || echo '$(srcdir)/'`source/statement.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-statement.Tpo $(DEPDIR)/libcloog_isl_la-statement.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/statement.c' object='libcloog_isl_la-statement.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-statement.lo `test -f 'source/statement.c' || echo '$(srcdir)/'`source/statement.c libcloog_isl_la-stride.lo: source/stride.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-stride.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-stride.Tpo -c -o libcloog_isl_la-stride.lo `test -f 'source/stride.c' || echo '$(srcdir)/'`source/stride.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-stride.Tpo $(DEPDIR)/libcloog_isl_la-stride.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/stride.c' object='libcloog_isl_la-stride.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-stride.lo `test -f 'source/stride.c' || echo '$(srcdir)/'`source/stride.c libcloog_isl_la-union_domain.lo: source/union_domain.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-union_domain.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-union_domain.Tpo -c -o libcloog_isl_la-union_domain.lo `test -f 'source/union_domain.c' || echo '$(srcdir)/'`source/union_domain.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-union_domain.Tpo $(DEPDIR)/libcloog_isl_la-union_domain.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/union_domain.c' object='libcloog_isl_la-union_domain.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-union_domain.lo `test -f 'source/union_domain.c' || echo '$(srcdir)/'`source/union_domain.c libcloog_isl_la-version.lo: source/version.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-version.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-version.Tpo -c -o libcloog_isl_la-version.lo `test -f 'source/version.c' || echo '$(srcdir)/'`source/version.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-version.Tpo $(DEPDIR)/libcloog_isl_la-version.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/version.c' object='libcloog_isl_la-version.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-version.lo `test -f 'source/version.c' || echo '$(srcdir)/'`source/version.c libcloog_isl_la-domain.lo: source/isl/domain.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-domain.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-domain.Tpo -c -o libcloog_isl_la-domain.lo `test -f 'source/isl/domain.c' || echo '$(srcdir)/'`source/isl/domain.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-domain.Tpo $(DEPDIR)/libcloog_isl_la-domain.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/isl/domain.c' object='libcloog_isl_la-domain.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-domain.lo `test -f 'source/isl/domain.c' || echo '$(srcdir)/'`source/isl/domain.c libcloog_isl_la-constraints.lo: source/isl/constraints.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-constraints.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-constraints.Tpo -c -o libcloog_isl_la-constraints.lo `test -f 'source/isl/constraints.c' || echo '$(srcdir)/'`source/isl/constraints.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-constraints.Tpo $(DEPDIR)/libcloog_isl_la-constraints.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/isl/constraints.c' object='libcloog_isl_la-constraints.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-constraints.lo `test -f 'source/isl/constraints.c' || echo '$(srcdir)/'`source/isl/constraints.c libcloog_isl_la-backend.lo: source/isl/backend.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_isl_la-backend.lo -MD -MP -MF $(DEPDIR)/libcloog_isl_la-backend.Tpo -c -o libcloog_isl_la-backend.lo `test -f 'source/isl/backend.c' || echo '$(srcdir)/'`source/isl/backend.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_isl_la-backend.Tpo $(DEPDIR)/libcloog_isl_la-backend.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/isl/backend.c' object='libcloog_isl_la-backend.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_isl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_isl_la-backend.lo `test -f 'source/isl/backend.c' || echo '$(srcdir)/'`source/isl/backend.c cloog.o: source/cloog.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cloog.o -MD -MP -MF $(DEPDIR)/cloog.Tpo -c -o cloog.o `test -f 'source/cloog.c' || echo '$(srcdir)/'`source/cloog.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cloog.Tpo $(DEPDIR)/cloog.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/cloog.c' object='cloog.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cloog.o `test -f 'source/cloog.c' || echo '$(srcdir)/'`source/cloog.c cloog.obj: source/cloog.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cloog.obj -MD -MP -MF $(DEPDIR)/cloog.Tpo -c -o cloog.obj `if test -f 'source/cloog.c'; then $(CYGPATH_W) 'source/cloog.c'; else $(CYGPATH_W) '$(srcdir)/source/cloog.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cloog.Tpo $(DEPDIR)/cloog.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/cloog.c' object='cloog.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cloog.obj `if test -f 'source/cloog.c'; then $(CYGPATH_W) 'source/cloog.c'; else $(CYGPATH_W) '$(srcdir)/source/cloog.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-pkgincludeHEADERS: $(pkginclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(pkgincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgincludedir)" @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgincludedir)" || exit $$?; \ done uninstall-pkgincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(pkginclude_HEADERS)'; test -n "$(pkgincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files install-pkgislincludeHEADERS: $(pkgislinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(pkgislincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgislincludedir)" @list='$(pkgislinclude_HEADERS)'; test -n "$(pkgislincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgislincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgislincludedir)" || exit $$?; \ done uninstall-pkgislincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(pkgislinclude_HEADERS)'; test -n "$(pkgislincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pkgislincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pkgislincludedir)" && rm -f $$files install-pkgmatrixincludeHEADERS: $(pkgmatrixinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(pkgmatrixincludedir)" || $(MKDIR_P) "$(DESTDIR)$(pkgmatrixincludedir)" @list='$(pkgmatrixinclude_HEADERS)'; test -n "$(pkgmatrixincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(pkgmatrixincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(pkgmatrixincludedir)" || exit $$?; \ done uninstall-pkgmatrixincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(pkgmatrixinclude_HEADERS)'; test -n "$(pkgmatrixincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(pkgmatrixincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(pkgmatrixincludedir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgincludedir)" "$(DESTDIR)$(pkgislincludedir)" "$(DESTDIR)$(pkgmatrixincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-pkgincludeHEADERS \ install-pkgislincludeHEADERS install-pkgmatrixincludeHEADERS install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES \ uninstall-local uninstall-pkgincludeHEADERS \ uninstall-pkgislincludeHEADERS \ uninstall-pkgmatrixincludeHEADERS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-hook \ dist-lzma dist-shar dist-tarZ dist-xz dist-zip distcheck \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-binPROGRAMS install-data \ install-data-am install-data-local install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am \ install-pkgincludeHEADERS install-pkgislincludeHEADERS \ install-pkgmatrixincludeHEADERS install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-libLTLIBRARIES uninstall-local \ uninstall-pkgincludeHEADERS uninstall-pkgislincludeHEADERS \ uninstall-pkgmatrixincludeHEADERS FORCE: isl/libisl.la: FORCE cd isl; $(MAKE) $(AM_MAKEFLAGS) libisl.la version.h: @GIT_INDEX@ echo '#define CLOOG_HEAD "'`$(top_builddir)/genversion.sh`'"' > $@ install-data-local: @test -z "$(pkgconfig_libdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfig_libdir)" $(INSTALL_DATA) $(pkgconfig_libfile) "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)" uninstall-local: rm -f "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)" dist-hook: rm -f $(distdir)/test/Makefile $(top_builddir)/genversion.sh > $(distdir)/CLOOG_HEAD (cd doc; make cloog.pdf) && cp doc/cloog.pdf $(distdir)/doc/ #/***************************************************************************** # * Rules * # *****************************************************************************/ check: $(MAKE) test -C test valcheck: $(MAKE) valgrind -C test total: @echo " /*-----------------------------------------------*" @echo " * CLooG *" @echo " *-----------------------------------------------*/" $(MAKE) uninstall $(MAKE) clean $(MAKE) $(MAKE) install doc: @echo " /*-----------------------------------------------*" @echo " * Generating CLooG's documentation *" @echo " *-----------------------------------------------*/" doxygen ./autoconf/Doxyfile # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: cloog-parma-0.16.1/cloog-core/examples/0000755000175000017500000000000011321074700014643 500000000000000cloog-parma-0.16.1/cloog-core/examples/example/0000755000175000017500000000000011467774607016326 500000000000000cloog-parma-0.16.1/cloog-core/examples/example/example.c0000644000175000017500000000135211467774607020046 00000000000000/* This is a very simple example of how to use the CLooGLib inside your * programs. You should compile it by typing 'make' (after edition of the * makefile), then test it for instance by typing * 'more FILE.cloog | ./example' (or example.exe under Cygwin). */ # include # include int main() { CloogState *state; CloogInput *input; CloogOptions * options ; struct clast_stmt *root; state = cloog_state_malloc(); options = cloog_options_malloc(state); input = cloog_input_read(stdin, options); root = cloog_clast_create_from_input(input, options); clast_pprint(stdout, root, 0, options); cloog_clast_free(root); cloog_options_free(options) ; cloog_state_free(state); return 0 ; } cloog-parma-0.16.1/cloog-core/examples/example/Makefile0000644000175000017500000000147211321074700017662 00000000000000# Please enter here the locations for CloogLib include and libraries if they # aren't the default values (/usr/lib and /usr/include). CLOOG_INC = $(HOME)/progs/linux/include CLOOG_LIB = $(HOME)/progs/linux/lib CC = gcc LDLIBS= -lcloog CFLAGS= -I $(CLOOG_INC) -L $(CLOOG_LIB) example: example.c @echo " /*-----------------------------------------------*" @echo " * Making example *" @echo " *-----------------------------------------------*/" $(CC) example.c -o example $(CFLAGS) $(LDLIBS) clean: @echo " /*-----------------------------------------------*" @echo " * Cleaning example *" @echo " *-----------------------------------------------*/" -rm -f example example.exe core cloog-parma-0.16.1/cloog-core/examples/README0000644000175000017500000000531711321074700015451 00000000000000# # /**-------------------------------------------------------------------** # ** CLooG ** # **-------------------------------------------------------------------** # ** Library use examples ** # **-------------------------------------------------------------------** # ** First version of this file: july 15th 2003 ** # **-------------------------------------------------------------------**/ # In this directory are presented various examples of how to use the CLooG library. For each case, you will need to edit the makefile file according to your system, in particular you will have to set where your CLooG library has been installed, and where are the CLooG header files. Don't forget to update your LD_LIBRARY_PATH environment variable to reach the CLooG library. If you performed the default installation of CLooG, the library is in /usr/local/lib thus you need to set LD_LIBRARY_PATH thanks to one of the following command: 'setenv LD_LIBRARY_PATH /usr/local/lib' for tcsh-like shells, or 'export LD_LIBRARY_PATH=/usr/local/lib' for bash-like shells. For any problem: . # **-------------------------------------------------------------------** # ** I. Example ** # **-------------------------------------------------------------------**/ This example program creates a simple CLooG-like loop generation program in a few lines. The input problem has to be given on standard input. We can test it for instance by typing 'more FILE.cloog | ./example' (or example.exe under Cygwin). # **-------------------------------------------------------------------** # ** II. cloog2loopgen ** # **-------------------------------------------------------------------**/ NO MORE EXISTS ! This example creates a program converting a CLooG input file to a LoopGen input file. This can be useful to compare the two tools (I do not support LoopGen, don't ask me if you find some bugs !). The usage of the created tool is: 'cloog2loopgen input_file output_file'. # **-------------------------------------------------------------------** # ** III. cloog2Omega ** # **-------------------------------------------------------------------**/ NO MORE EXISTS ! This example creates a program converting a CLooG input file to an Omega CodeGen input file. This can be useful to compare the two tools (I do not support CodeGen, don't ask me if you find some bugs !). The usage of the created tool is: 'cloog2omega input_file output_file'. cloog-parma-0.16.1/cloog-core/CLOOG_HEAD0000644000175000017500000000000711511607626014323 000000000000000.16.1 cloog-parma-0.16.1/cloog-core/m4/0000755000175000017500000000000011511607624013355 500000000000000cloog-parma-0.16.1/cloog-core/m4/ax_cflags_warn_all.m40000644000175000017500000001420411321074700017336 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_cflags_warn_all.html # =========================================================================== # # SYNOPSIS # # AX_CFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])] # # DESCRIPTION # # Try to find a compiler option that enables most reasonable warnings. # # For the GNU CC compiler it will be -Wall (and -ansi -pedantic) The # result is added to the shellvar being CFLAGS by default. # # Currently this macro knows about GCC, Solaris C compiler, Digital Unix C # compiler, C for AIX Compiler, HP-UX C compiler, IRIX C compiler, NEC # SX-5 (Super-UX 10) C compiler, and Cray J90 (Unicos 10.0.0.8) C # compiler. # # - $1 shell-variable-to-add-to : CFLAGS # - $2 add-value-if-not-found : nothing # - $3 action-if-found : add value to shellvariable # - $4 action-if-not-found : nothing # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_CFLAGS_WARN_ALL],[dnl AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_warn_all])dnl AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_C ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-pedantic % -Wall" dnl GCC "-xstrconst % -v" dnl Solaris C "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX "-ansi -ansiE % -fullwarn" dnl IRIX "+ESlit % +w1" dnl HP-UX C "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10) "-h conform % -h msglevel 2" dnl Cray C (Unicos) # do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` AC_TRY_COMPILE([],[return 0;], [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) done FLAGS="$ac_save_[]FLAGS" AC_LANG_RESTORE ]) case ".$VAR" in .ok|.ok,*) m4_ifvaln($3,$3) ;; .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"]) m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; *) m4_ifvaln($3,$3,[ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" fi ]) ;; esac AS_VAR_POPDEF([VAR])dnl AS_VAR_POPDEF([FLAGS])dnl ]) dnl the only difference - the LANG selection... and the default FLAGS AC_DEFUN([AX_CXXFLAGS_WARN_ALL],[dnl AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ax_cv_cxxflags_warn_all])dnl AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-pedantic % -Wall" dnl GCC "-xstrconst % -v" dnl Solaris C "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX "-ansi -ansiE % -fullwarn" dnl IRIX "+ESlit % +w1" dnl HP-UX C "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10) "-h conform % -h msglevel 2" dnl Cray C (Unicos) # do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` AC_TRY_COMPILE([],[return 0;], [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) done FLAGS="$ac_save_[]FLAGS" AC_LANG_RESTORE ]) case ".$VAR" in .ok|.ok,*) m4_ifvaln($3,$3) ;; .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"]) m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; *) m4_ifvaln($3,$3,[ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" fi ]) ;; esac AS_VAR_POPDEF([VAR])dnl AS_VAR_POPDEF([FLAGS])dnl ]) dnl implementation tactics: dnl the for-argument contains a list of options. The first part of dnl these does only exist to detect the compiler - usually it is dnl a global option to enable -ansi or -extrawarnings. All other dnl compilers will fail about it. That was needed since a lot of dnl compilers will give false positives for some option-syntax dnl like -Woption or -Xoption as they think of it is a pass-through dnl to later compile stages or something. The "%" is used as a dnl delimimiter. A non-option comment can be given after "%%" marks dnl which will be shown but not added to the respective C/CXXFLAGS. cloog-parma-0.16.1/cloog-core/m4/ax_compiler_vendor.m40000644000175000017500000000601011321074700017403 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_compiler_vendor.html # =========================================================================== # # SYNOPSIS # # AX_COMPILER_VENDOR # # DESCRIPTION # # Determine the vendor of the C/C++ compiler, e.g., gnu, intel, ibm, sun, # hp, borland, comeau, dec, cray, kai, lcc, metrowerks, sgi, microsoft, # watcom, etc. The vendor is returned in the cache variable # $ax_cv_c_compiler_vendor for C and $ax_cv_cxx_compiler_vendor for C++. # # LICENSE # # Copyright (c) 2008 Steven G. Johnson # Copyright (c) 2008 Matteo Frigo # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_COMPILER_VENDOR], [ AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor, [ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=unknown # note: don't check for gcc first since some other compilers define __GNUC__ for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ pathscale:__PATHCC__,__PATHSCALE__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")" AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[ #if !($vencpp) thisisanerror; #endif ])], [ax_cv_]_AC_LANG_ABBREV[_compiler_vendor=`echo $ventest | cut -d: -f1`; break]) done ]) ]) cloog-parma-0.16.1/cloog-core/m4/ax_check_compiler_flags.m40000644000175000017500000000632311321074700020346 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_check_compiler_flags.html # =========================================================================== # # SYNOPSIS # # AX_CHECK_COMPILER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE]) # # DESCRIPTION # # Check whether the given compiler FLAGS work with the current language's # compiler, or whether they give an error. (Warnings, however, are # ignored.) # # ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on # success/failure. # # LICENSE # # Copyright (c) 2009 Steven G. Johnson # Copyright (c) 2009 Matteo Frigo # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_CHECK_COMPILER_FLAGS], [AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX AC_MSG_CHECKING([whether _AC_LANG compiler accepts $1]) dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname: AS_LITERAL_IF([$1], [AC_CACHE_VAL(AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1]), [ ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS _AC_LANG_PREFIX[]FLAGS="$1" AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=yes, AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=no) _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])], [ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS _AC_LANG_PREFIX[]FLAGS="$1" AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=yes, eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=no) _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS]) eval ax_check_compiler_flags=$AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1]) AC_MSG_RESULT($ax_check_compiler_flags) if test "x$ax_check_compiler_flags" = xyes; then m4_default([$2], :) else m4_default([$3], :) fi ])dnl AX_CHECK_COMPILER_FLAGS cloog-parma-0.16.1/cloog-core/m4/ltsugar.m40000644000175000017500000001042411470010463015212 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) cloog-parma-0.16.1/cloog-core/m4/libtool.m40000644000175000017500000100326011470010463015176 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2010 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`print -r -- -n 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) void fnord () __attribute__((visibility("default"))); #endif void fnord () { int i=42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) cloog-parma-0.16.1/cloog-core/m4/ltversion.m40000644000175000017500000000127511470010463015562 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3169 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.8]) m4_define([LT_PACKAGE_REVISION], [1.3169]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.8' macro_revision='1.3169' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) cloog-parma-0.16.1/cloog-core/m4/ax_create_pkgconfig_info.m40000644000175000017500000003420111323333270020526 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_create_pkgconfig_info.html # =========================================================================== # # SYNOPSIS # # AX_CREATE_PKGCONFIG_INFO [(outputfile, [requires [,libs [,summary [,cflags [, ldflags]]]]])] # # DESCRIPTION # # Defaults: # # $1 = $PACKAGE_NAME.pc # $2 = (empty) # $3 = $PACKAGE_LIBS $LIBS (as set at that point in configure.ac) # $4 = $PACKAGE_SUMMARY (or $1 Library) # $5 = $CPPFLAGS $PACKAGE_CFLAGS (as set at the point in configure.ac) # $6 = $LDFLAGS $PACKAGE_LDFLAGS (as set at the point in configure.ac) # # PACKAGE_NAME defaults to $PACKAGE if not set. # PACKAGE_LIBS defaults to -l$PACKAGE_NAME if not set. # # The resulting file is called $PACKAGE.pc.in / $PACKAGE.pc # # You will find this macro most useful in conjunction with # ax_spec_defaults that can read good initializers from the .spec file. In # consequencd, most of the generatable installable stuff can be made from # information being updated in a single place for the whole project. # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2008 Sven Verdoolaege # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_CREATE_PKGCONFIG_INFO],[dnl AS_VAR_PUSHDEF([PKGCONFIG_suffix],[ax_create_pkgconfig_suffix])dnl AS_VAR_PUSHDEF([PKGCONFIG_libdir],[ax_create_pkgconfig_libdir])dnl AS_VAR_PUSHDEF([PKGCONFIG_libfile],[ax_create_pkgconfig_libfile])dnl AS_VAR_PUSHDEF([PKGCONFIG_libname],[ax_create_pkgconfig_libname])dnl AS_VAR_PUSHDEF([PKGCONFIG_version],[ax_create_pkgconfig_version])dnl AS_VAR_PUSHDEF([PKGCONFIG_description],[ax_create_pkgconfig_description])dnl AS_VAR_PUSHDEF([PKGCONFIG_requires],[ax_create_pkgconfig_requires])dnl AS_VAR_PUSHDEF([PKGCONFIG_pkglibs],[ax_create_pkgconfig_pkglibs])dnl AS_VAR_PUSHDEF([PKGCONFIG_libs],[ax_create_pkgconfig_libs])dnl AS_VAR_PUSHDEF([PKGCONFIG_ldflags],[ax_create_pkgconfig_ldflags])dnl AS_VAR_PUSHDEF([PKGCONFIG_cppflags],[ax_create_pkgconfig_cppflags])dnl AS_VAR_PUSHDEF([PKGCONFIG_generate],[ax_create_pkgconfig_generate])dnl AS_VAR_PUSHDEF([PKGCONFIG_src_libdir],[ax_create_pkgconfig_src_libdir])dnl AS_VAR_PUSHDEF([PKGCONFIG_src_headers],[ax_create_pkgconfig_src_headers])dnl # we need the expanded forms... test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' AC_MSG_CHECKING(our pkgconfig libname) test ".$PKGCONFIG_libname" != "." || \ PKGCONFIG_libname="ifelse($1,,${PACKAGE_NAME},`basename $1 .pc`)" test ".$PKGCONFIG_libname" != "." || \ PKGCONFIG_libname="$PACKAGE" PKGCONFIG_libname=`eval echo "$PKGCONFIG_libname"` PKGCONFIG_libname=`eval echo "$PKGCONFIG_libname"` AC_MSG_RESULT($PKGCONFIG_libname) AC_MSG_CHECKING(our pkgconfig version) test ".$PKGCONFIG_version" != "." || \ PKGCONFIG_version="${PACKAGE_VERSION}" test ".$PKGCONFIG_version" != "." || \ PKGCONFIG_version="$VERSION" PKGCONFIG_version=`eval echo "$PKGCONFIG_version"` PKGCONFIG_version=`eval echo "$PKGCONFIG_version"` AC_MSG_RESULT($PKGCONFIG_version) AC_MSG_CHECKING(our pkgconfig_libdir) test ".$pkgconfig_libdir" = "." && \ pkgconfig_libdir='${libdir}/pkgconfig' PKGCONFIG_libdir=`eval echo "$pkgconfig_libdir"` PKGCONFIG_libdir=`eval echo "$PKGCONFIG_libdir"` PKGCONFIG_libdir=`eval echo "$PKGCONFIG_libdir"` AC_MSG_RESULT($pkgconfig_libdir) test "$pkgconfig_libdir" != "$PKGCONFIG_libdir" && ( AC_MSG_RESULT(expanded our pkgconfig_libdir... $PKGCONFIG_libdir)) AC_SUBST([pkgconfig_libdir]) AC_MSG_CHECKING(our pkgconfig_libfile) test ".$pkgconfig_libfile" != "." || \ pkgconfig_libfile="ifelse($1,,$PKGCONFIG_libname.pc,`basename $1`)" PKGCONFIG_libfile=`eval echo "$pkgconfig_libfile"` PKGCONFIG_libfile=`eval echo "$PKGCONFIG_libfile"` AC_MSG_RESULT($pkgconfig_libfile) test "$pkgconfig_libfile" != "$PKGCONFIG_libfile" && ( AC_MSG_RESULT(expanded our pkgconfig_libfile... $PKGCONFIG_libfile)) AC_SUBST([pkgconfig_libfile]) AC_MSG_CHECKING(our package / suffix) PKGCONFIG_suffix="$program_suffix" test ".$PKGCONFIG_suffix" != .NONE || PKGCONFIG_suffix="" AC_MSG_RESULT(${PACKAGE_NAME} / ${PKGCONFIG_suffix}) AC_MSG_CHECKING(our pkgconfig description) PKGCONFIG_description="ifelse($4,,$PACKAGE_SUMMARY,$4)" test ".$PKGCONFIG_description" != "." || \ PKGCONFIG_description="$PKGCONFIG_libname Library" PKGCONFIG_description=`eval echo "$PKGCONFIG_description"` PKGCONFIG_description=`eval echo "$PKGCONFIG_description"` AC_MSG_RESULT($PKGCONFIG_description) AC_MSG_CHECKING(our pkgconfig requires) PKGCONFIG_requires="ifelse($2,,$PACKAGE_REQUIRES,$2)" PKGCONFIG_requires=`eval echo "$PKGCONFIG_requires"` PKGCONFIG_requires=`eval echo "$PKGCONFIG_requires"` AC_MSG_RESULT($PKGCONFIG_requires) AC_MSG_CHECKING(our pkgconfig ext libs) PKGCONFIG_pkglibs="$PACKAGE_LIBS" test ".$PKGCONFIG_pkglibs" != "." || PKGCONFIG_pkglibs="-l$PKGCONFIG_libname" PKGCONFIG_libs="ifelse($3,,$PKGCONFIG_pkglibs $LIBS,$3)" PKGCONFIG_libs=`eval echo "$PKGCONFIG_libs"` PKGCONFIG_libs=`eval echo "$PKGCONFIG_libs"` AC_MSG_RESULT($PKGCONFIG_libs) AC_MSG_CHECKING(our pkgconfig cppflags) PKGCONFIG_cppflags="ifelse($5,,$CPPFLAGS $PACKAGE_CFLAGS,$5)" PKGCONFIG_cppflags=`eval echo "$PKGCONFIG_cppflags"` PKGCONFIG_cppflags=`eval echo "$PKGCONFIG_cppflags"` AC_MSG_RESULT($PKGCONFIG_cppflags) AC_MSG_CHECKING(our pkgconfig ldflags) PKGCONFIG_ldflags="ifelse($6,,$LDFLAGS $PACKAGE_LDFLAGS,$5)" PKGCONFIG_ldflags=`eval echo "$PKGCONFIG_ldflags"` PKGCONFIG_ldflags=`eval echo "$PKGCONFIG_ldflags"` AC_MSG_RESULT($PKGCONFIG_ldflags) test ".$PKGCONFIG_generate" != "." || \ PKGCONFIG_generate="ifelse($1,,$PKGCONFIG_libname.pc,$1)" PKGCONFIG_generate=`eval echo "$PKGCONFIG_generate"` PKGCONFIG_generate=`eval echo "$PKGCONFIG_generate"` test "$pkgconfig_libfile" != "$PKGCONFIG_generate" && ( AC_MSG_RESULT(generate the pkgconfig later... $PKGCONFIG_generate)) if test ".$PKGCONFIG_src_libdir" = "." ; then PKGCONFIG_src_libdir=`pwd` PKGCONFIG_src_libdir=`AS_DIRNAME("$PKGCONFIG_src_libdir/$PKGCONFIG_generate")` test ! -d $PKGCONFIG_src_libdir/src || \ PKGCONFIG_src_libdir="$PKGCONFIG_src_libdir/src" case ".$objdir" in *libs) PKGCONFIG_src_libdir="$PKGCONFIG_src_libdir/$objdir" ;; esac AC_MSG_RESULT(noninstalled pkgconfig -L $PKGCONFIG_src_libdir) fi if test ".$PKGCONFIG_src_headers" = "." ; then PKGCONFIG_src_headers=`pwd` v="$ac_top_srcdir" ; test ".$v" != "." || v="$ax_spec_dir" test ".$v" != "." || v="$srcdir" case "$v" in /*) PKGCONFIG_src_headers="" ;; esac PKGCONFIG_src_headers=`AS_DIRNAME("$PKGCONFIG_src_headers/$v/x")` test ! -d $PKGCONFIG_src_headers/incl[]ude || \ PKGCONFIG_src_headers="$PKGCONFIG_src_headers/incl[]ude" AC_MSG_RESULT(noninstalled pkgconfig -I $PKGCONFIG_src_headers) fi dnl AC_CONFIG_COMMANDS crap disallows to use $PKGCONFIG_libfile here... AC_CONFIG_COMMANDS([$ax_create_pkgconfig_generate],[ pkgconfig_generate="$ax_create_pkgconfig_generate" if test ! -f "$pkgconfig_generate.in" then generate="true" elif grep ' generated by configure ' $pkgconfig_generate.in >/dev/null then generate="true" else generate="false"; fi if $generate ; then AC_MSG_NOTICE(creating $pkgconfig_generate.in) cat > $pkgconfig_generate.in <conftest.sed < $pkgconfig_generate if test ! -s $pkgconfig_generate ; then AC_MSG_ERROR([$pkgconfig_generate is empty]) fi ; rm conftest.sed # DONE generate $pkgconfig_generate pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.pc/'` AC_MSG_NOTICE(creating $pkgconfig_uninstalled) cat >conftest.sed < $pkgconfig_uninstalled if test ! -s $pkgconfig_uninstalled ; then AC_MSG_ERROR([$pkgconfig_uninstalled is empty]) fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled pkgconfig_requires_add=`echo ${pkgconfig_requires}` if test ".$pkgconfig_requires_add" != "." ; then pkgconfig_requires_add="pkg-config $pkgconfig_requires_add" else pkgconfig_requires_add=":" ; fi pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.sh/'` AC_MSG_NOTICE(creating $pkgconfig_uninstalled) cat >conftest.sed <Name:>for option\\; do case \"\$option\" in --list-all|--name) echo > s>Description: *>\\;\\; --help) pkg-config --help \\; echo Buildscript Of > s>Version: *>\\;\\; --modversion|--version) echo > s>Requires:>\\;\\; --requires) echo $pkgconfig_requires_add> s>Libs: *>\\;\\; --libs) echo > s>Cflags: *>\\;\\; --cflags) echo > /--libs)/a\\ $pkgconfig_requires_add /--cflags)/a\\ $pkgconfig_requires_add\\ ;; --variable=*) eval echo '\$'\`echo \$option | sed -e 's/.*=//'\`\\ ;; --uninstalled) exit 0 \\ ;; *) ;; esac done AXEOF sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled if test ! -s $pkgconfig_uninstalled ; then AC_MSG_ERROR([$pkgconfig_uninstalled is empty]) fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled ],[ dnl AC_CONFIG_COMMANDS crap, the AS_PUSHVAR defines are invalid here... ax_create_pkgconfig_generate="$ax_create_pkgconfig_generate" pkgconfig_prefix='$prefix' pkgconfig_execprefix='$exec_prefix' pkgconfig_bindir='$bindir' pkgconfig_libdir='$libdir' pkgconfig_includedir='$includedir' pkgconfig_datarootdir='$datarootdir' pkgconfig_datadir='$datadir' pkgconfig_sysconfdir='$sysconfdir' pkgconfig_suffix='$ax_create_pkgconfig_suffix' pkgconfig_package='$PACKAGE_NAME' pkgconfig_libname='$ax_create_pkgconfig_libname' pkgconfig_description='$ax_create_pkgconfig_description' pkgconfig_version='$ax_create_pkgconfig_version' pkgconfig_requires='$ax_create_pkgconfig_requires' pkgconfig_libs='$ax_create_pkgconfig_libs' pkgconfig_ldflags='$ax_create_pkgconfig_ldflags' pkgconfig_cppflags='$ax_create_pkgconfig_cppflags' pkgconfig_src_libdir='$ax_create_pkgconfig_src_libdir' pkgconfig_src_headers='$ax_create_pkgconfig_src_headers' ])dnl AS_VAR_POPDEF([PKGCONFIG_suffix])dnl AS_VAR_POPDEF([PKGCONFIG_libdir])dnl AS_VAR_POPDEF([PKGCONFIG_libfile])dnl AS_VAR_POPDEF([PKGCONFIG_libname])dnl AS_VAR_POPDEF([PKGCONFIG_version])dnl AS_VAR_POPDEF([PKGCONFIG_description])dnl AS_VAR_POPDEF([PKGCONFIG_requires])dnl AS_VAR_POPDEF([PKGCONFIG_pkglibs])dnl AS_VAR_POPDEF([PKGCONFIG_libs])dnl AS_VAR_POPDEF([PKGCONFIG_ldflags])dnl AS_VAR_POPDEF([PKGCONFIG_cppflags])dnl AS_VAR_POPDEF([PKGCONFIG_generate])dnl AS_VAR_POPDEF([PKGCONFIG_src_libdir])dnl AS_VAR_POPDEF([PKGCONFIG_src_headers])dnl ]) cloog-parma-0.16.1/cloog-core/m4/lt~obsolete.m40000644000175000017500000001375611470010463016116 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) cloog-parma-0.16.1/cloog-core/m4/ax_cc_maxopt.m40000644000175000017500000001604611321074700016203 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_cc_maxopt.html # =========================================================================== # # SYNOPSIS # # AX_CC_MAXOPT # # DESCRIPTION # # Try to turn on "good" C optimization flags for various compilers and # architectures, for some definition of "good". (In our case, good for # FFTW and hopefully for other scientific codes. Modify as needed.) # # The user can override the flags by setting the CFLAGS environment # variable. The user can also specify --enable-portable-binary in order to # disable any optimization flags that might result in a binary that only # runs on the host architecture. # # Note also that the flags assume that ANSI C aliasing rules are followed # by the code (e.g. for gcc's -fstrict-aliasing), and that floating-point # computations can be re-ordered as needed. # # Requires macros: AX_CHECK_COMPILER_FLAGS, AX_COMPILER_VENDOR, # AX_GCC_ARCHFLAG, AX_GCC_X86_CPUID. # # LICENSE # # Copyright (c) 2008 Steven G. Johnson # Copyright (c) 2008 Matteo Frigo # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_CC_MAXOPT], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AX_COMPILER_VENDOR]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_ARG_ENABLE(portable-binary, [AC_HELP_STRING([--enable-portable-binary], [disable compiler optimizations that would produce unportable binaries])], acx_maxopt_portable=$withval, acx_maxopt_portable=no) # Try to determine "good" native compiler flags if none specified via CFLAGS if test "$ac_test_CFLAGS" != "set"; then CFLAGS="" case $ax_cv_c_compiler_vendor in dec) CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host" if test "x$acx_maxopt_portable" = xno; then CFLAGS="$CFLAGS -arch host" fi;; sun) CFLAGS="-native -fast -xO5 -dalign" if test "x$acx_maxopt_portable" = xyes; then CFLAGS="$CFLAGS -xarch=generic" fi;; hp) CFLAGS="+Oall +Optrs_ansi +DSnative" if test "x$acx_maxopt_portable" = xyes; then CFLAGS="$CFLAGS +DAportable" fi;; ibm) if test "x$acx_maxopt_portable" = xno; then xlc_opt="-qarch=auto -qtune=auto" else xlc_opt="-qtune=auto" fi AX_CHECK_COMPILER_FLAGS($xlc_opt, CFLAGS="-O3 -qansialias -w $xlc_opt", [CFLAGS="-O3 -qansialias -w" echo "******************************************************" echo "* You seem to have the IBM C compiler. It is *" echo "* recommended for best performance that you use: *" echo "* *" echo "* CFLAGS=-O3 -qarch=xxx -qtune=xxx -qansialias -w *" echo "* ^^^ ^^^ *" echo "* where xxx is pwr2, pwr3, 604, or whatever kind of *" echo "* CPU you have. (Set the CFLAGS environment var. *" echo "* and re-run configure.) For more info, man cc. *" echo "******************************************************"]) ;; intel) CFLAGS="-O3 -ansi_alias" if test "x$acx_maxopt_portable" = xno; then icc_archflag=unknown icc_flags="" case $host_cpu in i686*|x86_64*) # icc accepts gcc assembly syntax, so these should work: AX_GCC_X86_CPUID(0) AX_GCC_X86_CPUID(1) case $ax_cv_gcc_x86_cpuid_0 in # see AX_GCC_ARCHFLAG *:756e6547:*:*) # Intel case $ax_cv_gcc_x86_cpuid_1 in *6a?:*[[234]]:*:*|*6[[789b]]?:*:*:*) icc_flags="-xK";; *f3[[347]]:*:*:*|*f4[1347]:*:*:*) icc_flags="-xP -xN -xW -xK";; *f??:*:*:*) icc_flags="-xN -xW -xK";; esac ;; esac ;; esac if test "x$icc_flags" != x; then for flag in $icc_flags; do AX_CHECK_COMPILER_FLAGS($flag, [icc_archflag=$flag; break]) done fi AC_MSG_CHECKING([for icc architecture flag]) AC_MSG_RESULT($icc_archflag) if test "x$icc_archflag" != xunknown; then CFLAGS="$CFLAGS $icc_archflag" fi fi ;; gnu) # default optimization flags for gcc on all systems CFLAGS="-O3 -fomit-frame-pointer" # -malign-double for x86 systems AX_CHECK_COMPILER_FLAGS(-malign-double, CFLAGS="$CFLAGS -malign-double") # -fstrict-aliasing for gcc-2.95+ AX_CHECK_COMPILER_FLAGS(-fstrict-aliasing, CFLAGS="$CFLAGS -fstrict-aliasing") # note that we enable "unsafe" fp optimization with other compilers, too AX_CHECK_COMPILER_FLAGS(-ffast-math, CFLAGS="$CFLAGS -ffast-math") AX_GCC_ARCHFLAG($acx_maxopt_portable) ;; esac if test -z "$CFLAGS"; then echo "" echo "********************************************************" echo "* WARNING: Don't know the best CFLAGS for this system *" echo "* Use ./configure CFLAGS=... to specify your own flags *" echo "* (otherwise, a default of CFLAGS=-O3 will be used) *" echo "********************************************************" echo "" CFLAGS="-O3" fi AX_CHECK_COMPILER_FLAGS($CFLAGS, [], [ echo "" echo "********************************************************" echo "* WARNING: The guessed CFLAGS don't seem to work with *" echo "* your compiler. *" echo "* Use ./configure CFLAGS=... to specify your own flags *" echo "********************************************************" echo "" CFLAGS="" ]) fi ]) cloog-parma-0.16.1/cloog-core/m4/ax_gcc_archflag.m40000644000175000017500000002141411321074700016604 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_gcc_archflag.html # =========================================================================== # # SYNOPSIS # # AX_GCC_ARCHFLAG([PORTABLE?], [ACTION-SUCCESS], [ACTION-FAILURE]) # # DESCRIPTION # # This macro tries to guess the "native" arch corresponding to the target # architecture for use with gcc's -march=arch or -mtune=arch flags. If # found, the cache variable $ax_cv_gcc_archflag is set to this flag and # ACTION-SUCCESS is executed; otherwise $ax_cv_gcc_archflag is is set to # "unknown" and ACTION-FAILURE is executed. The default ACTION-SUCCESS is # to add $ax_cv_gcc_archflag to the end of $CFLAGS. # # PORTABLE? should be either [yes] (default) or [no]. In the former case, # the flag is set to -mtune (or equivalent) so that the architecture is # only used for tuning, but the instruction set used is still portable. In # the latter case, the flag is set to -march (or equivalent) so that # architecture-specific instructions are enabled. # # The user can specify --with-gcc-arch= in order to override the # macro's choice of architecture, or --without-gcc-arch to disable this. # # When cross-compiling, or if $CC is not gcc, then ACTION-FAILURE is # called unless the user specified --with-gcc-arch manually. # # Requires macros: AX_CHECK_COMPILER_FLAGS, AX_GCC_X86_CPUID # # (The main emphasis here is on recent CPUs, on the principle that doing # high-performance computing on old hardware is uncommon.) # # LICENSE # # Copyright (c) 2008 Steven G. Johnson # Copyright (c) 2008 Matteo Frigo # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_GCC_ARCHFLAG], [AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_ARG_WITH(gcc-arch, [AC_HELP_STRING([--with-gcc-arch=], [use architecture for gcc -march/-mtune, instead of guessing])], ax_gcc_arch=$withval, ax_gcc_arch=yes) AC_MSG_CHECKING([for gcc architecture flag]) AC_MSG_RESULT([]) AC_CACHE_VAL(ax_cv_gcc_archflag, [ ax_cv_gcc_archflag="unknown" if test "$GCC" = yes; then if test "x$ax_gcc_arch" = xyes; then ax_gcc_arch="" if test "$cross_compiling" = no; then case $host_cpu in i[[3456]]86*|x86_64*) # use cpuid codes, in part from x86info-1.7 by D. Jones AX_GCC_X86_CPUID(0) AX_GCC_X86_CPUID(1) case $ax_cv_gcc_x86_cpuid_0 in *:756e6547:*:*) # Intel case $ax_cv_gcc_x86_cpuid_1 in *5[[48]]?:*:*:*) ax_gcc_arch="pentium-mmx pentium" ;; *5??:*:*:*) ax_gcc_arch=pentium ;; *6[[3456]]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;; *6a?:*[[01]]:*:*) ax_gcc_arch="pentium2 pentiumpro" ;; *6a?:*[[234]]:*:*) ax_gcc_arch="pentium3 pentiumpro" ;; *6[[9d]]?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;; *6[[78b]]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;; *6??:*:*:*) ax_gcc_arch=pentiumpro ;; *f3[[347]]:*:*:*|*f4[1347]:*:*:*) case $host_cpu in x86_64*) ax_gcc_arch="nocona pentium4 pentiumpro" ;; *) ax_gcc_arch="prescott pentium4 pentiumpro" ;; esac ;; *f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro";; esac ;; *:68747541:*:*) # AMD case $ax_cv_gcc_x86_cpuid_1 in *5[[67]]?:*:*:*) ax_gcc_arch=k6 ;; *5[[8d]]?:*:*:*) ax_gcc_arch="k6-2 k6" ;; *5[[9]]?:*:*:*) ax_gcc_arch="k6-3 k6" ;; *60?:*:*:*) ax_gcc_arch=k7 ;; *6[[12]]?:*:*:*) ax_gcc_arch="athlon k7" ;; *6[[34]]?:*:*:*) ax_gcc_arch="athlon-tbird k7" ;; *67?:*:*:*) ax_gcc_arch="athlon-4 athlon k7" ;; *6[[68a]]?:*:*:*) AX_GCC_X86_CPUID(0x80000006) # L2 cache size case $ax_cv_gcc_x86_cpuid_0x80000006 in *:*:*[[1-9a-f]]??????:*) # (L2 = ecx >> 16) >= 256 ax_gcc_arch="athlon-xp athlon-4 athlon k7" ;; *) ax_gcc_arch="athlon-4 athlon k7" ;; esac ;; *f[[4cef8b]]?:*:*:*) ax_gcc_arch="athlon64 k8" ;; *f5?:*:*:*) ax_gcc_arch="opteron k8" ;; *f7?:*:*:*) ax_gcc_arch="athlon-fx opteron k8" ;; *f??:*:*:*) ax_gcc_arch="k8" ;; esac ;; *:746e6543:*:*) # IDT case $ax_cv_gcc_x86_cpuid_1 in *54?:*:*:*) ax_gcc_arch=winchip-c6 ;; *58?:*:*:*) ax_gcc_arch=winchip2 ;; *6[[78]]?:*:*:*) ax_gcc_arch=c3 ;; *69?:*:*:*) ax_gcc_arch="c3-2 c3" ;; esac ;; esac if test x"$ax_gcc_arch" = x; then # fallback case $host_cpu in i586*) ax_gcc_arch=pentium ;; i686*) ax_gcc_arch=pentiumpro ;; esac fi ;; sparc*) AC_PATH_PROG([PRTDIAG], [prtdiag], [prtdiag], [$PATH:/usr/platform/`uname -i`/sbin/:/usr/platform/`uname -m`/sbin/]) cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null` cputype=`echo "$cputype" | tr -d ' -' |tr $as_cr_LETTERS $as_cr_letters` case $cputype in *ultrasparciv*) ax_gcc_arch="ultrasparc4 ultrasparc3 ultrasparc v9" ;; *ultrasparciii*) ax_gcc_arch="ultrasparc3 ultrasparc v9" ;; *ultrasparc*) ax_gcc_arch="ultrasparc v9" ;; *supersparc*|*tms390z5[[05]]*) ax_gcc_arch="supersparc v8" ;; *hypersparc*|*rt62[[056]]*) ax_gcc_arch="hypersparc v8" ;; *cypress*) ax_gcc_arch=cypress ;; esac ;; alphaev5) ax_gcc_arch=ev5 ;; alphaev56) ax_gcc_arch=ev56 ;; alphapca56) ax_gcc_arch="pca56 ev56" ;; alphapca57) ax_gcc_arch="pca57 pca56 ev56" ;; alphaev6) ax_gcc_arch=ev6 ;; alphaev67) ax_gcc_arch=ev67 ;; alphaev68) ax_gcc_arch="ev68 ev67" ;; alphaev69) ax_gcc_arch="ev69 ev68 ev67" ;; alphaev7) ax_gcc_arch="ev7 ev69 ev68 ev67" ;; alphaev79) ax_gcc_arch="ev79 ev7 ev69 ev68 ev67" ;; powerpc*) cputype=`((grep cpu /proc/cpuinfo | head -n 1 | cut -d: -f2 | cut -d, -f1 | sed 's/ //g') ; /usr/bin/machine ; /bin/machine; grep CPU /var/run/dmesg.boot | head -n 1 | cut -d" " -f2) 2> /dev/null` cputype=`echo $cputype | sed -e 's/ppc//g;s/ *//g'` case $cputype in *750*) ax_gcc_arch="750 G3" ;; *740[[0-9]]*) ax_gcc_arch="$cputype 7400 G4" ;; *74[[4-5]][[0-9]]*) ax_gcc_arch="$cputype 7450 G4" ;; *74[[0-9]][[0-9]]*) ax_gcc_arch="$cputype G4" ;; *970*) ax_gcc_arch="970 G5 power4";; *POWER4*|*power4*|*gq*) ax_gcc_arch="power4 970";; *POWER5*|*power5*|*gr*|*gs*) ax_gcc_arch="power5 power4 970";; 603ev|8240) ax_gcc_arch="$cputype 603e 603";; *) ax_gcc_arch=$cputype ;; esac ax_gcc_arch="$ax_gcc_arch powerpc" ;; esac fi # not cross-compiling fi # guess arch if test "x$ax_gcc_arch" != x -a "x$ax_gcc_arch" != xno; then for arch in $ax_gcc_arch; do if test "x[]m4_default([$1],yes)" = xyes; then # if we require portable code flags="-mtune=$arch" # -mcpu=$arch and m$arch generate nonportable code on every arch except # x86. And some other arches (e.g. Alpha) don't accept -mtune. Grrr. case $host_cpu in i*86|x86_64*) flags="$flags -mcpu=$arch -m$arch";; esac else flags="-march=$arch -mcpu=$arch -m$arch" fi for flag in $flags; do AX_CHECK_COMPILER_FLAGS($flag, [ax_cv_gcc_archflag=$flag; break]) done test "x$ax_cv_gcc_archflag" = xunknown || break done fi fi # $GCC=yes ]) AC_MSG_CHECKING([for gcc architecture flag]) AC_MSG_RESULT($ax_cv_gcc_archflag) if test "x$ax_cv_gcc_archflag" = xunknown; then m4_default([$3],:) else m4_default([$2], [CFLAGS="$CFLAGS $ax_cv_gcc_archflag"]) fi ]) cloog-parma-0.16.1/cloog-core/m4/ltoptions.m40000644000175000017500000002725611470010463015577 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) cloog-parma-0.16.1/cloog-core/m4/ax_submodule.m40000644000175000017500000000316011321074700016216 00000000000000AC_DEFUN([AX_SUBMODULE], [ AC_ARG_WITH($1, [AS_HELP_STRING([--with-$1=$2], [Which $1 to use])]) case "system" in $2) AC_ARG_WITH($1_prefix, [AS_HELP_STRING([--with-$1-prefix=DIR], [Prefix of $1 installation])]) AC_ARG_WITH($1_exec_prefix, [AS_HELP_STRING([--with-$1-exec-prefix=DIR], [Exec prefix of $1 installation])]) esac case "build" in $2) AC_ARG_WITH($1_builddir, [AS_HELP_STRING([--with-$1-builddir=DIR], [Location of $1 builddir])]) esac if test "x$with_$1_prefix" != "x" -a "x$with_$1_exec_prefix" = "x"; then with_$1_exec_prefix=$with_$1_prefix fi if test "x$with_$1_prefix" != "x" -o "x$with_$1_exec_prefix" != "x"; then if test "x$with_$1" != "x" -a "x$with_$1" != "xsystem"; then AC_MSG_ERROR([Setting $with_$1_prefix implies use of system $1]) fi with_$1="system" fi if test "x$with_$1_builddir" != "x"; then if test "x$with_$1" != "x" -a "x$with_$1" != "xbuild"; then AC_MSG_ERROR([Setting $with_$1_builddir implies use of build $1]) fi with_$1="build" $1_srcdir=`echo @abs_srcdir@ | $with_$1_builddir/config.status --file=-` AC_MSG_NOTICE($1 sources in $$1_srcdir) fi case "$with_$1" in $2) ;; *) if test -d $srcdir/.git -a \ -d $srcdir/$1 -a \ ! -d $srcdir/$1/.git; then AC_MSG_WARN( [git repo detected, but submodule $1 not initialized]) AC_MSG_WARN([You may want to run]) AC_MSG_WARN([ git submodule init]) AC_MSG_WARN([ git submodule update]) AC_MSG_WARN([ sh autogen.sh]) fi if test -f $srcdir/$1/configure -a "$3" != "no"; then with_$1="bundled" else with_$1="$3" fi ;; esac AC_MSG_CHECKING([which $1 to use]) AC_MSG_RESULT($with_$1) ]) cloog-parma-0.16.1/cloog-core/m4/ax_gcc_x86_cpuid.m40000644000175000017500000000634311321074700016652 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_gcc_x86_cpuid.html # =========================================================================== # # SYNOPSIS # # AX_GCC_X86_CPUID(OP) # # DESCRIPTION # # On Pentium and later x86 processors, with gcc or a compiler that has a # compatible syntax for inline assembly instructions, run a small program # that executes the cpuid instruction with input OP. This can be used to # detect the CPU type. # # On output, the values of the eax, ebx, ecx, and edx registers are stored # as hexadecimal strings as "eax:ebx:ecx:edx" in the cache variable # ax_cv_gcc_x86_cpuid_OP. # # If the cpuid instruction fails (because you are running a # cross-compiler, or because you are not using gcc, or because you are on # a processor that doesn't have this instruction), ax_cv_gcc_x86_cpuid_OP # is set to the string "unknown". # # This macro mainly exists to be used in AX_GCC_ARCHFLAG. # # LICENSE # # Copyright (c) 2008 Steven G. Johnson # Copyright (c) 2008 Matteo Frigo # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_GCC_X86_CPUID], [AC_REQUIRE([AC_PROG_CC]) AC_LANG_PUSH([C]) AC_CACHE_CHECK(for x86 cpuid $1 output, ax_cv_gcc_x86_cpuid_$1, [AC_RUN_IFELSE([AC_LANG_PROGRAM([#include ], [ int op = $1, eax, ebx, ecx, edx; FILE *f; __asm__("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (op)); f = fopen("conftest_cpuid", "w"); if (!f) return 1; fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx); fclose(f); return 0; ])], [ax_cv_gcc_x86_cpuid_$1=`cat conftest_cpuid`; rm -f conftest_cpuid], [ax_cv_gcc_x86_cpuid_$1=unknown; rm -f conftest_cpuid], [ax_cv_gcc_x86_cpuid_$1=unknown])]) AC_LANG_POP([C]) ]) cloog-parma-0.16.1/cloog-core/genversion.sh.in0000755000175000017500000000054011321074700016067 00000000000000#! /bin/sh srcdir=@abs_srcdir@ PACKAGE=@PACKAGE@ VERSION=@VERSION@ if test -f $srcdir/.git/HEAD; then GIT_REPO="$srcdir/.git" GIT_HEAD_ID=`GIT_DIR=$GIT_REPO git describe` elif test -f $srcdir/CLOOG_HEAD; then GIT_HEAD_ID=`cat $srcdir/CLOOG_HEAD` else GIT_HEAD_ID="$PACKAGE-$VERSION-UNKNOWN" fi echo $GIT_HEAD_ID | sed -e 's/cloog-//' cloog-parma-0.16.1/cloog-core/aclocal.m40000644000175000017500000010437111511607562014624 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],, [m4_warning([this file was generated for autoconf 2.65. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/ax_cc_maxopt.m4]) m4_include([m4/ax_cflags_warn_all.m4]) m4_include([m4/ax_check_compiler_flags.m4]) m4_include([m4/ax_compiler_vendor.m4]) m4_include([m4/ax_create_pkgconfig_info.m4]) m4_include([m4/ax_gcc_archflag.m4]) m4_include([m4/ax_gcc_x86_cpuid.m4]) m4_include([m4/ax_submodule.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) cloog-parma-0.16.1/cloog-core/autoconf/0000755000175000017500000000000011511607625014654 500000000000000cloog-parma-0.16.1/cloog-core/autoconf/config.sub0000755000175000017500000010115311321074715016555 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: cloog-parma-0.16.1/cloog-core/autoconf/depcomp0000755000175000017500000004271311321074715016155 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2007-03-29.01 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software # Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: cloog-parma-0.16.1/cloog-core/autoconf/config.guess0000755000175000017500000012753411321074715017125 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: cloog-parma-0.16.1/cloog-core/autoconf/Doxyfile.in0000644000175000017500000012747311321074700016714 00000000000000# Doxyfile 1.3.5 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = CLooG # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = @RELEASE@ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = doc/source # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, # Finnish, French, German, Greek, Hungarian, Italian, Japanese, Japanese-en # (Japanese with English messages), Korean, Norwegian, Polish, Portuguese, # Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. OUTPUT_LANGUAGE = English # This tag can be used to specify the encoding used in the generated output. # The encoding is not always determined by the language that is chosen, # but also whether or not the output is meant for Windows or non-Windows users. # In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES # forces the Windows encoding (this is the default for the Windows binary), # whereas setting the tag to NO uses a Unix-style encoding (the default for # all platforms other than Windows). USE_WINDOWS_ENCODING = NO # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is used # as the annotated text. Otherwise, the brief description is used as-is. If left # blank, the following values are used ("$name" is automatically replaced with the # name of the entity): "The $name class" "The $name widget" "The $name file" # "is" "provides" "specifies" "contains" "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = YES # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited # members of a class in the documentation of that class as if those members were # ordinary class members. Constructors, destructors and assignment operators of # the base classes will not be shown. INLINE_INHERITED_MEMB = YES # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. It is allowed to use relative paths in the argument list. STRIP_FROM_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like the Qt-style comments (thus requiring an # explicit @brief command for a brief description. JAVADOC_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources # only. Doxygen will then generate output that is more tailored for Java. # For instance, namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = YES # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = YES # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = YES # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #WARN_LOGFILE = doc/doxygen.log #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = source \ include/cloog # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp # *.h++ *.idl *.odl *.cs *.php *.php3 *.inc FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories # that are symbolic links (a Unix filesystem feature) are excluded from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. EXCLUDE_PATTERNS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. INPUT_FILTER = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES (the default) # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = YES # If the REFERENCES_RELATION tag is set to YES (the default) # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = YES # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compressed HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # If the GENERATE_TREEVIEW tag is set to YES, a side panel will be # generated containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = NO # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = YES # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_PREDEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse the # parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::addtions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or # super classes. Setting the tag to NO turns the diagrams off. Note that this # option is superseded by the HAVE_DOT option below. This is only a fallback. It is # recommended to install and use dot, since it yields more powerful graphs. CLASS_DIAGRAMS = YES # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = YES # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will # generate a call dependency graph for every global function or class method. # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected # functions only using the \callgraph command. CALL_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found on the path. DOT_PATH = /usr/bin/ # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). # DOTFILE_DIRS = src # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_WIDTH = 1024 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height # (in pixels) of the graphs generated by dot. If a graph becomes larger than # this value, doxygen will try to truncate the graph, so that it fits within # the specified constraint. Beware that most browsers cannot cope with very # large images. MAX_DOT_GRAPH_HEIGHT = 1024 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes that # lay further from the root node will be omitted. Note that setting this option to # 1 or 2 may greatly reduce the computation time needed for large code bases. Also # note that a graph may be further truncated if the graph's image dimensions are # not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT). # If 0 is used for the depth value (the default), the graph is not depth-constrained. MAX_DOT_GRAPH_DEPTH = 0 # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::addtions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO cloog-parma-0.16.1/cloog-core/autoconf/ltmain.sh0000755000175000017500000075634211470010463016430 00000000000000# Generated from ltmain.m4sh. # libtool (GNU libtool) 2.2.8 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.8 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=libtool PACKAGE=libtool VERSION=2.2.8 TIMESTAMP="" package_revision=1.3169 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${EGREP="grep -E"} : ${FGREP="grep -F"} : ${GREP="grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # Generated shell functions inserted here. # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/(C)/!b go :more /\./!{ N s/\n# // b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1." exit_cmd=exit } exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. # $mode is unset nonopt= execute_dlfiles= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 opt_dry_run=false opt_duplicate_deps=false opt_silent=false opt_debug=: # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: opt_verbose=false ;; --no-quiet|--no-silent) preserve_args="$preserve_args $opt" opt_silent=false ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false opt_verbose=: ;; --no-verbose) preserve_args="$preserve_args $opt" opt_verbose=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --help-all) opt_help=': help-all' ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi install_shared_prog="$install_shared_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) echo >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac echo >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1"; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_result=`cygpath -w "$1" | $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" | $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result= fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1"; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_pathlist_tmp1=$func_stripname_result case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. func_to_host_pathlist_result=` ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" | $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_append func_to_host_pathlist_result ";$func_to_host_path_result" fi fi fi done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result"; then func_error "Could not determine the host path(s) corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_append func_to_host_pathlist_result ";" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done echo ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 cloog-parma-0.16.1/cloog-core/autoconf/missing0000755000175000017500000002557711321074715016210 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2006-05-10.23 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case $1 in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $1 in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: cloog-parma-0.16.1/cloog-core/autoconf/install-sh0000755000175000017500000003246411321074715016606 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2006-12-25.00 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: cloog-parma-0.16.1/Makefile.in0000644000175000017500000017303711511607554013006 00000000000000# Makefile.in generated by automake 1.11.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = cloog$(EXEEXT) subdir = . DIST_COMMON = $(am__configure_deps) $(cloogpplinclude_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/configure autoconf/config.guess \ autoconf/config.sub autoconf/depcomp autoconf/install-sh \ autoconf/ltmain.sh autoconf/missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_cflags_warn_all.m4 \ $(top_srcdir)/m4/ax_check_compiler_flags.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/ax_gcc_archflag.m4 \ $(top_srcdir)/m4/ax_gcc_x86_cpuid.m4 \ $(top_srcdir)/m4/ax_submodule.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(cloogpplincludedir)" \ "$(DESTDIR)$(cloogincludedir)" \ "$(DESTDIR)$(cloogmatrixincludedir)" LTLIBRARIES = $(lib_LTLIBRARIES) libcloog_ppl_la_DEPENDENCIES = am_libcloog_ppl_la_OBJECTS = libcloog_ppl_la-domain.lo \ libcloog_ppl_la-backend.lo @NEED_GET_MEMORY_FUNCTIONS_TRUE@am__objects_1 = libcloog_ppl_la-mp_get_memory_functions.lo am__objects_2 = $(am__objects_1) libcloog_ppl_la-block.lo \ libcloog_ppl_la-clast.lo libcloog_ppl_la-matrix.lo \ libcloog_ppl_la-state.lo libcloog_ppl_la-input.lo \ libcloog_ppl_la-int.lo libcloog_ppl_la-loop.lo \ libcloog_ppl_la-names.lo libcloog_ppl_la-options.lo \ libcloog_ppl_la-pprint.lo libcloog_ppl_la-program.lo \ libcloog_ppl_la-statement.lo libcloog_ppl_la-stride.lo \ libcloog_ppl_la-union_domain.lo \ libcloog_ppl_la-constraintset.lo libcloog_ppl_la-version.lo nodist_libcloog_ppl_la_OBJECTS = $(am__objects_2) libcloog_ppl_la_OBJECTS = $(am_libcloog_ppl_la_OBJECTS) \ $(nodist_libcloog_ppl_la_OBJECTS) libcloog_ppl_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libcloog_ppl_la_LDFLAGS) $(LDFLAGS) -o $@ PROGRAMS = $(bin_PROGRAMS) nodist_cloog_OBJECTS = cloog-cloog.$(OBJEXT) cloog_OBJECTS = $(nodist_cloog_OBJECTS) cloog_LDADD = $(LDADD) depcomp = $(SHELL) $(top_srcdir)/autoconf/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(LDFLAGS) -o $@ SOURCES = $(libcloog_ppl_la_SOURCES) $(nodist_libcloog_ppl_la_SOURCES) \ $(nodist_cloog_SOURCES) DIST_SOURCES = $(libcloog_ppl_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive HEADERS = $(cloogpplinclude_HEADERS) $(nodist_clooginclude_HEADERS) \ $(nodist_cloogmatrixinclude_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d "$(distdir)" \ || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr "$(distdir)"; }; } am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITS = @BITS@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CD = @CD@ CFLAGS = @CFLAGS@ CFLAGS_WARN = @CFLAGS_WARN@ CLOOG_BUILDDIR = @CLOOG_BUILDDIR@ CLOOG_CPPFLAGS = @CLOOG_CPPFLAGS@ CLOOG_SRCDIR = @CLOOG_SRCDIR@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PPL_CPPFLAGS = @PPL_CPPFLAGS@ PPL_LDFLAGS = @PPL_LDFLAGS@ PPL_LIBS = @PPL_LIBS@ PRTDIAG = @PRTDIAG@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ versioninfo = @versioninfo@ cloog_srcdir = @CLOOG_SRCDIR@ cloog_builddir = @CLOOG_BUILDDIR@ @BUNDLED_CLOOG_TRUE@MAYBE_CLOOG = cloog-core SUBDIRS = . test DIST_SUBDIRS = $(MAYBE_CLOOG) . test ACLOCAL_AMFLAGS = -I m4 lib_LTLIBRARIES = libcloog-ppl.la @NEED_GET_MEMORY_FUNCTIONS_TRUE@GET_MEMORY_FUNCTIONS = $(cloog_srcdir)/source/mp_get_memory_functions.c SOURCES_CORE = \ $(GET_MEMORY_FUNCTIONS) \ $(cloog_srcdir)/source/block.c \ $(cloog_srcdir)/source/clast.c \ $(cloog_srcdir)/source/matrix.c \ $(cloog_srcdir)/source/state.c \ $(cloog_srcdir)/source/input.c \ $(cloog_srcdir)/source/int.c \ $(cloog_srcdir)/source/loop.c \ $(cloog_srcdir)/source/names.c \ $(cloog_srcdir)/source/options.c \ $(cloog_srcdir)/source/pprint.c \ $(cloog_srcdir)/source/program.c \ $(cloog_srcdir)/source/statement.c \ $(cloog_srcdir)/source/stride.c \ $(cloog_srcdir)/source/union_domain.c \ $(cloog_srcdir)/source/matrix/constraintset.c \ $(cloog_builddir)/source/version.c \ $(cloog_builddir)/version.h DEFAULT_INCLUDES = -I. INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include AM_CFLAGS = $(CFLAGS_WARN) libcloog_ppl_la_CPPFLAGS = @CLOOG_CPPFLAGS@ @PPL_CPPFLAGS@ libcloog_ppl_la_LDFLAGS = -version-info @versioninfo@ \ -rpath $(libdir) @PPL_LDFLAGS@ libcloog_ppl_la_LIBADD = @PPL_LIBS@ nodist_libcloog_ppl_la_SOURCES = $(SOURCES_CORE) libcloog_ppl_la_SOURCES = \ source/domain.c \ source/backend.c LDADD = libcloog-ppl.la cloog_CPPFLAGS = @CLOOG_CPPFLAGS@ cloog_DEPENDENCIES = libcloog-ppl.la nodist_cloog_SOURCES = $(cloog_srcdir)/source/cloog.c cloogincludedir = $(includedir)/cloog nodist_clooginclude_HEADERS = \ $(cloog_srcdir)/include/cloog/block.h \ $(cloog_srcdir)/include/cloog/clast.h \ $(cloog_srcdir)/include/cloog/cloog.h \ $(cloog_srcdir)/include/cloog/input.h \ $(cloog_srcdir)/include/cloog/int.h \ $(cloog_srcdir)/include/cloog/matrix.h \ $(cloog_srcdir)/include/cloog/state.h \ $(cloog_srcdir)/include/cloog/domain.h \ $(cloog_srcdir)/include/cloog/loop.h \ $(cloog_srcdir)/include/cloog/constraints.h \ $(cloog_srcdir)/include/cloog/names.h \ $(cloog_srcdir)/include/cloog/options.h \ $(cloog_srcdir)/include/cloog/pprint.h \ $(cloog_srcdir)/include/cloog/program.h \ $(cloog_srcdir)/include/cloog/statement.h \ $(cloog_srcdir)/include/cloog/stride.h \ $(cloog_srcdir)/include/cloog/union_domain.h \ $(cloog_builddir)/include/cloog/version.h cloogmatrixincludedir = $(cloogincludedir)/matrix nodist_cloogmatrixinclude_HEADERS = \ $(cloog_srcdir)/include/cloog/matrix/constraintset.h cloogpplincludedir = $(cloogincludedir)/ppl cloogpplinclude_HEADERS = \ include/cloog/ppl/backend.h \ include/cloog/ppl/cloog.h \ include/cloog/ppl/domain.h all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libcloog-ppl.la: $(libcloog_ppl_la_OBJECTS) $(libcloog_ppl_la_DEPENDENCIES) $(libcloog_ppl_la_LINK) -rpath $(libdir) $(libcloog_ppl_la_OBJECTS) $(libcloog_ppl_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list cloog$(EXEEXT): $(cloog_OBJECTS) $(cloog_DEPENDENCIES) @rm -f cloog$(EXEEXT) $(LINK) $(cloog_OBJECTS) $(cloog_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cloog-cloog.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-backend.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-block.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-clast.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-constraintset.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-domain.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-input.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-int.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-loop.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-matrix.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-mp_get_memory_functions.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-names.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-options.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-pprint.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-program.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-state.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-statement.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-stride.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-union_domain.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcloog_ppl_la-version.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< libcloog_ppl_la-domain.lo: source/domain.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-domain.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-domain.Tpo -c -o libcloog_ppl_la-domain.lo `test -f 'source/domain.c' || echo '$(srcdir)/'`source/domain.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-domain.Tpo $(DEPDIR)/libcloog_ppl_la-domain.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/domain.c' object='libcloog_ppl_la-domain.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-domain.lo `test -f 'source/domain.c' || echo '$(srcdir)/'`source/domain.c libcloog_ppl_la-backend.lo: source/backend.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-backend.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-backend.Tpo -c -o libcloog_ppl_la-backend.lo `test -f 'source/backend.c' || echo '$(srcdir)/'`source/backend.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-backend.Tpo $(DEPDIR)/libcloog_ppl_la-backend.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='source/backend.c' object='libcloog_ppl_la-backend.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-backend.lo `test -f 'source/backend.c' || echo '$(srcdir)/'`source/backend.c libcloog_ppl_la-mp_get_memory_functions.lo: $(cloog_srcdir)/source/mp_get_memory_functions.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-mp_get_memory_functions.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-mp_get_memory_functions.Tpo -c -o libcloog_ppl_la-mp_get_memory_functions.lo `test -f '$(cloog_srcdir)/source/mp_get_memory_functions.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/mp_get_memory_functions.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-mp_get_memory_functions.Tpo $(DEPDIR)/libcloog_ppl_la-mp_get_memory_functions.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/mp_get_memory_functions.c' object='libcloog_ppl_la-mp_get_memory_functions.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-mp_get_memory_functions.lo `test -f '$(cloog_srcdir)/source/mp_get_memory_functions.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/mp_get_memory_functions.c libcloog_ppl_la-block.lo: $(cloog_srcdir)/source/block.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-block.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-block.Tpo -c -o libcloog_ppl_la-block.lo `test -f '$(cloog_srcdir)/source/block.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/block.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-block.Tpo $(DEPDIR)/libcloog_ppl_la-block.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/block.c' object='libcloog_ppl_la-block.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-block.lo `test -f '$(cloog_srcdir)/source/block.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/block.c libcloog_ppl_la-clast.lo: $(cloog_srcdir)/source/clast.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-clast.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-clast.Tpo -c -o libcloog_ppl_la-clast.lo `test -f '$(cloog_srcdir)/source/clast.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/clast.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-clast.Tpo $(DEPDIR)/libcloog_ppl_la-clast.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/clast.c' object='libcloog_ppl_la-clast.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-clast.lo `test -f '$(cloog_srcdir)/source/clast.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/clast.c libcloog_ppl_la-matrix.lo: $(cloog_srcdir)/source/matrix.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-matrix.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-matrix.Tpo -c -o libcloog_ppl_la-matrix.lo `test -f '$(cloog_srcdir)/source/matrix.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/matrix.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-matrix.Tpo $(DEPDIR)/libcloog_ppl_la-matrix.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/matrix.c' object='libcloog_ppl_la-matrix.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-matrix.lo `test -f '$(cloog_srcdir)/source/matrix.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/matrix.c libcloog_ppl_la-state.lo: $(cloog_srcdir)/source/state.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-state.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-state.Tpo -c -o libcloog_ppl_la-state.lo `test -f '$(cloog_srcdir)/source/state.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/state.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-state.Tpo $(DEPDIR)/libcloog_ppl_la-state.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/state.c' object='libcloog_ppl_la-state.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-state.lo `test -f '$(cloog_srcdir)/source/state.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/state.c libcloog_ppl_la-input.lo: $(cloog_srcdir)/source/input.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-input.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-input.Tpo -c -o libcloog_ppl_la-input.lo `test -f '$(cloog_srcdir)/source/input.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/input.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-input.Tpo $(DEPDIR)/libcloog_ppl_la-input.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/input.c' object='libcloog_ppl_la-input.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-input.lo `test -f '$(cloog_srcdir)/source/input.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/input.c libcloog_ppl_la-int.lo: $(cloog_srcdir)/source/int.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-int.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-int.Tpo -c -o libcloog_ppl_la-int.lo `test -f '$(cloog_srcdir)/source/int.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/int.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-int.Tpo $(DEPDIR)/libcloog_ppl_la-int.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/int.c' object='libcloog_ppl_la-int.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-int.lo `test -f '$(cloog_srcdir)/source/int.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/int.c libcloog_ppl_la-loop.lo: $(cloog_srcdir)/source/loop.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-loop.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-loop.Tpo -c -o libcloog_ppl_la-loop.lo `test -f '$(cloog_srcdir)/source/loop.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/loop.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-loop.Tpo $(DEPDIR)/libcloog_ppl_la-loop.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/loop.c' object='libcloog_ppl_la-loop.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-loop.lo `test -f '$(cloog_srcdir)/source/loop.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/loop.c libcloog_ppl_la-names.lo: $(cloog_srcdir)/source/names.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-names.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-names.Tpo -c -o libcloog_ppl_la-names.lo `test -f '$(cloog_srcdir)/source/names.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/names.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-names.Tpo $(DEPDIR)/libcloog_ppl_la-names.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/names.c' object='libcloog_ppl_la-names.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-names.lo `test -f '$(cloog_srcdir)/source/names.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/names.c libcloog_ppl_la-options.lo: $(cloog_srcdir)/source/options.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-options.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-options.Tpo -c -o libcloog_ppl_la-options.lo `test -f '$(cloog_srcdir)/source/options.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/options.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-options.Tpo $(DEPDIR)/libcloog_ppl_la-options.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/options.c' object='libcloog_ppl_la-options.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-options.lo `test -f '$(cloog_srcdir)/source/options.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/options.c libcloog_ppl_la-pprint.lo: $(cloog_srcdir)/source/pprint.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-pprint.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-pprint.Tpo -c -o libcloog_ppl_la-pprint.lo `test -f '$(cloog_srcdir)/source/pprint.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/pprint.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-pprint.Tpo $(DEPDIR)/libcloog_ppl_la-pprint.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/pprint.c' object='libcloog_ppl_la-pprint.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-pprint.lo `test -f '$(cloog_srcdir)/source/pprint.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/pprint.c libcloog_ppl_la-program.lo: $(cloog_srcdir)/source/program.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-program.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-program.Tpo -c -o libcloog_ppl_la-program.lo `test -f '$(cloog_srcdir)/source/program.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/program.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-program.Tpo $(DEPDIR)/libcloog_ppl_la-program.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/program.c' object='libcloog_ppl_la-program.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-program.lo `test -f '$(cloog_srcdir)/source/program.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/program.c libcloog_ppl_la-statement.lo: $(cloog_srcdir)/source/statement.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-statement.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-statement.Tpo -c -o libcloog_ppl_la-statement.lo `test -f '$(cloog_srcdir)/source/statement.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/statement.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-statement.Tpo $(DEPDIR)/libcloog_ppl_la-statement.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/statement.c' object='libcloog_ppl_la-statement.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-statement.lo `test -f '$(cloog_srcdir)/source/statement.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/statement.c libcloog_ppl_la-stride.lo: $(cloog_srcdir)/source/stride.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-stride.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-stride.Tpo -c -o libcloog_ppl_la-stride.lo `test -f '$(cloog_srcdir)/source/stride.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/stride.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-stride.Tpo $(DEPDIR)/libcloog_ppl_la-stride.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/stride.c' object='libcloog_ppl_la-stride.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-stride.lo `test -f '$(cloog_srcdir)/source/stride.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/stride.c libcloog_ppl_la-union_domain.lo: $(cloog_srcdir)/source/union_domain.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-union_domain.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-union_domain.Tpo -c -o libcloog_ppl_la-union_domain.lo `test -f '$(cloog_srcdir)/source/union_domain.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/union_domain.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-union_domain.Tpo $(DEPDIR)/libcloog_ppl_la-union_domain.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/union_domain.c' object='libcloog_ppl_la-union_domain.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-union_domain.lo `test -f '$(cloog_srcdir)/source/union_domain.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/union_domain.c libcloog_ppl_la-constraintset.lo: $(cloog_srcdir)/source/matrix/constraintset.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-constraintset.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-constraintset.Tpo -c -o libcloog_ppl_la-constraintset.lo `test -f '$(cloog_srcdir)/source/matrix/constraintset.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/matrix/constraintset.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-constraintset.Tpo $(DEPDIR)/libcloog_ppl_la-constraintset.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/matrix/constraintset.c' object='libcloog_ppl_la-constraintset.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-constraintset.lo `test -f '$(cloog_srcdir)/source/matrix/constraintset.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/matrix/constraintset.c libcloog_ppl_la-version.lo: $(cloog_builddir)/source/version.c @am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libcloog_ppl_la-version.lo -MD -MP -MF $(DEPDIR)/libcloog_ppl_la-version.Tpo -c -o libcloog_ppl_la-version.lo `test -f '$(cloog_builddir)/source/version.c' || echo '$(srcdir)/'`$(cloog_builddir)/source/version.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libcloog_ppl_la-version.Tpo $(DEPDIR)/libcloog_ppl_la-version.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_builddir)/source/version.c' object='libcloog_ppl_la-version.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcloog_ppl_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libcloog_ppl_la-version.lo `test -f '$(cloog_builddir)/source/version.c' || echo '$(srcdir)/'`$(cloog_builddir)/source/version.c cloog-cloog.o: $(cloog_srcdir)/source/cloog.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cloog_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cloog-cloog.o -MD -MP -MF $(DEPDIR)/cloog-cloog.Tpo -c -o cloog-cloog.o `test -f '$(cloog_srcdir)/source/cloog.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/cloog.c @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cloog-cloog.Tpo $(DEPDIR)/cloog-cloog.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/cloog.c' object='cloog-cloog.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cloog_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cloog-cloog.o `test -f '$(cloog_srcdir)/source/cloog.c' || echo '$(srcdir)/'`$(cloog_srcdir)/source/cloog.c cloog-cloog.obj: $(cloog_srcdir)/source/cloog.c @am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cloog_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT cloog-cloog.obj -MD -MP -MF $(DEPDIR)/cloog-cloog.Tpo -c -o cloog-cloog.obj `if test -f '$(cloog_srcdir)/source/cloog.c'; then $(CYGPATH_W) '$(cloog_srcdir)/source/cloog.c'; else $(CYGPATH_W) '$(srcdir)/$(cloog_srcdir)/source/cloog.c'; fi` @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/cloog-cloog.Tpo $(DEPDIR)/cloog-cloog.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(cloog_srcdir)/source/cloog.c' object='cloog-cloog.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(cloog_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o cloog-cloog.obj `if test -f '$(cloog_srcdir)/source/cloog.c'; then $(CYGPATH_W) '$(cloog_srcdir)/source/cloog.c'; else $(CYGPATH_W) '$(srcdir)/$(cloog_srcdir)/source/cloog.c'; fi` mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-cloogpplincludeHEADERS: $(cloogpplinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(cloogpplincludedir)" || $(MKDIR_P) "$(DESTDIR)$(cloogpplincludedir)" @list='$(cloogpplinclude_HEADERS)'; test -n "$(cloogpplincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(cloogpplincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(cloogpplincludedir)" || exit $$?; \ done uninstall-cloogpplincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(cloogpplinclude_HEADERS)'; test -n "$(cloogpplincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(cloogpplincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(cloogpplincludedir)" && rm -f $$files install-nodist_cloogincludeHEADERS: $(nodist_clooginclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(cloogincludedir)" || $(MKDIR_P) "$(DESTDIR)$(cloogincludedir)" @list='$(nodist_clooginclude_HEADERS)'; test -n "$(cloogincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(cloogincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(cloogincludedir)" || exit $$?; \ done uninstall-nodist_cloogincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nodist_clooginclude_HEADERS)'; test -n "$(cloogincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(cloogincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(cloogincludedir)" && rm -f $$files install-nodist_cloogmatrixincludeHEADERS: $(nodist_cloogmatrixinclude_HEADERS) @$(NORMAL_INSTALL) test -z "$(cloogmatrixincludedir)" || $(MKDIR_P) "$(DESTDIR)$(cloogmatrixincludedir)" @list='$(nodist_cloogmatrixinclude_HEADERS)'; test -n "$(cloogmatrixincludedir)" || list=; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(cloogmatrixincludedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(cloogmatrixincludedir)" || exit $$?; \ done uninstall-nodist_cloogmatrixincludeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nodist_cloogmatrixinclude_HEADERS)'; test -n "$(cloogmatrixincludedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ test -n "$$files" || exit 0; \ echo " ( cd '$(DESTDIR)$(cloogmatrixincludedir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(cloogmatrixincludedir)" && rm -f $$files # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @$(am__cd) '$(distuninstallcheck_dir)' \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(cloogpplincludedir)" "$(DESTDIR)$(cloogincludedir)" "$(DESTDIR)$(cloogmatrixincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-cloogpplincludeHEADERS install-data-local \ install-nodist_cloogincludeHEADERS \ install-nodist_cloogmatrixincludeHEADERS install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-cloogpplincludeHEADERS \ uninstall-libLTLIBRARIES uninstall-local \ uninstall-nodist_cloogincludeHEADERS \ uninstall-nodist_cloogmatrixincludeHEADERS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-binPROGRAMS \ clean-generic clean-libLTLIBRARIES clean-libtool ctags \ ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-lzma \ dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distcleancheck distdir distuninstallcheck dvi \ dvi-am html html-am info info-am install install-am \ install-binPROGRAMS install-cloogpplincludeHEADERS \ install-data install-data-am install-data-local install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man \ install-nodist_cloogincludeHEADERS \ install-nodist_cloogmatrixincludeHEADERS install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-cloogpplincludeHEADERS \ uninstall-libLTLIBRARIES uninstall-local \ uninstall-nodist_cloogincludeHEADERS \ uninstall-nodist_cloogmatrixincludeHEADERS FORCE: cloog-core/source/version.c: FORCE cd cloog-core; $(MAKE) $(AM_MAKEFLAGS) source/version.c cloog-core/version.h: FORCE cd cloog-core; $(MAKE) $(AM_MAKEFLAGS) version.h cloog-core/include/cloog/version.h: FORCE cd cloog-core; $(MAKE) $(AM_MAKEFLAGS) include/cloog/version.h check: $(MAKE) test -C test install-data-local: @test -z "$(pkgconfig_libdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfig_libdir)" $(INSTALL_DATA) $(pkgconfig_libfile) "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)" uninstall-local: rm -f "$(DESTDIR)$(pkgconfig_libdir)/$(pkgconfig_libfile)" # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: cloog-parma-0.16.1/m4/0000755000175000017500000000000011511607624011324 500000000000000cloog-parma-0.16.1/m4/ax_cflags_warn_all.m40000644000175000017500000001420411321074377015317 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_cflags_warn_all.html # =========================================================================== # # SYNOPSIS # # AX_CFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])] # # DESCRIPTION # # Try to find a compiler option that enables most reasonable warnings. # # For the GNU CC compiler it will be -Wall (and -ansi -pedantic) The # result is added to the shellvar being CFLAGS by default. # # Currently this macro knows about GCC, Solaris C compiler, Digital Unix C # compiler, C for AIX Compiler, HP-UX C compiler, IRIX C compiler, NEC # SX-5 (Super-UX 10) C compiler, and Cray J90 (Unicos 10.0.0.8) C # compiler. # # - $1 shell-variable-to-add-to : CFLAGS # - $2 add-value-if-not-found : nothing # - $3 action-if-found : add value to shellvariable # - $4 action-if-not-found : nothing # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_CFLAGS_WARN_ALL],[dnl AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_warn_all])dnl AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_C ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-pedantic % -Wall" dnl GCC "-xstrconst % -v" dnl Solaris C "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX "-ansi -ansiE % -fullwarn" dnl IRIX "+ESlit % +w1" dnl HP-UX C "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10) "-h conform % -h msglevel 2" dnl Cray C (Unicos) # do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` AC_TRY_COMPILE([],[return 0;], [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) done FLAGS="$ac_save_[]FLAGS" AC_LANG_RESTORE ]) case ".$VAR" in .ok|.ok,*) m4_ifvaln($3,$3) ;; .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"]) m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; *) m4_ifvaln($3,$3,[ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" fi ]) ;; esac AS_VAR_POPDEF([VAR])dnl AS_VAR_POPDEF([FLAGS])dnl ]) dnl the only difference - the LANG selection... and the default FLAGS AC_DEFUN([AX_CXXFLAGS_WARN_ALL],[dnl AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl AS_VAR_PUSHDEF([VAR],[ax_cv_cxxflags_warn_all])dnl AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings], VAR,[VAR="no, unknown" AC_LANG_SAVE AC_LANG_CPLUSPLUS ac_save_[]FLAGS="$[]FLAGS" for ac_arg dnl in "-pedantic % -Wall" dnl GCC "-xstrconst % -v" dnl Solaris C "-std1 % -verbose -w0 -warnprotos" dnl Digital Unix "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX "-ansi -ansiE % -fullwarn" dnl IRIX "+ESlit % +w1" dnl HP-UX C "-Xc % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10) "-h conform % -h msglevel 2" dnl Cray C (Unicos) # do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'` AC_TRY_COMPILE([],[return 0;], [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break]) done FLAGS="$ac_save_[]FLAGS" AC_LANG_RESTORE ]) case ".$VAR" in .ok|.ok,*) m4_ifvaln($3,$3) ;; .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[ AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"]) m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;; *) m4_ifvaln($3,$3,[ if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR]) else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"]) m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR" fi ]) ;; esac AS_VAR_POPDEF([VAR])dnl AS_VAR_POPDEF([FLAGS])dnl ]) dnl implementation tactics: dnl the for-argument contains a list of options. The first part of dnl these does only exist to detect the compiler - usually it is dnl a global option to enable -ansi or -extrawarnings. All other dnl compilers will fail about it. That was needed since a lot of dnl compilers will give false positives for some option-syntax dnl like -Woption or -Xoption as they think of it is a pass-through dnl to later compile stages or something. The "%" is used as a dnl delimimiter. A non-option comment can be given after "%%" marks dnl which will be shown but not added to the respective C/CXXFLAGS. cloog-parma-0.16.1/m4/ax_compiler_vendor.m40000644000175000017500000000601011321074377015364 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_compiler_vendor.html # =========================================================================== # # SYNOPSIS # # AX_COMPILER_VENDOR # # DESCRIPTION # # Determine the vendor of the C/C++ compiler, e.g., gnu, intel, ibm, sun, # hp, borland, comeau, dec, cray, kai, lcc, metrowerks, sgi, microsoft, # watcom, etc. The vendor is returned in the cache variable # $ax_cv_c_compiler_vendor for C and $ax_cv_cxx_compiler_vendor for C++. # # LICENSE # # Copyright (c) 2008 Steven G. Johnson # Copyright (c) 2008 Matteo Frigo # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_COMPILER_VENDOR], [ AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor, [ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=unknown # note: don't check for gcc first since some other compilers define __GNUC__ for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ pathscale:__PATHCC__,__PATHSCALE__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")" AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[ #if !($vencpp) thisisanerror; #endif ])], [ax_cv_]_AC_LANG_ABBREV[_compiler_vendor=`echo $ventest | cut -d: -f1`; break]) done ]) ]) cloog-parma-0.16.1/m4/ax_check_compiler_flags.m40000644000175000017500000000632311321074377016327 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_check_compiler_flags.html # =========================================================================== # # SYNOPSIS # # AX_CHECK_COMPILER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE]) # # DESCRIPTION # # Check whether the given compiler FLAGS work with the current language's # compiler, or whether they give an error. (Warnings, however, are # ignored.) # # ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on # success/failure. # # LICENSE # # Copyright (c) 2009 Steven G. Johnson # Copyright (c) 2009 Matteo Frigo # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_CHECK_COMPILER_FLAGS], [AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX AC_MSG_CHECKING([whether _AC_LANG compiler accepts $1]) dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname: AS_LITERAL_IF([$1], [AC_CACHE_VAL(AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1]), [ ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS _AC_LANG_PREFIX[]FLAGS="$1" AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=yes, AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=no) _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])], [ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS _AC_LANG_PREFIX[]FLAGS="$1" AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=yes, eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1])=no) _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS]) eval ax_check_compiler_flags=$AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_[$1]) AC_MSG_RESULT($ax_check_compiler_flags) if test "x$ax_check_compiler_flags" = xyes; then m4_default([$2], :) else m4_default([$3], :) fi ])dnl AX_CHECK_COMPILER_FLAGS cloog-parma-0.16.1/m4/ltsugar.m40000644000175000017500000001042411470010460013156 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) cloog-parma-0.16.1/m4/libtool.m40000644000175000017500000100326011470010460013142 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010 Free Software Foundation, # Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2010 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_XSI_SHELLFNS sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES # -------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX # ----------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`print -r -- -n 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1]) AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) void fnord () __attribute__((visibility("default"))); #endif void fnord () { int i=42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[123]]*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; haiku*) version_type=linux need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method == "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ const struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_save_CFLAGS" else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Xcompiler -fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_MSG_RESULT([$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag= tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_TAGVAR(ld_shlibs, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE(int foo(void) {}, _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' ) LDFLAGS="$save_LDFLAGS" else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_flag_spec_ld], [1], [[If ld is used when linking, flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [fix_srcfile_path], [1], [Fix the shell variable $srcfile for the compiler]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ]) dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p in -L* | -R*) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi ;; *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${F77-"f77"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC CC=${FC-"f95"} compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC="$lt_save_CC" ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC GCC= CC=${RC-"windres"} compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC="$lt_save_CC" ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_XSI_SHELLFNS # --------------------- # Bourne and XSI compatible variants of some useful shell functions. m4_defun([_LT_PROG_XSI_SHELLFNS], [case $xsi_shell in yes) cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac } # func_basename file func_basename () { func_basename_result="${1##*/}" } # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}" } # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). func_stripname () { # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"} } # func_opt_split func_opt_split () { func_opt_split_opt=${1%%=*} func_opt_split_arg=${1#*=} } # func_lo2o object func_lo2o () { case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac } # func_xform libobj-or-source func_xform () { func_xform_result=${1%.*}.lo } # func_arith arithmetic-term... func_arith () { func_arith_result=$(( $[*] )) } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=${#1} } _LT_EOF ;; *) # Bourne compatible functions. cat << \_LT_EOF >> "$cfgfile" # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } dnl func_dirname_and_basename dnl A portable version of this function is already defined in general.m4sh dnl so there is no need for it here. # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # sed scripts: my_sed_long_opt='1s/^\(-[[^=]]*\)=.*/\1/;q' my_sed_long_arg='1s/^-[[^=]]*=//' # func_opt_split func_opt_split () { func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"` func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"` } # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[[^.]]*$/.lo/'` } # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "$[@]"` } # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "$[1]" : ".*" 2>/dev/null || echo $max_cmd_len` } _LT_EOF esac case $lt_shell_append in yes) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]+=\$[2]" } _LT_EOF ;; *) cat << \_LT_EOF >> "$cfgfile" # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "$[1]=\$$[1]\$[2]" } _LT_EOF ;; esac ]) cloog-parma-0.16.1/m4/ltversion.m40000644000175000017500000000127511470010460013526 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # Generated from ltversion.in. # serial 3169 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.2.8]) m4_define([LT_PACKAGE_REVISION], [1.3169]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.2.8' macro_revision='1.3169' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) cloog-parma-0.16.1/m4/ax_create_pkgconfig_info.m40000644000175000017500000003420111323427315016501 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_create_pkgconfig_info.html # =========================================================================== # # SYNOPSIS # # AX_CREATE_PKGCONFIG_INFO [(outputfile, [requires [,libs [,summary [,cflags [, ldflags]]]]])] # # DESCRIPTION # # Defaults: # # $1 = $PACKAGE_NAME.pc # $2 = (empty) # $3 = $PACKAGE_LIBS $LIBS (as set at that point in configure.ac) # $4 = $PACKAGE_SUMMARY (or $1 Library) # $5 = $CPPFLAGS $PACKAGE_CFLAGS (as set at the point in configure.ac) # $6 = $LDFLAGS $PACKAGE_LDFLAGS (as set at the point in configure.ac) # # PACKAGE_NAME defaults to $PACKAGE if not set. # PACKAGE_LIBS defaults to -l$PACKAGE_NAME if not set. # # The resulting file is called $PACKAGE.pc.in / $PACKAGE.pc # # You will find this macro most useful in conjunction with # ax_spec_defaults that can read good initializers from the .spec file. In # consequencd, most of the generatable installable stuff can be made from # information being updated in a single place for the whole project. # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2008 Sven Verdoolaege # # This program is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation; either version 2 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_CREATE_PKGCONFIG_INFO],[dnl AS_VAR_PUSHDEF([PKGCONFIG_suffix],[ax_create_pkgconfig_suffix])dnl AS_VAR_PUSHDEF([PKGCONFIG_libdir],[ax_create_pkgconfig_libdir])dnl AS_VAR_PUSHDEF([PKGCONFIG_libfile],[ax_create_pkgconfig_libfile])dnl AS_VAR_PUSHDEF([PKGCONFIG_libname],[ax_create_pkgconfig_libname])dnl AS_VAR_PUSHDEF([PKGCONFIG_version],[ax_create_pkgconfig_version])dnl AS_VAR_PUSHDEF([PKGCONFIG_description],[ax_create_pkgconfig_description])dnl AS_VAR_PUSHDEF([PKGCONFIG_requires],[ax_create_pkgconfig_requires])dnl AS_VAR_PUSHDEF([PKGCONFIG_pkglibs],[ax_create_pkgconfig_pkglibs])dnl AS_VAR_PUSHDEF([PKGCONFIG_libs],[ax_create_pkgconfig_libs])dnl AS_VAR_PUSHDEF([PKGCONFIG_ldflags],[ax_create_pkgconfig_ldflags])dnl AS_VAR_PUSHDEF([PKGCONFIG_cppflags],[ax_create_pkgconfig_cppflags])dnl AS_VAR_PUSHDEF([PKGCONFIG_generate],[ax_create_pkgconfig_generate])dnl AS_VAR_PUSHDEF([PKGCONFIG_src_libdir],[ax_create_pkgconfig_src_libdir])dnl AS_VAR_PUSHDEF([PKGCONFIG_src_headers],[ax_create_pkgconfig_src_headers])dnl # we need the expanded forms... test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' AC_MSG_CHECKING(our pkgconfig libname) test ".$PKGCONFIG_libname" != "." || \ PKGCONFIG_libname="ifelse($1,,${PACKAGE_NAME},`basename $1 .pc`)" test ".$PKGCONFIG_libname" != "." || \ PKGCONFIG_libname="$PACKAGE" PKGCONFIG_libname=`eval echo "$PKGCONFIG_libname"` PKGCONFIG_libname=`eval echo "$PKGCONFIG_libname"` AC_MSG_RESULT($PKGCONFIG_libname) AC_MSG_CHECKING(our pkgconfig version) test ".$PKGCONFIG_version" != "." || \ PKGCONFIG_version="${PACKAGE_VERSION}" test ".$PKGCONFIG_version" != "." || \ PKGCONFIG_version="$VERSION" PKGCONFIG_version=`eval echo "$PKGCONFIG_version"` PKGCONFIG_version=`eval echo "$PKGCONFIG_version"` AC_MSG_RESULT($PKGCONFIG_version) AC_MSG_CHECKING(our pkgconfig_libdir) test ".$pkgconfig_libdir" = "." && \ pkgconfig_libdir='${libdir}/pkgconfig' PKGCONFIG_libdir=`eval echo "$pkgconfig_libdir"` PKGCONFIG_libdir=`eval echo "$PKGCONFIG_libdir"` PKGCONFIG_libdir=`eval echo "$PKGCONFIG_libdir"` AC_MSG_RESULT($pkgconfig_libdir) test "$pkgconfig_libdir" != "$PKGCONFIG_libdir" && ( AC_MSG_RESULT(expanded our pkgconfig_libdir... $PKGCONFIG_libdir)) AC_SUBST([pkgconfig_libdir]) AC_MSG_CHECKING(our pkgconfig_libfile) test ".$pkgconfig_libfile" != "." || \ pkgconfig_libfile="ifelse($1,,$PKGCONFIG_libname.pc,`basename $1`)" PKGCONFIG_libfile=`eval echo "$pkgconfig_libfile"` PKGCONFIG_libfile=`eval echo "$PKGCONFIG_libfile"` AC_MSG_RESULT($pkgconfig_libfile) test "$pkgconfig_libfile" != "$PKGCONFIG_libfile" && ( AC_MSG_RESULT(expanded our pkgconfig_libfile... $PKGCONFIG_libfile)) AC_SUBST([pkgconfig_libfile]) AC_MSG_CHECKING(our package / suffix) PKGCONFIG_suffix="$program_suffix" test ".$PKGCONFIG_suffix" != .NONE || PKGCONFIG_suffix="" AC_MSG_RESULT(${PACKAGE_NAME} / ${PKGCONFIG_suffix}) AC_MSG_CHECKING(our pkgconfig description) PKGCONFIG_description="ifelse($4,,$PACKAGE_SUMMARY,$4)" test ".$PKGCONFIG_description" != "." || \ PKGCONFIG_description="$PKGCONFIG_libname Library" PKGCONFIG_description=`eval echo "$PKGCONFIG_description"` PKGCONFIG_description=`eval echo "$PKGCONFIG_description"` AC_MSG_RESULT($PKGCONFIG_description) AC_MSG_CHECKING(our pkgconfig requires) PKGCONFIG_requires="ifelse($2,,$PACKAGE_REQUIRES,$2)" PKGCONFIG_requires=`eval echo "$PKGCONFIG_requires"` PKGCONFIG_requires=`eval echo "$PKGCONFIG_requires"` AC_MSG_RESULT($PKGCONFIG_requires) AC_MSG_CHECKING(our pkgconfig ext libs) PKGCONFIG_pkglibs="$PACKAGE_LIBS" test ".$PKGCONFIG_pkglibs" != "." || PKGCONFIG_pkglibs="-l$PKGCONFIG_libname" PKGCONFIG_libs="ifelse($3,,$PKGCONFIG_pkglibs $LIBS,$3)" PKGCONFIG_libs=`eval echo "$PKGCONFIG_libs"` PKGCONFIG_libs=`eval echo "$PKGCONFIG_libs"` AC_MSG_RESULT($PKGCONFIG_libs) AC_MSG_CHECKING(our pkgconfig cppflags) PKGCONFIG_cppflags="ifelse($5,,$CPPFLAGS $PACKAGE_CFLAGS,$5)" PKGCONFIG_cppflags=`eval echo "$PKGCONFIG_cppflags"` PKGCONFIG_cppflags=`eval echo "$PKGCONFIG_cppflags"` AC_MSG_RESULT($PKGCONFIG_cppflags) AC_MSG_CHECKING(our pkgconfig ldflags) PKGCONFIG_ldflags="ifelse($6,,$LDFLAGS $PACKAGE_LDFLAGS,$5)" PKGCONFIG_ldflags=`eval echo "$PKGCONFIG_ldflags"` PKGCONFIG_ldflags=`eval echo "$PKGCONFIG_ldflags"` AC_MSG_RESULT($PKGCONFIG_ldflags) test ".$PKGCONFIG_generate" != "." || \ PKGCONFIG_generate="ifelse($1,,$PKGCONFIG_libname.pc,$1)" PKGCONFIG_generate=`eval echo "$PKGCONFIG_generate"` PKGCONFIG_generate=`eval echo "$PKGCONFIG_generate"` test "$pkgconfig_libfile" != "$PKGCONFIG_generate" && ( AC_MSG_RESULT(generate the pkgconfig later... $PKGCONFIG_generate)) if test ".$PKGCONFIG_src_libdir" = "." ; then PKGCONFIG_src_libdir=`pwd` PKGCONFIG_src_libdir=`AS_DIRNAME("$PKGCONFIG_src_libdir/$PKGCONFIG_generate")` test ! -d $PKGCONFIG_src_libdir/src || \ PKGCONFIG_src_libdir="$PKGCONFIG_src_libdir/src" case ".$objdir" in *libs) PKGCONFIG_src_libdir="$PKGCONFIG_src_libdir/$objdir" ;; esac AC_MSG_RESULT(noninstalled pkgconfig -L $PKGCONFIG_src_libdir) fi if test ".$PKGCONFIG_src_headers" = "." ; then PKGCONFIG_src_headers=`pwd` v="$ac_top_srcdir" ; test ".$v" != "." || v="$ax_spec_dir" test ".$v" != "." || v="$srcdir" case "$v" in /*) PKGCONFIG_src_headers="" ;; esac PKGCONFIG_src_headers=`AS_DIRNAME("$PKGCONFIG_src_headers/$v/x")` test ! -d $PKGCONFIG_src_headers/incl[]ude || \ PKGCONFIG_src_headers="$PKGCONFIG_src_headers/incl[]ude" AC_MSG_RESULT(noninstalled pkgconfig -I $PKGCONFIG_src_headers) fi dnl AC_CONFIG_COMMANDS crap disallows to use $PKGCONFIG_libfile here... AC_CONFIG_COMMANDS([$ax_create_pkgconfig_generate],[ pkgconfig_generate="$ax_create_pkgconfig_generate" if test ! -f "$pkgconfig_generate.in" then generate="true" elif grep ' generated by configure ' $pkgconfig_generate.in >/dev/null then generate="true" else generate="false"; fi if $generate ; then AC_MSG_NOTICE(creating $pkgconfig_generate.in) cat > $pkgconfig_generate.in <conftest.sed < $pkgconfig_generate if test ! -s $pkgconfig_generate ; then AC_MSG_ERROR([$pkgconfig_generate is empty]) fi ; rm conftest.sed # DONE generate $pkgconfig_generate pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.pc/'` AC_MSG_NOTICE(creating $pkgconfig_uninstalled) cat >conftest.sed < $pkgconfig_uninstalled if test ! -s $pkgconfig_uninstalled ; then AC_MSG_ERROR([$pkgconfig_uninstalled is empty]) fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled pkgconfig_requires_add=`echo ${pkgconfig_requires}` if test ".$pkgconfig_requires_add" != "." ; then pkgconfig_requires_add="pkg-config $pkgconfig_requires_add" else pkgconfig_requires_add=":" ; fi pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.sh/'` AC_MSG_NOTICE(creating $pkgconfig_uninstalled) cat >conftest.sed <Name:>for option\\; do case \"\$option\" in --list-all|--name) echo > s>Description: *>\\;\\; --help) pkg-config --help \\; echo Buildscript Of > s>Version: *>\\;\\; --modversion|--version) echo > s>Requires:>\\;\\; --requires) echo $pkgconfig_requires_add> s>Libs: *>\\;\\; --libs) echo > s>Cflags: *>\\;\\; --cflags) echo > /--libs)/a\\ $pkgconfig_requires_add /--cflags)/a\\ $pkgconfig_requires_add\\ ;; --variable=*) eval echo '\$'\`echo \$option | sed -e 's/.*=//'\`\\ ;; --uninstalled) exit 0 \\ ;; *) ;; esac done AXEOF sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled if test ! -s $pkgconfig_uninstalled ; then AC_MSG_ERROR([$pkgconfig_uninstalled is empty]) fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled ],[ dnl AC_CONFIG_COMMANDS crap, the AS_PUSHVAR defines are invalid here... ax_create_pkgconfig_generate="$ax_create_pkgconfig_generate" pkgconfig_prefix='$prefix' pkgconfig_execprefix='$exec_prefix' pkgconfig_bindir='$bindir' pkgconfig_libdir='$libdir' pkgconfig_includedir='$includedir' pkgconfig_datarootdir='$datarootdir' pkgconfig_datadir='$datadir' pkgconfig_sysconfdir='$sysconfdir' pkgconfig_suffix='$ax_create_pkgconfig_suffix' pkgconfig_package='$PACKAGE_NAME' pkgconfig_libname='$ax_create_pkgconfig_libname' pkgconfig_description='$ax_create_pkgconfig_description' pkgconfig_version='$ax_create_pkgconfig_version' pkgconfig_requires='$ax_create_pkgconfig_requires' pkgconfig_libs='$ax_create_pkgconfig_libs' pkgconfig_ldflags='$ax_create_pkgconfig_ldflags' pkgconfig_cppflags='$ax_create_pkgconfig_cppflags' pkgconfig_src_libdir='$ax_create_pkgconfig_src_libdir' pkgconfig_src_headers='$ax_create_pkgconfig_src_headers' ])dnl AS_VAR_POPDEF([PKGCONFIG_suffix])dnl AS_VAR_POPDEF([PKGCONFIG_libdir])dnl AS_VAR_POPDEF([PKGCONFIG_libfile])dnl AS_VAR_POPDEF([PKGCONFIG_libname])dnl AS_VAR_POPDEF([PKGCONFIG_version])dnl AS_VAR_POPDEF([PKGCONFIG_description])dnl AS_VAR_POPDEF([PKGCONFIG_requires])dnl AS_VAR_POPDEF([PKGCONFIG_pkglibs])dnl AS_VAR_POPDEF([PKGCONFIG_libs])dnl AS_VAR_POPDEF([PKGCONFIG_ldflags])dnl AS_VAR_POPDEF([PKGCONFIG_cppflags])dnl AS_VAR_POPDEF([PKGCONFIG_generate])dnl AS_VAR_POPDEF([PKGCONFIG_src_libdir])dnl AS_VAR_POPDEF([PKGCONFIG_src_headers])dnl ]) cloog-parma-0.16.1/m4/lt~obsolete.m40000644000175000017500000001375611470010460014062 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) cloog-parma-0.16.1/m4/ax_cc_maxopt.m40000644000175000017500000001604611321074377014164 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_cc_maxopt.html # =========================================================================== # # SYNOPSIS # # AX_CC_MAXOPT # # DESCRIPTION # # Try to turn on "good" C optimization flags for various compilers and # architectures, for some definition of "good". (In our case, good for # FFTW and hopefully for other scientific codes. Modify as needed.) # # The user can override the flags by setting the CFLAGS environment # variable. The user can also specify --enable-portable-binary in order to # disable any optimization flags that might result in a binary that only # runs on the host architecture. # # Note also that the flags assume that ANSI C aliasing rules are followed # by the code (e.g. for gcc's -fstrict-aliasing), and that floating-point # computations can be re-ordered as needed. # # Requires macros: AX_CHECK_COMPILER_FLAGS, AX_COMPILER_VENDOR, # AX_GCC_ARCHFLAG, AX_GCC_X86_CPUID. # # LICENSE # # Copyright (c) 2008 Steven G. Johnson # Copyright (c) 2008 Matteo Frigo # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_CC_MAXOPT], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AX_COMPILER_VENDOR]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_ARG_ENABLE(portable-binary, [AC_HELP_STRING([--enable-portable-binary], [disable compiler optimizations that would produce unportable binaries])], acx_maxopt_portable=$withval, acx_maxopt_portable=no) # Try to determine "good" native compiler flags if none specified via CFLAGS if test "$ac_test_CFLAGS" != "set"; then CFLAGS="" case $ax_cv_c_compiler_vendor in dec) CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host" if test "x$acx_maxopt_portable" = xno; then CFLAGS="$CFLAGS -arch host" fi;; sun) CFLAGS="-native -fast -xO5 -dalign" if test "x$acx_maxopt_portable" = xyes; then CFLAGS="$CFLAGS -xarch=generic" fi;; hp) CFLAGS="+Oall +Optrs_ansi +DSnative" if test "x$acx_maxopt_portable" = xyes; then CFLAGS="$CFLAGS +DAportable" fi;; ibm) if test "x$acx_maxopt_portable" = xno; then xlc_opt="-qarch=auto -qtune=auto" else xlc_opt="-qtune=auto" fi AX_CHECK_COMPILER_FLAGS($xlc_opt, CFLAGS="-O3 -qansialias -w $xlc_opt", [CFLAGS="-O3 -qansialias -w" echo "******************************************************" echo "* You seem to have the IBM C compiler. It is *" echo "* recommended for best performance that you use: *" echo "* *" echo "* CFLAGS=-O3 -qarch=xxx -qtune=xxx -qansialias -w *" echo "* ^^^ ^^^ *" echo "* where xxx is pwr2, pwr3, 604, or whatever kind of *" echo "* CPU you have. (Set the CFLAGS environment var. *" echo "* and re-run configure.) For more info, man cc. *" echo "******************************************************"]) ;; intel) CFLAGS="-O3 -ansi_alias" if test "x$acx_maxopt_portable" = xno; then icc_archflag=unknown icc_flags="" case $host_cpu in i686*|x86_64*) # icc accepts gcc assembly syntax, so these should work: AX_GCC_X86_CPUID(0) AX_GCC_X86_CPUID(1) case $ax_cv_gcc_x86_cpuid_0 in # see AX_GCC_ARCHFLAG *:756e6547:*:*) # Intel case $ax_cv_gcc_x86_cpuid_1 in *6a?:*[[234]]:*:*|*6[[789b]]?:*:*:*) icc_flags="-xK";; *f3[[347]]:*:*:*|*f4[1347]:*:*:*) icc_flags="-xP -xN -xW -xK";; *f??:*:*:*) icc_flags="-xN -xW -xK";; esac ;; esac ;; esac if test "x$icc_flags" != x; then for flag in $icc_flags; do AX_CHECK_COMPILER_FLAGS($flag, [icc_archflag=$flag; break]) done fi AC_MSG_CHECKING([for icc architecture flag]) AC_MSG_RESULT($icc_archflag) if test "x$icc_archflag" != xunknown; then CFLAGS="$CFLAGS $icc_archflag" fi fi ;; gnu) # default optimization flags for gcc on all systems CFLAGS="-O3 -fomit-frame-pointer" # -malign-double for x86 systems AX_CHECK_COMPILER_FLAGS(-malign-double, CFLAGS="$CFLAGS -malign-double") # -fstrict-aliasing for gcc-2.95+ AX_CHECK_COMPILER_FLAGS(-fstrict-aliasing, CFLAGS="$CFLAGS -fstrict-aliasing") # note that we enable "unsafe" fp optimization with other compilers, too AX_CHECK_COMPILER_FLAGS(-ffast-math, CFLAGS="$CFLAGS -ffast-math") AX_GCC_ARCHFLAG($acx_maxopt_portable) ;; esac if test -z "$CFLAGS"; then echo "" echo "********************************************************" echo "* WARNING: Don't know the best CFLAGS for this system *" echo "* Use ./configure CFLAGS=... to specify your own flags *" echo "* (otherwise, a default of CFLAGS=-O3 will be used) *" echo "********************************************************" echo "" CFLAGS="-O3" fi AX_CHECK_COMPILER_FLAGS($CFLAGS, [], [ echo "" echo "********************************************************" echo "* WARNING: The guessed CFLAGS don't seem to work with *" echo "* your compiler. *" echo "* Use ./configure CFLAGS=... to specify your own flags *" echo "********************************************************" echo "" CFLAGS="" ]) fi ]) cloog-parma-0.16.1/m4/ax_gcc_archflag.m40000644000175000017500000002141411321074377014565 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_gcc_archflag.html # =========================================================================== # # SYNOPSIS # # AX_GCC_ARCHFLAG([PORTABLE?], [ACTION-SUCCESS], [ACTION-FAILURE]) # # DESCRIPTION # # This macro tries to guess the "native" arch corresponding to the target # architecture for use with gcc's -march=arch or -mtune=arch flags. If # found, the cache variable $ax_cv_gcc_archflag is set to this flag and # ACTION-SUCCESS is executed; otherwise $ax_cv_gcc_archflag is is set to # "unknown" and ACTION-FAILURE is executed. The default ACTION-SUCCESS is # to add $ax_cv_gcc_archflag to the end of $CFLAGS. # # PORTABLE? should be either [yes] (default) or [no]. In the former case, # the flag is set to -mtune (or equivalent) so that the architecture is # only used for tuning, but the instruction set used is still portable. In # the latter case, the flag is set to -march (or equivalent) so that # architecture-specific instructions are enabled. # # The user can specify --with-gcc-arch= in order to override the # macro's choice of architecture, or --without-gcc-arch to disable this. # # When cross-compiling, or if $CC is not gcc, then ACTION-FAILURE is # called unless the user specified --with-gcc-arch manually. # # Requires macros: AX_CHECK_COMPILER_FLAGS, AX_GCC_X86_CPUID # # (The main emphasis here is on recent CPUs, on the principle that doing # high-performance computing on old hardware is uncommon.) # # LICENSE # # Copyright (c) 2008 Steven G. Johnson # Copyright (c) 2008 Matteo Frigo # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_GCC_ARCHFLAG], [AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_ARG_WITH(gcc-arch, [AC_HELP_STRING([--with-gcc-arch=], [use architecture for gcc -march/-mtune, instead of guessing])], ax_gcc_arch=$withval, ax_gcc_arch=yes) AC_MSG_CHECKING([for gcc architecture flag]) AC_MSG_RESULT([]) AC_CACHE_VAL(ax_cv_gcc_archflag, [ ax_cv_gcc_archflag="unknown" if test "$GCC" = yes; then if test "x$ax_gcc_arch" = xyes; then ax_gcc_arch="" if test "$cross_compiling" = no; then case $host_cpu in i[[3456]]86*|x86_64*) # use cpuid codes, in part from x86info-1.7 by D. Jones AX_GCC_X86_CPUID(0) AX_GCC_X86_CPUID(1) case $ax_cv_gcc_x86_cpuid_0 in *:756e6547:*:*) # Intel case $ax_cv_gcc_x86_cpuid_1 in *5[[48]]?:*:*:*) ax_gcc_arch="pentium-mmx pentium" ;; *5??:*:*:*) ax_gcc_arch=pentium ;; *6[[3456]]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;; *6a?:*[[01]]:*:*) ax_gcc_arch="pentium2 pentiumpro" ;; *6a?:*[[234]]:*:*) ax_gcc_arch="pentium3 pentiumpro" ;; *6[[9d]]?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;; *6[[78b]]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;; *6??:*:*:*) ax_gcc_arch=pentiumpro ;; *f3[[347]]:*:*:*|*f4[1347]:*:*:*) case $host_cpu in x86_64*) ax_gcc_arch="nocona pentium4 pentiumpro" ;; *) ax_gcc_arch="prescott pentium4 pentiumpro" ;; esac ;; *f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro";; esac ;; *:68747541:*:*) # AMD case $ax_cv_gcc_x86_cpuid_1 in *5[[67]]?:*:*:*) ax_gcc_arch=k6 ;; *5[[8d]]?:*:*:*) ax_gcc_arch="k6-2 k6" ;; *5[[9]]?:*:*:*) ax_gcc_arch="k6-3 k6" ;; *60?:*:*:*) ax_gcc_arch=k7 ;; *6[[12]]?:*:*:*) ax_gcc_arch="athlon k7" ;; *6[[34]]?:*:*:*) ax_gcc_arch="athlon-tbird k7" ;; *67?:*:*:*) ax_gcc_arch="athlon-4 athlon k7" ;; *6[[68a]]?:*:*:*) AX_GCC_X86_CPUID(0x80000006) # L2 cache size case $ax_cv_gcc_x86_cpuid_0x80000006 in *:*:*[[1-9a-f]]??????:*) # (L2 = ecx >> 16) >= 256 ax_gcc_arch="athlon-xp athlon-4 athlon k7" ;; *) ax_gcc_arch="athlon-4 athlon k7" ;; esac ;; *f[[4cef8b]]?:*:*:*) ax_gcc_arch="athlon64 k8" ;; *f5?:*:*:*) ax_gcc_arch="opteron k8" ;; *f7?:*:*:*) ax_gcc_arch="athlon-fx opteron k8" ;; *f??:*:*:*) ax_gcc_arch="k8" ;; esac ;; *:746e6543:*:*) # IDT case $ax_cv_gcc_x86_cpuid_1 in *54?:*:*:*) ax_gcc_arch=winchip-c6 ;; *58?:*:*:*) ax_gcc_arch=winchip2 ;; *6[[78]]?:*:*:*) ax_gcc_arch=c3 ;; *69?:*:*:*) ax_gcc_arch="c3-2 c3" ;; esac ;; esac if test x"$ax_gcc_arch" = x; then # fallback case $host_cpu in i586*) ax_gcc_arch=pentium ;; i686*) ax_gcc_arch=pentiumpro ;; esac fi ;; sparc*) AC_PATH_PROG([PRTDIAG], [prtdiag], [prtdiag], [$PATH:/usr/platform/`uname -i`/sbin/:/usr/platform/`uname -m`/sbin/]) cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null` cputype=`echo "$cputype" | tr -d ' -' |tr $as_cr_LETTERS $as_cr_letters` case $cputype in *ultrasparciv*) ax_gcc_arch="ultrasparc4 ultrasparc3 ultrasparc v9" ;; *ultrasparciii*) ax_gcc_arch="ultrasparc3 ultrasparc v9" ;; *ultrasparc*) ax_gcc_arch="ultrasparc v9" ;; *supersparc*|*tms390z5[[05]]*) ax_gcc_arch="supersparc v8" ;; *hypersparc*|*rt62[[056]]*) ax_gcc_arch="hypersparc v8" ;; *cypress*) ax_gcc_arch=cypress ;; esac ;; alphaev5) ax_gcc_arch=ev5 ;; alphaev56) ax_gcc_arch=ev56 ;; alphapca56) ax_gcc_arch="pca56 ev56" ;; alphapca57) ax_gcc_arch="pca57 pca56 ev56" ;; alphaev6) ax_gcc_arch=ev6 ;; alphaev67) ax_gcc_arch=ev67 ;; alphaev68) ax_gcc_arch="ev68 ev67" ;; alphaev69) ax_gcc_arch="ev69 ev68 ev67" ;; alphaev7) ax_gcc_arch="ev7 ev69 ev68 ev67" ;; alphaev79) ax_gcc_arch="ev79 ev7 ev69 ev68 ev67" ;; powerpc*) cputype=`((grep cpu /proc/cpuinfo | head -n 1 | cut -d: -f2 | cut -d, -f1 | sed 's/ //g') ; /usr/bin/machine ; /bin/machine; grep CPU /var/run/dmesg.boot | head -n 1 | cut -d" " -f2) 2> /dev/null` cputype=`echo $cputype | sed -e 's/ppc//g;s/ *//g'` case $cputype in *750*) ax_gcc_arch="750 G3" ;; *740[[0-9]]*) ax_gcc_arch="$cputype 7400 G4" ;; *74[[4-5]][[0-9]]*) ax_gcc_arch="$cputype 7450 G4" ;; *74[[0-9]][[0-9]]*) ax_gcc_arch="$cputype G4" ;; *970*) ax_gcc_arch="970 G5 power4";; *POWER4*|*power4*|*gq*) ax_gcc_arch="power4 970";; *POWER5*|*power5*|*gr*|*gs*) ax_gcc_arch="power5 power4 970";; 603ev|8240) ax_gcc_arch="$cputype 603e 603";; *) ax_gcc_arch=$cputype ;; esac ax_gcc_arch="$ax_gcc_arch powerpc" ;; esac fi # not cross-compiling fi # guess arch if test "x$ax_gcc_arch" != x -a "x$ax_gcc_arch" != xno; then for arch in $ax_gcc_arch; do if test "x[]m4_default([$1],yes)" = xyes; then # if we require portable code flags="-mtune=$arch" # -mcpu=$arch and m$arch generate nonportable code on every arch except # x86. And some other arches (e.g. Alpha) don't accept -mtune. Grrr. case $host_cpu in i*86|x86_64*) flags="$flags -mcpu=$arch -m$arch";; esac else flags="-march=$arch -mcpu=$arch -m$arch" fi for flag in $flags; do AX_CHECK_COMPILER_FLAGS($flag, [ax_cv_gcc_archflag=$flag; break]) done test "x$ax_cv_gcc_archflag" = xunknown || break done fi fi # $GCC=yes ]) AC_MSG_CHECKING([for gcc architecture flag]) AC_MSG_RESULT($ax_cv_gcc_archflag) if test "x$ax_cv_gcc_archflag" = xunknown; then m4_default([$3],:) else m4_default([$2], [CFLAGS="$CFLAGS $ax_cv_gcc_archflag"]) fi ]) cloog-parma-0.16.1/m4/ltoptions.m40000644000175000017500000002725611470010460013543 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) cloog-parma-0.16.1/m4/ax_submodule.m40000644000175000017500000000336211323427315014177 00000000000000AC_DEFUN([_AX_SUBMODULE], [ AC_ARG_WITH($1, [AS_HELP_STRING([--with-$1=$3], [Which $1 to use])]) case "system" in $2) AC_ARG_WITH($2_prefix, [AS_HELP_STRING([--with-$1-prefix=DIR], [Prefix of $1 installation])]) AC_ARG_WITH($2_exec_prefix, [AS_HELP_STRING([--with-$1-exec-prefix=DIR], [Exec prefix of $1 installation])]) esac case "build" in $3) AC_ARG_WITH($2_builddir, [AS_HELP_STRING([--with-$1-builddir=DIR], [Location of $1 builddir])]) esac if test "x$with_$2_prefix" != "x" -a "x$with_$2_exec_prefix" = "x"; then with_$2_exec_prefix=$with_$2_prefix fi if test "x$with_$2_prefix" != "x" -o "x$with_$2_exec_prefix" != "x"; then if test "x$with_$2" != "x" -a "x$with_$2" != "xsystem"; then AC_MSG_ERROR([Setting $with_$2_prefix implies use of system $1]) fi with_$2="system" fi if test "x$with_$2_builddir" != "x"; then if test "x$with_$2" != "x" -a "x$with_$2" != "xbuild"; then AC_MSG_ERROR([Setting $with_$2_builddir implies use of build $1]) fi with_$2="build" $2_srcdir=`echo @abs_srcdir@ | $with_$2_builddir/config.status --file=-` AC_MSG_NOTICE($1 sources in $$2_srcdir) fi case "$with_$2" in $3) ;; *) if test -d $srcdir/.git -a \ -d $srcdir/$1 -a \ ! -d $srcdir/$1/.git; then AC_MSG_WARN( [git repo detected, but submodule $1 not initialized]) AC_MSG_WARN([You may want to run]) AC_MSG_WARN([ git submodule init]) AC_MSG_WARN([ git submodule update]) AC_MSG_WARN([ sh autogen.sh]) fi if test -f $srcdir/$1/configure -a "$4" != "no"; then with_$2="bundled" else with_$2="$4" fi ;; esac AC_MSG_CHECKING([which $1 to use]) AC_MSG_RESULT($with_$2) ]) AC_DEFUN([AX_SUBMODULE], [ _AX_SUBMODULE($1, m4_bpatsubst([$1], [[^_abcdefghijklmnopqrstuvwxyz0123456789]],[_]), $2, $3) ]) cloog-parma-0.16.1/m4/ax_gcc_x86_cpuid.m40000644000175000017500000000634311321074377014633 00000000000000# =========================================================================== # http://www.nongnu.org/autoconf-archive/ax_gcc_x86_cpuid.html # =========================================================================== # # SYNOPSIS # # AX_GCC_X86_CPUID(OP) # # DESCRIPTION # # On Pentium and later x86 processors, with gcc or a compiler that has a # compatible syntax for inline assembly instructions, run a small program # that executes the cpuid instruction with input OP. This can be used to # detect the CPU type. # # On output, the values of the eax, ebx, ecx, and edx registers are stored # as hexadecimal strings as "eax:ebx:ecx:edx" in the cache variable # ax_cv_gcc_x86_cpuid_OP. # # If the cpuid instruction fails (because you are running a # cross-compiler, or because you are not using gcc, or because you are on # a processor that doesn't have this instruction), ax_cv_gcc_x86_cpuid_OP # is set to the string "unknown". # # This macro mainly exists to be used in AX_GCC_ARCHFLAG. # # LICENSE # # Copyright (c) 2008 Steven G. Johnson # Copyright (c) 2008 Matteo Frigo # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. AC_DEFUN([AX_GCC_X86_CPUID], [AC_REQUIRE([AC_PROG_CC]) AC_LANG_PUSH([C]) AC_CACHE_CHECK(for x86 cpuid $1 output, ax_cv_gcc_x86_cpuid_$1, [AC_RUN_IFELSE([AC_LANG_PROGRAM([#include ], [ int op = $1, eax, ebx, ecx, edx; FILE *f; __asm__("cpuid" : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) : "a" (op)); f = fopen("conftest_cpuid", "w"); if (!f) return 1; fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx); fclose(f); return 0; ])], [ax_cv_gcc_x86_cpuid_$1=`cat conftest_cpuid`; rm -f conftest_cpuid], [ax_cv_gcc_x86_cpuid_$1=unknown; rm -f conftest_cpuid], [ax_cv_gcc_x86_cpuid_$1=unknown])]) AC_LANG_POP([C]) ]) cloog-parma-0.16.1/aclocal.m40000644000175000017500000010437111511607553012573 00000000000000# generated automatically by aclocal 1.11.1 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.65],, [m4_warning([this file was generated for autoconf 2.65. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/ax_cc_maxopt.m4]) m4_include([m4/ax_cflags_warn_all.m4]) m4_include([m4/ax_check_compiler_flags.m4]) m4_include([m4/ax_compiler_vendor.m4]) m4_include([m4/ax_create_pkgconfig_info.m4]) m4_include([m4/ax_gcc_archflag.m4]) m4_include([m4/ax_gcc_x86_cpuid.m4]) m4_include([m4/ax_submodule.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) cloog-parma-0.16.1/autoconf/0000755000175000017500000000000011511607624012622 500000000000000cloog-parma-0.16.1/autoconf/config.sub0000755000175000017500000010115311321073750014522 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-16' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tile*) basic_machine=tile-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: cloog-parma-0.16.1/autoconf/depcomp0000755000175000017500000004271311321073750014122 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2007-03-29.01 # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software # Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by `PROGRAMS ARGS'. object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts `$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add `dependent.h:' lines. sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for `:' # in the target name. This is to cope with DOS-style filenames: # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. "$@" $dashmflag | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test $1 != '--mode=compile'; do shift done shift fi # Remove `-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: cloog-parma-0.16.1/autoconf/config.guess0000755000175000017500000012753411321073750015072 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 # Free Software Foundation, Inc. timestamp='2008-01-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[456]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else echo ${UNAME_MACHINE}-unknown-linux-gnueabi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: cloog-parma-0.16.1/autoconf/ltmain.sh0000755000175000017500000075634211470010460014374 00000000000000# Generated from ltmain.m4sh. # libtool (GNU libtool) 2.2.8 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.2.8 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . PROGRAM=libtool PACKAGE=libtool VERSION=2.2.8 TIMESTAMP="" package_revision=1.3169 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${EGREP="grep -E"} : ${FGREP="grep -F"} : ${GREP="grep"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SED="sed"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # Generated shell functions inserted here. # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=: for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname${mode+: }$mode: $*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_version # Echo version message to standard output and exit. func_version () { $SED -n '/(C)/!b go :more /\./!{ N s/\n# // b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $SED -n '/^# Usage:/,/# Report bugs to/ { s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/ p }' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { func_error "missing argument for $1." exit_cmd=exit } exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. # $mode is unset nonopt= execute_dlfiles= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 opt_dry_run=false opt_duplicate_deps=false opt_silent=false opt_debug=: # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # Parse options once, thoroughly. This comes as soon as possible in # the script to make things like `libtool --version' happen quickly. { # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Parse non-mode specific arguments: while test "$#" -gt 0; do opt="$1" shift case $opt in --config) func_config ;; --debug) preserve_args="$preserve_args $opt" func_echo "enabling shell trace mode" opt_debug='set -x' $opt_debug ;; -dlopen) test "$#" -eq 0 && func_missing_arg "$opt" && break execute_dlfiles="$execute_dlfiles $1" shift ;; --dry-run | -n) opt_dry_run=: ;; --features) func_features ;; --finish) mode="finish" ;; --mode) test "$#" -eq 0 && func_missing_arg "$opt" && break case $1 in # Valid mode arguments: clean) ;; compile) ;; execute) ;; finish) ;; install) ;; link) ;; relink) ;; uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac mode="$1" shift ;; --preserve-dup-deps) opt_duplicate_deps=: ;; --quiet|--silent) preserve_args="$preserve_args $opt" opt_silent=: opt_verbose=false ;; --no-quiet|--no-silent) preserve_args="$preserve_args $opt" opt_silent=false ;; --verbose| -v) preserve_args="$preserve_args $opt" opt_silent=false opt_verbose=: ;; --no-verbose) preserve_args="$preserve_args $opt" opt_verbose=false ;; --tag) test "$#" -eq 0 && func_missing_arg "$opt" && break preserve_args="$preserve_args $opt $1" func_enable_tag "$1" # tagname is set here shift ;; # Separate optargs to long options: -dlopen=*|--mode=*|--tag=*) func_opt_split "$opt" set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"} shift ;; -\?|-h) func_usage ;; --help) opt_help=: ;; --help-all) opt_help=': help-all' ;; --version) func_version ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) nonopt="$opt" break ;; esac done case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_duplicate_deps ;; esac # Having warned about all mis-specified options, bail out if # anything was wrong. $exit_cmd $EXIT_FAILURE } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } ## ----------- ## ## Main. ## ## ----------- ## $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi test -z "$mode" && func_fatal_error "error: you must specify a MODE." # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$mode' for more information." } # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_ltwrapper_scriptname_result="" if func_ltwrapper_executable_p "$1"; then func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" fi } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_quote_for_eval "$arg" CC_quoted="$CC_quoted $func_quote_for_eval_result" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi removelist="$removelist $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist removelist="$removelist $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir command="$command -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $execute_dlfiles; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_quote_for_eval "$file" args="$args $func_quote_for_eval_result" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" exit $EXIT_SUCCESS } test "$mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" install_prog="$install_prog$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" install_prog="$install_prog $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi install_shared_prog="$install_shared_prog $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" install_shared_prog="$install_shared_prog -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" dir="$dir$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_verbose "extracting global C symbols from \`$progfile'" $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'" } done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; " case $host in *cygwin* | *mingw* | *cegcc* ) echo >> "$output_objdir/$my_dlsyms" "\ /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */" lt_dlsym_const= ;; *osf5*) echo >> "$output_objdir/$my_dlsyms" "\ /* This system does not cope well with relocations in const data */" lt_dlsym_const= ;; *) lt_dlsym_const=const ;; esac echo >> "$output_objdir/$my_dlsyms" "\ extern $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; $lt_dlsym_const lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) symtab_cflags="$symtab_cflags $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then win32_nmres=`eval $NM -f posix -A $1 | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_to_host_path arg # # Convert paths to host format when used with build tools. # Intended for use with "native" mingw (where libtool itself # is running under the msys shell), or in the following cross- # build environments: # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # where wine is equipped with the `winepath' executable. # In the native mingw case, the (msys) shell automatically # converts paths for any non-msys applications it launches, # but that facility isn't available from inside the cwrapper. # Similar accommodations are necessary for $host mingw and # $build cygwin. Calling this function does no harm for other # $host/$build combinations not listed above. # # ARG is the path (on $build) that should be converted to # the proper representation for $host. The result is stored # in $func_to_host_path_result. func_to_host_path () { func_to_host_path_result="$1" if test -n "$1"; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' case $build in *mingw* ) # actually, msys # awkward: cmd appends spaces to result func_to_host_path_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_path_result=`cygpath -w "$1" | $SED -e "$lt_sed_naive_backslashify"` ;; * ) # Unfortunately, winepath does not exit with a non-zero # error code, so we are forced to check the contents of # stdout. On the other hand, if the command is not # found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both # error code of zero AND non-empty stdout, which explains # the odd construction: func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then func_to_host_path_result=`$ECHO "$func_to_host_path_tmp1" | $SED -e "$lt_sed_naive_backslashify"` else # Allow warning below. func_to_host_path_result= fi ;; esac if test -z "$func_to_host_path_result" ; then func_error "Could not determine host path corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_path_result="$1" fi ;; esac fi } # end: func_to_host_path # func_to_host_pathlist arg # # Convert pathlists to host format when used with build tools. # See func_to_host_path(), above. This function supports the # following $build/$host combinations (but does no harm for # combinations not listed here): # $build $host # mingw (msys) mingw [e.g. native] # cygwin mingw # *nix + wine mingw # # Path separators are also converted from $build format to # $host format. If ARG begins or ends with a path separator # character, it is preserved (but converted to $host format) # on output. # # ARG is a pathlist (on $build) that should be converted to # the proper representation on $host. The result is stored # in $func_to_host_pathlist_result. func_to_host_pathlist () { func_to_host_pathlist_result="$1" if test -n "$1"; then case $host in *mingw* ) lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_pathlist_tmp1=$func_stripname_result case $build in *mingw* ) # Actually, msys. # Awkward: cmd appends spaces to result. func_to_host_pathlist_result=` ( cmd //c echo "$func_to_host_pathlist_tmp1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` ;; *cygwin* ) func_to_host_pathlist_result=`cygpath -w -p "$func_to_host_pathlist_tmp1" | $SED -e "$lt_sed_naive_backslashify"` ;; * ) # unfortunately, winepath doesn't convert pathlists func_to_host_pathlist_result="" func_to_host_pathlist_oldIFS=$IFS IFS=: for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do IFS=$func_to_host_pathlist_oldIFS if test -n "$func_to_host_pathlist_f" ; then func_to_host_path "$func_to_host_pathlist_f" if test -n "$func_to_host_path_result" ; then if test -z "$func_to_host_pathlist_result" ; then func_to_host_pathlist_result="$func_to_host_path_result" else func_append func_to_host_pathlist_result ";$func_to_host_path_result" fi fi fi done IFS=$func_to_host_pathlist_oldIFS ;; esac if test -z "$func_to_host_pathlist_result"; then func_error "Could not determine the host path(s) corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This may break if $1 contains DOS-style drive # specifications. The fix is not to complicate the expression # below, but for the user to provide a working wine installation # with winepath so that path translation in the cross-to-mingw # case works properly. lt_replace_pathsep_nix_to_dos="s|:|;|g" func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\ $SED -e "$lt_replace_pathsep_nix_to_dos"` fi # Now, add the leading and trailing path separators back case "$1" in :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result" ;; esac case "$1" in *: ) func_append func_to_host_pathlist_result ";" ;; esac ;; esac fi } # end: func_to_host_pathlist # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -e 's/\([\\"]\)/\\\1/g' \ -e 's/^/ fputs ("/' -e 's/$/\\n", f);/' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) deplibs="$deplibs $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) weak_libs="$weak_libs $arg" prev= continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result if test -z "$dir"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $func_quote_for_eval_result" compiler_flags="$compiler_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" arg="$arg $wl$func_quote_for_eval_result" compiler_flags="$compiler_flags $wl$func_quote_for_eval_result" linker_flags="$linker_flags $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" compiler_flags="$compiler_flags $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$dlfiles $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_duplicate_deps ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$pre_post_deps $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= case $lib in *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) deplibs="$deplibs $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" dir=$func_stripname_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" newlib_search_path="$newlib_search_path $func_stripname_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) temp_rpath="$temp_rpath$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded notinst_deplibs="$notinst_deplibs $lib" need_relink=no ;; *) if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if $opt_duplicate_deps ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_dirname "$deplib" "" "." dir="$func_dirname_result" # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" libobjs="$libobjs $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) dlfiles="$dlfiles $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$newdeplibs $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" if test -n "$hardcode_libdir_flag_spec_ld"; then eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" delfiles="$delfiles $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" func_len " $cmd" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then func_show_eval "$cmd" 'exit $?' skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do $ECHO "$obj" >> $output done echo ')' >> $output delfiles="$delfiles $output" elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do $ECHO "$obj" >> $output done delfiles="$delfiles $output" output=$firstobj\"$file_list_spec$output\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi delfiles="$delfiles $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter delfiles="$delfiles $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles libobjs="$libobjs $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$rpath$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then oldobjs="$oldobjs $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $dlprefiles oldobjs="$oldobjs $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlfiles="$newdlfiles $libdir/$name" ;; *) newdlfiles="$newdlfiles $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" newdlprefiles="$newdlprefiles $libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$mode" = link || test "$mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) RM="$RM $arg"; rmforce=yes ;; -*) RM="$RM $arg" ;; *) files="$files $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= origobjdir="$objdir" for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then objdir="$origobjdir" else objdir="$dir/$origobjdir" fi func_basename "$file" name="$func_basename_result" test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result rmfiles="$rmfiles $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$mode" = uninstall || test "$mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 cloog-parma-0.16.1/autoconf/missing0000755000175000017500000002557711321073750014155 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2006-05-10.23 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case $1 in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $1 in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case $firstarg in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case $firstarg in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: cloog-parma-0.16.1/autoconf/install-sh0000755000175000017500000003246411321073750014553 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2006-12-25.00 # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then trap '(exit $?); exit' 1 2 13 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names starting with `-'. case $src in -*) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # Protect names starting with `-'. case $dst in -*) dst=./$dst;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; -*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: