# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Makefile for JC's .../abc/test/  directory.   Our  dummy  all  entry  makes #
# nothing, so you have to specify what you want made.  This might change with #
# time.                                                                       #
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Special kludge: A few  entries  make  two  .ps  and  .pdf  files  with  the
# following additions to the file name:
#
#   _JC uses jcabc2ps (John Chambers' extended abc2ps)
#   _JM uses abcm2ps  (Jef Moine's extended abc2ps)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #

a2p=jcabc2ps
U=http://trillian.mit.edu/~jc/music/test
D=`dt`

.SUFFIXES:
.SUFFIXES: .abc .ps .gif
.abc.ps: $*.abc
	$(a2p) -n $*.abc > $*.ps
.ps.gif: $*.ps
	ps2gif $*.ps

all: # Nothing to see here; move on ...

neat   :      ; -/bin/rm -f *- *.bak
clean  : neat ; -/bin/rm -f new.* *.pdf *.ps *.out
clobber: clean; -/bin/rm -f core

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #

# jj
jj= _.abc
jj: jj.abc jj.ps jj.pdf
jj.abc: $(jj) # hdr/jj.hdr
	abcjoin +s jj $(jj) >jj.abc
jj.ps: jj.abc fmt/jj.fmt
	$(a2p) jj.abc +Ffmt/jj \
	|PShdr jj '' jj \
	|PSftr %D $U/ %D >jj.ps
jj.pdf: jj.ps
	ps2pdf jj.ps jj.pdf

tt: tt.abc tt.ps tt.pdf
tt.ps: tt.abc
	$(a2p) tt.abc > tt.ps
tt.pdf: tt.ps
	ps2pdf tt.ps

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #

# tmpcoll is all the .abc files in the tmp dir:
tmpcoll= tmp/*.abc
tmpcoll: tmpcoll.abc tmpcoll.ps tmpcoll.pdf
tmpcoll.abc: $(tmpcoll) # hdr/tmpcoll.hdr
	abcjoin +F +S tmpcoll $(tmpcoll) >tmpcoll.abc
tmpcoll.ps: tmpcoll.abc fmt/tmpcoll.fmt
	$(a2p) tmpcoll.abc +x +Ffmt/tmpcoll.fmt \
	|PShdr tmpcoll '' tmpcoll \
	|PSftr '' $U/ '' >tmpcoll.ps
tmpcoll.pdf: tmpcoll.ps
	ps2pdf tmpcoll.ps tmpcoll.pdf

Bach_Praeludium_II: Bach_Praeludium_II.abc Bach_Praeludium_II.ps
Bach_Praeludium_II.ps: Bach_Praeludium_II.abc
	$(a2p) Bach_Praeludium_II.abc > Bach_Praeludium_II.ps

BarsAndRests: BarsAndRests.abc BarsAndRests.ps
BarsAndRests.ps: BarsAndRests.abc
	$(a2p) BarsAndRests.abc > BarsAndRests.ps

Blue_boy_bass: Blue_boy_bass.abc Blue_boy_bass.ps
Blue_boy_bass.ps: Blue_boy_bass.abc
	$(a2p) Blue_boy_bass.abc > Blue_boy_bass.ps

Celloprelude: Celloprelude.abc Celloprelude.ps
Celloprelude.ps: Celloprelude.abc
	$(a2p) Celloprelude.abc > Celloprelude.ps

ChangingTimeg: ChangingTimeg.abc ChangingTimeg.ps
ChangingTimeg.ps: ChangingTimeg.abc
	$(a2p) ChangingTimeg.abc > ChangingTimeg.ps

ChordsUnionsFirstAndSecondEndings: ChordsUnionsFirstAndSecondEndings.abc ChordsUnionsFirstAndSecondEndings.ps ChordsUnionsFirstAndSecondEndings.pdf
ChordsUnionsFirstAndSecondEndings.ps: ChordsUnionsFirstAndSecondEndings.abc
	$(a2p) ChordsUnionsFirstAndSecondEndings.abc > ChordsUnionsFirstAndSecondEndings.ps
ChordsUnionsFirstAndSecondEndings.pdf: ChordsUnionsFirstAndSecondEndings.ps
	ps2pdf ChordsUnionsFirstAndSecondEndings.ps

ChordsWithManyAccidentals: ChordsWithManyAccidentals.abc ChordsWithManyAccidentals.ps ChordsWithManyAccidentals.pdf
ChordsWithManyAccidentals.ps: ChordsWithManyAccidentals.abc
	$(a2p) ChordsWithManyAccidentals.abc > ChordsWithManyAccidentals.ps
ChordsWithManyAccidentals.pdf: ChordsWithManyAccidentals.ps
	ps2pdf ChordsWithManyAccidentals.ps

Chord_C_Major_alone: Chord_C_Major_alone_1 Chord_C_Major_alone_2

Chord_C_Major_alone_1: Chord_C_Major_alone_1.ps Chord_C_Major_alone_1.pdf
Chord_C_Major_alone_1.ps: Chord_C_Major_alone.abc
	jcabc2ps Chord_C_Major_alone.abc >Chord_C_Major_alone_1.ps
Chord_C_Major_alone_1.pdf: Chord_C_Major_alone_1.ps
	ps2pdf Chord_C_Major_alone_1.ps

Chord_C_Major_alone_2: Chord_C_Major_alone_2.ps Chord_C_Major_alone_2.pdf
Chord_C_Major_alone_2.ps: Chord_C_Major_alone.abc
	jcabc2ps Chord_C_Major_alone.abc >Chord_C_Major_alone_2.ps
Chord_C_Major_alone_2.pdf: Chord_C_Major_alone_2.ps
	ps2pdf Chord_C_Major_alone_2.ps

Chords_With_Names: Chord_C_Major_alone \
	Chords_With_Names_1 Chords_With_Names_2 \
	Chords_With_Names2_1 Chords_With_Names2_2

Chords_With_Names_1: Chords_With_Names_1.ps Chords_With_Names_1.pdf
Chords_With_Names_1.ps: Chords_With_Names.abc
	jcabc2ps Chords_With_Names.abc >Chords_With_Names_1.ps
Chords_With_Names_1.pdf: Chords_With_Names_1.ps
	ps2pdf Chords_With_Names_1.ps

Chords_With_Names_2: Chords_With_Names_2.ps Chords_With_Names_2.pdf
Chords_With_Names_2.ps: Chords_With_Names.abc
	abcm2ps Chords_With_Names.abc -O Chords_With_Names_2.ps
Chords_With_Names_2.pdf: Chords_With_Names_2.ps
	ps2pdf Chords_With_Names_2.ps

Chords_With_Names2_1: Chords_With_Names2_1.ps Chords_With_Names2_1.pdf
Chords_With_Names2_1.ps: Chords_With_Names2.abc
	jcabc2ps Chords_With_Names2.abc >Chords_With_Names2_1.ps
Chords_With_Names2_1.pdf: Chords_With_Names2_1.ps
	ps2pdf Chords_With_Names2_1.ps

Chords_With_Names2_2: Chords_With_Names2_2.ps Chords_With_Names2_2.pdf
Chords_With_Names2_2.ps: Chords_With_Names2.abc
	abcm2ps Chords_With_Names2.abc -O Chords_With_Names2_2.ps
Chords_With_Names2_2.pdf: Chords_With_Names2_2.ps
	ps2pdf Chords_With_Names2_2.ps

ClefChanges: ClefChanges.abc ClefChanges.ps
ClefChanges.ps: ClefChanges.abc
	$(a2p) ClefChanges.abc > ClefChanges.ps

CliffsOfMoher: CliffsOfMoher.abc CliffsOfMoher.ps
CliffsOfMoher.ps: CliffsOfMoher.abc
	$(a2p) CliffsOfMoher.abc > CliffsOfMoher.ps

Desafinado: Desafinado.abc Desafinado.ps
Desafinado.ps: Desafinado.abc
	$(a2p) Desafinado.abc > Desafinado.ps

Drone: Drone.abc Drone.ps
Drone.ps: Drone.abc
	$(a2p) Drone.abc > Drone.ps

Gracenotes: Gracenotes.abc Gracenotes.ps
Gracenotes.ps: Gracenotes.abc
	$(a2p) Gracenotes.abc > Gracenotes.ps

HeaderOnly: HeaderOnly.abc HeaderOnly.ps HeaderOnly.pdf
HeaderOnly.ps: HeaderOnly.abc
	$(a2p) HeaderOnly.abc > HeaderOnly.ps
HeaderOnly.pdf: HeaderOnly.ps
	ps2pdf HeaderOnly.ps

Header+Staff: Header+Staff.abc Header+Staff.ps Header+Staff.pdf
Header+Staff.ps: Header+Staff.abc
	jcabc2ps Header+Staff.abc > Header+Staff.ps
Header+Staff.pdf: Header+Staff.ps
	ps2pdf Header+Staff.ps

HorizontalBeams: HorizontalBeams.abc HorizontalBeams.ps
HorizontalBeams.ps: HorizontalBeams.abc
	$(a2p) HorizontalBeams.abc > HorizontalBeams.ps

IncipitTest1: IncipitTest1.abc IncipitTest1.ps
IncipitTest1.ps: IncipitTest1.abc
	$(a2p) IncipitTest1.abc > IncipitTest1.ps

IncipitTest2: IncipitTest2.abc IncipitTest2.ps
IncipitTest2.ps: IncipitTest2.abc
	$(a2p) IncipitTest2.abc > IncipitTest2.ps

InvisibleRestsUsingX: InvisibleRestsUsingX.abc InvisibleRestsUsingX.ps
InvisibleRestsUsingX.ps: InvisibleRestsUsingX.abc
	$(a2p) InvisibleRestsUsingX.abc > InvisibleRestsUsingX.ps

Journey: Journey.abc Journey.ps
Journey.ps: Journey.abc
	$(a2p) Journey.abc > Journey.ps

Kalamatianos: Kalamatianos.abc Kalamatianos.ps
Kalamatianos.ps: Kalamatianos.abc
	$(a2p) Kalamatianos.abc > Kalamatianos.ps

KeySig_Acc_Deco: KeySig_Acc_Deco.abc KeySig_Acc_Deco.pdf
KeySig_Acc_Deco.ps: KeySig_Acc_Deco.abc
	$(a2p) KeySig_Acc_Deco.abc > KeySig_Acc_Deco.ps
KeySig_Acc_Deco.pdf: KeySig_Acc_Deco.ps
	ps2pdf KeySig_Acc_Deco.ps

L_1: L_1.abc L_1.ps L_1.pdf
L_1.ps: L_1.abc
	$(a2p) L_1.abc > L_1.ps
L_1.pdf: L_1.ps
	ps2pdf L_1.ps

Letters: Letters.abc Letters.ps Letters.pdf
Letters.ps: Letters.abc
	$(a2p) Letters.abc > Letters.ps
Letters.pdf: Letters.ps
	ps2pdf Letters.ps

M_None: M_None.abc M_None.ps M_None.pdf
M_None.ps: M_None.abc
	$(a2p) M_None.abc > M_None.ps
M_None.pdf: M_None.ps
	ps2pdf M_None.ps

# Minuetto_1
Minuetto_1= Minuetto_1-F-40-2.abc
Minuetto_1: Minuetto_1.abc Minuetto_1.ps Minuetto_1.pdf
Minuetto_1.abc: $(Minuetto_1) # hdr/Minuetto_1.hdr
	abcjoin +s $(Minuetto_1) >Minuetto_1.abc
Minuetto_1.ps: Minuetto_1.abc fmt/_70.fmt
	jcabc2ps Minuetto_1.abc +Ffmt/_70.fmt \
	|PShdr Minuetto_1 '' Minuetto_1 \
	|PSftr %D $U/ %D >Minuetto_1.ps
Minuetto_1.pdf: Minuetto_1.ps
	ps2pdf Minuetto_1.ps Minuetto_1.pdf

Misirlou_Dhjz: Misirlou_Dhjz.abc Misirlou_Dhjz.ps Misirlou_Dhjz.pdf
Misirlou_Dhjz.ps: Misirlou_Dhjz.abc
	$(a2p) Misirlou_Dhjz.abc > Misirlou_Dhjz.ps
Misirlou_Dhjz.pdf: Misirlou_Dhjz.ps
	ps2pdf Misirlou_Dhjz.ps

Misirlou_Ehjz: Misirlou_Ehjz.abc Misirlou_Ehjz.ps Misirlou_Ehjz.pdf
Misirlou_Ehjz.ps: Misirlou_Ehjz.abc
	$(a2p) Misirlou_Ehjz.abc > Misirlou_Ehjz.ps
Misirlou_Ehjz.pdf: Misirlou_Ehjz.ps
	ps2pdf Misirlou_Ehjz.ps

Misirlou_min: Misirlou_min.abc Misirlou_min.ps Misirlou_min.pdf
Misirlou_min.ps: Misirlou_min.abc
	$(a2p) Misirlou_min.abc > Misirlou_min.ps
Misirlou_min.pdf: Misirlou_min.ps
	ps2pdf Misirlou_min.ps

NowIsTheMonthOfMaying: NowIsTheMonthOfMaying.abc NowIsTheMonthOfMaying.ps NowIsTheMonthOfMaying.pdf
NowIsTheMonthOfMaying.ps: NowIsTheMonthOfMaying.abc _65.fmt
	$(a2p) -maxv 5 -n NowIsTheMonthOfMaying.abc -F _65 > NowIsTheMonthOfMaying.ps
NowIsTheMonthOfMaying.pdf: NowIsTheMonthOfMaying.ps
	ps2pdf NowIsTheMonthOfMaying.ps

Q: Q_Tempo_Change

Q_Tempo_Change: Q_Tempo_Change.abc Q_Tempo_Change.ps Q_Tempo_Change.pdf
Q_Tempo_Change.ps: Q_Tempo_Change.abc
	$(a2p) Q_Tempo_Change.abc > Q_Tempo_Change.ps
Q_Tempo_Change.pdf: Q_Tempo_Change.ps
	ps2pdf Q_Tempo_Change.ps

ScaleWithBassAndAltoClef: ScaleWithBassAndAltoClef.abc ScaleWithBassAndAltoClef.ps
ScaleWithBassAndAltoClef.ps: ScaleWithBassAndAltoClef.abc
	$(a2p) ScaleWithBassAndAltoClef.abc > ScaleWithBassAndAltoClef.ps

ScaleWithTrebleClef: ScaleWithTrebleClef.abc ScaleWithTrebleClef.ps
ScaleWithTrebleClef.ps: ScaleWithTrebleClef.abc
	$(a2p) ScaleWithTrebleClef.abc > ScaleWithTrebleClef.ps

ScotlandTheBrave: ScotlandTheBrave.abc ScotlandTheBrave.ps
ScotlandTheBrave.ps: ScotlandTheBrave.abc
	$(a2p) ScotlandTheBrave.abc > ScotlandTheBrave.ps

ShortAndLongNotesBeamsNTuplets: ShortAndLongNotesBeamsNTuplets.abc ShortAndLongNotesBeamsNTuplets.ps
ShortAndLongNotesBeamsNTuplets.ps: ShortAndLongNotesBeamsNTuplets.abc
	$(a2p) ShortAndLongNotesBeamsNTuplets.abc > ShortAndLongNotesBeamsNTuplets.ps

SlursAndTies: SlursAndTies.abc SlursAndTies.ps
SlursAndTies.ps: SlursAndTies.abc
	$(a2p) SlursAndTies.abc > SlursAndTies.ps

StrangeTupletCases: StrangeTupletCases.abc StrangeTupletCases.ps
StrangeTupletCases.ps: StrangeTupletCases.abc
	$(a2p) StrangeTupletCases.abc > StrangeTupletCases.ps

Rests_Whole_Half: Rests_Whole_Half.ps Rests_Whole_Half.pdf
Rests_Whole_Half.pdf: Rests_Whole_Half.ps
: .abc .ps
	ps2pdf Rests_Whole_Half.ps Rests_Whole_Half.pdf
Rests_Whole_Half: Rests_Whole_Half.abc Rests_Whole_Half.ps
Rests_Whole_Half.ps: Rests_Whole_Half.abc
	abcm2ps Rests_Whole_Half.abc -O Rests_Whole_Half.ps
#	jc$(a2p) Rests_Whole_Half.abc >Rests_Whole_Half.ps

Font_sharp_flat: Font_sharp_flat.abc Font_sharp_flat.ps Font_sharp_flat.pdf
Font_sharp_flat.ps: Font_sharp_flat.abc
	abcm2ps Font_sharp_flat.abc -O Font_sharp_flat.ps
Font_sharp_flat.pdf: Font_sharp_flat.ps
	ps2pdf Font_sharp_flat.ps Font_sharp_flat.pdf

T_3: T_3.abc T_3.ps
T_3.ps: T_3.abc
	$(a2p) T_3.abc > T_3.ps

V_1: V_1.abc V_1.ps
V_1.ps: V_1.abc
	$(a2p) V_1.abc > V_1.ps

V_8: V_8.abc V_8.ps
V_8.ps: V_8.abc
	$(a2p) V_8.abc > V_8.ps

V_ErevBa: V_ErevBa.abc V_ErevBa.ps
V_ErevBa.ps: V_ErevBa.abc
	$(a2p) V_ErevBa.abc > V_ErevBa.ps

V_FairfieldFancy: V_FairfieldFancy.abc V_FairfieldFancy.ps
V_FairfieldFancy.ps: V_FairfieldFancy.abc
	$(a2p) V_FairfieldFancy.abc > V_FairfieldFancy.ps

V_HelleWasser: V_HelleWasser.abc V_HelleWasser.ps
V_HelleWasser.ps: V_HelleWasser.abc
	$(a2p) V_HelleWasser.abc > V_HelleWasser.ps

V_HokpersV2: V_HokpersV2.abc V_HokpersV2.ps
V_HokpersV2.ps: V_HokpersV2.abc
	$(a2p) V_HokpersV2.abc > V_HokpersV2.ps

V_TzadikKatamar: V_TzadikKatamar.abc V_TzadikKatamar.ps
V_TzadikKatamar.ps: V_TzadikKatamar.abc
	$(a2p) V_TzadikKatamar.abc > V_TzadikKatamar.ps

Vocals: Vocals.abc Vocals.ps
Vocals.ps: Vocals.abc
	$(a2p) Vocals.abc > Vocals.ps

Bagpipe: Bagpipe.abc Bagpipe.ps
Bagpipe.ps: Bagpipe.abc
	$(a2p) Bagpipe.abc > Bagpipe.ps

chords: chords.abc chords.ps
chords.ps: chords.abc
	$(a2p) chords.abc > chords.ps

keysig: keysig.abc keysig.ps
keysig.ps: keysig.abc
	$(a2p) keysig.abc > keysig.ps

list: list.abc list.ps
list.ps: list.abc
	$(a2p) list.abc > list.ps

Scotland: Scotland.abc Scotland.ps
Scotland.ps: Scotland.abc
	$(a2p) Scotland.abc > Scotland.ps

# Note Heads
NoteHead: NoteHead_JC.ps NoteHead_JC.pdf NoteHead_JM.ps NoteHead_JM.pdf
NoteHead_JC.ps: NoteHead.abc
	abcm2ps NoteHead.abc -O NoteHead_JC.ps
NoteHead_JC.pdf: NoteHead_JC.ps
	ps2pdf NoteHead_JC.ps NoteHead_JC.pdf
NoteHead_JM.ps: NoteHead.abc
	abcm2ps NoteHead.abc -O NoteHead_JM.ps
NoteHead_JM.pdf: NoteHead_JM.ps
	ps2pdf NoteHead_JM.ps NoteHead_JM.pdf

# Orn_Roll
Orn_Roll: Orn_Roll.ps Orn_Roll.pdf
Orn_Roll.ps: Orn_Roll.abc
	abcm2ps Orn_Roll.abc -O Orn_Roll.ps
Orn_Roll.pdf: Orn_Roll.ps
	ps2pdf Orn_Roll.ps Orn_Roll.pdf

# Parens
Parens: Parens.ps Parens.pdf
Parens.ps: Parens.abc
	abcm2ps Parens.abc -O Parens.ps
Parens.pdf: Parens.ps
	ps2pdf Parens.ps Parens.pdf

# Triple-Dot ornament (mostly Irish and Scottish)
# The test is mostly to see whether the dots are positioned reasonably,
# rather than being "off to the left" of the note head.
TripleDot: TripleDot_JC.ps TripleDot_JC.pdf TripleDot_JM.ps TripleDot_JM.pdf
TripleDot_JC.ps: TripleDot.abc
	abcm2ps TripleDot.abc -O TripleDot_JC.ps
TripleDot_JC.pdf: TripleDot_JC.ps
	ps2pdf TripleDot_JC.ps TripleDot_JC.pdf
TripleDot_JM.ps: TripleDot.abc
	abcm2ps TripleDot.abc -O TripleDot_JM.ps
TripleDot_JM.pdf: TripleDot_JM.ps
	ps2pdf TripleDot_JM.ps TripleDot_JM.pdf

# Triple-Dot ornaments (mostly Irish and Scottish)
# This test presents them in several different ways, to see how different formatters handle them.
TripleDots: TripleDots_JC TripleDots_JM
#
TripleDots_JC: TripleDots_JC.ps TripleDots_JC.pdf
TripleDots_JC.ps: TripleDots.abc
	abcm2ps TripleDots.abc -O TripleDots_JC.ps
TripleDots_JC.pdf: TripleDots_JC.ps
	ps2pdf TripleDots_JC.ps TripleDots_JC.pdf
#
TripleDots_JM: TripleDots_JM.ps TripleDots_JM.pdf
TripleDots_JM.ps: TripleDots.abc
	abcm2ps TripleDots.abc -O TripleDots_JM.ps
TripleDots_JM.pdf: TripleDots_JM.ps
	ps2pdf TripleDots_JM.ps TripleDots_JM.pdf

test: test.abc test.ps test.pdf
test.ps: test.abc
	$(a2p) test.abc > test.ps
test.pdf: test.ps
	ps2pdf test.ps

test0: test0.abc test0.ps
test0.ps: test0.abc
	$(a2p) test0.abc > test0.ps

testDOS: testDOS.abc testDOS.ps
testDOS.ps: testDOS.abc
	$(a2p) testDOS.abc > testDOS.ps

trio: trio.abc trio.ps trio.pdf
trio.ps: trio.abc
	$(a2p) trio.abc > trio.ps
trio.pdf: trio.ps
	ps2pdf trio.ps

2timesigs: 2timesigs.abc 2timesigs.ps 2timesigs.pdf
2timesigs.ps: 2timesigs.abc
#	abc2ps 2timesigs.abc -o -O 2timesigs.ps
	$(a2p) 2timesigs.abc > 2timesigs.ps
2timesigs.pdf: 2timesigs.ps
	ps2pdf 2timesigs.ps

w_AllMyLoving: w_AllMyLoving.abc w_AllMyLoving.ps
w_AllMyLoving.ps: w_AllMyLoving.abc
	$(a2p) w_AllMyLoving.abc > w_AllMyLoving.ps

w_NoFrontiers: w_NoFrontiers.abc w_NoFrontiers.ps
w_NoFrontiers.ps: w_NoFrontiers.abc
	$(a2p) w_NoFrontiers.abc > w_NoFrontiers.ps

w_OrdinaryMan: w_OrdinaryMan.abc w_OrdinaryMan.ps
w_OrdinaryMan.ps: w_OrdinaryMan.abc
	$(a2p) w_OrdinaryMan.abc > w_OrdinaryMan.ps


# SATBP octave score
SATBP_octaves= SATBP_octaves.abc
SATBP_octaves: SATBP_octaves.abc SATBP_octaves1.ps SATBP_octaves1.pdf SATBP_octaves2.ps SATBP_octaves2.pdf
SATBP_octaves1.ps: SATBP_octaves.abc
	jcabc2ps SATBP_octaves.abc >SATBP_octaves1.ps
SATBP_octaves1.pdf: SATBP_octaves1.ps
	ps2pdf SATBP_octaves1.ps SATBP_octaves1.pdf
SATBP_octaves2.ps: SATBP_octaves.abc 
	abcm2ps SATBP_octaves.abc -O SATBP_octaves2.ps
SATBP_octaves2.pdf: SATBP_octaves2.ps
	ps2pdf SATBP_octaves2.ps SATBP_octaves2.pdf

