213 lines
5.9 KiB
Plaintext
Executable File
213 lines
5.9 KiB
Plaintext
Executable File
#---------------------------------------------------------------------------
|
|
# 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)
|