#	makefile for TeX PK fonts

##  ʲϥޥ ( ʬŪѹ ) 

SHELL     = /bin/sh
MAKE      = make DPI=$(DPI) HALF=$(HALF) MAGLIST="$MAGLIST"

##  ϥƥ˱ѹƤ 

## եȤβ ( mkall.sh ȤʤѹʤƤ褤 )
 DPI      = 400                 # եȤββ

 HALF     =                     # Ĥβ٤Ȳβ٤Ʊե
#HALF     = half                # Ĥβ٤β٤ȾʬΥե

 MAGLIST  =                     # ʤˤꤷʤȥǥեȤˤʤ

## make listפνϥե륿
 FOLD     = wfold -64           # /usr/local/bin/perl 
#FOLD     = fold -64            # fold Ϥ
#FOLD     = cat                 # fold ʤ

##  ޤǤϥƥ˱ѹƤ 

MF2PK = ./mf2pk

## base files
MF = ./mf-$(DPI)$(HALF)
CMMF = ./cmmf-$(DPI)$(HALF)

## mode_def file
MODEDEF = ./mode_def-$(DPI)$(HALF)

## makePKfonts archive
VERSION = 1.0.3
ARCHIVEBASENAME = makePKfonts$(VERSION)
THISDIRNAME = makePKfonts

##  Ͼѹ 

## METAFONT2.7 (cm, LaTeX and utility fonts)
CM = \
    cmr17 cmr12 cmr10 cmr9 cmr8 cmr7 cmr6 cmr5 \
    cmsl12 cmsl10 cmsl9 cmsl8 \
    cmdunh10 \
    cmbx12 cmbx10 cmbx9 cmbx8 cmbx7 cmbx6 cmbx5 \
    cmb10 \
    cmbxsl10 \
    cmtt12 cmtt10 cmtt9 cmtt8 \
    cmvtt10 \
    cmsltt10 \
    cmss17 cmss12 cmss10 cmss9 cmss8 \
    cmssi17 cmssi12 cmssi10 cmssi9 cmssi8 \
    cmssbx10 \
    cmssdc10 \
    cmssq8 \
    cmssqi8 \
    cminch \
    cmfib8 \
    cmfi10 \
    cmff10 \
    cmti12 cmti10 cmti9 cmti8 cmti7 \
    cmmi12 cmmi10 cmmi9 cmmi8 cmmi7 cmmi6 cmmi5 \
    cmbxti10 \
    cmmib10 \
    cmitt10 \
    cmu10 \
    cmsy10 cmsy9 cmsy8 cmsy7 cmsy6 cmsy5 \
    cmbsy10 \
    cmex10 \
    cmtex10 cmtex9 cmtex8 \
    cmcsc10 \
    cmtcsc10

LATEX = \
    cmtt8 \
    cmmi8 \
    cmsy8 \
    cmex10 \
    icmtt8 \
    icmmi8 \
    icmsy8 \
    icmex10 \
    lcmss8 \
    lcmssb8 \
    lcmssi8 \
    ilcmss8 \
    ilcmssb8 \
    ilcmssi8 \
    lasy10 lasy9 lasy8 lasy7 lasy6 lasy5 \
    lasyb10 \
    ilasy8

LINE = \
    line10 \
    linew10
    
LCIRCLE = \
    lcircle10 \
    lcirclew10

MANUALFONTS = \
    manfnt

LOGO = \
    logo10 logo9 logo8 \
    logobf10 \
    logosl10

## AMSFonts 2.1
AMSEXTRACM = \
    cmmib9 cmmib8 cmmib7 cmmib6 cmmib5 \
    cmbsy9 cmbsy8 cmbsy7 cmbsy6 cmbsy5 \
    cmcsc9 cmcsc8 \
    cmex9 cmex8 cmex7

AMSEULER = \
    euex10 euex9 euex8 euex7 \
    eufm10 eufm9 eufm8 eufm7 eufm6 eufm5 \
    eufb10 eufb9 eufb8 eufb7 eufb6 eufb5 \
    eurm10 eurm9 eurm8 eurm7 eurm6 eurm5 \
    eurb10 eurb9 eurb8 eurb7 eurb6 eurb5 \
    eusm10 eusm9 eusm8 eusm7 eusm6 eusm5 \
    eusb10 eusb9 eusb8 eusb7 eusb6 eusb5

AMSCYRILLIC = \
    wncyr10 wncyr9 wncyr8 wncyr7 wncyr6 wncyr5 \
    wncyb10 wncyb9 wncyb8 wncyb7 wncyb6 wncyb5 \
    wncyi10 wncyi9 wncyi8 wncyi7 wncyi6 wncyi5 \
    wncysc10 \
    wncyss10 wncyss9 wncyss8

AMSSYMBOLS = \
    msam10 msam9 msam8 msam7 msam6 msam5 \
    msbm10 msbm9 msbm8 msbm7 msbm6 msbm5

## circle* is necessary for old TeX.
CIRCLE = \
    circle10 \
    circlew10

## special fonts
BLACKBOARDBOLD = \
    bbold17 bbold12 bbold10 bbold9 bbold8 bbold7 bbold6 bbold5 \
    cspex10

ASTRO = \
    cmastro10 cmastro9 cmastro8 cmastro7 cmastro6 cmastro5

ASTROSYM = \
	astrosym

LOGIC = \
	milstd

ASCGRP = \
    ascgrp

KUROKO = \
    kuroko10 kuroko30

## SLiTeX and texinfo
SLITEX = \
    cmtt8 \
    cmmi8 \
    cmsy8 \
    lcmss8 \
    lcmssb8 \
    lcmssi8 \
    lasy8

TEXINFO = \
    cmsl10 \
    cmb10 \
    cmtt10 \
    cmss10 \
    cmti10

SMCSC_SCALED = \
	cmcsc10@ptscale9 cmcsc10@ptscale8

##  ޤǤϾѹ 

##  ʲϥåȡȥ ( ѹ ) 

all: help

help::
	@echo "usage: make DPI=dpi HALF=[half] MAGLIST=maglist font"
	@echo "font is one of follow: "
	@echo "  Everything (Standard, Utility, Ams, Special, Old)."
	@echo "  Stander(cm, latex); Utility(manualfonts, logo); "
	@echo "  Ams(amscyrillic, amseuler, amsextracm, amssymbols); "
	@echo "  Special(blackboardbold, astro, astrosym, logic, ascgrp, kuroko); "
	@echo "  Old(circle)."
	@echo "  slitex.  texinfo.  cmcsc_scaled."

list::
	@echo "font is one of follow: "
	@echo "  Everything (Standard, Utility, Ams, Special, Old)."
	@echo "  Standerd(cm, latex); Utility(manualfonts, logo); "
	@echo "  Ams(amscyrillic, amseuler, amsextracm, amssymbols); "
	@echo "  Special(blackboardbold, astro, astrosym, logic, ascgrp, kuroko); "
	@echo "  Old(circle)."
	@echo "  slitex.  texinfo.  cmcsc_scaled."
	@echo "=========================== Standard ==========================="
	@echo "------------------------------ cm ------------------------------"
	@echo "$(CM)" | $(FOLD)
	@echo "----------------------------- latex ----------------------------"
	@echo "$(LATEX) $(LINE) $(LCIRCLE)" | $(FOLD)
	@echo "=========================== Utility ============================"
	@echo "-------------------------- manualfonts -------------------------"
	@echo "$(MANUALFONTS)" | $(FOLD)
	@echo "----------------------------- logo -----------------------------"
	@echo "$(LOGO)" | $(FOLD)
	@echo "============================== Ams ============================="
	@echo "-------------------------- amscyrillic -------------------------"
	@echo "$(AMSCYRILLIC)" | $(FOLD)
	@echo "---------------------------- amseuler --------------------------"
	@echo "$(AMSEULER)" | $(FOLD)
	@echo "--------------------------- amsextracm -------------------------"
	@echo "$(AMSEXTRACM)" | $(FOLD)
	@echo "--------------------------- amssymbols -------------------------"
	@echo "$(AMSSYMBOLS)" | $(FOLD)
	@echo "============================ Special =========================="
	@echo "------------------------ blackboardbold ------------------------"
	@echo "$(BLACKBOARDBOLD)" | $(FOLD)
	@echo "---------------------------- astro -----------------------------"
	@echo "$(ASTRO)" | $(FOLD)
	@echo "--------------------------- astrosym ---------------------------"
	@echo "$(ASTROSYM)" | $(FOLD)
	@echo "---------------------------- logic -----------------------------"
	@echo "$(LOGIC)" | $(FOLD)
	@echo "---------------------------- ascgrp ----------------------------"
	@echo "$(ASCGRP)" | $(FOLD)
	@echo "---------------------------- kuroko ----------------------------"
	@echo "$(KUROKO)" | $(FOLD)
	@echo "============================ circle ============================"
	@echo "$(CIRCLE)" | $(FOLD)
	@echo "============================ slitex ============================"
	@echo "$(SLITEX)" | $(FOLD)
	@echo "============================ texinfo ==========================="
	@echo "$(TEXINFO)" | $(FOLD)
	@echo "========================== cmcsc_scaled ========================"
	@echo "$(SMCSC_SCALED)" | $(FOLD)
	@echo "================================================================"

Everything: Standard Utility Ams Special Old

Standard: cm latex
Utility: manualfonts logo
Ams: amscyrillic amseuler amsextracm amssymbols
Special: blackboardbold astrosym logic ascgrp kuroko
Old: circle

cm: $(CM)
latex: $(LATEX) $(LINE) $(LCIRCLE)
manualfonts: $(MANUALFONTS)
logo: $(LOGO)
amscyrillic: $(AMSCYRILLIC)
amseuler: $(AMSEULER)
amsextracm: $(AMSEXTRACM)
amssymbols: $(AMSSYMBOLS)
blackboardbold: $(BLACKBOARDBOLD)
astro: $(ASTRO)
astrosym: # $(ASTROSYM)
logic: $(LOGIC)
ascgrp: # $(ASCGRP)
kuroko: $(KUROKO)
circle: $(CIRCLE)

slitex: $(SLITEX)
texinfo: $(TEXINFO)

cmcsc_scaled: $(SMCSC_SCALED)

$(LINE) $(LCIRCLE) \
$(LOGO) \
$(AMSEULER) \
$(BLACKBOARDBOLD) $(ASTROSYM) $(LOGIC): $(MF).base
	@if [ X"$(MAGLIST)" = X"" ]; then \
	 	$(MF2PK) base=$(MF) dpi=$(DPI)$(HALF) maglist="magstep[0-5]" $@; \
	 else \
	 	$(MF2PK) base=$(MF) dpi=$(DPI)$(HALF) maglist="$(MAGLIST)" $@; \
	 fi

$(CM) $(LATEX) $(MANUALFONTS) \
$(AMSCYRILLIC) $(AMSEXTRACM) $(AMSSYMBOLS) \
$(ASTRO) $(ASCGRP) $(KUROKO): $(CMMF).base
	@if [ X"$(MAGLIST)" = X"" ]; then \
	 	$(MF2PK) base=$(CMMF) dpi=$(DPI)$(HALF) maglist="magstep[0-5]" $@; \
	 else \
	 	$(MF2PK) base=$(CMMF) dpi=$(DPI)$(HALF) maglist="$(MAGLIST)" $@; \
	 fi

cmcsc10@ptscale9: $(CMMF).base
	@$(MF2PK) base=$(CMMF) dpi=$(DPI)$(HALF) maglist=0.9 cmcsc10

cmcsc10@ptscale8: $(CMMF).base
	@$(MF2PK) base=$(CMMF) dpi=$(DPI)$(HALF) maglist=0.8 cmcsc10

$(CIRCLE):
	@if [ X"$(MAG)" = X"" ]; then \
		$(MF2PK) base=NULL dpi=$(DPI)$(HALF) mag="magstep[0-5]" $@; \
	 else \
		$(MF2PK) base=NULL dpi=$(DPI)$(HALF) mag="$(MAG)" $@; \
	 fi

## base files
bases: $(MF).base $(CMMF).base

$(MF).base: $(MODEDEF).mf
	-rm -f $@
	 inimf plain "input $(MODEDEF);" dump
	 mv plain.base $@
	-rm -f plain.log

$(CMMF).base: $(MODEDEF).mf $(MF).base
	-rm -f $@
	 inimf "&$(MF)" cmbase "input $(MODEDEF);" dump
	 mv cmbase.base $@
	-rm -f cmbase.log

## mode_def file
$(MODEDEF).mf:
	-rm -f $@
	 ./mode_def $(DPI) $(HALF)

## clean, very clean, and dist clean
clean veryclean distclean::
	-rm -f core *~ \#* *.bak
	-rm -f *.log *.*gf *.*pk *.tfm 

veryclean distclean::
	-rm -f *.mf *.base

distclean::
	-rm -rf tfm pk[1-9]* $(ARCHIVEBASENAME).tar.gz

## tar
tar: $(ARCHIVEBASENAME).tar.gz

$(ARCHIVEBASENAME).tar.gz: README.jis Install_INPUTS mkall.sh Makefile \
                           mf2pk mode_def dpi modename wfold SpecialFonts
	( cd .. \
	&& tar cvf - \
		./$(THISDIRNAME)/README.jis \
		./$(THISDIRNAME)/Install_INPUTS \
		./$(THISDIRNAME)/mkall.sh \
		./$(THISDIRNAME)/Makefile \
		./$(THISDIRNAME)/mf2pk \
		./$(THISDIRNAME)/mode_def \
		./$(THISDIRNAME)/dpi \
		./$(THISDIRNAME)/modename \
		./$(THISDIRNAME)/wfold \
		./$(THISDIRNAME)/SpecialFonts \
	) | gzip -f -9 >$@

