xa65 is a 6502 cross assembler, running on Unix (and Unix-alikes), and producing 6502 and 65816 code. It comes complete with a set of tools.
xa65 was originally authored by me, André Fachat, but currently and still xa65 is maintained by Cameron Kaiser at http://www.floodgap.com/retrotech/xa/ .