
PREFIX=/usr/local

GTK_INCLUDE = `gtk-config --cflags`
GTK_LIB = `gtk-config --libs`
IMLIB_INCLUDE = `imlib-config --cflags-gdk`
IMLIB_LIB = `imlib-config --libs-gdk`

CFLAGS += $(GTK_INCLUDE) $(IMLIB_INCLUDE)
LDFLAGS = $(GTK_LIB) $(IMLIB_LIB)

#The following commented out lines are for replacing the stock defines on
#the named platforms.

#for IRIX
#LDFLAGS = $(GTK_LIB) $(IMLIB_LIB) -laudio

CC = gcc -Wall

GNOME_PREFIX = `gnome-config --prefix`

# objects for players

P_MPG123_OBJS = io_mpg123.o \
		io_mpg123_cfg.o \
		mpg_hdrutil.o \
		mpg_info.o \
		mpg_tagutil.o

PLAYER_OBJS =	$(P_MPG123_OBJS)

# base objects

OBJS =		btn_funcs.o \
		config.o \
		cpu_perc.o \
		display.o \
		dndutil.o \
		dock.o \
		filelist.o \
		fileops.o \
		globals.o \
		ipc.o \
		main.o \
		menus.o \
		mixer.o \
		pathsel.o \
		players.o \
		playlist-dlg.o \
		playlist-window.o \
		playlist.o \
		rcfile.o \
		skindef.o \
		skinui.o \
		skinutil.o \
		skinwamp.o \
		songinfo.o \
		tabcomp.o \
		types.o \
		utildlg.o \
		utilops.o \
		window.o \
		$(PLAYER_OBJS)

# list of file dependencies for the default skin

SKIN_PIXMAPS =  default_skin/background.xpm \
		default_skin/background_sm.xpm \
		default_skin/btn_config.xpm \
		default_skin/btn_exit.xpm \
		default_skin/btn_iconify.xpm \
		default_skin/btn_mixer.xpm \
		default_skin/btn_mode.xpm \
		default_skin/btn_mode_sm.xpm \
		default_skin/btn_next.xpm \
		default_skin/btn_next_sm.xpm \
		default_skin/btn_p1.xpm \
		default_skin/btn_p2.xpm \
		default_skin/btn_p3.xpm \
		default_skin/btn_p4.xpm \
		default_skin/btn_p5.xpm \
		default_skin/btn_p6.xpm \
		default_skin/btn_p7.xpm \
		default_skin/btn_p8.xpm \
		default_skin/btn_pause.xpm \
		default_skin/btn_pause_sm.xpm \
		default_skin/btn_play.xpm \
		default_skin/btn_play_sm.xpm \
		default_skin/btn_playlist.xpm \
		default_skin/btn_prev.xpm \
		default_skin/btn_prev_sm.xpm \
		default_skin/btn_repeat.xpm \
		default_skin/btn_shuffle.xpm \
		default_skin/btn_stop.xpm \
		default_skin/btn_stop_sm.xpm \
		default_skin/digbig.xpm \
		default_skin/digmed.xpm \
		default_skin/digsml.xpm \
		default_skin/layer.xpm \
		default_skin/letters.xpm \
		default_skin/letters_sm.xpm \
		default_skin/mode.xpm \
		default_skin/mpegver.xpm \
		default_skin/posbar.xpm \
		default_skin/repeat.xpm \
		default_skin/repeat_sm.xpm \
		default_skin/shuffle.xpm \
		default_skin/shuffle_sm.xpm \
		default_skin/stereo.xpm \
		default_skin/volume.xpm \
		default_skin/volume_sl.xpm

# targets:

gqmpeg: $(OBJS)
	$(CC) $(OBJS) -o gqmpeg $(LDFLAGS)

static: $(OBJS)
	$(CC) $(OBJS) -o gqmpeg.static -static $(LDFLAGS)

install: gqmpeg
	install -c gqmpeg $(PREFIX)/bin/gqmpeg
	install -c plugin/gqmpeg-shoutcast-plugin.sh $(PREFIX)/bin/gqmpeg-shoutcast-plugin.sh

gnome-install: gqmpeg
	install -c gqmpeg $(PREFIX)/bin/gqmpeg
	install -c gqmpeg.desktop $(GNOME_PREFIX)/share/gnome/apps/Multimedia/gqmpeg.desktop
	install -c gqmpeg.png $(GNOME_PREFIX)/share/pixmaps/gqmpeg.png

uninstall:
	rm -f $(PREFIX)/bin/gqmpeg
	rm -f $(PREFIX)/bin/gqmpeg-shoutcast-plugin.sh

gnome-uninstall:
	rm -f $(PREFIX)/bin/gqmpeg
	rm -f $(PREFIX)/bin/gqmpeg-shoutcast-plugin.sh
	rm -f $(GNOME_PREFIX)/share/gnome/apps/Multimedia/gqmpeg.desktop
	rm -f $(GNOME_PREFIX)/share/pixmaps/gqmpeg.png

clean:
	rm -f *.o *~ gqmpeg gqmpeg.static core

dist_clean:
	rm -f *.o *~ gqmpeg gqmpeg.static core config.h

# dependencies:

config.h : Makefile
	echo "#define GQMPEG_GLOBAL_SKIN_DIR \"$(PREFIX)/share/gqmpeg/skins\"" > config.h

btn_funcs.o : btn_funcs.c gqmpeg.h
config.o : config.c gqmpeg.h config.h
cpu_perc.o : cpu_perc.c gqmpeg.h
display.o : display.c gqmpeg.h
dndutil.o : dndutil.c gqmpeg.h
dock.o : dock.c gqmpeg.h
filelist.o : filelist.c gqmpeg.h
fileops.o : fileops.c gqmpeg.h
globals.o : globals.c gqmpeg.h
ipc.o : ipc.c gqmpeg.h
main.o : main.c gqmpeg.h config.h
menus.o : menus.c gqmpeg.h
mixer.o : mixer.c gqmpeg.h
pathsel.o : pathsel.c gqmpeg.h
players.o : players.c players.h gqmpeg.h
playlist-dlg.o : playlist-dlg.c utildlg.h gqmpeg.h
playlist-window.o : playlist-window.c gqmpeg.h
playlist.o : playlist.c gqmpeg.h
rcfile.o : rcfile.c gqmpeg.h
skindef.o : skindef.c gqmpeg.h $(SKIN_PIXMAPS)
skinui.o : skinui.c gqmpeg.h
skinutil.o : skinutil.c gqmpeg.h
skinwamp.o : skinwamp.c gqmpeg.h
songinfo.o : songinfo.c gqmpeg.h
tabcomp.o : tabcomp.c gqmpeg.h tabcomp.xpm
types.o : types.c gqmpeg.h
utildlg.o : utildlg.c utildlg.h gqmpeg.h
utilops.o : utilops.c utildlg.h gqmpeg.h
window.o : window.c gqmpeg.h

# dependencies for player modules

io_mpg123.o : io_mpg123.c io_mpg123.h gqmpeg.h players.h
io_mpg123_cfg.o : io_mpg123_cfg.c io_mpg123.h gqmpeg.h
mpg_hdrutil.o : mpg_hdrutil.c io_mpg123.h gqmpeg.h
mpg_tagutil.o : mpg_tagutil.c io_mpg123.h gqmpeg.h
mpg_info.o : mpg_info.c io_mpg123.h gqmpeg.h

