build: Makefile not support multiple thread build [2/2]
PD#SWPL-177960
Problem:
1. create wayland-protocol file
2. build
step 2 depend step 1
Solution:
add dependency for step 2
Verify:
local
Signed-off-by: guoping.li <guoping.li@amlogic.com>
Change-Id: I2aaf972ee5ef9ae3b611caeba3bbbafb7eb5cf16
diff --git a/westeros/Makefile b/westeros/Makefile
index eb84bc5..639d08f 100644
--- a/westeros/Makefile
+++ b/westeros/Makefile
@@ -69,9 +69,8 @@
ifeq ($(WAYLAND_SUPPORT), y)
LOCAL_CFLAGS += -DSUPPORT_WAYLAND
-OBJ_CLIENT_LIB += $(OBJ_WESTEROS_DISPLAY)
OBJ_CLIENT_LIB += $(GENERATED_SOURCES:.c=.o)
-
+OBJ_CLIENT_LIB += $(OBJ_WESTEROS_DISPLAY)
LD_SUPPORT += -lwayland-client
endif
@@ -95,32 +94,34 @@
TARGET = $(CLIENT_LIB)
-all: $(GENERATED_SOURCES) $(TARGET)
+all: $(TARGET)
+$(OBJ_CLIENT_LIB): $(GENERATED_SOURCES)
LD_FLAG = -g -fPIC -O -Wcpp -lm -lpthread -lz -Wl,-Bsymbolic -ldl
LD_FLAG_LIB = $(LD_FLAG) -shared $(LD_SUPPORT) -llog -lessosrmgr
-%.o:%.c $(DEPS)
+%.o:%.c $(DEPS) $(GENERATED_SOURCES)
echo CC $(OUT_DIR)/$@ $(OUT_DIR)/$< $(FLAGS)
$(CC) -c -o $(OUT_DIR)/$@ $(OUT_DIR)/$< $(CFLAGS) -fPIC
-%.o:%.cpp $(DEPS)
+%.o:%.cpp $(DEPS) $(GENERATED_SOURCES)
echo CXX $(OUT_DIR)/$@ $< $(FLAGS)
$(CXX) -c -o $(OUT_DIR)/$@ $< $(CXXFLAGS) -fPIC
$(CLIENT_LIB): $(OBJ_CLIENT_LIB)
$(CXX) -o $(OUT_DIR)/$@ $(patsubst %, $(OUT_DIR)/%, $^) $(LD_FLAG_LIB)
cp -f $(OUT_DIR)/$(CLIENT_LIB) $(STAGING_DIR)/usr/lib
- rm -f $(patsubst %, $(OUT_DIR)/%, $(OBJ_CLIENT_LIB))
$(PROTOCOL_PATH)/%-protocol.c : $(PROTOCOL_PATH)/%.xml
- echo $(@D)
+ echo $(@)
mkdir -p $(@D) && $(SCANNER_TOOL) public-code < $< > $(OUT_DIR)/$@
$(PROTOCOL_PATH)/%-server-protocol.h : $(PROTOCOL_PATH)/%.xml
+ echo $(@)
mkdir -p $(@D) && $(SCANNER_TOOL) server-header < $< > $(OUT_DIR)/$@
$(PROTOCOL_PATH)/%-client-protocol.h : $(PROTOCOL_PATH)/%.xml
+ echo $(@)
mkdir -p $(@D) && $(SCANNER_TOOL) client-header < $< > $(OUT_DIR)/$@
@@ -136,6 +137,7 @@
rm -f $(OUT_DIR)/$(PROTOCOL_PATH)/*.o
rm -f $(patsubst %, $(OUT_DIR)/%, $(OBJ_WESTEROS_DISPLAY))
rm -f $(OUT_DIR)/*.o
+ rm -f $(patsubst %, $(OUT_DIR)/%, $(OBJ_CLIENT_LIB))
$(shell mkdir -p $(OUT_DIR)/wayland-protocol)
-$(shell mkdir -p $(OUT_DIR)/$(TOOLS_PATH))
\ No newline at end of file
+$(shell mkdir -p $(OUT_DIR)/$(TOOLS_PATH))
diff --git a/weston/Makefile b/weston/Makefile
index 7d03905..92c3670 100644
--- a/weston/Makefile
+++ b/weston/Makefile
@@ -80,8 +80,8 @@
ifeq ($(WAYLAND_SUPPORT), y)
LOCAL_CFLAGS += -DSUPPORT_WAYLAND
-OBJ_CLIENT_LIB += $(OBJ_WESTON_DISPLAY)
OBJ_CLIENT_LIB += $(GENERATED_SOURCES:.c=.o)
+OBJ_CLIENT_LIB += $(OBJ_WESTON_DISPLAY)
LD_SUPPORT += -lwayland-client
endif
@@ -107,16 +107,17 @@
TARGET = $(CLIENT_LIB)
-all: $(GENERATED_SOURCES) $(TARGET)
+all: $(TARGET)
+$(OBJ_CLIENT_LIB): $(GENERATED_SOURCES)
LD_FLAG = -g -fPIC -O -Wcpp -lm -lpthread -lz -Wl,-Bsymbolic -ldl
LD_FLAG_LIB = $(LD_FLAG) -shared $(LD_SUPPORT) -llog
-%.o:%.c $(DEPS)
+%.o:%.c $(DEPS) $(GENERATED_SOURCES)
echo CC $(OUT_DIR)/$@ $(OUT_DIR)/$< $(FLAGS)
$(CC) -c -o $(OUT_DIR)/$@ $(OUT_DIR)/$< $(CFLAGS) -fPIC
-%.o:%.cpp $(DEPS)
+%.o:%.cpp $(DEPS) $(GENERATED_SOURCES)
echo CXX $(OUT_DIR)/$@ $< $(FLAGS)
$(CXX) -c -o $(OUT_DIR)/$@ $< $(CXXFLAGS) -fPIC
@@ -125,13 +126,15 @@
cp -f $(OUT_DIR)/$(CLIENT_LIB) $(STAGING_DIR)/usr/lib
$(PROTOCOL_PATH)/%-protocol.c : $(PROTOCOL_PATH)/%.xml
- echo $(@D)
+ echo $(@)
mkdir -p $(@D) && $(SCANNER_TOOL) public-code < $< > $(OUT_DIR)/$@
$(PROTOCOL_PATH)/%-server-protocol.h : $(PROTOCOL_PATH)/%.xml
+ echo $(@)
mkdir -p $(@D) && $(SCANNER_TOOL) server-header < $< > $(OUT_DIR)/$@
$(PROTOCOL_PATH)/%-client-protocol.h : $(PROTOCOL_PATH)/%.xml
+ echo $(@)
mkdir -p $(@D) && $(SCANNER_TOOL) client-header < $< > $(OUT_DIR)/$@
@@ -150,4 +153,4 @@
rm -f $(patsubst %, $(OUT_DIR)/%, $(OBJ_CLIENT_LIB))
$(shell mkdir -p $(OUT_DIR)/wayland-protocol)
-$(shell mkdir -p $(OUT_DIR)/$(TOOLS_PATH))
\ No newline at end of file
+$(shell mkdir -p $(OUT_DIR)/$(TOOLS_PATH))