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

name = fun

objs = day.o getfile.o jcode.o jstr.o option.o packcode.o put.o str.o
sous = $(objs:.o=.C)
arcs = $(name).zip
addfiles = Makefile

include ../dirink.mk

LIBF := lib$(name)
LDNAME := $(LIBF).so
SONAME := $(LIBF).so.2
LIBNAME := $(LIBF).so.2.2
HEADS := $(name).H

CXX := g++
CXXFLAGS := -O -W -I. -fPIC -c
LIBFLAGS := -shared -o

ARCOM := zip
ARCOMFLAGS = -u

all : $(LIBNAME)

arcs : $(arcs)

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

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

%.o : %.C $(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)
