Makefile 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. CFLAGS = -I../inc -I../util -I./common
  2. LDFLAGS = -lpthread
  3. CC = gcc -std=gnu99
  4. OBJSDIR = ./build
  5. .PHONY: all clean
  6. TARGETS = ./rtu_master/RtuMaster ./tcp_master/TcpMaster ./slave/ModbusSlave \
  7. ./rtu_p2p/p2p_master ./rtu_p2p/p2p_slave \
  8. ./rtu_broadcast/broadcast_master ./rtu_broadcast/broadcast_slave
  9. COMMON_SRCS = $(wildcard ../src/*.c) $(wildcard ../util/*.c) $(wildcard ./common/*.c)
  10. COMMON_OBJS = $(patsubst %.c,./$(OBJSDIR)/%.o,$(notdir $(COMMON_SRCS)))
  11. SLAVE_SRCS = $(wildcard ./slave/*.c)
  12. SLAVE_OBJS = $(patsubst %.c,./$(OBJSDIR)/%.o,$(notdir $(SLAVE_SRCS)))
  13. all: $(TARGETS)
  14. ./rtu_master/RtuMaster : $(COMMON_OBJS) ./$(OBJSDIR)/rtu_master.o
  15. ${CC} $^ -g -o $@ ${LDFLAGS}
  16. ./tcp_master/TcpMaster : $(COMMON_OBJS) ./$(OBJSDIR)/tcp_master.o
  17. ${CC} $^ -g -o $@ ${LDFLAGS}
  18. ./slave/ModbusSlave : $(COMMON_OBJS) $(SLAVE_OBJS)
  19. ${CC} $^ -g -o $@ ${LDFLAGS}
  20. ./rtu_p2p/p2p_master : $(COMMON_OBJS) ./$(OBJSDIR)/p2p_master.o
  21. ${CC} $^ -g -o $@ ${LDFLAGS}
  22. ./rtu_p2p/p2p_slave : $(COMMON_OBJS) ./$(OBJSDIR)/p2p_slave.o
  23. ${CC} $^ -g -o $@ ${LDFLAGS}
  24. ./rtu_broadcast/broadcast_master : $(COMMON_OBJS) ./$(OBJSDIR)/broadcast_master.o
  25. ${CC} $^ -g -o $@ ${LDFLAGS}
  26. ./rtu_broadcast/broadcast_slave : $(COMMON_OBJS) ./$(OBJSDIR)/broadcast_slave.o
  27. ${CC} $^ -g -o $@ ${LDFLAGS}
  28. ./$(OBJSDIR)/%.o : ../src/%.c
  29. @if [ ! -d $(OBJSDIR) ]; then \
  30. mkdir -p $(OBJSDIR); \
  31. fi
  32. ${CC} -g -c $< -o $@ ${CFLAGS}
  33. ./$(OBJSDIR)/%.o : ../util/%.c
  34. ${CC} -g -c $< -o $@ ${CFLAGS}
  35. ./$(OBJSDIR)/%.o : ./common/%.c
  36. ${CC} -g -c $< -o $@ ${CFLAGS}
  37. ./$(OBJSDIR)/%.o : ./rtu_master/%.c
  38. ${CC} -g -c $< -o $@ ${CFLAGS}
  39. ./$(OBJSDIR)/%.o : ./tcp_master/%.c
  40. ${CC} -g -c $< -o $@ ${CFLAGS}
  41. ./$(OBJSDIR)/%.o : ./slave/%.c
  42. ${CC} -g -c $< -o $@ ${CFLAGS}
  43. ./$(OBJSDIR)/%.o : ./rtu_p2p/%.c
  44. ${CC} -g -c $< -o $@ ${CFLAGS}
  45. ./$(OBJSDIR)/%.o : ./rtu_broadcast/%.c
  46. ${CC} -g -c $< -o $@ ${CFLAGS}
  47. clean:
  48. $(RM) $(TARGETS)
  49. $(RM) ./$(OBJSDIR)/*.o