.SUFFIXES:
.SUFFIXES:	.f	.o	.a	.c
#
#   This is a generic makefile for sotid.
#
#   Compilation is a bit complicated since SunOS compiler seems does not
#   recognize preprocessor directives if the source code has .f suffix
#
SHELL   = /bin/csh
 
FOPT    = -tpp7 -O2 -D LINUX -D Compiler_Intel -FR -132 -w90
LD_OPT  = -Vaxlib
BIN_DIR = /home/lpetrov/bin
LIB_DIR = /home/lpetrov/bin
INC_DIR = /home/lpetrov/bin
MAN_DIR = /home/lpetrov/bin
DOC_DIR = /home/lpetrov/bin
CCOMP   = gcc -D LINUX -D UNDESCORE_NEEDED
LIB_F90 = -L /opt/intel/fortran/lib -lifcore
 
.f.o:
	cp -f $*.f $*.F; f90  $(FOPT) -c -o $*.o $*.F; rm -f $*.F
 
.c.o:
	$(CCOMP) -c -o $*.o $<
 
MOD =  				\
	sotid_module.o
 
OBJ =  				\
	sotid_dsp.o		\
	sotid_err_log.o		\
	sotid_get_love.o	\
	sotid_inq.o		\
	sotid_pre.o		\
	sotid_tai_tdb.o		\
	sotid_tim.o		\
	sotid_set.o		\
	sotid_utils.o
 
LIB_SOTID = libsotid.a
 
MOD_FILE = SOTID_MODULE.mod
 
all:	compile lib link
 
config:
	f90 $(FOPT) -o sotid_configure \
            sotid_configure.f sotid_utils.f sotid_err_log.f
 
compile: $(OBJ)
 
lib:	$(OBJ)
	ar r $(LIB_SOTID) $(OBJ)
	@echo "\n\n ---  Library sotid was successfull created. ---"
 
 
link:	$(LIB_SOTID) sotid_f90_test.o  hw95_out.o sotid_c_test.o
	f90 $(LD_OPT) -o $(BIN_DIR)/sotid_f90_test sotid_f90_test.o $(OBJ)
#
	f90 $(LD_OPT) -o $(BIN_DIR)/hw95_out hw95_out.o $(OBJ)
#
	$(CCOMP) -o $(BIN_DIR)/sotid_c_test sotid_c_test.o \
        $(LIB_SOTID) $(LIB_F90)
	@echo "\n\n ---  Test examples were successfully created ---"
 
 
$(LIB_SOTID):		$(OBJ)
sotid_f90_test.o:	$(MOD) sotid_type.i sotid_data.i
sotid_dsp.o:		sotid_type.i sotid_data.i love_const.i love_numbers.i
sotid_get_love.o:	sotid_type.i sotid_data.i love_const.i love_numbers.i
sotid_inq.o:		sotid_type.i sotid_data.i love_const.i love_numbers.i
sotid_pre.o:		sotid_type.i sotid_data.i love_const.i love_numbers.i
sotid_set.o:		sotid_type.i sotid_data.i love_const.i love_numbers.i
sotid_tai_tdb.o:	sotid_data.i love_const.i love_const.i love_numbers.i
sotid_tim.o:		sotid_type.i sotid_data.i love_const.i love_numbers.i
hw95_out.o:		hw95_out.i
 
sotid_c_test.o:		sotid_type.h sotid_data.h sotid_functions.h
 
install:
	cp libsotid.a $(LIB_DIR)/libsotid.a
	cp sotid_man.html $(DOC_DIR)/sotid_man.html
	cp sotid.ps $(DOC_DIR)/sotid.ps
	if ( -f SOTID_MODULE.mod ) cp SOTID_MODULE.mod $(INC_DIR)/SOTID_MODULE.mod
	if ( -f SOTID_MODULE.d   ) cp SOTID_MODULE.d   $(INC_DIR)/SOTID_MODULE.d
	cp sotid_data.i      $(INC_DIR)/sotid_data.i
	cp sotid_data.h      $(INC_DIR)/sotid_data.h
	cp sotid_type.h      $(INC_DIR)/sotid_type.h
	cp sotid_functions.h $(INC_DIR)/sotid_functions.h
	if ( -d $(MAN_DIR)/man3/ ) install -m 644 sotid.man.3 $(MAN_DIR)/man3/sotid.man.3
	@echo "\n\n ---  Library sotid was successfull installed. ---"
 
 
clean:
	rm -f sotid_type.i sotid_data.i sotid_type.h hw95_out.i \
        $(BIN_DIR)/sotid_f90_test $(BIN_DIR)/sotid_c_test sotid_configure \
	$(OBJ) $(MOD) sotid_configure.o hw95_out.o \
        sotid_f90_test.o sotid_c_test.o \
        $(LIB_SOTID) $(MOD_FILE) \
        $(LIB_DIR)/libsotid.a $(MAN_DIR)/sotid.man.3 \
        $(DOC_DIR)/sotid_man.html \
        $(INC_DIR)/SOTID_MODULE.mod   $(INC_DIR)/SOTID_MODULE.d   \
        $(INC_DIR)/sotid_data.i $(INC_DIR)/sotid_functions.h \
        $(INC_DIR)/sotid_data.h $(INC_DIR)/sotid_type.h \
        $(DOC_DIR)/sotid.ps \
        Makefile
	@echo "\n\n ---  Garbage was purged ---"
 
tar:
	rm -f sotid_1.1.tar.gz
	tar -cvf /tmp/sotid_1.1.tar .
	gzip /tmp/sotid_1.1.tar
	mv /tmp/sotid_1.1.tar.gz .
	@echo "\n\n ---  Tar file is created ---"
