1# f2c 2# 3# Build f2c into OBJROOT and let scipy use it to build. A copy of numpy 4# is needed, modified to support f2c as one of its known fortran compilers. 5# Installation directory is given by the variable TMPPREFIX. 6# Set RC_CFLAGS to build multiple architectures. 7 8F2CNAME = f2c 9F2CVERS = 20100827 10F2CNAMEVERS = $(F2CNAME)-$(F2CVERS) 11LIBF2CNAME = libf2c 12 13F2CSRC = $(SRCROOT)/tmpprefix/$(F2CNAME) 14F2CTOP = $(OBJROOT)/$(F2CNAME) 15F2CDIR = $(F2CTOP)/$(F2CNAME) 16TARSUFFIX = .tar.gz 17 18install: $(F2CDIR) $(F2CDIR)/$(LIBF2CNAME) buildsrc 19 @set -x && \ 20 cd $(F2CDIR) && \ 21 sed 's,XXXXX,$(TMPPREFIX),' $(F2CSRC)/fc.ed | ed - fc && \ 22 install -d $(TMPPREFIX)/bin $(TMPPREFIX)/include $(TMPPREFIX)/lib && \ 23 cp -p $(LIBF2CNAME)/$(LIBF2CNAME).a $(TMPPREFIX)/lib && \ 24 cp -p $(LIBF2CNAME)/f2c.h $(TMPPREFIX)/include && \ 25 ranlib $(TMPPREFIX)/lib/$(LIBF2CNAME).a && \ 26 install src/f2c $(TMPPREFIX)/bin && \ 27 install fc $(TMPPREFIX)/bin && \ 28 ln -s fc $(TMPPREFIX)/bin/f77 29 cp -f $(F2CDIR)/permission $(OSL)/$(F2CNAMEVERS).txt 30 cp -f $(F2CSRC)/$(F2CNAME).partial $(OSV)/$(F2CNAMEVERS).partial 31 32$(F2CDIR): 33 mkdir -p $(F2CTOP) 34 tar xzof $(F2CNAME)-mod$(TARSUFFIX) -C $(F2CTOP) 35 36$(F2CDIR)/$(LIBF2CNAME): 37 @set -x && \ 38 cd $(F2CDIR) && \ 39 unzip $(LIBF2CNAME).zip -d $(LIBF2CNAME) && \ 40 cd $(LIBF2CNAME) && \ 41 cp makefile.u Makefile && \ 42 ed - f2c.h0 < $(F2CSRC)/f2c.h0.ed && \ 43 ed - sysdep1.h0 < $(F2CSRC)/sysdep1.h0.ed && \ 44 ed - Makefile < $(F2CSRC)/libf2c_Makefile.ed && \ 45 ed - fio.h < $(F2CSRC)/fio.h.ed && \ 46 cp $(F2CSRC)/arith.h $(F2CSRC)/cpu_time__.c . && \ 47 make f2c.h && \ 48 make 49 50buildsrc: 51 @set -x && \ 52 cd $(F2CDIR)/src && \ 53 cp makefile.u Makefile && \ 54 ed - Makefile < $(F2CSRC)/src_Makefile.ed && \ 55 ed - format.c < $(F2CSRC)/src_format.c.ed && \ 56 ed - defs.h < $(F2CSRC)/src_defs.h.ed && \ 57 ed - main.c < $(F2CSRC)/src_main.c.ed && \ 58 rm -f f2c.h && \ 59 ln -s ../$(LIBF2CNAME)/f2c.h && \ 60 make 61 62afterinstallsrc: 63 perl $(SRCROOT)/tar-remove.pl '^f2c/(?:msdos|mswin)/' $(F2CSRC)/$(F2CNAME)$(TARSUFFIX) $(F2CNAME)-mod$(TARSUFFIX) 64 rm -f $(F2CSRC)/$(F2CNAME)$(TARSUFFIX) 65