mapi: Workaround a bug in makedepend.

makedepend would crash when a source includes a header indirectly, such
as

  #define HEADER "some-header.h"
  #include HEADER

Do not define HEADER (makedepend would detects this as an incomplete
include) and add the dependency manually in the Makefile.

This should hopefully fix bug #33374.
This commit is contained in:
Chia-I Wu 2011-01-29 19:06:27 +08:00
parent 2a456dc123
commit b825e49552
4 changed files with 30 additions and 7 deletions

View File

@ -124,10 +124,15 @@ install: default install-headers install-pc
$(MINSTALL) $(TOP)/$(LIB_DIR)/$(esapi_LIB_GLOB) \ $(MINSTALL) $(TOP)/$(LIB_DIR)/$(esapi_LIB_GLOB) \
$(DESTDIR)$(INSTALL_LIB_DIR) $(DESTDIR)$(INSTALL_LIB_DIR)
# workaround a bug in makedepend
makedepend_CPPFLAGS := \
$(filter-out -DMAPI_ABI_HEADER=%, $(esapi_CPPFLAGS))
$(esapi_OBJECTS): glapi_mapi_tmp.h
depend: $(esapi_SOURCES) depend: $(esapi_SOURCES)
@echo "running $(MKDEP)" @echo "running $(MKDEP)"
@touch depend @touch depend
@$(MKDEP) $(MKDEP_OPTIONS) -f- $(DEFINES) $(esapi_CPPFLAGS) \ @$(MKDEP) $(MKDEP_OPTIONS) -f- $(DEFINES) $(makedepend_CPPFLAGS) \
$(esapi_SOURCES) 2>/dev/null | \ $(esapi_SOURCES) 2>/dev/null | \
sed -e 's,^$(GLAPI)/,,' -e 's,^$(MAPI)/,,' > depend sed -e 's,^$(GLAPI)/,,' -e 's,^$(MAPI)/,,' > depend

View File

@ -13,11 +13,12 @@ include $(MAPI)/sources.mak
glapi_CPPFLAGS := \ glapi_CPPFLAGS := \
-I$(TOP)/include \ -I$(TOP)/include \
-I$(TOP)/src/mapi \ -I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \ -I$(TOP)/src/mesa
-DMAPI_ABI_HEADER=\"glapi/glapi_mapi_tmp.h\"
ifeq ($(SHARED_GLAPI),1) ifeq ($(SHARED_GLAPI),1)
glapi_CPPFLAGS += -DMAPI_MODE_BRIDGE glapi_CPPFLAGS += \
-DMAPI_MODE_BRIDGE \
-DMAPI_ABI_HEADER=\"glapi/glapi_mapi_tmp.h\"
glapi_SOURCES := $(addprefix $(MAPI)/, $(MAPI_BRIDGE_SOURCES)) glapi_SOURCES := $(addprefix $(MAPI)/, $(MAPI_BRIDGE_SOURCES))
glapi_GLAPI_OBJECTS := glapi_GLAPI_OBJECTS :=
@ -58,10 +59,19 @@ clean:
-rm -f lib$(TARGET).a -rm -f lib$(TARGET).a
-rm -f depend depend.bak -rm -f depend depend.bak
ifeq ($(SHARED_GLAPI),1)
# workaround a bug in makedepend
makedepend_CPPFLAGS := \
$(filter-out -DMAPI_ABI_HEADER=%, $(glapi_CPPFLAGS))
$(glapi_OBJECTS): glapi_mapi_tmp.h
else
makedepend_CPPFLAGS := $(glapi_CPPFLAGS)
endif
depend: $(glapi_SOURCES) depend: $(glapi_SOURCES)
@ echo "running $(MKDEP)" @ echo "running $(MKDEP)"
@ touch depend @ touch depend
@$(MKDEP) $(MKDEP_OPTIONS) -f- $(DEFINES) $(glapi_CPPFLAGS) \ @$(MKDEP) $(MKDEP_OPTIONS) -f- $(DEFINES) $(makedepend_CPPFLAGS) \
$(glapi_SOURCES) 2>/dev/null | sed -e 's,^$(MAPI)/,,' > depend $(glapi_SOURCES) 2>/dev/null | sed -e 's,^$(MAPI)/,,' > depend
-include depend -include depend

View File

@ -51,10 +51,15 @@ install:
$(MINSTALL) $(TOP)/$(LIB_DIR)/$(GLAPI_LIB_GLOB) \ $(MINSTALL) $(TOP)/$(LIB_DIR)/$(GLAPI_LIB_GLOB) \
$(DESTDIR)$(INSTALL_LIB_DIR) $(DESTDIR)$(INSTALL_LIB_DIR)
# workaround a bug in makedepend
makedepend_CPPFLAGS := \
$(filter-out -DMAPI_ABI_HEADER=%, $(glapi_CPPFLAGS))
$(glapi_OBJECTS): glapi_mapi_tmp.h
depend: $(glapi_SOURCES) depend: $(glapi_SOURCES)
@echo "running $(MKDEP)" @echo "running $(MKDEP)"
@touch depend @touch depend
@$(MKDEP) $(MKDEP_OPTIONS) -f- $(DEFINES) $(glapi_CPPFLAGS) \ @$(MKDEP) $(MKDEP_OPTIONS) -f- $(DEFINES) $(makedepend_CPPFLAGS) \
$(glapi_SOURCES) 2>/dev/null | sed -e 's,^$(MAPI)/,,' \ $(glapi_SOURCES) 2>/dev/null | sed -e 's,^$(MAPI)/,,' \
> depend > depend

View File

@ -81,11 +81,14 @@ install: default install-headers install-pc
$(MINSTALL) $(TOP)/$(LIB_DIR)/$(VG_LIB_GLOB) \ $(MINSTALL) $(TOP)/$(LIB_DIR)/$(VG_LIB_GLOB) \
$(DESTDIR)$(INSTALL_LIB_DIR) $(DESTDIR)$(INSTALL_LIB_DIR)
# due to a bug in makedepend, cannot pass VGAPI_CPPFLAGS to it
$(VGAPI_OBJECTS): vgapi_tmp.h
depend: $(VGAPI_SOURCES) depend: $(VGAPI_SOURCES)
@echo "running $(MKDEP)" @echo "running $(MKDEP)"
@touch depend @touch depend
@$(MKDEP) $(MKDEP_OPTIONS) -f- $(DEFINES) $(INCLUDE_DIRS) \ @$(MKDEP) $(MKDEP_OPTIONS) -f- $(DEFINES) $(INCLUDE_DIRS) \
$(VGAPI_CPPFLAGS) $(VGAPI_SOURCES) 2>/dev/null | \ $(VGAPI_SOURCES) 2>/dev/null | \
sed -e 's,^$(MAPI)/,,' > depend sed -e 's,^$(MAPI)/,,' > depend
-include depend -include depend