~ubuntu-branches/ubuntu/quantal/autoconf/quantal

« back to all changes in this revision

Viewing changes to tests/fortran.at

  • Committer: Bazaar Package Importer
  • Author(s): Bhavani Shankar
  • Date: 2010-08-05 12:01:58 UTC
  • mfrom: (4.1.13 sid)
  • Revision ID: james.westby@ubuntu.com-20100805120158-uxt6qovr0gl2pd75
Tags: 2.67-2ubuntu1
* Merge from Debian unstable (LP: #613735), remaining changes:
  - bin/autoreconf.in: Check whether libtoolize supports --install, if it
    does, libtoolize is safe to run at all times since it will not install
    new files unless --install is passed to it as well.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
 
3
3
AT_BANNER([Fortran low level compiling/preprocessing macros.])
4
4
 
5
 
# Copyright (C) 2000, 2001, 2003, 2008, 2009 Free Software Foundation,
6
 
# Inc.
 
5
# Copyright (C) 2000, 2001, 2003, 2008, 2009, 2010 Free Software
 
6
# Foundation, Inc.
7
7
#
8
8
# This program is free software: you can redistribute it and/or modify
9
9
# it under the terms of the GNU General Public License as published by
109
109
 
110
110
: ${MAKE=make}
111
111
AT_CHECK([env ACLOCAL=true autoreconf -vi], [], [ignore], [ignore])
112
 
AT_CHECK([./configure $configure_options], [], [ignore], [ignore])
 
112
AT_CHECK_CONFIGURE
113
113
AT_CHECK([$MAKE], [], [ignore], [ignore])
114
114
 
115
115
AT_CLEANUP
149
149
 
150
150
: ${MAKE=make}
151
151
AT_CHECK([env ACLOCAL=true autoreconf -vi], [], [ignore], [ignore])
152
 
AT_CHECK([./configure $configure_options], [], [ignore], [ignore])
153
 
AT_CHECK([$MAKE], [], [ignore], [ignore])
 
152
AT_CHECK_CONFIGURE
 
153
AT_CHECK([$MAKE], [], [ignore], [ignore])
 
154
 
 
155
AT_CLEANUP
 
156
 
 
157
 
 
158
# We don't test the AC_F77_LIBRARY_LDFLAGS macro on its own because of
 
159
# (autoconf.info)Fortran Compiler:
 
160
#      The macros `AC_F77_DUMMY_MAIN' and `AC_FC_DUMMY_MAIN' or
 
161
#    `AC_F77_MAIN' and `AC_FC_MAIN' are probably also necessary to link
 
162
#    C/C++ with Fortran; see below.
 
163
#
 
164
# and we would need libtool to create shared libraries.
 
165
 
 
166
# Further, for any sensible test of the AC_F{77,C}(_DUMMY)?_MAIN macros
 
167
# we also need to use AC_F{77,C}_WRAPPERS, in order to be able to actually
 
168
# call the functions.
 
169
 
 
170
## ------------------------ ##
 
171
## AC_F77_DUMMY_MAIN usage. ##
 
172
## ------------------------ ##
 
173
 
 
174
AT_SETUP([AC_F77_DUMMY_MAIN usage])
 
175
 
 
176
AT_DATA([configure.ac],
 
177
[[AC_INIT
 
178
AC_CONFIG_HEADERS([config.h:config.hin])
 
179
AC_PROG_F77
 
180
AC_F77_DUMMY_MAIN([], [AC_MSG_FAILURE([failed to determine F77 dummy main], [77])])
 
181
AC_F77_WRAPPERS
 
182
AC_PROG_CC
 
183
AC_CONFIG_FILES([Makefile])
 
184
AC_OUTPUT
 
185
]])
 
186
 
 
187
AT_DATA([Makefile.in],
 
188
[[
 
189
all: cprogram@EXEEXT@
 
190
 
 
191
cprogram@EXEEXT@: cprogram.@OBJEXT@ foobar.@OBJEXT@
 
192
        @CC@ @CFLAGS@ @LDFLAGS@ -o $@ cprogram.@OBJEXT@ foobar.@OBJEXT@ @LIBS@ @FLIBS@
 
193
 
 
194
.SUFFIXES: .c .f .@OBJEXT@
 
195
.f.@OBJEXT@:
 
196
        @F77@ @FFLAGS@ -c $<
 
197
.c.@OBJEXT@:
 
198
        @CC@ @DEFS@ -I. @CPPFLAGS@ @CFLAGS@ -c $<
 
199
]])
 
200
 
 
201
AT_DATA([foobar.f],
 
202
[[C     This is just a purely numeric routine, no I/O needed.
 
203
C     Taken from autoconf.texi:Fortran Compiler.
 
204
      subroutine foobar (x, y)
 
205
      double precision x, y
 
206
      y = 3.14159 * x
 
207
      return
 
208
      end
 
209
]])
 
210
 
 
211
AT_DATA([cprogram.c],
 
212
[[#include <config.h>
 
213
#include <math.h>
 
214
 
 
215
/* Taken from autoconf.texi:Fortran Compiler. */
 
216
#define FOOBAR_F77 F77_FUNC (foobar, FOOBAR)
 
217
#ifdef __cplusplus
 
218
extern "C"  /* prevent C++ name mangling */
 
219
#endif
 
220
void FOOBAR_F77 (double *x, double *y);
 
221
 
 
222
/* Taken from autoconf.texi:Fortran Compiler.  */
 
223
#ifdef F77_DUMMY_MAIN
 
224
#  ifdef __cplusplus
 
225
     extern "C"
 
226
#  endif
 
227
   int F77_DUMMY_MAIN () { return 1; }
 
228
#endif
 
229
 
 
230
int main(int argc, char *argv[])
 
231
{
 
232
  double x = 2.7183, y;
 
233
  FOOBAR_F77 (&x, &y);
 
234
  if (fabs (8.539784097 - y) > 1.e-6)
 
235
    return 1;
 
236
  return 0;
 
237
}
 
238
]])
 
239
 
 
240
AT_CHECK_AUTOCONF
 
241
AT_CHECK_AUTOHEADER
 
242
AT_CHECK_CONFIGURE
 
243
: ${MAKE=make}
 
244
AT_CHECK([$MAKE], [], [ignore], [ignore])
 
245
dnl AT_CHECK([./cprogram])
 
246
 
 
247
AT_CLEANUP
 
248
 
 
249
 
 
250
## ----------------------- ##
 
251
## AC_FC_DUMMY_MAIN usage. ##
 
252
## ----------------------- ##
 
253
 
 
254
AT_SETUP([AC_FC_DUMMY_MAIN usage])
 
255
 
 
256
AT_DATA([configure.ac],
 
257
[[AC_INIT
 
258
AC_CONFIG_HEADERS([config.h:config.hin])
 
259
AC_PROG_FC
 
260
AC_FC_FIXEDFORM
 
261
AC_FC_DUMMY_MAIN([], [AC_MSG_FAILURE([failed to determine FC dummy main], [77])])
 
262
AC_FC_WRAPPERS
 
263
AC_PROG_CC
 
264
AC_CONFIG_FILES([Makefile])
 
265
AC_OUTPUT
 
266
]])
 
267
 
 
268
AT_DATA([Makefile.in],
 
269
[[
 
270
all: cprogram@EXEEXT@
 
271
 
 
272
cprogram@EXEEXT@: cprogram.@OBJEXT@ foobar.@OBJEXT@
 
273
        @CC@ @CFLAGS@ @LDFLAGS@ -o $@ cprogram.@OBJEXT@ foobar.@OBJEXT@ @LIBS@ @FCLIBS@
 
274
 
 
275
.SUFFIXES: .c .f .@OBJEXT@
 
276
.f.@OBJEXT@:
 
277
        @FC@ @FCFLAGS@ -c $<
 
278
.c.@OBJEXT@:
 
279
        @CC@ @DEFS@ -I. @CPPFLAGS@ @CFLAGS@ -c $<
 
280
]])
 
281
 
 
282
AT_DATA([foobar.f],
 
283
[[C     This is just a purely numeric routine, no I/O needed.
 
284
C     Taken from autoconf.texi:Fortran Compiler.
 
285
      subroutine foobar (x, y)
 
286
      double precision x, y
 
287
      y = 3.14159 * x
 
288
      return
 
289
      end
 
290
]])
 
291
 
 
292
AT_DATA([cprogram.c],
 
293
[[#include <config.h>
 
294
#include <math.h>
 
295
 
 
296
/* Taken from autoconf.texi:Fortran Compiler. */
 
297
#define FOOBAR_FC FC_FUNC (foobar, FOOBAR)
 
298
#ifdef __cplusplus
 
299
extern "C"  /* prevent C++ name mangling */
 
300
#endif
 
301
void FOOBAR_FC(double *x, double *y);
 
302
 
 
303
/* Taken from autoconf.texi:Fortran Compiler.  */
 
304
#ifdef FC_DUMMY_MAIN
 
305
#  ifdef __cplusplus
 
306
     extern "C"
 
307
#  endif
 
308
   int FC_DUMMY_MAIN () { return 1; }
 
309
#endif
 
310
 
 
311
int main (int argc, char *argv[])
 
312
{
 
313
  double x = 2.7183, y;
 
314
  FOOBAR_FC (&x, &y);
 
315
  if (fabs (8.539784097 - y) > 1.e-6)
 
316
    return 1;
 
317
  return 0;
 
318
}
 
319
]])
 
320
 
 
321
AT_CHECK_AUTOCONF
 
322
AT_CHECK_AUTOHEADER
 
323
AT_CHECK_CONFIGURE
 
324
: ${MAKE=make}
 
325
AT_CHECK([$MAKE], [], [ignore], [ignore])
 
326
dnl AT_CHECK([./cprogram])
 
327
 
 
328
AT_CLEANUP
 
329
 
 
330
 
 
331
## ------------------ ##
 
332
## AC_F77_MAIN usage. ##
 
333
## ------------------ ##
 
334
 
 
335
AT_SETUP([AC_F77_MAIN usage])
 
336
 
 
337
AT_DATA([configure.ac],
 
338
[[AC_INIT
 
339
AC_CONFIG_HEADERS([config.h:config.hin])
 
340
AC_PROG_F77
 
341
AC_F77_MAIN
 
342
AC_F77_WRAPPERS
 
343
AC_PROG_CC
 
344
AC_CONFIG_FILES([Makefile])
 
345
AC_OUTPUT
 
346
]])
 
347
 
 
348
AT_DATA([Makefile.in],
 
349
[[
 
350
all: cprogram@EXEEXT@
 
351
 
 
352
cprogram@EXEEXT@: cprogram.@OBJEXT@ foobar.@OBJEXT@
 
353
        @CC@ @CFLAGS@ @LDFLAGS@ -o $@ cprogram.@OBJEXT@ foobar.@OBJEXT@ @LIBS@ @FLIBS@
 
354
 
 
355
.SUFFIXES: .c .f .@OBJEXT@
 
356
.f.@OBJEXT@:
 
357
        @F77@ @FFLAGS@ -c $<
 
358
.c.@OBJEXT@:
 
359
        @CC@ @DEFS@ -I. @CPPFLAGS@ @CFLAGS@ -c $<
 
360
]])
 
361
 
 
362
AT_DATA([foobar.f],
 
363
[[C     This uses Fortran I/O, so is likely to require Fortran startup.
 
364
      subroutine foobar (x)
 
365
      integer x
 
366
      if (x == 42) then
 
367
        write(*,*) 'some output from Fortran sources'
 
368
      end if
 
369
      end
 
370
]])
 
371
 
 
372
AT_DATA([cprogram.c],
 
373
[[#include <config.h>
 
374
#include <stdio.h>
 
375
 
 
376
/* Taken from autoconf.texi:Fortran Compiler. */
 
377
#define FOOBAR_F77 F77_FUNC (foobar, FOOBAR)
 
378
#ifdef __cplusplus
 
379
extern "C"  /* prevent C++ name mangling */
 
380
#endif
 
381
void FOOBAR_F77 (int *x);
 
382
 
 
383
/* Taken from autoconf.texi:Fortran Compiler.  */
 
384
#ifdef __cplusplus
 
385
  extern "C"
 
386
#endif
 
387
int F77_MAIN (int argc, char *argv[]);
 
388
 
 
389
int F77_MAIN (int argc, char *argv[])
 
390
{
 
391
  int x = 42;
 
392
  puts ("output from C main");
 
393
  fflush (stdout);
 
394
  FOOBAR_F77 (&x);
 
395
  puts ("more output from C main");
 
396
  return 0;
 
397
}
 
398
]])
 
399
 
 
400
AT_CHECK_AUTOCONF
 
401
AT_CHECK_AUTOHEADER
 
402
AT_CHECK_CONFIGURE
 
403
: ${MAKE=make}
 
404
AT_CHECK([$MAKE], [], [ignore], [ignore])
 
405
dnl AT_CHECK([./cprogram], [], [output from C main
 
406
dnl  some output from Fortran sources
 
407
dnl more output from C main
 
408
dnl ])
 
409
 
 
410
AT_CLEANUP
 
411
 
 
412
 
 
413
## ----------------- ##
 
414
## AC_FC_MAIN usage. ##
 
415
## ----------------- ##
 
416
 
 
417
AT_SETUP([AC_FC_MAIN usage])
 
418
 
 
419
AT_DATA([configure.ac],
 
420
[[AC_INIT
 
421
AC_CONFIG_HEADERS([config.h:config.hin])
 
422
AC_PROG_FC
 
423
AC_FC_FIXEDFORM
 
424
AC_FC_MAIN
 
425
AC_FC_WRAPPERS
 
426
AC_PROG_CC
 
427
AC_CONFIG_FILES([Makefile])
 
428
AC_OUTPUT
 
429
]])
 
430
 
 
431
AT_DATA([Makefile.in],
 
432
[[all: cprogram@EXEEXT@
 
433
 
 
434
cprogram@EXEEXT@: cprogram.@OBJEXT@ foobar.@OBJEXT@
 
435
        @CC@ @CFLAGS@ @LDFLAGS@ -o $@ cprogram.@OBJEXT@ foobar.@OBJEXT@ @LIBS@ @FCLIBS@
 
436
 
 
437
.SUFFIXES: .c .f .@OBJEXT@
 
438
.f.@OBJEXT@:
 
439
        @FC@ @FCFLAGS@ -c $<
 
440
.c.@OBJEXT@:
 
441
        @CC@ @DEFS@ -I. @CPPFLAGS@ @CFLAGS@ -c $<
 
442
]])
 
443
 
 
444
AT_DATA([foobar.f],
 
445
[[C     This uses Fortran I/O, so is likely to require Fortran startup.
 
446
      subroutine foobar (x)
 
447
      integer x
 
448
      if (x == 42) then
 
449
        write (*,*) 'some output from Fortran sources'
 
450
      end if
 
451
      end
 
452
]])
 
453
 
 
454
AT_DATA([cprogram.c],
 
455
[[#include <config.h>
 
456
#include <stdio.h>
 
457
 
 
458
/* Taken from autoconf.texi:Fortran Compiler. */
 
459
#define FOOBAR_FC FC_FUNC (foobar, FOOBAR)
 
460
#ifdef __cplusplus
 
461
extern "C"  /* prevent C++ name mangling */
 
462
#endif
 
463
void FOOBAR_FC (int *x);
 
464
 
 
465
/* Taken from autoconf.texi:Fortran Compiler.  */
 
466
#ifdef __cplusplus
 
467
  extern "C"
 
468
#endif
 
469
int FC_MAIN (int argc, char *argv[]);
 
470
 
 
471
int FC_MAIN (int argc, char *argv[])
 
472
{
 
473
  int x = 42;
 
474
  puts ("output from C main");
 
475
  fflush (stdout);
 
476
  FOOBAR_FC (&x);
 
477
  puts ("more output from C main");
 
478
  return 0;
 
479
}
 
480
]])
 
481
 
 
482
AT_CHECK_AUTOCONF
 
483
AT_CHECK_AUTOHEADER
 
484
AT_CHECK_CONFIGURE
 
485
: ${MAKE=make}
 
486
AT_CHECK([$MAKE], [], [ignore], [ignore])
 
487
dnl AT_CHECK([./cprogram], [], [output from C main
 
488
dnl  some output from Fortran sources
 
489
dnl more output from C main
 
490
dnl ])
 
491
 
 
492
AT_CLEANUP
 
493
 
 
494
 
 
495
## ------------------ ##
 
496
## AC_F77_FUNC usage. ##
 
497
## ------------------ ##
 
498
 
 
499
AT_SETUP([AC_F77_FUNC usage])
 
500
 
 
501
AT_DATA([configure.ac],
 
502
[[AC_INIT
 
503
AC_PROG_F77
 
504
AC_F77_FUNC([foobar])
 
505
AC_SUBST([foobar])
 
506
AC_PROG_CC
 
507
AC_CONFIG_FILES([cprogram.c:cprogram.in])
 
508
AC_CONFIG_FILES([Makefile])
 
509
AC_OUTPUT
 
510
]])
 
511
 
 
512
AT_DATA([Makefile.in],
 
513
[[
 
514
all: cprogram@EXEEXT@
 
515
 
 
516
cprogram@EXEEXT@: cprogram.@OBJEXT@ foobar.@OBJEXT@
 
517
        @CC@ @CFLAGS@ @LDFLAGS@ -o $@ cprogram.@OBJEXT@ foobar.@OBJEXT@ @LIBS@ @FLIBS@
 
518
 
 
519
.SUFFIXES: .c .f .@OBJEXT@
 
520
.f.@OBJEXT@:
 
521
        @F77@ @FFLAGS@ -c $<
 
522
.c.@OBJEXT@:
 
523
        @CC@ @DEFS@ @CPPFLAGS@ @CFLAGS@ -c $<
 
524
]])
 
525
 
 
526
AT_DATA([foobar.f],
 
527
[[      subroutine foobar (x)
 
528
      integer x
 
529
      x = 42
 
530
      return
 
531
      end
 
532
]])
 
533
 
 
534
AT_DATA([cprogram.in],
 
535
[[#include <math.h>
 
536
 
 
537
#ifdef __cplusplus
 
538
extern "C"  /* prevent C++ name mangling */
 
539
#endif
 
540
void @foobar@ (int *x);
 
541
 
 
542
/* Taken from autoconf.texi:Fortran Compiler.  */
 
543
#ifdef F77_DUMMY_MAIN
 
544
#  ifdef __cplusplus
 
545
     extern "C"
 
546
#  endif
 
547
   int F77_DUMMY_MAIN () { return 1; }
 
548
#endif
 
549
 
 
550
int main(int argc, char *argv[])
 
551
{
 
552
  int x;
 
553
  @foobar@ (&x);
 
554
  if (x != 42)
 
555
    return 1;
 
556
  return 0;
 
557
}
 
558
]])
 
559
 
 
560
AT_CHECK_AUTOCONF
 
561
AT_CHECK_CONFIGURE
 
562
: ${MAKE=make}
 
563
AT_CHECK([$MAKE], [], [ignore], [ignore])
 
564
dnl AT_CHECK([./cprogram])
 
565
 
 
566
AT_CLEANUP
 
567
 
 
568
 
 
569
## ----------------- ##
 
570
## AC_FC_FUNC usage. ##
 
571
## ----------------- ##
 
572
 
 
573
AT_SETUP([AC_FC_FUNC usage])
 
574
 
 
575
AT_DATA([configure.ac],
 
576
[[AC_INIT
 
577
AC_PROG_FC
 
578
AC_FC_FUNC([foobar])
 
579
AC_SUBST([foobar])
 
580
AC_PROG_CC
 
581
AC_CONFIG_FILES([cprogram.c:cprogram.in])
 
582
AC_CONFIG_FILES([Makefile])
 
583
AC_OUTPUT
 
584
]])
 
585
 
 
586
AT_DATA([Makefile.in],
 
587
[[
 
588
all: cprogram@EXEEXT@
 
589
 
 
590
cprogram@EXEEXT@: cprogram.@OBJEXT@ foobar.@OBJEXT@
 
591
        @CC@ @CFLAGS@ @LDFLAGS@ -o $@ cprogram.@OBJEXT@ foobar.@OBJEXT@ @LIBS@ @FCLIBS@
 
592
 
 
593
.SUFFIXES: .c .f .@OBJEXT@
 
594
.f.@OBJEXT@:
 
595
        @FC@ @FCFLAGS@ -c $<
 
596
.c.@OBJEXT@:
 
597
        @CC@ @DEFS@ @CPPFLAGS@ @CFLAGS@ -c $<
 
598
]])
 
599
 
 
600
AT_DATA([foobar.f],
 
601
[[      subroutine foobar (x)
 
602
      integer x
 
603
      x = 42
 
604
      return
 
605
      end
 
606
]])
 
607
 
 
608
AT_DATA([cprogram.in],
 
609
[[#include <math.h>
 
610
 
 
611
#ifdef __cplusplus
 
612
extern "C"  /* prevent C++ name mangling */
 
613
#endif
 
614
void @foobar@ (int *x);
 
615
 
 
616
/* Taken from autoconf.texi:Fortran Compiler.  */
 
617
#ifdef FC_DUMMY_MAIN
 
618
#  ifdef __cplusplus
 
619
     extern "C"
 
620
#  endif
 
621
   int FC_DUMMY_MAIN () { return 1; }
 
622
#endif
 
623
 
 
624
int main(int argc, char *argv[])
 
625
{
 
626
  int x;
 
627
  @foobar@ (&x);
 
628
  if (x != 42)
 
629
    return 1;
 
630
  return 0;
 
631
}
 
632
]])
 
633
 
 
634
AT_CHECK_AUTOCONF
 
635
AT_CHECK_CONFIGURE
 
636
: ${MAKE=make}
 
637
AT_CHECK([$MAKE], [], [ignore], [ignore])
 
638
dnl AT_CHECK([./cprogram])
 
639
AT_CLEANUP
 
640
 
 
641
 
 
642
## ------------------- ##
 
643
## AC_FC_SRCEXT usage. ##
 
644
## ------------------- ##
 
645
 
 
646
AT_SETUP([AC_FC_SRCEXT usage])
 
647
 
 
648
AT_DATA([configure.ac],
 
649
[[AC_INIT
 
650
AC_PROG_FC
 
651
FCFLAGS_NOFREE=$FCFLAGS
 
652
AC_SUBST([FCFLAGS_NOFREE])
 
653
AC_FC_FREEFORM
 
654
# Unconditionally require .f to work.
 
655
AC_FC_SRCEXT([f])
 
656
# For each other extension, fail gracefully if it does not work:
 
657
# Not all compilers support all extensions/language versions.
 
658
m4@&t@_foreach([ext], [f77, f90, f95, f03, f08],
 
659
  [AC_FC_SRCEXT(ext, ext[_object='foo]ext[.$(OBJEXT)'], ext[_object=])
 
660
   AC_SUBST(ext[_object])])
 
661
AC_CONFIG_FILES([Makefile])
 
662
AC_OUTPUT
 
663
]])
 
664
 
 
665
AT_DATA([Makefile.in],
 
666
[[OBJEXT = @OBJEXT@
 
667
 
 
668
all: prog@EXEEXT@
 
669
prog@EXEEXT@: foof.@OBJEXT@ @f77_object@ @f90_object@ \
 
670
              @f95_object@ @f03_object@ @f08_object@
 
671
        @FC@ @FCFLAGS@ -o $@ foof.@OBJEXT@ @f77_object@ @f90_object@ \
 
672
                             @f95_object@ @f03_object@ @f08_object@
 
673
 
 
674
.SUFFIXES: .f .f77 .f90 .f95 .f03 .f08 .@OBJEXT@
 
675
.f.@OBJEXT@:
 
676
        @FC@ -c @FCFLAGS_NOFREE@ @FCFLAGS_f@ $<
 
677
.f77.@OBJEXT@:
 
678
        @FC@ -c @FCFLAGS_NOFREE@ @FCFLAGS_f77@ $<
 
679
.f90.@OBJEXT@:
 
680
        @FC@ -c @FCFLAGS@ @FCFLAGS_f90@ $<
 
681
.f95.@OBJEXT@:
 
682
        @FC@ -c @FCFLAGS@ @FCFLAGS_f95@ $<
 
683
.f03.@OBJEXT@:
 
684
        @FC@ -c @FCFLAGS@ @FCFLAGS_f03@ $<
 
685
.f08.@OBJEXT@:
 
686
        @FC@ -c @FCFLAGS@ @FCFLAGS_f08@ $<
 
687
]])
 
688
 
 
689
AT_DATA([foof.f],
 
690
[[      program main
 
691
      end
 
692
]])
 
693
 
 
694
AT_DATA([foof77.f77],
 
695
[[      subroutine foof77
 
696
      end
 
697
]])
 
698
 
 
699
AT_DATA([foof90.f90],
 
700
[[subroutine foof90
 
701
end
 
702
]])
 
703
 
 
704
AT_DATA([foof95.f95],
 
705
[[subroutine foof95
 
706
end
 
707
]])
 
708
 
 
709
AT_DATA([foof03.f03],
 
710
[[subroutine foof03
 
711
end
 
712
]])
 
713
 
 
714
AT_DATA([foof08.f08],
 
715
[[subroutine foof08
 
716
end
 
717
]])
 
718
 
 
719
AT_CHECK_AUTOCONF
 
720
AT_CHECK_CONFIGURE
 
721
: ${MAKE=make}
 
722
AT_CHECK([$MAKE], [], [ignore], [ignore])
 
723
 
 
724
AT_CLEANUP
 
725
 
 
726
 
 
727
## --------------- ##
 
728
## AC_FC_FREEFORM. ##
 
729
## --------------- ##
 
730
 
 
731
AT_SETUP([AC_FC_FREEFORM])
 
732
 
 
733
AT_DATA([configure.ac],
 
734
[[AC_INIT
 
735
AC_PROG_FC
 
736
AC_FC_FREEFORM
 
737
AC_CONFIG_FILES([Makefile])
 
738
AC_OUTPUT
 
739
]])
 
740
 
 
741
AT_DATA([Makefile.in],
 
742
[[prog: prog.@OBJEXT@
 
743
        @FC@ @FCFLAGS@ -o $@ prog.@OBJEXT@ @LIBS@
 
744
 
 
745
.SUFFIXES: .f .@OBJEXT@
 
746
.f.@OBJEXT@:
 
747
        @FC@ @FCFLAGS@ -c $<
 
748
]])
 
749
 
 
750
AT_DATA([prog.f],
 
751
[[program main
 
752
end
 
753
]])
 
754
 
 
755
AT_CHECK_AUTOCONF
 
756
AT_CHECK_CONFIGURE
 
757
: ${MAKE=make}
 
758
AT_CHECK([$MAKE], [], [ignore], [ignore])
 
759
dnl AT_CHECK([./prog])
 
760
 
 
761
AT_CLEANUP
 
762
 
 
763
 
 
764
## --------------------------------- ##
 
765
## AC_FC_FREEFORM with AC_FC_SRCEXT. ##
 
766
## --------------------------------- ##
 
767
 
 
768
AT_SETUP([AC_FC_FREEFORM with AC_FC_SRCEXT])
 
769
 
 
770
AT_DATA([configure.ac],
 
771
[[AC_INIT
 
772
AC_FC_SRCEXT([f90])
 
773
AC_PROG_FC
 
774
AC_FC_FREEFORM
 
775
AC_CONFIG_FILES([Makefile])
 
776
AC_OUTPUT
 
777
]])
 
778
 
 
779
AT_DATA([Makefile.in],
 
780
[[prog: prog.@OBJEXT@
 
781
        @FC@ @FCFLAGS@ -o $@ prog.@OBJEXT@ @LIBS@
 
782
 
 
783
.SUFFIXES: .f90 .@OBJEXT@
 
784
.f90.@OBJEXT@:
 
785
        @FC@ @FCFLAGS@ -c @FCFLAGS_f90@ $<
 
786
]])
 
787
 
 
788
AT_DATA([prog.f90],
 
789
[[program main
 
790
end
 
791
]])
 
792
 
 
793
AT_CHECK_AUTOCONF
 
794
AT_CHECK_CONFIGURE
 
795
: ${MAKE=make}
 
796
AT_CHECK([$MAKE], [], [ignore], [ignore])
 
797
dnl AT_CHECK([./prog])
 
798
 
 
799
AT_CLEANUP
 
800
 
 
801
 
 
802
## ---------------- ##
 
803
## AC_FC_FIXEDFORM. ##
 
804
## ---------------- ##
 
805
 
 
806
AT_SETUP([AC_FC_FIXEDFORM])
 
807
 
 
808
AT_DATA([configure.ac],
 
809
[[AC_INIT
 
810
AC_PROG_FC
 
811
AC_FC_FIXEDFORM
 
812
AC_CONFIG_FILES([Makefile])
 
813
AC_OUTPUT
 
814
]])
 
815
 
 
816
AT_DATA([Makefile.in],
 
817
[[prog: prog.@OBJEXT@
 
818
        @FC@ @FCFLAGS@ -o $@ prog.@OBJEXT@ @LIBS@
 
819
 
 
820
.SUFFIXES: .f .@OBJEXT@
 
821
.f.@OBJEXT@:
 
822
        @FC@ @FCFLAGS@ -c $<
 
823
]])
 
824
 
 
825
AT_DATA([prog.f],
 
826
[[      program main
 
827
C      fixed-form style comment
 
828
       end
 
829
]])
 
830
 
 
831
AT_CHECK_AUTOCONF
 
832
AT_CHECK_CONFIGURE
 
833
: ${MAKE=make}
 
834
AT_CHECK([$MAKE], [], [ignore], [ignore])
 
835
dnl AT_CHECK([./prog])
 
836
 
 
837
AT_CLEANUP
 
838
 
 
839
 
 
840
## ---------------------------------- ##
 
841
## AC_FC_FIXEDFORM with AC_FC_SRCEXT. ##
 
842
## ---------------------------------- ##
 
843
 
 
844
AT_SETUP([AC_FC_FIXEDFORM with AC_FC_SRCEXT])
 
845
 
 
846
AT_DATA([configure.ac],
 
847
[[AC_INIT
 
848
AC_PROG_FC
 
849
AC_FC_SRCEXT([f90])
 
850
AC_FC_FIXEDFORM
 
851
AC_CONFIG_FILES([Makefile])
 
852
AC_OUTPUT
 
853
]])
 
854
 
 
855
AT_DATA([Makefile.in],
 
856
[[prog: prog.@OBJEXT@
 
857
        @FC@ @FCFLAGS@ -o $@ prog.@OBJEXT@ @LIBS@
 
858
 
 
859
.SUFFIXES: .f90 .@OBJEXT@
 
860
.f90.@OBJEXT@:
 
861
        @FC@ @FCFLAGS@ -c @FCFLAGS_f90@ $<
 
862
]])
 
863
 
 
864
AT_DATA([prog.f90],
 
865
[[      program main
 
866
C      fixed-form style comment
 
867
       end
 
868
]])
 
869
 
 
870
AT_CHECK_AUTOCONF
 
871
AT_CHECK_CONFIGURE
 
872
: ${MAKE=make}
 
873
AT_CHECK([$MAKE], [], [ignore], [ignore])
 
874
dnl AT_CHECK([./prog])
 
875
 
 
876
AT_CLEANUP
 
877
 
 
878
 
 
879
## ------------------ ##
 
880
## AC_FC_LINE_LENGTH. ##
 
881
## ------------------ ##
 
882
 
 
883
AT_SETUP([AC_FC_LINE_LENGTH])
 
884
 
 
885
AT_DATA([Makefile.in],
 
886
[[prog@EXEEXT@: prog.@OBJEXT@
 
887
        @FC@ @FCFLAGS@ -o $@ prog.@OBJEXT@ @LIBS@
 
888
 
 
889
.SUFFIXES: .f .@OBJEXT@
 
890
.f.@OBJEXT@:
 
891
        @FC@ @FCFLAGS@ -c @FCFLAGS_f@ $<
 
892
 
 
893
clean:
 
894
        rm -f *.@OBJEXT@ prog@EEXEXT@
 
895
]])
 
896
 
 
897
line_80=\
 
898
'subroutine foo(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11)'
 
899
line_132=\
 
900
'subroutine foo(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,'\
 
901
'arg12,arg13,arg14,arg15,arg16,arg17,arg18,arg19)'
 
902
line_254=\
 
903
'subroutine foo(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,'\
 
904
'arg12,arg13,arg14,arg15,arg16,arg17,arg18,arg19,arg20,arg21,arg22,arg23,'\
 
905
'arg24,arg25,arg26,arg27,arg28,arg29,arg30,arg31,arg32,arg33,arg34,arg35,'\
 
906
'arg36,arg37,arg38,arg39,arg40)'
 
907
 
 
908
for len in 80 132 254
 
909
do
 
910
  if test $len -eq 254; then arg=unlimited; else arg=$len; fi
 
911
  eval long_line=\$line_$len
 
912
 
 
913
  # Try free-form first, it has a bigger chance of succeeding.
 
914
  for fixed_or_free in FREEFORM FIXEDFORM
 
915
  do
 
916
 
 
917
    cat >configure.ac <<EOF
 
918
AC_INIT
 
919
AC_PROG_FC
 
920
AC_FC_SRCEXT([f])
 
921
AC_FC_$fixed_or_free
 
922
AC_FC_LINE_LENGTH([$arg])
 
923
AC_CONFIG_FILES([Makefile])
 
924
AC_OUTPUT
 
925
EOF
 
926
 
 
927
    cat >prog.f <<EOF
 
928
       $long_line
 
929
       end subroutine
 
930
       program main
 
931
       end program
 
932
EOF
 
933
 
 
934
    AT_CHECK_AUTOCONF
 
935
    AT_CHECK_CONFIGURE
 
936
    : ${MAKE=make}
 
937
    AT_CHECK([$MAKE], [], [ignore], [ignore])
 
938
    dnl AT_CHECK([./prog])
 
939
    AT_CHECK([$MAKE clean], [], [ignore], [ignore])
 
940
 
 
941
  done
 
942
done
154
943
 
155
944
AT_CLEANUP