############################################
#
#	Minimum Profit makefile
#
############################################
# -*- Mode: sh

VERSION=3.1.11
PREFIX=/usr/local
SYSTEM=AUTODETECT
CURSES=ncurses
DOCPATH=doc/mp_api
DOCFLAGS=
DOCFORMAT=html1

ifeq ($(SYSTEM),AUTODETECT)
	ifdef DJGPP
		SYSTEM=WIN32
	else
	ifeq ($(OSTYPE),win32)
		SYSTEM=WIN32
	else
	ifeq ($(OSTYPE),beos)
		SYSTEM=BEOS
	else
		SYSTEM=GNU
	endif
	endif
	endif
endif

ifeq ($(SYSTEM),GNU)
	CC=gcc -g -Wall
	OBJFLAGS=-c
	VIDEO=mpv_curses.o
	LIBS=-l$(CURSES)
	RM=-rm
	BIN=mp
	O=o
endif

ifeq ($(SYSTEM),WIN32)
	CC=lcc -O
	OBJFLAGS=
	VIDEO=mpv_win32.obj
	LIBS=
	BIN=wmp.exe
	RM=-del
	O=obj
endif

ifeq ($(SYSTEM),BEOS)
	CC=gcc -g -Wall -DWITHOUT_GLOB -DPOOR_MAN_BOXES -I/boot/home/config/include
	OBJFLAGS=-c
	VIDEO=mpv_curses.o
	LIBS=-L/boot/home/config/lib -l$(CURSES)
	RM=-rm
	BIN=mp
	O=o
endif

OBJS=mp_core.$(O) mp_synhi.$(O) mp_iface.$(O) mp_lang.$(O)
DEFS=-DVERSION="\"$(VERSION)\""


###############################################################

all: $(BIN)

# general rules
%.$(O): %.c
	$(CC) $(DEFS) $(CFLAGS) $(OBJFLAGS) $<

# dependencies
-include makefile.depend

dep:
	gcc $(DEFS) -MM *.c | sed -e 's/.o:/.$$(O):/' > makefile.depend

###############################################################

# Linux/Unix binaries
mp: $(OBJS) mpv_curses.$(O)
	$(CC) $(DEFS) $(CFLAGS) $(LDFLAGS) \
		$(OBJS) $(VIDEO) $(LIBS) -o mp

# Win32 binaries
wmp.exe: $(OBJS) mpv_win32.$(O) mp_res.res
	lcclnk -s *.obj mp_res.res -subsystem windows -version $(VERSION) -o wmp.exe

# Win32 resource file
mp_res.res: mp_res.rc mp_res.h
	lrc mp_res.rc

mpv_gtk.o: mpv_gtk.c
	$(CC) $(DEFS) `gtk-config --cflags` $(CFLAGS) $(OBJFLAGS) $<

gmp: $(OBJS) mpv_gtk.$(O)
	$(CC) $(DEFS) `gtk-config --cflags` $(CFLAGS) \
		`gtk-config --libs` $(LDFLAGS) \
		$(OBJS) mpv_gtk.$(O) $(LIBS) -o gmp


###############################################################

install:
	install -o root -m 0755 mp $(PREFIX)/bin
	$(MAKE) -C mp_doccer install

clean:
	$(RM) -f *.o *.obj mp gmp *.exe *.gz *.res tags localhelp.sh

docclean:
	rm -f doc/*.html man/*

dist: clean doc
	cd ..; ln -s mp mp-$(VERSION); \
	tar czvf mp-$(VERSION)/mp-$(VERSION).tar.gz mp-$(VERSION)/* ; \
	rm mp-$(VERSION)

win32dist:
	zip mp31x-win32.zip README COPYING Changelog mp.reg wmp.exe


###############################################################

.PHONY: doc
doc:
	mp_doccer *.c -o $(DOCPATH) -f $(DOCFORMAT) -t "The Minimum Profit API ($(VERSION))" -a 'Angel Ortega - <em>angel@triptico.com</em>' $(DOCFLAGS)

.PHONY: man
man:
	mp_doccer *.c -o man -f man -t "The Minimum Profit API ($(VERSION))" -a 'Angel Ortega <angel@triptico.com>' $(DOCFLAGS)

help:
	mp_doccer *.c -f localhelp -t "The Minimum Profit API ($(VERSION))" -a 'Angel Ortega <angel@triptico.com>'
