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