# default values....
CSHARP_CC=$(CSHARP_PATH)/bin/mcs
MONO_JIT=$(CSHARP_PATH)/bin/mono
# common build environment
ifeq ($(NEOTONIC_ROOT),)
NEOTONIC_ROOT = ..
endif
include $(NEOTONIC_ROOT)/rules.mk
# our targets
TARGETS = clearsilver.dll cstest.exe csperftest.exe testcs
all: $(TARGETS)
clearsilver.dll: CS.cs
$(CSHARP_CC) -target:library -unsafe CS.cs -out:clearsilver.dll
cstest.exe: clearsilver.dll ../dso/libneo.so cstest.cs
$(CSHARP_CC) -r:clearsilver.dll -unsafe cstest.cs
csperftest.exe: clearsilver.dll ../dso/libneo.so csperftest.cs
$(CSHARP_CC) -r:clearsilver.dll -unsafe csperftest.cs
perf: csperftest.exe
export LD_LIBRARY_PATH=../dso; \
$(MONO_JIT) csperftest.exe
testcs: cstest.exe
@echo "Running csharp test"
@failed=0; \
rm -f cstest.out; \
export LD_LIBRARY_PATH=../dso; \
$(MONO_JIT) cstest.exe > cstest.out; \
diff cstest.out cstest.gold > /dev/null; \
return_code=$$?; \
if [ $$return_code -ne 0 ]; then \
diff cstest.out cstest.gold > cstest.err; \
echo "Failed csharp test: cstest.cs"; \
echo " See cstest.out and cstest.err"; \
failed=1; \
fi; \
if [ $$failed -eq 1 ]; then \
exit 1; \
fi;
@echo "Passed csharp test"
gold: cstest.exe
export LD_LIBRARY_PATH=../dso; \
$(MONO_JIT) cstest.exe > cstest.gold;
@echo "Generated gold files"
clean:
rm -f core.*
distclean:
rm -f $(TARGETS) core.* Makefile.depend