include ../config.h .SUFFIXES: .SUFFIXES: .nab .c .o .f .nab.o: ./nab -c $(NABFLAGS) $< @rm -f $*.c .c.o: $< $(CC) -c $(CFLAGS) $< .f.o: $< $(FC) -c $(FFLAGS) $(FREEFORMAT_FLAG) $< NAB2COBJS= \ nab2c.o \ cgen.o \ checkexpr.o \ dumpnode.o\ errormsg.o \ fixexpr.o \ genavscode.o \ node.o \ symbol.o \ y.tab.o LIBNABOBJS= \ NAB_ainit.o \ allatom_to_dna3.o \ axis2frame.o \ binpos.o \ bonded_atoms.o \ boundsutil.o \ conjgrad.o \ database.o \ dna3.o \ dna3_to_allatom.o \ dump.o \ embed.o \ fd_helix.o \ frameutil.o \ getdist.o \ hashutil.o \ jacobi.o \ match.o \ matop.o \ memutil.o \ molio.o \ molsurf.o \ molutil.o \ nab2avs.o \ nab2geom.o \ newton.o \ nmode.o \ chirvol.o \ pointutil.o \ prm.o \ rand2.o \ regexp.o \ reslib.o \ sasad.o \ select_atoms.o \ sff.o \ stringutil.o \ temputil.o \ time.o \ tm_malloc.o \ traceback.o \ bdna.o \ dg_helix.o \ getchivol.o \ getres.o \ getseq_from_pdb.o \ getxyz_from_pdb.o \ getpdb_prm.o \ getpdb_rlb.o \ linkprot.o \ link_na.o \ na_anal.o \ setboundsfromdb.o \ setchiplane.o \ wc_basepair.o \ wc_complement.o \ wc_helix.o \ yammp.o EXAMPLES= \ ../examples/program_*.nab #=========================================================================== system: nab \ nab2c \ libnab.a nab: nab.c $(CC) -DBINDIR='"."' -DINCDIR='"."' -DLIBDIR='"."' $(CFLAGS) \ -DCC='"$(CC)"' -DCPP='"$(CPP)"' -DFLIBS='"$(FLIBS)"' -o nab$(SFX) nab.c nab2c: $(NAB2COBJS) $(CC) $(CFLAGS) -o nab2c$(SFX) $(NAB2COBJS) libnab.a: $(LIBNABOBJS) -rm -f libnab.a $(AR) rv libnab.a $(LIBNABOBJS) -ranlib libnab.a y.tab.h: y.tab.c y.tab.c: nabgrm.y lex.yy.c $(YACC) -d nabgrm.y y.tab.o: y.tab.c $(CC) -c $(CFLAGS) -D$(LEX) y.tab.c lex.yy.c: nablex.l $(LEX) nablex.l lex.dg_options.c: dg_options.l $(LEX) -t dg_options.l | sed 's/yy/dgo/g' > lex.dg_options.c lex.mm_options.c: mm_options.l $(LEX) -t mm_options.l | sed 's/yy/mmo/g' > lex.mm_options.c checkexpr.c: (cd ../semantics; make; mv checkexpr.c ../src ) #=========================================================================== # Compiles with un-optimized code, (for compiler bugs, one assumes): fd_helix.o: fd_helix.nab nab nab2c ./nab -c -O0 fd_helix.nab #=========================================================================== # Compiles with optimized code: molio.o: molio.c $(CC) -c $(OCFLAGS) molio.c sff.o: sff.c $(CC) -c $(OCFLAGS) -D$(LEX) sff.c conjgrad.o: conjgrad.c $(CC) -c $(OCFLAGS) conjgrad.c newton.o: newton.c $(CC) -c $(OCFLAGS) newton.c boundsutil.o: boundsutil.c $(CC) -c $(OCFLAGS) boundsutil.c embed.o: embed.c $(CC) -c $(OCFLAGS) -D$(LEX) embed.c bonded_atoms.o: bonded_atoms.c $(CC) -c $(OCFLAGS) bonded_atoms.c rand2.o: rand2.c $(CC) -c $(OCFLAGS) rand2.c sasad.o: sasad.c $(CC) -c $(OCFLAGS) sasad.c #=========================================================================== clean: -rm -f *.o nab$(SFX) nab2c$(SFX) libnab.a checkexpr.c -rm -f lex.mm_options.c lex.dg_options.c lex.yy.c y.tab.c y.tab.h (cd ../semantics; make clean ) install: system $(CC) -DBINDIR='"$(BINDIR)"' \ -DINCDIR='"$(INCDIR)"' \ -DLIBDIR='"$(LIBDIR)"' \ $(CFLAGS) -DCC='"$(CC)"' -DCPP='"$(CPP)"' -DFLIBS='"$(FLIBS)"' \ -o nab_install nab.c -mkdir $(NABHOME)/bin $(NABHOME)/lib -mkdir $(LIBDIR) $(BINDIR) $(INCDIR) mv -f nab_install$(SFX) $(BINDIR)/nab$(SFX) mv -f nab2c$(SFX) $(BINDIR) mv -f libnab.a $(LIBDIR) rm -f $(INCDIR)/nabcode.h $(INCDIR)/defreal.h $(INCDIR)/nab.h cp nabcode.h $(INCDIR) cp nabtypes.h $(INCDIR) cp defreal.h $(INCDIR) cp nab.h $(INCDIR) beforerealinstall: $(CC) -DBINDIR='"$(PREFIX)/bin"' \ -DINCDIR='"$(PREFIX)/include"' \ -DLIBDIR='"$(PREFIX)/share/nab/lib"' \ $(CFLAGS) -DCC='"$(CC)"' -DCPP='"$(CPP)"' \ -DFLIBS='"$(PREFIX)/share/nab/lib/libsym.a $(PREFIX)/share/nab/lib/lapack.a $(PREFIX)/share/nab/lib/blas.a $(PREFIX)/share/nab/lib/f2c.a"' \ -static -o ../bin/nab${SFX} nab.c uninstall: clean -rm -f \ $(BINDIR)/nab2c$(SFX) $(BINDIR)/nab$(SFX) $(INCDIR)/nabcode.h \ $(INCDIR)/nab.h $(INCDIR)/defreal.h $(LIBDIR)/libnab.a examples: system @for i in $(EXAMPLES); do ./nab $(NABFLAGS) -o `ls $$i | sed 's/.nab/$(SFX)/'` $$i; done (cd ../examples; make examples ) #=========================================================================== axis2frame.o: \ nab.h binpos.o: \ memutil.h bonded_atoms.o: \ nab.h boundsutil.o: \ nab.h \ memutil.h \ traceback.h \ errormsg.h cgen.o: \ nab.h \ errormsg.h \ y.tab.h chirvol.o: \ nab.h conjgrad.o: \ memutil.h newton.o: \ memutil.h database.o: \ database.h dump.o: \ nab.h dumpnode.o: \ nab.h \ y.tab.h embed.o: \ nab.h \ errormsg.h \ memutil.h \ traceback.h \ chirvol.h \ lex.dg_options.c errormsg.o: \ errormsg.h fixexpr.o: \ nab.h \ errormsg.h \ y.tab.h frameutil.o: \ nab.h \ memutil.h genavscode.o: \ nab.h \ y.tab.h hashutil.o: \ nab.h jacobi.o: \ memutil.h matop.o: \ nabcode.h match.o: \ nab.h memutil.o: \ nab.h molio.o: \ nab.h \ errormsg.h molsurf.o: \ nab.h \ molsurf.h molutil.o: \ nab.h \ errormsg.h \ memutil.h nab2avs.o: \ nab.h nab2c.o: \ nab.h nab2geom.o: \ nab.h node.o: \ nab.h \ errormsg.h \ y.tab.h pointutil.o: \ nab.h prm.o: \ nab.h rand2.o: \ defreal.h reslib.o: \ nab.h \ errormsg.h \ memutil.h \ chirvol.h \ database.h select_atoms.o: \ nab.h sff.o: \ nab.h \ memutil.h \ lex.mm_options.c \ rattle.c \ eff.c \ sff2.c \ debug.h stringutil.o: \ nab.h symbol.o: \ nab.h \ errormsg.h temputil.o: \ nab.h traceback.o: \ errormsg.h y.tab.o: \ nab.h \ errormsg.h \ lex.yy.c