libdrm_meson: remove build result from git folder to build result folder [1/1]
PD#SWPL-150449
Problem:
remove build result from git folder to build result folder
Solution:
generate files to the build directory during compilation
Verify:
ah212
Change-Id: If84451dd1486c5a68351716e9f13118ecb43fcd3
Signed-off-by: leng.fang <leng.fang@amlogic.com>
diff --git a/drm-setcrtc/Makefile b/drm-setcrtc/Makefile
index 7474294..6babd41 100644
--- a/drm-setcrtc/Makefile
+++ b/drm-setcrtc/Makefile
@@ -16,6 +16,8 @@
drm_setcrtc_SRCS = \
$(LOCAL_PATH)/drm_setcrtc.c \
$(NULL)
+
+OUT_DIR ?= .
# ---------------------------------------------------------------------
# Build rules
BUILD_TARGETS = drm_setcrtc
@@ -23,15 +25,15 @@
.PHONY: all install uninstall clean
drm_setcrtc: $(drm_setcrtc_SRCS)
- $(CC) $(CFLAGS) -L$(LOCAL_PATH) $(LDFLAGS) -o $@ $^ $(LDLIBS)
+ $(CC) $(CFLAGS) -L$(LOCAL_PATH) $(LDFLAGS) -o $(OUT_DIR)/$@ $^ $(LDLIBS)
all: $(BUILD_TARGETS)
clean:
- rm -f *.o $(BUILD_TARGETS)
+ rm -f *.o $(OUT_DIR)/$(BUILD_TARGETS)
install:
- install -m 755 drm_setcrtc $(TARGET_DIR)/usr/bin/
+ install -m 755 $(OUT_DIR)/drm_setcrtc $(TARGET_DIR)/usr/bin/
uninstall:
rm -f $(TARGET_DIR)/usr/bin/drm_setcrtc
diff --git a/meson/Makefile b/meson/Makefile
index 814bda8..74aeeed 100644
--- a/meson/Makefile
+++ b/meson/Makefile
@@ -39,9 +39,12 @@
meson_drm_settings_test_SRCS = \
$(LOCAL_PATH)/meson_drm_settings_test.c \
$(NULL)
+
+OUT_DIR ?= .
# ---------------------------------------------------------------------
# Build rules
BUILD_TARGETS = libdrm_meson.so meson_drm_test meson_drm_display_test meson_drm_settings_test
+CLEAN_TARGETS = $(addprefix $(OUT_DIR)/, $(BUILD_TARGETS))
.PHONY: all install uninstall clean
@@ -49,28 +52,28 @@
libdrm_meson.so: $(meson_drm_SRCS)
$(CC) $(CFLAGS) $(LDFLAGS) -g -D_FILE_OFFSET_BITS=64 -Wall \
- -shared -fPIC -o $@ $^ $(LDLIBS)
- cp -f libdrm_meson.so $(STAGING_DIR)/usr/lib/
+ -shared -fPIC -o $(OUT_DIR)/$@ $^ $(LDLIBS)
+ cp -f $(OUT_DIR)/libdrm_meson.so $(STAGING_DIR)/usr/lib/
-meson_drm_test: $(meson_drm_test_SRCS) libdrm_meson.so
+meson_drm_test: $(meson_drm_test_SRCS) $(OUT_DIR)/libdrm_meson.so
$(CC) $(CFLAGS) -I$(meson_drm_HEADERS) -L$(LOCAL_PATH) \
- -ldrm_meson $(LDFLAGS) -o $@ $^ $(LDLIBS)
+ -ldrm_meson $(LDFLAGS) -o $(OUT_DIR)/$@ $^ $(LDLIBS)
-meson_drm_display_test: $(meson_drm_display_test_SRCS) libdrm_meson.so
+meson_drm_display_test: $(meson_drm_display_test_SRCS) $(OUT_DIR)/libdrm_meson.so
$(CC) $(CFLAGS) -I$(meson_drm_HEADERS) -L$(LOCAL_PATH) \
- -ldrm_meson $(LDFLAGS) -o $@ $^ $(LDLIBS)
-meson_drm_settings_test: $(meson_drm_settings_test_SRCS) libdrm_meson.so
+ -ldrm_meson $(LDFLAGS) -o $(OUT_DIR)/$@ $^ $(LDLIBS)
+meson_drm_settings_test: $(meson_drm_settings_test_SRCS) $(OUT_DIR)/libdrm_meson.so
$(CC) $(CFLAGS) -I$(meson_drm_HEADERS) -L$(LOCAL_PATH) \
- -ldrm_meson $(LDFLAGS) -o $@ $^ $(LDLIBS)
+ -ldrm_meson $(LDFLAGS) -o $(OUT_DIR)/$@ $^ $(LDLIBS)
clean:
- rm -f *.o $(BUILD_TARGETS)
+ rm -f *.o $(CLEAN_TARGETS)
install:
- install -m 0644 libdrm_meson.so $(TARGET_DIR)/usr/lib
- install -m 755 meson_drm_test $(TARGET_DIR)/usr/bin/
- install -m 755 meson_drm_display_test $(TARGET_DIR)/usr/bin/
- install -m 755 meson_drm_settings_test $(TARGET_DIR)/usr/bin/
+ install -m 0644 $(OUT_DIR)/libdrm_meson.so $(TARGET_DIR)/usr/lib
+ install -m 755 $(OUT_DIR)/meson_drm_test $(TARGET_DIR)/usr/bin/
+ install -m 755 $(OUT_DIR)/meson_drm_display_test $(TARGET_DIR)/usr/bin/
+ install -m 755 $(OUT_DIR)/meson_drm_settings_test $(TARGET_DIR)/usr/bin/
cp meson_drmif.h $(STAGING_DIR)/usr/include/
cp meson_drm_util.h $(STAGING_DIR)/usr/include/
install -D -m 0644 meson_drm_settings.h $(STAGING_DIR)/usr/include/libdrm_meson/meson_drm_settings.h