diff --git a/Makefile b/Makefile index 7f0f8be2ba..ea67590c3c 100644 --- a/Makefile +++ b/Makefile @@ -36,21 +36,27 @@ LDFLAGS+=-p main.o: CFLAGS+=-p endif -OBJS= elfload.o main.o thunk.o syscall.o -OBJS+=translate-i386.o op-i386.o exec-i386.o +OBJS= elfload.o main.o thunk.o syscall.o libgemu.a + +LIBOBJS+=translate-i386.o op-i386.o exec-i386.o # NOTE: the disassembler code is only needed for debugging -OBJS+=i386-dis.o dis-buf.o +LIBOBJS+=i386-dis.o dis-buf.o SRCS = $(OBJS:.o=.c) all: gemu gemu: $(OBJS) - $(CC) -Wl,-T,$(LDSCRIPT) $(LDFLAGS) -o $@ $^ $(LIBS) + $(CC) -Wl,-T,$(LDSCRIPT) $(LDFLAGS) -o $@ $^ $(LIBS) depend: $(SRCS) $(CC) -MM $(CFLAGS) $^ 1>.depend -# new i386 emulator +# libgemu + +libgemu.a: $(LIBOBJS) + rm -f $@ + $(AR) rcs $@ $(LIBOBJS) + dyngen: dyngen.c $(HOST_CC) -O2 -Wall -g $< -o $@ @@ -67,11 +73,14 @@ op-i386.o: op-i386.c opreg_template.h ops_template.h clean: $(MAKE) -C tests clean - rm -f *.o *~ gemu dyngen TAGS + rm -f *.o *.a *~ gemu dyngen TAGS distclean: clean rm -f config.mak config.h +install: gemu + install -m755 -s gemu $(prefix)/bin + # various test targets test speed: gemu make -C tests $@ @@ -89,8 +98,9 @@ dis-buf.c i386-dis.c opreg_template.h syscall_defs.h\ i386.ld ppc.ld exec-i386.h exec-i386.c configure VERSION \ tests/Makefile\ tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\ -tests/test-i386-muldiv.h\ -tests/test2.c tests/hello.c tests/hello tests/sha1.c +tests/test-i386-muldiv.h tests/test-i386-code16.S\ +tests/hello.c tests/hello tests/sha1.c \ +tests/testsig.c tests/testclone.c tests/testthread.c FILE=gemu-$(VERSION)