#
# @(#)Makefile (jumon)
#  GNU make 用
#
# make の方法
# ・make
#  リリース用の正式版を作成
# ・make mode=debug
#  デバッグ用に作成
# ・make clean
#  make で作成した全てのファイルを削除
# ・make install
#  規定の場所にインストール (実機用のみ)
#

# バージョン
version = 0x0920

# リリース用をデフォルトにする
mode =

# ソースの依存関係ファイル (自動生成)
DEPS = Dependencies
DEPENDENCIES_OUTPUT := $(DEPS)

# アプリケーション標準ルール
include ../../etc/makerules

#----------------------------------------------------------------------
# 作成対象
TARGET = jumon
APPID  = 0x8100 0xC001 0x8032

# ソースファイルのサーチパス
S = ../src
VPATH = $(S)

# ヘッダファイルのディレクトリ追加
HEADER := $(S) $(HEADER)

# ソースファイル
SRC = main.c args.c setcmd.c setpar.c

# データボックスソースファイル
#DBSRC = dbox.c

SRC += $(DBSRC)

WC_SRC = $(filter %.C, $(SRC))

# オブジェクトファイル
OBJ = $(addsuffix .o, $(basename $(SRC)))

# コンパイルオプション
ifneq ($(mode), debug)
  CFLAGS += -Wall
endif

#----------------------------------------------------------------------
.PHONY: all clean install

INST = $(addprefix $(TARGET), .bz .map)
NOINST = $(addprefix $(TARGET), .out .fsn .dbx .form)

all: $(INST)

$(TARGET).out: $(OBJ)
 $(LINK.o) $(LDOBJS) $^ $(LOADLIBES) $(LDLIBS) $(OUTPUT_OPTION)

clean:
 $(RM) $(OBJ)
 $(RM) $(WC_SRC:%.C=%.c) $(DBSRC)
 $(RM) $(INST) $(NOINST) *.lst $(DEPS)

install: $(INST:%=$(EXE_INSTALLDIR)/%)

$(EXE_INSTALLDIR)/$(TARGET).out: $(EXE_INSTALLDIR)/%: %
 $(EXE_INSTALL_STRIP)

# 原紙
# (作成アプリケーションと基本文章編集の実行機能付箋を付ける例)
# form.tad に実身の初期内容を用意しておくこと。

FORM_NAME = 呪文用紙

$(TARGET).form: $(TARGET).fsn txed.fsn print.fsn ../src/form.tad
 $(MKBTF) -o$@ -a19 -t$(FORM_NAME) \
  1.0.../src/form.tad \
  8.0.txed.fsn \
  8.0.print.fsn \
  8.0.$(TARGET).fsn

GENSHI = 0x8001.0.0x800c

# 圧縮アーカイブ
#

$(TARGET).bz: $(NOINST)
 $(CP) $(TARGET).out _t
 $(STRIP) _t
 $(MKBTF) -o$@ -a0x8003 -c -t$(TARGET) \
  9.0x163._t \
  10.0.$(TARGET).dbx \
                7.$(version).$(TARGET).fsn \
  @0.0.$(GENSHI).$(TARGET).form
 $(RM) _t

## $(MKBTF) の引数:
##   -a0x8003 アプリケーション登録可能
##   -a0x0003 アプリケーション登録不可
##   -f0x40   小物として登録
## 原紙タイプのアプリケーションの場合は
##  @0.0.$(GENSHI).$(TARGET).form
## を付加すること。

# ソースの依存関係

$(WC_SRC:%.C=%.c):

$(DBSRC):

ifdef DEPENDENCIES_OUTPUT
$(DEPS): ; touch $(DEPS)
else
$(DEPS): $(SRC) ; $(MAKEDEPS) $@ $?
endif

include $(DEPS)