# Makefile.in generated by automake 1.10 from Makefile.am.
# Makefile.  Generated from Makefile.in by configure.

# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.





pkgdatadir = $(datadir)/htop
pkglibdir = $(libdir)/htop
pkgincludedir = $(includedir)/htop
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = i686-pc-linux-gnu
host_triplet = i686-pc-linux-gnu
bin_PROGRAMS = htop$(EXEEXT)
subdir = .
DIST_COMMON = README $(am__configure_deps) $(dist_man_MANS) \
	$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
	$(srcdir)/config.h.in $(srcdir)/htop.1.in \
	$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
	TODO compile config.guess config.sub depcomp install-sh \
	ltmain.sh missing ylwrap
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
	$(top_srcdir)/acinclude.m4 $(top_srcdir)/plpa-1.3.2/plpa.m4 \
	$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
	$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
 configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h \
	$(top_builddir)/plpa-1.3.2/src/libplpa/plpa_config.h \
	$(top_builddir)/plpa-1.3.2/src/libplpa/plpa.h
CONFIG_CLEAN_FILES = htop.1
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
	"$(DESTDIR)$(applicationsdir)" "$(DESTDIR)$(pixmapdir)"
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS)
am__objects_1 =
am__objects_2 = htop-AvailableMetersPanel.$(OBJEXT) \
	htop-CategoriesPanel.$(OBJEXT) htop-CheckItem.$(OBJEXT) \
	htop-ClockMeter.$(OBJEXT) htop-ColorsPanel.$(OBJEXT) \
	htop-ColumnsPanel.$(OBJEXT) htop-CPUMeter.$(OBJEXT) \
	htop-CRT.$(OBJEXT) htop-DebugMemory.$(OBJEXT) \
	htop-DisplayOptionsPanel.$(OBJEXT) htop-FunctionBar.$(OBJEXT) \
	htop-Hashtable.$(OBJEXT) htop-Header.$(OBJEXT) \
	htop-htop.$(OBJEXT) htop-ListItem.$(OBJEXT) \
	htop-LoadAverageMeter.$(OBJEXT) htop-MemoryMeter.$(OBJEXT) \
	htop-Meter.$(OBJEXT) htop-MetersPanel.$(OBJEXT) \
	htop-Object.$(OBJEXT) htop-Panel.$(OBJEXT) \
	htop-BatteryMeter.$(OBJEXT) htop-Process.$(OBJEXT) \
	htop-ProcessList.$(OBJEXT) htop-RichString.$(OBJEXT) \
	htop-ScreenManager.$(OBJEXT) htop-Settings.$(OBJEXT) \
	htop-SignalItem.$(OBJEXT) htop-SignalsPanel.$(OBJEXT) \
	htop-String.$(OBJEXT) htop-SwapMeter.$(OBJEXT) \
	htop-TasksMeter.$(OBJEXT) htop-TraceScreen.$(OBJEXT) \
	htop-UptimeMeter.$(OBJEXT) htop-UsersTable.$(OBJEXT) \
	htop-Vector.$(OBJEXT) htop-AvailableColumnsPanel.$(OBJEXT) \
	htop-AffinityPanel.$(OBJEXT) htop-HostnameMeter.$(OBJEXT) \
	htop-OpenFilesScreen.$(OBJEXT)
am_htop_OBJECTS = $(am__objects_1) $(am__objects_2)
htop_OBJECTS = $(am_htop_OBJECTS)
htop_DEPENDENCIES = $(top_builddir)/plpa-1.3.2/src/libplpa/libplpa_included.la
htop_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
	--mode=link $(CCLD) $(htop_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I. -I$(top_builddir)/plpa-1.3.2/src/libplpa
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
	$(LDFLAGS) -o $@
SOURCES = $(htop_SOURCES)
DIST_SOURCES = $(htop_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
	html-recursive info-recursive install-data-recursive \
	install-dvi-recursive install-exec-recursive \
	install-html-recursive install-info-recursive \
	install-pdf-recursive install-ps-recursive install-recursive \
	installcheck-recursive installdirs-recursive pdf-recursive \
	ps-recursive uninstall-recursive
man1dir = $(mandir)/man1
NROFF = nroff
MANS = $(dist_man_MANS)
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
    *) f=$$p;; \
  esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
applicationsDATA_INSTALL = $(INSTALL_DATA)
pixmapDATA_INSTALL = $(INSTALL_DATA)
DATA = $(applications_DATA) $(pixmap_DATA)
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
  distclean-recursive maintainer-clean-recursive
ETAGS = etags
CTAGS = ctags
DIST_SUBDIRS = plpa-1.3.2
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
  { test ! -d $(distdir) \
    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
         && rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = ${SHELL} /home/pundiramit/linaro/smp/htop-0.9/missing --run aclocal-1.10
AMTAR = ${SHELL} /home/pundiramit/linaro/smp/htop-0.9/missing --run tar
AR = ar
AUTOCONF = ${SHELL} /home/pundiramit/linaro/smp/htop-0.9/missing --run autoconf
AUTOHEADER = ${SHELL} /home/pundiramit/linaro/smp/htop-0.9/missing --run autoheader
AUTOMAKE = ${SHELL} /home/pundiramit/linaro/smp/htop-0.9/missing --run automake-1.10
AWK = mawk
CC = gcc
CCDEPMODE = depmode=gcc3
CFLAGS = -g -O2
CPP = gcc -E
CPPFLAGS = 
CYGPATH_W = echo
DEFS = -DHAVE_CONFIG_H
DEPDIR = .deps
DSYMUTIL = 
DUMPBIN = 
ECHO_C = 
ECHO_N = -n
ECHO_T = 
EGREP = /bin/grep -E
EXEEXT = 
FGREP = /bin/grep -F
GREP = /bin/grep
INSTALL = /usr/bin/install -c
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_PROGRAM = ${INSTALL}
INSTALL_SCRIPT = ${INSTALL}
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
LD = /usr/bin/ld
LDFLAGS = 
LEX = flex
LEXLIB = -lfl
LEX_OUTPUT_ROOT = lex.yy
LIBOBJS = 
LIBS = -lncurses -lm 
LIBTOOL = $(SHELL) $(top_builddir)/libtool
LIPO = 
LN_S = ln -s
LTLIBOBJS = 
MAKEINFO = ${SHELL} /home/pundiramit/linaro/smp/htop-0.9/missing --run makeinfo
MKDIR_P = /bin/mkdir -p
NM = /usr/bin/nm -B
NMEDIT = 
OBJDUMP = objdump
OBJEXT = o
OTOOL = 
OTOOL64 = 
PACKAGE = htop
PACKAGE_BUGREPORT = loderunner@users.sourceforge.net
PACKAGE_NAME = htop
PACKAGE_STRING = htop 0.9
PACKAGE_TARNAME = htop
PACKAGE_VERSION = 0.9
PATH_SEPARATOR = :
RANLIB = ranlib
SED = /bin/sed
SET_MAKE = 
SHELL = /bin/sh
STRIP = strip
VERSION = 0.9
YACC = bison -y
YFLAGS = 
abs_builddir = /home/pundiramit/linaro/smp/htop-0.9
abs_srcdir = /home/pundiramit/linaro/smp/htop-0.9
abs_top_builddir = /home/pundiramit/linaro/smp/htop-0.9
abs_top_srcdir = /home/pundiramit/linaro/smp/htop-0.9
ac_ct_CC = gcc
ac_ct_DUMPBIN = 
am__include = include
am__leading_dot = .
am__quote = 
am__tar = ${AMTAR} chof - "$$tardir"
am__untar = ${AMTAR} xf -
bindir = ${exec_prefix}/bin
build = i686-pc-linux-gnu
build_alias = 
build_cpu = i686
build_os = linux-gnu
build_vendor = pc
builddir = .
datadir = ${datarootdir}
datarootdir = ${prefix}/share
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
dvidir = ${docdir}
exec_prefix = ${prefix}
host = i686-pc-linux-gnu
host_alias = 
host_cpu = i686
host_os = linux-gnu
host_vendor = pc
htmldir = ${docdir}
includedir = ${prefix}/include
infodir = ${datarootdir}/info
install_sh = $(SHELL) /home/pundiramit/linaro/smp/htop-0.9/install-sh
libdir = ${exec_prefix}/lib
libexecdir = ${exec_prefix}/libexec
localedir = ${datarootdir}/locale
localstatedir = ${prefix}/var
lt_ECHO = echo
mandir = ${datarootdir}/man
mkdir_p = /bin/mkdir -p
oldincludedir = /usr/include
pdfdir = ${docdir}
prefix = /usr/local
program_transform_name = s,x,x,
psdir = ${docdir}
sbindir = ${exec_prefix}/sbin
sharedstatedir = ${prefix}/com
srcdir = .
sysconfdir = ${prefix}/etc
target_alias = 
top_builddir = .
top_srcdir = .
SUBDIRS = plpa-1.3.2
ACLOCAL_AMFLAGS = -I m4
dist_man_MANS = htop.1
EXTRA_DIST = $(dist_man_MANS) htop.desktop htop.png scripts/MakeHeader.py \
install-sh autogen.sh missing

applicationsdir = $(datadir)/applications
applications_DATA = htop.desktop
pixmapdir = $(datadir)/pixmaps
pixmap_DATA = htop.png
htop_CFLAGS = -pedantic -Wall -std=c99 -rdynamic -D_XOPEN_SOURCE_EXTENDED
AM_CPPFLAGS = -DSYSCONFDIR=\"$(sysconfdir)\"
myhtopsources = AvailableMetersPanel.c CategoriesPanel.c CheckItem.c \
ClockMeter.c ColorsPanel.c ColumnsPanel.c CPUMeter.c CRT.c DebugMemory.c \
DisplayOptionsPanel.c FunctionBar.c Hashtable.c Header.c htop.c ListItem.c \
LoadAverageMeter.c MemoryMeter.c Meter.c MetersPanel.c Object.c Panel.c \
BatteryMeter.c Process.c ProcessList.c RichString.c ScreenManager.c Settings.c \
SignalItem.c SignalsPanel.c String.c SwapMeter.c TasksMeter.c TraceScreen.c \
UptimeMeter.c UsersTable.c Vector.c AvailableColumnsPanel.c AffinityPanel.c \
HostnameMeter.c OpenFilesScreen.c

myhtopheaders = AvailableColumnsPanel.h AvailableMetersPanel.h \
CategoriesPanel.h CheckItem.h ClockMeter.h ColorsPanel.h ColumnsPanel.h \
CPUMeter.h CRT.h DebugMemory.h DisplayOptionsPanel.h FunctionBar.h \
Hashtable.h Header.h htop.h ListItem.h LoadAverageMeter.h MemoryMeter.h \
BatteryMeter.h Meter.h MetersPanel.h Object.h Panel.h ProcessList.h RichString.h \
ScreenManager.h Settings.h SignalItem.h SignalsPanel.h String.h \
SwapMeter.h TasksMeter.h TraceScreen.h UptimeMeter.h UsersTable.h Vector.h \
Process.h AffinityPanel.h HostnameMeter.h OpenFilesScreen.h

SUFFIXES = .h
BUILT_SOURCES = $(myhtopheaders)
htop_SOURCES = $(myhtopheaders) $(myhtopsources) config.h debug.h
htop_LDADD = $(top_builddir)/plpa-1.3.2/src/libplpa/libplpa_included.la
all: $(BUILT_SOURCES) config.h
	$(MAKE) $(AM_MAKEFLAGS) all-recursive

.SUFFIXES:
.SUFFIXES: .h .c .lo .o .obj
am--refresh:
	@:
$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
	@for dep in $?; do \
	  case '$(am__configure_deps)' in \
	    *$$dep*) \
	      echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
	      cd $(srcdir) && $(AUTOMAKE) --gnu  \
		&& exit 0; \
	      exit 1;; \
	  esac; \
	done; \
	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  Makefile'; \
	cd $(top_srcdir) && \
	  $(AUTOMAKE) --gnu  Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
	@case '$?' in \
	  *config.status*) \
	    echo ' $(SHELL) ./config.status'; \
	    $(SHELL) ./config.status;; \
	  *) \
	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
	esac;

$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
	$(SHELL) ./config.status --recheck

$(top_srcdir)/configure:  $(am__configure_deps)
	cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)

config.h: stamp-h1
	@if test ! -f $@; then \
	  rm -f stamp-h1; \
	  $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
	else :; fi

stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
	@rm -f stamp-h1
	cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.h.in:  $(am__configure_deps) 
	cd $(top_srcdir) && $(AUTOHEADER)
	rm -f stamp-h1
	touch $@

distclean-hdr:
	-rm -f config.h stamp-h1
htop.1: $(top_builddir)/config.status $(srcdir)/htop.1.in
	cd $(top_builddir) && $(SHELL) ./config.status $@
install-binPROGRAMS: $(bin_PROGRAMS)
	@$(NORMAL_INSTALL)
	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
	@list='$(bin_PROGRAMS)'; for p in $$list; do \
	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
	  if test -f $$p \
	     || test -f $$p1 \
	  ; then \
	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
	  else :; fi; \
	done

uninstall-binPROGRAMS:
	@$(NORMAL_UNINSTALL)
	@list='$(bin_PROGRAMS)'; for p in $$list; do \
	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
	done

clean-binPROGRAMS:
	@list='$(bin_PROGRAMS)'; for p in $$list; do \
	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
	  echo " rm -f $$p $$f"; \
	  rm -f $$p $$f ; \
	done
htop$(EXEEXT): $(htop_OBJECTS) $(htop_DEPENDENCIES) 
	@rm -f htop$(EXEEXT)
	$(htop_LINK) $(htop_OBJECTS) $(htop_LDADD) $(LIBS)

mostlyclean-compile:
	-rm -f *.$(OBJEXT)

distclean-compile:
	-rm -f *.tab.c

include ./$(DEPDIR)/htop-AffinityPanel.Po
include ./$(DEPDIR)/htop-AvailableColumnsPanel.Po
include ./$(DEPDIR)/htop-AvailableMetersPanel.Po
include ./$(DEPDIR)/htop-BatteryMeter.Po
include ./$(DEPDIR)/htop-CPUMeter.Po
include ./$(DEPDIR)/htop-CRT.Po
include ./$(DEPDIR)/htop-CategoriesPanel.Po
include ./$(DEPDIR)/htop-CheckItem.Po
include ./$(DEPDIR)/htop-ClockMeter.Po
include ./$(DEPDIR)/htop-ColorsPanel.Po
include ./$(DEPDIR)/htop-ColumnsPanel.Po
include ./$(DEPDIR)/htop-DebugMemory.Po
include ./$(DEPDIR)/htop-DisplayOptionsPanel.Po
include ./$(DEPDIR)/htop-FunctionBar.Po
include ./$(DEPDIR)/htop-Hashtable.Po
include ./$(DEPDIR)/htop-Header.Po
include ./$(DEPDIR)/htop-HostnameMeter.Po
include ./$(DEPDIR)/htop-ListItem.Po
include ./$(DEPDIR)/htop-LoadAverageMeter.Po
include ./$(DEPDIR)/htop-MemoryMeter.Po
include ./$(DEPDIR)/htop-Meter.Po
include ./$(DEPDIR)/htop-MetersPanel.Po
include ./$(DEPDIR)/htop-Object.Po
include ./$(DEPDIR)/htop-OpenFilesScreen.Po
include ./$(DEPDIR)/htop-Panel.Po
include ./$(DEPDIR)/htop-Process.Po
include ./$(DEPDIR)/htop-ProcessList.Po
include ./$(DEPDIR)/htop-RichString.Po
include ./$(DEPDIR)/htop-ScreenManager.Po
include ./$(DEPDIR)/htop-Settings.Po
include ./$(DEPDIR)/htop-SignalItem.Po
include ./$(DEPDIR)/htop-SignalsPanel.Po
include ./$(DEPDIR)/htop-String.Po
include ./$(DEPDIR)/htop-SwapMeter.Po
include ./$(DEPDIR)/htop-TasksMeter.Po
include ./$(DEPDIR)/htop-TraceScreen.Po
include ./$(DEPDIR)/htop-UptimeMeter.Po
include ./$(DEPDIR)/htop-UsersTable.Po
include ./$(DEPDIR)/htop-Vector.Po
include ./$(DEPDIR)/htop-htop.Po

.c.o:
	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
#	source='$<' object='$@' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(COMPILE) -c $<

.c.obj:
	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
#	source='$<' object='$@' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(COMPILE) -c `$(CYGPATH_W) '$<'`

.c.lo:
	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
#	source='$<' object='$@' libtool=yes \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(LTCOMPILE) -c -o $@ $<

htop-AvailableMetersPanel.o: AvailableMetersPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-AvailableMetersPanel.o -MD -MP -MF $(DEPDIR)/htop-AvailableMetersPanel.Tpo -c -o htop-AvailableMetersPanel.o `test -f 'AvailableMetersPanel.c' || echo '$(srcdir)/'`AvailableMetersPanel.c
	mv -f $(DEPDIR)/htop-AvailableMetersPanel.Tpo $(DEPDIR)/htop-AvailableMetersPanel.Po
#	source='AvailableMetersPanel.c' object='htop-AvailableMetersPanel.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-AvailableMetersPanel.o `test -f 'AvailableMetersPanel.c' || echo '$(srcdir)/'`AvailableMetersPanel.c

htop-AvailableMetersPanel.obj: AvailableMetersPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-AvailableMetersPanel.obj -MD -MP -MF $(DEPDIR)/htop-AvailableMetersPanel.Tpo -c -o htop-AvailableMetersPanel.obj `if test -f 'AvailableMetersPanel.c'; then $(CYGPATH_W) 'AvailableMetersPanel.c'; else $(CYGPATH_W) '$(srcdir)/AvailableMetersPanel.c'; fi`
	mv -f $(DEPDIR)/htop-AvailableMetersPanel.Tpo $(DEPDIR)/htop-AvailableMetersPanel.Po
#	source='AvailableMetersPanel.c' object='htop-AvailableMetersPanel.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-AvailableMetersPanel.obj `if test -f 'AvailableMetersPanel.c'; then $(CYGPATH_W) 'AvailableMetersPanel.c'; else $(CYGPATH_W) '$(srcdir)/AvailableMetersPanel.c'; fi`

htop-CategoriesPanel.o: CategoriesPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-CategoriesPanel.o -MD -MP -MF $(DEPDIR)/htop-CategoriesPanel.Tpo -c -o htop-CategoriesPanel.o `test -f 'CategoriesPanel.c' || echo '$(srcdir)/'`CategoriesPanel.c
	mv -f $(DEPDIR)/htop-CategoriesPanel.Tpo $(DEPDIR)/htop-CategoriesPanel.Po
#	source='CategoriesPanel.c' object='htop-CategoriesPanel.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-CategoriesPanel.o `test -f 'CategoriesPanel.c' || echo '$(srcdir)/'`CategoriesPanel.c

htop-CategoriesPanel.obj: CategoriesPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-CategoriesPanel.obj -MD -MP -MF $(DEPDIR)/htop-CategoriesPanel.Tpo -c -o htop-CategoriesPanel.obj `if test -f 'CategoriesPanel.c'; then $(CYGPATH_W) 'CategoriesPanel.c'; else $(CYGPATH_W) '$(srcdir)/CategoriesPanel.c'; fi`
	mv -f $(DEPDIR)/htop-CategoriesPanel.Tpo $(DEPDIR)/htop-CategoriesPanel.Po
#	source='CategoriesPanel.c' object='htop-CategoriesPanel.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-CategoriesPanel.obj `if test -f 'CategoriesPanel.c'; then $(CYGPATH_W) 'CategoriesPanel.c'; else $(CYGPATH_W) '$(srcdir)/CategoriesPanel.c'; fi`

htop-CheckItem.o: CheckItem.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-CheckItem.o -MD -MP -MF $(DEPDIR)/htop-CheckItem.Tpo -c -o htop-CheckItem.o `test -f 'CheckItem.c' || echo '$(srcdir)/'`CheckItem.c
	mv -f $(DEPDIR)/htop-CheckItem.Tpo $(DEPDIR)/htop-CheckItem.Po
#	source='CheckItem.c' object='htop-CheckItem.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-CheckItem.o `test -f 'CheckItem.c' || echo '$(srcdir)/'`CheckItem.c

htop-CheckItem.obj: CheckItem.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-CheckItem.obj -MD -MP -MF $(DEPDIR)/htop-CheckItem.Tpo -c -o htop-CheckItem.obj `if test -f 'CheckItem.c'; then $(CYGPATH_W) 'CheckItem.c'; else $(CYGPATH_W) '$(srcdir)/CheckItem.c'; fi`
	mv -f $(DEPDIR)/htop-CheckItem.Tpo $(DEPDIR)/htop-CheckItem.Po
#	source='CheckItem.c' object='htop-CheckItem.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-CheckItem.obj `if test -f 'CheckItem.c'; then $(CYGPATH_W) 'CheckItem.c'; else $(CYGPATH_W) '$(srcdir)/CheckItem.c'; fi`

htop-ClockMeter.o: ClockMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-ClockMeter.o -MD -MP -MF $(DEPDIR)/htop-ClockMeter.Tpo -c -o htop-ClockMeter.o `test -f 'ClockMeter.c' || echo '$(srcdir)/'`ClockMeter.c
	mv -f $(DEPDIR)/htop-ClockMeter.Tpo $(DEPDIR)/htop-ClockMeter.Po
#	source='ClockMeter.c' object='htop-ClockMeter.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-ClockMeter.o `test -f 'ClockMeter.c' || echo '$(srcdir)/'`ClockMeter.c

htop-ClockMeter.obj: ClockMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-ClockMeter.obj -MD -MP -MF $(DEPDIR)/htop-ClockMeter.Tpo -c -o htop-ClockMeter.obj `if test -f 'ClockMeter.c'; then $(CYGPATH_W) 'ClockMeter.c'; else $(CYGPATH_W) '$(srcdir)/ClockMeter.c'; fi`
	mv -f $(DEPDIR)/htop-ClockMeter.Tpo $(DEPDIR)/htop-ClockMeter.Po
#	source='ClockMeter.c' object='htop-ClockMeter.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-ClockMeter.obj `if test -f 'ClockMeter.c'; then $(CYGPATH_W) 'ClockMeter.c'; else $(CYGPATH_W) '$(srcdir)/ClockMeter.c'; fi`

htop-ColorsPanel.o: ColorsPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-ColorsPanel.o -MD -MP -MF $(DEPDIR)/htop-ColorsPanel.Tpo -c -o htop-ColorsPanel.o `test -f 'ColorsPanel.c' || echo '$(srcdir)/'`ColorsPanel.c
	mv -f $(DEPDIR)/htop-ColorsPanel.Tpo $(DEPDIR)/htop-ColorsPanel.Po
#	source='ColorsPanel.c' object='htop-ColorsPanel.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-ColorsPanel.o `test -f 'ColorsPanel.c' || echo '$(srcdir)/'`ColorsPanel.c

htop-ColorsPanel.obj: ColorsPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-ColorsPanel.obj -MD -MP -MF $(DEPDIR)/htop-ColorsPanel.Tpo -c -o htop-ColorsPanel.obj `if test -f 'ColorsPanel.c'; then $(CYGPATH_W) 'ColorsPanel.c'; else $(CYGPATH_W) '$(srcdir)/ColorsPanel.c'; fi`
	mv -f $(DEPDIR)/htop-ColorsPanel.Tpo $(DEPDIR)/htop-ColorsPanel.Po
#	source='ColorsPanel.c' object='htop-ColorsPanel.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-ColorsPanel.obj `if test -f 'ColorsPanel.c'; then $(CYGPATH_W) 'ColorsPanel.c'; else $(CYGPATH_W) '$(srcdir)/ColorsPanel.c'; fi`

htop-ColumnsPanel.o: ColumnsPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-ColumnsPanel.o -MD -MP -MF $(DEPDIR)/htop-ColumnsPanel.Tpo -c -o htop-ColumnsPanel.o `test -f 'ColumnsPanel.c' || echo '$(srcdir)/'`ColumnsPanel.c
	mv -f $(DEPDIR)/htop-ColumnsPanel.Tpo $(DEPDIR)/htop-ColumnsPanel.Po
#	source='ColumnsPanel.c' object='htop-ColumnsPanel.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-ColumnsPanel.o `test -f 'ColumnsPanel.c' || echo '$(srcdir)/'`ColumnsPanel.c

htop-ColumnsPanel.obj: ColumnsPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-ColumnsPanel.obj -MD -MP -MF $(DEPDIR)/htop-ColumnsPanel.Tpo -c -o htop-ColumnsPanel.obj `if test -f 'ColumnsPanel.c'; then $(CYGPATH_W) 'ColumnsPanel.c'; else $(CYGPATH_W) '$(srcdir)/ColumnsPanel.c'; fi`
	mv -f $(DEPDIR)/htop-ColumnsPanel.Tpo $(DEPDIR)/htop-ColumnsPanel.Po
#	source='ColumnsPanel.c' object='htop-ColumnsPanel.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-ColumnsPanel.obj `if test -f 'ColumnsPanel.c'; then $(CYGPATH_W) 'ColumnsPanel.c'; else $(CYGPATH_W) '$(srcdir)/ColumnsPanel.c'; fi`

htop-CPUMeter.o: CPUMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-CPUMeter.o -MD -MP -MF $(DEPDIR)/htop-CPUMeter.Tpo -c -o htop-CPUMeter.o `test -f 'CPUMeter.c' || echo '$(srcdir)/'`CPUMeter.c
	mv -f $(DEPDIR)/htop-CPUMeter.Tpo $(DEPDIR)/htop-CPUMeter.Po
#	source='CPUMeter.c' object='htop-CPUMeter.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-CPUMeter.o `test -f 'CPUMeter.c' || echo '$(srcdir)/'`CPUMeter.c

htop-CPUMeter.obj: CPUMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-CPUMeter.obj -MD -MP -MF $(DEPDIR)/htop-CPUMeter.Tpo -c -o htop-CPUMeter.obj `if test -f 'CPUMeter.c'; then $(CYGPATH_W) 'CPUMeter.c'; else $(CYGPATH_W) '$(srcdir)/CPUMeter.c'; fi`
	mv -f $(DEPDIR)/htop-CPUMeter.Tpo $(DEPDIR)/htop-CPUMeter.Po
#	source='CPUMeter.c' object='htop-CPUMeter.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-CPUMeter.obj `if test -f 'CPUMeter.c'; then $(CYGPATH_W) 'CPUMeter.c'; else $(CYGPATH_W) '$(srcdir)/CPUMeter.c'; fi`

htop-CRT.o: CRT.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-CRT.o -MD -MP -MF $(DEPDIR)/htop-CRT.Tpo -c -o htop-CRT.o `test -f 'CRT.c' || echo '$(srcdir)/'`CRT.c
	mv -f $(DEPDIR)/htop-CRT.Tpo $(DEPDIR)/htop-CRT.Po
#	source='CRT.c' object='htop-CRT.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-CRT.o `test -f 'CRT.c' || echo '$(srcdir)/'`CRT.c

htop-CRT.obj: CRT.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-CRT.obj -MD -MP -MF $(DEPDIR)/htop-CRT.Tpo -c -o htop-CRT.obj `if test -f 'CRT.c'; then $(CYGPATH_W) 'CRT.c'; else $(CYGPATH_W) '$(srcdir)/CRT.c'; fi`
	mv -f $(DEPDIR)/htop-CRT.Tpo $(DEPDIR)/htop-CRT.Po
#	source='CRT.c' object='htop-CRT.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-CRT.obj `if test -f 'CRT.c'; then $(CYGPATH_W) 'CRT.c'; else $(CYGPATH_W) '$(srcdir)/CRT.c'; fi`

htop-DebugMemory.o: DebugMemory.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-DebugMemory.o -MD -MP -MF $(DEPDIR)/htop-DebugMemory.Tpo -c -o htop-DebugMemory.o `test -f 'DebugMemory.c' || echo '$(srcdir)/'`DebugMemory.c
	mv -f $(DEPDIR)/htop-DebugMemory.Tpo $(DEPDIR)/htop-DebugMemory.Po
#	source='DebugMemory.c' object='htop-DebugMemory.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-DebugMemory.o `test -f 'DebugMemory.c' || echo '$(srcdir)/'`DebugMemory.c

htop-DebugMemory.obj: DebugMemory.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-DebugMemory.obj -MD -MP -MF $(DEPDIR)/htop-DebugMemory.Tpo -c -o htop-DebugMemory.obj `if test -f 'DebugMemory.c'; then $(CYGPATH_W) 'DebugMemory.c'; else $(CYGPATH_W) '$(srcdir)/DebugMemory.c'; fi`
	mv -f $(DEPDIR)/htop-DebugMemory.Tpo $(DEPDIR)/htop-DebugMemory.Po
#	source='DebugMemory.c' object='htop-DebugMemory.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-DebugMemory.obj `if test -f 'DebugMemory.c'; then $(CYGPATH_W) 'DebugMemory.c'; else $(CYGPATH_W) '$(srcdir)/DebugMemory.c'; fi`

htop-DisplayOptionsPanel.o: DisplayOptionsPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-DisplayOptionsPanel.o -MD -MP -MF $(DEPDIR)/htop-DisplayOptionsPanel.Tpo -c -o htop-DisplayOptionsPanel.o `test -f 'DisplayOptionsPanel.c' || echo '$(srcdir)/'`DisplayOptionsPanel.c
	mv -f $(DEPDIR)/htop-DisplayOptionsPanel.Tpo $(DEPDIR)/htop-DisplayOptionsPanel.Po
#	source='DisplayOptionsPanel.c' object='htop-DisplayOptionsPanel.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-DisplayOptionsPanel.o `test -f 'DisplayOptionsPanel.c' || echo '$(srcdir)/'`DisplayOptionsPanel.c

htop-DisplayOptionsPanel.obj: DisplayOptionsPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-DisplayOptionsPanel.obj -MD -MP -MF $(DEPDIR)/htop-DisplayOptionsPanel.Tpo -c -o htop-DisplayOptionsPanel.obj `if test -f 'DisplayOptionsPanel.c'; then $(CYGPATH_W) 'DisplayOptionsPanel.c'; else $(CYGPATH_W) '$(srcdir)/DisplayOptionsPanel.c'; fi`
	mv -f $(DEPDIR)/htop-DisplayOptionsPanel.Tpo $(DEPDIR)/htop-DisplayOptionsPanel.Po
#	source='DisplayOptionsPanel.c' object='htop-DisplayOptionsPanel.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-DisplayOptionsPanel.obj `if test -f 'DisplayOptionsPanel.c'; then $(CYGPATH_W) 'DisplayOptionsPanel.c'; else $(CYGPATH_W) '$(srcdir)/DisplayOptionsPanel.c'; fi`

htop-FunctionBar.o: FunctionBar.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-FunctionBar.o -MD -MP -MF $(DEPDIR)/htop-FunctionBar.Tpo -c -o htop-FunctionBar.o `test -f 'FunctionBar.c' || echo '$(srcdir)/'`FunctionBar.c
	mv -f $(DEPDIR)/htop-FunctionBar.Tpo $(DEPDIR)/htop-FunctionBar.Po
#	source='FunctionBar.c' object='htop-FunctionBar.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-FunctionBar.o `test -f 'FunctionBar.c' || echo '$(srcdir)/'`FunctionBar.c

htop-FunctionBar.obj: FunctionBar.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-FunctionBar.obj -MD -MP -MF $(DEPDIR)/htop-FunctionBar.Tpo -c -o htop-FunctionBar.obj `if test -f 'FunctionBar.c'; then $(CYGPATH_W) 'FunctionBar.c'; else $(CYGPATH_W) '$(srcdir)/FunctionBar.c'; fi`
	mv -f $(DEPDIR)/htop-FunctionBar.Tpo $(DEPDIR)/htop-FunctionBar.Po
#	source='FunctionBar.c' object='htop-FunctionBar.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-FunctionBar.obj `if test -f 'FunctionBar.c'; then $(CYGPATH_W) 'FunctionBar.c'; else $(CYGPATH_W) '$(srcdir)/FunctionBar.c'; fi`

htop-Hashtable.o: Hashtable.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Hashtable.o -MD -MP -MF $(DEPDIR)/htop-Hashtable.Tpo -c -o htop-Hashtable.o `test -f 'Hashtable.c' || echo '$(srcdir)/'`Hashtable.c
	mv -f $(DEPDIR)/htop-Hashtable.Tpo $(DEPDIR)/htop-Hashtable.Po
#	source='Hashtable.c' object='htop-Hashtable.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Hashtable.o `test -f 'Hashtable.c' || echo '$(srcdir)/'`Hashtable.c

htop-Hashtable.obj: Hashtable.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Hashtable.obj -MD -MP -MF $(DEPDIR)/htop-Hashtable.Tpo -c -o htop-Hashtable.obj `if test -f 'Hashtable.c'; then $(CYGPATH_W) 'Hashtable.c'; else $(CYGPATH_W) '$(srcdir)/Hashtable.c'; fi`
	mv -f $(DEPDIR)/htop-Hashtable.Tpo $(DEPDIR)/htop-Hashtable.Po
#	source='Hashtable.c' object='htop-Hashtable.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Hashtable.obj `if test -f 'Hashtable.c'; then $(CYGPATH_W) 'Hashtable.c'; else $(CYGPATH_W) '$(srcdir)/Hashtable.c'; fi`

htop-Header.o: Header.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Header.o -MD -MP -MF $(DEPDIR)/htop-Header.Tpo -c -o htop-Header.o `test -f 'Header.c' || echo '$(srcdir)/'`Header.c
	mv -f $(DEPDIR)/htop-Header.Tpo $(DEPDIR)/htop-Header.Po
#	source='Header.c' object='htop-Header.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Header.o `test -f 'Header.c' || echo '$(srcdir)/'`Header.c

htop-Header.obj: Header.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Header.obj -MD -MP -MF $(DEPDIR)/htop-Header.Tpo -c -o htop-Header.obj `if test -f 'Header.c'; then $(CYGPATH_W) 'Header.c'; else $(CYGPATH_W) '$(srcdir)/Header.c'; fi`
	mv -f $(DEPDIR)/htop-Header.Tpo $(DEPDIR)/htop-Header.Po
#	source='Header.c' object='htop-Header.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Header.obj `if test -f 'Header.c'; then $(CYGPATH_W) 'Header.c'; else $(CYGPATH_W) '$(srcdir)/Header.c'; fi`

htop-htop.o: htop.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-htop.o -MD -MP -MF $(DEPDIR)/htop-htop.Tpo -c -o htop-htop.o `test -f 'htop.c' || echo '$(srcdir)/'`htop.c
	mv -f $(DEPDIR)/htop-htop.Tpo $(DEPDIR)/htop-htop.Po
#	source='htop.c' object='htop-htop.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-htop.o `test -f 'htop.c' || echo '$(srcdir)/'`htop.c

htop-htop.obj: htop.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-htop.obj -MD -MP -MF $(DEPDIR)/htop-htop.Tpo -c -o htop-htop.obj `if test -f 'htop.c'; then $(CYGPATH_W) 'htop.c'; else $(CYGPATH_W) '$(srcdir)/htop.c'; fi`
	mv -f $(DEPDIR)/htop-htop.Tpo $(DEPDIR)/htop-htop.Po
#	source='htop.c' object='htop-htop.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-htop.obj `if test -f 'htop.c'; then $(CYGPATH_W) 'htop.c'; else $(CYGPATH_W) '$(srcdir)/htop.c'; fi`

htop-ListItem.o: ListItem.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-ListItem.o -MD -MP -MF $(DEPDIR)/htop-ListItem.Tpo -c -o htop-ListItem.o `test -f 'ListItem.c' || echo '$(srcdir)/'`ListItem.c
	mv -f $(DEPDIR)/htop-ListItem.Tpo $(DEPDIR)/htop-ListItem.Po
#	source='ListItem.c' object='htop-ListItem.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-ListItem.o `test -f 'ListItem.c' || echo '$(srcdir)/'`ListItem.c

htop-ListItem.obj: ListItem.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-ListItem.obj -MD -MP -MF $(DEPDIR)/htop-ListItem.Tpo -c -o htop-ListItem.obj `if test -f 'ListItem.c'; then $(CYGPATH_W) 'ListItem.c'; else $(CYGPATH_W) '$(srcdir)/ListItem.c'; fi`
	mv -f $(DEPDIR)/htop-ListItem.Tpo $(DEPDIR)/htop-ListItem.Po
#	source='ListItem.c' object='htop-ListItem.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-ListItem.obj `if test -f 'ListItem.c'; then $(CYGPATH_W) 'ListItem.c'; else $(CYGPATH_W) '$(srcdir)/ListItem.c'; fi`

htop-LoadAverageMeter.o: LoadAverageMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-LoadAverageMeter.o -MD -MP -MF $(DEPDIR)/htop-LoadAverageMeter.Tpo -c -o htop-LoadAverageMeter.o `test -f 'LoadAverageMeter.c' || echo '$(srcdir)/'`LoadAverageMeter.c
	mv -f $(DEPDIR)/htop-LoadAverageMeter.Tpo $(DEPDIR)/htop-LoadAverageMeter.Po
#	source='LoadAverageMeter.c' object='htop-LoadAverageMeter.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-LoadAverageMeter.o `test -f 'LoadAverageMeter.c' || echo '$(srcdir)/'`LoadAverageMeter.c

htop-LoadAverageMeter.obj: LoadAverageMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-LoadAverageMeter.obj -MD -MP -MF $(DEPDIR)/htop-LoadAverageMeter.Tpo -c -o htop-LoadAverageMeter.obj `if test -f 'LoadAverageMeter.c'; then $(CYGPATH_W) 'LoadAverageMeter.c'; else $(CYGPATH_W) '$(srcdir)/LoadAverageMeter.c'; fi`
	mv -f $(DEPDIR)/htop-LoadAverageMeter.Tpo $(DEPDIR)/htop-LoadAverageMeter.Po
#	source='LoadAverageMeter.c' object='htop-LoadAverageMeter.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-LoadAverageMeter.obj `if test -f 'LoadAverageMeter.c'; then $(CYGPATH_W) 'LoadAverageMeter.c'; else $(CYGPATH_W) '$(srcdir)/LoadAverageMeter.c'; fi`

htop-MemoryMeter.o: MemoryMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-MemoryMeter.o -MD -MP -MF $(DEPDIR)/htop-MemoryMeter.Tpo -c -o htop-MemoryMeter.o `test -f 'MemoryMeter.c' || echo '$(srcdir)/'`MemoryMeter.c
	mv -f $(DEPDIR)/htop-MemoryMeter.Tpo $(DEPDIR)/htop-MemoryMeter.Po
#	source='MemoryMeter.c' object='htop-MemoryMeter.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-MemoryMeter.o `test -f 'MemoryMeter.c' || echo '$(srcdir)/'`MemoryMeter.c

htop-MemoryMeter.obj: MemoryMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-MemoryMeter.obj -MD -MP -MF $(DEPDIR)/htop-MemoryMeter.Tpo -c -o htop-MemoryMeter.obj `if test -f 'MemoryMeter.c'; then $(CYGPATH_W) 'MemoryMeter.c'; else $(CYGPATH_W) '$(srcdir)/MemoryMeter.c'; fi`
	mv -f $(DEPDIR)/htop-MemoryMeter.Tpo $(DEPDIR)/htop-MemoryMeter.Po
#	source='MemoryMeter.c' object='htop-MemoryMeter.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-MemoryMeter.obj `if test -f 'MemoryMeter.c'; then $(CYGPATH_W) 'MemoryMeter.c'; else $(CYGPATH_W) '$(srcdir)/MemoryMeter.c'; fi`

htop-Meter.o: Meter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Meter.o -MD -MP -MF $(DEPDIR)/htop-Meter.Tpo -c -o htop-Meter.o `test -f 'Meter.c' || echo '$(srcdir)/'`Meter.c
	mv -f $(DEPDIR)/htop-Meter.Tpo $(DEPDIR)/htop-Meter.Po
#	source='Meter.c' object='htop-Meter.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Meter.o `test -f 'Meter.c' || echo '$(srcdir)/'`Meter.c

htop-Meter.obj: Meter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Meter.obj -MD -MP -MF $(DEPDIR)/htop-Meter.Tpo -c -o htop-Meter.obj `if test -f 'Meter.c'; then $(CYGPATH_W) 'Meter.c'; else $(CYGPATH_W) '$(srcdir)/Meter.c'; fi`
	mv -f $(DEPDIR)/htop-Meter.Tpo $(DEPDIR)/htop-Meter.Po
#	source='Meter.c' object='htop-Meter.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Meter.obj `if test -f 'Meter.c'; then $(CYGPATH_W) 'Meter.c'; else $(CYGPATH_W) '$(srcdir)/Meter.c'; fi`

htop-MetersPanel.o: MetersPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-MetersPanel.o -MD -MP -MF $(DEPDIR)/htop-MetersPanel.Tpo -c -o htop-MetersPanel.o `test -f 'MetersPanel.c' || echo '$(srcdir)/'`MetersPanel.c
	mv -f $(DEPDIR)/htop-MetersPanel.Tpo $(DEPDIR)/htop-MetersPanel.Po
#	source='MetersPanel.c' object='htop-MetersPanel.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-MetersPanel.o `test -f 'MetersPanel.c' || echo '$(srcdir)/'`MetersPanel.c

htop-MetersPanel.obj: MetersPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-MetersPanel.obj -MD -MP -MF $(DEPDIR)/htop-MetersPanel.Tpo -c -o htop-MetersPanel.obj `if test -f 'MetersPanel.c'; then $(CYGPATH_W) 'MetersPanel.c'; else $(CYGPATH_W) '$(srcdir)/MetersPanel.c'; fi`
	mv -f $(DEPDIR)/htop-MetersPanel.Tpo $(DEPDIR)/htop-MetersPanel.Po
#	source='MetersPanel.c' object='htop-MetersPanel.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-MetersPanel.obj `if test -f 'MetersPanel.c'; then $(CYGPATH_W) 'MetersPanel.c'; else $(CYGPATH_W) '$(srcdir)/MetersPanel.c'; fi`

htop-Object.o: Object.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Object.o -MD -MP -MF $(DEPDIR)/htop-Object.Tpo -c -o htop-Object.o `test -f 'Object.c' || echo '$(srcdir)/'`Object.c
	mv -f $(DEPDIR)/htop-Object.Tpo $(DEPDIR)/htop-Object.Po
#	source='Object.c' object='htop-Object.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Object.o `test -f 'Object.c' || echo '$(srcdir)/'`Object.c

htop-Object.obj: Object.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Object.obj -MD -MP -MF $(DEPDIR)/htop-Object.Tpo -c -o htop-Object.obj `if test -f 'Object.c'; then $(CYGPATH_W) 'Object.c'; else $(CYGPATH_W) '$(srcdir)/Object.c'; fi`
	mv -f $(DEPDIR)/htop-Object.Tpo $(DEPDIR)/htop-Object.Po
#	source='Object.c' object='htop-Object.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Object.obj `if test -f 'Object.c'; then $(CYGPATH_W) 'Object.c'; else $(CYGPATH_W) '$(srcdir)/Object.c'; fi`

htop-Panel.o: Panel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Panel.o -MD -MP -MF $(DEPDIR)/htop-Panel.Tpo -c -o htop-Panel.o `test -f 'Panel.c' || echo '$(srcdir)/'`Panel.c
	mv -f $(DEPDIR)/htop-Panel.Tpo $(DEPDIR)/htop-Panel.Po
#	source='Panel.c' object='htop-Panel.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Panel.o `test -f 'Panel.c' || echo '$(srcdir)/'`Panel.c

htop-Panel.obj: Panel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Panel.obj -MD -MP -MF $(DEPDIR)/htop-Panel.Tpo -c -o htop-Panel.obj `if test -f 'Panel.c'; then $(CYGPATH_W) 'Panel.c'; else $(CYGPATH_W) '$(srcdir)/Panel.c'; fi`
	mv -f $(DEPDIR)/htop-Panel.Tpo $(DEPDIR)/htop-Panel.Po
#	source='Panel.c' object='htop-Panel.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Panel.obj `if test -f 'Panel.c'; then $(CYGPATH_W) 'Panel.c'; else $(CYGPATH_W) '$(srcdir)/Panel.c'; fi`

htop-BatteryMeter.o: BatteryMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-BatteryMeter.o -MD -MP -MF $(DEPDIR)/htop-BatteryMeter.Tpo -c -o htop-BatteryMeter.o `test -f 'BatteryMeter.c' || echo '$(srcdir)/'`BatteryMeter.c
	mv -f $(DEPDIR)/htop-BatteryMeter.Tpo $(DEPDIR)/htop-BatteryMeter.Po
#	source='BatteryMeter.c' object='htop-BatteryMeter.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-BatteryMeter.o `test -f 'BatteryMeter.c' || echo '$(srcdir)/'`BatteryMeter.c

htop-BatteryMeter.obj: BatteryMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-BatteryMeter.obj -MD -MP -MF $(DEPDIR)/htop-BatteryMeter.Tpo -c -o htop-BatteryMeter.obj `if test -f 'BatteryMeter.c'; then $(CYGPATH_W) 'BatteryMeter.c'; else $(CYGPATH_W) '$(srcdir)/BatteryMeter.c'; fi`
	mv -f $(DEPDIR)/htop-BatteryMeter.Tpo $(DEPDIR)/htop-BatteryMeter.Po
#	source='BatteryMeter.c' object='htop-BatteryMeter.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-BatteryMeter.obj `if test -f 'BatteryMeter.c'; then $(CYGPATH_W) 'BatteryMeter.c'; else $(CYGPATH_W) '$(srcdir)/BatteryMeter.c'; fi`

htop-Process.o: Process.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Process.o -MD -MP -MF $(DEPDIR)/htop-Process.Tpo -c -o htop-Process.o `test -f 'Process.c' || echo '$(srcdir)/'`Process.c
	mv -f $(DEPDIR)/htop-Process.Tpo $(DEPDIR)/htop-Process.Po
#	source='Process.c' object='htop-Process.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Process.o `test -f 'Process.c' || echo '$(srcdir)/'`Process.c

htop-Process.obj: Process.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Process.obj -MD -MP -MF $(DEPDIR)/htop-Process.Tpo -c -o htop-Process.obj `if test -f 'Process.c'; then $(CYGPATH_W) 'Process.c'; else $(CYGPATH_W) '$(srcdir)/Process.c'; fi`
	mv -f $(DEPDIR)/htop-Process.Tpo $(DEPDIR)/htop-Process.Po
#	source='Process.c' object='htop-Process.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Process.obj `if test -f 'Process.c'; then $(CYGPATH_W) 'Process.c'; else $(CYGPATH_W) '$(srcdir)/Process.c'; fi`

htop-ProcessList.o: ProcessList.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-ProcessList.o -MD -MP -MF $(DEPDIR)/htop-ProcessList.Tpo -c -o htop-ProcessList.o `test -f 'ProcessList.c' || echo '$(srcdir)/'`ProcessList.c
	mv -f $(DEPDIR)/htop-ProcessList.Tpo $(DEPDIR)/htop-ProcessList.Po
#	source='ProcessList.c' object='htop-ProcessList.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-ProcessList.o `test -f 'ProcessList.c' || echo '$(srcdir)/'`ProcessList.c

htop-ProcessList.obj: ProcessList.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-ProcessList.obj -MD -MP -MF $(DEPDIR)/htop-ProcessList.Tpo -c -o htop-ProcessList.obj `if test -f 'ProcessList.c'; then $(CYGPATH_W) 'ProcessList.c'; else $(CYGPATH_W) '$(srcdir)/ProcessList.c'; fi`
	mv -f $(DEPDIR)/htop-ProcessList.Tpo $(DEPDIR)/htop-ProcessList.Po
#	source='ProcessList.c' object='htop-ProcessList.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-ProcessList.obj `if test -f 'ProcessList.c'; then $(CYGPATH_W) 'ProcessList.c'; else $(CYGPATH_W) '$(srcdir)/ProcessList.c'; fi`

htop-RichString.o: RichString.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-RichString.o -MD -MP -MF $(DEPDIR)/htop-RichString.Tpo -c -o htop-RichString.o `test -f 'RichString.c' || echo '$(srcdir)/'`RichString.c
	mv -f $(DEPDIR)/htop-RichString.Tpo $(DEPDIR)/htop-RichString.Po
#	source='RichString.c' object='htop-RichString.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-RichString.o `test -f 'RichString.c' || echo '$(srcdir)/'`RichString.c

htop-RichString.obj: RichString.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-RichString.obj -MD -MP -MF $(DEPDIR)/htop-RichString.Tpo -c -o htop-RichString.obj `if test -f 'RichString.c'; then $(CYGPATH_W) 'RichString.c'; else $(CYGPATH_W) '$(srcdir)/RichString.c'; fi`
	mv -f $(DEPDIR)/htop-RichString.Tpo $(DEPDIR)/htop-RichString.Po
#	source='RichString.c' object='htop-RichString.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-RichString.obj `if test -f 'RichString.c'; then $(CYGPATH_W) 'RichString.c'; else $(CYGPATH_W) '$(srcdir)/RichString.c'; fi`

htop-ScreenManager.o: ScreenManager.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-ScreenManager.o -MD -MP -MF $(DEPDIR)/htop-ScreenManager.Tpo -c -o htop-ScreenManager.o `test -f 'ScreenManager.c' || echo '$(srcdir)/'`ScreenManager.c
	mv -f $(DEPDIR)/htop-ScreenManager.Tpo $(DEPDIR)/htop-ScreenManager.Po
#	source='ScreenManager.c' object='htop-ScreenManager.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-ScreenManager.o `test -f 'ScreenManager.c' || echo '$(srcdir)/'`ScreenManager.c

htop-ScreenManager.obj: ScreenManager.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-ScreenManager.obj -MD -MP -MF $(DEPDIR)/htop-ScreenManager.Tpo -c -o htop-ScreenManager.obj `if test -f 'ScreenManager.c'; then $(CYGPATH_W) 'ScreenManager.c'; else $(CYGPATH_W) '$(srcdir)/ScreenManager.c'; fi`
	mv -f $(DEPDIR)/htop-ScreenManager.Tpo $(DEPDIR)/htop-ScreenManager.Po
#	source='ScreenManager.c' object='htop-ScreenManager.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-ScreenManager.obj `if test -f 'ScreenManager.c'; then $(CYGPATH_W) 'ScreenManager.c'; else $(CYGPATH_W) '$(srcdir)/ScreenManager.c'; fi`

htop-Settings.o: Settings.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Settings.o -MD -MP -MF $(DEPDIR)/htop-Settings.Tpo -c -o htop-Settings.o `test -f 'Settings.c' || echo '$(srcdir)/'`Settings.c
	mv -f $(DEPDIR)/htop-Settings.Tpo $(DEPDIR)/htop-Settings.Po
#	source='Settings.c' object='htop-Settings.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Settings.o `test -f 'Settings.c' || echo '$(srcdir)/'`Settings.c

htop-Settings.obj: Settings.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Settings.obj -MD -MP -MF $(DEPDIR)/htop-Settings.Tpo -c -o htop-Settings.obj `if test -f 'Settings.c'; then $(CYGPATH_W) 'Settings.c'; else $(CYGPATH_W) '$(srcdir)/Settings.c'; fi`
	mv -f $(DEPDIR)/htop-Settings.Tpo $(DEPDIR)/htop-Settings.Po
#	source='Settings.c' object='htop-Settings.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Settings.obj `if test -f 'Settings.c'; then $(CYGPATH_W) 'Settings.c'; else $(CYGPATH_W) '$(srcdir)/Settings.c'; fi`

htop-SignalItem.o: SignalItem.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-SignalItem.o -MD -MP -MF $(DEPDIR)/htop-SignalItem.Tpo -c -o htop-SignalItem.o `test -f 'SignalItem.c' || echo '$(srcdir)/'`SignalItem.c
	mv -f $(DEPDIR)/htop-SignalItem.Tpo $(DEPDIR)/htop-SignalItem.Po
#	source='SignalItem.c' object='htop-SignalItem.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-SignalItem.o `test -f 'SignalItem.c' || echo '$(srcdir)/'`SignalItem.c

htop-SignalItem.obj: SignalItem.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-SignalItem.obj -MD -MP -MF $(DEPDIR)/htop-SignalItem.Tpo -c -o htop-SignalItem.obj `if test -f 'SignalItem.c'; then $(CYGPATH_W) 'SignalItem.c'; else $(CYGPATH_W) '$(srcdir)/SignalItem.c'; fi`
	mv -f $(DEPDIR)/htop-SignalItem.Tpo $(DEPDIR)/htop-SignalItem.Po
#	source='SignalItem.c' object='htop-SignalItem.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-SignalItem.obj `if test -f 'SignalItem.c'; then $(CYGPATH_W) 'SignalItem.c'; else $(CYGPATH_W) '$(srcdir)/SignalItem.c'; fi`

htop-SignalsPanel.o: SignalsPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-SignalsPanel.o -MD -MP -MF $(DEPDIR)/htop-SignalsPanel.Tpo -c -o htop-SignalsPanel.o `test -f 'SignalsPanel.c' || echo '$(srcdir)/'`SignalsPanel.c
	mv -f $(DEPDIR)/htop-SignalsPanel.Tpo $(DEPDIR)/htop-SignalsPanel.Po
#	source='SignalsPanel.c' object='htop-SignalsPanel.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-SignalsPanel.o `test -f 'SignalsPanel.c' || echo '$(srcdir)/'`SignalsPanel.c

htop-SignalsPanel.obj: SignalsPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-SignalsPanel.obj -MD -MP -MF $(DEPDIR)/htop-SignalsPanel.Tpo -c -o htop-SignalsPanel.obj `if test -f 'SignalsPanel.c'; then $(CYGPATH_W) 'SignalsPanel.c'; else $(CYGPATH_W) '$(srcdir)/SignalsPanel.c'; fi`
	mv -f $(DEPDIR)/htop-SignalsPanel.Tpo $(DEPDIR)/htop-SignalsPanel.Po
#	source='SignalsPanel.c' object='htop-SignalsPanel.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-SignalsPanel.obj `if test -f 'SignalsPanel.c'; then $(CYGPATH_W) 'SignalsPanel.c'; else $(CYGPATH_W) '$(srcdir)/SignalsPanel.c'; fi`

htop-String.o: String.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-String.o -MD -MP -MF $(DEPDIR)/htop-String.Tpo -c -o htop-String.o `test -f 'String.c' || echo '$(srcdir)/'`String.c
	mv -f $(DEPDIR)/htop-String.Tpo $(DEPDIR)/htop-String.Po
#	source='String.c' object='htop-String.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-String.o `test -f 'String.c' || echo '$(srcdir)/'`String.c

htop-String.obj: String.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-String.obj -MD -MP -MF $(DEPDIR)/htop-String.Tpo -c -o htop-String.obj `if test -f 'String.c'; then $(CYGPATH_W) 'String.c'; else $(CYGPATH_W) '$(srcdir)/String.c'; fi`
	mv -f $(DEPDIR)/htop-String.Tpo $(DEPDIR)/htop-String.Po
#	source='String.c' object='htop-String.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-String.obj `if test -f 'String.c'; then $(CYGPATH_W) 'String.c'; else $(CYGPATH_W) '$(srcdir)/String.c'; fi`

htop-SwapMeter.o: SwapMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-SwapMeter.o -MD -MP -MF $(DEPDIR)/htop-SwapMeter.Tpo -c -o htop-SwapMeter.o `test -f 'SwapMeter.c' || echo '$(srcdir)/'`SwapMeter.c
	mv -f $(DEPDIR)/htop-SwapMeter.Tpo $(DEPDIR)/htop-SwapMeter.Po
#	source='SwapMeter.c' object='htop-SwapMeter.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-SwapMeter.o `test -f 'SwapMeter.c' || echo '$(srcdir)/'`SwapMeter.c

htop-SwapMeter.obj: SwapMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-SwapMeter.obj -MD -MP -MF $(DEPDIR)/htop-SwapMeter.Tpo -c -o htop-SwapMeter.obj `if test -f 'SwapMeter.c'; then $(CYGPATH_W) 'SwapMeter.c'; else $(CYGPATH_W) '$(srcdir)/SwapMeter.c'; fi`
	mv -f $(DEPDIR)/htop-SwapMeter.Tpo $(DEPDIR)/htop-SwapMeter.Po
#	source='SwapMeter.c' object='htop-SwapMeter.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-SwapMeter.obj `if test -f 'SwapMeter.c'; then $(CYGPATH_W) 'SwapMeter.c'; else $(CYGPATH_W) '$(srcdir)/SwapMeter.c'; fi`

htop-TasksMeter.o: TasksMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-TasksMeter.o -MD -MP -MF $(DEPDIR)/htop-TasksMeter.Tpo -c -o htop-TasksMeter.o `test -f 'TasksMeter.c' || echo '$(srcdir)/'`TasksMeter.c
	mv -f $(DEPDIR)/htop-TasksMeter.Tpo $(DEPDIR)/htop-TasksMeter.Po
#	source='TasksMeter.c' object='htop-TasksMeter.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-TasksMeter.o `test -f 'TasksMeter.c' || echo '$(srcdir)/'`TasksMeter.c

htop-TasksMeter.obj: TasksMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-TasksMeter.obj -MD -MP -MF $(DEPDIR)/htop-TasksMeter.Tpo -c -o htop-TasksMeter.obj `if test -f 'TasksMeter.c'; then $(CYGPATH_W) 'TasksMeter.c'; else $(CYGPATH_W) '$(srcdir)/TasksMeter.c'; fi`
	mv -f $(DEPDIR)/htop-TasksMeter.Tpo $(DEPDIR)/htop-TasksMeter.Po
#	source='TasksMeter.c' object='htop-TasksMeter.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-TasksMeter.obj `if test -f 'TasksMeter.c'; then $(CYGPATH_W) 'TasksMeter.c'; else $(CYGPATH_W) '$(srcdir)/TasksMeter.c'; fi`

htop-TraceScreen.o: TraceScreen.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-TraceScreen.o -MD -MP -MF $(DEPDIR)/htop-TraceScreen.Tpo -c -o htop-TraceScreen.o `test -f 'TraceScreen.c' || echo '$(srcdir)/'`TraceScreen.c
	mv -f $(DEPDIR)/htop-TraceScreen.Tpo $(DEPDIR)/htop-TraceScreen.Po
#	source='TraceScreen.c' object='htop-TraceScreen.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-TraceScreen.o `test -f 'TraceScreen.c' || echo '$(srcdir)/'`TraceScreen.c

htop-TraceScreen.obj: TraceScreen.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-TraceScreen.obj -MD -MP -MF $(DEPDIR)/htop-TraceScreen.Tpo -c -o htop-TraceScreen.obj `if test -f 'TraceScreen.c'; then $(CYGPATH_W) 'TraceScreen.c'; else $(CYGPATH_W) '$(srcdir)/TraceScreen.c'; fi`
	mv -f $(DEPDIR)/htop-TraceScreen.Tpo $(DEPDIR)/htop-TraceScreen.Po
#	source='TraceScreen.c' object='htop-TraceScreen.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-TraceScreen.obj `if test -f 'TraceScreen.c'; then $(CYGPATH_W) 'TraceScreen.c'; else $(CYGPATH_W) '$(srcdir)/TraceScreen.c'; fi`

htop-UptimeMeter.o: UptimeMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-UptimeMeter.o -MD -MP -MF $(DEPDIR)/htop-UptimeMeter.Tpo -c -o htop-UptimeMeter.o `test -f 'UptimeMeter.c' || echo '$(srcdir)/'`UptimeMeter.c
	mv -f $(DEPDIR)/htop-UptimeMeter.Tpo $(DEPDIR)/htop-UptimeMeter.Po
#	source='UptimeMeter.c' object='htop-UptimeMeter.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-UptimeMeter.o `test -f 'UptimeMeter.c' || echo '$(srcdir)/'`UptimeMeter.c

htop-UptimeMeter.obj: UptimeMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-UptimeMeter.obj -MD -MP -MF $(DEPDIR)/htop-UptimeMeter.Tpo -c -o htop-UptimeMeter.obj `if test -f 'UptimeMeter.c'; then $(CYGPATH_W) 'UptimeMeter.c'; else $(CYGPATH_W) '$(srcdir)/UptimeMeter.c'; fi`
	mv -f $(DEPDIR)/htop-UptimeMeter.Tpo $(DEPDIR)/htop-UptimeMeter.Po
#	source='UptimeMeter.c' object='htop-UptimeMeter.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-UptimeMeter.obj `if test -f 'UptimeMeter.c'; then $(CYGPATH_W) 'UptimeMeter.c'; else $(CYGPATH_W) '$(srcdir)/UptimeMeter.c'; fi`

htop-UsersTable.o: UsersTable.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-UsersTable.o -MD -MP -MF $(DEPDIR)/htop-UsersTable.Tpo -c -o htop-UsersTable.o `test -f 'UsersTable.c' || echo '$(srcdir)/'`UsersTable.c
	mv -f $(DEPDIR)/htop-UsersTable.Tpo $(DEPDIR)/htop-UsersTable.Po
#	source='UsersTable.c' object='htop-UsersTable.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-UsersTable.o `test -f 'UsersTable.c' || echo '$(srcdir)/'`UsersTable.c

htop-UsersTable.obj: UsersTable.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-UsersTable.obj -MD -MP -MF $(DEPDIR)/htop-UsersTable.Tpo -c -o htop-UsersTable.obj `if test -f 'UsersTable.c'; then $(CYGPATH_W) 'UsersTable.c'; else $(CYGPATH_W) '$(srcdir)/UsersTable.c'; fi`
	mv -f $(DEPDIR)/htop-UsersTable.Tpo $(DEPDIR)/htop-UsersTable.Po
#	source='UsersTable.c' object='htop-UsersTable.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-UsersTable.obj `if test -f 'UsersTable.c'; then $(CYGPATH_W) 'UsersTable.c'; else $(CYGPATH_W) '$(srcdir)/UsersTable.c'; fi`

htop-Vector.o: Vector.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Vector.o -MD -MP -MF $(DEPDIR)/htop-Vector.Tpo -c -o htop-Vector.o `test -f 'Vector.c' || echo '$(srcdir)/'`Vector.c
	mv -f $(DEPDIR)/htop-Vector.Tpo $(DEPDIR)/htop-Vector.Po
#	source='Vector.c' object='htop-Vector.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Vector.o `test -f 'Vector.c' || echo '$(srcdir)/'`Vector.c

htop-Vector.obj: Vector.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-Vector.obj -MD -MP -MF $(DEPDIR)/htop-Vector.Tpo -c -o htop-Vector.obj `if test -f 'Vector.c'; then $(CYGPATH_W) 'Vector.c'; else $(CYGPATH_W) '$(srcdir)/Vector.c'; fi`
	mv -f $(DEPDIR)/htop-Vector.Tpo $(DEPDIR)/htop-Vector.Po
#	source='Vector.c' object='htop-Vector.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-Vector.obj `if test -f 'Vector.c'; then $(CYGPATH_W) 'Vector.c'; else $(CYGPATH_W) '$(srcdir)/Vector.c'; fi`

htop-AvailableColumnsPanel.o: AvailableColumnsPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-AvailableColumnsPanel.o -MD -MP -MF $(DEPDIR)/htop-AvailableColumnsPanel.Tpo -c -o htop-AvailableColumnsPanel.o `test -f 'AvailableColumnsPanel.c' || echo '$(srcdir)/'`AvailableColumnsPanel.c
	mv -f $(DEPDIR)/htop-AvailableColumnsPanel.Tpo $(DEPDIR)/htop-AvailableColumnsPanel.Po
#	source='AvailableColumnsPanel.c' object='htop-AvailableColumnsPanel.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-AvailableColumnsPanel.o `test -f 'AvailableColumnsPanel.c' || echo '$(srcdir)/'`AvailableColumnsPanel.c

htop-AvailableColumnsPanel.obj: AvailableColumnsPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-AvailableColumnsPanel.obj -MD -MP -MF $(DEPDIR)/htop-AvailableColumnsPanel.Tpo -c -o htop-AvailableColumnsPanel.obj `if test -f 'AvailableColumnsPanel.c'; then $(CYGPATH_W) 'AvailableColumnsPanel.c'; else $(CYGPATH_W) '$(srcdir)/AvailableColumnsPanel.c'; fi`
	mv -f $(DEPDIR)/htop-AvailableColumnsPanel.Tpo $(DEPDIR)/htop-AvailableColumnsPanel.Po
#	source='AvailableColumnsPanel.c' object='htop-AvailableColumnsPanel.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-AvailableColumnsPanel.obj `if test -f 'AvailableColumnsPanel.c'; then $(CYGPATH_W) 'AvailableColumnsPanel.c'; else $(CYGPATH_W) '$(srcdir)/AvailableColumnsPanel.c'; fi`

htop-AffinityPanel.o: AffinityPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-AffinityPanel.o -MD -MP -MF $(DEPDIR)/htop-AffinityPanel.Tpo -c -o htop-AffinityPanel.o `test -f 'AffinityPanel.c' || echo '$(srcdir)/'`AffinityPanel.c
	mv -f $(DEPDIR)/htop-AffinityPanel.Tpo $(DEPDIR)/htop-AffinityPanel.Po
#	source='AffinityPanel.c' object='htop-AffinityPanel.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-AffinityPanel.o `test -f 'AffinityPanel.c' || echo '$(srcdir)/'`AffinityPanel.c

htop-AffinityPanel.obj: AffinityPanel.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-AffinityPanel.obj -MD -MP -MF $(DEPDIR)/htop-AffinityPanel.Tpo -c -o htop-AffinityPanel.obj `if test -f 'AffinityPanel.c'; then $(CYGPATH_W) 'AffinityPanel.c'; else $(CYGPATH_W) '$(srcdir)/AffinityPanel.c'; fi`
	mv -f $(DEPDIR)/htop-AffinityPanel.Tpo $(DEPDIR)/htop-AffinityPanel.Po
#	source='AffinityPanel.c' object='htop-AffinityPanel.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-AffinityPanel.obj `if test -f 'AffinityPanel.c'; then $(CYGPATH_W) 'AffinityPanel.c'; else $(CYGPATH_W) '$(srcdir)/AffinityPanel.c'; fi`

htop-HostnameMeter.o: HostnameMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-HostnameMeter.o -MD -MP -MF $(DEPDIR)/htop-HostnameMeter.Tpo -c -o htop-HostnameMeter.o `test -f 'HostnameMeter.c' || echo '$(srcdir)/'`HostnameMeter.c
	mv -f $(DEPDIR)/htop-HostnameMeter.Tpo $(DEPDIR)/htop-HostnameMeter.Po
#	source='HostnameMeter.c' object='htop-HostnameMeter.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-HostnameMeter.o `test -f 'HostnameMeter.c' || echo '$(srcdir)/'`HostnameMeter.c

htop-HostnameMeter.obj: HostnameMeter.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-HostnameMeter.obj -MD -MP -MF $(DEPDIR)/htop-HostnameMeter.Tpo -c -o htop-HostnameMeter.obj `if test -f 'HostnameMeter.c'; then $(CYGPATH_W) 'HostnameMeter.c'; else $(CYGPATH_W) '$(srcdir)/HostnameMeter.c'; fi`
	mv -f $(DEPDIR)/htop-HostnameMeter.Tpo $(DEPDIR)/htop-HostnameMeter.Po
#	source='HostnameMeter.c' object='htop-HostnameMeter.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-HostnameMeter.obj `if test -f 'HostnameMeter.c'; then $(CYGPATH_W) 'HostnameMeter.c'; else $(CYGPATH_W) '$(srcdir)/HostnameMeter.c'; fi`

htop-OpenFilesScreen.o: OpenFilesScreen.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-OpenFilesScreen.o -MD -MP -MF $(DEPDIR)/htop-OpenFilesScreen.Tpo -c -o htop-OpenFilesScreen.o `test -f 'OpenFilesScreen.c' || echo '$(srcdir)/'`OpenFilesScreen.c
	mv -f $(DEPDIR)/htop-OpenFilesScreen.Tpo $(DEPDIR)/htop-OpenFilesScreen.Po
#	source='OpenFilesScreen.c' object='htop-OpenFilesScreen.o' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-OpenFilesScreen.o `test -f 'OpenFilesScreen.c' || echo '$(srcdir)/'`OpenFilesScreen.c

htop-OpenFilesScreen.obj: OpenFilesScreen.c
	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -MT htop-OpenFilesScreen.obj -MD -MP -MF $(DEPDIR)/htop-OpenFilesScreen.Tpo -c -o htop-OpenFilesScreen.obj `if test -f 'OpenFilesScreen.c'; then $(CYGPATH_W) 'OpenFilesScreen.c'; else $(CYGPATH_W) '$(srcdir)/OpenFilesScreen.c'; fi`
	mv -f $(DEPDIR)/htop-OpenFilesScreen.Tpo $(DEPDIR)/htop-OpenFilesScreen.Po
#	source='OpenFilesScreen.c' object='htop-OpenFilesScreen.obj' libtool=no \
#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
#	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htop_CFLAGS) $(CFLAGS) -c -o htop-OpenFilesScreen.obj `if test -f 'OpenFilesScreen.c'; then $(CYGPATH_W) 'OpenFilesScreen.c'; else $(CYGPATH_W) '$(srcdir)/OpenFilesScreen.c'; fi`

mostlyclean-libtool:
	-rm -f *.lo

clean-libtool:
	-rm -rf .libs _libs

distclean-libtool:
	-rm -f libtool
install-man1: $(man1_MANS) $(man_MANS)
	@$(NORMAL_INSTALL)
	test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
	for i in $$l2; do \
	  case "$$i" in \
	    *.1*) list="$$list $$i" ;; \
	  esac; \
	done; \
	for i in $$list; do \
	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
	  else file=$$i; fi; \
	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
	  case "$$ext" in \
	    1*) ;; \
	    *) ext='1' ;; \
	  esac; \
	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
	done
uninstall-man1:
	@$(NORMAL_UNINSTALL)
	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
	for i in $$l2; do \
	  case "$$i" in \
	    *.1*) list="$$list $$i" ;; \
	  esac; \
	done; \
	for i in $$list; do \
	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
	  case "$$ext" in \
	    1*) ;; \
	    *) ext='1' ;; \
	  esac; \
	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
	  echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
	  rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
	done
install-applicationsDATA: $(applications_DATA)
	@$(NORMAL_INSTALL)
	test -z "$(applicationsdir)" || $(MKDIR_P) "$(DESTDIR)$(applicationsdir)"
	@list='$(applications_DATA)'; for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  f=$(am__strip_dir) \
	  echo " $(applicationsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(applicationsdir)/$$f'"; \
	  $(applicationsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(applicationsdir)/$$f"; \
	done

uninstall-applicationsDATA:
	@$(NORMAL_UNINSTALL)
	@list='$(applications_DATA)'; for p in $$list; do \
	  f=$(am__strip_dir) \
	  echo " rm -f '$(DESTDIR)$(applicationsdir)/$$f'"; \
	  rm -f "$(DESTDIR)$(applicationsdir)/$$f"; \
	done
install-pixmapDATA: $(pixmap_DATA)
	@$(NORMAL_INSTALL)
	test -z "$(pixmapdir)" || $(MKDIR_P) "$(DESTDIR)$(pixmapdir)"
	@list='$(pixmap_DATA)'; for p in $$list; do \
	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
	  f=$(am__strip_dir) \
	  echo " $(pixmapDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pixmapdir)/$$f'"; \
	  $(pixmapDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pixmapdir)/$$f"; \
	done

uninstall-pixmapDATA:
	@$(NORMAL_UNINSTALL)
	@list='$(pixmap_DATA)'; for p in $$list; do \
	  f=$(am__strip_dir) \
	  echo " rm -f '$(DESTDIR)$(pixmapdir)/$$f'"; \
	  rm -f "$(DESTDIR)$(pixmapdir)/$$f"; \
	done

# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this Makefile.
# To change the values of `make' variables: instead of editing Makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
#     (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS):
	@failcom='exit 1'; \
	for f in x $$MAKEFLAGS; do \
	  case $$f in \
	    *=* | --[!k]*);; \
	    *k*) failcom='fail=yes';; \
	  esac; \
	done; \
	dot_seen=no; \
	target=`echo $@ | sed s/-recursive//`; \
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  echo "Making $$target in $$subdir"; \
	  if test "$$subdir" = "."; then \
	    dot_seen=yes; \
	    local_target="$$target-am"; \
	  else \
	    local_target="$$target"; \
	  fi; \
	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
	  || eval $$failcom; \
	done; \
	if test "$$dot_seen" = "no"; then \
	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
	fi; test -z "$$fail"

$(RECURSIVE_CLEAN_TARGETS):
	@failcom='exit 1'; \
	for f in x $$MAKEFLAGS; do \
	  case $$f in \
	    *=* | --[!k]*);; \
	    *k*) failcom='fail=yes';; \
	  esac; \
	done; \
	dot_seen=no; \
	case "$@" in \
	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
	  *) list='$(SUBDIRS)' ;; \
	esac; \
	rev=''; for subdir in $$list; do \
	  if test "$$subdir" = "."; then :; else \
	    rev="$$subdir $$rev"; \
	  fi; \
	done; \
	rev="$$rev ."; \
	target=`echo $@ | sed s/-recursive//`; \
	for subdir in $$rev; do \
	  echo "Making $$target in $$subdir"; \
	  if test "$$subdir" = "."; then \
	    local_target="$$target-am"; \
	  else \
	    local_target="$$target"; \
	  fi; \
	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
	  || eval $$failcom; \
	done && test -z "$$fail"
tags-recursive:
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
	done
ctags-recursive:
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
	done

ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '    { files[$$0] = 1; } \
	       END { for (i in files) print i; }'`; \
	mkid -fID $$unique
tags: TAGS

TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	tags=; \
	here=`pwd`; \
	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
	  include_option=--etags-include; \
	  empty_fix=.; \
	else \
	  include_option=--include; \
	  empty_fix=; \
	fi; \
	list='$(SUBDIRS)'; for subdir in $$list; do \
	  if test "$$subdir" = .; then :; else \
	    test ! -f $$subdir/TAGS || \
	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
	  fi; \
	done; \
	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '    { files[$$0] = 1; } \
	       END { for (i in files) print i; }'`; \
	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
	  test -n "$$unique" || unique=$$empty_fix; \
	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
	    $$tags $$unique; \
	fi
ctags: CTAGS
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
		$(TAGS_FILES) $(LISP)
	tags=; \
	here=`pwd`; \
	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
	unique=`for i in $$list; do \
	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
	  done | \
	  $(AWK) '    { files[$$0] = 1; } \
	       END { for (i in files) print i; }'`; \
	test -z "$(CTAGS_ARGS)$$tags$$unique" \
	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
	     $$tags $$unique

GTAGS:
	here=`$(am__cd) $(top_builddir) && pwd` \
	  && cd $(top_srcdir) \
	  && gtags -i $(GTAGS_ARGS) $$here

distclean-tags:
	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags

distdir: $(DISTFILES)
	$(am__remove_distdir)
	test -d $(distdir) || mkdir $(distdir)
	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
	list='$(DISTFILES)'; \
	  dist_files=`for file in $$list; do echo $$file; done | \
	  sed -e "s|^$$srcdirstrip/||;t" \
	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
	case $$dist_files in \
	  */*) $(MKDIR_P) `echo "$$dist_files" | \
			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
			   sort -u` ;; \
	esac; \
	for file in $$dist_files; do \
	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
	  if test -d $$d/$$file; then \
	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
	    fi; \
	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
	  else \
	    test -f $(distdir)/$$file \
	    || cp -p $$d/$$file $(distdir)/$$file \
	    || exit 1; \
	  fi; \
	done
	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
	  if test "$$subdir" = .; then :; else \
	    test -d "$(distdir)/$$subdir" \
	    || $(MKDIR_P) "$(distdir)/$$subdir" \
	    || exit 1; \
	    distdir=`$(am__cd) $(distdir) && pwd`; \
	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
	    (cd $$subdir && \
	      $(MAKE) $(AM_MAKEFLAGS) \
	        top_distdir="$$top_distdir" \
	        distdir="$$distdir/$$subdir" \
		am__remove_distdir=: \
		am__skip_length_check=: \
	        distdir) \
	      || exit 1; \
	  fi; \
	done
	-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 $(install_sh) -c -m a+r {} {} \; \
	|| chmod -R a+r $(distdir)
dist-gzip: distdir
	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
	$(am__remove_distdir)

dist-bzip2: distdir
	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
	$(am__remove_distdir)

dist-tarZ: distdir
	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
	$(am__remove_distdir)

dist-shar: distdir
	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
	$(am__remove_distdir)

dist-zip: distdir
	-rm -f $(distdir).zip
	zip -rq $(distdir).zip $(distdir)
	$(am__remove_distdir)

dist dist-all: distdir
	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
	$(am__remove_distdir)

# This target untars the dist file and tries a VPATH configuration.  Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
	case '$(DIST_ARCHIVES)' in \
	*.tar.gz*) \
	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
	*.tar.bz2*) \
	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
	*.tar.Z*) \
	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
	*.shar.gz*) \
	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
	*.zip*) \
	  unzip $(distdir).zip ;;\
	esac
	chmod -R a-w $(distdir); chmod a+w $(distdir)
	mkdir $(distdir)/_build
	mkdir $(distdir)/_inst
	chmod a-w $(distdir)
	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
	  && cd $(distdir)/_build \
	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
	    $(DISTCHECK_CONFIGURE_FLAGS) \
	  && $(MAKE) $(AM_MAKEFLAGS) \
	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
	  && $(MAKE) $(AM_MAKEFLAGS) check \
	  && $(MAKE) $(AM_MAKEFLAGS) install \
	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
	        distuninstallcheck \
	  && chmod -R a-w "$$dc_install_base" \
	  && ({ \
	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
	  && rm -rf "$$dc_destdir" \
	  && $(MAKE) $(AM_MAKEFLAGS) dist \
	  && rm -rf $(DIST_ARCHIVES) \
	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
	$(am__remove_distdir)
	@(echo "$(distdir) archives ready for distribution: "; \
	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck:
	@cd $(distuninstallcheck_dir) \
	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
	   || { echo "ERROR: files left after uninstall:" ; \
	        if test -n "$(DESTDIR)"; then \
	          echo "  (check DESTDIR support)"; \
	        fi ; \
	        $(distuninstallcheck_listfiles) ; \
	        exit 1; } >&2
distcleancheck: distclean
	@if test '$(srcdir)' = . ; then \
	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
	  exit 1 ; \
	fi
	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
	  || { echo "ERROR: files left in build directory after distclean:" ; \
	       $(distcleancheck_listfiles) ; \
	       exit 1; } >&2
check-am: all-am
check: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) check-recursive
all-am: Makefile $(PROGRAMS) $(MANS) $(DATA) config.h
installdirs: installdirs-recursive
installdirs-am:
	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(applicationsdir)" "$(DESTDIR)$(pixmapdir)"; do \
	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
	done
install: $(BUILT_SOURCES)
	$(MAKE) $(AM_MAKEFLAGS) install-recursive
install-exec: install-exec-recursive
install-data: install-data-recursive
uninstall: uninstall-recursive

install-am: all-am
	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am

installcheck: installcheck-recursive
install-strip:
	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
	  `test -z '$(STRIP)' || \
	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:

clean-generic:

distclean-generic:
	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)

maintainer-clean-generic:
	@echo "This command is intended for maintainers to use"
	@echo "it deletes files that may require special tools to rebuild."
	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-recursive

clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am

distclean: distclean-recursive
	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
	-rm -rf ./$(DEPDIR)
	-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
	distclean-hdr distclean-libtool distclean-tags

dvi: dvi-recursive

dvi-am:

html: html-recursive

info: info-recursive

info-am:

install-data-am: install-applicationsDATA install-man \
	install-pixmapDATA

install-dvi: install-dvi-recursive

install-exec-am: install-binPROGRAMS

install-html: install-html-recursive

install-info: install-info-recursive

install-man: install-man1

install-pdf: install-pdf-recursive

install-ps: install-ps-recursive

installcheck-am:

maintainer-clean: maintainer-clean-recursive
	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
	-rm -rf $(top_srcdir)/autom4te.cache
	-rm -rf ./$(DEPDIR)
	-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic

mostlyclean: mostlyclean-recursive

mostlyclean-am: mostlyclean-compile mostlyclean-generic \
	mostlyclean-libtool

pdf: pdf-recursive

pdf-am:

ps: ps-recursive

ps-am:

uninstall-am: uninstall-applicationsDATA uninstall-binPROGRAMS \
	uninstall-man uninstall-pixmapDATA

uninstall-man: uninstall-man1

.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
	install-strip

.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
	all all-am am--refresh check check-am clean clean-binPROGRAMS \
	clean-generic clean-libtool ctags ctags-recursive dist \
	dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \
	distcheck distclean distclean-compile distclean-generic \
	distclean-hdr distclean-libtool distclean-tags distcleancheck \
	distdir distuninstallcheck dvi dvi-am html html-am info \
	info-am install install-am install-applicationsDATA \
	install-binPROGRAMS install-data install-data-am install-dvi \
	install-dvi-am install-exec install-exec-am install-html \
	install-html-am install-info install-info-am install-man \
	install-man1 install-pdf install-pdf-am install-pixmapDATA \
	install-ps install-ps-am install-strip installcheck \
	installcheck-am installdirs installdirs-am maintainer-clean \
	maintainer-clean-generic mostlyclean mostlyclean-compile \
	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
	tags tags-recursive uninstall uninstall-am \
	uninstall-applicationsDATA uninstall-binPROGRAMS uninstall-man \
	uninstall-man1 uninstall-pixmapDATA


profile:
	$(MAKE) all CFLAGS="-pg -O2"

debug:
	$(MAKE) all CFLAGS="-ggdb -DDEBUG"

hardened-debug:
	$(MAKE) all CFLAGS="-ggdb -DDEBUG" LDFLAGS="-nopie"

debuglite:
	$(MAKE) all CFLAGS="-ggdb -DDEBUGLITE"

.c.h:
	scripts/MakeHeader.py $<
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
