#############################################################################
#
#						Realmode X86 Emulator Library
#
#            	Copyright (C) 1996-1999 SciTech Software, Inc.
#
#  ========================================================================
#
#  Permission to use, copy, modify, distribute, and sell this software and
#  its documentation for any purpose is hereby granted without fee,
#  provided that the above copyright notice appear in all copies and that
#  both that copyright notice and this permission notice appear in
#  supporting documentation, and that the name of the authors not be used
#  in advertising or publicity pertaining to distribution of the software
#  without specific, written prior permission.  The authors makes no
#  representations about the suitability of this software for any purpose.
#  It is provided "as is" without express or implied warranty.
#
#  THE AUTHORS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
#  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
#  EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
#  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
#  USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
#  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
#  PERFORMANCE OF THIS SOFTWARE.
#
#  ========================================================================
#
# Descripton:   Linux specific makefile for the x86emu library.
#
#############################################################################

CC = $(CROSS_COMPILE)gcc
AR = $(CROSS_COMPILE)ar

TARGETLIB = libx86emu.a
TARGETDEBUGLIB =libx86emud.a

OBJS=\
decode.o \
fpu.o \
ops.o \
ops2.o \
prim_ops.o \
sys.o

DEBUGOBJS=debug.d \
          decode.d \
	  fpu.d \
	  ops.d \
	  ops2.d \
	  prim_ops.d \
	  sys.d

.SUFFIXES: .d

all: $(TARGETLIB) $(TARGETDEBUGLIB)

$(TARGETLIB): $(OBJS)
	$(AR) rv $(TARGETLIB) $(OBJS)

$(TARGETDEBUGLIB): $(DEBUGOBJS)
	$(AR) rv $(TARGETDEBUGLIB) $(DEBUGOBJS)

INCS   = -I. -Ix86emu -I../../include
CFLAGS = -D__DRIVER__ -DFORCE_POST -D_CEXPORT= -DNO_LONG_LONG -Dprintk=printf -fsigned-char  -fomit-frame-pointer -fPIC -ffixed-r14 -meabi
CDEBUGFLAGS = -DDEBUG

.c.o:
	$(CC) -g -O2 -Wall -c $(CFLAGS) $(INCS) $*.c

.c.d:
	$(CC) -g -O2 -Wall -c -o$*.d $(CFLAGS) $(CDEBUGFLAGS) $(INCS) $*.c

.cpp.o:
	$(CC) -c $(CFLAGS) $(INCS) $*.cpp

clean:
	rm -f *.a *.o *.d

validate:	validate.o libx86emu.a
	$(CC) -o validate validate.o -lx86emu -L.
