258 lines
6.3 KiB
Makefile
258 lines
6.3 KiB
Makefile
PACKAGE_D ?= gkrellmd
|
|
PKG_CONFIG ?= pkg-config
|
|
BINMODE ?= 755
|
|
BINEXT ?=
|
|
|
|
INSTALLROOT ?= $(DESTDIR)$(PREFIX)
|
|
ifeq ($(INSTALLROOT),)
|
|
INSTALLROOT = /usr/local
|
|
endif
|
|
|
|
SINSTALLDIR ?= $(INSTALLROOT)/bin
|
|
INSTALLDIRMODE ?= 755
|
|
|
|
INCLUDEDIR ?= $(INSTALLROOT)/include
|
|
INCLUDEMODE ?= 644
|
|
INCLUDEDIRMODE ?= 755
|
|
|
|
LIBDIR ?= $(INSTALLROOT)/lib
|
|
LIBDIRMODE ?= 755
|
|
|
|
CFGDIR ?= $(INSTALLROOT)/etc
|
|
CFGDIRMODE ?= 755
|
|
CFGMODE ?= 644
|
|
|
|
SMANDIR ?= $(INSTALLROOT)/share/man/man1
|
|
MANMODE ?= 644
|
|
MANDIRMODE ?= 755
|
|
INSTALL ?= install
|
|
LINK_FLAGS ?= -Wl,-E
|
|
EXTRAOBJS =
|
|
|
|
SHARED_PATH = ../shared
|
|
# Make GNU Make search for sources somewhere else as well
|
|
VPATH = $(SHARED_PATH)
|
|
|
|
ifeq ($(without-libsensors),yes)
|
|
CONFIGURE_ARGS += --without-libsensors
|
|
endif
|
|
ifeq ($(without-libsensors),1)
|
|
CONFIGURE_ARGS += --without-libsensors
|
|
endif
|
|
|
|
DUMMY_VAR := $(shell ./configure $(CONFIGURE_ARGS))
|
|
|
|
HAVE_LIBSENSORS = $(shell grep -c HAVE_LIBSENSORS configure.h)
|
|
ifeq ($(HAVE_LIBSENSORS),1)
|
|
SENSORS_LIBS ?= -lsensors
|
|
endif
|
|
|
|
|
|
CC ?= gcc
|
|
WINDRES ?= windres
|
|
STRIP ?= -s
|
|
|
|
GKRELLMD_INCLUDES = gkrellmd.h $(SHARED_PATH)/log.h
|
|
|
|
PKG_INCLUDE = `$(PKG_CONFIG) --cflags glib-2.0 gthread-2.0`
|
|
PKG_LIB = `$(PKG_CONFIG) --libs glib-2.0 gmodule-2.0 gthread-2.0`
|
|
|
|
GLIB12_INCLUDE = `glib-config --cflags`
|
|
GLIB12_LIB = `glib-config --libs glib gmodule`
|
|
|
|
FLAGS = -O2 $(PKG_INCLUDE)
|
|
|
|
ifeq ($(glib12),1)
|
|
FLAGS = -O2 $(GLIB12_INCLUDE)
|
|
endif
|
|
ifeq ($(glib12),yes)
|
|
FLAGS = -O2 $(GLIB12_INCLUDE)
|
|
endif
|
|
FLAGS += $(GTOP_INCLUDE) $(PTHREAD_INC) -I.. -I$(SHARED_PATH) -DGKRELLM_SERVER
|
|
|
|
LIBS = $(PKG_LIB)
|
|
ifeq ($(glib12),1)
|
|
LIBS = $(GLIB12_LIB)
|
|
endif
|
|
ifeq ($(glib12),yes)
|
|
LIBS = $(GLIB12_LIB)
|
|
endif
|
|
LIBS += $(GTOP_LIBS_D) $(SYS_LIBS) $(SENSORS_LIBS)
|
|
|
|
ifeq ($(debug),1)
|
|
FLAGS += -g
|
|
endif
|
|
ifeq ($(debug),yes)
|
|
FLAGS += -g
|
|
endif
|
|
|
|
ifeq ($(profile),1)
|
|
FLAGS += -g -pg
|
|
endif
|
|
ifeq ($(profile),yes)
|
|
FLAGS += -g -pg
|
|
endif
|
|
|
|
ifeq ($(enable_nls),1)
|
|
FLAGS += -DENABLE_NLS -DLOCALEDIR=\"$(LOCALEDIR)\"
|
|
endif
|
|
ifeq ($(enable_nls),yes)
|
|
FLAGS += -DENABLE_NLS -DLOCALEDIR=\"$(LOCALEDIR)\"
|
|
endif
|
|
|
|
ifneq ($(PACKAGE_D),gkrellmd)
|
|
FLAGS += -DPACKAGE_D=\"$(PACKAGE_D)\"
|
|
endif
|
|
|
|
ifeq ($(HAVE_GETADDRINFO),1)
|
|
FLAGS += -DHAVE_GETADDRINFO
|
|
endif
|
|
|
|
OS_NAME=$(shell uname -s)
|
|
OS_RELEASE=$(shell uname -r)
|
|
|
|
OBJS = main.o monitor.o mail.o plugins.o glib.o utils.o sysdeps-unix.o log.o
|
|
|
|
all: gkrellmd
|
|
|
|
gkrellmd: $(OBJS) $(EXTRAOBJS)
|
|
$(CC) $(OBJS) $(EXTRAOBJS) -o gkrellmd \
|
|
$(LDFLAGS) $(LIBS) $(LINK_FLAGS)
|
|
|
|
static: $(OBJS) $(EXTRAOBJS)
|
|
$(CC) $(OBJS) $(EXTRAOBJS) -o gkrellmd.static -static \
|
|
$(LDFLAGS) $(LIBS) $(LINK_FLAGS)
|
|
|
|
freebsd2:
|
|
$(MAKE) EXTRAOBJS= SYS_LIBS="-lkvm -lmd" gkrellmd
|
|
|
|
freebsd3 freebsd:
|
|
$(MAKE) EXTRAOBJS= SYS_LIBS="-lkvm -ldevstat -lmd" gkrellmd
|
|
|
|
# Darwin target for systems that still have libkvm
|
|
darwin:
|
|
$(MAKE) STRIP= HAVE_GETADDRINFO=1 \
|
|
EXTRAOBJS= \
|
|
SYS_LIBS="-framework CoreFoundation -framework IOKit -lkvm" \
|
|
LINK_FLAGS="-Wl,-bind_at_load" \
|
|
gkrellmd
|
|
|
|
# Darwin 9.x and newer (OS X > 10.4) do not have libkvm, build without it
|
|
darwin9:
|
|
$(MAKE) STRIP= HAVE_GETADDRINFO=1 \
|
|
EXTRAOBJS= \
|
|
SYS_LIBS="-framework CoreFoundation -framework IOKit" \
|
|
LINK_FLAGS="-Wl,-bind_at_load" \
|
|
gkrellmd
|
|
|
|
# Same as darwin9
|
|
macosx: darwin9
|
|
|
|
netbsd1:
|
|
$(MAKE) EXTRAOBJS= SYS_LIBS="-lkvm" gkrellmd
|
|
|
|
netbsd2:
|
|
$(MAKE) EXTRAOBJS= SYS_LIBS="-lkvm -pthread" gkrellmd
|
|
|
|
openbsd:
|
|
$(MAKE) SYS_LIBS="-lkvm -pthread" gkrellmd
|
|
|
|
solaris:
|
|
ifeq ($(OS_RELEASE),5.8)
|
|
$(MAKE) CFLAGS="-Wno-implicit-int" \
|
|
SYS_LIBS="-lkstat -lkvm -ldevinfo -lsocket -lnsl -lintl" \
|
|
LINK_FLAGS="" gkrellmd
|
|
else
|
|
$(MAKE) CFLAGS="-Wno-implicit-int" \
|
|
SYS_LIBS="-lkstat -lkvm -ldevinfo -lsocket -lnsl" \
|
|
LINK_FLAGS="" gkrellmd
|
|
endif
|
|
|
|
windows: libgkrellmd.a
|
|
$(MAKE) \
|
|
CFLAGS="${CFLAGS} -D_WIN32_WINNT=0x0501 -DWINVER=0x0501 -DWIN32_LEAN_AND_MEAN" \
|
|
LINK_FLAGS="${LINK_FLAGS} -mconsole" \
|
|
EXTRAOBJS="${EXTRAOBJS} win32-resource.o win32-plugin.o" \
|
|
SYS_LIBS="-lws2_32 -lwtsapi32 -lpdh -lnetapi32 -liphlpapi -lintl" \
|
|
gkrellmd
|
|
|
|
install: install_bin install_inc install_man
|
|
|
|
install_bin:
|
|
$(INSTALL) -d -m $(INSTALLDIRMODE) $(SINSTALLDIR)
|
|
$(INSTALL) -c $(STRIP) -m $(BINMODE) $(PACKAGE_D)$(BINEXT) $(SINSTALLDIR)/$(PACKAGE_D)$(BINEXT)
|
|
|
|
install_inc:
|
|
$(INSTALL) -d -m $(INCLUDEDIRMODE) $(INCLUDEDIR)/gkrellm2
|
|
$(INSTALL) -c -m $(INCLUDEMODE) $(GKRELLMD_INCLUDES) $(INCLUDEDIR)/gkrellm2
|
|
|
|
install_man:
|
|
$(INSTALL) -d -m $(MANDIRMODE) $(SMANDIR)
|
|
$(INSTALL) -c -m $(MANMODE) ../gkrellmd.1 $(SMANDIR)/$(PACKAGE_D).1
|
|
|
|
install_cfg:
|
|
$(INSTALL) -d -m $(CFGDIRMODE) $(CFGDIR)
|
|
$(INSTALL) -c -m $(CFGMODE) gkrellmd.conf $(CFGDIR)/gkrellmd.conf
|
|
|
|
uninstall:
|
|
rm -f $(SINSTALLDIR)/$(PACKAGE_D)
|
|
rm -f $(SMANDIR)/$(PACKAGE_D).1
|
|
|
|
install_darwin install_darwin9 install_macosx:
|
|
$(MAKE) install STRIP=
|
|
|
|
install_freebsd:
|
|
$(MAKE) install
|
|
chgrp kmem $(SINSTALLDIR)/$(PACKAGE_D)
|
|
chmod g+s $(SINSTALLDIR)/$(PACKAGE_D)
|
|
|
|
install_netbsd:
|
|
$(MAKE) SMANDIR="$(INSTALLROOT)/man/man1" install
|
|
|
|
install_openbsd:
|
|
$(MAKE) install
|
|
chgrp kmem $(SINSTALLDIR)/$(PACKAGE_D)
|
|
chmod g+sx $(SINSTALLDIR)/$(PACKAGE_D)
|
|
|
|
install_solaris:
|
|
$(MAKE) install INSTALL=/usr/ucb/install
|
|
chgrp sys $(SINSTALLDIR)/$(PACKAGE_D)
|
|
chmod g+s $(SINSTALLDIR)/$(PACKAGE_D)
|
|
|
|
install_windows: install_inc install_cfg
|
|
$(MAKE) BINEXT=".exe" install_bin
|
|
$(INSTALL) -d -m $(LIBDIRMODE) $(LIBDIR)
|
|
$(INSTALL) -c -m $(BINMODE) libgkrellmd.a $(LIBDIR)
|
|
|
|
clean:
|
|
$(RM) *.o *~ *.bak configure.h configure.log gkrellmd gkrellmd.exe \
|
|
libgkrellmd.a core
|
|
|
|
SYSDEPS = ../src/sysdeps/bsd-common.c ../src/sysdeps/bsd-net-open.c \
|
|
../src/sysdeps/darwin.c \
|
|
../src/sysdeps/freebsd.c ../src/sysdeps/gtop.c \
|
|
../src/sysdeps/linux.c ../src/sysdeps/netbsd.c \
|
|
../src/sysdeps/openbsd.c ../src/sysdeps/sensors-common.c \
|
|
../src/sysdeps/solaris.c ../src/sysdeps/win32.c
|
|
|
|
GKRELLMD_H = gkrellmd.h gkrellmd-private.h
|
|
|
|
main.o: main.c $(GKRELLMD_H)
|
|
monitor.o: monitor.c $(GKRELLMD_H)
|
|
mail.o: mail.c $(GKRELLMD_H)
|
|
plugins.o: plugins.c $(GKRELLMD_H)
|
|
glib.o: glib.c $(GKRELLMD_H)
|
|
utils.o: utils.c $(GKRELLMD_H)
|
|
sysdeps-unix.o: sysdeps-unix.c ../src/gkrellm-sysdeps.h $(SYSDEPS) $(GKRELLMD_H)
|
|
log.o: $(SHARED_PATH)/log.c $(SHARED_PATH)/log.h $(GKRELLMD_H)
|
|
win32-gui.o: win32-gui.c
|
|
win32-plugin.o: win32-plugin.c win32-plugin.h $(GKRELLMD_H)
|
|
win32-resource.o: win32-resource.rc win32-resource.h
|
|
$(WINDRES) $< -o $@
|
|
win32-libgkrellmd.o: win32-libgkrellmd.c win32-plugin.h $(GKRELLMD_H)
|
|
libgkrellmd.a: win32-libgkrellmd.o
|
|
ar -cr libgkrellmd.a win32-libgkrellmd.o
|
|
|
|
%.o: %.c
|
|
$(CC) -c -Wall $(FLAGS) $(CFLAGS) $(CPPFLAGS) $< -o $@
|