# Set iOS revisions as desired
IOSREV = 8.3
IOSMINREV = 7.1

HIDEOUT = /Applications/Xcode.app/Contents/Developer
TOOLDIR = $(HIDEOUT)/Toolchains/XcodeDefault.xctoolchain/usr/bin
PLT = $(HIDEOUT)/Platforms/iPhoneOS.platform
SDK = /Developer/SDKs/iPhoneOS$(IOSREV).sdk
OCAMLDIR = /usr/local/ocamlxarm/v7
OCAMLBINDIR = $(OCAMLDIR)/bin/
CC = $(TOOLDIR)/clang -arch armv7
MFLAGS = -isysroot $(PLT)$(SDK) -fobjc-arc -gdwarf-2 \
    -miphoneos-version-min=$(IOSMINREV) \
    -isystem $(OCAMLDIR)/lib/ocaml -DCAML_NAME_SPACE \
    -fobjc-legacy-dispatch -fobjc-abi-version=2
OCAMLOPT = $(OCAMLBINDIR)ocamlopt -ccopt -isysroot -ccopt $(PLT)$(SDK) \
    -ccopt -miphoneos-version-min=$(IOSMINREV)

MOBS = wrap.o main.o
MLOBS = wrapper.cmx wrappee.cmx cocoa.cmx nsTimer.cmx caLayer.cmx \
	    uiView.cmx uiButton.cmx uiWindow.cmx uiApplication.cmx \
	    slide24defs.cmx slide24util.cmx astar.cmx solve.cmx \
	    slide24AppDelegate.cmx \
	    slide24ViewController.cmx slide24ViewControllerD.cmx

build: Slide24

Slide24: $(MOBS) $(MLOBS)
	$(OCAMLOPT) $(MLFLAGS) -o Slide24 \
	    $(MOBS) $(MLOBS) \
	    -cclib -Wl,-syslibroot,$(PLT)$(SDK) -cclib -Wl,-no_pie \
	    -cclib '-framework UIKit' \
	    -cclib '-framework CoreGraphics' \
	    -cclib '-framework Foundation'


clean:
	rm -rf Slide24 build *.o *.cm[iox]

%.o: %.m
	$(CC) $(MFLAGS) -c $<

%.cmi: %.mli
	$(OCAMLBINDIR)ocamlc $(MLFLAGS) -c $<

%.cmo: %.ml
	$(OCAMLBINDIR)ocamlc $(MLFLAGS) -c $<

%.cmx: %.ml
	$(OCAMLBINDIR)ocamlopt $(MLFLAGS) -c $<

depend::
	$(OCAMLBINDIR)ocamldep *.ml *.mli > MLDepend
	$(CC) $(MFLAGS) -MM *.m > MDepend

-include MLDepend
-include MDepend
