# Glue comes in two flavors, one for flat address spaces and one for base
# relative.  When gen_glue is compiled, which form of glue is generated
# when it is run depends upon whether "__no_baserel" or "__baserel" was defined
# when it was compiled.

#### Start of system configuration section. ####

srcdir =	@srcdir@

ifeq ($(srcdir),.)
srcdir = ..
endif

VPATH :=	$(srcdir)

# Common prefix for machine-independent installed files.
prefix =	@prefix@

# Common prefix for machine-dependent installed files.
exec_prefix =	@exec_prefix@

bindir =	$(exec_prefix)/bin
libdir =	$(exec_prefix)/Sys/libs

INSTALL =	@INSTALL@
INSTALL_DATA =	@INSTALL_DATA@

CC =		@CC@
AS =		as

CFLAGS =	@CFLAGS@
LDFLAGS =	@LDFLAGS@

RANLIB =	@RANLIB@
AR =		ar
RM =		rm -f

#### End system configuration section ####

# BASE is defined to be either "no-baserel" or "baserel" by an upper level
# makefile.  The default is "no-baserel".

BASE =		no-baserel

FLAVOR_CFLAGS =
OTHER_CFLAGS =	-fomit-frame-pointer
ALL_CFLAGS =	$(CFLAGS) $(FLAVOR_CFLAGS) $(OTHER_CFLAGS) $(INCS)

INCS =		-I$(srcdir) -I$(srcdir)/../library -I$(srcdir)/../include
LIB =		libglue.a
LIB_P =		libglue_p.a
SHELL =		/bin/sh

.c.o:
		$(CC) $(ALL_CFLAGS) -c $< -o $@

.s.o:
		cp $< x.c
		$(CC) $(CFLAGS) $(OTHER_CFLAGS) -traditional -E x.c -o x.s
		$(CC) $(CFLAGS) $(OTHER_CFLAGS) $(INCS) -c x.s -o $@
		$(RM) x.c x.s


ifeq ($(BASE),baserel)
all:		gen_glue $(LIB)
else
all:		gen_glue $(LIB) $(LIB_P)
endif

gen_glue:	gen_glue.c $(srcdir)/../include/sys/syscall.def
		$(CC) $(ALL_CFLAGS) $< -o $@

$(LIB):		$(srcdir)/../include/sys/syscall.def
		rm -f *.[os]
		./gen_glue $(BASE)
		for asm in *.s; do echo $$asm ; $(AS) -m68000 $$asm -o $$asm.o; done
		$(AR) rv $@ *.o
		rm -f *.[os]

$(LIB_P):	$(srcdir)/../include/sys/syscall.def
		rm -f *.[os]
		./gen_glue profiling
		for asm in *.s; do echo $$asm ; $(AS) -m68000 $$asm -o $$asm.o; done
		$(AR) rv $@ *.o
		rm -f *.[os]

clean:
		rm -rf *baserel

clobber:	clean
		rm -f Makefile
