It deletes all dependency (.d) files in the O.arch directories. This is useful when headers get moved or removed; recreating just the dependency data is much faster than rebuilding the whole tree. It is also possible to run the depclean.pl script manually when only part of the tree needs its dependencies regenerating.
97 lines
3.9 KiB
Plaintext
97 lines
3.9 KiB
Plaintext
#*************************************************************************
|
|
# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
|
|
# National Laboratory.
|
|
# Copyright (c) 2002 The Regents of the University of California, as
|
|
# Operator of Los Alamos National Laboratory.
|
|
# EPICS BASE is distributed subject to a Software License Agreement found
|
|
# in the file LICENSE that is included with this distribution.
|
|
#*************************************************************************
|
|
|
|
include $(CONFIG)/RULES_DIRS
|
|
|
|
distclean: realclean cvsclean realuninstall
|
|
|
|
CVSCLEAN = $(call FIND_TOOL,cvsclean.pl)
|
|
cvsclean:
|
|
$(PERL) $(CVSCLEAN)
|
|
|
|
DEPCLEAN = $(call FIND_TOOL,depclean.pl)
|
|
depclean:
|
|
$(PERL) $(DEPCLEAN)
|
|
|
|
realuninstall: uninstallDirs
|
|
$(RMDIR) $(INSTALL_LOCATION_BIN)
|
|
$(RMDIR) $(INSTALL_LOCATION_LIB)
|
|
|
|
UNINSTALL_DIRS += $(INSTALL_DBD) $(INSTALL_INCLUDE) $(INSTALL_DOC) \
|
|
$(INSTALL_HTML) $(INSTALL_TEMPLATES) $(INSTALL_DB) $(DIRECTORY_TARGETS)
|
|
ifneq ($(INSTALL_LOCATION),$(TOP))
|
|
UNINSTALL_DIRS += $(INSTALL_CONFIG)
|
|
endif
|
|
uninstallDirs:
|
|
$(RMDIR) $(UNINSTALL_DIRS)
|
|
|
|
uninstall: archuninstall uninstallDirs
|
|
|
|
archuninstall: $(addprefix uninstall$(DIVIDER),$(BUILD_ARCHS)) | cleandirs
|
|
|
|
archPart = $(word 2, $(subst $(DIVIDER), ,$@))
|
|
uninstall$(DIVIDER)%:
|
|
$(RMDIR) $(INSTALL_LOCATION_BIN)/$(archPart)
|
|
$(RMDIR) $(INSTALL_LOCATION_LIB)/$(archPart)
|
|
|
|
cleandirs:
|
|
@$(NOP)
|
|
ifeq ($(wildcard $(INSTALL_LOCATION_BIN)/*),)
|
|
$(RMDIR) $(INSTALL_LOCATION_BIN)
|
|
endif
|
|
ifeq ($(wildcard $(INSTALL_LOCATION_LIB)/*),)
|
|
$(RMDIR) $(INSTALL_LOCATION_LIB)
|
|
endif
|
|
|
|
|
|
help:
|
|
@echo "Usage: gnumake [options] [target] ..."
|
|
@echo "Targets supported by all Makefiles:"
|
|
@echo " all - Same as install (default rule)"
|
|
@echo " inc - Installs header files"
|
|
@echo " build - Builds and installs all targets"
|
|
@echo " install - Builds and installs all targets"
|
|
@echo " buildInstall - Same as install (deprecated)"
|
|
@echo " clean - Removes the O.<arch> dirs created by running make"
|
|
@echo " In O.<arch> dir, clean removes build created files"
|
|
@echo " realclean - Removes ALL O.<arch> dirs"
|
|
@echo " Cannot be used within an O.<arch> dir"
|
|
@echo " rebuild - Same as clean install"
|
|
@echo " archclean - Removes O.<arch> dirs but not O.Common dir"
|
|
@echo " runtests - Run self-tests, summarize results"
|
|
@echo "\"Partial\" build targets supported by Makefiles:"
|
|
@echo " host - Builds and installs $(EPICS_HOST_ARCH) only."
|
|
@echo " inc$(DIVIDER)<arch> - Installs <arch> only header files."
|
|
@echo " build$(DIVIDER)<arch> - Builds and installs <arch> only."
|
|
@echo " install$(DIVIDER)<arch> - Builds and installs <arch> only."
|
|
@echo " clean$(DIVIDER)<arch> - Cleans <arch> binaries in O.<arch> dirs only."
|
|
@echo " uninstall$(DIVIDER)<arch> - Remove bin & lib directories for <arch> only."
|
|
@echo "Targets supported by top level Makefile:"
|
|
@echo " archuninstall - Remove bin & lib directories created by this hostarch."
|
|
@echo " uninstall - Remove install directories created by this hostarch."
|
|
@echo " realuninstall - Removes ALL install dirs"
|
|
@echo " distclean - Same as realclean cvsclean realuninstall."
|
|
@echo " depclean - Removes all .d files from O.<arch> directories."
|
|
@echo " cvsclean - Removes cvs .#* files in all dirs of directory tree"
|
|
@echo " help - Prints this list of valid make targets "
|
|
@echo "Indiv. object targets are supported by O.<arch> level Makefile .e.g"
|
|
@echo " xxxRecord.o"
|
|
|
|
.PHONY: cleandirs distclean cvsclean depclean
|
|
.PHONY: realuninstall archuninstall uninstallDirs
|
|
.PHONY: uninstall help
|
|
|
|
# Include <top>/cfg/TOP_RULES* files from tops defined in RELEASE* files
|
|
#
|
|
RELEASE_CFG_TOP_RULES = $(foreach top, $(RELEASE_TOPS), \
|
|
$(wildcard $($(top))/cfg/TOP_RULES*))
|
|
ifneq ($(RELEASE_CFG_TOP_RULES),)
|
|
include $(RELEASE_CFG_TOP_RULES)
|
|
endif
|