diff --git a/Makefile b/Makefile index ebd4766..8d76a3c 100644 --- a/Makefile +++ b/Makefile @@ -170,13 +170,13 @@ $(OUT)/%.o: $(SRC)/%.c $(LIBTUV_PATH)/include $(LIBRABBITMQ_PATH)/build/include $(VECHO) " CC\t$@\n" $(Q)$(CC) -o $@ $(CFLAGS) $(LIBTUV_INCLUDE) $(LIBRABBITMQ_INCLUDE) -c -MMD -MF $@.d $< -$(OUT)/test-%: $(OUT)/test-%.o $(OBJS) $(LIBTUV_LIBRARY) $(LIBRABBITMQ_LIBRARY) +$(OUT)/test-%: $(OUT)/test-%.o $(OBJS) $(LIBTUV_OBJS) $(LIBRABBITMQ_OBJS) $(VECHO) " LD\t$@\n" - $(Q)$(CC) -o $@ $^ $(LDFLAGS) $(LIBRABBITMQ_LINK) + $(Q)$(CC) -o $@ $^ $(LDFLAGS) -$(OUT)/libdcurl.so: $(OBJS) $(LIBTUV_LIBRARY) $(LIBRABBITMQ_LIBRARY) +$(OUT)/libdcurl.so: $(OBJS) $(LIBTUV_OBJS) $(LIBRABBITMQ_OBJS) $(VECHO) " LD\t$@\n" - $(Q)$(CC) -shared -o $@ $^ $(LDFLAGS) $(LIBRABBITMQ_LINK) + $(Q)$(CC) -shared -o $@ $^ $(LDFLAGS) ifeq ("$(BUILD_REMOTE)", "1") include mk/remote.mk diff --git a/mk/remote.mk b/mk/remote.mk index 667f8e7..06f1a9a 100644 --- a/mk/remote.mk +++ b/mk/remote.mk @@ -3,6 +3,6 @@ $(OUT)/worker-%.o: $(SRC)/%.c $(LIBTUV_PATH)/include $(LIBRABBITMQ_PATH)/build/i $(VECHO) " CC\t$@\n" $(Q)$(CC) -o $@ $(WORKER_CFLAGS) $(LIBTUV_INCLUDE) $(LIBRABBITMQ_INCLUDE) -c -MMD -MF $@.d $< -$(OUT)/remote-worker: $(OUT)/remote_worker.o $(WORKER_OBJS) $(LIBTUV_LIBRARY) $(LIBRABBITMQ_LIBRARY) +$(OUT)/remote-worker: $(OUT)/remote_worker.o $(WORKER_OBJS) $(LIBTUV_OBJS) $(LIBRABBITMQ_OBJS) $(VECHO) " LD\t$@\n" - $(Q)$(CC) -o $@ $^ $(LDFLAGS) $(LIBRABBITMQ_LINK) + $(Q)$(CC) -o $@ $^ $(LDFLAGS) diff --git a/mk/submodule.mk b/mk/submodule.mk index 12c7164..65274d5 100644 --- a/mk/submodule.mk +++ b/mk/submodule.mk @@ -18,27 +18,19 @@ LIBTUV_PATH = deps/libtuv LIBTUV_INCLUDE := -I $(LIBTUV_PATH)/include LIBTUV_PLATFORM := $(UNAME_M)-$(UNAME_S) LIBTUV_BOARD := $(BOARD) -# PIC (Position-Independent-Code) library -LIBTUV_LIBRARY := $(LIBTUV_PATH)/build/$(LIBTUV_PLATFORM)/release/lib/libtuv.o +# PIC (Position-Independent-Code) object file +LIBTUV_OBJS := $(LIBTUV_PATH)/build/$(LIBTUV_PLATFORM)/release/lib/libtuv.o $(LIBTUV_PATH)/include: git submodule update --init $(LIBTUV_PATH) -$(LIBTUV_LIBRARY): +$(LIBTUV_OBJS): $(MAKE) -C $(LIBTUV_PATH) TUV_BUILD_TYPE=release TUV_CREATE_PIC_LIB=yes TUV_PLATFORM=$(LIBTUV_PLATFORM) TUV_BOARD=$(LIBTUV_BOARD) # librabbitmq related variables LIBRABBITMQ_PATH = deps/rabbitmq-c LIBRABBITMQ_INCLUDE := -I $(LIBRABBITMQ_PATH)/build/include -LIBRABBITMQ_LIB_PATH := $(LIBRABBITMQ_PATH)/build/librabbitmq/ -ifeq ($(UNAME_S),darwin) - # macOS - LIBRABBITMQ_LINK := -Wl,-rpath,$(LIBRABBITMQ_LIB_PATH) -L$(LIBRABBITMQ_LIB_PATH) -lrabbitmq - LIBRABBITMQ_LIBRARY := $(LIBRABBITMQ_LIB_PATH)/librabbitmq.dylib -else - LIBRABBITMQ_LINK := -Wl,-rpath=$(LIBRABBITMQ_LIB_PATH) -L$(LIBRABBITMQ_LIB_PATH) -lrabbitmq - LIBRABBITMQ_LIBRARY := $(LIBRABBITMQ_LIB_PATH)/librabbitmq.so -endif +LIBRABBITMQ_OBJS := $(LIBRABBITMQ_PATH)/build/librabbitmq/CMakeFiles/rabbitmq.dir/*.o $(LIBRABBITMQ_PATH)/build/include: git submodule update --init $(LIBRABBITMQ_PATH) @@ -54,6 +46,6 @@ else cmake --build . --target install endif -$(LIBRABBITMQ_LIBRARY): +$(LIBRABBITMQ_OBJS): cd $(LIBRABBITMQ_PATH)/build && \ cmake --build .