Makefile 5.6 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
# Copyright 1998 Acorn Computers Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Makefile for LanManFS
#
# Paths
#
EXP_HDR = <export$dir>

Stewart Brodie's avatar
Stewart Brodie committed
21 22 23 24 25 26 27 28 29
#
# Component specific options:
#
COMPONENT  = LanManFS
ROM_MODULE = aof.${COMPONENT}
RAM_MODULE = rm.${COMPONENT}
DBG_MODULE = rm.${COMPONENT}D


30 31 32
#
# Generic options:
#
Neil Bingham's avatar
Neil Bingham committed
33
MKDIR   = mkdir -p
34 35 36 37 38 39
AS      = objasm
CC      = cc
CMHG    = cmhg
CP      = copy
LD      = link
RM      = remove
40
MODSQZ  = modsqz
41
WIPE    = -wipe
42
CD      = dir
Stewart Brodie's avatar
Stewart Brodie committed
43
RESGEN  = resgen
44 45 46 47 48


CPFLAGS = ~cfr~v
WFLAGS  = ~c~v

49
DFLAGS    = -DCOMPAT_INET4 -DLONGNAMES ${OPTIONS}
Stewart Brodie's avatar
Stewart Brodie committed
50 51
AFLAGS    = -depend !Depend ${THROWBACK} -Stamp -quit
CFLAGS    = -depend !Depend ${THROWBACK} -c -Wpcs -ff -zps1 -zM ${INCLUDES},. ${DFLAGS}
52
CMHGFLAGS = -depend !Depend ${THROWBACK} -p ${OPTIONS}
Stewart Brodie's avatar
Stewart Brodie committed
53 54
INCLUDES  = -ITCPIPLibs:,C:

55 56 57 58 59 60 61 62 63 64 65 66
#
# Libraries
#
CLIB      = CLIB:o.stubs
RLIB      = RISCOSLIB:o.risc_oslib
RSTUBS    = RISCOSLIB:o.rstubs
ROMSTUBS  = RISCOSLIB:o.romstubs
ROMCSTUBS = RISCOSLIB:o.romcstubs
ABSSYM    = RISC_OSLib:o.AbsSym
INETLIB   = TCPIPLibs:o.inetlibzm
SOCKLIB   = TCPIPLibs:o.socklibzm
UNIXLIB   = TCPIPLibs:o.unixlibzm
Stewart Brodie's avatar
Stewart Brodie committed
67
DEBUGLIB  = C:DebugLib.o.DebugLibZM
Stewart Brodie's avatar
Stewart Brodie committed
68
ASMUTILS  = C:AsmUtils.o.AsmUtilsZM
69 70 71



Stewart Brodie's avatar
Stewart Brodie committed
72
OBJS      = LanMan.o Omni.o Logon.o CoreFn.o Printers.o NameCache.o \
Stewart Brodie's avatar
Stewart Brodie committed
73
            Xlate.o Interface.o buflib.o Transact.o \
Stewart Brodie's avatar
Stewart Brodie committed
74 75 76
            LLC.o NetBIOS.o SMB.o Errors.o Attr.o RPC.o NBIP.o Stats.o LanMan_MH.o

ROM_OBJS  = or.LanMan or.Omni or.Logon or.CoreFn or.Printers or.NameCache \
Stewart Brodie's avatar
Stewart Brodie committed
77
            or.Xlate or.buflib  Interface.o Errors.o or.Transact \
Stewart Brodie's avatar
Stewart Brodie committed
78 79 80
            or.LLC or.NetBIOS or.SMB or.Attr or.RPC or.NBIP or.Stats LanMan_MH.o 

#DBG_OBJS  = od.LanMan od.Omni od.Logon od.CoreFn od.Printers od.NameCache \
Stewart Brodie's avatar
Stewart Brodie committed
81
#            od.Xlate od.buflib  Interface.o Errors.o o.Transact \
Stewart Brodie's avatar
Stewart Brodie committed
82
#            od.LLC od.NetBIOS od.SMB od.Attr od.RPC od.NBIP od.Stats LanMan_MH.o 
83

Stewart Brodie's avatar
Stewart Brodie committed
84
#DBG_OBJS  = od.LanMan od.Omni od.Logon od.CoreFn od.Printers od.NameCache \
Stewart Brodie's avatar
Stewart Brodie committed
85
#            od.Xlate od.buflib Interface.o Errors.o od.Transact \
Stewart Brodie's avatar
Stewart Brodie committed
86 87 88
#            o.LLC o.NetBIOS od.SMB o.Attr od.RPC od.NBIP od.Stats LanMan_MH.o 

DBG_OBJS  = od.LanMan o.Omni o.Logon o.CoreFn o.Printers o.NameCache \
Stewart Brodie's avatar
Stewart Brodie committed
89
            o.Xlate o.buflib Interface.o Errors.o o.Transact \
Stewart Brodie's avatar
Stewart Brodie committed
90 91
            o.LLC o.NetBIOS od.SMB o.Attr o.RPC o.NBIP o.Stats LanMan_MH.o 

Stewart Brodie's avatar
Stewart Brodie committed
92 93 94

OBJSI     = i.LanMan i.Omni i.Logon i.CoreFn i.Printers i.NameCache \
            i.Xlate i.buflib i.Transact \
95 96 97
            i.LLC i.NetBIOS i.SMB i.Attr i.RPC i.NBIP i.Stats

OBJSINST  = LanMan_MH.o inst.LanMan inst.Omni inst.Logon inst.CoreFn inst.Printers \
Stewart Brodie's avatar
Stewart Brodie committed
98
            inst.Xlate inst.buflib Interface.o Errors.o inst.Transact\
Stewart Brodie's avatar
Stewart Brodie committed
99 100 101 102 103
            inst.NameCache\
            inst.LLC inst.NetBIOS inst.SMB inst.Attr inst.RPC inst.NBIP inst.Stats 

LanMan_MH.h: LanMan_MH.o
	${CMHG} ${CMHGFLAGS} cmhg.$* -d $@
104 105 106 107

#
# Rule patterns
#
Stewart Brodie's avatar
Stewart Brodie committed
108
.SUFFIXES:  .o .od .or .s .c .i .h .cmhg .inst
109
.c.o:;      ${CC} ${CFLAGS} -o $@ $<
Stewart Brodie's avatar
Stewart Brodie committed
110
.c.or:;      ${CC} ${CFLAGS} -DROM -o $@ $<
Stewart Brodie's avatar
Stewart Brodie committed
111
.c.od:;      ${CC} ${CFLAGS} -DDEBUG -DDEBUGLIB -DTRACE -Dprintf=module_printf -o $@ $<
112 113
.c.i:;		$(CC) $(CFLAGS) -c -C -E $< >> $@
.i.inst:;	$(CC) $(CFLAGS) -C++ -o $@ $<
Stewart Brodie's avatar
Stewart Brodie committed
114
.cmhg.o:;   ${CMHG} ${CMHGFLAGS} -o $@ $< -d $*.h
115 116 117 118 119
.s.o:;      ${AS} ${AFLAGS} $< $@

#
# Build target
#
Stewart Brodie's avatar
Stewart Brodie committed
120
all: ${RAM_MODULE}
121 122
	@echo ${COMPONENT}: all complete

Neil Bingham's avatar
Neil Bingham committed
123 124 125 126 127 128 129
install: ${RAM_MODULE} dirs
	${CP} ${RAM_MODULE} ${INSTDIR}.${COMPONENT} ${CPFLAGS}
	@echo ${COMPONENT}: all complete

dirs:
	${MKDIR} ${INSTDIR}

130 131 132
#
# RISC OS ROM build rules:
#
Stewart Brodie's avatar
Stewart Brodie committed
133
rom: ${ROM_MODULE}
134 135
	@echo ${COMPONENT}: rom module built

Stewart Brodie's avatar
Stewart Brodie committed
136 137 138 139 140
resources:
	${MKDIR} ${RESDIR}.${COMPONENT}
	${CP} Sprites ${RESDIR}.${COMPONENT}.Sprites  ${CPFLAGS}
	@echo ${COMPONENT}: resource files copied

Stewart Brodie's avatar
Stewart Brodie committed
141
preprocess: ${OBJSI} i.dirs
142 143
	@echo ${COMPONENT}: preprocess build complete

Stewart Brodie's avatar
Stewart Brodie committed
144 145 146
instrument: ${OBJSINST} inst.instlib i.dirs o.dirs 
	$(LD) -rmf -o $@ $(OBJSINST) inst.instlib $(STUBS)
	ModSqz $@
147 148
	@echo ${COMPONENT}: instrument build complete

Stewart Brodie's avatar
Stewart Brodie committed
149
o.dirs:
150
	${MKDIR} o
Stewart Brodie's avatar
Stewart Brodie committed
151 152 153 154 155
	${MKDIR} od
	${MKDIR} or
	create o.dirs

i.dirs:
156 157 158 159 160 161
	${MKDIR} i
	${MKDIR} inst

export: 
	@echo ${COMPONENT}: export complete

Stewart Brodie's avatar
Stewart Brodie committed
162 163
install_rom: ${ROM_MODULE}
	${CP} ${ROM_MODULE} ${INSTDIR}.${COMPONENT} ${CPFLAGS}
164 165 166
	@echo ${COMPONENT}: rom module installed

clean:
Stewart Brodie's avatar
Stewart Brodie committed
167 168 169 170 171 172 173 174 175 176 177
	${WIPE} o ${WFLAGS}
	${WIPE} od ${WFLAGS}
	${WIPE} or ${WFLAGS}
	${WIPE} i ${WFLAGS}
	${WIPE} inst ${WFLAGS}
	${WIPE} map ${WFLAGS}
	${WIPE} linked ${WFLAGS}
	${WIPE} aof ${WFLAGS}
	${WIPE} rm ${WFLAGS}
	${RM} h.LanMan_MH
	${RM} NameCache
178 179 180 181 182
	@echo ${COMPONENT}: cleaned

#
# Target 
#
Stewart Brodie's avatar
Stewart Brodie committed
183 184
${RAM_MODULE}: ${OBJS} o.dirs
	${MKDIR} rm
Stewart Brodie's avatar
Stewart Brodie committed
185
	${LD} -o $@ -rmf ${OBJS} ${UNIXLIB} ${INETLIB} ${SOCKLIB} ${CLIB} ${ASMUTILS}
Stewart Brodie's avatar
Stewart Brodie committed
186 187 188 189 190
	${MODSQZ} $@
	Access $@ RW/R

${DBG_MODULE}: ${DBG_OBJS} o.dirs
	${MKDIR} rm
Stewart Brodie's avatar
Stewart Brodie committed
191
	${LD} -o $@ -rmf ${DBG_OBJS} ${UNIXLIB} ${INETLIB} ${SOCKLIB} ${DEBUGLIB} ${CLIB} ${ASMUTILS}
Stewart Brodie's avatar
Stewart Brodie committed
192
	${MODSQZ} $@
193 194 195 196

#
# ROM Target 
#
Stewart Brodie's avatar
Stewart Brodie committed
197 198
${ROM_MODULE}: ${ROM_OBJS} ${UNIXLIB} ${INETLIB} ${SOCKLIB} o.dirs
	${MKDIR} aof
Stewart Brodie's avatar
Stewart Brodie committed
199
	${LD} -o $@ -aof ${ROM_OBJS} ${ROMCSTUBS} ${UNIXLIB} ${INETLIB} ${SOCKLIB} ${ASMUTILS}
200 201 202 203 204 205
	
#
# Final link for the ROM Image (using given base address)
#
rom_link:
	${MKDIR} linked
Stewart Brodie's avatar
Stewart Brodie committed
206
	${LD} -o linked.${COMPONENT} -rmf -base ${ADDRESS} ${ROM_MODULE} ${ABSSYM}
207 208 209 210
	${CP} linked.${COMPONENT} ${LINKDIR}.${COMPONENT} ${CPFLAGS}
	@echo ${COMPONENT}: rom_link complete

# Dynamic dependencies: