1TOPDIR	= ..
2
3include ../Makefile.system
4
5ifndef EXPRECISION
6EXPRECISION	= 0
7endif
8
9ifndef NO_CBLAS
10NO_CBLAS	= 0
11endif
12
13ifeq ($(OSNAME), WINNT)
14ifeq ($(F_COMPILER), GFORTRAN)
15EXTRALIB += -lgfortran
16endif
17endif
18
19ifeq ($(OSNAME), CYGWIN_NT)
20ifeq ($(F_COMPILER), GFORTRAN)
21EXTRALIB += -lgfortran
22endif
23endif
24
25all::
26
27libs::
28
29prof::
30
31hpl:: libgoto_hpl.$(LIBSUFFIX)
32
33hpl_p:: libgoto_hpl_p.$(LIBSUFFIX)
34
35libgoto_hpl.$(LIBSUFFIX) : ../$(LIBNAME)
36	rm -f $(@F)
37	$(LD) -r $(LDFLAGS) -o goto.$(SUFFIX) --whole-archive $< --no-whole-archive
38	$(AR) cq $(@F) goto.$(SUFFIX)
39	$(RANLIB) libgoto_hpl.$(LIBSUFFIX)
40
41libgoto_hpl_p.$(LIBSUFFIX) :  ../$(LIBNAME_P)
42	rm -f $(@F)
43	$(LD) -r  $(LDFLAGS) -o goto.$(PSUFFIX)  --whole-archive $< --no-whole-archive
44	$(AR) cq $(@F) goto.$(PSUFFIX)
45	$(RANLIB) libgoto_hpl_p.$(LIBSUFFIX)
46
47libgoto_hpl.dll : libgoto_hpl.$(LIBSUFFIX) dllinit.$(SUFFIX) libgoto_hpl.def
48	$(DLLWRAP) -o $(@F) --def libgoto_hpl.def --entry _dllinit -s dllinit.$(SUFFIX) --dllname libgoto_hpl.dll libgoto_hpl.$(LIBSUFFIX)
49	lib /machine:X64 /def:libgoto_hpl.def
50
51dyn : $(LIBDYNNAME)
52
53zip : dll
54	zip $(LIBZIPNAME) $(LIBDLLNAME) $(LIBNAME)
55
56dll  : libgoto2.dll
57
58dll2 : libgoto2_shared.dll
59
60libgoto2.dll : ../$(LIBNAME) libgoto2.def dllinit.$(SUFFIX)
61	$(RANLIB) ../$(LIBNAME)
62ifeq ($(BINARY32), 1)
63	$(DLLWRAP) -o $(@F) --def libgoto2.def \
64	--entry _dllinit@12 -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB)
65	-lib /machine:i386 /def:libgoto2.def
66else
67	$(DLLWRAP) -o $(@F) --def libgoto2.def \
68	--entry _dllinit    -s dllinit.$(SUFFIX) --dllname $(@F) ../$(LIBNAME) $(FEXTRALIB)
69	-lib /machine:X64 /def:libgoto2.def
70endif
71
72libgoto2_shared.dll : ../$(LIBNAME) libgoto2_shared.def
73	$(CC) $(CFLAGS) libgoto2_shared.def -shared -o $(@F) \
74	-Wl,--whole-archive ../$(LIBNAME) -Wl,--no-whole-archive \
75	-Wl,--out-implib,libgoto2_shared.lib $(FEXTRALIB)
76
77libgoto2.def : gensymbol
78	perl ./gensymbol win2k    $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) > $(@F)
79
80libgoto2_shared.def : gensymbol
81	perl ./gensymbol win2k    $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) > $(@F)
82
83libgoto_hpl.def : gensymbol
84	perl ./gensymbol win2khpl $(ARCH) dummy $(EXPRECISION) $(NO_CBLAS) > $(@F)
85
86$(LIBDYNNAME) : ../$(LIBNAME) osx.def
87	$(PREFIX)gcc $(CFLAGS) -all_load -dynamiclib -o $(LIBDYNNAME) $< -Wl,-exported_symbols_list,osx.def  $(FEXTRALIB)
88
89symbol.$(SUFFIX) : symbol.S
90	$(CC) $(CFLAGS) -c -o $(@F) $^
91
92dllinit.$(SUFFIX) : dllinit.c
93	$(CC) $(CFLAGS) -c -o $(@F) -s $<
94
95ifeq ($(OSNAME), Linux)
96
97so : ../$(LIBSONAME)
98
99../$(LIBSONAME) : ../$(LIBNAME) linux.def linktest.c
100	$(CC) $(CFLAGS) -shared -o ../$(LIBSONAME) \
101	-Wl,--whole-archive ../$(LIBNAME) -Wl,--no-whole-archive \
102	-Wl,--retain-symbols-file=linux.def $(EXTRALIB)
103	$(CC) $(CFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK.
104	rm -f linktest
105
106endif
107
108ifeq ($(OSNAME), FreeBSD)
109
110so : ../$(LIBSONAME)
111
112../$(LIBSONAME) : ../$(LIBNAME) linux.def linktest.c
113	$(CC) $(CFLAGS)  -shared -o ../$(LIBSONAME) \
114	-Wl,--whole-archive ../$(LIBNAME) -Wl,--no-whole-archive \
115	-Wl,--retain-symbols-file=linux.def $(EXTRALIB)
116	$(CC) $(CFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK.
117	rm -f linktest
118
119endif
120
121ifeq ($(OSNAME), OSF1)
122
123so : ../$(LIBSONAME)
124
125../$(LIBSONAME) :
126	$(CC) -shared -o ../$(LIBSONAME) ../$(LIBNAME)
127endif
128
129ifeq ($(OSNAME), SunOS)
130
131so : ../$(LIBSONAME)
132	$(CC) $(CFLAGS)  -shared -o ../$(LIBSONAME) \
133	-Wl,--whole-archive ../$(LIBNAME) -Wl,--no-whole-archive $(EXTRALIB)
134	$(CC) $(CFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK.
135	rm -f linktest
136
137endif
138
139ifeq ($(OSNAME), AIX)
140
141ifeq ($(COMPILER_F77), xlf)
142
143goto32.$(SUFFIX) : ../$(LIBNAME) aix.def
144	ld -o $(@F) ../$(LIBNAME) -bE:aix.def -bM:SRE -bnoexpall -bnoentry -L$(HOME)/misc/lib -lxlf90 -lc -lm  -lpthread
145
146goto64.$(SUFFIX) : ../$(LIBNAME) aix.def
147	ld -b64 -o $(@F) ../$(LIBNAME) -bE:aix.def -bM:SRE -bnoexpall -bnoentry -L$(HOME)/misc/lib/ppc64 -lxlf90 -lc -lm -lpthread
148else
149goto32.$(SUFFIX) : ../$(LIBNAME) aix.def
150	ld -o $(@F) ../$(LIBNAME) -bE:aix.def -bM:SRE -bnoexpall -bnoentry -L$(HOME)/misc/lib -lg2c -lc -lm
151
152goto64.$(SUFFIX) : ../$(LIBNAME) aix.def
153	ld -b64 -o $(@F) ../$(LIBNAME) -bE:aix.def -bM:SRE -bnoexpall -bnoentry -L$(HOME)/misc/lib/ppc64 -lg2c -lc -lm
154endif
155endif
156
157static : ../$(LIBNAME)
158	$(LD) $(LDFLAGS) -r -o goto.$(SUFFIX) \
159	--whole-archive ../$(LIBNAME) --no-whole-archive
160	rm -f ../$(LIBNAME)
161	$(AR) -cq ../$(LIBNAME) goto.$(SUFFIX)
162	rm -f goto.$(SUFFIX)
163
164linux.def : gensymbol ../Makefile.system ../getarch.c
165	perl ./gensymbol linux $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) > $(@F)
166
167osx.def : gensymbol ../Makefile.system ../getarch.c
168	perl ./gensymbol osx $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) > $(@F)
169
170aix.def : gensymbol ../Makefile.system ../getarch.c
171	perl ./gensymbol aix $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) > $(@F)
172
173symbol.S : gensymbol
174	perl ./gensymbol win2kasm noarch dummy $(EXPRECISION) $(NO_CBLAS) > symbol.S
175
176test : linktest.c
177	$(CC) $(CFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) -lm && echo OK.
178	rm -f linktest
179
180linktest.c : gensymbol ../Makefile.system ../getarch.c
181	perl ./gensymbol linktest  $(ARCH) $(BU) $(EXPRECISION) $(NO_CBLAS) > linktest.c
182
183clean ::
184	@rm -f *.def *.dylib __.SYMDEF*
185
186include ../Makefile.tail
187
188
189