# Copyright 2009 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

include ../../Make.conf

TARG=\
	5l\

OFILES=\
	asm.$O\
	elf.$O\
	enam.$O\
	lib.$O\
	list.$O\
	noop.$O\
	obj.$O\
	optab.$O\
	pass.$O\
	thumb.$O\
	softfloat.$O\
	span.$O\
	go.$O\

HFILES=\
	l.h\
	../5l/5.out.h\
	../ld/elf.h\

$(TARG): $(OFILES)
	$(LD) -o $(TARG) -L"$(GOROOT)"/lib $(OFILES) -lbio -l9

$(OFILES): $(HFILES)

enam.c: 5.out.h
	sh mkenam

clean:
	rm -f *.o $(TARG) *.5 enam.c 5.out a.out

install: $(TARG)
	cp $(TARG) "$(GOBIN)"/$(TARG)

%.$O: ../ld/%.c
	$(CC) $(CFLAGS) -c -I. ../ld/$*.c
