OBJECTS = x86-common.o
CFLAGS ?= -O2 -Wall -DDEBUG -g
LIBDIR ?= /usr/lib
INCLUDEDIR ?= /usr/include
LDFLAGS ?= -Wl,-z,now

ifeq ($(BACKEND),x86emu)
	OBJECTS += thunk.o x86emu/decode.o x86emu/debug.o x86emu/fpu.o \
	x86emu/ops.o x86emu/ops2.o x86emu/prim_ops.o x86emu/sys.o
	CFLAGS += -DX86EMU
else
	OBJECTS += lrmi.o
endif

ifeq ($(LIBRARY),shared)
	CFLAGS += -fPIC
endif

default:
	$(MAKE) LIBRARY=static static
	$(MAKE) objclean
	$(MAKE) LIBRARY=shared shared

static: $(OBJECTS)
	$(AR) cru libx86.a $(OBJECTS)

shared: $(OBJECTS)
	$(CC) $(CFLAGS) -o libx86.so.1 -shared $(LDFLAGS) -Wl,-soname,libx86.so.1 $(OBJECTS)

objclean:
	$(MAKE) -C x86emu clean
	rm -f *.o *~

clean: objclean
	rm -f *.so.1 *.a x86.pc

x86.pc:
	sed -e's,@prefix@,/usr,' x86.pc.in > x86.pc
	sed -e's,@exec_prefix@,/usr,' -i x86.pc
	sed -e's,@libdir@,${LIBDIR},' -i x86.pc
	sed -e's,@includedir@,${INCLUDEDIR},' -i x86.pc
	sed -e's,@PACKAGE_VERSION@,1.1,' -i x86.pc

install: libx86.so.1 x86.pc
	install -D libx86.so.1 $(DESTDIR)$(LIBDIR)/libx86.so.1
	install -D libx86.a $(DESTDIR)$(LIBDIR)/libx86.a
	install -D x86.pc $(DESTDIR)$(LIBDIR)/pkgconfig/x86.pc
	ln -sf libx86.so.1 $(DESTDIR)$(LIBDIR)/libx86.so
	install -p -m 0644 -D lrmi.h $(DESTDIR)$(INCLUDEDIR)/libx86.h
