I'm going to have a stream-of-consciousness thing here. 

At first sight the Makefile does not look that bad.
> (And Makefile.subdirs is not touched, so yours is the same as every 
> other's one.)
>
>>
>>
Nonetheless this is the problem, I think.  If you substitute things in line 
41 of Makefile.subdirs, you get


-include $(patsubst %, %.d, $(patsubst %.c, $(BUILD_DIR)/%$(EXEEXT), 
$(wildcard profile/*.c)))

BUILD_DIR is clearly defined in Makefile in the profile target.

Okay, it looks like this is all happening during



$(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/profile; 
BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs 
-C $(dir) profile || exit $$?;)

At the very top of Makefile we have

EXEEXT=

But maybe that isn't relevant, since it would still get substituted, just 
without the .c?  Is that what is desired here, would that return an empty 
list?   Or is it (from what I gather about reading about patsubst) that 
profile/*.c doesn't have any entries?  In 
local/var/tmp/sage/build/flint.../src/profile there are indeed two .c 
files, so presumably that isn't it.  Though the two flies in profile/ do 
NOT show up in local/var/tmp/sage/build/flint.../src/build which is (I 
presume) where they would end up.  (These are p-udiv_qrnnd.c and 
p-udiv_qrnnd_preinv.c.)

Otherwise I can't see where there would be something empty.  But now I 
think that the EXEEXT is not relevant, since we just add .d.

Also, I see at the very beginning of the log

Configuring...unknown-Darwin

which could be relevant?


Let's dig deeper.  The problem occurs only for

CC  ../build/ulong_extras/../ulong_extras.lo

(where this happens each time this type of file with the /../ back in the 
main build directory is supposed to be used)

and not other .lo files.  And there are indeed plenty of .d files in the 
subdirectories, but none in src/build itself.


Okay, it looks like this is all happening during

$(FLINT_LIB): $(LOBJS) $(LIB_SOURCES) $(EXT_SOURCES) $(HEADERS) 
$(EXT_HEADERS) | build build/interfaces
$(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, 
$(wildcard $(ext)/*.h)), mkdir -p build/$(dir); 
BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export 
MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) shared || 
exit $$?;))
$(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir); 
BUILD_DIR=../build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export 
MOD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) shared || exit $$?;)
$(AT)if [ "$(WANT_NTL)" -eq "1" ]; then \
  $(MAKE) build/interfaces/NTL-interface.lo; \
  $(CXX) $(ABI_FLAG) -shared build/interfaces/NTL-interface.lo $(LOBJS) 
$(MOD_LOBJS) $(EXT_OBJS) $(LIBS2) -o $(FLINT_LIB); \
fi
$(AT)if [ "$(WANT_NTL)" -ne "1" ]; then \
  $(CC) $(ABI_FLAG) -shared $(LOBJS) $(MOD_LOBJS) $(EXT_OBJS) $(LIBS2) -o 
$(FLINT_LIB); \
fi


I have to go now.  I hope this enlightens someone!  I feel like I'm close 
but I don't have enough experience parsing makefiles.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-release" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-release.
For more options, visit https://groups.google.com/d/optout.

Reply via email to