# # .f fortran # .a library stamp files # .c C-code # .s Assembly code # # ARCH must already be set (from environment or command line). Set a default ARCH = unknown # Default value for mxmb, often overriden by included file. VERSION = std BINDIR = ../bin/$(ARCH)/$(VERSION) OBJDIR = ../obj/$(ARCH)/$(VERSION) TEMPDIR = TMP$(ARCH) LIB = ../obj/$(ARCH)/libcrystal.a MXMB = $(OBJDIR)/libmxm.o SEQ = $(OBJDIR)/libxs.o TCGMSG = $(OBJDIR)/libxt.o PVM = $(OBJDIR)/libxz.o MPI = $(OBJDIR)/libxMPI.o SIZES = sizes # Architecture dependent include file. include Xmakes/$(ARCH).inc default: dirs sequential all: dirs sequential parallel dirs: - mkdir -p $(BINDIR) - mkdir -p $(OBJDIR) sequential: $(BINDIR)/integrals $(BINDIR)/scf $(BINDIR)/scfdir \ $(BINDIR)/properties $(BINDIR)/convert $(BINDIR)/polari parallel: $(BINDIR)/Pintegrals $(BINDIR)/Pscf $(BINDIR)/Pscfdir stamps = \ $(OBJDIR)/libx0.t $(OBJDIR)/libx1.t $(OBJDIR)/libx2.t \ $(OBJDIR)/libx3.t $(OBJDIR)/libx4.t $(OBJDIR)/libx5.t \ $(OBJDIR)/libx6.t $(OBJDIR)/libx7.t $(OBJDIR)/libx8.t \ $(OBJDIR)/libx9.t $(OBJDIR)/libxa.t $(OBJDIR)/libxb.t \ $(OBJDIR)/libxc.t $(OBJDIR)/libxd.t $(OBJDIR)/libxe.t \ $(OBJDIR)/libxf.t $(OBJDIR)/libxg.t $(OBJDIR)/libxh.t \ $(OBJDIR)/libxk.t $(OBJDIR)/libxm.t $(OBJDIR)/libxn.t \ $(OBJDIR)/libxp.t $(OBJDIR)/libxq.t $(OBJDIR)/libxr.t \ $(OBJDIR)/libxw.t $(OBJDIR)/libxx.t $(OBJDIR)/libxy.t \ $(OBJDIR)/libxj.t # Fortran sources OBJF = $(OBJDIR)/start1.o $(OBJDIR)/start2.o $(OBJDIR)/start3.o \ $(OBJDIR)/startD.o $(OBJDIR)/startC.o $(OBJDIR)/startB.o \ $(DEV) $(SEQ) $(HARNESS) $(OBJDIR)/second.o $(OBJDIR)/libmxm.o \ $(OBJDIR)/header.o $(LIB): $(stamps) $(BINDIR)/integrals: $(LIB) $(OBJDIR)/start1.o $(DEV) $(SEQ) $(TIMER) \ $(MXMB) $(OBJDIR)/header.o $(LD) $(LDFLAGS) -o $(BINDIR)/integrals $(OBJDIR)/start1.o $(DEV) $(SEQ) $(LIB) $(TIMER) $(MXMB) $(OBJDIR)/header.o $(LDLIBS) $(BINDIR)/scf: $(LIB) $(OBJDIR)/start2.o $(DEV) $(SEQ) $(TIMER) $(MXMB) \ $(OBJDIR)/header.o $(LD) $(LDFLAGS) -o $(BINDIR)/scf $(OBJDIR)/start2.o $(DEV) $(SEQ) $(LIB) $(TIMER) $(MXMB) $(OBJDIR)/header.o $(LDLIBS) $(BINDIR)/scfdir: $(LIB) $(OBJDIR)/startD.o $(DEV) $(SEQ) $(TIMER) $(MXMB) \ $(OBJDIR)/header.o $(LD) $(LDFLAGS) -o $(BINDIR)/scfdir $(OBJDIR)/startD.o $(DEV) $(SEQ) $(LIB) $(TIMER) $(MXMB) $(OBJDIR)/header.o $(LDLIBS) $(BINDIR)/properties: $(LIB) $(OBJDIR)/start3.o $(DEV) $(SEQ) $(TIMER) \ $(MXMB) $(OBJDIR)/header.o $(LD) $(LDFLAGS) -o $(BINDIR)/properties $(OBJDIR)/start3.o $(DEV) $(SEQ) $(LIB) $(TIMER) $(MXMB) $(OBJDIR)/header.o $(LDLIBS) $(BINDIR)/convert: $(LIB) $(OBJDIR)/startC.o $(DEV) $(SEQ) $(TIMER) \ $(MXMB) $(OBJDIR)/header.o $(LD) $(LDFLAGS) -o $(BINDIR)/convert $(OBJDIR)/startC.o $(DEV) $(SEQ) $(LIB) $(TIMER) $(MXMB) $(OBJDIR)/header.o $(LDLIBS) $(BINDIR)/polari: $(LIB) $(OBJDIR)/startB.o $(SEQ) $(TIMER) \ $(MXMB) $(OBJDIR)/header.o $(LD) $(LDFLAGS) -o $(BINDIR)/polari $(OBJDIR)/startB.o $(DEV) $(SEQ) $(LIB) $(TIMER) $(MXMB) $(OBJDIR)/header.o $(LDLIBS) $(BINDIR)/Pintegrals: $(LIB) $(OBJDIR)/start1.o $(DEV) $(HARNESS) $(TIMER) \ $(MXMB) $(OBJDIR)/header.o $(PLD) $(LDFLAGS) -o $(BINDIR)/Pintegrals $(OBJDIR)/start1.o $(DEV) $(HARNESS) $(LIB) $(TIMER) $(MXMB) $(OBJDIR)/header.o $(PLIB) $(LDLIBS) $(BINDIR)/Pscf: $(LIB) $(OBJDIR)/start2.o $(DEV) $(HARNESS) $(TIMER) $(MXMB) \ $(OBJDIR)/header.o $(PLD) $(LDFLAGS) -o $(BINDIR)/Pscf $(OBJDIR)/start2.o $(DEV) $(HARNESS) $(LIB) $(TIMER) $(MXMB) $(OBJDIR)/header.o $(PLIB) $(LDLIBS) $(BINDIR)/Pscfdir: $(LIB) $(OBJDIR)/startD.o $(DEV) $(HARNESS) $(TIMER) \ $(MXMB) $(OBJDIR)/header.o $(PLD) $(LDFLAGS) -o $(BINDIR)/Pscfdir $(OBJDIR)/startD.o $(DEV) $(HARNESS) $(LIB) $(TIMER) $(MXMB) $(OBJDIR)/header.o $(PLIB) $(LDLIBS) clean: - /bin/rm -f $(OBJDIR)/*.o $(OBJDIR)/*.a vclean: clean - /bin/rm -f -r $(BINDIR) $(OBJDIR) $(OBJDIR)/etime.o: etime.c $(CC) -c $(CFLAGS) -o $(OBJDIR)/etime.o etime.c # explicit dependencies. integrals: $(BINDIR)/integrals scf: $(BINDIR)/scf scfdir: $(BINDIR)/scfdir properties: $(BINDIR)/properties Pintegrals: $(BINDIR)/Pintegrals Pscf: $(BINDIR)/Pscf Pscfdir: $(BINDIR)/Pscfdir $(OBJDIR)/libx0.t: libx0.f $(OBJDIR)/libx1.t: libx1.f $(OBJDIR)/libx2.t: libx2.f $(OBJDIR)/libx3.t: libx3.f $(OBJDIR)/libx4.t: libx4.f $(OBJDIR)/libx5.t: libx5.f $(OBJDIR)/libx6.t: libx6.f $(OBJDIR)/libx7.t: libx7.f $(OBJDIR)/libx8.t: libx8.f $(OBJDIR)/libx9.t: libx9.f $(OBJDIR)/libxa.t: libxa.f $(OBJDIR)/libxb.t: libxb.f $(OBJDIR)/libxc.t: libxc.f $(OBJDIR)/libxd.t: libxd.f $(OBJDIR)/libxe.t: libxe.f $(OBJDIR)/libxf.t: libxf.f $(OBJDIR)/libxg.t: libxg.f $(OBJDIR)/libxh.t: libxh.f $(OBJDIR)/libxk.t: libxk.f $(OBJDIR)/libxm.t: libxm.f $(OBJDIR)/libxn.t: libxn.f $(OBJDIR)/libxp.t: libxp.f $(OBJDIR)/libxq.t: libxq.f $(OBJDIR)/libxr.t: libxr.f $(OBJDIR)/libxw.t: libxw.f $(OBJDIR)/libxx.t: libxx.f $(OBJDIR)/libxy.t: libxy.f $(OBJDIR)/libxj.t: libxj.f $(OBJDIR)/header.o: header.f $(OBJDIR)/second.o: second.f $(OBJDIR)/libxt.o: libxt.f $(OBJDIR)/libxMPI.o: libxMPI.f $(OBJDIR)/libxt_mp.o: libxt_mp.f $(OBJDIR)/libxz.o: libxz.f $(OBJDIR)/libmxm.o: libmxm.f $(OBJDIR)/start1.o: start1.f $(OBJDIR)/start2.o: start2.f $(OBJDIR)/start3.o: start3.f $(OBJDIR)/startD.o: startD.f $(OBJDIR)/startC.o: startC.f # explicit MXMB targets $(OBJDIR)/mxmb_rs6k.o: mxmb_rs6k.s $(F77) -c $(F77FLAGS) -o $(OBJDIR)/mxmb_rs6k.o mxmb_rs6k.s $(OBJDIR)/mxmbn_rs6k.o: mxmb_rs6k.s $(F77) -c $(F77FLAGS) -o $(OBJDIR)/mxmbn_rs6k.o mxmbn_rs6k.s $(OBJDIR)/mxmbsun.o: mxmbsun.s as -o $(OBJDIR)/mxmbsun.o mxmbsun.s $(OBJDIR)/mxmbnsun.o: mxmbnsun.s as -o $(OBJDIR)/mxmbnsun.o mxmbnsun.s $(OBJDIR)/mxmbymp.o: mxmbymp.s as -o $(OBJDIR)/mxmbymp.o mxmbymp.s $(OBJDIR)/mxmbc90.o: mxmbc90.s as -o $(OBJDIR)/mxmbc90.o mxmbc90.s $(stamps): - rm -r -f $(TEMPDIR) - mkdir $(TEMPDIR) cd $(TEMPDIR) ; fsplit ../$(@F:.t=.f) ; $(F77) -c $(F77FLAGS) *.f $(AR) $(ARFLAGS) $(LIB) $(TEMPDIR)/*.o $(RANLIB) $(LIB) - rm -r -f $(TEMPDIR) touch $@ $(OBJF): $(F77) -c $(F77FLAGS) -o $@ $(@F:.o=.f)