# Evidently, it is important to use both compilers from gnu (or SUN) # rather than mix-and-match. That way, the object code files will be # compatible for linking together. (Also, it turns out that 'gcc' # can be used in place of 'g77' and/or 'g++', since gcc chooses the # correct compiler based on the source filename.) FC = g77 CC = g++ # Both gnu compilers understand these flags. # -c (don't link, just create object file) # -g (add debugging info readable by gdb) # -O (optimize) FFLAGS = -c -g -O DRIVER1 = driver1.o #DRIVER2 = driver2.o #DRIVER3 = driver3.o ROUTINES = routines.o LINKTO = -o cdriver #all : lbfgsb1 lbfgsb2 lbfgsb3 # libs need to be listed at the END of the link command # -lg2c (fortran run-time library, needed when main prog is not fortran) # -lm (math library) cdriver: $(DRIVER1) $(ROUTINES) $(CC) $(LINKTO) $(DRIVER1) $(ROUTINES) -lg2c -lm driver1.o: driver1.C $(CC) $(FFLAGS) driver1.C routines.o: routines.f $(FC) $(FFLAGS) routines.f #lbfgsb1 : $(DRIVER1) $(ROUTINES) # $(FC) $(FFLAGS) $(DRIVER1) $(ROUTINES) -o x.lbfgsb1 #lbfgsb2 : $(DRIVER2) $(ROUTINES) # $(FC) $(FFLAGS) $(DRIVER2) $(ROUTINES) -o x.lbfgsb2 #lbfgsb3 : $(DRIVER3) $(ROUTINES) # $(FC) $(FFLAGS) $(DRIVER3) $(ROUTINES) -o x.lbfgsb3 #----------------------------- clean: rm *.o *~