Skip to content
Makefile.rules 38 KiB
Newer Older
	      exit 1 ; \
	  fi ; \
	  echo Removing $(DistDir) ; \
	  $(RM) -rf $(DistDir); \
	fi
Reid Spencer's avatar
Reid Spencer committed
	$(VERB) $(MKDIR) $(DistDir) 
	$(VERB) srcdirstrip=`echo "$(BUILD_SRC_DIR)" | sed 's|.|.|g'`; \
	srcrootstrip=`echo "$(BUILD_SRC_ROOT)" | sed 's|.|.|g'`; \
	for file in $(DistFiles) ; do \
	  case "$$file" in \
	    $(BUILD_SRC_DIR)/*) file=`echo "$$file" | sed "s#^$$srcdirstrip/##"`;; \
	    $(BUILD_SRC_ROOT)/*) file=`echo "$$file" | sed "s#^$$srcrootstrip/#$(BUILD_OBJ_ROOT)/#"`;; \
Reid Spencer's avatar
Reid Spencer committed
	  esac; \
	  if test -f "$$file" || test -d "$$file" ; then \
	    from_dir=. ; \
	  else \
	    from_dir=$(BUILD_SRC_DIR); \
	  fi; \
	  to_dir=`echo "$$file" | sed -e 's#/[^/]*$$##'`; \
	  if test "$$to_dir" != "$$file" && test "$$to_dir" != "."; then \
	    to_dir="$(DistDir)/$$dir"; \
	    $(MKDIR) "$$to_dir" ; \
	  else \
	    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::
Reid Spencer's avatar
Reid Spencer committed
	@$(ECHO) "CONFIGURATION : " $(CONFIGURATION)
	@$(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)
Reid Spencer's avatar
Reid Spencer committed
	@$(ECHO) "libdir : " $(libdir)
	@$(ECHO) "bindir : " $(bindir)
	@$(ECHO) "sysconfdir : " $(sysconfdir)
	@$(ECHO) "bytecode_libdir : " $(bytecode_libdir)
	@$(ECHO) "USER_TARGETS : " $(USER_TARGETS)
	@$(ECHO) "OBJMKFILES: $(OBJMKFILES)"
	@$(ECHO) "SRCMKFILES: $(SRCMKFILES)"
	@$(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)'