# Makefile:libdans作成用 Version 7.42  Copyleft (c) 杉本典夫
# Time-stamp: <2024-11-01 16:56:11 tac>
#
# 使用法:make [<ターゲット名> …]
#        make         … ライブラリを作成する
#        make arcs    … 圧縮アーカイブファイルを作成する
#        make install … ヘッダファイルとライブラリをインストールする
#        make clean   … 不要なファイルを削除する(普通は実行しない)
#
# CXXは環境変数で設定する方法もあるが、ここではMakefile中で設定している。

name = lib
lname = dans

objs = datac.o dfun.o format.o ftable.o idd.o life.o putstat.o sfun.o stra.o
sous = $(objs:.o=.C)
arcs = $(name).zip
addfiles = Makefile

include ../dirink.mk

LIBF := lib$(lname)
LDNAME := $(LIBF).so
SONAME := $(LIBF).so.7
LIBNAME := $(LIBF).so.7.4

HEAD0 := $(LINCDIR)/fun.H $(LINCDIR)/mat.H
HEADS := $(lname).H

CXX := g++
CXXFLAGS := -O -W -I. -I$(LINCDIR) -fPIC -c
LIBFLAGS := -shared

ARCOM := zip
ARCOMFLAGS := -u

all : $(LIBNAME)

arcs : $(arcs)

$(LIBNAME) : $(objs)
	rm -f $@
	$(CXX) $(LIBFLAGS) -o $@ $(objs)

$(arcs) : $(HEADS) $(sous) $(addfiles)
	$(ARCOM) $(ARCOMFLAGS) $@ $?

%.o : %.C $(HEAD0) $(HEADS)
	$(CXX) $(CXXFLAGS) $<

install : installhead installlibf

installhead : $(HEADS)
	for file in $? ; do cp -f -p $(PWD)/$$file $(LINCDIR) ; done

installlibf : $(LIBNAME)
	cp -f -p $(PWD)/$? $(LLIBDIR) ; ln -sf $(LLIBDIR)/$? $(LLIBDIR)/$(SONAME) ; ln -sf $(LLIBDIR)/$(SONAME) $(LLIBDIR)/$(LDNAME)

clean :
	rm -f $(objs)
