# $Id: Makefile.ship,v 1.30 2014-01-17 16:36:46 drmiller Exp $

COPTS =

ROM = wang600.rom

SPCL = plotter_chrgen.dat

# Order is significant, until we setup dependencies
COMMON_CLASSES = \
		Wang_SplashScreen.class \
		SuffFileFilter.class \
		SuffFileChooser.class \
		Wang_Colors.class \
		Wang_Keys.class \
		Wang_Properties.class \
		Wang_PropertyEditor.class \
		Wang_CharConverter.class \
		Wang_Indicator.class \
		Wang_InputDevice.class \
		Wang_Core.class \
		Wang_UI.class \
		Wang_ErrorLight.class \
		Wang_FunctionLabelBar.class \
		Wang_TapeDevice.class \
		Wang_TapeDrive.class \
		Wang_OutputDevice.class \
		Wang_Paper.class \
		IBM_Selectric.class \
		ASR33_Teletype.class \
		Wang_Plotter.class \
		Wang_InputOutputWriter.class \
		Wang_Teletype.class \
		Wang_PaperTapeReader.class \
		Wang_MicroFace.class \
		Wang_PlottingOutputWriter.class \
		Wang_OutputWriter.class \
		Wang_CN36_Type2.class \
		Wang_Display.class \
		Wang_Help.class \
		Wang_Keyboards.class \
		Wang_Keyboard.class \
		Wang_Printer.class \
		Wang_Debugger.class \
		Wang_DebugConsole.class

W600_CLASSES = \
		Wang600.class \
		Wang600_Properties.class \
		Wang600_Simulator.class

COMMON_W614_CLASSES = \
		Wang_Properties.class \
		Wang_UI.class \
		SuffFileFilter.class \
		SuffFileChooser.class \
		Wang_InstructionDecoder.class \
		Wang600_InstrDecoder.class \
		Wang_MarkSenseCard.class

FONTDIR = $(shell if [[ -d ~/.fonts ]]; then echo ~/.fonts; elif [[ -d ~/Library/Fonts ]]; then echo ~/Library/Fonts; fi)
FONTDEST =
FONTS = $(notdir $(wildcard ../common/fonts/*.ttf))
COMMON_ICONS = $(subst ../common/,,$(wildcard ../common/icons/*.png))

XTRA = 

all: w600_fe.class

w600_fe.class: w600_fe.java $(COMMON_CLASSES) $(W600_CLASSES)
	javac w600_fe.java

w600_edit.class: w600_edit.java $(COMMON_W614_CLASSES)
	javac w600_edit.java

w600initProps.class: w600initProps.java \
		Wang_UI.class Wang_Properties.class Wang600_Properties.class
	javac w600initProps.java

.PRECIOUS: %.class ../common/%.class

../common/%.class: ../common/%.java
	javac $?

%.class: %.java
	javac $?

%.class: ../common/%.class
	cp -v ../common/$**.class .

clean:
	rm -f *.o

jar: wang600.jar

SHIP_DOCS = $(filter-out docs/wang600arch.html,$(wildcard docs/*.html))

wang600.jar: w600_fe.class w600_edit.class w600initProps.class
	echo -e "Main-Class: w600_fe\nSplashScreen-Image: icons/wang600.gif" >Manifest.txt
	jar cfm $@ Manifest.txt $(ROM) *.class icons/*.{gif,png} $(SHIP_DOCS) \
		$(addprefix -C ../common ,$(SPCL)) \
		$(addprefix -C ../common/fonts ,$(FONTS)) \
		$(addprefix -C ../common ,$(COMMON_ICONS))

wang600setup.jar: w600initProps.class
	echo "Main-Class: w600initProps" >Manifest.txt
	jar cfm $@ Manifest.txt w600initProps.class \
		Wang_UI.class Wang_Properties.class Wang600_Properties.class \
		Wang_PropertyEditor.class icons/setup.icns 
