]> rtime.felk.cvut.cz Git - coffee/mt-apps.git/blobdiff - Makefile
Fix Makefile to work under buildroot
[coffee/mt-apps.git] / Makefile
index 964d4b2f5c0d10e8fff0a6c423bdbd0fe4018a47..9aa981771c75f5e3b5ac5100137c5a1f60cda04b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,16 +1,42 @@
-SOURCE_FILES = mt_rfid.c
-OUTPUT_FILE = mt-rfid
-LIBRARIES = -lev -luFCoder-armhf
+OUTPUT_DIR    = build
 
-all: mt-rfid mt-server
+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>)
 
-mt-rfid: $(SOURCE_FILES)
-       $(CC) $(CFLAGS) -o $(OUTPUT_FILE) $(SOURCE_FILES) $(LIBRARIES)
+ifeq ($(HAVE_RFID),yes)
+all: mtrfid
+else
+$(warning Compiling without RFID support)
+endif
 
-mt-server: mt_server.c
-       $(CC) $(CFLAGS) -o mt-server mt_server.c $(LIBRARIES) -lwebsockets
+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
+endif
+
+all: mtserver mtkeys mtaio
 
 .PHONY: clean
 
 clean:
-       rm -f $(OUTPUT_FILE)
+       rm -rf $(OUTPUT_DIR)
+
+.SECONDEXPANSION:
+mt%: $$($$@_SRCS)
+       mkdir -p $(OUTPUT_DIR)
+       $(CC) $(CFLAGS) $($@_DEFS) -o $(OUTPUT_DIR)/$@ $^ $($@_LIBS)