#
# Makefile for Mn_Fit.
#
SHELL = /bin/sh
#MN_FIT_TOP = /home/brock/mn_fit
TMPDIR := /tmp
MN_FIT := $(shell pwd)
MN_FIT_EXE = mn_fit_x.exe
#
# You may have to change these setting to reflect your setup
# autoconf should handle it at some point
#
MACHINE = $(shell uname -s)
#MACHINE  = Linux
#MACHINE  = SunOS
#MACHINE  = OSF1
#
# Run with DEBUG=on for debug version
#
DEBUG = off
#
# Install a test version of Mn_Fit
#
TEST = off
#
# CERN libraries default location and version
#
CERN     := /cern
CERNVERS := 2002
#
# ROOT
#
rootsys = $(ROOTSYS)
#
# Extra library needed for ROOT version
#
GXXLIB   := -lg2c
#
# Readline libraries
#
READLINE = on
READLINELIB := -lreadline -lncurses
GCCLIB      :=
#
# Locations for installation
#
bindir = /usr/local/bin
libdir = /usr/local/lib/mn_fit
#
# Special directories for different places
#
include $(MN_FIT)/Makefile.site
#
# CERN libraries
#
include $(MN_FIT)/Makefile.cernlib
#
#-------------------------------------------------------------------------
# Set compile commands for your machine
# This should be done by autoconf at some point
#
# Compiler commands and flags
#
FPP = gcc -E -C -P
FPPFLAGS += -DUNIX -I./inc -I./inc/cern_$(CERNVERS)
#
# FPPFLAGS += -I./inc/cern_$(CERNVERS)/hbook
# FPPFLAGS += -I./inc/cern_$(CERNVERS)/higz
#
# Flags for graphics
#
FPPFLAGS += -DHIGZ -DX11
#
FC = g77
FFLAGS = -fno-second-underscore
#
CC = gcc
CFLAGS += -I./inc/cern_$(CERNVERS)
# CFLAGS += -I./inc/cern_$(CERNVERS)/kuip
#
CXX = g++
CXXFLAGS += -I$(ROOTSYS)/include
#
# Command and flag for making demo and help macros
CPPMNF = gcc -E -C -P -x c
#CPPMNF = cpp -P
CPPMNFFLAGS += -DUNIX
#CPPMNFFLAGS += -traditional-cpp -DUNIX
#
# OS dependent compiler flags etc
#
include $(MN_FIT)/Makefile.machine
#
# Check for debug
#
ifeq ($(DEBUG),on)
  FFLAGS += -g
  CFLAGS += -g
  CXXFLAGS += -g
endif
#
# Do not remove intermediate files with debug turned on
#
RM  = rm
RMI = rm
ifeq ($(DEBUG),on)
  RMI = @echo
endif
CP = cp
CPR = cp -R
MKDIR = mkdir
RANLIB = ranlib
ARFLAGS = rv
O = .o
A = .a
#
#-------------------------------------------------------------------------
#
# MN_FIT_SYS is the system dependent suubdirectory.
#
MN_FIT_SYS := $(MN_FIT)/$(MACHINE)
#
SRCDIR     := $(MN_FIT)/src
TYPDIR     := $(MN_FIT)/typscn
SCRIPTDIR  := $(MN_FIT)/bin
TESTDIR    := $(MN_FIT)/test
DOCDIR     := $(MN_FIT)/doc
FIGDIR     := $(MN_FIT)/figs
MANDIR     := $(MN_FIT)/manual
TUTDIR     := $(MN_FIT)/tutorial
TDATADIR   := $(MN_FIT_SYS)/test_data
HELPDIR    := $(MN_FIT_SYS)/help
GENDIR     := $(MN_FIT_SYS)/gen
OBJDIR     := $(MN_FIT_SYS)/obj
LIBDIR     := $(MN_FIT_SYS)/lib
EXEDIR     := $(MN_FIT_SYS)/exe
#
# Installed executable name
#
ifeq ($(TEST),on)
  MN_FIT_EXE = mn_test_x.exe
endif
#
# Libraries
#
MN_FITLIB    := -L$(LIBDIR) -lmn_fit
MN_MATHLIB   := -lmn_math
MN_ROOTLIB   := -lmn_root
MN_NOROOTLIB := -lmn_noroot
MN_ROOTLIB += -L$(ROOTSYS)/lib -lHist -lMatrix -lCore -lGpad -lGraf -lCint
#ifeq ($(LOCATION),LNS)
#else
#  MN_ROOTLIB += -L$(ROOTSYS)/lib -lHist -lCore
#endif
TYPSCNLIB   := -L$(LIBDIR) -ltypscn_read $(READLINELIB)
ifeq ($(READLINE),off)
  TYPSCNLIB   := -L$(LIBDIR) -ltypscn
endif

#
# Manual pages for figures and fonts
#
FONTPAGE  = 210
FIGSPAGE  = 206
NFONTPAGE =   2
NFIGSPAGE =  17

#
# Generic useful commands
#
find_f_files    = $(wildcard $(SRCDIR)/$(dir)/*.fpp)
find_c_files    = $(wildcard $(SRCDIR)/$(dir)/*.c)
find_cxx_files  = $(wildcard $(SRCDIR)/$(dir)/*.cxx)
find_tf_files   = $(wildcard $(TYPDIR)/src/$(dir)/*.fpp)
find_tc_files   = $(wildcard $(TYPDIR)/src/$(dir)/*.c)
find_mnf_files  = $(wildcard $(SRCDIR)/$(dir)/*.mnf)
find_tex_files  = $(wildcard $(SRCDIR)/$(dir)/*.tex)
find_bib_files  = $(wildcard $(SRCDIR)/$(dir)/*.bib)
find_cls_files  = $(wildcard $(SRCDIR)/$(dir)/*.cls)
find_txt_files  = $(wildcard $(SRCDIR)/$(dir)/*.txt)
find_tutm_files = $(wildcard $(dir)/*.mnf)
find_tutf_files = $(wildcard $(dir)/*.f)
comp_file = $(addsuffix $(O), $(basename $(file)))
mnf_file = $(addprefix $(HELPDIR)/, $(file))
tutmtex_file = $(addprefix $(TUTDIR)/tex/, $(addsuffix .tex, $(basename $(file))))
tutftex_file = $(addprefix $(TUTDIR)/tex/, $(addsuffix .tex, $(file)))

#
# The libraries
#
MN_FIT_LIBPATH  := $(LIBDIR)/libmn_fit
MN_MATH_LIBPATH := $(LIBDIR)/libmn_math
MN_ROOT_LIBPATH   := $(LIBDIR)/libmn_root
MN_NOROOT_LIBPATH := $(LIBDIR)/libmn_noroot
TYPSCN_LIBPATH  := $(LIBDIR)/libtypscn_read
TYPSCN_LIBPATH_NOREAD := $(LIBDIR)/libtypscn

#
# Subdirectories with source code
#
MN_FIT_SUBSRCS    := mn_fit minuit spline function ntuple parser plot set
MN_FIT_SUBSRCS    += display dbase user machine handler util
MN_FIT_SUBSRCS    += graphics
MN_FIT_SUBSRCS    += util_cc
MN_ROOT_SUBSRCS   := root root_cxx
MN_NOROOT_SUBSRCS := root
MN_MATH_SUBSRCS   := math
TYPSCN_SUBSRCS    := lunmgr typscn typsio typsub
TYPSCN_SUBSRCS    += typsio_c
EXTRAS_SUBSRCS    := extras
HELP_SUBSRCS      := demo
TUTORIAL_SUBSRCS  := tex

#
# Add all subdirectories to VPATH
#
VPATH := $(foreach dir, $(MN_FIT_SUBSRCS), $(SRCDIR)/$(dir))
VPATH += $(foreach dir, $(MN_ROOT_SUBSRCS),$(SRCDIR)/$(dir))
VPATH += $(foreach dir, $(MN_MATH_SUBSRCS),$(SRCDIR)/$(dir))
VPATH += $(foreach dir, $(TYPSCN_SUBSRCS), $(TYPDIR)/src/$(dir))
VPATH += $(foreach dir, $(EXTRAS_SUBSRCS), $(SRCDIR)/$(dir))
VPATH += $(foreach dir, $(HELP_SUBSRCS),   $(SRCDIR)/help/$(dir))
VPATH += $(foreach dir, $(TUTORIAL_SUBSRCS), $(SRCDIR)/tutorial/$(dir))

#
# Mn_Fit source files
#
SOURCESF   := $(foreach dir, $(MN_FIT_SUBSRCS), $(find_f_files) )
SOURCESC   := $(foreach dir, $(MN_FIT_SUBSRCS), $(find_c_files) )
SOURCESRF  := $(foreach dir, $(MN_ROOT_SUBSRCS), $(find_f_files) )
SOURCESRC  := $(foreach dir, $(MN_ROOT_SUBSRCS), $(find_cxx_files) )
SOURCESNR  := $(foreach dir, $(MN_NOROOT_SUBSRCS), $(find_f_files) )
SOURCESM   := $(foreach dir, $(MN_MATH_SUBSRCS), $(find_f_files) )

#
# Typscn source files
#
TYPSCN_SOURCESF := $(foreach dir, $(TYPSCN_SUBSRCS), $(find_tf_files) )
TYPSCN_SOURCESC := $(foreach dir, $(TYPSCN_SUBSRCS), $(find_tc_files) )

#
# Help and demo macros
#
HELP_MNF := $(foreach dir, help/demo, $(find_mnf_files) )

#
# Manual LaTeX files
#
MANUAL_SOURCE := $(foreach dir, manual, $(find_tex_files) )
MANUAL_SOURCE += $(foreach dir, manual, $(find_bib_files) )
MANUAL_SOURCE += $(foreach dir, manual, $(find_cls_files) )
MANUAL_SOURCE += $(foreach dir, help/changes, $(find_txt_files) )

#
# Tutorial macros that are made into LaTeX files
#
TUTORIAL_MSOURCE := $(foreach dir, tutorial, $(find_tutm_files) )
TUTORIAL_FSOURCE := $(foreach dir, tutorial, $(find_tutf_files) )

#
# Extract just the file names
#
MN_FIT_FSOURCES   := $(foreach file, $(SOURCESF), $(notdir $(file)) )
MN_FIT_CSOURCES   := $(foreach file, $(SOURCESC), $(notdir $(file)) )
MN_FIT_NRSOURCES  := $(foreach file, $(SOURCESNR), $(notdir $(file)) )
MN_FIT_RFSOURCES  := $(foreach file, $(SOURCESRF), $(notdir $(file)) )
MN_FIT_RCSOURCES  := $(foreach file, $(SOURCESRC), $(notdir $(file)) )
MN_FIT_MSOURCES   := $(foreach file, $(SOURCESM), $(notdir $(file)) )
TYPSCN_FSOURCES   := $(foreach file, $(TYPSCN_SOURCESF), $(notdir $(file)) )
TYPSCN_CSOURCES   := $(foreach file, $(TYPSCN_SOURCESC), $(notdir $(file)) )
HELP_MNFS         := $(foreach file, $(HELP_MNF), $(notdir $(file)) )
MANUAL_SOURCES    := $(foreach file, $(MANUAL_SOURCE), $(notdir $(file)) )
TUTORIAL_MSOURCES := $(foreach file, $(TUTORIAL_MSOURCE), $(notdir $(file)) )
TUTORIAL_FSOURCES := $(foreach file, $(TUTORIAL_FSOURCE), $(notdir $(file)) )

#
# List of compiled files for archiving in the Library
#
COMP_FILES      := $(foreach file, $(MN_FIT_FSOURCES), $(comp_file) )
COMP_FILES      += $(foreach file, $(MN_FIT_CSOURCES), $(comp_file) )
MN_NOROOT_FILES := $(foreach file, $(MN_FIT_NRSOURCES), $(comp_file) )
MN_ROOT_FILES   := $(foreach file, $(MN_FIT_RFSOURCES), $(comp_file) )
MN_ROOT_FILES   += $(foreach file, $(MN_FIT_RCSOURCES), $(comp_file) )
MN_MATH_FILES   := $(foreach file, $(MN_FIT_MSOURCES), $(comp_file) )
TYPSCN_FILES    := $(foreach file, $(TYPSCN_FSOURCES), $(comp_file) )
TYPSCN_FILES    += $(foreach file, $(TYPSCN_CSOURCES), $(comp_file) )

TUTORIAL_FILES  := $(foreach file, $(TUTORIAL_MSOURCES), $(tutmtex_file) )
TUTORIAL_FILES  += $(foreach file, $(TUTORIAL_FSOURCES), $(tutftex_file) )

#
# List of macros for help and demo
#
HELP_FILES := $(foreach file, $(HELP_MNFS), $(mnf_file) )

#
#------------------------------------------------------------------------------
# Phony targets
#------------------------------------------------------------------------------
#
.PHONY : all checkdirs mn_fit_lib typscn_lib typscn_lib_noread
.PHONY : mn_fit_help mn_fit_test mn_fit_script
.PHONY : help pictures root_test root_dummy 
.PHONY : install install_script install_tutorial

#
#------------------------------------------------------------------------------
# Default target - help
# Target all - make Mn_Fit + help + test files
#------------------------------------------------------------------------------
#

help : 
	@echo "Arguments:"
	@echo " DEBUG"
	@echo "  on      Make a debug version"
	@echo "  off     Do not make a debug version"
	@echo " CERN     Location of the CERN libraries" 
	@echo " CERNVERS CERN library version"
	@echo " MACHINE  Machine type - usually use `uname -s` "
	@echo " READLINE"
	@echo "  on      Use readline for command line"
	@echo "  off     Do not use readline - no command recall, history etc."
	@echo " LOCATION Site specific settings:"
	@echo "  BONN    libdir = /usr/local/share/mn_fit"
	@echo "          bindir = /usr/local/share/bin"
	@echo "  BONNDEV libdir = /home/brock/mn_fit"
	@echo "          bindir = /home/brock/scripts"
	@echo "  CERNAFS libdir = /afs/cern.ch/user/b/brock/bin"
	@echo "          bindir = /afs/cern.ch/user/b/brock/public/mn_fit"
	@echo "  DESYAFS libdir = /afs/desy.de/user/b/brock/bin"
	@echo "          bindir = /afs/desy.de/user/b/brock/public/mn_fit"
	@echo "  DESYDL4 libdir = /afs/desy.de/user/b/brock/bin"
	@echo "          bindir = /afs/desy.de/user/b/brock/public/mn_fit"
	@echo "  LNS     libdir = /home/mnfit/mn_fit"
	@echo "          bindir = /home/mnfit/bin"
	@echo " "
	@echo "Targets:"
	@echo " all            Make everything"
	@echo " all_root       Make everything including ROOT interface version"
	@echo " mn_fit_exe     Make a Mn_Fit executable"
	@echo " mn_root_exe    Make a Mn_Fit executable including ROOT interace"
	@echo " mn_fit_date    Set the date for Mn_Fit"
	@echo " manual         Make the Mn_Fit manual"
	@echo " tutorial       Make the Mn_Fit tutorial"
	@echo " install        Install Mn_Fit in bindir and libdir"
	@echo " install_script   Install the Mn_Fit script in bindir"
	@echo " install_tutorial Install the Mn_Fit tutorial"
	@echo " clean          Start from scratch"

all : checkdirs typscn_lib_noread typscn_lib \
	mn_fit_exe mn_fit_script \
	mn_fit_help mn_fit_test \
	pictures root_dummy

all_root : checkdirs typscn_lib_noread typscn_lib \
	mn_fit_exe mn_root_exe mn_fit_script \
	mn_fit_help mn_fit_test \
	pictures root_test

#
#------------------------------------------------------------------------------
# Standard targets
#------------------------------------------------------------------------------
#
mn_fit_exe : $(EXEDIR)/mn_fit_x.exe
	@echo "Made the Mn_Fit standard executable:"
	@echo "    $^."

mn_root_exe : $(EXEDIR)/mn_root_x.exe
	@echo "Made the Mn_Fit with ROOT executable:"
	@echo "    $^."

mn_test_exe : $(EXEDIR)/mn_test_x.exe
	@echo "Made the Mn_Fit test executable:"
	@echo "    $^."

mn_fit_lib : $(MN_FIT_LIBPATH)$(A)
	@echo "Made the Mn_Fit library:"
	@echo "    $(MN_FIT_LIBPATH)$(A)."

typscn_lib : $(TYPSCN_LIBPATH)$(A)
	@echo "Made the Typscn library:"
	@echo "    $(TYPSCN_LIBPATH)$(A)."

typscn_lib_noread : $(TYPSCN_LIBPATH_NOREAD)$(A)
	@echo "Made the Typscn library without readline:"
	@echo "    $(TYPSCN_LIBPATH_NOREAD)$(A)."

mn_root_lib : $(MN_ROOT_LIBPATH)$(A)
	@echo "Made the Mn_Fit Root library:"
	@echo "    $(MN_ROOT_LIBPATH)$(A)."

mn_noroot_lib : $(MN_NOROOT_LIBPATH)$(A)
	@echo "Made the Mn_Fit NoRoot library:"
	@echo "    $(MN_NOROOT_LIBPATH)$(A)."

mn_fit_help : $(OBJDIR)/extras/helpmke.o help_macros
	-$(RM) $(HELPDIR)/mn_fit_help.fil
	cat $(wildcard $(SRCDIR)/help/mn_fit_help/*.txt) \
	$(SRCDIR)/help/changes/changes.txt \
	$(SRCDIR)/help/changes/v5_1.txt \
	$(SRCDIR)/help/changes/v5_0.txt \
	$(SRCDIR)/help/changes/v4_07.txt \
	$(SRCDIR)/help/changes/v4_06.txt \
	$(SRCDIR)/help/changes/v4_05.txt \
	$(SRCDIR)/help/changes/v4_04.txt \
	$(SRCDIR)/help/changes/v4_03.txt \
	$(SRCDIR)/help/changes/v4_02.txt \
	$(SRCDIR)/help/changes/v4_01.txt \
	$(wildcard $(SRCDIR)/help/changes/v3*.txt) \
	$(wildcard $(SRCDIR)/help/changes/v2*.txt) \
	>$(HELPDIR)/mn_fit_help.fil
	-$(RM) $(HELPDIR)/minuit_help.fil
	cat $(SRCDIR)/help/minuit_help/*.txt \
	>$(HELPDIR)/minuit_help.fil
	$(CP) $(DOCDIR)/mn_news.txt $(HELPDIR)
	$(FC) $(FFLAGS) -o $(EXEDIR)/helpmke.exe $< \
	$(MN_FITLIB) $(TYPSCNLIB) $(CERNLIB)
	(MN_FIT_SYS=$(MN_FIT_SYS); export MN_FIT_SYS; \
	cd $(HELPDIR); $(EXEDIR)/helpmke.exe)

mn_fit_test : $(OBJDIR)/extras/histmke.o
	$(FC) $(FFLAGS) -o $(EXEDIR)/histmke.exe $^ \
	$(MN_FITLIB) $(TYPSCNLIB) $(CERNGLIB)
	(cd $(TDATADIR); $(EXEDIR)/histmke.exe)

root_test : 
	(cd $(TDATADIR); root -q $(SRCDIR)/extras/rootmake.C)

root_dummy : 
	@echo "***************************************************************"
	@echo "If you want the root test files, you should also make root_test"
	@echo "***************************************************************"

igtext_exam : $(OBJDIR)/extras/igtext_exam.o
	$(FC) $(FFLAGS) -o $(EXEDIR)/igtext_exam.exe $^ \
	$(MN_FITLIB) $(CERNGLIB)
	(cd $(HELPDIR); $(EXEDIR)/igtext_exam.exe)

$(EXEDIR)/mn_latex.exe : $(OBJDIR)/extras/mn_latex.o
	$(FC) $(FFLAGS) -o $(EXEDIR)/mn_latex.exe $< \
	$(MN_FITLIB) $(TYPSCNLIB) $(CERNLIB)

$(MANDIR)/mn_fit.tex : $(EXEDIR)/mn_latex.exe $(HELPDIR)/mn_fit_help.fil $(MANUAL_SOURCE)
	(MN_FIT=$(MN_FIT); MN_FIT_SYS=$(MN_FIT_SYS); export MN_FIT; export MN_FIT_SYS; \
	$(EXEDIR)/mn_latex.exe)

$(MANDIR)/mn_fit.dvi : $(MANDIR)/mn_fit.tex
	$(CP) $(HELPDIR)/*.eps* $(MANDIR)/figs/
	$(CP) $(SRCDIR)/manual/mnreport.cls $(MANDIR)
	$(CP) $(SRCDIR)/manual/mn_fit.bib $(MANDIR)
	(cd $(MANDIR); latex mn_fit; bibtex mn_fit; latex mn_fit; makeindex mn_fit; latex mn_fit)

$(TUTDIR)/mn_tutorial.dvi : $(TUTDIR)/mn_tutorial.tex \
	 $(TUTDIR)/mn_tutorial_examples.tex $(TUTDIR)/mn_tutorial_appendix.tex
	$(CP) $(SRCDIR)/manual/mn_fit.bib $(TUTDIR)
	(cd $(TUTDIR); latex mn_tutorial; bibtex mn_tutorial; latex mn_tutorial; makeindex mn_tutorial; latex mn_tutorial)

#
# Only make standard files, unless someone has font problems
#
man_dvips : $(MANDIR)/mn_fit.dvi
	$(CP) $(MANDIR)/figs/font00.eps $(MANDIR)/figs/font.eps
	(cd $(MANDIR); dvips -o mn_fit.ps mn_fit)
	(cd $(MANDIR); dvips -n 1 -o mn_fit_cover.ps mn_fit)
	(cd $(MANDIR); dvips -p $(FIGSPAGE) -n $(NFIGSPAGE) -o mn_fit_figs.ps mn_fit)
	(cd $(MANDIR); dvips -p $(FONTPAGE) -n $(NFONTPAGE) -o mn_fit_font.ps mn_fit)
	(cd $(MANDIR);  pstops -q -b -w21cm -h29.7cm \
	'2:0L@.7(1w,0.03h)+1L@.7(1w,0.47h)' \
	mn_fit.ps mn_fit_2ppp.ps)

man_pdf : $(MANDIR)/mn_fit.dvi
	(cd $(MANDIR); ps2pdf mn_fit.ps; ps2pdf mn_fit_2ppp.ps)
	(cd $(MANDIR); ps2pdf mn_fit_cover.ps; ps2pdf mn_fit_figs.ps; ps2pdf mn_fit_font.ps)

man_gzip : $(MANDIR)/mn_fit.ps
	(cd $(MANDIR); gzip -f *.ps)

latex2html : $(MANDIR)/mn_fit.dvi
	(cd $(MANDIR); latex2html -t 'The Mn_Fit Manual' -auto_navigation \
	-nomath -html_version 4.0,math,frame \
	-mkdir -dir mn_fit_html -split +2 -show_section_numbers -local_icons \
	-no_reuse mn_fit)

help_macros : $(HELP_FILES)
	@echo "Made the demo and help macros"

pictures : 
	echo "none"                     >$(TMPDIR)/mn_fit_pictures.mnf
	echo "exec demo_man"           >>$(TMPDIR)/mn_fit_pictures.mnf
	echo "exec pictures epost eps" >>$(TMPDIR)/mn_fit_pictures.mnf
	echo "1"                       >>$(TMPDIR)/mn_fit_pictures.mnf
	echo "1"                       >>$(TMPDIR)/mn_fit_pictures.mnf
	echo "1"                       >>$(TMPDIR)/mn_fit_pictures.mnf
	echo "1"                       >>$(TMPDIR)/mn_fit_pictures.mnf
	echo "1"                       >>$(TMPDIR)/mn_fit_pictures.mnf
	echo "1"                       >>$(TMPDIR)/mn_fit_pictures.mnf
	echo "1"                       >>$(TMPDIR)/mn_fit_pictures.mnf
	echo "exit"                    >>$(TMPDIR)/mn_fit_pictures.mnf
	(MN_FIT=$(MN_FIT); MN_FIT_SYS=$(MN_FIT_SYS); export MN_FIT; export MN_FIT_SYS; \
	cd $(HELPDIR); $(EXEDIR)/mn_fit_x.exe \
	<$(TMPDIR)/mn_fit_pictures.mnf >$(TMPDIR)/mn_fit_pictures.log)
	$(CP) $(HELPDIR)/font.eps $(HELPDIR)/font00.eps
	$(CP) $(wildcard $(FIGDIR)/*.ps) $(HELPDIR)
	$(CP) $(wildcard $(FIGDIR)/*.eps*) $(HELPDIR)

ps_char_all : 
	echo "none"                        >$(TMPDIR)/mn_fit_ps_char.mnf
	echo "exec ps_char_all epost eps" >>$(TMPDIR)/mn_fit_ps_char.mnf
	echo "exit"                       >>$(TMPDIR)/mn_fit_ps_char.mnf
	(MN_FIT=$(MN_FIT); MN_FIT_SYS=$(MN_FIT_SYS); export MN_FIT;  export MN_FIT_SYS; \
	cd $(HELPDIR); $(EXEDIR)/mn_fit_x.exe <$(TMPDIR)/mn_fit_ps_char.mnf)
	$(CP) $(wildcard $(HELPDIR)/ps_char*.ps) $(FIGDIR)
	$(CP) $(wildcard $(HELPDIR)/ps_char*.eps*) $(FIGDIR)

manual : igtext_exam help_macros pictures man_dvips man_pdf

tut_macros : $(TUTORIAL_FILES)
	ln -sf ../$(MACHINE)/help $(TUTDIR)/figs
	(MN_FIT=$(MN_FIT); export MN_FIT; ./scripts/mn_tutorial_README)
	@echo "Made the LaTeX files from the tutorial macros"

tut_dvips : $(TUTDIR)/mn_tutorial.dvi
	(cd $(TUTDIR); dvips -o mn_tutorial.ps mn_tutorial)

tut_pdf : $(TUTDIR)/mn_tutorial.dvi
	(cd $(TUTDIR); ps2pdf mn_tutorial.ps)

tutorial : igtext_exam tut_macros tut_dvips tut_pdf

checkdirs :
	@echo "Checking that all necesary directories exist"
	@test -d $(MN_FIT_SYS)      || $(MKDIR) $(MN_FIT_SYS)
	@test -d $(SCRIPTDIR)       || $(MKDIR) $(SCRIPTDIR)
	@test -d $(HELPDIR)         || $(MKDIR) $(HELPDIR)
	@test -d $(TESTDIR)         || $(MKDIR) $(TESTDIR)
	@test -d $(TDATADIR)        || $(MKDIR) $(TDATADIR)
	@test -d $(MANDIR)          || $(MKDIR) $(MANDIR)
	@test -d $(MANDIR)/figs     || $(MKDIR) $(MANDIR)/figs
	@test -d $(TUTDIR)/tex      || $(MKDIR) $(TUTDIR)/tex
	@test -d $(GENDIR)          || $(MKDIR) $(GENDIR)
	@test -d $(GENDIR)/programs || $(MKDIR) $(GENDIR)/programs
	@test -d $(GENDIR)/extras   || $(MKDIR) $(GENDIR)/extras
	@test -d $(GENDIR)/typscn   || $(MKDIR) $(GENDIR)/typscn
	@test -d $(OBJDIR)          || $(MKDIR) $(OBJDIR)
	@test -d $(OBJDIR)/programs || $(MKDIR) $(OBJDIR)/programs
	@test -d $(OBJDIR)/extras   || $(MKDIR) $(OBJDIR)/extras
	@test -d $(OBJDIR)/typscn   || $(MKDIR) $(OBJDIR)/typscn
	@test -d $(LIBDIR)          || $(MKDIR) $(LIBDIR)
	@test -d $(EXEDIR)          || $(MKDIR) $(EXEDIR)

mn_fit_date :
	(DATETIME=`date +'%Y/%m/%d %H:%M'`; \
	STRING="s|^      date =.*|      date = \'Date: $$DATETIME\'|"; \
	sed -e "$$STRING" \
	 $(SRCDIR)/machine/m_start.fpp >$(SRCDIR)/machine/m_start.fpp-new; \
	mv $(SRCDIR)/machine/m_start.fpp $(SRCDIR)/machine/m_start.fpp-old; \
	mv $(SRCDIR)/machine/m_start.fpp-new $(SRCDIR)/machine/m_start.fpp; \
	STRING="s|      Date: .*|      Date: $$DATETIME|"; \
	sed -e "$$STRING" mn_fit_dbase.sav >mn_fit_dbase)

mn_fit_script :
	sed 's|XXX_ROOTSYS_ENV_XXX|$(rootsys)|' \
	 $(SRCDIR)/bin/mn_fit >$(SCRIPTDIR)/mn_fit
	chmod a+x $(SCRIPTDIR)/mn_fit

install :
	@test -d $(bindir) || $(MKDIR) $(bindir)
	sed 's|XXX_MN_FIT_ENV_XXX|$(libdir)|' \
	 $(SCRIPTDIR)/mn_fit >$(bindir)/mn_fit
	chmod a+x $(bindir)/mn_fit
	@test -d $(libdir)                || $(MKDIR) $(libdir)
	@test -d $(libdir)/$(MACHINE)     || $(MKDIR) $(libdir)/$(MACHINE)
	@test -d $(libdir)/$(MACHINE)/exe || $(MKDIR) $(libdir)/$(MACHINE)/exe
	$(CP) $(MN_FIT_SYS)/exe/mn_fit_x.exe $(libdir)/$(MACHINE)/exe/$(MN_FIT_EXE)
	if [ -f $(MN_FIT_SYS)/exe/mn_root_x.exe ]; then \
	$(CP) $(MN_FIT_SYS)/exe/mn_root_x.exe $(libdir)/$(MACHINE)/exe/mn_root_x.exe; \
	else echo "No root version"; fi
	$(CP) -r $(MN_FIT_SYS)/help          $(libdir)/$(MACHINE)
	$(CP) -r $(MN_FIT_SYS)/lib           $(libdir)/$(MACHINE)
	$(CP) -r $(MN_FIT_SYS)/test_data     $(libdir)/$(MACHINE)
	$(CP) -r $(MN_FIT)/test              $(libdir)
	@test -d $(libdir)/$(MACHINE)/help/tutorial || $(MKDIR) $(libdir)/$(MACHINE)/help/tutorial
	$(CP) -r $(MN_FIT)/tutorial/*.mnf $(libdir)/$(MACHINE)/help/tutorial
	$(CP) -r $(MN_FIT)/tutorial/*.f $(libdir)/$(MACHINE)/help/tutorial
	$(CP) -r $(MN_FIT)/tutorial/*.mnd $(libdir)/$(MACHINE)/help/tutorial
	ln -sf ../test_data/hbook_example.his $(libdir)/$(MACHINE)/help/hbook_example.his
	ln -sf ./tutorial/plot2.mnd $(libdir)/$(MACHINE)/help/plot2.mnd
	ln -sf ./tutorial/oper1.mnd $(libdir)/$(MACHINE)/help/oper1.mnd

install_script :
	@test -d $(bindir) || $(MKDIR) $(bindir)
	sed 's|XXX_MN_FIT_ENV_XXX|$(libdir)|' \
	 $(SCRIPTDIR)/mn_fit >$(bindir)/mn_fit
	chmod a+x $(bindir)/mn_fit

install_tutorial :
	@test -d $(libdir)/$(MACHINE)/help/tutorial || $(MKDIR) $(libdir)/$(MACHINE)/help/tutorial
	$(CP) -r $(MN_FIT)/tutorial/*.mnf $(libdir)/$(MACHINE)/help/tutorial
	$(CP) -r $(MN_FIT)/tutorial/*.f $(libdir)/$(MACHINE)/help/tutorial
	$(CP) $(MN_FIT_SYS)/test_data/hbook_example.his $(libdir)/$(MACHINE)/help/tutorial
#
#------------------------------------------------------------------------------
# The real targets start here
#------------------------------------------------------------------------------
#
$(EXEDIR)/mn_fit_x.exe : $(OBJDIR)/programs/mn_main_k.o $(MN_FIT_LIBPATH)$(A) $(MN_MATH_LIBPATH)$(A) $(MN_NOROOT_LIBPATH)$(A) $(TYPSCN_LIBPATH)$(A)
	$(FC) $(FCFLAGS) -o $@ $(OBJDIR)/programs/mn_main_k.o \
	$(MN_FITLIB) $(MN_NOROOTLIB) $(TYPSCNLIB) $(MN_MATHLIB) $(CERNGLIB) \
	$(GCCLIB)

$(EXEDIR)/mn_root_x.exe : $(OBJDIR)/programs/mn_main_cxx.o $(MN_FIT_LIBPATH)$(A) $(MN_MATH_LIBPATH)$(A) $(MN_ROOT_LIBPATH)$(A) $(TYPSCN_LIBPATH)$(A)
	$(CXX) $(CXXFLAGS) -o $@ $(OBJDIR)/programs/mn_main_cxx.o \
	$(MN_FITLIB) $(MN_ROOTLIB) $(TYPSCNLIB) $(MN_MATHLIB) $(CERNGLIB) \
	$(GXXLIB)

$(EXEDIR)/mn_test_x.exe : $(OBJDIR)/programs/mn_main_cxx.o $(MN_FIT_LIBPATH)$(A) $(MN_MATH_LIBPATH)$(A) $(MN_ROOT_LIBPATH)$(A) $(TYPSCN_LIBPATH)$(A)
	$(CXX) $(CXXFLAGS) -o $@ $(OBJDIR)/programs/mn_main_cxx.o \
	$(MN_FITLIB) $(MN_ROOTLIB) $(TYPSCNLIB) $(MN_MATHLIB) $(CERNGLIB) \
	$(GXXLIB)

$(MN_FIT_LIBPATH)$(A) : $(MN_FIT_LIBPATH)$(A)( $(COMP_FILES) ) 
	$(RANLIB) $@

$(MN_ROOT_LIBPATH)$(A) : $(MN_ROOT_LIBPATH)$(A)( $(MN_ROOT_FILES) ) 
	$(RANLIB) $@

$(MN_NOROOT_LIBPATH)$(A) : $(MN_NOROOT_LIBPATH)$(A)( $(MN_NOROOT_FILES) ) 
	$(RANLIB) $@

$(MN_MATH_LIBPATH)$(A) : $(MN_MATH_LIBPATH)$(A)( $(MN_MATH_FILES) ) 
	$(RANLIB) $@

$(TYPSCN_LIBPATH)$(A) : $(TYPSCN_LIBPATH)$(A)( $(TYPSCN_FILES) ) 
	$(RANLIB) $@

$(TYPSCN_LIBPATH_NOREAD)$(A) : $(TYPSCN_LIBPATH_NOREAD)$(A)( $(TYPSCN_FILES) ) 
	$(RANLIB) $@

$(MN_FIT_LIBPATH)$(A)(%$O) : %.fpp
	@echo "-------------- Using the Mn_Fit Unix FPP-to-Lib rule"
	$(FPP) $(FPPFLAGS) $< -o $(GENDIR)/$*.f
	$(FC) $(FFLAGS) -c -o $(OBJDIR)/$*$O $(GENDIR)/$*.f
	$(AR) $(ARFLAGS) $@ $(OBJDIR)/$*$O
	$(RMI) $(GENDIR)/$*.f
	$(RMI) $(OBJDIR)/$*$O

$(MN_FIT_LIBPATH)$(A)(%$O) : %.c
	@echo "-------------- Using the Mn_Fit Unix c-to-Lib rule"
	$(CC) $(CFLAGS) -c -o $(OBJDIR)/$*$O $^
	$(AR) $(ARFLAGS) $@ $(OBJDIR)/$*$O
	$(RMI) $(OBJDIR)/$*$O

$(MN_ROOT_LIBPATH)$(A)(%$O) : %.fpp
	@echo "-------------- Using the Mn_Fit ROOT Unix FPP-to-Lib rule"
	$(FPP) $(FPPFLAGS) -DROOT $< -o $(GENDIR)/$*.f
	$(FC) $(FFLAGS) -c -o $(OBJDIR)/$*$O  $(GENDIR)/$*.f
	$(AR) $(ARFLAGS) $@ $(OBJDIR)/$*$O
	$(RMI) $(OBJDIR)/$*$O

$(MN_ROOT_LIBPATH)$(A)(%$O) : %.cxx
	@echo "-------------- Using the Mn_Fit ROOT Unix c++-to-Lib rule"
	$(CXX) $(CXXFLAGS) -c -o $(OBJDIR)/$*$O $^
	$(AR) $(ARFLAGS) $@ $(OBJDIR)/$*$O
	$(RMI) $(OBJDIR)/$*$O

$(MN_NOROOT_LIBPATH)$(A)(%$O) : %.fpp
	@echo "-------------- Using the Mn_Fit NoROOT Unix FPP-to-Lib rule"
	$(FPP) $(FPPFLAGS) $< -o $(GENDIR)/$*.f
	$(FC) $(FFLAGS) -c -o $(OBJDIR)/$*$O  $(GENDIR)/$*.f
	$(AR) $(ARFLAGS) $@ $(OBJDIR)/$*$O
	$(RMI) $(OBJDIR)/$*$O

$(MN_MATH_LIBPATH)$(A)(%$O) : $(SRCDIR)/math/%.fpp
	@echo "-------------- Using the Math Unix FPP-to-Lib rule"
	$(FPP) $(FPPFLAGS) $< -o $(GENDIR)/$*.f
	$(FC) $(FFLAGS) -c -o $(OBJDIR)/$*$O  $(GENDIR)/$*.f
	$(AR) $(ARFLAGS) $@ $(OBJDIR)/$*$O
	$(RMI) $(OBJDIR)/$*$O

$(TYPSCN_LIBPATH)$(A)(%$O) : %.fpp
	@echo "-------------- Using the TYPSCN Unix FPP-to-Lib rule"
	$(FPP) $(FPPFLAGS) -DREADLINE -I./typscn/inc $< -o $(GENDIR)/typscn/$*.f
	$(FC) $(FFLAGS) -c -o $(OBJDIR)/typscn/$*$O $(GENDIR)/typscn/$*.f
	$(AR) $(ARFLAGS) $@ $(OBJDIR)/typscn/$*$O
	$(RMI) $(GENDIR)/typscn/$*.f
	$(RMI) $(OBJDIR)/typscn/$*$O

$(TYPSCN_LIBPATH_NOREAD)$(A)(%$O) : %.fpp
	@echo "-------------- Using the TYPSCN Unix FPP-to-Lib rule without readline"
	$(FPP) $(FPPFLAGS) -I./typscn/inc $< -o $(GENDIR)/typscn/$*.f
	$(FC) $(FFLAGS) -c -o $(OBJDIR)/typscn/$*$O $(GENDIR)/typscn/$*.f
	$(AR) $(ARFLAGS) $@ $(OBJDIR)/typscn/$*$O
	$(RMI) $(GENDIR)/typscn/$*.f
	$(RMI) $(OBJDIR)/typscn/$*$O

$(TYPSCN_LIBPATH)$(A)(%$O) : %.c
	@echo "-------------- Using the Typscn Unix c-to-Lib rule"
	$(CC) $(CFLAGS) -DREADLINE -c -o $(OBJDIR)/typscn/$*$O $^
	$(AR) $(ARFLAGS) $@ $(OBJDIR)/typscn/$*$O
	$(RMI) $(OBJDIR)/typscn/$*$O

$(TYPSCN_LIBPATH_NOREAD)$(A)(%$O) : %.c
	@echo "-------------- Using the Typscn Unix c-to-Lib rule without readlinie"
	$(CC) $(CFLAGS) -c -o $(OBJDIR)/typscn/$*$O $^
	$(AR) $(ARFLAGS) $@ $(OBJDIR)/typscn/$*$O
	$(RMI) $(OBJDIR)/typscn/$*$O

$(OBJDIR)/extras/%$O : %.fpp
	@echo "-------------- Using the Extras Unix F77 fpp-rule"
	$(FPP) $(FPPFLAGS) $< -o $(GENDIR)/extras/$*.f
	$(FC) $(FFLAGS) -c -o $@ $(GENDIR)/extras/$*.f

$(OBJDIR)/programs/%$O : $(SRCDIR)/programs/%.fpp
	$(FPP) $(FPPFLAGS) $< -o $(GENDIR)/programs/$*.f
	$(FC) $(FFLAGS) -c -o $@ $(GENDIR)/programs/$*.f

$(OBJDIR)/programs/%$O : $(SRCDIR)/programs/%.c
	$(CC) $(CFLAGS) -c -o $@ $<

$(OBJDIR)/programs/%$O : $(SRCDIR)/programs/%.cxx
	$(CXX) $(CXXFLAGS) -c -o $@ $<

$(HELPDIR)/%.mnf : %.mnf
	@echo "-------------- Making a help or demo macro"
	$(CPPMNF) $(CPPMNFFLAGS) $< -o $@

$(TUTDIR)/tex/%.tex : $(TUTDIR)/%.mnf
	@echo "-------------- Making a LaTex file from a tutorial macro"
	(MN_FIT=$(MN_FIT); export MN_FIT; $(MN_FIT)/scripts/mn_tutorial_tex $<)

$(TUTDIR)/tex/%.f.tex : $(TUTDIR)/%.f
	@echo "-------------- Making a LaTex file from a tutorial function"
	(MN_FIT=$(MN_FIT); export MN_FIT; $(MN_FIT)/scripts/mn_tutorial_tex $<)

#_____________________________________________________________________________
#
# Cleaning up
#_____________________________________________________________________________
#
.PHONY : cleanhelp cleanexe cleanlib cleanobj cleangen cleantypscn
.PHONY : cleanman cleantut

cleanexe :
	-$(RM) $(EXEDIR)/*.exe

cleanlib :
	-$(RM) $(MN_FIT_LIBPATH)$(A)
	-$(RM) $(MN_ROOT_LIBPATH)$(A)
	-$(RM) $(MN_NOROOT_LIBPATH)$(A)
	-$(RM) $(MN_MATH_LIBPATH)$(A)

cleanobj :
	-$(RM) $(OBJDIR)/*.o
	-$(RM) $(OBJDIR)/programs/*.o

cleangen :
	-$(RM) $(GENDIR)/*.f
	-$(RM) $(GENDIR)/programs/*.f

cleantypscn :
	-$(RM) $(TYPSCN_LIBPATH)$(A)
	-$(RM) $(TYPSCN_LIBPATH_NOREAD)$(A)
	-$(RM) $(OBJDIR)/typscn/*.o
	-$(RM) $(GENDIR)/typscn/*.f

cleanhelp :
	-$(RM) $(EXEDIR)/helpmke.exe
	-$(RM) $(OBJDIR)/extras/helpmke.o
	-$(RM) $(GENDIR)/extras/helpmke.f
	-$(RM) $(HELPDIR)/*.fil
	-$(RM) $(HELPDIR)/*.txt
	-$(RM) $(HELPDIR)/*.mnf
	-$(RM) $(HELPDIR)/*.eps*
	-$(RM) $(HELPDIR)/*.ps

cleantest :
	-$(RM) $(EXEDIR)/histmke.exe
	-$(RM) $(OBJDIR)/extras/histmke.o
	-$(RM) $(GENDIR)/extras/histmke.f
	-$(RM) $(TDATADIR)/*.root
	-$(RM) $(TDATADIR)/*.his
	-$(RM) $(TDATADIR)/*.mnd
	-$(RM) $(TDATADIR)/*.mnh

cleanman :
	-$(RM) $(EXEDIR)/igtext_exam.exe
	-$(RM) $(OBJDIR)/extras/igtext_exam.o
	-$(RM) $(GENDIR)/extras/igtext_exam.f
	-$(RM) $(EXEDIR)/mn_latex.exe
	-$(RM) $(OBJDIR)/extras/mn_latex.o
	-$(RM) $(GENDIR)/extras/mn_latex.f
	-$(RM) $(MANDIR)/mn_fit.tex
	-$(RM) $(MANDIR)/mn_fit.bib
	-$(RM) $(MANDIR)/mnreport.cls
	-$(RM) $(MANDIR)/*.ps*
	-$(RM) $(MANDIR)/*.pdf
	-$(RM) $(MANDIR)/*.aux
	-$(RM) $(MANDIR)/*.bbl
	-$(RM) $(MANDIR)/*.blg
	-$(RM) $(MANDIR)/*.dvi
	-$(RM) $(MANDIR)/*.idx
	-$(RM) $(MANDIR)/*.ilg
	-$(RM) $(MANDIR)/*.ind
	-$(RM) $(MANDIR)/*.lof
	-$(RM) $(MANDIR)/*.log
	-$(RM) $(MANDIR)/*.toc
	-$(RM) $(MANDIR)/figs/*.eps*
	find  $(MANDIR)/mn_fit_html -name '*.html' -exec rm {} \;
	-$(RM) $(MANDIR)/mn_fit_html/*

cleantut :
	-$(RM) $(TUTDIR)/*.ps*
	-$(RM) $(TUTDIR)/*.pdf
	-$(RM) $(TUTDIR)/*.aux
	-$(RM) $(TUTDIR)/*.bbl
	-$(RM) $(TUTDIR)/*.blg
	-$(RM) $(TUTDIR)/*.bib
	-$(RM) $(TUTDIR)/*.dvi
	-$(RM) $(TUTDIR)/*.idx
	-$(RM) $(TUTDIR)/*.ilg
	-$(RM) $(TUTDIR)/*.ind
	-$(RM) $(TUTDIR)/*.lof
	-$(RM) $(TUTDIR)/*.log
	-$(RM) $(TUTDIR)/*.toc
	-$(RM) $(TUTDIR)/tex/*.tex
	-$(RM) $(TUTDIR)/figs

clean : cleanexe cleanlib cleanobj cleangen cleantypscn cleanhelp cleantest \
	cleanman

#_____________________________________________________________________________
#
# Targets to debug the Make stuff.
#_____________________________________________________________________________
#
.PHONY : testvars testcomp testlibrules testtypscn testhelp \
	testmanual testtutorial
testvars :
	@echo "MN_FIT       is defined as $(MN_FIT)"
	@echo "MACHINE      is defined as $(MACHINE)"
	@echo "MN_FIT_SYS   is defined as $(MN_FIT_SYS)"
	@echo "DEBUG        is defined as $(DEBUG)"
	@echo "CERN         is defined as $(CERN)"
	@echo "CERNVERS     is defined as $(CERNVERS)"
	@echo "ROOTSYS      is defined as $(ROOTSYS)"
	@echo "READLINELIB  is defined as $(READLINELIB)"
	@echo "GCCLIB       is defined as $(GCCLIB)"
	@echo "FPP          is defined as $(FPP)"
	@echo "FPPFLAGS     is defined as $(FPPFLAGS)"
	@echo "FC           is defined as $(FC)"
	@echo "FFLAGS       is defined as $(FFLAGS)"
	@echo "CC           is defined as $(CC)"
	@echo "CFLAGS       is defined as $(CFLAGS)"
	@echo "CXX          is defined as $(CXX)"
	@echo "CXXFLAGS     is defined as $(CXXFLAGS)"
	@echo "CPPMNF       is defined as $(CPPMNF)"
	@echo "CPPMNFFLAGS  is defined as $(CPPMNFFLAGS)"
#
testcomp :
	@echo "The Mn_Fit fpp source files are:"
	@echo $(MN_FIT_FSOURCES)
	@echo ""
	@echo "The Mn_Fit c source files are:"
	@echo $(MN_FIT_CSOURCES)
	@echo ""
	@echo "The Mn_Fit with ROOT source files are:"
	@echo $(MN_FIT_RSOURCES)
	@echo ""
	@echo "The Mn_Fit without ROOT source files are:"
	@echo $(MN_FIT_NRSOURCES)
	@echo ""
	@echo "The Mn_Fit math source files are:"
	@echo $(MN_FIT_MSOURCES)
	@echo ""
	@echo "The compiled files for Mn_Fit are the following:"
	@echo $(COMP_FILES)
	@echo ""
	@echo "The compiled files for Mn_Fit with ROOT are the following:"
	@echo $(MN_ROOT_FILES)
	@echo ""
	@echo "The compiled files for Mn_Fit without ROOT are the following:"
	@echo $(MN_NOROOT_FILES)
	@echo ""
	@echo "The compiled math files for Mn_Fit are the following:"
	@echo $(MN_MATH_FILES)
	@echo ""
	@echo "The Compiled files for Typscn are the following:"
	@echo $(TYPSCN_FILES)
	@echo ""
#
testlibrules :
	@echo "VPATH = $(VPATH)."
	@echo "  "
	@echo "The MN_FIT_LIBPATH.A = $(MN_FIT_LIBPATH)$(A)."
	@echo "  "
	@echo "The COMP_FILES = $(COMP_FILES)."
	@echo "  "
	@echo "The MN_ROOT_LIBPATH.A = $(MN_ROOT_LIBPATH)$(A)."
	@echo "  "
	@echo "The MN_NOROOT_LIBPATH.A = $(MN_NOROOT_LIBPATH)$(A)."
	@echo "  "
	@echo "The MN_ROOT_FILES = $(MN_ROOT_FILES)."
	@echo "  "
	@echo "The MN_NOROOT_FILES = $(MN_NOROOT_FILES)."
	@echo "  "
	@echo "The TYPSCN_LIBPATH.A = $(TYPSCN_LIBPATH)$(A)."
	@echo "  "
	@echo "The TYPSCN_FILES = $(TYPSCN_FILES)."
	@echo "  "
#
testtypscn :
	@echo "The TYPSCN_LIBPATH.A = $(TYPSCN_LIBPATH)$(A)."
	@echo "  "
	@echo "The TYPSCN_SUBSRCS = $(TYPSCN_SUBSRCS)."
	@echo "  "
	@echo "The TYPSCN_SOURCESF = $(TYPSCN_SOURCESF)."
	@echo "  "
	@echo "The TYPSCN_SOURCESC = $(TYPSCN_SOURCESC)."
	@echo "  "
	@echo "The TYPSCN_FSOURCES = $(TYPSCN_FSOURCES)."
	@echo "  "
	@echo "The TYPSCN_CSOURCES = $(TYPSCN_CSOURCES)."
	@echo "  "
	@echo "The TYPSCN_FILES = $(TYPSCN_FILES)."
	@echo "  "
#
testhelp :
	@echo "The help and demo macros are:"
	@echo $(HELP_MNF)
	@echo $(HELP_MNFS)
	@echo $(HELP_FILES)
	@echo ""
#
testmanual :
	@echo "The manual source files:"
	@echo "MANUAL_SOURCE:"
	@echo $(MANUAL_SOURCE)
	@echo "MANUAL_SOURCES:"
	@echo $(MANUAL_SOURCES)
	@echo ""
#
testtutorial :
	@echo "The tutorial extra source files:"
	@echo "TUTORIAL_MSOURCE:"
	@echo $(TUTORIAL_MSOURCE)
	@echo "TUTORIAL_FSOURCE:"
	@echo $(TUTORIAL_FSOURCE)
	@echo ""
	@echo "TUTORIAL_MSOURCES:"
	@echo $(TUTORIAL_MSOURCES)
	@echo "TUTORIAL_FSOURCES:"
	@echo $(TUTORIAL_FSOURCES)
	@echo ""
	@echo "TUTORIAL_FILES:"
	@echo $(TUTORIAL_FILES)
	@echo ""
