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 $@
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 $@
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)