--- /dev/null
+BASE = ../../..
+
+include $(BASE)/common.mk
+
+JFLAGS = -d $(BIN_DIR) -cp $(BIN_DIR):$(CHECKERJARS):.
+JARFLAGS = cf
+JARFLAGS_SMARTLIGHTS = cf SmartLights.jar
+
+# checker option
+#
+CHECKER_OPT = -processor iotchecker.IoTJavaChecker -AprintErrorStack
+
+ASTUBS = -Astubs=../../../checker/astubs/
+
+all: smartlights
+
+check-all: check-smartlights
+
+PHONY += smartlights
+smartlights:
+ $(JAVAC) $(JFLAGS) *.java
+ cp SmartLights.config $(BIN_DIR)/SmartLights
+ cd $(BIN_DIR)/SmartLights; $(JAR) $(JARFLAGS) SmartLights.jar ../SmartLights/SmartLights*.class ../SmartLights/LightBulb*.class ../iotcode/SmartLightBulb/*.class ../iotcode/interfaces/LightBulb*.class; mkdir tmp; mv SmartLights.class ./tmp; rm -rf *.class; mv ./tmp/* ./; rm -rf ./tmp
+
+PHONY += check-smartlights
+check-smartlights:
+ $(JAVAC) $(JFLAGS) $(CHECKER_OPT) $(ASTUBS) *.java
+ cp SmartLights.config $(BIN_DIR)/SmartLights
+ cd $(BIN_DIR)/SmartLights; $(JAR) $(JARFLAGS) SmartLights.jar ../SmartLights/SmartLights*.class ../SmartLights/LightBulb*.class ../iotcode/SmartLightBulb/*.class ../iotcode/interfaces/LightBulb*.class; mkdir tmp; mv SmartLights.class ./tmp; rm -rf *.class; mv ./tmp/* ./; rm -rf ./tmp
+
+.PHONY: $(PHONY)