#!/usr/bin/python

# Matlab-to-CI Makefile generator
# Written by Boris Buegling <boris@icculus.org>
# Licensed under the GNU General Public License version 2.

import os, sys

def create (mfile, options='', addlibs='', prefix='.'):
	out = file('Makefile.'+mfile, 'w')
	out.write("""include %s/../ctl_config.mak
include %s/../config.mak

CXXFLAGS+=-I%s

.PHONY: all clean

all: mlab_moongoo.exe mlab_moongoo.so

clean:
	rm -rf libmoongoo_mcr
	rm -f mlab_* libmoongoo* mcc*.log

mlab_moongoo.o: %s/matlab.h libmoongoo.so

mlab_moongoo.exe: mlab_moongoo.o mlab_moongoo.h libmoongoo.so
	$(CXX) $(CXXFLAGS) $< $(LDFLAGS) $(LDLIBS) $(PWD)/libmoongoo.so %s -o $@

mlab_moongoo.so: mlab_moongoo.o mlab_moongoo.h libmoongoo.so
	$(CXX) $(SHARED) $< $(LDFLAGS) $(LDLIBS) $(PWD)/libmoongoo.so %s -o $@

mlab_moongoo.cpp: moongoo.m %s/dotm2cpp.py
	%s/dotm2cpp.py $(M2FLAGS) foobar $<

libmoongoo.so: moongoo.m
	$(MCC) -W cpplib:libmoongoo -T link:lib $<
""".replace('moongoo', mfile).replace('foobar', options) % \
		(prefix, prefix, prefix, prefix, addlibs, addlibs, prefix, prefix))
	out.close()

if __name__ == '__main__':
	if len(sys.argv) < 2:
		print >>sys.stderr, 'Usage:\n\t%s m-file' % sys.argv[0]
		sys.exit(1)

	addlibs, options = '', ''
	for opt in sys.argv[1:-1]:
		for myopt in ['-s']:
			if opt.startswith(myopt):
				options += opt+' '
		if opt.startswith('-u'):
			options += opt+' '
			addlibs += '-l%s' % opt[2:]
			create(opt[2:])

	prefix = os.path.dirname(sys.argv[0])
	mfile = sys.argv[-1].replace('.m', '')
	create(mfile, options=options, addlibs=addlibs, prefix=prefix)
