⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 Linux下进程监控相关源代码
💻
字号:
# Makefile for procps.  Chuck Blake.# Portions of this are highly dependent upon features specific to GNU makeexport PREFIX     =  #proc# prefix for program namesexport DESTDIR    = /export MANDIR     =  /usr/manexport MAN1DIR    =  $(DESTDIR)$(MANDIR)/man1export MAN5DIR    =  $(DESTDIR)$(MANDIR)/man5export MAN8DIR    =  $(DESTDIR)$(MANDIR)/man8export BINDIR     =  $(DESTDIR)/binexport SBINDIR    =  $(DESTDIR)/sbinexport XBINDIR    =  $(DESTDIR)/usr/X11R6/binexport USRBINDIR  =  $(DESTDIR)/usr/binexport PROCDIR    =  $(DESTDIR)/usr/bin# /usr/proc/bin for Solaris devoteesexport APPLNK     =  $(DESTDIR)/etc/X11/applnk/Utilitiesexport OWNERGROUP =  --owner 0 --group 0export INSTALLBIN =  install --mode a=rx --stripexport INSTALLSCT =  install --mode a=rxexport INSTALLMAN =  install --mode a=rBPROG      =  kill #					-> BINDIRUPROG      =  oldps uptime tload free w top vmstat watch skill snice # -> USRBINDIRPPROG      =  pgrep pkill# -> PROCDIRSPROG      =  sysctlMAN1       =  oldps.1 uptime.1 tload.1 free.1 w.1 top.1 watch.1 skill.1 kill.1 snice.1 pgrep.1 pkill.1MAN5       =  sysctl.conf.5MAN8       =  vmstat.8 sysctl.8 # psupdate.8DESKTOP    =  top.desktopXSCPT      =  XConsole # -> XBINDIRSUBDIRS    =  ps # sub-packages to build/install# easy to command-line overrideexport INCDIRS    =  -I/usr/include/ncurses -I/usr/X11R6/includeexport CC         =  gcc #-ggdb # this gets compiling and linking :-)export OPT        =  -O3export CFLAGS     =  -D_GNU_SOURCE $(OPT) -I$(shell pwd) $(INCDIRS) -Wall -Wno-unusedexport SHARED     =  1# build/install both a static and ELF shared libraryexport SHLIBDIR   =  $(DESTDIR)/lib# where to install the shared libraryexport LDFLAGS    =  -Wl,-warn-common #-s	recommended for ELF systems#LDFLAGS    =  -qmagic -s#		recommended for a.out systems#LDFLAGS    =  -Xlinker -qmagic -s#	older a.out systems may need this#LDFLAGS    =  -N -s#			still older a.out systems use this#BFD_CAPABLE = -DBFD_CAPABLE#AOUT_CAPABLE = #-DAOUT_CAPABLE #ELF_CAPABLE = #-DELF_CAPABLE#LIBBFD = -lbfd -libertyLIBCURSES  =  -lncurses# watch is the only thing that needs this#LIBCURSES  =  -lcurses -ltermcap# BSD Curses requires termcapLIBTERMCAP =  -lncurses# provides perfectly good termcap support#LIBTERMCAP =  -ltermcapEXTRALIBS  =  # -lshadowW_SHOWFROM =  -DW_SHOWFROM# show remote host users are logged in from.#----------------------------------------------------## End of user-configurable portion of the Makefile.  ## You should not need to modify anything below this. ##----------------------------------------------------#BUILD = $(BPROG) $(UPROG) $(PPROG) $(SPROG) $(SUBDIRS) $(DESKTOP)# BUILD LIBRARIES + PROGRAMSall: $(BUILD)# INSTALL PROGRAMS + DOCSinstall: $(patsubst %,install_%,$(BUILD) $(XSCPT) $(MAN1) $(MAN5) $(MAN8))ifeq ($(SHARED),1)	install $(OWNERGROUP) --mode a=rx $(LIB_TGT) $(SHLIBDIR)endif# INSTALL LIBRARIES + HEADERS (OPTIONAL)libinstall:	$(MAKE) -C proc install $(LIBPROCPASS)clean:	$(RM) -f $(OBJ) $(BPROG) $(UPROG) $(PPROG) $(SPROG)	for i in proc $(SUBDIRS); do $(MAKE) -C $$i clean; donedistclean: clean	for i in proc $(SUBDIRS); do $(MAKE) -C $$i clean; done	$(RM) -f $(OBJ) $(BPROG) $(UPROG) $(SPROG) \	      proc/signames.h proc/.depend#-----------------------------------------------------## End of user-callable make targets.                  ## You should not need to read anything below this.    ##-----------------------------------------------------#.PHONY:	all install libinstall clean distclean.PHONY: $(patsubst %,install_%, $(BPROG) $(UPROG) $(SPROG)).PHONY: proc ps.PHONY: $(patsubst %,build_%, proc ps).PHONY: $(patsubst %,install_%, proc ps)VERSION      = $(shell awk '/^%define major_version/ { print $$3 }' < procps.spec)SUBVERSION   = $(shell awk '/^%define minor_version/ { print $$3 }' < procps.spec)MINORVERSION = $(shell awk '/^%define revision/ { print $$3 }' < procps.spec)# Note: LIBVERSION may be less than $(VERSION).$(SUBVERSION).$(MINORVERSION)# LIBVERSION is only set to current $(VERSION).$(SUBVERSION).$(MINORVERSION)# when an incompatible change is made in libproc.LIBVERSION   =  2.0.7ifdef MINORVERSIONLIBPROCPASS  =  SHARED=$(SHARED) SHLIBDIR=$(SHLIBDIR) VERSION=$(VERSION) SUBVERSION=$(SUBVERSION) MINORVERSION=$(MINORVERSION) LIBVERSION=$(LIBVERSION)elseLIBPROCPASS  =  SHARED=$(SHARED) SHLIBDIR=$(SHLIBDIR) VERSION=$(VERSION) SUBVERSION=$(SUBVERSION) LIBVERSION=$(LIBVERSION)endif# libproc setupifeq ($(SHARED),1)    LIB_TGT = proc/libproc.so.$(LIBVERSION)else    LIB_TGT = proc/libproc.aendif$(LIB_TGT): $(wildcard proc/*.[ch])	$(MAKE) -C proc `basename $(LIB_TGT)` $(LIBPROCPASS)# component package setup -- the pattern should be obvious: A build rule and# unified executable+documentation install rule. (An extra makefile rule is# needed for those packages which use Imake.)ps:              build_psbuild_ps:				; $(MAKE) -C psinstall_ps:      ps		; $(MAKE) -C ps install# executable dependenciesoldps kill skill snice top w uptime tload free vmstat utmp : $(LIB_TGT)# static pattern build/link rules:%.o : %.c	$(strip $(CC) $(CFLAGS) -c $^)oldps w uptime tload free vmstat utmp pgrep: % : %.o	$(strip $(CC) $(LDFLAGS) -o $@ $< $(LIB_TGT) $(EXTRALIBS))# special instances of link rules (need extra libraries/objects)top:   % : %.o	$(strip $(CC)  $(LDFLAGS) -o $@ $^ $(LIB_TGT) $(LIBTERMCAP) $(EXTRALIBS))watch:	% : %.o	$(strip $(CC) $(SLDFLAGS) -o $@ $< $(LIBCURSES) $(EXTRALIBS))# special instances of compile rules (need extra defines)w.o:	w.c	$(strip $(CC) $(CFLAGS) $(W_SHOWFROM) -c $<)top.o:	top.c	$(strip $(CC) $(CFLAGS) -fwritable-strings -c $<)skill.o:	skill.c	$(strip $(CC) $(CFLAGS) -DSYSV -c $<)snice:	skill	ln -f skill snicekill:	skill	ln -f skill killpkill:	pgrep	ln -f pgrep pkill# static pattern installation rules$(patsubst %,install_%,$(BPROG)): install_%: %	$(INSTALLBIN) $< $(BINDIR)/$(PREFIX)$<$(patsubst %,install_%,$(SPROG)): install_%: %	$(INSTALLBIN) $< $(SBINDIR)/$(PREFIX)$<$(patsubst %,install_%,$(UPROG)): install_%: %	$(INSTALLBIN) $< $(USRBINDIR)/$(PREFIX)$<$(patsubst %,install_%,$(PPROG)): install_%: %	$(INSTALLBIN) $< $(PROCDIR)/$(PREFIX)$<$(patsubst %,install_%,$(XSCPT)): install_%: %	$(INSTALLSCT) $< $(XBINDIR)/$(PREFIX)$<$(patsubst %,install_%,$(MAN1)) : install_%: %	$(INSTALLMAN) $< $(MAN1DIR)/$(PREFIX)$<$(patsubst %,install_%,$(MAN5)) : install_%: %	$(INSTALLMAN) $< $(MAN5DIR)/$(PREFIX)$<$(patsubst %,install_%,$(MAN8)) : install_%: %	$(INSTALLMAN) $< $(MAN8DIR)/$(PREFIX)$<$(patsubst %,install_%,$(DESKTOP)) : install_%: %	$(INSTALLSCT $< $(APPLNK)/$(PREFIX)$<# special case install rulesinstall_snice: snice install_skill	cd $(USRBINDIR) && ln -f skill sniceinstall_kill: snice install_skill	cd $(USRBINDIR) && ln -f skill killinstall_pkill: pgrep install_pgrep	cd $(USRBINDIR) && ln -f pgrep pkill# Find all the source and object files in this directorySRC      =  $(sort $(wildcard *.c))OBJ      =  $(SRC:.c=.o)CVSTAG = ps_$(VERSION)_$(SUBVERSION)_$(MINORVERSION)FILEVERSION = $(VERSION).$(SUBVERSION).$(MINORVERSION)dist: archivearchive:	@cvs -Q tag -F $(CVSTAG)	@rm -rf /tmp/procps	@cd /tmp; cvs -Q -d $(CVSROOT) export -r$(CVSTAG) procps || echo GRRRrrrrr -- ignore [export aborted]	@mv /tmp/procps /tmp/procps-$(FILEVERSION)	@cd /tmp; tar czSpf procps-$(FILEVERSION).tar.gz procps-$(FILEVERSION)	@cd /tmp; cp procps-$(FILEVERSION)/procps.lsm procps-$(FILEVERSION).lsm	@rm -rf /tmp/procps-$(FILEVERSION)	@echo "The final archive is /tmp/procps-$(FILEVERSION).tar.gz"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -