# To make GKrellM for different systems, you can simply:
# For Linux:
#	make
# For FreeBSD 2.X:
#	make freebsd2
# For FreeBSD 3.X or later:
#	make freebsd
# For NetBSD (1.5 ALPHA2 tested so far)
#	make netbsd
# For OpenBSD
#	make openbsd
# For Darwin / Mac OS X
#   make darwin
# For Solaris 2.x (8 tested so far):
#	make solaris
# For libgtop if you have version 1.1.x installed:
#	make gtop
# For libgtop if you have version 1.0.x installed in /usr/include & /usr/lib,
# uncomment GTOP lines below:
#	make gtop1.0
# or, eg. if libgtop 1.0 is installed in /opt/gnome/include & /opt/gnome/lib
#	make gtop1.0 GTOP_PREFIX=/opt/gnome
#
# Then:
#	make install
# To override default install locations /usr/local/bin and /usr/local/include
# to, for example, /usr/bin and /usr/include:
#    make install INSTALLDIR=/usr/bin INCLUDEDIR=/usr/include
#
# ------------------------------------------------------------------
#  If you want to override the default behaviour for the above simple "make"
#  steps, then uncomment and edit the appropriate lines below.
#
# Default
#--------
EXTRAOBJS = md5c.o
BINMODE = 755

# FreeBSD 2.X
#------------
#SYS_LIBS = -lkvm
#EXTRAOBJS =
#BINMODE = 4111


# FreeBSD 3.X or later
#---------------------
#SYS_LIBS = -lkvm -ldevstat
#EXTRAOBJS =
#BINMODE = 4111

# NetBSD or OpenBSD
#------------------
#PTHREAD_INC=-I/usr/local/include
#SYS_LIBS=-lkvm
#EXTRAOBJS =
#BINMODE=2755

# Solaris 2.x
#------------
#SYS_LIBS = -lkstat -lkvm -ldevinfo
#EXTRAOBJS = md5c.o
#BINMODE=2755
#LOCALEDIR = /usr/local/share/locale

# "make gtop1.0" defaults.  If you don't have gnome or libgtop 1.1.x
# installed, uncomment and edit these if necessary for a libgtop install.
# Or, see below about specifying them on the command line.  These are not
# used if you "make gnome-gtop" or "make gtop".
#-----------------------------------
#GTOP_PREFIX = /usr
#GTOP_INCLUDE = -I$(GTOP_PREFIX)/include
#GTOP_LIBS = -L$(GTOP_PREFIX)/lib -lgtop -lgtop_common -lgtop_sysdeps -lXau
#GTOP_LIBS_D = -L$(GTOP_PREFIX)/lib -lgtop -lgtop_common -lgtop_sysdeps
#export GTOP_INCLUDE GTOP_LIBS GTOP_LIBS_D

INSTALLDIR = /usr/local/bin
SINSTALLDIR = $(INSTALLDIR)
MANDIR = /usr/local/share/man/man1
SMANDIR = $(MANDIR)
MANMODE = 644
MANDIRMODE = 755
INCLUDEDIR = /usr/local/include
INCLUDEMODE = 644
INCLUDEDIRMODE = 755

LOCALEDIR ?= /usr/share/locale

OS_NAME=$(shell uname -s)
OS_RELEASE=$(shell uname -r)

export SYS_LIBS EXTRAOBJS BINMODE
export INSTALLDIR SINSTALLDIR INCLUDEDIR INCLUDEMODE INCLUDEDIRMODE LOCALEDIR
export MANDIR SMANDIR MANDIRMODE MANMODE
export OS_NAME OS_RELEASE

enable_nls=1
export enable_nls

all gkrellm:
	(cd po && ${MAKE} all)
	(cd src && ${MAKE} gkrellm)
	(cd server && ${MAKE} gkrellmd)

install:
	(cd po && ${MAKE} install)
	(cd src && ${MAKE} install)
	(cd server && ${MAKE} install)

install_darwin:
	(cd po && ${MAKE} install)
	(cd src && ${MAKE} install STRIP="")
	(cd server && ${MAKE} install STRIP="")

install_netbsd:
	(cd po && ${MAKE} install)
	(cd src && ${MAKE} install_netbsd)
	(cd server && ${MAKE} install_netbsd)

install_openbsd:
	(cd po && ${MAKE} install)
	(cd src && ${MAKE} install_openbsd)
	(cd server && ${MAKE} install_openbsd)

install_solaris:
	(cd po && ${MAKE} install)
	(cd src && ${MAKE} install_solaris)
	(cd server && ${MAKE} install_solaris)

clean:
	(cd po && ${MAKE} clean)
	(cd src && ${MAKE} clean)
	(cd server && ${MAKE} clean)

freebsd2:
	(cd po && ${MAKE} all)
	(cd src && ${MAKE} \
		EXTRAOBJS= SYS_LIBS="-lkvm -lmd" gkrellm )
	(cd server && ${MAKE} \
		EXTRAOBJS= SYS_LIBS="-lkvm -lmd" gkrellmd )

freebsd3 freebsd4 freebsd5 freebsd:
	(cd po && ${MAKE} all)
	(cd src && ${MAKE} \
		EXTRAOBJS= SYS_LIBS="-lkvm -ldevstat -lmd" gkrellm )
	(cd server && ${MAKE} \
		EXTRAOBJS= SYS_LIBS="-lkvm -ldevstat -lmd" gkrellmd )

darwin:
	(cd po && ${MAKE} all)
	(cd src && ${MAKE} GTK_CONFIG=gtk-config STRIP= \
		EXTRAOBJS= SYS_LIBS="-lkvm -lmd5 -framework IOKit" \
		LINK_FLAGS="-flat_namespace -undefined warning -prebind -Wl,-bind_at_load" \
		CFLAGS+="-Ddlsym=dlsym_prepend_underscore" \
		gkrellm )
	(cd server && ${MAKE} GTK_CONFIG=gtk-config STRIP= \
		EXTRAOBJS= SYS_LIBS="-lkvm -lmd5 -framework IOKit" \
		LINK_FLAGS="-flat_namespace -undefined warning -prebind -Wl,-bind_at_load" \
		gkrellmd )

netbsd:
	(cd po && ${MAKE} all)
	(cd src && ${MAKE} \
		PTHREAD_INC=-I/usr/local/include EXTRAOBJS= \
		SYS_LIBS="-lkvm" gkrellm )
	(cd server && ${MAKE} \
		PTHREAD_INC=-I/usr/local/include EXTRAOBJS= \
		SYS_LIBS="-lkvm" gkrellmd )

openbsd:
	(cd po && ${MAKE} all)
	(cd src && ${MAKE} \
		PTHREAD_INC=-I${PREFIX}/include EXTRAOBJS= \
		SYS_LIBS="-lkvm -pthread" gkrellm )
	(cd server && ${MAKE} \
		PTHREAD_INC=-I${PREFIX}/include EXTRAOBJS= \
		SYS_LIBS="-lkvm -pthread" gkrellmd )

solaris:
	(cd po && ${MAKE} MSGFMT_OPT="-v -o" \
		LOCALEDIR=/usr/local/share/locale all)
ifeq ($(OS_RELEASE),5.8)
	(cd src && ${MAKE} CC=gcc \
		CFLAGS="-Wno-implicit-int" \
		SYS_LIBS="-lkstat -lkvm -ldevinfo -lresolv -lsocket -lX11 -lintl" \
		LINK_FLAGS="" gkrellm )
	(cd server && ${MAKE} CC=gcc \
		CFLAGS="-Wno-implicit-int -DSOLARIS_8" \
		SYS_LIBS="-lkstat -lkvm -ldevinfo -lsocket -lnsl -lintl" \
		LINK_FLAGS="" gkrellmd )
else
	(cd src && ${MAKE} CC=gcc \
		CFLAGS="-Wno-implicit-int" \
		SYS_LIBS="-lkstat -lkvm -ldevinfo -lresolv" LINK_FLAGS="" gkrellm )
	(cd server && ${MAKE} CC=gcc \
		CFLAGS="-Wno-implicit-int" \
		SYS_LIBS="-lkstat -lkvm -ldevinfo -lsocket -lnsl" LINK_FLAGS="" gkrellmd )
endif

gnome-gtop:
	(cd po && ${MAKE} all)
	(cd src && ${MAKE} GTOP_PREFIX="\`gnome-config --prefix libgtop\`" \
		GTOP_INCLUDE="\`gnome-config --cflags libgtop\`" \
		GTOP_LIBS="\`gnome-config --libs libgtop\`" \
		SYS_LIBS= gkrellm )
	(cd server && ${MAKE} GTOP_PREFIX="\`gnome-config --prefix libgtop\`" \
		GTOP_INCLUDE="\`gnome-config --cflags libgtop\`" \
		GTOP_LIBS_D="\`gnome-config --libs libgtop\`" \
		SYS_LIBS= gkrellmd )
 
gtop:
	(cd po && ${MAKE} all)
	(cd src && ${MAKE} GTOP_INCLUDE="\`libgtop-config --cflags\`" \
		GTOP_LIBS="\`libgtop-config --libs\`" \
		SYS_LIBS="-lXau" gkrellm )
	(cd server && ${MAKE} GTOP_INCLUDE="\`libgtop-config --cflags\`" \
		GTOP_LIBS_D="\`libgtop-config --libs\`" \
		SYS_LIBS= gkrellmd )

gtop1.0:
	(cd po && ${MAKE} all)
	(cd src && ${MAKE} gkrellm )
	(cd server && ${MAKE} gkrellmd )

