Доброго времени суток!
После полного прочтения основной документации на Yocto, решил совершить вторую попытку освоить вот это. А именно - собрать tisdk-server-rootfs-image. Оказалось, что на данном этапе я зря это читал.
Пока что обнаруживаются ошибки в самих Makefile-ах и рецептах навроде:
1)
makefile_armv7:29: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.
echo DEVICE=$(DEVICE)
2) ошибки в clocl, где в одной директории лежит Makefile и CMakeLists.txt, причем cmake .
генерирует совершенно другой makefile. И оба не компилируются.
Отрывок из оригинального файла приведен ниже (make не может найти x86/AllocasToEntry.o и рушится)
UTILDIR = ../src/core
WGADIR = ../src/core/dsp
POCLDIR = ../src/llvmopencl
OBJS = AllocasToEntry.o BarrierBlock.o BarrierTailReplication.o \
BreakConstantGEPs.o CanonicalizeBarriers.o DebugHelpers.o \
Flatten.o GenerateHeader.o ImplicitLoopBarriers.o \
ImplicitConditionalBarriers.o IsolateRegions.o \
Kernel.o LLVMUtils.o LoopBarriers.o ParallelRegion.o \
PHIsToAllocas.o TargetAddressSpaces.o \
VariableUniformityAnalysis.o WIVectorize.o Workgroup.o \
WorkItemAliasAnalysis.o WorkitemHandler.o \
WorkitemHandlerChooser.o WorkitemLoops.o WorkitemReplication.o\
SimplifyShuffleBIFCall.o \
main.o compiler.o wga.o program.o file_manip.o options.o \
util.o
OBJS := $(patsubst %.o, $(TARGET)/%.o, $(OBJS))
CXXFLAGS := $(LLVM_CXXFLAGS) -I$(UTILDIR) -I$(WGADIR) -I$(POCLDIR) \
-DLLVM_3_3 $(HOST_USR_INCLUDE) -O3 -fexceptions -std=c++0x \
-D_PRODUCT_VERSION=$(_PRODUCT_VERSION) $(CXXFLAGS)
LIBS = $(CLANG_LIBS) $(LLVM_LIBS)
LDFLAGS := $(LLVM_LDFLAGS) $(LDFLAGS)
.PHONY: .FORCE
$(TARGET): $(TARGET)/.touch $(EXE)
$(EXE): $(OBJS)
$(CXX) $^ $(LIBS) $(LDFLAGS) -o $(TARGET)/$@
$(TARGET)/%.o: %.cpp | $(TARGET)/
$(CXX) $(CXXFLAGS) -c $< -o $@
$(TARGET)/%.o: $(UTILDIR)/%.cpp | $(TARGET)/
$(CXX) $(CXXFLAGS) -c $< -o $@
$(TARGET)/%.o: $(WGADIR)/%.cpp | $(TARGET)/
$(CXX) $(CXXFLAGS) -c $< -o $@
$(TARGET)/%.o: $(POCLDIR)/%.cpp | $(TARGET)/
$(CXX) $(CXXFLAGS) -c $< -o $@
$(TARGET)/%.o: $(POCLDIR)/%.cc | $(TARGET)/
$(CXX) $(CXXFLAGS) -c $< -o $@
$(TARGET)/.touch:
mkdir -p $(TARGET); touch $(TARGET)/.touch
3) На какие-то пакеты были сначала патчи, затем эти патчи не пригодились, так как эти сами пакеты были исправлены и сейчас патчи 2013 года ломают пакеты 2015 года. Замечу, что мануалы по ссылкам выше самые свежие и я совершенно не понимаю, почему там написана такая лажа. Например, «скачайте mcsdk», а ссылка уже невалидна, значит, придется пробовать новую версию mcsdk, значит... Да черт его знает, какие проблемы с пакетами это еще может значить.
Извиняюсь, накипело.
В общем вопрос - как собрать tisdk-server-rootfs-image при таких косяках в документации и репозиториях?
Кастую I-Love-Microsoft