]> rtime.felk.cvut.cz Git - coffee/mt-apps.git/blobdiff - Makefile
Add simulator mode (for debugging without terminal)
[coffee/mt-apps.git] / Makefile
index 34bece4e0b26bc48f423a7ea2f8f68c10a3ba141..37068568d17fbac3824d3fadd07ac63792b7e7a7 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,17 +1,45 @@
-OUTPUT_FILE = mt-rfid
+OUTPUT_DIR    = build
 
-ifeq ($(OS),Windows_NT)
-       CC = gcc
-       CFLAGS += -Wall -O3 -DPORT_NAME="\"\""
-       UFR_LIB = -L. -luFCoder-x86_64
+CFLAGS       = -Ilibwebsockets/include -Llibwebsockets/lib
+can_compile   = $(shell if echo '$(1)' | $(CC) $(CFLAGS) -c -xc - -o /dev/null >/dev/null 2>&1; then echo yes; fi)
+HAVE_RFID    := $(call can_compile,\#include <uFCoder.h>)
+
+ifeq ($(HAVE_RFID),yes)
+all: mtrfid
 else
-       UFR_LIB = -luFCoder-armhf
+$(warning Compiling without RFID support)
 endif
 
-all: mt_rfid.c mt_rfid.h
-       $(CC) $(CFLAGS) -o $(OUTPUT_FILE) mt_rfid.c $(UFR_LIB)
+mtrfid_SRCS   = signal_exit.c mt_rfid.c
+mtrfid_LIBS   = -lev -luFCoder-armhf
+mtrfid_DEFS   = -DHAVE_RFID=1
+
+mtserver_SRCS = signal_exit.c mt_server.c
+mtserver_LIBS = -lev -lwebsockets
+
+mtkeys_SRCS   = signal_exit.c mt_keys.c
+mtkeys_LIBS   = -lev
+
+mtaio_SRCS    = signal_exit.c mt_keys.c mt_server.c mt_aio.c mt_blank.c
+mtaio_LIBS    = -lev -lwebsockets
+mtaio_DEFS    = -DNO_MAIN -DHAVE_RFID=$(if $(HAVE_RFID),1,0)
+
+ifeq ($(HAVE_RFID),yes)
+mtaio_SRCS += mt_rfid.c
+mtaio_LIBS += -luFCoder-armhf
+else
+mtaio_SRCS += mt_sim.c
+mtaio_DEFS += -DSIM=1
+endif
+
+all: mtserver mtkeys mtaio
 
 .PHONY: clean
 
 clean:
-       rm $(OUTPUT_FILE)
+       rm -rf $(OUTPUT_DIR)
+
+.SECONDEXPANSION:
+mt%: $$($$@_SRCS)
+       mkdir -p $(OUTPUT_DIR)
+       $(CC) $(CFLAGS) $($@_DEFS) -o $(OUTPUT_DIR)/$@ $^ $($@_LIBS)