1- .PHONY : all clean
21COMPILER_PATH = $(HOME ) /Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin
32SDK = $(HOME ) /Library/Arduino15/packages/esp32/hardware/esp32/1.0.4/tools/sdk
43CC = $(COMPILER_PATH ) /xtensa-esp32-elf-gcc
@@ -43,6 +42,7 @@ LO_FLAGS = -include $(COMPAT_INCLUDE)/compat.h -I$(LO_INCLUDE) -I$(COMPAT_INCLUD
4342LO_SRCS = address.c blob.c bundle.c message.c method.c pattern_match.c send.c server.c server_thread.c timetag.c version.c
4443LO_OBJ = $(LO_SRCS:.c=.o )
4544LO_OBJ_DIR = $(BUILD_DIR ) /liblo
45+ LO_CONFIGURED = $(shell [ -f liblo/config.h ] && echo "TRUE" || echo "FALSE")
4646
4747$(LO_OBJ_DIR ) /% .o : $(LO ) /% .c
4848 @mkdir -p $(LO_OBJ_DIR )
@@ -55,34 +55,50 @@ MAPPER_FLAGS = -DDEBUG -I$(COMPAT_INCLUDE) -I$(ZLIB_INCLUDE) -I$(LO_INCLUDE) -I$
5555MAPPER_SRCS = database.c device.c expression.c link.c list.c map.c network.c properties.c router.c signal.c slot.c table.c timetag.c
5656MAPPER_OBJ = $(MAPPER_SRCS:.c=.o )
5757MAPPER_OBJ_DIR = $(BUILD_DIR ) /libmapper
58+ MAPPER_CONFIGURED = $(shell [ -f libmapper/src/config.h ] && echo "TRUE" || echo "FALSE")
5859
5960$(MAPPER_OBJ_DIR ) /% .o : $(MAPPER ) /% .c
6061 @mkdir -p $(MAPPER_OBJ_DIR )
6162 @echo Building $<
6263 @$(CC ) $(CFLAGS ) $(MAPPER_FLAGS ) $< -o $@
6364
64- pre-build :
65- @mkdir -p $(OUTPUT_LIB_DIR )
66- @echo Configuring liblo
67- cd liblo
68- @./autogen.sh
69- @echo Configuring libmapper
70- cd ../libmapper
71- @libmapper/autogen.sh
72-
73- all : pre-build $(addprefix $(MAPPER_OBJ_DIR ) /,$(MAPPER_OBJ ) ) $(addprefix $(LO_OBJ_DIR ) /,$(LO_OBJ ) ) $(addprefix $(COMPAT_OBJ_DIR ) /,$(COMPAT_OBJ ) ) $(addprefix $(ZLIB_OBJ_DIR ) /,$(ZLIB_OBJ ) )
74- @$(AR ) cru $(OUTPUT_LIB_DIR ) /libmapper.a $^
75- @echo Linking $(OUTPUT_LIB_DIR ) /libmapper.a
65+ .PHONY : all
66+ all : configure-liblo configure-libmapper libmapper_arduino
7667 cp library.properties $(OUTPUT_DIR ) /library.properties
7768 cp mapper.h $(OUTPUT_SRC_DIR ) /mapper.h
7869 mkdir -p $(OUTPUT_SRC_DIR ) /mapper
7970 find $(MAPPER_INCLUDE ) /mapper -name " *.h" -exec cp -prv {} $(OUTPUT_SRC_DIR ) /mapper/ " ;"
8071 mkdir -p $(OUTPUT_SRC_DIR ) /lo
8172 find $(LO_INCLUDE ) /lo -name " *.h" -exec cp -prv {} $(OUTPUT_SRC_DIR ) /lo/ " ;"
8273
74+ .PHONY : configure-liblo
75+ configure-liblo :
76+ ifeq ($(LO_CONFIGURED ) , TRUE)
77+ @echo liblo: config.h was found
78+ else
79+ @echo Configuring liblo
80+ @cd liblo && ./autogen.sh
81+ endif
82+
83+ .PHONY : configure-libmapper
84+ configure-libmapper :
85+ ifeq ($(MAPPER_CONFIGURED ) , TRUE)
86+ @echo libmapper: config.h was found
87+ else
88+ @echo Configuring libmapper
89+ @cd libmapper && ./autogen.sh
90+ endif
91+
92+ libmapper_arduino : $(addprefix $(MAPPER_OBJ_DIR ) /,$(MAPPER_OBJ ) ) $(addprefix $(LO_OBJ_DIR ) /,$(LO_OBJ ) ) $(addprefix $(COMPAT_OBJ_DIR ) /,$(COMPAT_OBJ ) ) $(addprefix $(ZLIB_OBJ_DIR ) /,$(ZLIB_OBJ ) )
93+ @mkdir -p $(OUTPUT_LIB_DIR )
94+ @$(AR ) cru $(OUTPUT_LIB_DIR ) /libmapper.a $^
95+ @echo Linking $(OUTPUT_LIB_DIR ) /libmapper.a
96+
97+ .PHONY : install
8398install :
8499 mkdir -p ~ /Documents/Arduino/libraries/libmapper
85100 cp -R $(OUTPUT_DIR ) /. ~ /Documents/Arduino/libraries/libmapper
86101
102+ .PHONY : clean
87103clean :
88104 rm -rf $(BUILD_DIR )
0 commit comments