I am currently trying to compile the Julia Language interpreter on Snow Leopard—it has been giving me a heck of a time, but I think that I almost have got it down.
The latest hurdle has been the following error:
make: *** No rule to make target `jltypes.o', needed by `/Users/arman/julia/usr/lib/libjulia-release.dylib'. Stop.
The relevant parts of the makefile appear to be the following:
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 $@
%.do: %.c $(HEADERS)
@$(PRINT_CC) $(CC) $(CPPFLAGS) $(CFLAGS) $(DEBUGFLAGS) -c $< -o $@
%.o: %.cpp $(HEADERS)
@$(PRINT_CC) $(CXX) $(call exec,$(LLVM_CONFIG) --cxxflags) $(CPPFLAGS) $(CXXFLAGS) $(SHIPFLAGS) -c $< -o $@
%.do: %.cpp $(HEADERS)
@$(PRINT_CC) $(CXX) $(call exec,$(LLVM_CONFIG) --cxxflags) $(CPPFLAGS) $(CXXFLAGS) $(DEBUGFLAGS) -c $< -o $@
...
$(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 $@ $(LDFLAGS) $(LIBS) $(SONAME)
$(INSTALL_NAME_CMD)libjulia-release.$(SHLIB_EXT) $@
Everything seems to be properly in place. As I understand it, when looking for the rule for jltypes.o
, Make should use the %.o
rule; however, clearly it cannot find a rule at all.
What makes me crazy is that it compiles just fine on Lion. I've compared the makefiles, their includes, and the Make program itself, but to no avail. This is my first intimate experience with makefiles, so thank you in advance for your patience and help and let me know if I need to include any other information.