59 lines
1.9 KiB
Makefile
59 lines
1.9 KiB
Makefile
CSC=csc
|
|
|
|
default: prepare bytecode bytecode-dll native native-dll
|
|
|
|
prepare:
|
|
@$(OCAMLC) -c plugin.ml
|
|
@$(OCAMLOPT) -o plugin.cmxs -shared plugin.ml
|
|
|
|
bytecode:
|
|
@printf " ... testing 'bytecode':"
|
|
@if [ ! `which $(CSC) > /dev/null` ]; then \
|
|
echo " => passed"; \
|
|
else \
|
|
$(OCAMLC) -output-obj -o main.dll dynlink.cma main.ml entry.c; \
|
|
$(CSC) /out:main.exe main.cs; \
|
|
./main.exe > bytecode.result; \
|
|
diff -q bytecode.reference bytecode.result > /dev/null && echo " => passed" || echo " => failed"; \
|
|
fi
|
|
|
|
bytecode-dll:
|
|
@printf " ... testing 'bytecode-dll':"
|
|
@if [ ! `which $(CSC) > /dev/null` ]; then \
|
|
echo " => passed"; \
|
|
else \
|
|
$(OCAMLC) -output-obj -o main_obj.$(O) dynlink.cma entry.c main.ml; \
|
|
$(MKDLL) -maindll -o main.dll main_obj.$(O) entry.$(O) ../../byterun/libcamlrun.$(A) $(BYTECCLIBS) -v; \
|
|
$(CSC) /out:main.exe main.cs; \
|
|
./main.exe > bytecode.result; \
|
|
diff -q bytecode.reference bytecode.result > /dev/null && echo " => passed" || echo " => failed"; \
|
|
fi
|
|
|
|
native:
|
|
@printf " ... testing 'native':"
|
|
@if [ ! `which $(CSC) > /dev/null` ]; then \
|
|
echo " => passed"; \
|
|
else \
|
|
$(OCAMLOPT) -output-obj -o main.dll dynlink.cmxa entry.c main.ml; \
|
|
$(CSC) /out:main.exe main.cs; \
|
|
./main.exe > native.result; \
|
|
diff -q native.reference native.result > /dev/null && echo " => passed" || echo " => failed"; \
|
|
fi
|
|
|
|
native-dll:
|
|
@printf " ... testing 'native-dll':"
|
|
@if [ ! `which $(CSC) > /dev/null` ]; then \
|
|
echo " => passed"; \
|
|
else \
|
|
$(OCAMLOPT) -output-obj -o main_obj.$(O) dynlink.cmxa entry.c main.ml; \
|
|
$(MKDLL) -maindll -o main.dll main_obj.$(O) entry.$(O) ../../asmrun/libasmrun.lib -v; \
|
|
$(CSC) /out:main.exe main.cs; \
|
|
./main.exe > native.result; \
|
|
diff -q native.reference native.result > /dev/null && echo " => passed" || echo " => failed"; \
|
|
fi
|
|
|
|
clean: defaultclean
|
|
@rm -f *.result *.exe *.dll
|
|
|
|
include ../../makefiles/Makefile.common
|