##==-- test/Programs/SingleSource/Makefile.singlesrc -----*- makefile -*--====##
#
#                     The LLVM Compiler Infrastructure
#
# This file was developed by the LLVM research group and is distributed under
# the University of Illinois Open Source License. See LICENSE.TXT for details.
#
##===----------------------------------------------------------------------===##

# rule to build raw bytecode from a classfile
%.raw.bc: %.class $(CLASS2LLVM)
	$(Echo) Compiling $< to bytecode
	-$(Verb)$(CLASS2LLVM) \
	  -cp $(CLASSPATH_JAVA_LIBRARY_PATH):$(CLASSPATH):Output \
	  $(subst /,.,$(*F)) -o=$@

GCCAS_PASS_ARGS := $(shell \
	 $(GCCAS) 2>&1 < /dev/null > /dev/null -debug-pass=Arguments | \
			grep 'Pass Arguments' | \
			sed 's/Pass Arguments: //')

# rule to run gccas passes on raw bytecode
%.linked.bc: %.raw.bc $(GCCAS)
	$(Echo) Optimizing $<
	-$(Verb)$(LOPT) $(GCCAS_PASS_ARGS) -f -o=$@ $<

include $(LEVEL)/test/Makefile.test
