Files
fit/make_gen

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)