#

ifdef MINGW32
MINGW32:=$(shell cygpath -u "$(MINGW32)")
NATIVE_CLASSPATH:=$(shell cygpath -m "$(CLASSPATH)")
POSIX_CLASSPATH:=$(shell cygpath -p "$(CLASSPATH)")
J2SDK:=$(shell cygpath -u "$(J2SDK)")
SWROOTDIR:=$(shell cygpath -u "$(SWROOTDIR)")
PACKAGEDIR:=$(shell cygpath -p "$(PACKAGEDIR)")
PUBLISHDIR:=$(shell cygpath -p "$(PUBLISHDIR)")
SILABS:=$(shell cygpath -u "$(SILABS)")
PATH:=$(MINGW32)/bin:$(J2SDK)/bin:$(PATH)
CXX=$(MINGW32)/../../../bin/x86_64-w64-mingw32-g++
INCLUDES=-I. -I$(SWROOTDIR)/include -I$(J2SDK)/include -I$(J2SDK)/include/win32
CXXFLAGS=-m64 $(INCLUDES)
else
NATIVE_CLASSPATH:=$(CLASSPATH)
POSIX_CLASSPATH:=$(CLASSPATH)
PATH:=$(J2SDK)/bin:$(PATH)
INCLUDES=-I. -I$(SWROOTDIR)/include -I$(J2SDK)/include -I$(J2SDK)/include/linux
CXXFLAGS=$(INCLUDES) -fPIC
endif

CFLAGS=$(INCLUDES)
LDFLAGS=$(INCLUDES) -L. -L$(SWROOTDIR)/bin -L$(SWROOTDIR)/lib

vpath %.class cbhep/cosmix
vpath %.class cbsw/lhcb
vpath %.class cbsw/gui
vpath % $(SWROOTDIR)/bin

.SUFFIXES: .class .java .cpp .rc .cpp .c .a .o .dll .h .def .so .jar

.java.class:
	javac $*.java -d . -Xlint:unchecked -Xlint:deprecation

.o.def:
	dlltool -z tmp.def $*.o
	sed -e 's/ . [^\n]*//' -e '/Java/p' -e 's/Java[^ ]*/_&=&/' <tmp.def >$*.def

.def.dll:
	$(CXX) $(LDFLAGS) -mdll -m64 -Wl,--base-file,mydll.base -o $@ $*.def $*.o

cbsw_instrument_%.h: %.class
	javah cbsw.instrument.$*

cbsw_instrument_adept_%.h: %.class
	javah cbsw.instrument.adept.$*

cbsw_lhcb_%.h: %.class
	javah cbsw.lhcb.$*

cbhep_cosmix_%.h: %.class
	javah cbsw.lhcb.$*

lib%.so: %.cpp
	$(CXX) $(LDFLAGS) -shared -o $@ $*.cpp -fPIC

