############################################
#
#	mp (MedPro 3.0.x) makefile
#
############################################
# -*- Mode: sh

VERSION=3.1.8
PREFIX=/usr/local
SYSTEM=AUTODETECT
CURSES=ncurses
LANG_FILE=\"mp_msg_en.h\"
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


# semi-automatic language selection

ifeq ($(LANG),spanish)
	LANG_FILE=\"mp_msg_es.h\"
endif
ifeq ($(LANG),ES)
	LANG_FILE=\"mp_msg_es.h\"
endif
ifeq ($(LANG),es_ES)
	LANG_FILE=\"mp_msg_es.h\"
endif
ifeq ($(LANG),es)
	LANG_FILE=\"mp_msg_es.h\"
endif

DEFS=-DVERSION="\"$(VERSION)\"" -DLANG_FILE="$(LANG_FILE)"


# lccwin32 lrc language selection

ifdef LANG
	LRC_LANG=$(LANG)
else
	LRC_LANG=english
endif


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

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: mp_core.$(O) mp_synhi.$(O) mp_iface.$(O) $(VIDEO)
	$(CC) $(DEFS) $(CFLAGS) $(LDFLAGS) \
		mp_core.o mp_synhi.o mp_iface.o $(VIDEO) $(LIBS) -o mp

# Win32 binaries
wmp.exe: mp_core.obj mp_synhi.obj mp_iface.obj $(VIDEO) 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 /d$(LRC_LANG) mp_res.rc

gmp: mp_core.o mp_synhi.o mp_iface.o mpv_gtk.o
	$(CC) $(DEFS) $(CFLAGS) $(LDFLAGS) -lgdk -lgtk \
		mp_core.o mp_synhi.o mp_iface.o mpv_gtk.o $(LIBS) -o gmp


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

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

clean:
	$(RM) -f *.o *.obj mp *.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 wmp_es.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>'
