#--------------------------------------------------------------------------- # Makefile for FIT and some related programs # # Markus Zolliker, Sept 2002 #-------------------------------------------------------------------------- -include make_deb #NXFLAG is Y when NeXus should be used NXF_Y = dat_nexus.o NXF_ = dat_nexus_dum.o F_OBJ = fit_main.o fit_win.o \ cvt.o fit_merge.o fit_abskor.o fit_auto.o fit_mon.o \ fit_bars.o fit_multiply.o inex.o \ fit_command.o fit_out.o \ dat_utils.o fit_connect.o fit_peak.o migrad.o \ dat_fit3.o fit_cor.o fit_dat.o fit_print.o \ dat_lnsp.o fit_exit.o fit_rel.o quick_sort.o \ dat_init.o dat_open.o fit_export.o fit_scale.o simplex.o \ dat_tasmad.o fit_file.o fit_set.o dat_ccl.o dat_5c2.o \ dat_2t.o dat_rita.o dat_table.o dat_frm.o \ dat_oldtas.o dat_sics.o dat_fullp.o fit_fit.o fit_style.o \ fit_fix.o fit_subtract.o \ fit_fun.o fifun.o fit_init.o fit_title.o \ fit_list.o fit_user.o fit_range.o fit_array.o str.o \ metaf.o intprt.o dat_ida.o dat_fda.o dat_d1a.o \ gra.o fit_plot.o fit_bgedit.o cho.o \ dat_xy.o dat_xys.o dat_xysm.o dat_inx.o dat_spec.o \ sys_getenv.o sys_home.o sys_cmdpar.o sys_date.o sys_remote_host.o \ sys_wait.o sys_lun.o sys_file.o sys_open.o sys_parse.o \ $(NXF_$(NXFLAG)) $(NAPIF) NXC_Y = napi_err.o dat_c.o C_OBJ = sys_fun.o sys_unix.o \ metac.o myc_str.o myc_err.o myc_tmp.o \ sys_env.o sys_rdline.o sys_try.o \ dat_tascom_dir.o main.o \ $(NXC_$(NXFLAG)) LIB_OBJ = $(C_OBJ) $(F_OBJ) sys_fvi.o fit_help.o fit_vers.o NXINC_Y=-I$(NXINC) -I$(NXHDF) NXPATH_Y=:$(NXINC):$(NXHDF) NXLIB_Y=$(NXLIB) LL = $(PGLIB) $(RDLIB) $(NXLIB_$(NXFLAG)) LIB_a= $(LL) LIB_so= LIBFIT = libfit.$(LIB_TYPE) LF = $(LIB_$(LIB_TYPE)) libfit.a ARFLAGS = cr .SUFFIXES: .o .c .f F_OPT_D = $(F_DEB) F_OPT_ = $(F_OPT) FFLAGS = $(F_FLAGS) $(F_STRICT) $(F_OPT_$(DEB)) FFLAGSR = $(F_FLAGS) $(F_RELAXED) $(F_OPT_$(DEB)) CFLAGS = $(C_FLAGS) $(C_STRICT) -Isrc/gen CFLAGSR = $(C_FLAGS) $(C_RELAXED) -Isrc/gen VPATH = src/gen/$(SPECPATH):src/unix/:src/pgm/:./$(NXPATH_$(NXFLAG)) SUPBIN = cho_ terinq_ sumvar deteff clamp abskor3 csc addit subit \ trics_ccl addchan addei polcal csvsumvar autofit fitlor MAINBIN = fit $(ADD_ALL) ALL = $(MAINBIN) $(LIBFIT) $(SUPBIN) default: fit libfit.a $(LIBFIT) $(RDLIBSO) all: $(ALL) fit: fit.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) $(LDFLAGS) myfit: src/makefile_$(FIT_VERSION) src/make_gen src/gen/myfit_head cp -f src/gen/myfit_head ./myfit @echo '$(FC) $(FFLAGS) $$* $(INSTDIR)/lib/libfit.a $(LL) $(INSTDIR)/lib/libfit.a' >> myfit chmod +x myfit libfit.a: $(LIB_OBJ) make_fdep $(CDEP) rm -f $@ $(AR) $(ARFLAGS) $@ $(LIB_OBJ) ranlib $@ libfit.so: $(LIB_OBJ) rm -f libfit.so $(FC) $(FFLAGS) -shared -o libfit.so $(LIB_OBJ) $(LL) dat_nexus.o: dat_nexus.f $(FC) $(FFLAGSR) $(NXINC_$(NXFLAG)) -c $F dat_c.o: dat_c.c $(CC) $(CFLAGSR) $(NXINC_$(NXFLAG)) -c $C napi_err.o: napi_err.c $(CC) $(CFLAGSR) $(NXINC_$(NXFLAG)) -c $C sumvar: sumvar.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) csvsumvar: csvsumvar.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) csc: csc.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) deteff: deteff.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) clamp: clamp.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) abskor3: abskor3.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) addit: addit.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) addchan: addchan.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) subit: subit.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) autofit: autofit.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) fitvers: fitv.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) brows.o: brows.f $(FC) $(FFLAGSR) $(LDFLAGS) $(NXINC_$(NXFLAG)) -c $F brows: brows.o $(LIBFIT) $(FC) $(FFLAGSR) $(LDFLAGS) -o $@ $Q $(LF) cho_: chooser.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) terinq_: terinq.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) tricslog: tricslog.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) trics_ccl: trics_ccl.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) addei: addei.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) polcal: polcal.o $(LIBFIT) $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q $(LF) make_custom: make_custom.f make_fvi.f make_help.f make_vers.f str.o \ sys_open.o sys_cmdpar.o sys_unix.o sys_getenv.o sys_env.o \ myc_str.o myc_err.o myc_tmp.o $(FC) $(FFLAGS) $(LDFLAGS) -o $@ $Q fit_vers.f: make_custom fit.vers $(F_OBJ:.o=.f) $(C_OBJ:.o=.c) ./make_custom src/gen/fit.vers sys_fvi.c fit_help.f: make_custom lib.fvi fit.help ./$Q fitlor: src/gen/fitlor.py cp src/gen/fitlor.py fitlor INSTBIN=$(INSTDIR)/bin INSTLIB=$(INSTDIR)/lib $(MAINBIN:%=$(INSTBIN)/%): $(MAINBIN) cp -f $(@:$(INSTBIN)/%=%) $@ $(SUPBIN:%=$(INSTBIN)/%): $(SUPBIN) cp -f $(@:$(INSTBIN)/%=%) $@ $(INSTLIB)/libfit.a: libfit.a cp -f libfit.a $(INSTLIB)/libfit.a $(INSTLIB)/fitexample.f: src/gen/fitexample.f cp -f src/gen/fitexample.f $(INSTLIB)/fitexample.f inst: $(MAINBIN:%=$(INSTBIN)/%) $(INSTLIB)/libfit.a $(INSTLIB)/fitexample.f install: inst $(SUPBIN:%=$(INSTBIN)/%) PRJS= $(F_OBJ:.o=.f) # "make check" will check everything that has been changed. check: fit.f $(PRJS) ftnchek -declare -source=dec-tab -notruncation -wrap=0 \ -arguments=no-arrayness -nopure -nousage -quiet $Q clean: rm -f *.o *.d *.df *.f *.c $(ALL) terinq make_custom \ make_fdep make_cdep libfit.so so_locations purge_c: rm -f $(C_OBJ) make_fdep: $(F_OBJ:.o=.f) # search for include statements. the rest of the line is text processing @echo "determine Fortran include file dependencies" @echo $Q @grep "include.*'.*'" $Q | sed \ "s+:.*include.'\(.*\)'.*+: \1+g;s+.*/\(.*\)\.f:+\1.o: \1.f+g" \ | sort -u > make_fdep make_cdep: $(C_OBJ:.o=.c) @echo "collect C include file dependencies" @- cat *.d | grep -v "/usr" > make_cdep -include make_fdep -include $(CDEP) $(C_OBJ:.o=.d)