#******************************************************************************
#
# Filename:	Makefile
#
# Description:	Top level makefile for XCopilot
#
# Update History:   (most recent first)
#   I. Curtis  26-Feb-97 12:42 -- major update as mc68k stuff moved
#	into subdir
#   I. Curtis  16-Feb-97 17:02 -- Created.
#
#******************************************************************************
MC68KDIR	= mc68k
MXDIR		= mx
CC 		= gcc

## Where to install the binary and icons, respectively
BINDIR = ../bin
LIBDIR = ../lib

# set the following CFLAGS, IFLAGS and LFLAGS for linux or FreeBSD
CFLAGS 		= -pipe -g -O5 -Wall
IFLAGS		= -I/usr/X11R6/include -I. -I${MC68KDIR} -I${MXDIR}
LFLAGS		= -L/usr/X11R6/lib -lXpm -lXext -lX11

# set the following CFLAGS, IFLAGS and LFLAGS for SunOS 4.1.4
#CFLAGS 	= -pipe -O3 -Wall -g -D__BIG_ENDIAN__  -DNEED_STRSEP
#IFLAGS 	= -I. -I${MC68KDIR} -I${MXDIR} -I${OPENWINHOME}/include -I/usr/local/include
#LFLAGS	= -L/usr/openwin/lib -L/usr/local/lib/X11 -lXpm -lXext -lX11

# set the following CFLAGS, IFLAGS and LFLAGS for Solaris 2.5
#CFLAGS 	= -pipe -O3 -Wall -g -D__BIG_ENDIAN__  -DNEED_STRSEP
#IFLAGS 	= -I. -I${MC68KDIR} -I${MXDIR} -I${OPENWINHOME}/include -I/usr/local/include
#LFLAGS	= -R${OPENWINHOME}/lib -L${OPENWINHOME}/lib -L/usr/local/lib/X11 -lXpm -lXext -lX11 -lnsl -lsocket 

# set the following CFLAGS, IFLAGS and LFLAGS for AIX 4.1.4
# Note that I had to link with a compiled version of X11, the libs that come
# with AIX4 don't seem to have X shared memory support
#CFLAGS 	= -pipe -O3 -Wall -g -D__BIG_ENDIAN__  -DNEED_STRSEP -DNEED_SELECT_H
#IFLAGS 	= -I. -I${MC68KDIR} -I${MXDIR} -I/usr/local/X11R6/include
#LFLAGS	= -L/usr/local/X11R6/lib -lXpm -lXext -lX11

all : xcopilot

fakecall.o : fakecall.c fakecall.h pilotcpu.h ${MC68KDIR}/shared.h \
		${MC68KDIR}/sysdeps.h \
		${MC68KDIR}/memory.h ${MC68KDIR}/custom.h ${MC68KDIR}/newcpu.h
	${CC} ${CFLAGS} ${IFLAGS} -c fakecall.c

pdebug.o : pdebug.c pdebug.h fakecall.h pilotcpu.h ${MC68KDIR}/shared.h \
		${MC68KDIR}/sysdeps.h \
		${MC68KDIR}/memory.h ${MC68KDIR}/custom.h ${MC68KDIR}/newcpu.h
	${CC} ${CFLAGS} ${IFLAGS} -c pdebug.c

ser-tcp.o : ser-tcp.c
	${CC} ${CFLAGS} ${IFLAGS} -c ser-tcp.c

pilotcpu.o : pilotcpu.c pilotcpu.h ${MC68KDIR}/shared.h ${MC68KDIR}/sysdeps.h \
		${MC68KDIR}/memory.h ${MC68KDIR}/custom.h ${MC68KDIR}/newcpu.h
	${CC} ${CFLAGS} ${IFLAGS} -c pilotcpu.c

display.o : display.c case.xpm ${MC68KDIR}/shared.h version.h \
		${MC68KDIR}/sysdeps.h ${MC68KDIR}/dragonball.h
	${CC} ${CFLAGS} ${IFLAGS} -c display.c

main.o : main.c display.h pilotcpu.h pdebug.h version.h ${MC68KDIR}/shared.h \
		${MC68KDIR}/sysdeps.h ${MC68KDIR}/memory.h \
		${MC68KDIR}/custom.h ${MC68KDIR}/newcpu.h
	${CC} ${CFLAGS} ${IFLAGS} -c main.c

install: xcopilot
	-mkdir -p $(BINDIR)
	-mkdir -p $(LIBDIR)
	install xcopilot $(BINDIR)
	install icon.xpm $(LIBDIR)
	install icon2.xpm $(LIBDIR)

#
# This is the executable
#
FORCE :

xcopilot :: FORCE
	cd ${MC68KDIR}; ${MAKE} CFLAGS="${CFLAGS}" IFLAGS="${IFLAGS}" libmc68k.a
	cd ${MXDIR};  ${MAKE} CFLAGS="${CFLAGS}" IFLAGS="${IFLAGS}" all

xcopilot :: main.o display.o pilotcpu.o fakecall.o pdebug.o ser-tcp.o \
		${MC68KDIR}/libmc68k.a ${MXDIR}/libmx.a
	${CC} ${CFLAGS} -o xcopilot main.o display.o pilotcpu.o \
		fakecall.o pdebug.o ser-tcp.o \
		${MC68KDIR}/libmc68k.a ${MXDIR}/libmx.a \
		${LFLAGS}

##
## keep it clean!
##
clean ::
	cd ${MC68KDIR}; ${MAKE} clean
	cd ${MXDIR}; ${MAKE} clean

clean ::
	/bin/rm -f core main.o display.o pilotcpu.o fakecall.o pdebug.o ser-tcp.o

clobber ::
	cd ${MC68KDIR}; ${MAKE} clobber
	cd ${MXDIR}; ${MAKE} clobber

clobber :: clean
	/bin/rm -f xcopilot pilot.ram pilot.scratch
