# Makefile
# CREATED BY mkmk
#       FROM ./MakeSkel
#         ON Fri Sep 9 11:19:22 PDT 1988

## makefile skeleton for fortran interface library





# makeHost.bsd - BSD UNIX rules, defs & flags for makefile skeletons

## rules

.SUFFIXES : .lint .s .c

.c.lint:
	@rm -f $@
	- lint $(LINTFLAGS) $*.c $(LIB_LINT)$(VX_LN) |	\
	    sed -e '/copyright/d'		\
		-e '/^[^ ]*:$$/d' >$@

.s.o :
	@rm -f $@
	$(ASM_P1) $< >tmp.c
	$(CC) $(CASFLAGS) tmp.c >tmp.i
	$(ASM_P2) tmp.i >tmp.s
	$(AS) -o $@ tmp.s
	@rm -f tmp.c tmp.i tmp.s

.c.o :
	@rm -f $@
	$(CC) $(CFLAGS) -c $<


## files and directories

VW          = ../../
H1          = $(VW)h/
H2          = $(VW)h/net/
H3          = $(VW)h/rpc/
BIN         = $(VW)bin/
SRC         = $(VW)src/
SRCALL      = $(VW)src/all/
HIGHALL     = $(VW)src/high/
PRIMALL     = $(VW)src/prim/
SRCNET      = $(VW)src/net/
SRCRPC      = $(VW)src/rpc/
SRCBIN      = $(VW)src/bin/
VRTX        = $(VW)src/vrtx/
PSOS        = $(VW)src/psos/
WIND        = $(VW)src/wind/
LIB         = $(VW)lib/
LIB_MC68000 = $(VW)lib/68000/
LIB_MC68010 = $(VW)lib/68010/
LIB_MC68020 = $(VW)lib/68020/
LIB_MC68030 = $(VW)lib/68030/
LIB_HOST    = $(VW)lib/host/
LIB_LINT    = $(VW)lib/lint/
CONFIG      = $(VW)config/
ALL         = $(VW)config/all/
DY4         = $(VW)config/dy4/
HKV2F       = $(VW)config/hkv2f/
IS20        = $(VW)config/is20/
IV24        = $(VW)config/iv24/
MV131       = $(VW)config/mv131/
MV133       = $(VW)config/mv133/
UBAR        = $(VW)config/ubar/

VRTX_LIB   = vrtx.a
PSOS_LIB   = psos.a
WIND_LIB   = wind.a
NET_LIB    = network.a
RPC_LIB    = rpclib.a
CONFIG_LIB = vxConfig.a
HIGH_LIB   = highLib.a
PRIM_LIB   = primLib.a
FORT_LIB   = fort_uw.a

VX_LN      = llib-lvw.ln
VRTX_LN    = llib-lvrtx.ln
PSOS_LN    = llib-lpsos.ln
WIND_LN    = llib-lwind.ln
NET_LN     = llib-lnet.ln
RPC_LN     = llib-lrpc.ln
CONFIG_LN  = llib-lcfg.ln

YACCOUT    = y.tab.c
LEXOUT     = lex.yy.c

## tools

RANLIB = ranlib


# makeHost.isi - host specific rules, defs & flags for makefile skeletons

EVEN = "-Deven=align 1"

# pure BSD 4.3 doesn't have $(MAKE) capability

MAKE = make

## tools

TAGS   = ctags -w -t

ASM_P1 = $(BIN)aspp
ASM_P2 = cat

CC_MC68000 = cc
CC_MC68010 = cc
CC_MC68020 = cc
CC_MC68030 = cc
CC_HOST    = cc

AS_MC68000 = as
AS_MC68010 = as
AS_MC68020 = as
AS_MC68030 = as
AS_HOST    = as

LD_MC68000 = ld
LD_MC68010 = ld
LD_MC68020 = ld
LD_MC68030 = ld
LD_HOST    = ld

## flags

HOST_TYPE = HOST_ISI

HOST_CFLAGS_MC68000 = -O -ga -X23
HOST_CFLAGS_MC68010 = -O -ga -X23
HOST_CFLAGS_MC68020 = -O -ga -k -X23 -X39 -X18 -20
HOST_CFLAGS_MC68030 = -O -ga -k -X23 -X39 -X18 -20
HOST_CFLAGS_HOST    =

## libraries

HOST_LIB_MC68000 = /usr/lib/libc.a
HOST_LIB_MC68010 = /usr/lib/libc.a
HOST_LIB_MC68020 = /usr/lib/libc.a
HOST_LIB_MC68030 = /usr/lib/libc.a
HOST_LIB_HOST    = /usr/lib/libc.a



## flags and defines

INCLUDES  = -I$(H1) -I$(H2) -I$(H3)
DEFINES   = -DCPU=<CPU> -D$(HOST_TYPE)
CFLAGS    = $(INCLUDES) $(DEFINES) $(HOST_CFLAGS_<CPU>)
CASFLAGS  = -E $(EVEN) $(INCLUDES) $(DEFINES)
LINTFLAGS = -bun $(INCLUDES) -DLINT -DCPU=MC68020 -D$(HOST_TYPE)

## files and directories

LIBNAME  = $(VX_LIB)

OBJ_COMMON = abs.o bootLib.o bufALib.o bufLib.o cALib.o \
	     dbgLib.o dsmLib.o errnoLib.o etherLib.o \
	     excLib.o fioLib.o fltLib.o fppALib.o fppLib.o freevec.o \
	     ftpLib.o fortLib.o hostLib.o ifLib.o inetLib.o \
	     intALib.o intLib.o ioLib.o iosLib.o isiBootLib.o \
	     ldLib.o ledLib.o logLib.o lstLib.o mathALib.o memLib.o netLib.o \
	     nfsLib.o pathLib.o rebootLib.o remLib.o rlogLib.o rngLib.o \
	     routeLib.o rpcLib.o rtLib.o shellLib.o sigLib.o \
	     sockLib.o strALib.o symLib.o taLib.o stdioLib.o \
	     taskHookLib.o taskVarLib.o telnetLib.o tiLib.o trcLib.o \
	     tyLib.o vxALib.o vxLib.o wdLib.o rdLib.o wrtLib.o \
	     tickLib.o semLib.o taskLib.o vrtxALib.o


HIGH_FILES.C = bootLib.c cdbLib.c dbgLib.c diskpart.c \
	dsmLib.c errnoULib.c etherLib.c freevec.c ftpLib.c hostLib.c \
	ifLib.c inetLib.c isiBootLib.c ldLib.c ledLib.c netLib.c nfsLib.c \
	remLib.c rlogLib.c routeLib.c rpcLib.c rtLib.c rtULib.c semULib.c \
	shell.c shellLib.c sockLib.c stdioLib.c symLib.c taLib.c \
	taskVarLib.c telnetLib.c tiLib.c trcLib.c 

HIGH_FILES.S = dbgALib.s 

PRIM_FILES.C = bufLib.c ctypeLib.c errnoLib.c excLib.c \
	fioLib.c fltLib.c fppLib.c intLib.c ioLib.c iosLib.c logLib.c \
	lstLib.c memLib.c pathLib.c rebootLib.c rngLib.c sigLib.c \
	taskHookLib.c tyLib.c vxLib.c wdLib.c

PRIM_FILES.S = abs.s bufALib.s cALib.s excALib.s fppALib.s intALib.s \
	mathALib.s strALib.s vxALib.s

VRTX_FILES.C = tickLib.c semLib.c taskLib.c vrtxALib.c

## files and directories

LIBNAME = $(FORT_LIB)

OBJ_MC68000 = $(OBJ_COMMON)
OBJ_MC68010 = $(OBJ_COMMON)
OBJ_MC68020 = $(OBJ_COMMON)
OBJ_MC68030 = $(OBJ_COMMON)

##################################################################

default : 68030 68020 68010 68000
aux : tags
lint : lib.lint lib.ln

############# common portion of Makefile for libraries ###################

## tools

AS = $(AS_<CPU>)
LD = $(LD_<CPU>)
CC = $(CC_<CPU>)

##

tags : *.c $(H1)*.h $(H2)*.h $(H3)*.h
	@ rm -f $@
	$(TAGS) *.c $(H1)*.h $(H2)*.h $(H3)*.h

lib.lint : $(LINT_FILES)
	@ rm -f $@
	- lint $(LINTFLAGS) $(LINT_FILES) $(LINT_LIBS) | \
	    sed -e '/copyright/d' 	\
		-e '/^[^ ]*:$$/d' 	\
		-e '/slex.*: warning: statement not reached/d' > $@

LINT_LIBNAME = llib-l$(LINT_ID).ln

lib.ln : $(LIB_LINT)$(LINT_LIBNAME)

$(LIB_LINT)$(LINT_LIBNAME) : $(LINT_FILES)
	@ rm -f $@
	- lint $(LINTFLAGS) -C$(LINT_ID) $(LINT_FILES) >/dev/null
	mv $(LINT_LIBNAME) $(LIB_LINT)$(LINT_LIBNAME)

####################### 68030 version ##########################

get30   : Makefile.68030
	$(MAKE) -f Makefile.68030 getlib
30      : Makefile.68030
	$(MAKE) -f Makefile.68030 lib
clean30 : Makefile.68030
	$(MAKE) -f Makefile.68030 cleanlib
68030   : Makefile.68030
	$(MAKE) -f Makefile.68030 getlib lib cleanlib
Makefile.68030 : Makefile
	@ rm -f $@
	sed -e "s/<CPU>/MC68030/g" Makefile > $@

####################### 68020 version ##########################

get20   : Makefile.68020
	$(MAKE) -f Makefile.68020 getlib
20      : Makefile.68020
	$(MAKE) -f Makefile.68020 lib
clean20 : Makefile.68020
	$(MAKE) -f Makefile.68020 cleanlib
68020   : Makefile.68020
	$(MAKE) -f Makefile.68020 getlib lib cleanlib
Makefile.68020 : Makefile
	@ rm -f $@
	sed -e "s/<CPU>/MC68020/g" Makefile > $@

####################### 68010 version ##########################

get10   : Makefile.68010
	$(MAKE) -f Makefile.68010 getlib
10      : Makefile.68010
	$(MAKE) -f Makefile.68010 lib
clean10 : Makefile.68010
	$(MAKE) -f Makefile.68010 cleanlib
68010   : Makefile.68010
	$(MAKE) -f Makefile.68010 getlib lib cleanlib
Makefile.68010 : Makefile
	@ rm -f $@
	sed -e "s/<CPU>/MC68010/g" Makefile > $@

####################### 68000 version ##########################

get00   : Makefile.68000
	$(MAKE) -f Makefile.68000 getlib
00      : Makefile.68000
	$(MAKE) -f Makefile.68000 lib
clean00 : Makefile.68000
	$(MAKE) -f Makefile.68000 cleanlib
68000   : Makefile.68000
	$(MAKE) -f Makefile.68000 getlib lib cleanlib
Makefile.68000 : Makefile
	@ rm -f $@
	sed -e "s/<CPU>/MC68000/g" Makefile > $@

####################### HOST version ##########################

getH   : Makefile.HOST
	$(MAKE) -f Makefile.HOST getlib
H      : Makefile.HOST
	$(MAKE) -f Makefile.HOST lib
cleanH : Makefile.HOST
	$(MAKE) -f Makefile.HOST cleanlib
HOST   : Makefile.HOST
	$(MAKE) -f Makefile.HOST getlib lib cleanlib
Makefile.HOST : Makefile
	@ rm -f $@
	sed -e "s/<CPU>/HOST/g" Makefile > $@


########################################################################

DEST = $(LIB_<CPU>)
OBJ  = $(OBJ_<CPU>)

getlib :
	@ rm -f $(OBJ)
	-ar xo $(DEST)$(LIBNAME)
	@ rm -f __.SYMDEF

cleanlib :
	@ rm -f $(OBJ)

lib : $(DEST)$(LIBNAME)

$(DEST)$(LIBNAME) : $(OBJ)
	@ rm -f $(DEST)$(LIBNAME)
	ar cru $(DEST)$(LIBNAME) $(OBJ)
	$(RANLIB) $(DEST)$(LIBNAME)

fortLib.o: fortLib.c
	cc -c -w -O -ga -k -X23 -X39 -X18 -20	fortLib.c


############################################################



fort :
	- ( for i in $(HIGH_FILES.S); do \
	    if (test ! -f $(HIGHALL)$$i) then \
		echo $(HIGHALL)$$i does not exist; \
		continue; \
	    fi; \
	    x=`basename $(HIGHALL)$$i .s`; \
	    echo $$x.s; \
	    if (test -f $$x.c) then \
		echo $$x.c exists; \
	    else \
		$(BIN)f2cgen $(HIGHALL)$$i > $$x.c ; \
	    fi; done; \
	)
	- ( for i in $(HIGH_FILES.C); do \
	    echo $$i; \
	    if (test ! -f $(HIGHALL)$$i) then \
		echo $(HIGHALL)$$i does not exist; \
		continue; \
	    fi; \
	    if (test -f $$i) then \
		echo $$i exists; \
	    else \
		$(BIN)f2cgen $(HIGHALL)$$i > $$i ; \
	    fi; done; \
	)
	- ( for i in $(PRIM_FILES.S); do \
	    if (test ! -f $(PRIMALL)$$i) then \
		echo $(PRIMALL)$$i does not exist; \
		continue; \
	    fi; \
	    x=`basename $(PRIMALL)$$i .s`; \
	    echo $$x.s; \
	    if (test -f $$x.c) then \
		echo $$x.c exists; \
	    else \
		$(BIN)f2cgen $(PRIMALL)$$i > $$x.c ; \
	    fi; done; \
	)
	- ( for i in $(PRIM_FILES.C); do \
	    echo $$i; \
	    if (test ! -f $(PRIMALL)$$i) then \
		echo $(PRIMALL)$$i does not exist; \
		continue; \
	    fi; \
	    if (test -f $$i) then \
		echo $$i exists; \
	    else \
		$(BIN)f2cgen $(PRIMALL)$$i > $$i ; \
	    fi; done; \
	)

