# Released under GPLv2 license terms, read LICENSE file

PREFIX=/usr

CC=gcc

# The version of psensor
PSENSOR_VERSION=0.4.4

# The installation directory of Psensor, it must contain psensor-32x-32.png
PSENSOR_DIR=${PREFIX}/share/psensor

PSENSOR_RELEASE_DIR=psensor-${PSENSOR_VERSION}

ARCH=x86_`getconf LONG_BIT`
ARCHIVE_SRC=psensor-${PSENSOR_VERSION}-src.tar.gz
ARCHIVE_BIN=psensor-${PSENSOR_VERSION}-${ARCH}-bin.tar.gz

################## PSensor UI ############################

PKG_CONFIG_LIBRARIES= gtk+-2.0 gthread-2.0 gconf-2.0
CC_D= -D PSENSOR_VERSION=\"${PSENSOR_VERSION}\" -D PSENSOR_DIR=\"${PSENSOR_DIR}\"
LD_OPTS= -lsensors

OBJS=main.o graph.o psensor.o ui_sensorlist.o config.o color.o hdd.o ui_color.o

# uncomments for compilation with nvidia thermal sensor support
#LD_OPTS+= /usr/lib/libXNVCtrl.a
#OBJS+= nvidia.o
#CC_D+= -D NVIDIA_SUPPORT

CC_OPTS=-Wall -O3 `pkg-config --cflags --libs ${PKG_CONFIG_LIBRARIES}` ${CC_D} 

################### PSensor Server ######################

OBJS_SERVER=server.o psensor.o server.o hdd.o
CC_D_SERVER= -D PSENSOR_VERSION=\"${PSENSOR_VERSION}\" -D PSENSOR_DIR=\"${PSENSOR_DIR}\"
LD_OPTS_SERVER= -lsensors

# uncomments for compilation with nvidia thermal sensor support
#OBJS_SERVER+= nvidia.o 
#CC_D_SERVER+= -D NVIDIA_SUPPORT
#LD_OPTS_SERVER+= -lX11 -lXext /usr/lib/libXNVCtrl.a

CC_OPTS_SERVER=-Wall -O3 ${CC_D_SERVER}

all:psensor psensor-server

%.o: src/%.c
	$(CC) -o $@ -c $< $(CC_OPTS)

clean:
	rm -f *.o
	rm -f psensor psensor-server ${ARCHIVE_SRC} ${ARCHIVE_BIN}

psensor: ${OBJS} 
	$(CC)  ${CC_OPTS}  -o  $@ $^ ${LD_OPTS}

psensor-server: ${OBJS_SERVER} 
	$(CC)  ${CC_OPTS_SERVER}  -o  $@ $^ ${LD_OPTS_SERVER}

install: psensor psensor-server
	mkdir -p ${PSENSOR_DIR}
	install -Dm755 psensor.desktop ${PREFIX}/share/applications
	install -Dm755 psensor psensor-server ${PREFIX}/bin
	install -Dm644 CHANGES README README.debian LICENSE psensor-32x32.png ${PSENSOR_DIR}

release-src:
	rm -rf ${PSENSOR_RELEASE_DIR}
	mkdir -p ${PSENSOR_RELEASE_DIR}/src
	cp src/*.h src/*.c ${PSENSOR_RELEASE_DIR}/src
	cp Makefile psensor.desktop psensor-32x32.png README README.debian CHANGES LICENSE ${PSENSOR_RELEASE_DIR}/
	tar --numeric-owner  -czvf  ${ARCHIVE_SRC} ${PSENSOR_RELEASE_DIR}

release-bin: all
	strip psensor
	strip psensor-server
	rm -rf ${PSENSOR_RELEASE_DIR}
	mkdir -p ${PSENSOR_RELEASE_DIR}/bin
	cp psensor-server psensor ${PSENSOR_RELEASE_DIR}/bin
	cp psensor.desktop psensor-32x32.png LICENSE README README.debian ${PSENSOR_RELEASE_DIR}/
	tar  --numeric-owner  -czvf  ${ARCHIVE_BIN} ${PSENSOR_RELEASE_DIR}
