Skip to content
Makefile.rules 37 KiB
Newer Older
Reid Spencer's avatar
Reid Spencer committed
	    to_dir="$(DistDir)"; \
	  fi; \
	  mid_dir=`echo "$$file" | sed -n -e 's#^\(.*\)/[^/]*$$#\1#p'`; \
	  if test -n "$$mid_dir" ; then \
            $(MKDIR) "$$to_dir/$$mid_dir" || exit 1; \
Reid Spencer's avatar
Reid Spencer committed
          fi ; \
	  if test -d "$$from_dir/$$file"; then \
	    if test -d "$(BUILD_SRC_DIR)/$$file" && \
	       test "$$from_dir" != "$(BUILD_SRC_DIR)" ; then \
	      cp -pR "$(BUILD_SRC_DIR)/$$file" "$$to_dir" || exit 1; \
	    fi; \
	    cp -pR $$from_dir/$$file $$to_dir || exit 1; \
	  elif test -f "$$from_dir/$$file" ; then \
	    cp -p "$$from_dir/$$file" "$(DistDir)/$$file" || exit 1; \
	  elif test -L "$$from_dir/$$file" ; then \
	    cp -pd "$$from_dir/$$file" $(DistDir)/$$file || exit 1; \
	  elif echo "$(DistAlways)" | grep -v "$$file" >/dev/null ; then \
	    $(ECHO) "===== WARNING: Distribution Source $$from_dir/$$file Not Found!" ; \
	  elif test "$(VERB)" != '@' ; then \
	    $(ECHO) "Skipping non-existent $$from_dir/$$file" ; \
	  fi; \
	done
	$(VERB) for subdir in $(DistSubDirs) ; do \
Reid Spencer's avatar
Reid Spencer committed
	  if test "$$subdir" \!= "." ; then \
	    new_distdir="$(DistDir)/$$subdir" ; \
	    test -d "$$new_distdir" || $(MKDIR) "$$new_distdir" || exit 1; \
	    ( cd $$subdir && $(MAKE) DistDir="$$new_distdir" distdir ) || exit 1; \
Reid Spencer's avatar
Reid Spencer committed
	  fi; \
	done
	$(VERB) $(MAKE) DistDir="$(DistDir)" dist-hook || exit 1
Reid Spencer's avatar
Reid Spencer committed
	-$(VERB) find $(DistDir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
	  ! -type d ! -perm -444 -exec $(SHELL) $(INSTALL_SH) -c -m a+r {} {} \; \
	|| chmod -R a+r $(DistDir)

dist-hook::


endif

###############################################################################
# TOP LEVEL - targets only to apply at the top level directory
###############################################################################

ifeq ($(LEVEL),.)
Reid Spencer's avatar
Reid Spencer committed

#------------------------------------------------------------------------
# Install support for project's include files:
#------------------------------------------------------------------------
install-local::
	@$(ECHO) Installing include files
	$(VERB) $(MKDIR) $(includedir)
	$(VERB) if [ -d "$(BUILD_SRC_ROOT)/include" ] ; then \
	  cd $(BUILD_SRC_ROOT)/include && \
	    find . -path '*/Internal' -prune -o '(' -type f \
	      '!' '(' -name '*~' -o -name '.cvsignore' -o -name '.#*' ')' \
	      -print ')' | grep -v CVS | pax -rwdvpe $(includedir) ; \
	fi

uninstall-local::
	@$(ECHO) Uninstalling include files
	$(VERB) if [ -d "$(BUILD_SRC_ROOT)/include" ] ; then \
	  cd $(BUILD_SRC_ROOT)/include && \
	    $(RM) -f `find . -path '*/Internal' -prune -o '(' -type f \
	      '!' '(' -name '*~' -o -name '.cvsignore' -o -name '.#*' ')' \
	      -print ')' | grep -v CVS | sed 's#^#$(includedir)/#'` ; \
	fi 

#------------------------------------------------------------------------
# Build tags database for Emacs/Xemacs:
#------------------------------------------------------------------------
Reid Spencer's avatar
Reid Spencer committed
tags:: TAGS
Reid Spencer's avatar
Reid Spencer committed
TAGS: 
Reid Spencer's avatar
Reid Spencer committed
	find include lib tools examples -name '*.cpp' -o -name '*.h' | $(ETAGS) $(ETAGSFLAGS) -

endif

###############################################################################
# MISCELLANEOUS - utility targets
###############################################################################

#------------------------------------------------------------------------
# Print out the directories used for building
Reid Spencer's avatar
Reid Spencer committed
printvars::
	@$(ECHO) "BUILD_SRC_ROOT: " $(BUILD_SRC_ROOT)
	@$(ECHO) "BUILD_SRC_DIR : " $(BUILD_SRC_DIR)
	@$(ECHO) "BUILD_OBJ_ROOT: " $(BUILD_OBJ_ROOT)
	@$(ECHO) "BUILD_OBJ_DIR : " $(BUILD_OBJ_DIR)
	@$(ECHO) "LLVM_SRC_ROOT : " $(LLVM_SRC_ROOT)
	@$(ECHO) "LLVM_OBJ_ROOT : " $(LLVM_OBJ_ROOT)
	@$(ECHO) "CONFIGURATION : " $(CONFIGURATION)
	@$(ECHO) "OBJDIR: " $(OBJDIR)
	@$(ECHO) "LIBDIR: " $(LIBDIR)
	@$(ECHO) "TOOLDIR: " $(TOOLDIR)
	@$(ECHO) "TDFILES:" '$(TDFILES)'
Reid Spencer's avatar
Reid Spencer committed
	@$(ECHO) "Compile.CXX: " '$(Compile.CXX)'
	@$(ECHO) "Compile.C: " '$(Compile.C)'