# --------------------------------------------------------------------------
# rdj Makefile

# Uncomment if you want debug info
#CFLAGS = -DDEBUG

# L A N G U A G E (Please read ../Languages)
# If you want to use another supported language, modify LANG:
# On the command line use: make LANG=<language name> rdj
# You can choose from: czech, deutsch, dutch, espanol, english, italiano, russian, turkiye
# LANG = <language name>
LANG = english
# --------------------------------------------------------------------------
CC = gcc

VER1 = 0
VER2 = 3
VER3 = 2

CHKLIRC   = ../po/checklirc.sh
# use when compiling for rdj without lirc support (good for making RPMs)
#CHKLIRC   = ../po/dummycheck.sh
MKSPEC    = ../po/mkspec.sh
MKALLRPM  = ../po/mkallrpm.pl
MKLIST    = ../po/mklist.pl

DOTVERS   = $(VER1).$(VER2).$(VER3)
VERSION   = '"rdj v$(DOTVERS)"'
DISTNAME  = rdj-$(DOTVERS)
DISTDIR   = rdj`$(CHKLIRC) rpm`-$(DOTVERS)
WEBDIR    = /home/d/web/sf/rdj/

CFLAGS   += -Wall -O2 -I../include
GFLAGS    = `gnome-config --cflags gnomeui`
LIBS      = `gnome-config --libs gnomeui`
DEFINES   = -D$(LANG) -DVERSIONSTR=$(VERSION)

LANGFILES = ../include/lang.english.h ../include/lang.deutsch.h ../include/lang.turkiye.h ../include/lang.italiano.h ../include/lang.russian.h ../include/lang.dutch.h ../include/lang.czech.h
HEADERS   = ../include/defines.h ../include/radioclass.h ../include/stationlist.h  ../include/externs.h ../include/config.h ../include/lang.h $(LANGFILES)

MODULES   = radioclass.o stationlist.o main.o callbacks.o globals.o lirc.o interface.o config.o
TERM_MODS = radioclass.o stationlist.o config.o globals.o

BINARIES  = rdj rdj_term rdj_scan fscan

INSTALLDIR   = /usr/share/rdj
BINDIR       = /usr/bin
DESKTOPGNOME = /usr/share/gnome/apps/Multimedia
DESKTOPKDE   = /usr/share/applnk/Multimedia

all:
	@$(MKLIST)

rdj: $(MODULES) fscan rdj_term rdj_scan
	$(CC) $(LIBS) `$(CHKLIRC) lib` -o rdj $(MODULES)
	strip $(BINARIES)

rdj_term: rdj_term.cc $(TERM_MODS)
	$(CC) $(CFLAGS) $(LIBS) -o rdj_term rdj_term.cc $(TERM_MODS)

rdj_scan: rdj_scan.cc radioclass.o
	$(CC) $(GFLAGS) $(CFLAGS) $(LIBS) -o rdj_scan rdj_scan.cc radioclass.o

callbacks.o: callbacks.cc ../include/callbacks.h $(HEADERS)
	$(CC) $(GFLAGS) $(CFLAGS) $(DEFINES) -o callbacks.o -c callbacks.cc

interface.o: interface.cc ../include/interface.h $(HEADERS)
	$(CC) $(GFLAGS) $(CFLAGS) $(DEFINES) -o interface.o -c interface.cc

main.o: main.cc ../include/main.h $(HEADERS)
	$(CC) $(GFLAGS) $(CFLAGS) $(DEFINES) -o main.o -c main.cc

globals.o: globals.cc $(HEADERS)
	$(CC) $(GFLAGS) $(CFLAGS) $(DEFINES) -o globals.o -c globals.cc

config.o: config.cc ../include/config.h
	$(CC) $(GFLAGS) $(CFLAGS) $(DEFINES) -o config.o -c config.cc

lirc.o: lirc.cc ../include/lirc.h
	$(CC) $(GFLAGS) $(CFLAGS) $(DEFINES) `$(CHKLIRC)` -o lirc.o -c lirc.cc

radioclass.o: ../include/radioclass.h radioclass.cc
	$(CC) $(CFLAGS) -o radioclass.o -c radioclass.cc

stationlist.o: stationlist.cc ../include/stationlist.h
	$(CC) $(CFLAGS) -o stationlist.o -c stationlist.cc

fscan: fscan.cc radioclass.o
	$(CC) $(CFLAGS) -o fscan fscan.cc radioclass.o -lm

# -- test programs --
simple: simple.cc radioclass.o
	$(CC) $(CFLAGS) -o simple simple.cc radioclass.o -lm

stat: stat.cc stationlist.o
	$(CC) $(CFLAGS) -lm -o stat stat.cc stationlist.o
# --

cleanit:
	rm -f *~ ../*~ ../include/*~ ../po/*~ ../xpm/*~

clean: cleanit
	rm -f *.o stat core simple ../rdj.spec $(BINARIES) fscan.txt

install: rdj cleanit
	cp $(BINARIES) $(BINDIR)
	cp ../rdj.desktop $(DESKTOPGNOME)
	cp ../rdj.kdelnk $(DESKTOPKDE)
	(mkdir $(INSTALLDIR); cd ..; cp -Rf * $(INSTALLDIR))
	cp -f ../rdj.1 /usr/local/man/man1

me: rpm
	cp /usr/src/RPM/RPMS/i586/$(DISTDIR)-$(LANG).i586.rpm $(WEBDIR)
	chown d.d $(WEBDIR)$(DISTDIR)-$(LANG).i586.rpm

rpm: clean install
	$(MKSPEC) $(LANG) $(DOTVERS)
	rpm -bb ../rdj.spec

distro: clean
	(cd ..; find . -name '.thumbnails' -exec rm -fr {} \;; find . -name '.nautilus-metafile.xml' -exec rm -fr {} \;; find . -name '.pics' -exec rm -fr {} \;;)
	(cd ../../; tar cvfz $(DISTNAME).tgz rdj-$(DOTVERS)/)
	(cd ../../; tar cvfz rdj-icons.tgz icons-rdj/)
	cp ../../$(DISTNAME).tgz ../../rdj-icons.tgz ../ChangeLog $(WEBDIR)
	mv ../../$(DISTNAME).tgz ../../rdj-icons.tgz ../../packages/

run: rdj
	./rdj
