В настоящее время я пытаюсь скомпилировать интерпретатор языка Джулии на Snow Leopard - это дало мне чертовски время, но я думаю, что у меня его почти нет.Makefile, по-видимому, игнорируя% .o wildcard
Последнее препятствие было следующее сообщение об ошибке:
make: *** No rule to make target `jltypes.o', needed by `/Users/arman/julia/usr/lib/libjulia-release.dylib'. Stop.
Соответствующие части Makefile, как представляется, следующие:
SRCS = \
jltypes gf ast builtins module codegen interpreter \
alloc dlload sys init task array dump toplevel jl_uv jlapi profile
...
OBJS = $(SRCS:%=%.o)
...
%.o: %.c $(HEADERS)
@$(PRINT_CC) $(CC) $(CPPFLAGS) $(CFLAGS) $(SHIPFLAGS) -DNDEBUG -c $< -o [email protected]
%.do: %.c $(HEADERS)
@$(PRINT_CC) $(CC) $(CPPFLAGS) $(CFLAGS) $(DEBUGFLAGS) -c $< -o [email protected]
%.o: %.cpp $(HEADERS)
@$(PRINT_CC) $(CXX) $(call exec,$(LLVM_CONFIG) --cxxflags) $(CPPFLAGS) $(CXXFLAGS) $(SHIPFLAGS) -c $< -o [email protected]
%.do: %.cpp $(HEADERS)
@$(PRINT_CC) $(CXX) $(call exec,$(LLVM_CONFIG) --cxxflags) $(CPPFLAGS) $(CXXFLAGS) $(DEBUGFLAGS) -c $< -o [email protected]
...
$(BUILD)/$(JL_LIBDIR)/libjulia-release.$(SHLIB_EXT): julia.expmap $(OBJS) flisp/libflisp.a support/libsupport.a $(LIBUV)
@$(PRINT_LINK) $(CXX) $(SHIPFLAGS) $(OBJS) $(RPATH_ORIGIN) -shared -o [email protected] $(LDFLAGS) $(LIBS) $(SONAME)
$(INSTALL_NAME_CMD)libjulia-release.$(SHLIB_EXT) [email protected]
Все вроде бы правильно на месте. Насколько я понимаю, при поиске правила для jltypes.o
, Make должен использовать правило %.o
; однако, очевидно, он не может найти правило вообще.
Что делает меня сумасшедшим, так это то, что он легко компилируется на льве. Я сравнивал make-файлы, их включительно и программу Make, но безрезультатно. Это мой первый интимный опыт работы с make-файлами, поэтому заблаговременно за ваше терпение и помощь и дайте мне знать, нужно ли мне включать любую другую информацию.
Вы были правы - это проблема с заголовком. Спасибо за указатели о 'makepp'; функции отладки всегда являются большой помощью для такого рода вещей. – Arman