-all:
- mkdir -p bin/
+NITC=../../bin/nitc
+NITLS=../../bin/nitls
- # Compile in global mode to silence warnings on unused GTK deprecated
- ../../bin/nitc --global --dir bin/ src/calculator_gtk.nit src/calculator_test.nit
+all: bin/calculator bin/test
-android:
- mkdir -p bin/ res/
+bin/calculator: $(shell ${NITLS} -M src/calculator.nit linux) ${NITC}
+ mkdir -p bin
+ ${NITC} -o $@ src/calculator.nit -m linux
+
+# ---
+# Android
+
+android: bin/calculator.apk
+
+bin/calculator.apk: $(shell ${NITLS} -M src/calculator.nit android) ${NITC} res/drawable-ldpi/icon.png
+ mkdir -p bin
+ ${NITC} -o $@ src/calculator.nit -m ../../lib/android/ui/ -D debug
+
+android-release: $(shell ${NITLS} -M src/calculator.nit android) ${NITC} res/drawable-ldpi/icon.png
+ mkdir -p bin
+ ${NITC} -o bin/calculator.apk src/calculator.nit -m ../../lib/android/ui/ --release
+
+res/drawable-ldpi/icon.png: art/icon.svg ../../contrib/inkscape_tools/bin/svg_to_icons
+ mkdir -p res
../../contrib/inkscape_tools/bin/svg_to_icons art/icon.svg --android --out res/
- ../../bin/nitc -o bin/calculator.apk src/calculator_android.nit
+
+../../contrib/inkscape_tools/bin/svg_to_icons:
+ make -C ../../contrib/inkscape_tools/
+
+android-install: bin/calculator.apk
+ adb install -r bin/calculator.apk
+
+# ---
+# iOS
+
+bin/calculator.app: $(shell ${NITLS} -M src/calculator.nit ios) ${NITC} ios/AppIcon.appiconset/Contents.json
+ mkdir -p bin
+ ${NITC} -o $@ src/calculator.nit -m ios -D debug
+
+ios/AppIcon.appiconset/Contents.json: art/icon-ios.svg
+ mkdir -p ios
+ ../../contrib/inkscape_tools/bin/svg_to_icons art/icon-ios.svg --ios --out ios/AppIcon.appiconset/
+
+# ---
+# Tests
+
+bin/test: $(shell ${NITLS} -M src/calculator_test.nit) ${NITC}
+ mkdir -p bin
+ ${NITC} -o $@ src/calculator_test.nit
+
+check: bin/test
+ bin/test