summaryrefslogtreecommitdiffstats
path: root/mpi/config.links
blob: 9ee1d0568b3f5c1038b1d2e622f680e857a080a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# sourced my ../configure to get the list of files to link
# this should set $mpi_ln_src and mpi_ln_dst.
# Note: this is called from the above directory.


mpi_extra_modules=

echo '/* created by config.links - do not edit */' >./mpi/asm-syntax.h

case "${target}" in
    i[345]86*-*-linuxaout* | i[345]86*-*-linuxoldld* | i[345]86*-*-*bsd*)
	echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h
	echo '#include "./i386/syntax.h"' >>./mpi/asm-syntax.h
	path="i386"
	;;
    i[56]86*-*-linuxaout* | i[56]86*-*-linuxoldld* | i[56]86*-*-*bsd*)
	echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h
	echo '#include "./i386/syntax.h"' >>./mpi/asm-syntax.h
	path="i586 i386"
	;;
    i[3456]86*-*-*)
	echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
	echo '#include "./i386/syntax.h"' >>./mpi/asm-syntax.h
	path="i386"
	;;
    i[56]86*-*-* | pentium-*-* | pentiumpro-*-*)
	echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
	echo '#include "./i586/syntax.h"' >>./mpi/asm-syntax.h
	path="i586 i386"
	;;
    alpha*-*-*)
	echo '/* configured for alpha */' >>./mpi/asm-syntax.h
	path="alpha"
	mpi_extra_modules="udiv-qrnnd"
	;;
    hppa7000*-*-*)
	echo '/* configured for HPPA (pa7000) */' >>./mpi/asm-syntax.h
	path="hppa1_1 hppa"
	mpi_extra_modules="udiv-qrnnd"
	;;
    hppa1.0*-*-*)
	echo '/* configured for HPPA 1.0 */' >>./mpi/asm-syntax.h
	path="hppa"
	mpi_extra_modules="udiv-qrnnd"
	;;
    hppa*-*-*)	# assume pa7100
	echo '/* configured for HPPA (pa7100) */' >>./mpi/asm-syntax.h
	path="pa7100 hppa1_1 hppa"
	mpi_extra_modules="udiv-qrnnd"
	;;
    *)
	echo '/* No assembler modules configured */' >>./mpi/asm-syntax.h
	path=""
	;;
esac

case "${target}" in
    *-*-linuxaout* | *-*-linuxoldld*)
	needs_underscore="y"
	;;
    *-*-linux* | *-sysv* | *-solaris* | *-gnu*)
	needs_underscore="n"
	;;
    *)
	needs_underscore="y"
	;;
esac


# Make sysdep.h
echo '/* created by config.links - do not edit */' >./mpi/sysdep.h
if test "$needs_underscore" = "y" ; then
    cat <<EOF >>./mpi/sysdep.h
#if __STDC__
#define C_SYMBOL_NAME(name) _##name
#else
#define C_SYMBOL_NAME(name) _/**/name
#endif
EOF
else
    cat <<EOF >>./mpi/sysdep.h
#define C_SYMBOL_NAME(name) name
EOF
fi


# fixme: grep these modules from Makefile.in
mpi_ln_modules="${mpi_extra_modules} mpih-add1 mpih-mul1 mpih-mul2 mpih-mul3 \
		 mpih-shift mpih-sub1"

mpi_ln_objects=
mpi_ln_src=
mpi_ln_dst=

# try to get file to link from the assembler subdirectory and
# if this fails get it from the generic subdirectory.
path="$path generic"
for fn in $mpi_ln_modules ; do
    mpi_ln_objects="$mpi_ln_objects $fn.o"
    for dir in $path ; do
	rm -f ./mpi/$fn.[Sc]
	if test -f ./mpi/$dir/$fn.S ; then
	    mpi_ln_src="$mpi_ln_src mpi/$dir/$fn.S"
	    mpi_ln_dst="$mpi_ln_dst mpi/$fn.S"
	    break;
	elif test -f ./mpi/$dir/$fn.c ; then
	    mpi_ln_src="$mpi_ln_src mpi/$dir/$fn.c"
	    mpi_ln_dst="$mpi_ln_dst mpi/$fn.c"
	    break;
	fi
    done
done