makefile 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # find the os
  2. UNAME_S := $(shell uname -s)
  3. BUILDDIR := build
  4. BINDIR := bin
  5. # define common variables
  6. SRCEXT := c
  7. #SOURCES := main.c
  8. #OBJECTS := main.o
  9. SOURCES := $(shell find . -type f -iname "*.$(SRCEXT)" )
  10. OBJECTS := $(patsubst %,%,$(SOURCES:.$(SRCEXT)=.o))
  11. INC := -I . -I duktape
  12. LIB := -lm -lcurl -lmosquitto -pthread
  13. TARGET := ort
  14. ifeq ($(UNAME_S),Darwin)
  15. # only add this when compiling on OS X
  16. CFLAGS += -D MAC_DEBUG=1
  17. endif
  18. test: CFLAGS += -D MAC_DEBUG=1 -g -O0 -ggdb3
  19. all: info $(TARGET)
  20. $(TARGET): $(OBJECTS)
  21. @mkdir -p $(BINDIR)
  22. @echo " Linking..."
  23. $(CC) $^ $(CFLAGS) $(LDFLAGS) -o $(BINDIR)/$(TARGET) $(LIB)
  24. # generic: build any object file required
  25. %.o: %.c
  26. @echo " Compiling"
  27. $(CC) $(CFLAGS) $(INC) $(LIB) -c -o $@ $<
  28. clean:
  29. rm -rf $(BINDIR) $(OBJECTS)
  30. test: all
  31. service mosquitto start
  32. cp bin/ort .
  33. ./ort ../test/buffer.js
  34. info:
  35. @echo "INFO!"
  36. @echo "SOURCES=$(SOURCES)"
  37. @echo "OBJECTS=$(OBJECTS)"
  38. @echo "CC=$(CC)"
  39. @echo "CFLAGS=$(CFLAGS)"
  40. @echo "LDFLAGS=$(LDFLAGS)"
  41. @echo "LIB=$(LIB)"